move .pc file generation from Makefile.am to configure.ac

This change moves the logic for generating pkg-config (.pc) files from
Makefile.am to configure.ac using AC_CONFIG_COMMANDS. This ensures that
these files are generated at configure time. The generation logic preserves
the "echo" approach to maintain control over the output content and
avoid standard template instantiation if it was desired to keep the script-like behavior.

Also updated Makefile.am to remove the generation rules and moved the .pc files
from CLEANFILES to DISTCLEANFILES so they are cleaned up by `make distclean`
rather than `make clean`.

[alkondratenko@gmail.com: made trivial comment update]
Signed-off-by: Aliaksei Kandratsenka <alkondratenko@gmail.com>
diff --git a/Makefile.am b/Makefile.am
index db1106d..f9beb13 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -847,48 +847,7 @@
 if WITH_CPU_PROFILER
 pkgconfig_DATA += libprofiler.pc
 endif WITH_CPU_PROFILER
-CLEANFILES = $(pkgconfig_DATA)
-
-libtcmalloc.pc: Makefile
-	echo 'prefix=$(prefix)' > "$@".tmp
-	echo 'exec_prefix='`echo '$(exec_prefix)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
-	echo 'libdir='`echo '$(libdir)' | sed 's@^$(exec_prefix)@$${exec_prefix}@'` >> "$@".tmp
-	echo 'includedir='`echo '$(includedir)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
-	echo '' >> "$@".tmp
-	echo 'Name: $(PACKAGE)' >> "$@".tmp
-	echo 'Version: $(VERSION)' >> "$@".tmp
-	echo 'Description: Performance tools for C++' >> "$@".tmp
-	echo 'URL: https://github.com/gperftools/gperftools' >> "$@".tmp
-	echo 'Requires: $(UNWIND_PC_DEP)' >> "$@".tmp
-	echo 'Libs: -L$${libdir} -ltcmalloc' >> "$@".tmp
-	echo 'Libs.private: $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)' >> "$@".tmp
-	echo 'Cflags: -I$${includedir}' >> "$@".tmp
-	mv -f "$@".tmp "$@"
-
-libtcmalloc_minimal.pc: libtcmalloc.pc
-	echo 'prefix=$(prefix)' > "$@".tmp
-	echo 'exec_prefix='`echo '$(exec_prefix)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
-	echo 'libdir='`echo '$(libdir)' | sed 's@^$(exec_prefix)@$${exec_prefix}@'` >> "$@".tmp
-	echo 'includedir='`echo '$(includedir)' | sed 's@^$(prefix)@$${prefix}@'` >> "$@".tmp
-	echo '' >> "$@".tmp
-	echo 'Name: $(PACKAGE)' >> "$@".tmp
-	echo 'Version: $(VERSION)' >> "$@".tmp
-	echo 'Description: Performance tools for C++' >> "$@".tmp
-	echo 'URL: https://github.com/gperftools/gperftools' >> "$@".tmp
-	echo 'Requires:' >> "$@".tmp
-	echo 'Libs: -L$${libdir} -ltcmalloc_minimal' >> "$@".tmp
-	echo 'Libs.private: $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)' >> "$@".tmp
-	echo 'Cflags: -I$${includedir}' >> "$@".tmp
-	mv -f "$@".tmp "$@"
-
-libtcmalloc_debug.pc: libtcmalloc.pc
-	cat libtcmalloc.pc | sed s/-ltcmalloc/-ltcmalloc_debug/ > "$@"
-
-libtcmalloc_minimal_debug.pc: libtcmalloc_minimal.pc
-	cat libtcmalloc_minimal.pc | sed s/-ltcmalloc_minimal/-ltcmalloc_minimal_debug/ > "$@"
-
-libprofiler.pc: libtcmalloc.pc
-	cat libtcmalloc.pc | sed s/-ltcmalloc/-lprofiler/ > "$@"
+DISTCLEANFILES = $(pkgconfig_DATA)
 
 $(top_distdir)/ChangeLog:
 	if test ! -f $(top_srcdir)/ChangeLog ; \
diff --git a/configure.ac b/configure.ac
index 7d0c7ca..378a068 100644
--- a/configure.ac
+++ b/configure.ac
@@ -508,6 +508,55 @@
       [AC_MSG_WARN([asciidoctor tool not found. Will skip building .html documentation from .adoc])])
 AC_ARG_VAR(ASCIIDOCTOR_FLAGS, [flags to pass to asciidoctor])
 
-# Write generated configuration file
+# Generate pkgconfig files to inform others how to compile/link with
+# us.
+AC_CONFIG_COMMANDS([pkgconfig-generator], [
+  cat > libtcmalloc.pc <<EOF
+prefix=$prefix
+exec_prefix=`echo "$exec_prefix" | sed "s@^$prefix@\\\${prefix}@"`
+libdir=`echo "$libdir" | sed "s@^$exec_prefix@\\\${exec_prefix}@"`
+includedir=`echo "$includedir" | sed "s@^$prefix@\\\${prefix}@"`
+
+Name: $PACKAGE
+Version: $VERSION
+Description: Performance tools for C++
+URL: https://github.com/gperftools/gperftools
+Requires: $UNWIND_PC_DEP
+Libs: -L\${libdir} -ltcmalloc
+Libs.private: $PTHREAD_CFLAGS $PTHREAD_LIBS
+Cflags: -I\${includedir}
+EOF
+
+  cat > libtcmalloc_minimal.pc <<EOF
+prefix=$prefix
+exec_prefix=`echo "$exec_prefix" | sed "s@^$prefix@\\\${prefix}@"`
+libdir=`echo "$libdir" | sed "s@^$exec_prefix@\\\${exec_prefix}@"`
+includedir=`echo "$includedir" | sed "s@^$prefix@\\\${prefix}@"`
+
+Name: $PACKAGE
+Version: $VERSION
+Description: Performance tools for C++
+URL: https://github.com/gperftools/gperftools
+Requires:
+Libs: -L\${libdir} -ltcmalloc_minimal
+Libs.private: $PTHREAD_CFLAGS $PTHREAD_LIBS
+Cflags: -I\${includedir}
+EOF
+
+  cat libtcmalloc.pc | sed s/-ltcmalloc/-ltcmalloc_debug/ > libtcmalloc_debug.pc
+  cat libtcmalloc_minimal.pc | sed s/-ltcmalloc_minimal/-ltcmalloc_minimal_debug/ > libtcmalloc_minimal_debug.pc
+  cat libtcmalloc.pc | sed s/-ltcmalloc/-lprofiler/ > libprofiler.pc
+], [
+  PACKAGE="$PACKAGE_NAME"
+  VERSION="$PACKAGE_VERSION"
+  UNWIND_PC_DEP="$UNWIND_PC_DEP"
+  PTHREAD_CFLAGS="$PTHREAD_CFLAGS"
+  PTHREAD_LIBS="$PTHREAD_LIBS"
+  prefix="$prefix"
+  exec_prefix="$exec_prefix"
+  libdir="$libdir"
+  includedir="$includedir"
+])
+
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT