
Module: ppl/ppl Branch: master Commit: bc7ffae942e400c282f1e3abd06db6aa5d434035 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=bc7ffae942e40...
Author: Roberto Bagnara bagnara@cs.unipr.it Date: Tue Mar 27 19:57:43 2018 +0200
Better support for dynamically-loadable modules.
---
configure.ac | 8 ++++++++ interfaces/Java/jni/Makefile.am | 5 +++++ interfaces/Prolog/Ciao/Makefile.am | 3 +++ interfaces/Prolog/GNU/Makefile.am | 3 +++ interfaces/Prolog/SICStus/Makefile.am | 3 +++ interfaces/Prolog/SWI/Makefile.am | 3 +++ interfaces/Prolog/XSB/Makefile.am | 3 +++ interfaces/Prolog/YAP/Makefile.am | 3 +++ 8 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/configure.ac b/configure.ac index 7b360f6..3380534 100644 --- a/configure.ac +++ b/configure.ac @@ -1280,6 +1280,13 @@ fi AM_CONDITIONAL(BUILD_YAP_PROLOG_INTERFACE, test x$build_yap_prolog_interface = xyes)
+# Allow extra Libtool flags (typically to set the rpath) for linking +# dynamically-loadable modules. +AC_ARG_WITH(module-flags, + AS_HELP_STRING([--with-module-flags=XXX], + [add XXX to the linking options for dynamically-loadable modules]), + module_flags="$with_module_flags") + # Test if some Prolog interfaces have to be built. if test x$build_ciao_prolog_interface = xyes \ || test x$build_gnu_prolog_interface = xyes \ @@ -1663,6 +1670,7 @@ AC_SUBST(required_instantiations_ocaml_cxx_headers) AC_SUBST(required_instantiations_ocaml_cxx_sources) AC_SUBST(required_instantiations_ocaml_cxx_objects) AC_SUBST(mlgmp_dir) +AC_SUBST(module_flags)
AC_CONFIG_FILES(Makefile ppl.lsm diff --git a/interfaces/Java/jni/Makefile.am b/interfaces/Java/jni/Makefile.am index 0b0704d..0bd5d33 100644 --- a/interfaces/Java/jni/Makefile.am +++ b/interfaces/Java/jni/Makefile.am @@ -64,9 +64,12 @@ NO_UNDEFINED_FLAG = -no-undefined
endif NO_UNDEFINED
+MODULE_FLAGS = @module_flags@ + if HOST_OS_DARWIN
libppl_java_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -avoid-version \ -shrext .jnilib @@ -76,6 +79,7 @@ else !HOST_OS_DARWIN if HOST_OS_MINGW
libppl_java_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version \ @@ -84,6 +88,7 @@ $(NO_UNDEFINED_FLAG) \ else !HOST_OS_MINGW
libppl_java_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/Ciao/Makefile.am b/interfaces/Prolog/Ciao/Makefile.am index 561c439..6e91715 100644 --- a/interfaces/Prolog/Ciao/Makefile.am +++ b/interfaces/Prolog/Ciao/Makefile.am @@ -156,7 +156,10 @@ $(top_builddir)/src/libppl.la \ libppl_ciao_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + libppl_ciao_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/GNU/Makefile.am b/interfaces/Prolog/GNU/Makefile.am index 4aef5cd..07d178d 100644 --- a/interfaces/Prolog/GNU/Makefile.am +++ b/interfaces/Prolog/GNU/Makefile.am @@ -151,7 +151,10 @@ $(top_builddir)/src/libppl.la \ libppl_gprolog_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + libppl_gprolog_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/SICStus/Makefile.am b/interfaces/Prolog/SICStus/Makefile.am index 2cc9061..2c8030a 100644 --- a/interfaces/Prolog/SICStus/Makefile.am +++ b/interfaces/Prolog/SICStus/Makefile.am @@ -184,7 +184,10 @@ $(top_builddir)/src/libppl.la \ libppl_sicstus_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + libppl_sicstus_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/SWI/Makefile.am b/interfaces/Prolog/SWI/Makefile.am index dcb8954..18e7fbf 100644 --- a/interfaces/Prolog/SWI/Makefile.am +++ b/interfaces/Prolog/SWI/Makefile.am @@ -178,7 +178,10 @@ $(SWI_PROLOG_LD_OPTIONS) libppl_swiprolog_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + libppl_swiprolog_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/XSB/Makefile.am b/interfaces/Prolog/XSB/Makefile.am index ddce881..7ac1c79 100644 --- a/interfaces/Prolog/XSB/Makefile.am +++ b/interfaces/Prolog/XSB/Makefile.am @@ -174,7 +174,10 @@ $(top_builddir)/src/libppl.la \ libppl_xsb_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + libppl_xsb_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version diff --git a/interfaces/Prolog/YAP/Makefile.am b/interfaces/Prolog/YAP/Makefile.am index 85dbc2a..6b5f724 100644 --- a/interfaces/Prolog/YAP/Makefile.am +++ b/interfaces/Prolog/YAP/Makefile.am @@ -165,7 +165,10 @@ $(top_builddir)/src/libppl.la \ ppl_yap_la_DEPENDENCIES = \ @required_instantiations_prolog_cxx_objects@
+MODULE_FLAGS = @module_flags@ + ppl_yap_la_LDFLAGS = \ +$(MODULE_FLAGS) \ $(NO_UNDEFINED_FLAG) \ -module \ -avoid-version