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.
This commit is contained in:
Peter Korsgaard
2009-03-19 11:06:47 +00:00
parent f58ff9a25f
commit e7b38c71ce
15 changed files with 203 additions and 195 deletions

View File

@@ -56,23 +56,22 @@ $(DBUS_HOOK_POST_INSTALL): $(DBUS_TARGET_INSTALL_TARGET)
# dbus for the host
DBUS_HOST_DIR:=$(BUILD_DIR)/dbus-$(DBUS_VERSION)-host
DBUS_HOST_BINARY:=$(HOST_DIR)/usr/bin/dbus-daemon
DBUS_HOST_INTROSPECT:=$(DBUS_HOST_DIR)/introspect.xml
$(DBUS_HOST_DIR)/.unpacked: $(DL_DIR)/$(DBUS_SOURCE)
mkdir -p $(@D)
$(STAMP_DIR)/host_dbus_unpacked: $(DL_DIR)/$(DBUS_SOURCE)
mkdir -p $(DBUS_HOST_DIR)
$(INFLATE$(suffix $(DBUS_SOURCE))) $< | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(DBUS_HOST_DIR) $(TAR_OPTIONS) -
touch $@
$(DBUS_HOST_DIR)/.configured: $(DBUS_HOST_DIR)/.unpacked $(EXPAT_HOST_BINARY)
(cd $(@D); rm -rf config.cache; \
$(STAMP_DIR)/host_dbus_configured: $(DBUS_HOST_DIR)/.unpacked $(STAMP_DIR)/host_expat_installed $(STAMP_DIR)/host_pkgconfig_installed
(cd $(DBUS_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" \
--with-dbus-user=dbus \
--disable-tests \
--disable-asserts \
@@ -87,25 +86,24 @@ $(DBUS_HOST_DIR)/.configured: $(DBUS_HOST_DIR)/.unpacked $(EXPAT_HOST_BINARY)
)
touch $@
$(DBUS_HOST_DIR)/.compiled: $(DBUS_HOST_DIR)/.configured
$(HOST_MAKE_ENV) $(MAKE) -C $(@D)
$(STAMP_DIR)/host_dbus_compiled: $(STAMP_DIR)/host_dbus_configured
$(HOST_MAKE_ENV) $(MAKE) -C $(DBUS_HOST_DIR)
touch $@
$(DBUS_HOST_BINARY): $(DBUS_HOST_DIR)/.compiled
$(MAKE) -C $(<D) install
$(STAMP_DIR)/host_dbus_installed: $(STAMP_DIR)/host_dbus_compiled
$(MAKE) -C $(DBUS_HOST_DIR) install
$(HOST_DIR)/usr/bin/dbus-daemon --introspect > $(DBUS_HOST_INTROSPECT)
touch $@
$(DBUS_HOST_INTROSPECT): $(DBUS_HOST_BINARY)
$(DBUS_HOST_BINARY) --introspect > $@
host-dbus: $(DBUS_HOST_INTROSPECT)
host-dbus: $(STAMP_DIR)/host_dbus_installed
host-dbus-source: dbus-source
host-dbus-clean:
rm -f $(addprefix $(DBUS_HOST_DIR)/,.unpacked .configured .compiled)
rm -f $(addprefix $(STAMP_DIR)/host_dbus_,unpacked configured compiled installed)
rm -f $(DBUS_HOST_INTROSPECT)
$(MAKE) -C $(DBUS_HOST_DIR) uninstall
$(MAKE) -C $(DBUS_HOST_DIR) clean
-$(MAKE) -C $(DBUS_HOST_DIR) uninstall
-$(MAKE) -C $(DBUS_HOST_DIR) clean
host-dbus-dirclean:
rm -rf $(DBUS_HOST_DIR)