From 1f4df57b153c231c85a63993219cb8315bec282a Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Fri, 4 Apr 2014 10:13:44 +0200 Subject: Makefile: Use alternative method to replace *bindir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Installation-Directory-Variables.html Most of these variables have values that rely on prefix or exec_prefix. It is deliberate that the directory output variables keep them unexpanded: typically ‘@sbindir@’ is replaced by ‘${exec_prefix}/sbin’, not ‘/usr/local/sbin’. This behavior is mandated by the GNU Coding Standards. Installation directory variables (sbindir, pkgdatadir ...) should be used only in makefiles. Similarly, we should not rely on AC_CONFIG_FILES to replace sbindir and friends in shell scripts and other files; instead, let make manage their replacement. Resolves: https://fedorahosted.org/sssd/ticket/2293 Reviewed-by: Jakub Hrozek --- Makefile.am | 21 +++++++++++++++++++++ configure.ac | 3 +-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 9056f29d7..5abaf1778 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2032,6 +2032,26 @@ dist_sssdapiplugin_DATA = \ src/config/etc/sssd.api.d/sssd-proxy.conf \ src/config/etc/sssd.api.d/sssd-simple.conf +edit_cmd = $(SED) \ + -e 's|@sbindir[@]|$(sbindir)|g' \ + -e 's|@environment_file[@]|$(environment_file)|g' \ + -e 's|@localstatedir[@]|$(localstatedir)|g' \ + -e 's|@prefix[@]|$(prefix)|g' + +replace_script = \ + @rm -f $@ $@.tmp; \ + srcdir=''; \ + test -f ./$@.in || srcdir=$(srcdir)/; \ + $(edit_cmd) $${srcdir}$@.in >$@.tmp; \ + mv $@.tmp $@ + +EXTRA_DIST += \ + src/sysv/systemd/sssd.service.in + +src/sysv/systemd/sssd.service: src/sysv/systemd/sssd.service.in Makefile + @$(MKDIR_P) src/sysv/systemd/ + $(replace_script) + installsssddirs:: mkdir -p \ $(DESTDIR)$(includedir) \ @@ -2139,6 +2159,7 @@ endif rm -Rf $$doc; \ done; rm -Rf ldb_mod_test_dir + rm -f $(builddir)/src/sysv/systemd/sssd.service CLEANFILES = *.X */*.X */*/*.X diff --git a/configure.ac b/configure.ac index c389bec4f..b7601317d 100644 --- a/configure.ac +++ b/configure.ac @@ -306,8 +306,7 @@ AC_DEFINE_UNQUOTED([ABS_BUILD_DIR], ["$abs_build_dir"], [Absolute path to the bu AC_SUBST([abs_builddir], $abs_build_dir) AC_CONFIG_FILES([Makefile contrib/sssd.spec src/examples/rwtab src/doxy.config - src/sysv/systemd/sssd.service src/sysv/sssd - src/sysv/gentoo/sssd src/sysv/SUSE/sssd + src/sysv/sssd src/sysv/gentoo/sssd src/sysv/SUSE/sssd po/Makefile.in src/man/Makefile src/providers/ipa/ipa_hbac.pc src/providers/ipa/ipa_hbac.doxy src/lib/idmap/sss_idmap.pc src/lib/idmap/sss_idmap.doxy -- cgit