chiark / gitweb /
sd-daemon: turn sd-daemon.c into a shared library
authorLennart Poettering <lennart@poettering.net>
Thu, 14 Jul 2011 21:06:31 +0000 (23:06 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 14 Jul 2011 21:06:31 +0000 (23:06 +0200)
.gitignore
Makefile.am
libsystemd-daemon.pc.in [new file with mode: 0644]
src/sd-daemon.c

index cd25404577462f13f9022f8a815fcaae3921b1cd..1c07f12d32312caada5301cb004f8f93c9f98945 100644 (file)
@@ -1,3 +1,4 @@
+libsystemd-daemon.pc
 libsystemd-login.pc
 test-login
 systemd-loginctl
index 445cc1e37e35d7c11186809bc8d2769ff7544929..767baf7cd3acdf21835d216569d9cef465d4fc3b 100644 (file)
@@ -23,6 +23,10 @@ LIBSYSTEMD_LOGIN_CURRENT=0
 LIBSYSTEMD_LOGIN_REVISION=0
 LIBSYSTEMD_LOGIN_AGE=0
 
+LIBSYSTEMD_DAEMON_CURRENT=0
+LIBSYSTEMD_DAEMON_REVISION=0
+LIBSYSTEMD_DAEMON_AGE=0
+
 # Dirs of external packages
 dbuspolicydir=@dbuspolicydir@
 dbussessionservicedir=@dbussessionservicedir@
@@ -189,6 +193,7 @@ systemgenerator_PROGRAMS += \
 endif
 
 lib_LTLIBRARIES = \
+       libsystemd-daemon.la \
         libsystemd-login.la
 
 pkginclude_HEADERS = \
@@ -422,6 +427,7 @@ EXTRA_DIST = \
        units/quotacheck.service.in \
         units/user@.service.in \
        systemd.pc.in \
+        libsystemd-daemon.pc.in \
         libsystemd-login.pc.in \
        introspect.awk \
         src/73-seat-late.rules.in
@@ -486,6 +492,7 @@ dist_doc_DATA = \
 
 pkgconfigdata_DATA = \
        systemd.pc \
+        libsystemd-daemon.pc \
         libsystemd-login.pc
 
 # Passed through intltool only
@@ -511,8 +518,7 @@ EXTRA_DIST += \
 
 noinst_LTLIBRARIES = \
        libsystemd-basic.la \
-       libsystemd-core.la \
-       libsystemd-daemon.la
+       libsystemd-core.la
 
 libsystemd_basic_la_SOURCES = \
        src/util.c \
@@ -601,9 +607,6 @@ libsystemd_core_la_LIBADD = \
        $(PAM_LIBS) \
        $(AUDIT_LIBS)
 
-libsystemd_daemon_la_SOURCES = \
-       src/sd-daemon.c
-
 # This is needed because automake is buggy in how it generates the
 # rules for C programs, but not Vala programs.  We therefore can't
 # list the .h files as dependencies if we want make dist to work.
@@ -1364,18 +1367,30 @@ pam_systemd_la_LIBADD = \
        $(PAM_LIBS) \
         $(DBUS_LIBS)
 
-libsystemd_login_la_CFLAGS = \
+libsystemd_daemon_la_SOURCES = \
+       src/sd-daemon.c
+
+libsystemd_daemon_la_CFLAGS = \
         $(AM_CFLAGS) \
-       -fvisibility=hidden
+       -fvisibility=hidden \
+        -DSD_EXPORT_SYMBOLS
 
-libsystemd_login_la_LDFLAGS = \
+libsystemd_daemon_la_LDFLAGS = \
         -shared \
-        -version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE)
+        -version-info $(LIBSYSTEMD_DAEMON_CURRENT):$(LIBSYSTEMD_DAEMON_REVISION):$(LIBSYSTEMD_DAEMON_AGE)
 
 libsystemd_login_la_SOURCES = \
         src/sd-login.c \
         src/cgroup-util.c
 
+libsystemd_login_la_CFLAGS = \
+        $(AM_CFLAGS) \
+       -fvisibility=hidden
+
+libsystemd_login_la_LDFLAGS = \
+        -shared \
+        -version-info $(LIBSYSTEMD_LOGIN_CURRENT):$(LIBSYSTEMD_LOGIN_REVISION):$(LIBSYSTEMD_LOGIN_AGE)
+
 libsystemd_login_la_LIBADD = \
        libsystemd-basic.la
 
@@ -1512,22 +1527,22 @@ endif
 DBUS_PREPROCESS = $(CPP) -P $(DBUS_CFLAGS) -imacros dbus/dbus-protocol.h
 
 org.freedesktop.systemd1.%.xml: systemd
-       $(AM_V_GEN)$(OBJCOPY) -O binary -j introspect.$* $< $@.tmp && \
+       $(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.$* $< $@.tmp && \
                $(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
                $(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
 org.freedesktop.hostname1.xml: systemd-hostnamed
-       $(AM_V_GEN)$(OBJCOPY) -O binary -j introspect.hostname1 $< $@.tmp && \
+       $(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.hostname1 $< $@.tmp && \
                $(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
                $(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
 org.freedesktop.locale1.xml: systemd-localed
-       $(AM_V_GEN)$(OBJCOPY) -O binary -j introspect.locale1 $< $@.tmp && \
+       $(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.locale1 $< $@.tmp && \
                $(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
                $(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
 org.freedesktop.timedate1.xml: systemd-timedated
-       $(AM_V_GEN)$(OBJCOPY) -O binary -j introspect.timedate1 $< $@.tmp && \
+       $(AM_V_GEN)$(LIBTOOL) --mode=execute $(OBJCOPY) -O binary -j introspect.timedate1 $< $@.tmp && \
                $(STRINGS) $@.tmp | $(AWK) -f $(srcdir)/introspect.awk | \
                $(DBUS_PREPROCESS) -o $@ - && rm $@.tmp
 
diff --git a/libsystemd-daemon.pc.in b/libsystemd-daemon.pc.in
new file mode 100644 (file)
index 0000000..2b6b9d6
--- /dev/null
@@ -0,0 +1,18 @@
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 2 of the License, or
+#  (at your option) any later version.
+
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: systemd
+Description: systemd Daemon Utility Library
+URL: @PACKAGE_URL@
+Version: @PACKAGE_VERSION@
+Libs: -L${libdir} -lsystemd-daemon
+Cflags: -I${includedir}
index a2ec74cceb59a744f9bec7486972832896cdb2ff..e68b70875c749a22dcbbfc6d7338d2c848f3a317 100644 (file)
 
 #include "sd-daemon.h"
 
-#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS)
-#define _sd_hidden_ __attribute__ ((visibility("hidden")))
+#if (__GNUC__ >= 4)
+#ifdef SD_EXPORT_SYMBOLS
+/* Export symbols */
+#define _sd_export_ __attribute__ ((visibility("default")))
 #else
-#define _sd_hidden_
+/* Don't export the symbols */
+#define _sd_export_ __attribute__ ((visibility("hidden")))
+#endif
+#else
+#define _sd_export_
 #endif
 
-_sd_hidden_ int sd_listen_fds(int unset_environment) {
+_sd_export_ int sd_listen_fds(int unset_environment) {
 
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
@@ -136,7 +142,7 @@ finish:
 #endif
 }
 
-_sd_hidden_ int sd_is_fifo(int fd, const char *path) {
+_sd_export_ int sd_is_fifo(int fd, const char *path) {
         struct stat st_fd;
 
         if (fd < 0)
@@ -169,7 +175,7 @@ _sd_hidden_ int sd_is_fifo(int fd, const char *path) {
         return 1;
 }
 
-_sd_hidden_ int sd_is_special(int fd, const char *path) {
+_sd_export_ int sd_is_special(int fd, const char *path) {
         struct stat st_fd;
 
         if (fd < 0)
@@ -256,7 +262,7 @@ union sockaddr_union {
         struct sockaddr_storage storage;
 };
 
-_sd_hidden_ int sd_is_socket(int fd, int family, int type, int listening) {
+_sd_export_ int sd_is_socket(int fd, int family, int type, int listening) {
         int r;
 
         if (family < 0)
@@ -284,7 +290,7 @@ _sd_hidden_ int sd_is_socket(int fd, int family, int type, int listening) {
         return 1;
 }
 
-_sd_hidden_ int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
+_sd_export_ int sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
         union sockaddr_union sockaddr;
         socklen_t l;
         int r;
@@ -329,7 +335,7 @@ _sd_hidden_ int sd_is_socket_inet(int fd, int family, int type, int listening, u
         return 1;
 }
 
-_sd_hidden_ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
+_sd_export_ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
         union sockaddr_union sockaddr;
         socklen_t l;
         int r;
@@ -372,7 +378,7 @@ _sd_hidden_ int sd_is_socket_unix(int fd, int type, int listening, const char *p
         return 1;
 }
 
-_sd_hidden_ int sd_is_mq(int fd, const char *path) {
+_sd_export_ int sd_is_mq(int fd, const char *path) {
 #if !defined(__linux__)
         return 0;
 #else
@@ -409,7 +415,7 @@ _sd_hidden_ int sd_is_mq(int fd, const char *path) {
 #endif
 }
 
-_sd_hidden_ int sd_notify(int unset_environment, const char *state) {
+_sd_export_ int sd_notify(int unset_environment, const char *state) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__) || !defined(SOCK_CLOEXEC)
         return 0;
 #else
@@ -477,7 +483,7 @@ finish:
 #endif
 }
 
-_sd_hidden_ int sd_notifyf(int unset_environment, const char *format, ...) {
+_sd_export_ int sd_notifyf(int unset_environment, const char *format, ...) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
 #else
@@ -499,7 +505,7 @@ _sd_hidden_ int sd_notifyf(int unset_environment, const char *format, ...) {
 #endif
 }
 
-_sd_hidden_ int sd_booted(void) {
+_sd_export_ int sd_booted(void) {
 #if defined(DISABLE_SYSTEMD) || !defined(__linux__)
         return 0;
 #else