summaryrefslogtreecommitdiff
path: root/config-extra.h.mk
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2019-06-17 13:41:05 +0200
committerThomas Haller <thaller@redhat.com>2019-06-17 17:42:09 +0200
commit11d59de600e4af093db642279945d79efa5d1f33 (patch)
treef7de809da080787c2a32b94b95b2d56b086a37d6 /config-extra.h.mk
parent721f238946efd26ca04335633dac34353c9d44e9 (diff)
downloadNetworkManager-11d59de600e4af093db642279945d79efa5d1f33.tar.gz
build/autotools: generate "config-extra.h" via makefile "config-extra.h.mk"
When the code that generates "config-extra.h" changes, we want to regenerate the file. Move that code to a separate makefile so we can add a dependency. Otherwise, we'd had to depend on "Makefile", which itself is generated by Makefile.am. Also, depend on "config.h" to regenerate it when ./configure runs and touches that header. This may not cover all cases where ./configure's configuration changes and a regeneration would be due. But such is life. Also, most components depend on this header, so let various .dirstamp files depend on it, so we are sure to build this first. That because, autotools generates dependencies for header files automatically, but that requires that the header file exist. Such automatic dependencies don't work out-of-the-box for generated headers. Co-authored-by: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'config-extra.h.mk')
-rw-r--r--config-extra.h.mk27
1 files changed, 27 insertions, 0 deletions
diff --git a/config-extra.h.mk b/config-extra.h.mk
new file mode 100644
index 0000000000..b1d3814ff0
--- /dev/null
+++ b/config-extra.h.mk
@@ -0,0 +1,27 @@
+# With autotools, it is not easily possible to generate these defines
+# from configure.ac.
+#
+# See https://www.gnu.org/software/autoconf/manual/autoconf-2.63/html_node/Installation-Directory-Variables.html
+#
+# With meson-only, they could just be set via config.h.meson
+config-extra.h: config-extra.h.mk config.h
+ $(AM_V_GEN) \
+ echo "/* Generated by Makefile.am */" >$@ && \
+ echo "#define BINDIR \"$(bindir)\"" >>$@ && \
+ echo "#define DATADIR \"$(datadir)\"" >>$@ && \
+ echo "#define LIBEXECDIR \"$(libexecdir)\"" >>$@ && \
+ echo "#define LOCALSTATEDIR \"$(localstatedir)\"" >>$@ && \
+ echo "#define NMCONFDIR \"$(nmconfdir)\"" >>$@ && \
+ echo "#define NMLIBDIR \"$(nmlibdir)\"" >>$@ && \
+ echo "#define NMLOCALEDIR \"$(nmlocaledir)\"" >>$@ && \
+ echo "#define NMPLUGINDIR \"$(plugindir)\"" >>$@ && \
+ echo "#define NMRUNDIR \"$(nmrundir)\"" >>$@ && \
+ echo "#define NMSTATEDIR \"$(nmstatedir)\"" >>$@ && \
+ echo "#define NMVPNDIR \"$(pkglibdir)\"" >>$@ && \
+ echo "#define NM_BUILD_BUILDDIR \"$(abs_builddir)\"" >>$@ && \
+ echo "#define NM_BUILD_SRCDIR \"$(abs_srcdir)\"" >>$@ && \
+ echo "#define PPPD_PLUGIN_DIR \"$(PPPD_PLUGIN_DIR)\"" >>$@ && \
+ echo "#define PREFIX \"$(prefix)\"" >>$@ && \
+ echo "#define RUNSTATEDIR \"$(runstatedir)\"" >>$@ && \
+ echo "#define SYSCONFDIR \"$(sysconfdir)\"" >>$@ && \
+ true