diff options
| -rw-r--r-- | include/autotools.mk | 30 | ||||
| -rw-r--r-- | include/package.mk | 23 | 
2 files changed, 41 insertions, 12 deletions
| diff --git a/include/autotools.mk b/include/autotools.mk new file mode 100644 index 000000000..fd57e6472 --- /dev/null +++ b/include/autotools.mk @@ -0,0 +1,30 @@ +#  +# Copyright (C) 2007 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define replace +	if [ -f "$(PKG_BUILD_DIR)/$(3)$(1)" -a -e "$(2)/$(1)" ]; then \ +		rm -f $(PKG_BUILD_DIR)/$(3)$(1); \ +		ln -s $(2)/$(1) $(PKG_BUILD_DIR)/$(3); \ +	fi +	 +endef + +# replace copies of ltmain.sh with the build system's version +update_libtool=$(call replace,libtool,$(STAGING_DIR)/host/bin,$(CONFIGURE_PATH)/)$(call replace,ltmain.sh,$(STAGING_DIR)/host/share/libtool,$(CONFIGURE_PATH)/) + +# prevent libtool from linking against host development libraries +define libtool_fixup_libdir +	find $(PKG_BUILD_DIR) -name '*.la' | $(XARGS) \ +		$(SED) "s,^libdir='/usr/lib',libdir='$(strip $(1))/usr/lib',g" +endef + +ifneq ($(filter libtool,$(PKG_FIXUP)),) +  PKG_BUILD_DEPENDS += libtool +  Hooks/Configure/Pre += update_libtool +  Hooks/Configure/Post += update_libtool +  Hooks/Build/Post += libtool_fixup_libdir +endif diff --git a/include/package.mk b/include/package.mk index 7e6b750da..d5d39d8f3 100644 --- a/include/package.mk +++ b/include/package.mk @@ -27,6 +27,7 @@ include $(INCLUDE_DIR)/package-defaults.mk  include $(INCLUDE_DIR)/package-dumpinfo.mk  include $(INCLUDE_DIR)/package-ipkg.mk  include $(INCLUDE_DIR)/package-bin.mk +include $(INCLUDE_DIR)/autotools.mk  override MAKEFLAGS=  export CONFIG_SITE:=$(INCLUDE_DIR)/site/$(REAL_GNU_TARGET_NAME) @@ -50,6 +51,10 @@ define Download/default    MD5SUM:=$(PKG_MD5SUM)  endef +define sep + +endef +  define Build/DefaultTargets    $(if $(QUILT),$(Build/Quilt))    $(if $(strip $(PKG_SOURCE_URL)),$(call Download,default)) @@ -58,15 +63,21 @@ define Build/DefaultTargets    $(STAMP_PREPARED):  	@-rm -rf $(PKG_BUILD_DIR)  	@mkdir -p $(PKG_BUILD_DIR) +	$(foreach hook,$(Hooks/Prepare/Pre),$(call $(hook))$(sep))  	$(Build/Prepare) +	$(foreach hook,$(Hooks/Prepare/Post),$(call $(hook))$(sep))  	touch $$@    $(STAMP_CONFIGURED): $(STAMP_PREPARED) +	$(foreach hook,$(Hooks/Configure/Pre),$(call $(hook))$(sep))  	$(Build/Configure) +	$(foreach hook,$(Hooks/Configure/Post),$(call $(hook))$(sep))  	touch $$@    $(STAMP_BUILT): $(STAMP_CONFIGURED) +	$(foreach hook,$(Hooks/Compile/Pre),$(call $(hook))$(sep))  	$(Build/Compile) +	$(foreach hook,$(Hooks/Compile/Post),$(call $(hook))$(sep))  	touch $$@    $(STAMP_INSTALLED): $(STAMP_BUILT) @@ -126,18 +137,6 @@ endif    $(if $(DUMP),,$(call Build/DefaultTargets,$(1)))  endef -# prevent libtool from setting rpath when linking -define libtool_disable_rpath -	find $(PKG_BUILD_DIR) -name 'libtool' | $(XARGS) \ -		$(SED) 's,^hardcode_libdir_flag_spec=.*,hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ ",g' -endef - -# prevent libtool from linking against host development libraries -define libtool_fixup_libdir -	find $(PKG_BUILD_DIR) -name '*.la' | $(XARGS) \ -		$(SED) "s,^libdir='/usr/lib',libdir='$(strip $(1))/usr/lib',g" -endef -  define pkg_install_files  	$(foreach install_file,$(1),$(INSTALL_DIR) $(3)/`dirname $(install_file)`; $(INSTALL_DATA) $(2)/$(install_file) $(3)/`dirname $(install_file)`;)  endef | 
