buildroot/package/dbus/dbus.mk

106 lines
2.6 KiB
Makefile
Raw Normal View History

################################################################################
#
# dbus
#
################################################################################
DBUS_VERSION = 1.8.6
DBUS_SITE = http://dbus.freedesktop.org/releases/dbus
DBUS_LICENSE = AFLv2.1 GPLv2+
DBUS_LICENSE_FILES = COPYING
DBUS_INSTALL_STAGING = YES
define DBUS_PERMISSIONS
/usr/libexec/dbus-daemon-launch-helper f 4755 0 0 - - - - -
endef
DBUS_DEPENDENCIES = host-pkgconf expat
DBUS_CONF_ENV = ac_cv_have_abstract_sockets=yes
DBUS_CONF_OPT = --with-dbus-user=dbus \
--disable-tests \
--disable-asserts \
--enable-abstract-sockets \
--disable-selinux \
--disable-xml-docs \
--disable-doxygen-docs \
--disable-dnotify \
--localstatedir=/var \
--with-xml=expat \
--with-system-socket=/var/run/dbus/system_bus_socket \
--with-system-pid-file=/var/run/messagebus.pid
define DBUS_USERS
dbus -1 dbus -1 * /var/run/dbus - dbus DBus messagebus user
endef
ifeq ($(BR2_PREFER_STATIC_LIB),y)
dbus: use -pthread instead of -lpthread This fixes a problem in other packages when they link against dbus. For instance, with the dnsmasq package: /buildroot/output/host/usr/bin/mipsel-ctng-linux-uclibc-gcc --static -lidn -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o domain.o dnssec.o blockdata.o -L/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib -ldbus-1 -lpthread -L/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib -lidn -liconv -L/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib -llua -lm -Wl,-Bstatic -lhogweed -L/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib -lnettle -lgmp -Wl,-Bdynamic -Wl,-Bstatic -lgmp -Wl,-Bdynamic /buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/lib/libpthread.a(init.os): In function `__pthread_initialize_minimal_internal': init.c:(.text+0x26c): undefined reference to `__libc_setup_tls' collect2: error: ld returned 1 exit status make[2]: *** [dnsmasq] Error 1 make[2]: Leaving directory `/buildroot/output/build/dnsmasq-2.71/src' When dnsmasq tries to link against dbus it checks the dbus pkgconfig file to obtain the LIBS that it need to pass to the linker. In the dbus .pc file you have "-ldbus-1 -lpthread" because -lpthread was used when building dbus. If you use -pthread when you build dbus, then you will have -pthread in the dbus .pc file as well. -lpthread means that we want to link with a library called pthread. -pthread is a compiler option which will do whatever is needed to be done to compile with the pthreads standards so that it works. Fixes: http://autobuild.buildroot.net/results/7cd/7cdab3b6f74dbfde965300a51e58a377ba30602b/ Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-07-01 17:52:36 +08:00
DBUS_CONF_OPT += LIBS='-pthread'
endif
ifeq ($(BR2_microblaze),y)
# microblaze toolchain doesn't provide inotify_rm_* but does have sys/inotify.h
DBUS_CONF_OPT += --disable-inotify
endif
ifeq ($(BR2_PACKAGE_XLIB_LIBX11),y)
DBUS_CONF_OPT += --with-x
DBUS_DEPENDENCIES += xlib_libX11
else
DBUS_CONF_OPT += --without-x
endif
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
DBUS_CONF_OPT += --with-systemdsystemunitdir=/lib/systemd/system
endif
# fix rebuild (dbus makefile errors out if /var/lib/dbus is a symlink)
define DBUS_REMOVE_VAR_LIB_DBUS
rm -rf $(TARGET_DIR)/var/lib/dbus
endef
DBUS_POST_BUILD_HOOKS += DBUS_REMOVE_VAR_LIB_DBUS
define DBUS_REMOVE_DEVFILES
rm -rf $(TARGET_DIR)/usr/lib/dbus-1.0
endef
DBUS_POST_INSTALL_TARGET_HOOKS += DBUS_REMOVE_DEVFILES
define DBUS_INSTALL_TARGET_FIXUP
mkdir -p $(TARGET_DIR)/var/lib
rm -rf $(TARGET_DIR)/var/lib/dbus
ln -sf /tmp/dbus $(TARGET_DIR)/var/lib/dbus
endef
DBUS_POST_INSTALL_TARGET_HOOKS += DBUS_INSTALL_TARGET_FIXUP
define DBUS_INSTALL_INIT_SYSV
$(INSTALL) -m 0755 -D package/dbus/S30dbus \
$(TARGET_DIR)/etc/init.d/S30dbus
endef
HOST_DBUS_DEPENDENCIES = host-pkgconf host-expat
HOST_DBUS_CONF_OPT = \
2009-03-17 04:58:15 +08:00
--with-dbus-user=dbus \
--disable-tests \
--disable-asserts \
--enable-abstract-sockets \
--disable-selinux \
--disable-xml-docs \
--disable-doxygen-docs \
--enable-dnotify \
--without-x \
--with-xml=expat
2009-03-17 04:58:15 +08:00
# dbus for the host
DBUS_HOST_INTROSPECT=$(HOST_DBUS_DIR)/introspect.xml
2009-03-17 04:58:15 +08:00
HOST_DBUS_GEN_INTROSPECT = \
$(HOST_DIR)/usr/bin/dbus-daemon --introspect > $(DBUS_HOST_INTROSPECT)
HOST_DBUS_POST_INSTALL_HOOKS += HOST_DBUS_GEN_INTROSPECT
2009-03-17 04:58:15 +08:00
$(eval $(autotools-package))
$(eval $(host-autotools-package))