build: Use pipe symbol instead of comma for substitutions.
[bpt/guile.git] / meta / Makefile.am
index b96483b..d49ebd9 100644 (file)
@@ -1,8 +1,8 @@
 ## Process this file with Automake to create Makefile.in
 ## Jim Blandy <jimb@red-bean.com> --- September 1997
 ##
-##     Copyright (C) 1998, 1999, 2001, 2006, 2007, 2008, 2009, 2011,
-##        2012, 2013 Free Software Foundation, Inc.
+##     Copyright (C) 1998, 1999, 2001, 2006-2009, 2011-2015
+##        Free Software Foundation, Inc.
 ##
 ##   This file is part of GUILE.
 ##   
 ##   Fifth Floor, Boston, MA 02110-1301 USA
 
 bin_SCRIPTS = guile-config guild
-EXTRA_DIST= \
-  guile.m4 ChangeLog-2008                      \
-  guile-2.2.pc.in guile-2.2-uninstalled.pc.in  \
+EXTRA_DIST=                                            \
+  guile.m4 ChangeLog-2008                              \
+  guile-$(GUILE_EFFECTIVE_VERSION).pc.in               \
+  guile-$(GUILE_EFFECTIVE_VERSION)-uninstalled.pc.in   \
   guild.in guile-config.in
 
 # What we now call `guild' used to be known as `guile-tools'.
@@ -37,21 +38,81 @@ install-exec-hook:
        $(LN_S) "$$guild" "$$guile_tools"
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = guile-2.2.pc
+pkgconfig_DATA = guile-$(GUILE_EFFECTIVE_VERSION).pc
 
 ## FIXME: in the future there will be direct automake support for
 ## doing this.  When that happens, switch over.
 aclocaldir = $(datadir)/aclocal
 aclocal_DATA = guile.m4
 
+# Script to instantiate substitution variables found on the standard
+# input.  We do this from the Makefile because we need things like
+# $(program_transform_name), which are not usable from 'configure.ac'.
+#
+# Some of these may include things like "-Wl,-rpath", which is why we do
+# not use a comma to separate the 's' arguments.
+substitute =                                                                   \
+  guile="`echo guile | $(SED) -e '$(program_transform_name)'`" ;               \
+  guild="`echo guild | $(SED) -e '$(program_transform_name)'`" ;               \
+  installed_guile="@bindir@/$$guile" ;                                         \
+  $(SED) -e "s|[@]PACKAGE_NAME[@]|$(PACKAGE_NAME)|g"                           \
+        -e "s|[@]PACKAGE_BUGREPORT[@]|$(PACKAGE_BUGREPORT)|g"                  \
+        -e "s|[@]GUILE_EFFECTIVE_VERSION[@]|$(GUILE_EFFECTIVE_VERSION)|g"      \
+        -e "s|[@]GUILE_VERSION[@]|$(GUILE_VERSION)|g"                          \
+        -e "s|[@]GUILE_CFLAGS[@]|$(GUILE_CFLAGS)|g"                            \
+        -e "s|[@]GUILE_LIBS[@]|$(GUILE_LIBS)|g"                                \
+        -e "s|[@]LIBGUILE_INTERFACE[@]|$(LIBGUILE_INTERFACE)|g"                \
+        $(dependency_substitutions)                                            \
+        -e "s|[@]PKG_CONFIG[@]|$(PKG_CONFIG)|g"                                \
+        -e "s|[@]pkgconfigdir[@]|$(pkgconfigdir)|g"                            \
+        -e "s|[@]prefix[@]|$(prefix)|g"                                        \
+        -e "s|[@]exec_prefix[@]|$(exec_prefix)|g"                              \
+        -e "s|[@]bindir[@]|$(bindir)|g"                                        \
+        -e "s|[@]libdir[@]|$(libdir)|g"                                        \
+        -e "s|[@]includedir[@]|$(includedir)|g"                                \
+        -e "s|[@]datarootdir[@]|$(datarootdir)|g"                              \
+        -e "s|[@]datadir[@]|$(datadir)|g"                                      \
+        -e "s|[@]sitedir[@]|$(sitedir)|g"                                      \
+        -e "s|[@]guile[@]|$$guile|g"                                           \
+        -e "s|[@]guild[@]|$$guild|g"                                           \
+        -e "s|[@]installed_guile[@]|$$installed_guile|g"
+
+# Substitutions for dependencies that appear in 'guile-2.0.pc'.
+dependency_substitutions =                             \
+  -e "s|[@]BDW_GC_CFLAGS[@]|$(BDW_GC_CFLAGS)|g"                \
+  -e "s|[@]BDW_GC_LIBS[@]|$(BDW_GC_LIBS)|g"            \
+  -e "s|[@]LIB_CLOCK_GETTIME[@]|$(LIB_CLOCK_GETTIME)|g"        \
+  -e "s|[@]LIBGMP[@]|$(LIBGMP)|g"                      \
+  -e "s|[@]LIBLTDL[@]|$(LIBLTDL)|g"                    \
+  -e "s|[@]LIBFFI_LIBS[@]|$(LIBFFI_LIBS)|g"            \
+  -e "s|[@]LIBUNISTRING[@]|$(LIBUNISTRING)|g"          \
+  -e "s|[@]LIBICONV[@]|$(LIBICONV)|g"                  \
+  -e "s|[@]LIBINTL[@]|$(LIBINTL)|g"                    \
+  -e "s|[@]LIBSOCKET[@]|$(LIBSOCKET)|g"                        \
+  -e "s|[@]SERVENT_LIB[@]|$(SERVENT_LIB)|g"            \
+  -e "s|[@]HOSTENT_LIB[@]|$(HOSTENT_LIB)|g"            \
+  -e "s|[@]GETADDRINFO_LIB[@]|$(GETADDRINFO_LIB)|g"    \
+  -e "s|[@]INET_NTOP_LIB[@]|$(INET_NTOP_LIB)|g"                \
+  -e "s|[@]INET_PTON_LIB[@]|$(INET_PTON_LIB)|g"
+
+guile-$(GUILE_EFFECTIVE_VERSION).pc: guile-$(GUILE_EFFECTIVE_VERSION).pc.in
+       $(substitute) < "$<" > "$@.out"
+       mv "$@.out" "$@"
+
+guile-$(GUILE_EFFECTIVE_VERSION)-uninstalled.pc: guile-$(GUILE_EFFECTIVE_VERSION)-uninstalled.pc.in
+       $(substitute) < "$<" > "$@.out"
+       mv "$@.out" "$@"
+
 guile-config: $(srcdir)/guile-config.in $(top_builddir)/config.status
-       guile="@bindir@/`echo guile | $(SED) -e '$(program_transform_name)'`" ; \
-       cat $(srcdir)/guile-config.in                                           \
-       | $(SED) -e "s,@pkgconfigdir@,$(pkgconfigdir),g"                        \
-                -e "s,@""PKG_CONFIG@,$(PKG_CONFIG),g"                          \
-                -e "s,@installed_guile@,$$guile,g"                             \
-       > guile-config.out
-       mv guile-config.out guile-config
-       chmod +x guile-config
-
-CLEANFILES = guile-config
+       $(substitute) < "$<" > "$@.out"
+       chmod +x "$@.out"
+       mv "$@.out" "$@"
+
+guild: $(srcdir)/guild.in $(top_builddir)/config.status
+       $(substitute) < "$<" > "$@.out"
+       chmod +x "$@.out"
+       mv "$@.out" "$@"
+
+CLEANFILES =                                   \
+  guile-config guild                           \
+  guile-$(GUILE_EFFECTIVE_VERSION).pc guile-$(GUILE_EFFECTIVE_VERSION)-uninstalled.pc