diff options
author | Ludovic Courtès <ludo@gnu.org> | 2008-05-04 22:19:30 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2008-05-04 22:26:57 +0200 |
commit | 92826dd0e28a8c7abe5a29f46fd8ed8dd0a3b3b2 (patch) | |
tree | 8283f04055f5fb45ffd31bd776804866c59c1683 | |
parent | 0fb11ae43259bfa3d07e2da97e644caaff65c477 (diff) | |
download | guile-92826dd0e28a8c7abe5a29f46fd8ed8dd0a3b3b2.tar.gz |
Add `pkg-config' support.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Makefile.am | 5 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | configure.in | 7 | ||||
-rw-r--r-- | doc/ref/ChangeLog | 6 | ||||
-rw-r--r-- | doc/ref/autoconf.texi | 41 | ||||
-rw-r--r-- | doc/ref/guile.texi | 4 | ||||
-rw-r--r-- | guile-1.8.pc.in | 15 |
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 @@ -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 @@ -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@ |