diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-04-10 08:35:14 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2019-04-10 08:35:14 +0000 |
commit | 1d0da3cdfb0ccc9b46bce4e16760482f2654fbf3 (patch) | |
tree | acae11d94f2441ad099f79010b37fdc21c77ece5 | |
parent | af7c8bf1690e2a66f25ec22cf989f254530e4d0c (diff) | |
parent | 6cccdac73da310e2cb89f36abf0d839b73c098f9 (diff) | |
download | gnutls-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.am | 9 | ||||
-rw-r--r-- | configure.ac | 50 | ||||
-rw-r--r-- | guile/Makefile.am | 17 |
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) |