summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2019-04-10 08:35:14 +0000
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2019-04-10 08:35:14 +0000
commit1d0da3cdfb0ccc9b46bce4e16760482f2654fbf3 (patch)
treeacae11d94f2441ad099f79010b37fdc21c77ece5
parentaf7c8bf1690e2a66f25ec22cf989f254530e4d0c (diff)
parent6cccdac73da310e2cb89f36abf0d839b73c098f9 (diff)
downloadgnutls-1d0da3cdfb0ccc9b46bce4e16760482f2654fbf3.tar.gz
Merge branch 'guile' into 'master'
build: allow override guile system location Closes #748 See merge request gnutls/gnutls!968
-rw-r--r--Makefile.am9
-rw-r--r--configure.ac50
-rw-r--r--guile/Makefile.am17
3 files changed, 52 insertions, 24 deletions
diff --git a/Makefile.am b/Makefile.am
index b4d0db3b51..5be356e2ce 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,7 +19,14 @@
# along with this file; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-DISTCHECK_CONFIGURE_FLAGS = --enable-doc --enable-gtk-doc --disable-valgrind-tests AUTOGEN=false
+DISTCHECK_CONFIGURE_FLAGS = \
+ --enable-doc \
+ --enable-gtk-doc \
+ --disable-valgrind-tests \
+ --with-guile-site-dir='$$(datarootdir)/guile/site/$$(GUILE_EFFECTIVE_VERSION)' \
+ --with-guile-site-ccache-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/site-ccache' \
+ --with-guile-extension-dir='$$(libdir)/guile/$$(GUILE_EFFECTIVE_VERSION)/extensions' \
+ AUTOGEN=false
SUBDIRS = gl lib extra
diff --git a/configure.ac b/configure.ac
index f9d40b4ea2..8ad597bfd3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -825,13 +825,25 @@ if test "x$with_default_blacklist_file" != x; then
fi
dnl Guile bindings.
-opt_guile_bindings=yes
AC_MSG_CHECKING([whether building Guile bindings])
AC_ARG_ENABLE(guile,
AS_HELP_STRING([--enable-guile], [build GNU Guile bindings]),
-opt_guile_bindings=$enableval)
+ [opt_guile_bindings=$enableval], [opt_guile_bindings=yes])
AC_MSG_RESULT($opt_guile_bindings)
+AC_ARG_WITH(guile-site-dir, AS_HELP_STRING([--with-guile-site-dir=DIR],
+ [guile site directory for gnutls, default is guile system settings]),
+ [guilesitedir="${withval}"], [guilesitedir='$(GUILE_SITE)'])
+AC_ARG_WITH(guile-site-ccache-dir, AS_HELP_STRING([--with-guile-site-ccache-dir=DIR],
+ [guile ccache directory for gnutls, default is guile system settings]),
+ [guilesiteccachedir="${withval}"], [guilesiteccachedir='$(GUILE_SITE_CCACHE)'])
+AC_ARG_WITH(guile-extension-dir, AS_HELP_STRING([--with-guile-extension-dir=DIR],
+ [guile extension directory for gnutls, default is guile system settings]),
+ [guileextensiondir="${withval}"], [guileextensiondir='$(GUILE_EXTENSION)'])
+AC_SUBST([guilesitedir])
+AC_SUBST([guilesiteccachedir])
+AC_SUBST([guileextensiondir])
+
if test "$opt_guile_bindings" = "yes"; then
AC_MSG_RESULT([***
*** Detecting GNU Guile...
@@ -852,6 +864,28 @@ if test "$opt_guile_bindings" = "yes"; then
GUILE_SITE_DIR
GUILE_FLAGS
+ # Backward compatibility with <guile-2.2 m4 macro that is used
+ # due to autreconf of several CI machine.
+ # We need to guess the locations of ccache and extension
+ if test -z "${GUILE_SITE_CCACHE}"; then
+ AC_MSG_NOTICE([Found <guile-2.2 m4, macro emulating])
+
+ AC_MSG_CHECKING([for GUILE_SITE_CCACHE via pkg-config])
+ GUILE_SITE_CCACHE=`$PKG_CONFIG --variable=siteccachedir guile-$GUILE_EFFECTIVE_VERSION`
+ AC_MSG_RESULT([${GUILE_SITE_CCACHE}])
+ if test -z "${GUILE_SITE_CCACHE}"; then
+ AC_MSG_CHECKING([for GUILE_SITE_CCACHE via guile])
+ GUILE_SITE_CCACHE=`$GUILE -c "(display (if (defined? '%site-ccache-dir) (%site-ccache-dir) \"\"))"`
+ AC_MSG_RESULT([${GUILE_SITE_CCACHE}])
+ fi
+ AC_SUBST([GUILE_SITE_CCACHE])
+
+ AC_MSG_CHECKING([for GUILE_EXTENSION])
+ GUILE_EXTENSION=`$PKG_CONFIG --print-errors --variable=extensiondir guile-$GUILE_EFFECTIVE_VERSION`
+ AC_MSG_RESULT([${GUILE_EXTENSION}])
+ AC_SUBST([GUILE_EXTENSION])
+ fi
+
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GUILE_CFLAGS"
@@ -862,10 +896,6 @@ if test "$opt_guile_bindings" = "yes"; then
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
- AC_MSG_CHECKING([the Guile effective version])
- guile_effective_version="`$GUILE -c '(display (effective-version))'`"
- AC_MSG_RESULT([$guile_effective_version])
-
if test "$opt_guile_bindings" = "yes"; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([whether gcc supports -fgnu89-inline])
@@ -884,14 +914,6 @@ if test "$opt_guile_bindings" = "yes"; then
AC_CHECK_FUNCS([scm_gc_malloc_pointerless])
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
-
- # The place where guile-gnutls.la will go.
- guileextensiondir="$libdir/guile/$guile_effective_version"
- AC_SUBST([guileextensiondir])
-
- # The location of .go files.
- guileobjectdir="$libdir/guile/$guile_effective_version/site-ccache"
- AC_SUBST([guileobjectdir])
else
AC_MSG_RESULT([no])
AC_MSG_WARN([A sufficiently recent GNU Guile not found. Guile bindings not built.])
diff --git a/guile/Makefile.am b/guile/Makefile.am
index 1d554a1f7a..13bdeee774 100644
--- a/guile/Makefile.am
+++ b/guile/Makefile.am
@@ -22,11 +22,10 @@ SUBDIRS = src
EXTRA_DIST = .dir-locals.el
-guilemoduledir = $(GUILE_SITE)
-guilemodulesubdir = $(GUILE_SITE)/gnutls
+guilesitesubdir = $(guilesitedir)/gnutls
-nodist_guilemodule_DATA = modules/gnutls.scm
-dist_guilemodulesub_DATA = modules/gnutls/extra.scm
+nodist_guilesite_DATA = modules/gnutls.scm
+dist_guilesitesub_DATA = modules/gnutls/extra.scm
documentation_modules = \
modules/system/documentation/README \
@@ -56,13 +55,13 @@ CLEANFILES = modules/gnutls.scm
if HAVE_GUILD
-guileobjectsubdir = $(guileobjectdir)/gnutls
-nodist_guileobject_DATA = modules/gnutls.go
-nodist_guileobjectsub_DATA = modules/gnutls/extra.go
+guilesiteccachesubdir = $(guilesiteccachedir)/gnutls
+nodist_guilesiteccache_DATA = modules/gnutls.go
+nodist_guilesiteccachesub_DATA = modules/gnutls/extra.go
GOBJECTS = \
- $(nodist_guileobject_DATA) \
- $(nodist_guileobjectsub_DATA)
+ $(nodist_guilesiteccache_DATA) \
+ $(nodist_guilesiteccachesub_DATA)
CLEANFILES += $(GOBJECTS)