Commit e7b38c71 authored by Peter Korsgaard's avatar Peter Korsgaard
Browse files

package: add STAMP_DIR and use for host builds

Move stamp (dependency) files outside the (version specific) source
directories, so other packages can hardcode dependencies on them instead
of having to use <PACKAGE>_VERSION variables.

This is important as the variables in the make rules are evaluated when
the rules is seen, which might be before the dependent makefile is parsed
(and hence <PACKAGE>_VERSION variable is known, screwing up stuff.

The downside of this is that the package isn't automatically rebuilt
when the version changes (E.G. by a svn update) and you now also have to
remove the stamp files next to $(BUILD_DIR)/<PACKAGE>-* to force a rebuild.
parent f58ff9a2
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -283,7 +283,7 @@ $(BR2_DEPENDS_DIR): .config

dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
	$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
	$(PROJECT_BUILD_DIR)/autotools-stamps
	$(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)

$(BASE_TARGETS): dirs

@@ -295,7 +295,7 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
	$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
	$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
	$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
	$(PROJECT_BUILD_DIR)/autotools-stamps
	$(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)

#############################################################
#
@@ -304,7 +304,7 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
#
#############################################################
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(HOST_DIR) $(PROJECT_BUILD_DIR) \
	$(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR):
	$(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR) $(STAMP_DIR):
	@mkdir -p $@

$(STAGING_DIR):
@@ -365,10 +365,10 @@ external-deps:
#
#############################################################
clean: $(TARGETS_CLEAN)
	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)

dirclean: $(TARGETS_DIRCLEAN)
	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
	rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)

distclean:
ifeq ($(DL_DIR),$(BASE_DIR)/dl)
+2 −2
Original line number Diff line number Diff line
@@ -252,7 +252,7 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
		DEFAULT_LINKER="$(TARGET_LD)" \
		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig$(PKG_CONFIG_PATH)" \
		STAGING_DIR="$(STAGING_DIR)"

TARGET_CONFIGURE_ENV=\
@@ -297,7 +297,7 @@ HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
		ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \
		ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \
		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
		PKG_CONFIG_PATH="$(HOST_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)"
		PKG_CONFIG_PATH="$(HOST_DIR)/usr/lib/pkgconfig$(PKG_CONFIG_PATH)"

HOST_MAKE_ENV=PATH=$(HOST_PATH)

+15 −15
Original line number Diff line number Diff line
@@ -59,41 +59,41 @@ $(eval $(call AUTOTARGETS,package,atk))

# atk for the host
ATK_HOST_DIR:=$(BUILD_DIR)/atk-$(ATK_VERSION)-host
ATK_HOST_BINARY:=$(HOST_DIR)/usr/lib/libatk-1.0.a

$(ATK_HOST_DIR)/.unpacked: $(DL_DIR)/$(ATK_SOURCE)
	mkdir -p $(@D)
$(STAMP_DIR)/host_atk_unpacked: $(DL_DIR)/$(ATK_SOURCE)
	mkdir -p $(ATK_HOST_DIR)
	$(INFLATE$(suffix $(ATK_SOURCE))) $< | \
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(ATK_HOST_DIR) $(TAR_OPTIONS) -
	touch $@

$(ATK_HOST_DIR)/.configured: $(ATK_HOST_DIR)/.unpacked $(LIBGLIB2_HOST_BINARY) $(PKG_CONFIG_HOST_BINARY)
	(cd $(@D); rm -rf config.cache; \
$(STAMP_DIR)/host_atk_configured: $(STAMP_DIR)/host_atk_unpacked $(STAMP_DIR)/host_libglib2_installed $(STAMP_DIR)/host_pkgconfig_installed
	(cd $(ATK_HOST_DIR); rm -rf config.cache; \
		$(HOST_CONFIGURE_OPTS) \
		CFLAGS="$(HOST_CFLAGS)" \
		LDFLAGS="$(HOST_LDFLAGS)" \
		$(@D)/configure \
		--prefix=$(HOST_DIR)/usr \
		--sysconfdir=$(HOST_DIR)/etc \
		./configure \
		--prefix="$(HOST_DIR)/usr" \
		--sysconfdir="$(HOST_DIR)/etc" \
		--enable-shared \
		--disable-static \
		--disable-glibtest \
	)
	touch $@

$(ATK_HOST_DIR)/.compiled: $(ATK_HOST_DIR)/.configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
$(STAMP_DIR)/host_atk_compiled: $(STAMP_DIR)/host_atk_configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR)
	touch $@

$(ATK_HOST_BINARY): $(ATK_HOST_DIR)/.compiled
	$(HOST_MAKE_ENV) $(MAKE) -C $(<D) install
$(STAMP_DIR)/host_atk_installed: $(STAMP_DIR)/host_atk_compiled
	$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR) install
	touch $@

host-atk: $(ATK_HOST_BINARY)
host-atk: $(STAMP_DIR)/host_atk_installed

host-atk-source: atk-source

host-atk-clean:
	rm -f $(addprefix $(ATK_HOST_DIR)/,.unpacked .configured .compiled)
	rm -f $(addprefix $(STAMP_DIR)/host_atk_,unpacked configured compiled installed)
	-$(MAKE) -C $(ATK_HOST_DIR) uninstall
	-$(MAKE) -C $(ATK_HOST_DIR) clean

+15 −15
Original line number Diff line number Diff line
@@ -86,22 +86,21 @@ $(eval $(call AUTOTARGETS,package,cairo))

# cairo for the host
CAIRO_HOST_DIR:=$(BUILD_DIR)/cairo-$(CAIRO_VERSION)-host
CAIRO_HOST_BINARY:=$(HOST_DIR)/usr/lib/libcairo.a

$(CAIRO_HOST_DIR)/.unpacked: $(DL_DIR)/$(CAIRO_SOURCE)
	mkdir -p $(@D)
$(STAMP_DIR)/host_cairo_unpacked: $(DL_DIR)/$(CAIRO_SOURCE)
	mkdir -p $(CAIRO_HOST_DIR)
	$(INFLATE$(suffix $(CAIRO_SOURCE))) $< | \
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(CAIRO_HOST_DIR) $(TAR_OPTIONS) -
	touch $@

$(CAIRO_HOST_DIR)/.configured: $(CAIRO_HOST_DIR)/.unpacked $(PKG_CONFIG_HOST_BINARY) $(FONTCONFIG_HOST_BINARY) $(PIXMAN_HOST_BINARY)
	(cd $(@D); rm -rf config.cache; \
$(STAMP_DIR)/host_cairo_configured: $(STAMP_DIR)/host_cairo_unpacked $(STAMP_DIR)/host_pkgconfig_installed $(STAMP_DIR)/host_fontconfig_installed $(STAMP_DIR)/host_pixman_installed
	(cd $(CAIRO_HOST_DIR); rm -rf config.cache; \
		$(HOST_CONFIGURE_OPTS) \
		CFLAGS="$(HOST_CFLAGS)" \
		LDFLAGS="$(HOST_LDFLAGS)" \
		$(@D)/configure \
		--prefix=$(HOST_DIR)/usr \
		--sysconfdir=$(HOST_DIR)/etc \
		./configure \
		--prefix="$(HOST_DIR)/usr" \
		--sysconfdir="$(HOST_DIR)/etc" \
		--enable-ps \
		--enable-pdf \
		--enable-xlib \
@@ -111,19 +110,20 @@ $(CAIRO_HOST_DIR)/.configured: $(CAIRO_HOST_DIR)/.unpacked $(PKG_CONFIG_HOST_BIN
	)
	touch $@

$(CAIRO_HOST_DIR)/.compiled: $(CAIRO_HOST_DIR)/.configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
$(STAMP_DIR)/host_cairo_compiled: $(STAMP_DIR)/host_cairo_configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR)
	touch $@

$(CAIRO_HOST_BINARY): $(CAIRO_HOST_DIR)/.compiled
	$(HOST_MAKE_ENV) $(MAKE) -C $(<D) install
$(STAMP_DIR)/host_cairo_installed: $(STAMP_DIR)/host_cairo_compiled
	$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR) install
	touch $@

host-cairo: $(CAIRO_HOST_BINARY)
host-cairo: $(STAMP_DIR)/host_cairo_installed

host-cairo-source: cairo-source

host-cairo-clean:
	rm -f $(addprefix $(CAIRO_HOST_DIR)/,.unpacked .configured .compiled)
	rm -f $(addprefix $(STAMP_DIR)/host_cairo_,unpacked configured compiled installed)
	-$(MAKE) -C $(CAIRO_HOST_DIR) uninstall
	-$(MAKE) -C $(CAIRO_HOST_DIR) clean

+17 −16
Original line number Diff line number Diff line
@@ -31,20 +31,20 @@ $(eval $(call AUTOTARGETS,package,dbus-glib))
DBUS_GLIB_HOST_DIR:=$(BUILD_DIR)/dbus-glib-$(DBUS_GLIB_VERSION)-host
DBUS_GLIB_HOST_BINARY:=$(HOST_DIR)/usr/bin/dbus-binding-tool

$(DBUS_GLIB_HOST_DIR)/.unpacked: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
	mkdir -p $(@D)
$(STAMP_DIR)/host_dbusglib_unpacked: $(DL_DIR)/$(DBUS_GLIB_SOURCE)
	mkdir -p $(DBUS_GLIB_HOST_DIR)
	$(INFLATE$(suffix $(DBUS_GLIB_SOURCE))) $< | \
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
		$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(DBUS_GLIB_HOST_DIR) $(TAR_OPTIONS) -
	touch $@

$(DBUS_GLIB_HOST_DIR)/.configured: $(DBUS_GLIB_HOST_DIR)/.unpacked $(EXPAT_HOST_BINARY)
	(cd $(@D); rm -rf config.cache; \
$(STAMP_DIR)/host_dbusglib_configured: $(STAMP_DIR)/host_dbusglib_unpacked $(STAMP_DIR)/host_dbus_installed
	(cd $(DBUS_GLIB_HOST_DIR); rm -rf config.cache; \
		$(HOST_CONFIGURE_OPTS) \
		CFLAGS="$(HOST_CFLAGS)" \
		LDFLAGS="$(HOST_LDFLAGS)" \
		$(@D)/configure \
		--prefix=$(HOST_DIR)/usr \
		--sysconfdir=$(HOST_DIR)/etc \
		./configure \
		--prefix="$(HOST_DIR)/usr" \
		--sysconfdir="$(HOST_DIR)/etc" \
		--disable-tests \
		--disable-xml-docs \
		--disable-bash-completion \
@@ -53,21 +53,22 @@ $(DBUS_GLIB_HOST_DIR)/.configured: $(DBUS_GLIB_HOST_DIR)/.unpacked $(EXPAT_HOST_
	)
	touch $@

$(DBUS_GLIB_HOST_DIR)/.compiled: $(DBUS_GLIB_HOST_DIR)/.configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
$(STAMP_DIR)/host_dbusglib_compiled: $(STAMP_DIR)/host_dbusglib_configured
	$(HOST_MAKE_ENV) $(MAKE) -C $(DBUS_GLIB_HOST_DIR)
	touch $@

$(DBUS_GLIB_HOST_BINARY): $(DBUS_GLIB_HOST_DIR)/.compiled
	$(MAKE) -C $(<D) install
$(STAMP_DIR)/host_dbusglib_installed: $(STAMP_DIR)/host_dbusglib_compiled
	$(HOST_MAKE_ENV) $(MAKE) -C $(DBUS_GLIB_HOST_DIR) install
	touch $@

host-dbus-glib: $(DBUS_GLIB_HOST_BINARY)
host-dbus-glib: $(STAMP_DIR)/host_dbusglib_installed

host-dbus-glib-source: dbus-glib-source

host-dbus-glib-clean:
	rm -f $(addprefix $(DBUS_GLIB_HOST_DIR)/,.unpacked .configured .compiled)
	$(MAKE) -C $(DBUS_GLIB_HOST_DIR) uninstall
	$(MAKE) -C $(DBUS_GLIB_HOST_DIR) clean
	rm -f $(addprefix $(STAMP_DIR)/host_dbusglib_,unpacked configured compiled installed)
	-$(MAKE) -C $(DBUS_GLIB_HOST_DIR) uninstall
	-$(MAKE) -C $(DBUS_GLIB_HOST_DIR) clean

host-dbus-glib-dirclean:
	rm -rf $(DBUS_GLIB_HOST_DIR)
Loading