]> www.ginac.de Git - ginac.git/commitdiff
Allow user to disable GiNaC::compile_ex (e.g. for security reasons).
authorAlexei Sheplyakov <varg@theor.jinr.ru>
Mon, 8 Sep 2008 07:09:20 +0000 (11:09 +0400)
committerAlexei Sheplyakov <varg@theor.jinr.ru>
Tue, 9 Sep 2008 10:17:08 +0000 (14:17 +0400)
configure takes --{disable,enable}-excompiler argument now. It can be
used to disable GiNaC::compile_ex (default is to enable it).

acinclude.m4:
GINAC_EXCOMPILER: new macro. Checks for libdl, allows user to disable
GiNaC::compile_ex. Also it doesn't bother to check for libdl on MinGW.

configure.ac: use GINAC_EXCOMPILER to check for libdl.

acinclude.m4
configure.ac

index 886e7f2b7618060cc5ba1c4a6d766fef5df1a560..78c3bdb7a86a62919ccde358bafc336f0b7af3e5 100644 (file)
@@ -161,3 +161,43 @@ if test "$ac_cv_have_rusage" = yes; then
 fi
 AC_SUBST(CONFIG_RUSAGE)
 ])
 fi
 AC_SUBST(CONFIG_RUSAGE)
 ])
+
+dnl Usage: GINAC_EXCOMPILER
+dnl - Checks if dlopen is available
+dnl - Allows user to disable GiNaC::compile_ex (e.g. for security reasons)
+dnl Defines HAVE_LIBDL preprocessor macro, sets DL_LIBS and CONFIG_EXCOMPILER
+dnl variables.
+AC_DEFUN([GINAC_EXCOMPILER], [
+CONFIG_EXCOMPILER=yes
+DL_LIBS=""
+
+AC_ARG_ENABLE([excompiler], 
+       [AS_HELP_STRING([--enable-excompiler], [Enable GiNaC::compile_ex (default: yes)])],
+       [if test "$enableval" = "no"; then
+               CONFIG_EXCOMPILER="no"
+       fi],
+       [CONFIG_EXCOMPILER="yes"])
+
+case $host_os in
+       *mingw32*)
+       CONFIG_EXCOMPILER="notsupported"
+       ;;
+       *)
+       ;;
+esac
+
+if test "$CONFIG_EXCOMPILER" = "yes"; then
+       AC_CHECK_LIB(dl, dlopen, [
+               DL_LIBS="-ldl"
+               AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if you have a working libdl installed.])],
+
+               [AC_MSG_WARN([libdl not found. GiNaC::compile_ex will be disabled.])
+                CONFIG_EXCOMPILER="no"])
+elif test "$CONFIG_EXCOMPILER" = "no"; then
+       AC_MSG_RESULT([INFO: GiNaC::compile_ex disabled at user request.])
+else
+       AC_MSG_RESULT([INFO: GiNaC::compile_ex is not supported on $host_os.])
+fi
+AC_SUBST(DL_LIBS)
+AC_SUBST(CONFIG_EXCOMPILER)])
+
index 45fd2d648e46e2815957676caff3fdf67b2b45a8..78954ecacce78dd0f36c327594e1044991c88b28 100644 (file)
@@ -95,16 +95,8 @@ AC_CHECK_HEADERS(unistd.h)
 GINAC_HAVE_RUSAGE
 GINAC_READLINE
 
 GINAC_HAVE_RUSAGE
 GINAC_READLINE
 
-DL_LIBS=""
 dnl Check for dl library (needed for GiNaC::compile).
 dnl Check for dl library (needed for GiNaC::compile).
-AC_CHECK_LIB(dl, dlopen,
-       [
-               DL_LIBS="-ldl"
-               AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if you have a working libdl installed.])
-       ], 
-       GINAC_WARNING([libdl not found. GiNaC::compile will be disabled.]))
-AC_SUBST(DL_LIBS)
-
+GINAC_EXCOMPILER
 
 dnl Check for utilities needed by the different kinds of documentation.
 dnl Documentation needs only be built when extending it, so never mind if it
 
 dnl Check for utilities needed by the different kinds of documentation.
 dnl Documentation needs only be built when extending it, so never mind if it