chiark / gitweb /
build-sys: use .DELETE_ON_ERROR
[elogind.git] / Makefile.am
index e4bd7254c3c4f8b756e3792b98479792193ecc3d..f20966154373ac8f0361803faaec748c1336af3f 100644 (file)
@@ -23,6 +23,9 @@ AM_MAKEFLAGS = --no-print-directory
 
 SUBDIRS = . po
 
+# remove targets if the command fails
+.DELETE_ON_ERROR:
+
 LIBUDEV_CURRENT=1
 LIBUDEV_REVISION=2
 LIBUDEV_AGE=0
@@ -141,6 +144,7 @@ AM_CPPFLAGS = \
        -I $(top_srcdir)/src/login \
        -I $(top_srcdir)/src/journal \
        -I $(top_srcdir)/src/systemd \
+       -I $(top_builddir)/src/core \
        -I $(top_srcdir)/src/core \
        -I $(top_srcdir)/src/libudev \
        -I $(top_srcdir)/src/udev
@@ -658,14 +662,32 @@ noinst_DATA = \
 
 CLEANFILES += \
        $(MANPAGES) \
-       $(MANPAGES_ALIAS)
+       $(MANPAGES_ALIAS) \
+       ${XML_FILES:.xml=.html}
+
+if HAVE_PYTHON
+noinst_DATA += \
+       man/index.html
+
+CLEANFILES += \
+       man/index.html
+
+$(builddir)/man/index.html: $(XML_FILES:.xml=.html) $(top_srcdir)/make-man-index.py
+       $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+       $(PYTHON) $(top_srcdir)/make-man-index.py $(XML_FILES) > $@
+
+EXTRA_DIST += \
+       man/index.html
+endif
+
 endif
 
 EXTRA_DIST += \
        $(XML_FILES) \
        ${XML_FILES:.xml=.html} \
        $(MANPAGES) \
-       $(MANPAGES_ALIAS)
+       $(MANPAGES_ALIAS) \
+       make-man-index.py
 
 # ------------------------------------------------------------------------------
 noinst_LTLIBRARIES += \
@@ -674,6 +696,8 @@ noinst_LTLIBRARIES += \
 libsystemd_shared_la_SOURCES = \
        src/shared/linux/auto_dev-ioctl.h \
        src/shared/linux/fanotify.h \
+       src/shared/linux/seccomp.h \
+       src/shared/linux/seccomp-bpf.h \
        src/shared/missing.h \
        src/shared/list.h \
        src/shared/macro.h \
@@ -947,11 +971,15 @@ libsystemd_core_la_SOURCES = \
        src/core/switch-root.h \
        src/core/switch-root.c \
        src/core/killall.h \
-       src/core/killall.c
+       src/core/killall.c \
+       src/core/syscall-list.c \
+       src/core/syscall-list.h
 
 nodist_libsystemd_core_la_SOURCES = \
        src/core/load-fragment-gperf.c \
-       src/core/load-fragment-gperf-nulstr.c
+       src/core/load-fragment-gperf-nulstr.c \
+       src/core/syscall-from-name.h \
+       src/core/syscall-to-name.h
 
 libsystemd_core_la_CFLAGS = \
        $(AM_CFLAGS) \
@@ -976,7 +1004,7 @@ libsystemd_core_la_LIBADD = \
 
 src/core/load-fragment-gperf-nulstr.c: src/core/load-fragment-gperf.gperf
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
-       $(AWK) 'BEGIN{ keywords=0 ; FS="," ; print "extern const char load_fragment_gperf_nulstr[];" ; print "const char load_fragment_gperf_nulstr[] ="} ; keyword==1 { print "\"" $$1 "\\0\"" } ; /%%/ { keyword=1} ; END { print ";" }' < $< > $@ || rm $@
+       $(AWK) 'BEGIN{ keywords=0 ; FS="," ; print "extern const char load_fragment_gperf_nulstr[];" ; print "const char load_fragment_gperf_nulstr[] ="} ; keyword==1 { print "\"" $$1 "\\0\"" } ; /%%/ { keyword=1} ; END { print ";" }' < $< > $@
 
 EXTRA_DIST += \
        src/core/load-fragment-gperf.gperf.m4
@@ -984,7 +1012,27 @@ EXTRA_DIST += \
 CLEANFILES += \
        src/core/load-fragment-gperf.gperf \
        src/core/load-fragment-gperf.c \
-       src/core/load-fragment-gperf-nulstr.c
+       src/core/load-fragment-gperf-nulstr.c \
+       src/core/syscall-list.txt \
+       src/core/syscall-from-name.gperf \
+       src/core/syscall-from-name.h \
+       src/core/syscall-to-name.h
+
+BUILT_SOURCES += \
+       src/core/syscall-from-name.h \
+       src/core/syscall-to-name.h
+
+src/core/syscall-list.txt: Makefile
+       $(AM_V_GEN)cpp $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include sys/syscall.h < /dev/null | $(AWK) '/^#define[ \t]+__NR_[^ ]+[ \t]+[0-9]/ { sub(/__NR_/, "", $$2); print $$2; }' > $@
+
+src/core/syscall-from-name.gperf: src/core/syscall-list.txt Makefile
+       $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct syscall_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, __NR_%s\n", $$1, $$1 }' < $< > $@
+
+src/core/syscall-from-name.h: src/core/syscall-from-name.gperf Makefile
+       $(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_syscall -H hash_syscall_name -p -C < $< > $@
+
+src/core/syscall-to-name.h: src/core/syscall-list.txt Makefile
+       $(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const syscall_names[] = { "} { printf "[__NR_%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
 
 # ------------------------------------------------------------------------------
 systemd_SOURCES = \
@@ -1756,22 +1804,10 @@ test_libudev_LDADD = \
        libudev.la
 
 test_udev_SOURCES = \
-       src/test/test-udev.c \
-       $(libudev_core_la_SOURCES) \
-       $(libudev_private_la_SOURCES)
-
-# The test-udev program needs everything compiled with relative path
-# names for /sys, /dev, /run prefixed, pointing to our test/ directory.
-test_udev_CFLAGS = \
-       -DTEST_PREFIX=\"test\" \
-       $(libudev_core_la_CFLAGS) \
-       $(libudev_private_la_CFLAGS)
-
-test_udev_CPPFLAGS =\
-       $(libudev_core_la_CPPFLAGS)
+       src/test/test-udev.c
 
 test_udev_LDADD = \
-       libsystemd-label.la \
+       libudev-core.la \
        libsystemd-shared.la \
        $(BLKID_LIBS) \
        $(KMOD_LIBS) \
@@ -2161,11 +2197,11 @@ dist_udevkeymapforcerel_DATA = \
        keymaps-force-release/samsung-90x3a \
        keymaps-force-release/common-volume-keys
 
-src/udev/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h
+src/udev/keymap/keys.txt: Makefile
        $(AM_V_at)mkdir -p src/udev/keymap
-       $(AM_V_GEN)$(AWK) '/^#define.*KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' < $< | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
+       $(AM_V_GEN)cpp $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@
 
-src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt
+src/udev/keymap/keys-from-name.gperf: src/udev/keymap/keys.txt Makefile
        $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
 
 src/udev/keymap/keys-from-name.h: src/udev/keymap/keys-from-name.gperf Makefile
@@ -2425,7 +2461,7 @@ noinst_PROGRAMS += \
        test-journal-stream
 
 TESTS += \
-       test-journal
+       test-journal \
        test-journal-match \
        test-journal-stream
 
@@ -3291,7 +3327,7 @@ SED_PROCESS = \
                -e 's,@rootprefix\@,$(rootprefix),g' \
                -e 's,@udevlibexecdir\@,$(udevlibexecdir),g' \
                -e 's,@sushell\@,$(sushell),g' \
-               < $< > $@ || rm $@
+               < $< > $@
 
 units/%: units/%.in Makefile
        $(SED_PROCESS)
@@ -3324,15 +3360,15 @@ src/%.c: src/%.gperf
 
 src/%: src/%.m4
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
-       $(M4) -P $(M4_DEFINES) < $< > $@ || rm $@
+       $(M4) -P $(M4_DEFINES) < $< > $@
 
 M4_PROCESS_SYSTEM = \
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
-       $(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@ || rm $@
+       $(M4) -P $(M4_DEFINES) -DFOR_SYSTEM=1 < $< > $@
 
 M4_PROCESS_USER = \
        $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
-       $(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@ || rm $@
+       $(M4) -P $(M4_DEFINES) -DFOR_USER=1 < $< > $@
 
 units/%: units/%.m4 Makefile
        $(M4_PROCESS_SYSTEM)
@@ -3388,7 +3424,7 @@ man/%.7: man/%.xml
 man/%.8: man/%.xml
        $(XSLTPROC_PROCESS_MAN)
 
-man/%.html: man/%.xml
+man/%.html: man/%.xml man/custom-html.xsl
        $(XSLTPROC_PROCESS_HTML)
 
 CLEANFILES += \