- implement hooks for hostbuilds - use host build hooks to implement fixups for host build - move separator declaration to rules.mk
SVN-Revision: 24551
This commit is contained in:
		| @@ -5,10 +5,6 @@ | |||||||
| # See /LICENSE for more information. | # See /LICENSE for more information. | ||||||
| # | # | ||||||
|  |  | ||||||
| PKG_LIBTOOL_PATHS?=$(CONFIGURE_PATH) |  | ||||||
| PKG_AUTOMAKE_PATHS?=$(CONFIGURE_PATH) |  | ||||||
| PKG_REMOVE_FILES?=aclocal.m4 |  | ||||||
|  |  | ||||||
| autoconf_bool = $(patsubst %,$(if $($(1)),--enable,--disable)-%,$(2)) | autoconf_bool = $(patsubst %,$(if $($(1)),--enable,--disable)-%,$(2)) | ||||||
|  |  | ||||||
| # delete *.la-files from staging_dir - we can not yet remove respective lines within all package | # delete *.la-files from staging_dir - we can not yet remove respective lines within all package | ||||||
| @@ -17,10 +13,15 @@ define libtool_remove_files | |||||||
| 	find $(1) -name '*.la' | $(XARGS) rm -f; | 	find $(1) -name '*.la' | $(XARGS) rm -f; | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  | # 1: build dir | ||||||
|  | # 2: remove files | ||||||
|  | # 3: automake paths | ||||||
|  | # 4: libtool paths | ||||||
|  | # 5: extra m4 dirs | ||||||
| define autoreconf | define autoreconf | ||||||
| 	(cd $(PKG_BUILD_DIR); \ | 	(cd $(1); \ | ||||||
| 		$(patsubst %,rm -f %;,$(PKG_REMOVE_FILES)) \ | 		$(patsubst %,rm -f %;,$(2)) \ | ||||||
| 		$(foreach p,$(PKG_AUTOMAKE_PATHS), \ | 		$(foreach p,$(3), \ | ||||||
| 			if [ -x $(p)/autogen.sh ]; then \ | 			if [ -x $(p)/autogen.sh ]; then \ | ||||||
| 				$(p)/autogen.sh || true; \ | 				$(p)/autogen.sh || true; \ | ||||||
| 			elif [ -f $(p)/configure.ac ] || [ -f $(p)/configure.in ]; then \ | 			elif [ -f $(p)/configure.ac ] || [ -f $(p)/configure.in ]; then \ | ||||||
| @@ -28,32 +29,75 @@ define autoreconf | |||||||
| 				[ -d $(p)/autom4te.cache ] && rm -rf autom4te.cache; \ | 				[ -d $(p)/autom4te.cache ] && rm -rf autom4te.cache; \ | ||||||
| 				$(STAGING_DIR_HOST)/bin/autoreconf -v -f -i -s \ | 				$(STAGING_DIR_HOST)/bin/autoreconf -v -f -i -s \ | ||||||
| 					-B $(STAGING_DIR_HOST)/share/aclocal \ | 					-B $(STAGING_DIR_HOST)/share/aclocal \ | ||||||
| 					-B $(STAGING_DIR)/host/share/aclocal \ | 					$(patsubst %,-B %,$(5)) \ | ||||||
| 					-B $(STAGING_DIR)/usr/share/aclocal \ | 					$(patsubst %,-I %,$(4)) $(4) || true; \ | ||||||
| 					$(patsubst %,-I %,$(PKG_LIBTOOL_PATHS)) $(PKG_LIBTOOL_PATHS) || true; \ |  | ||||||
| 			fi; \ | 			fi; \ | ||||||
| 		) \ | 		) \ | ||||||
| 	); | 	); | ||||||
| endef | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | PKG_LIBTOOL_PATHS?=$(CONFIGURE_PATH) | ||||||
|  | PKG_AUTOMAKE_PATHS?=$(CONFIGURE_PATH) | ||||||
|  | PKG_REMOVE_FILES?=aclocal.m4 | ||||||
|  |  | ||||||
| Hooks/InstallDev/Post += libtool_remove_files | Hooks/InstallDev/Post += libtool_remove_files | ||||||
|  |  | ||||||
|  | define autoreconf_target | ||||||
|  |   $(strip $(call autoreconf, \ | ||||||
|  |     $(PKG_BUILD_DIR), $(PKG_REMOVE_FILES), \ | ||||||
|  |     $(PKG_AUTOMAKE_PATHS), $(PKG_LIBTOOL_PATHS), \ | ||||||
|  |     $(STAGING_DIR)/host/share/aclocal $(STAGING_DIR)/usr/share/aclocal)) | ||||||
|  | endef | ||||||
|  |  | ||||||
| ifneq ($(filter libtool,$(PKG_FIXUP)),) | ifneq ($(filter libtool,$(PKG_FIXUP)),) | ||||||
|   PKG_BUILD_DEPENDS += libtool |   PKG_BUILD_DEPENDS += libtool | ||||||
|  ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),) |  ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),) | ||||||
|   Hooks/Configure/Pre += autoreconf |   Hooks/Configure/Pre += autoreconf_target | ||||||
|  endif |  endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifneq ($(filter libtool-ucxx,$(PKG_FIXUP)),) | ifneq ($(filter libtool-ucxx,$(PKG_FIXUP)),) | ||||||
|   PKG_BUILD_DEPENDS += libtool |   PKG_BUILD_DEPENDS += libtool | ||||||
|  ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),) |  ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),) | ||||||
|   Hooks/Configure/Pre += autoreconf |   Hooks/Configure/Pre += autoreconf_target | ||||||
|  endif |  endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifneq ($(filter autoreconf,$(PKG_FIXUP)),) | ifneq ($(filter autoreconf,$(PKG_FIXUP)),) | ||||||
|   ifeq ($(filter autoreconf,$(Hooks/Configure/Pre)),) |   ifeq ($(filter autoreconf,$(Hooks/Configure/Pre)),) | ||||||
|     Hooks/Configure/Pre += autoreconf |     Hooks/Configure/Pre += autoreconf_target | ||||||
|  |   endif | ||||||
|  | endif | ||||||
|  |  | ||||||
|  |  | ||||||
|  | HOST_FIXUP?=$(PKG_FIXUP) | ||||||
|  | HOST_LIBTOOL_PATHS?=$(if $(PKG_LIBTOOL_PATHS),$(PKG_LIBTOOL_PATHS),.) | ||||||
|  | HOST_AUTOMAKE_PATHS?=$(if $(PKG_AUTOMAKE_PATHS),$(PKG_AUTOMAKE_PATHS),.) | ||||||
|  | HOST_REMOVE_FILES?=$(PKG_REMOVE_FILES) | ||||||
|  |  | ||||||
|  | define autoreconf_host | ||||||
|  |   $(strip $(call autoreconf, \ | ||||||
|  |     $(HOST_BUILD_DIR), $(HOST_REMOVE_FILES), \ | ||||||
|  |     $(HOST_AUTOMAKE_PATHS), $(HOST_LIBTOOL_PATHS))) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  | ifneq ($(filter libtool,$(HOST_FIXUP)),) | ||||||
|  |   HOST_BUILD_DEPENDS += libtool | ||||||
|  |  ifeq ($(filter no-autoreconf,$(HOST_FIXUP)),) | ||||||
|  |   Hooks/HostConfigure/Pre += autoreconf_host | ||||||
|  |  endif | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifneq ($(filter libtool-ucxx,$(HOST_FIXUP)),) | ||||||
|  |   HOST_BUILD_DEPENDS += libtool | ||||||
|  |  ifeq ($(filter no-autoreconf,$(HOST_FIXUP)),) | ||||||
|  |   Hooks/HostConfigure/Pre += autoreconf_host | ||||||
|  |  endif | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifneq ($(filter autoreconf,$(HOST_FIXUP)),) | ||||||
|  |   ifeq ($(filter autoreconf,$(Hooks/HostConfigure/Pre)),) | ||||||
|  |     Hooks/HostConfigure/Pre += autoreconf_host | ||||||
|   endif |   endif | ||||||
| endif | endif | ||||||
|   | |||||||
| @@ -30,6 +30,7 @@ override MAKEFLAGS= | |||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/download.mk | include $(INCLUDE_DIR)/download.mk | ||||||
| include $(INCLUDE_DIR)/quilt.mk | include $(INCLUDE_DIR)/quilt.mk | ||||||
|  | include $(INCLUDE_DIR)/autotools.mk | ||||||
|  |  | ||||||
| Host/Patch:=$(Host/Patch/Default) | Host/Patch:=$(Host/Patch/Default) | ||||||
| ifneq ($(strip $(HOST_UNPACK)),) | ifneq ($(strip $(HOST_UNPACK)),) | ||||||
| @@ -130,12 +131,16 @@ ifndef DUMP | |||||||
|   $(HOST_STAMP_PREPARED): |   $(HOST_STAMP_PREPARED): | ||||||
| 	@-rm -rf $(HOST_BUILD_DIR) | 	@-rm -rf $(HOST_BUILD_DIR) | ||||||
| 	@mkdir -p $(HOST_BUILD_DIR) | 	@mkdir -p $(HOST_BUILD_DIR) | ||||||
|  | 	$(foreach hook,$(Hooks/HostPrepare/Pre),$(call $(hook))$(sep)) | ||||||
| 	$(call Host/Prepare) | 	$(call Host/Prepare) | ||||||
|  | 	$(foreach hook,$(Hooks/HostPrepare/Post),$(call $(hook))$(sep)) | ||||||
| 	touch $$@ | 	touch $$@ | ||||||
|  |  | ||||||
|   $(call Host/Exports,$(HOST_STAMP_CONFIGURED)) |   $(call Host/Exports,$(HOST_STAMP_CONFIGURED)) | ||||||
|   $(HOST_STAMP_CONFIGURED): $(HOST_STAMP_PREPARED) |   $(HOST_STAMP_CONFIGURED): $(HOST_STAMP_PREPARED) | ||||||
|  | 	$(foreach hook,$(Hooks/HostConfigure/Pre),$(call $(hook))$(sep)) | ||||||
| 	$(call Host/Configure) | 	$(call Host/Configure) | ||||||
|  | 	$(foreach hook,$(Hooks/HostConfigure/Post),$(call $(hook))$(sep)) | ||||||
| 	touch $$@ | 	touch $$@ | ||||||
|  |  | ||||||
|   $(call Host/Exports,$(HOST_STAMP_BUILT)) |   $(call Host/Exports,$(HOST_STAMP_BUILT)) | ||||||
| @@ -151,17 +156,23 @@ ifndef DUMP | |||||||
|     update: host-update |     update: host-update | ||||||
|  |  | ||||||
|     $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) |     $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) | ||||||
|  | 		$(foreach hook,$(Hooks/HostCompile/Pre),$(call $(hook))$(sep)) | ||||||
| 		$(call Host/Compile) | 		$(call Host/Compile) | ||||||
|  | 		$(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep)) | ||||||
| 		touch $$@ | 		touch $$@ | ||||||
|  |  | ||||||
|     $(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE) |     $(HOST_STAMP_INSTALLED): $(HOST_STAMP_BUILT) $(if $(FORCE_HOST_INSTALL),FORCE) | ||||||
| 		$(call Host/Install) | 		$(call Host/Install) | ||||||
|  | 		$(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep)) | ||||||
| 		mkdir -p $$(shell dirname $$@) | 		mkdir -p $$(shell dirname $$@) | ||||||
| 		touch $$@ | 		touch $$@ | ||||||
|   else |   else | ||||||
|     $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) $(if $(FORCE_HOST_INSTALL),FORCE) |     $(HOST_STAMP_BUILT): $(HOST_STAMP_CONFIGURED) $(if $(FORCE_HOST_INSTALL),FORCE) | ||||||
|  | 		$(foreach hook,$(Hooks/HostCompile/Pre),$(call $(hook))$(sep)) | ||||||
| 		$(call Host/Compile) | 		$(call Host/Compile) | ||||||
|  | 		$(foreach hook,$(Hooks/HostCompile/Post),$(call $(hook))$(sep)) | ||||||
| 		$(call Host/Install) | 		$(call Host/Install) | ||||||
|  | 		$(foreach hook,$(Hooks/HostInstall/Post),$(call $(hook))$(sep)) | ||||||
| 		touch $$@ | 		touch $$@ | ||||||
|   endif |   endif | ||||||
|   host-prepare: $(HOST_STAMP_PREPARED) |   host-prepare: $(HOST_STAMP_PREPARED) | ||||||
| @@ -182,4 +193,3 @@ ifndef DUMP | |||||||
|   clean: |   clean: | ||||||
|  |  | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -75,10 +75,6 @@ define Download/default | |||||||
|   MD5SUM:=$(PKG_MD5SUM) |   MD5SUM:=$(PKG_MD5SUM) | ||||||
| endef | endef | ||||||
|  |  | ||||||
| define sep |  | ||||||
|  |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| define Build/Exports/Default | define Build/Exports/Default | ||||||
|   $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR)/usr/share/aclocal $$(STAGING_DIR)/usr/share/aclocal-* $$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*),-I $$(p)) |   $(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR)/usr/share/aclocal $$(STAGING_DIR)/usr/share/aclocal-* $$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*),-I $$(p)) | ||||||
|   $(1) : export STAGING_PREFIX=$$(STAGING_DIR)/usr |   $(1) : export STAGING_PREFIX=$$(STAGING_DIR)/usr | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								rules.mk
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								rules.mk
									
									
									
									
									
								
							| @@ -28,6 +28,10 @@ merge=$(subst $(space),,$(1)) | |||||||
| confvar=$(call merge,$(foreach v,$(1),$(if $($(v)),y,n))) | confvar=$(call merge,$(foreach v,$(1),$(if $($(v)),y,n))) | ||||||
| strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1)) | strip_last=$(patsubst %.$(lastword $(subst .,$(space),$(1))),%,$(1)) | ||||||
|  |  | ||||||
|  | define sep | ||||||
|  |  | ||||||
|  | endef | ||||||
|  |  | ||||||
| _SINGLE=export MAKEFLAGS=$(space); | _SINGLE=export MAKEFLAGS=$(space); | ||||||
| CFLAGS:= | CFLAGS:= | ||||||
| ARCH:=$(subst i486,i386,$(subst i586,i386,$(subst i686,i386,$(call qstrip,$(CONFIG_ARCH))))) | ARCH:=$(subst i486,i386,$(subst i586,i386,$(subst i686,i386,$(call qstrip,$(CONFIG_ARCH))))) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jo-Philipp Wich
					Jo-Philipp Wich