mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-18 21:28:02 +00:00
- 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:
parent
135cfe50c9
commit
dbf8d9c516
@ -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)))))
|
||||||
|
Loading…
Reference in New Issue
Block a user