chiark / gitweb /
build-sys: speed up build via convenience library
authorLennart Poettering <lennart@poettering.net>
Thu, 17 Jun 2010 22:44:57 +0000 (00:44 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 17 Jun 2010 22:44:57 +0000 (00:44 +0200)
Makefile.am
bootstrap.sh
configure.ac
fixme

index 798b4635ce0aca4ba9b63b0942df998075f51ad6..3dc4b0f28e23cc77a63c4842b43f90a2a147e529 100644 (file)
@@ -200,10 +200,15 @@ dist_doc_DATA = \
        src/sd-daemon.h \
        src/sd-daemon.c
 
+noinst_LTLIBRARIES = \
+       libsystemd-basic.la \
+       libsystemd-core.la
+
 # 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.
-BASIC_SOURCES = \
+
+libsystemd_basic_la_SOURCES = \
         src/util.c \
         src/hashmap.c \
         src/set.c \
@@ -213,8 +218,7 @@ BASIC_SOURCES = \
         src/log.c \
         src/ratelimit.c
 
-COMMON_SOURCES = \
-       $(BASIC_SOURCES) \
+libsystemd_core_la_SOURCES = \
        src/unit.c \
         src/job.c \
         src/manager.c \
@@ -259,8 +263,23 @@ COMMON_SOURCES = \
        src/namespace.c \
        src/tcpwrap.c
 
+libsystemd_core_la_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(DBUS_CFLAGS) \
+       $(UDEV_CFLAGS) \
+       $(CGROUP_CFLAGS)
+
+libsystemd_core_la_LIBADD = \
+       libsystemd-basic.la \
+       $(DBUS_LIBS) \
+       $(UDEV_LIBS) \
+       $(CGROUP_LIBS) \
+       $(LIBWRAP_LIBS) \
+       $(PAM_LIBS)
+
 EXTRA_DIST += \
-       ${COMMON_SOURCES:.c=.h} \
+       ${libsystemd_basic_la_SOURCES:.c=.h} \
+       ${libsystemd_core_la_SOURCES:.c=.h} \
        src/macro.h \
        src/ioprio.h \
        src/missing.h \
@@ -292,7 +311,6 @@ EXTRA_DIST += \
        man/systemd.special.html.in
 
 systemd_SOURCES = \
-       $(COMMON_SOURCES) \
        src/main.c
 
 systemd_CFLAGS = \
@@ -302,55 +320,50 @@ systemd_CFLAGS = \
        $(CGROUP_CFLAGS)
 
 systemd_LDADD = \
-       $(DBUS_LIBS) \
-       $(UDEV_LIBS) \
-       $(CGROUP_LIBS) \
-       $(LIBWRAP_LIBS) \
-       $(PAM_LIBS)
+       libsystemd-core.la
 
 test_engine_SOURCES = \
-       $(COMMON_SOURCES) \
        src/test-engine.c
 
 test_engine_CFLAGS = $(systemd_CFLAGS)
 test_engine_LDADD = $(systemd_LDADD)
 
 test_job_type_SOURCES = \
-       $(COMMON_SOURCES) \
        src/test-job-type.c
 
 test_job_type_CFLAGS = $(systemd_CFLAGS)
 test_job_type_LDADD = $(systemd_LDADD)
 
 test_ns_SOURCES = \
-       $(BASIC_SOURCES) \
-       src/test-ns.c \
-       src/namespace.c
+       src/test-ns.c
 
 test_ns_CFLAGS = $(systemd_CFLAGS)
 test_ns_LDADD = $(systemd_LDADD)
 
 test_loopback_SOURCES = \
-       $(BASIC_SOURCES) \
        src/test-loopback.c \
        src/loopback-setup.c
 
+test_loopback_LDADD = \
+       libsystemd-basic.la
+
 test_daemon_SOURCES = \
-       $(BASIC_SOURCES) \
        src/test-daemon.c \
        src/sd-daemon.c
 
+test_daemon_LDADD = \
+       libsystemd-basic.la
+
 systemd_logger_SOURCES = \
-       $(BASIC_SOURCES) \
        src/logger.c \
        src/sd-daemon.c \
        src/tcpwrap.c
 
 systemd_logger_LDADD = \
+       libsystemd-basic.la \
        $(LIBWRAP_LIBS)
 
 systemd_initctl_SOURCES = \
-       $(BASIC_SOURCES) \
        src/initctl.c \
        src/sd-daemon.c
 
@@ -359,10 +372,10 @@ systemd_initctl_CFLAGS = \
        $(DBUS_CFLAGS)
 
 systemd_initctl_LDADD = \
+       libsystemd-basic.la \
        $(DBUS_LIBS)
 
 systemd_cgroups_agent_SOURCES = \
-       $(BASIC_SOURCES) \
        src/cgroups-agent.c
 
 systemd_cgroups_agent_CFLAGS = \
@@ -370,28 +383,39 @@ systemd_cgroups_agent_CFLAGS = \
        $(DBUS_CFLAGS)
 
 systemd_cgroups_agent_LDADD = \
+       libsystemd-basic.la \
        $(DBUS_LIBS)
 
 systemctl_SOURCES = \
        src/systemctl.c \
-       src/utmp-wtmp.c \
-       $(BASIC_SOURCES)
+       src/utmp-wtmp.c
+
+systemctl_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(DBUS_CFLAGS)
 
-systemctl_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
-systemctl_LDADD = $(DBUS_LIBS)
+systemctl_LDADD = \
+       libsystemd-basic.la \
+       $(DBUS_LIBS)
 
 systemd_notify_SOURCES = \
        src/notify.c \
-       src/sd-daemon.c \
-       $(BASIC_SOURCES)
+       src/sd-daemon.c
+
+systemd_notify_LDADD = \
+       libsystemd-basic.la
 
 systemd_install_SOURCES = \
        src/install.c \
-       src/path-lookup.c \
-       $(BASIC_SOURCES)
+       src/path-lookup.c
+
+systemd_install_LDADD = \
+       libsystemd-basic.la
 
 # We don't really link here against D-Bus, however we indirectly include D-Bus header files
-systemd_install_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)
+systemd_install_CFLAGS = \
+       $(AM_CFLAGS) \
+       $(DBUS_CFLAGS)
 
 systemadm_SOURCES = \
        src/systemadm.vala \
@@ -412,7 +436,9 @@ systemadm_VALAFLAGS = \
        --pkg=gtk+-2.0 \
        -g
 
-systemadm_LDADD = $(DBUSGLIB_LIBS) $(GTK_LIBS)
+systemadm_LDADD = \
+       $(DBUSGLIB_LIBS) \
+       $(GTK_LIBS)
 
 SED_PROCESS = \
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
index f59a8156bfd0bc3eddc01277afd1710ba6c60b8f..6f13ba2b2d32a731fc9e3e2cc78d58ef7537faab 100755 (executable)
@@ -59,6 +59,7 @@ else
     rm -rf autom4te.cache
     rm -f config.cache
 
+    libtoolize -c --force
     run_versioned aclocal "$AM_VERSION" -I m4
     run_versioned autoconf "$AC_VERSION" -Wall
     run_versioned autoheader "$AC_VERSION"
index 6e28bfcad013e872c02459ef7f51c6d5afa06771..cdcb71cec15471599720d45d35956fbafa7713be 100644 (file)
@@ -87,6 +87,9 @@ CC_CHECK_CFLAGS_APPEND([ \
         -fdiagnostics-show-option \
         -fno-strict-aliasing])
 
+LT_PREREQ(2.2)
+LT_INIT
+
 AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])])
 AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
 AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers not found])])
diff --git a/fixme b/fixme
index 7aca3ee08b031160007cddb7fd90ee6baf32d01d..947ae0d144a4fb83f47ae436a5acb198956993b5 100644 (file)
--- a/fixme
+++ b/fixme
@@ -67,8 +67,6 @@
 
 * systemd-sysvinit as package
 
-* convenience library
-
 * install must understand templates
 
 * shutdown must be able to do wall