1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Add `pkg-config' support.

This commit is contained in:
Ludovic Courtès 2008-05-04 22:19:30 +02:00
parent 0fb11ae432
commit 92826dd0e2
9 changed files with 83 additions and 6 deletions

1
.gitignore vendored
View file

@ -69,3 +69,4 @@ guile-config/guile-config
guile-readline/guile-readline-config.h guile-readline/guile-readline-config.h
guile-readline/guile-readline-config.h.in guile-readline/guile-readline-config.h.in
TAGS TAGS
guile-1.8.pc

View file

@ -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> 2008-04-26 Ludovic Courtès <ludo@gnu.org>
* configure.in (BUILD_PTHREAD_SUPPORT): New Automake * configure.in (BUILD_PTHREAD_SUPPORT): New Automake

View file

@ -32,7 +32,7 @@ bin_SCRIPTS = guile-tools
include_HEADERS = libguile.h include_HEADERS = libguile.h
EXTRA_DIST = LICENSE HACKING GUILE-VERSION \ EXTRA_DIST = LICENSE HACKING GUILE-VERSION \
m4/ChangeLog FAQ m4/ChangeLog FAQ guile-1.8.pc.in
TESTS = check-guile TESTS = check-guile
@ -40,4 +40,7 @@ ACLOCAL_AMFLAGS = -I guile-config -I m4
DISTCLEANFILES = check-guile.log DISTCLEANFILES = check-guile.log
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = guile-1.8.pc
# Makefile.am ends here # Makefile.am ends here

4
NEWS
View file

@ -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 "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. 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) * New modules (see the manual for details)
** `(srfi srfi-88)' ** `(srfi srfi-88)'

View file

@ -1430,6 +1430,12 @@ AC_SUBST(top_builddir_absolute)
top_srcdir_absolute=`(cd $srcdir && pwd)` top_srcdir_absolute=`(cd $srcdir && pwd)`
AC_SUBST(top_srcdir_absolute) 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. # Additional SCM_I_GSC definitions are above.
AC_SUBST([SCM_I_GSC_GUILE_DEBUG]) AC_SUBST([SCM_I_GSC_GUILE_DEBUG])
AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST]) AC_SUBST([SCM_I_GSC_GUILE_DEBUG_FREELIST])
@ -1476,6 +1482,7 @@ AC_CONFIG_FILES([
test-suite/standalone/Makefile test-suite/standalone/Makefile
]) ])
AC_CONFIG_FILES([guile-1.8.pc])
AC_CONFIG_FILES([check-guile], [chmod +x check-guile]) AC_CONFIG_FILES([check-guile], [chmod +x check-guile])
AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile]) AC_CONFIG_FILES([benchmark-guile], [chmod +x benchmark-guile])
AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools]) AC_CONFIG_FILES([guile-tools], [chmod +x guile-tools])

View file

@ -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> 2008-04-26 Ludovic Courtès <ludo@gnu.org>
* srfi-modules.texi (SRFI-88): New section. * srfi-modules.texi (SRFI-88): New section.

View file

@ -8,10 +8,10 @@
@node Autoconf Support @node Autoconf Support
@chapter Autoconf Support @chapter Autoconf Support
When Guile is installed, a set of autoconf macros is also installed as When Guile is installed, a pkg-config description file and a set of
PREFIX/share/aclocal/guile.m4. This chapter documents the macros provided in Autoconf macros is installed. This chapter documents pkg-config and
that file, as well as the high-level guile-tool Autofrisk. @xref{Top,The GNU Autoconf support, as well as the high-level guile-tool Autofrisk.
Autoconf Manual,,autoconf}, for more info. @xref{Top,The GNU Autoconf Manual,,autoconf}, for more info.
@menu @menu
* Autoconf Background:: Why use autoconf? * Autoconf Background:: Why use autoconf?
@ -45,7 +45,38 @@ checks.
@node Autoconf Macros @node Autoconf Macros
@section 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 @c see Makefile.am
@include autoconf-macros.texi @include autoconf-macros.texi

View file

@ -177,6 +177,8 @@ x
* Guile Modules:: * Guile Modules::
* Autoconf Support::
Appendices Appendices
* Data Representation:: All the details. * Data Representation:: All the details.
@ -362,6 +364,8 @@ available through both Scheme and C interfaces.
@include scsh.texi @include scsh.texi
@include scheme-debugging.texi @include scheme-debugging.texi
@include autoconf.texi
@include data-rep.texi @include data-rep.texi
@include fdl.texi @include fdl.texi

15
guile-1.8.pc.in Normal file
View file

@ -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@