summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package/dbus/dbus.mk16
1 files changed, 11 insertions, 5 deletions
diff --git a/package/dbus/dbus.mk b/package/dbus/dbus.mk
index e0522411b..92405bd5b 100644
--- a/package/dbus/dbus.mk
+++ b/package/dbus/dbus.mk
@@ -13,10 +13,18 @@ DBUS_TARGET_BINARY:=usr/bin/dbus-daemon
ifeq ($(BR2_DBUS_EXPAT),y)
DBUS_XML:=expat
-DBUS_XML_DEP:=expat
+# depend on the exact library file instead of expat so dbus isn't always
+# considered out-of-date
+DBUS_XML_DEP:=$(STAGING_DIR)/usr/lib/libexpat.so.1
else
DBUS_XML:=libxml
-DBUS_XML_DEP:=libxml2
+# Makefile.autotools.in unfortunately has broken dependency handling,
+# so we cannot do the same for libxml2 as the targets (like
+# libxml2-install-staging) are phony and hence, dbus will always be
+# considered out-of-date. Using the corresponding .stamp_* files (E.G.
+# LIBXML2_TARGET_INSTALL_STAGING doesn't work as there's no dependency
+# information between them.
+DBUS_XML_DEP:=libxml2-install-staging
endif
$(DL_DIR)/$(DBUS_SOURCE):
@@ -86,7 +94,7 @@ ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/man
endif
-dbus: uclibc pkgconfig $(DBUS_XML_DEP) $(TARGET_DIR)/$(DBUS_TARGET_BINARY)
+dbus: uclibc pkgconfig $(TARGET_DIR)/$(DBUS_TARGET_BINARY)
dbus-clean:
rm -f $(TARGET_DIR)/etc/dbus-1/session.conf
@@ -113,5 +121,3 @@ dbus-dirclean:
ifeq ($(BR2_PACKAGE_DBUS),y)
TARGETS+=dbus
endif
-
-