Guile Reference Manual: Using Autoconf Macros

Warning: This is the manual of the legacy Guile 2.0 series. You may want to read the manual of the current stable series instead.

Previous: , Up: Autoconf Support [Contents][Index]


5.8.3 Using Autoconf Macros

Using the autoconf macros is straightforward: Add the macro "calls" (actually instantiations) to configure.ac, run aclocal, and finally, run autoconf. If your system doesn’t have guile.m4 installed, place the desired macro definitions (AC_DEFUN forms) in acinclude.m4, and aclocal will do the right thing.

Some of the macros can be used inside normal shell constructs: if foo ; then GUILE_BAZ ; fi, but this is not guaranteed. It’s probably a good idea to instantiate macros at top-level.

We now include two examples, one simple and one complicated.

The first example is for a package that uses libguile, and thus needs to know how to compile and link against it. So we use PKG_CHECK_MODULES to set the vars GUILE_CFLAGS and GUILE_LIBS, which are automatically substituted in the Makefile.

In configure.ac:
 PKG_CHECK_MODULES([GUILE], [guile-2.0])
In Makefile.in:
 GUILE_CFLAGS = @GUILE_CFLAGS@
 GUILE_LIBS = @GUILE_LIBS@
 myprog.o: myprog.c
 $(CC) -o $ $(GUILE_CFLAGS) $<
 myprog: myprog.o
 $(CC) -o $ $< $(GUILE_LIBS)

The second example is for a package of Guile Scheme modules that uses an external program and other Guile Scheme modules (some might call this a "pure scheme" package). So we use the GUILE_SITE_DIR macro, a regular AC_PATH_PROG macro, and the GUILE_MODULE_AVAILABLE macro.

In configure.ac:
 GUILE_SITE_DIR
 probably_wont_work=""
 # pgtype pgtable
 GUILE_MODULE_AVAILABLE(have_guile_pg, (database postgres))
 test $have_guile_pg = no &&
 probably_wont_work="(my pgtype) (my pgtable) $probably_wont_work"
 # gpgutils
 AC_PATH_PROG(GNUPG,gpg)
 test x"$GNUPG" = x &&
 probably_wont_work="(my gpgutils) $probably_wont_work"
 if test ! "$probably_wont_work" = "" ; then
 p=" ***"
 echo
 echo "$p"
 echo "$p NOTE:"
 echo "$p The following modules probably won't work:"
 echo "$p $probably_wont_work"
 echo "$p They can be installed anyway, and will work if their"
 echo "$p dependencies are installed later. Please see README."
 echo "$p"
 echo
 fi
In Makefile.in:
 instdir = @GUILE_SITE@/my
 install:
 $(INSTALL) my/*.scm $(instdir)

Previous: , Up: Autoconf Support [Contents][Index]

AltStyle によって変換されたページ (->オリジナル) /