[PPL-devel] [GIT] ppl/ppl(master): Better support for dynamically-loadable modules.

Roberto Bagnara bagnara at cs.unipr.it
Tue Mar 27 19:58:04 CEST 2018


Module: ppl/ppl
Branch: master
Commit: bc7ffae942e400c282f1e3abd06db6aa5d434035
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=bc7ffae942e400c282f1e3abd06db6aa5d434035

Author: Roberto Bagnara <bagnara at 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




More information about the PPL-devel mailing list