summaryrefslogtreecommitdiff
path: root/Makefile.am
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-07-30 23:57:50 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-07-31 00:27:56 +0200
commitbd923ff29e09eee0a6be15813339351cd2175b62 (patch)
treeadcc0d8ccd3606e8afe8270d548ee66fd2268de3 /Makefile.am
parent023b9d33e93ea79b6f81daab82cfdca35360e2d0 (diff)
build-sys: always create the output directory first
$(MKDIR_P) is added where missing, and rules are standardized on one form of $(MKDIR_P), to make it easier to spot when it is missing. Single line $(MKDIR)&&command form is broken into two line form. https://bugs.freedesktop.org/show_bug.cgi?id=49459 For compilation in a separate build directory to work, when a file is generated, the rule must include an explicit mkdir first, unless the file is created at the top level. Even when building in a separate build-dir, automake would normally create all directories as a side result of creating the dependencies files. Therefore the bug was only visible with -C (turning off dependency generation).
Diffstat (limited to 'Makefile.am')
-rw-r--r--Makefile.am57
1 files changed, 30 insertions, 27 deletions
diff --git a/Makefile.am b/Makefile.am
index e4dfafb4b5..153cfd6432 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -677,8 +677,8 @@ CLEANFILES += \
man/index.html
man/index.html: make-man-index.py $(XML_FILES)
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(PYTHON) $^ > $@
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(PYTHON) $^ > $@
EXTRA_DIST += \
man/index.html
@@ -1011,8 +1011,8 @@ libsystemd_core_la_LIBADD = \
$(KMOD_LIBS)
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 ";" }' < $< > $@
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(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
@@ -1029,15 +1029,19 @@ BUILT_SOURCES += \
src/core/syscall-to-name.h
src/core/syscall-list.txt: Makefile
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
$(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_at)$(MKDIR_P) $(dir $@)
$(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_at)$(MKDIR_P) $(dir $@)
$(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_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const syscall_names[] = { "} { printf "[__NR_%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' < $< > $@
# ------------------------------------------------------------------------------
@@ -1515,7 +1519,7 @@ pkginclude_HEADERS += \
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libsystemd-daemon-install-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libsystemd-daemon.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libsystemd-daemon.so && \
@@ -1626,7 +1630,7 @@ CLEANFILES += \
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libudev-install-move-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libudev.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libudev.so && \
@@ -1671,7 +1675,7 @@ man/systemd-udevd-control.socket.8: man/systemd-udevd.service.8
man/systemd-udevd-kernel.socket.8: man/systemd-udevd.service.8
udev-confdirs:
- -mkdir -p $(DESTDIR)$(sysconfdir)/udev/rules.d
+ -$(MKDIR_P) $(DESTDIR)$(sysconfdir)/udev/rules.d
INSTALL_DATA_HOOKS += udev-confdirs
@@ -1717,10 +1721,10 @@ CLEANFILES += \
units/systemd-udev-settle.service
systemd-install-hook:
- mkdir -p $(DESTDIR)$(systemunitdir)/sockets.target.wants
+ $(MKDIR_P) $(DESTDIR)$(systemunitdir)/sockets.target.wants
ln -sf ../systemd-udevd-control.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-control.socket
ln -sf ../systemd-udevd-kernel.socket $(DESTDIR)$(systemunitdir)/sockets.target.wants/systemd-udevd-kernel.socket
- mkdir -p $(DESTDIR)$(systemunitdir)/sysinit.target.wants
+ $(MKDIR_P) $(DESTDIR)$(systemunitdir)/sysinit.target.wants
ln -sf ../systemd-udevd.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udevd.service
ln -sf ../systemd-udev-trigger.service $(DESTDIR)$(systemunitdir)/sysinit.target.wants/systemd-udev-trigger.service
@@ -1836,7 +1840,8 @@ check_DATA += \
# packed sysfs test tree
test/sys:
- $(AM_V_GEN)mkdir -p test && tar -C test/ -xJf $(top_srcdir)/test/sys.tar.xz
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)tar -C test/ -xJf $(top_srcdir)/test/sys.tar.xz
test-sys-distclean:
-rm -rf test/sys
@@ -2002,19 +2007,17 @@ libgudev_1_0_la_LDFLAGS = \
-export-symbols-regex '^g_udev_.*'
src/gudev/gudevmarshal.h: src/gudev/gudevmarshal.list
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
$(AM_V_GEN)glib-genmarshal $< --prefix=g_udev_marshal --header > $@
src/gudev/gudevmarshal.c: src/gudev/gudevmarshal.list
- $(AM_V_GEN)echo "#include \"gudevmarshal.h\"" > $@ && \
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)echo '#include "gudevmarshal.h"' > $@ && \
glib-genmarshal $< --prefix=g_udev_marshal --body >> $@
-src/gudev/gudevenumtypes.h: src/gudev/gudevenumtypes.h.template src/gudev/gudevenums.h
- $(AM_V_GEN)glib-mkenums --template $^ > \
- $@.tmp && mv $@.tmp $@
-
-src/gudev/gudevenumtypes.c: src/gudev/gudevenumtypes.c.template src/gudev/gudevenums.h
- $(AM_V_GEN)glib-mkenums --template $^ > \
- $@.tmp && mv $@.tmp $@
+src/gudev/gudevenumtypes.%: src/gudev/gudevenumtypes.%.template src/gudev/gudevenums.h
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)glib-mkenums --template $^ > $@
if HAVE_INTROSPECTION
-include $(INTROSPECTION_MAKEFILE)
@@ -2067,7 +2070,7 @@ endif # HAVE_INTROSPECTION
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libgudev-install-move-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libgudev-1.0.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libgudev-1.0.so && \
@@ -2202,7 +2205,7 @@ dist_udevkeymapforcerel_DATA = \
keymaps-force-release/common-volume-keys
src/udev/keymap/keys.txt: Makefile
- $(AM_V_at)mkdir -p src/udev/keymap
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
$(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 Makefile
@@ -2282,7 +2285,7 @@ pkgconfiglib_DATA += \
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libsystemd-id128-install-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libsystemd-id128.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libsystemd-id128.so && \
@@ -2446,7 +2449,7 @@ endif
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libsystemd-journal-install-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libsystemd-journal.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libsystemd-journal.so && \
@@ -3172,7 +3175,7 @@ endif
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
libsystemd-login-install-hook:
if test "$(libdir)" != "$(rootlibdir)"; then \
- mkdir -p $(DESTDIR)$(rootlibdir) && \
+ $(MKDIR_P) $(DESTDIR)$(rootlibdir) && \
so_img_name=$$(readlink $(DESTDIR)$(libdir)/libsystemd-login.so) && \
so_img_rel_target_prefix=$$(echo $(libdir) | sed 's,\(^/\|\)[^/][^/]*,..,g') && \
ln -sf $$so_img_rel_target_prefix$(rootlibdir)/$$so_img_name $(DESTDIR)$(libdir)/libsystemd-login.so && \
@@ -3381,12 +3384,12 @@ src/%.policy.in: src/%.policy.in.in Makefile
$(AM_V_GEN)chmod +x $@
src/%.c: src/%.gperf
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(GPERF) < $< > $@
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(GPERF) < $< > $@
src/%: src/%.m4
- $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
- $(M4) -P $(M4_DEFINES) < $< > $@
+ $(AM_V_at)$(MKDIR_P) $(dir $@)
+ $(AM_V_GEN)$(M4) -P $(M4_DEFINES) < $< > $@
M4_PROCESS_SYSTEM = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \