summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--ChangeLog6
-rw-r--r--Makefile.am5
-rw-r--r--NEWS4
-rw-r--r--configure.in7
-rw-r--r--doc/ref/ChangeLog6
-rw-r--r--doc/ref/autoconf.texi41
-rw-r--r--doc/ref/guile.texi4
-rw-r--r--guile-1.8.pc.in15
9 files changed, 83 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index fde53928d..a1221767f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,4 @@ guile-config/guile-config
guile-readline/guile-readline-config.h
guile-readline/guile-readline-config.h.in
TAGS
+guile-1.8.pc
diff --git a/ChangeLog b/ChangeLog
index 598fb177f..fc7dc9860 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-04 Ludovic Courtès <ludo@gnu.org>
+
+ * configure.in: Substitute `sitedir', produce `guile-1.8.pc'.
+ * Makefile.am (EXTRA_DIST): Add `guile-1.8.pc.in'.
+ (pkgconfigdir, pkgconfig_DATA): New.
+
2008-04-26 Ludovic Courtès <ludo@gnu.org>
* configure.in (BUILD_PTHREAD_SUPPORT): New Automake
diff --git a/Makefile.am b/Makefile.am
index 14140f093..016255a6a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -32,7 +32,7 @@ bin_SCRIPTS = guile-tools
include_HEADERS = libguile.h
EXTRA_DIST = LICENSE HACKING GUILE-VERSION \
- m4/ChangeLog FAQ
+ m4/ChangeLog FAQ guile-1.8.pc.in
TESTS = check-guile
@@ -40,4 +40,7 @@ ACLOCAL_AMFLAGS = -I guile-config -I m4
DISTCLEANFILES = check-guile.log
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = guile-1.8.pc
+
# Makefile.am ends here
diff --git a/NEWS b/NEWS
index ec3f37648..55be683ad 100644
--- a/NEWS
+++ b/NEWS
@@ -46,6 +46,10 @@ The new repository can be accessed using
"git-clone git://git.sv.gnu.org/guile.git", or can be browsed on-line at
http://git.sv.gnu.org/gitweb/?p=guile.git . See `README' for details.
+** Add support for `pkg-config'
+
+See "Autoconf Support" in the manual for details.
+
* New modules (see the manual for details)
** `(srfi srfi-88)'
diff --git a/configure.in b/configure.in
index fcfe2bf79..0afefad27 100644
--- a/configure.in
+++ b/configure.in
@@ -1430,6 +1430,12 @@ AC_SUBST(top_builddir_absolute)
top_srcdir_absolute=`(cd $srcdir && pwd)`
AC_SUBST(top_srcdir_absolute)
+dnl We need `sitedir' in `guile-1.8.pc'.
+dnl Note: `sitedir' must be kept in sync with `GUILE_SITE_DIR' in `guile.m4'.
+pkgdatadir="$datadir/guile"
+sitedir="$pkgdatadir/site"
+AC_SUBST([sitedir])
+
# Additional SCM_I_GSC definitions are above.
AC_SUBST([SCM_I_GSC_GUILE_DEBUG])
AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST])
@@ -1476,6 +1482,7 @@ AC_CONFIG_FILES([
test-suite/standalone/Makefile
])
+AC_CONFIG_FILES([guile-1.8.pc])
AC_CONFIG_FILES([check-guile], [chmod +x check-guile])
AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools])
diff --git a/doc/ref/ChangeLog b/doc/ref/ChangeLog
index 342285aee..24e5e33ab 100644
--- a/doc/ref/ChangeLog
+++ b/doc/ref/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-04 Ludovic Courtès <ludo@gnu.org>
+
+ * guile.texi (Guile Modules): Include `autoconf.texi'.
+ * autoconf.texi (Autoconf Support): Mention `pkg-config'.
+ (Autoconf Macros): Document `pkg-config' support.
+
2008-04-26 Ludovic Courtès <ludo@gnu.org>
* srfi-modules.texi (SRFI-88): New section.
diff --git a/doc/ref/autoconf.texi b/doc/ref/autoconf.texi
index 828155c3d..8622fde8f 100644
--- a/doc/ref/autoconf.texi
+++ b/doc/ref/autoconf.texi
@@ -8,10 +8,10 @@
@node Autoconf Support
@chapter Autoconf Support
-When Guile is installed, a set of autoconf macros is also installed as
-PREFIX/share/aclocal/guile.m4. This chapter documents the macros provided in
-that file, as well as the high-level guile-tool Autofrisk. @xref{Top,The GNU
-Autoconf Manual,,autoconf}, for more info.
+When Guile is installed, a pkg-config description file and a set of
+Autoconf macros is installed. This chapter documents pkg-config and
+Autoconf support, as well as the high-level guile-tool Autofrisk.
+@xref{Top,The GNU Autoconf Manual,,autoconf}, for more info.
@menu
* Autoconf Background:: Why use autoconf?
@@ -45,7 +45,38 @@ checks.
@node Autoconf Macros
@section Autoconf Macros
-The macro names all begin with "GUILE_".
+@cindex pkg-config
+@cindex autoconf
+
+GNU Guile provides a @dfn{pkg-config} description file, installed as
+@file{@var{prefix}/lib/pkgconfig/guile.pc}, which contains all the
+information necessary to compile and link C applications that use Guile.
+The @code{pkg-config} program is able to read this file and provide this
+information to application programmers; it can be obtained at
+@url{http://pkg-config.freedesktop.org/}.
+
+The following command lines give respectively the C compilation and link
+flags needed to build Guile-using programs:
+
+@example
+pkg-config guile --cflags
+pkg-config guile --libs
+@end example
+
+To ease use of pkg-config with Autoconf, pkg-config comes with a
+convenient Autoconf macro. The following example looks for Guile and
+sets the @code{GUILE_CFLAGS} and @code{GUILE_LIBS} variables
+accordingly, or prints an error and exits if Guile was not found:
+
+@findex PKG_CHECK_MODULES
+
+@example
+PKG_CHECK_MODULES([GUILE], [guile])
+@end example
+
+Guile comes with additional Autoconf macros providing more information,
+installed as @file{@var{prefix}/share/aclocal/guile.m4}. Their names
+all begin with @code{GUILE_}.
@c see Makefile.am
@include autoconf-macros.texi
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
index 2023c6e96..a56f95cf8 100644
--- a/doc/ref/guile.texi
+++ b/doc/ref/guile.texi
@@ -177,6 +177,8 @@ x
* Guile Modules::
+* Autoconf Support::
+
Appendices
* Data Representation:: All the details.
@@ -362,6 +364,8 @@ available through both Scheme and C interfaces.
@include scsh.texi
@include scheme-debugging.texi
+@include autoconf.texi
+
@include data-rep.texi
@include fdl.texi
diff --git a/guile-1.8.pc.in b/guile-1.8.pc.in
new file mode 100644
index 000000000..15c83d84b
--- /dev/null
+++ b/guile-1.8.pc.in
@@ -0,0 +1,15 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+datarootdir=@datarootdir@
+datadir=@datadir@
+
+sitedir=@sitedir@
+libguileinterface=@LIBGUILE_INTERFACE@
+
+Name: GNU Guile
+Description: GNU's Ubiquitous Intelligent Language for Extension
+Version: @GUILE_VERSION@
+Libs: -L${libdir} -lguile @GUILE_LIBS@
+Cflags: -I${includedir} @GUILE_CFLAGS@