--- rpl/configure.ac 2013/10/05 18:31:31 1.79 +++ rpl/configure.ac 2019/02/04 09:21:45 1.233 @@ -1,6 +1,5 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([rpl],[4.1.16]) -AC_CANONICAL_TARGET +AC_INIT([rpl],[4.1.31]) AC_CANONICAL_TARGET AM_INIT_AUTOMAKE(silent-rules) AM_SILENT_RULES([yes]) @@ -8,27 +7,28 @@ AC_SUBST(target_cpu) AC_CONFIG_HEADERS([rplconfig.h]) dnl Libraries -NCURSES=ncurses-5.9 -READLINE=readline-6.2 -UNITS=units-2.01 -GSL=gsl-1.16 +NCURSES=ncurses-6.0 +READLINE=readline-7.0 +UNITS=units-2.16 +GSL=gsl-2.5 GPP=gpp-3.0 -GNUPLOT=gnuplot-4.6.3 -FILE=file-5.11 -ICONV=libiconv-1.14 -SQLITE=sqlite-3.8.0.2 -OPENSSL=openssl-1.0.1e -OPENMOTIF=openmotif-2.3.4 -LIBXPM=libXpm-3.5.9 -SIGSEGV=libsigsegv-2.11 -ZLIB=zlib-1.2.7 - -GMP=gmp-5.1.2 -MPFR=mpfr-3.1.2 -NTL=ntl-5.5.2 -COCOA=CoCoALib-0.9950 -PARI=pari-2.5.4 -GIAC=giac-1.1.0 +GNUPLOT=gnuplot-5.2.5 +FILE=file-5.33 +ICONV=libiconv-1.15 +SQLITE=sqlite-3.26.0 +OPENSSL=openssl-1.1.1a +OPENMOTIF=motif-2.3.8 +LIBXPM=libXpm-3.5.12 +SIGSEGV=libsigsegv-2.12 +ZLIB=zlib-1.2.11 + +GMP=gmp-6.1.2 +MPFR=mpfr-4.0.1 +MPFI=mpfi-1.5.3 +NTL=ntl-11.0.0 +COCOA=CoCoALib-0.99600 +PARI=pari-2.9.5 +GIAC=giac-1.4.9 dnl 32 bits ABI AC_ARG_WITH(gcc_version, @@ -44,6 +44,7 @@ AC_SUBST(F77) ],[]) dnl Checks for Bash +BASH_PATH=$(which bash) BASH=$(which bash | sed 's/\//\\\//g') if test x$BASH = x; then @@ -51,6 +52,7 @@ if test x$BASH = x; then fi AC_SUBST(BASH) +AC_SUBST(BASH_PATH) dnl Checks for C compiler AC_PROG_CC(gcc) @@ -76,11 +78,11 @@ AC_PROG_F77(gfortran) dnl Check for Fortran 9* compiler AC_PROG_FC(gfortran) -if test x"$F77" == x; then +if test x"$F77" = x; then AC_MSG_ERROR([Cannot find gfortran! You have to install it.]) fi -if test x"$FC" == x; then +if test x"$FC" = x; then AC_MSG_ERROR([Cannot find gfortran! You have to install it.]) fi @@ -92,18 +94,6 @@ dnl X paths AC_PATH_X AC_PATH_XTRA -if test "$ac_x_includes" != "no"; then - if test x"$ac_x_includes" != x; then - X_CFLAGS="$X_CFLAGS -I$ac_x_includes" - includeX="-I$ac_x_includes" - fi -fi -if test "$ac_x_libraries" != "no"; then - if test x"$ac_x_libraries" != x; then - X_LIBS="$X_LIBS -L$ac_x_libraries" - fi -fi - dnl 32 bits ABI AC_ARG_WITH(32bits-abi, [ --with-32bits-abi force 32bits ABI (multilib)],[ @@ -155,6 +145,20 @@ fi],[ ] ) +AC_ARG_ENABLE(native, +[ --enable-native enable gcc native compiler option (default=no)],[ +if test "$enableval" = "yes"; then + CFLAGS="$CFLAGS -mtune=native -march=native" + FFLAGS="$FFLAGS -mtune=native -march=native" + CXXFLAGS="$CXXFLAGS -mtune=native -march=native" + FCFLAGS="$FCFLAGS -mtune=native -march=native" +else + NATIVE= +fi],[ + NATIVE= + ] +) + AC_ARG_WITH(rpltools, [ --with-rpltools specify rpltools path used for cross compilation],[ if test "$with_rpltools" = "no" -o "$with_rpltools" = "yes"; then @@ -168,46 +172,68 @@ fi],[ AC_SUBST(RPLTOOLS) +dnl libcurl path +AC_ARG_WITH(curl, +[ --with-curl specify libcurl path used for RPL/CAS],[ +if test "$with_curl" = "no" -o "$with_curl" = "yes"; then + AC_MSG_ERROR([You have to specify libcurl path !]) +else + LIBCURL=-L$with_curl +fi],[ + LIBCURL= + ] +) + dnl RPL/CAS support AC_ARG_ENABLE(rplcas, [ --enable-rplcas compile rplcas (default=no)],[ if test "$enableval" = "no"; then RPLCAS=-URPLCAS LIBRPLCAS= + INCRPLCAS= else RPLCAS=-DRPLCAS - LIBRPLCAS=\$\(top_builddir\)/rplcas/lib/librplcas.a + LIBRPLCAS="\$(top_builddir)/rplcas/lib/librplcas.a" +dnl LIBS="$LIBS $LIBCURL -lcurl" + LIBGIAC="$LIBCURL -lcurl" + INCRPLCAS="-I\$(top_builddir)/rplcas/include/giac \ + -I\$(top_builddir)/rplcas/include" fi],[ RPLCAS=-URPLCAS LIBRPLCAS= + INCRPLCAS= ] ) AC_SUBST(ABI) AC_SUBST(RPLCAS) AC_SUBST(LIBRPLCAS) +AC_SUBST(INCRPLCAS) +AC_SUBST(LIBGIAC) dnl Options AC_ARG_ENABLE(optimization, -[ --enable-optimization set compiler flags [[default=environment variables -O3]]], [ +[ --enable-optimization set compiler flags [[default=environment variables -O2, enable=environment variables -O3]]], [ if test "$enableval" = "no"; then CFLAGS=$ABI FFLAGS=$ABI CXXFLAGS=$ABI FCFLAGS=$ABI else - CFLAGS="$CFLAGS $ABI $enable_optimization" - FFLAGS="$FFLAGS $ABI $enable_optimization" - CXXFLAGS="$CXXFLAGS $ABI $enable_optimization" - FCFLAGS="$FCFLAGS $ABI $enable_optimization" -fi],[ - CFLAGS="$CFLAGS $ABI $OPTIMISATION_C" + CFLAGS="$CFLAGS $ABI $OPTIMISATION_C" FFLAGS="$FFLAGS $ABI $OPTIMISATION_F" CXXFLAGS="$CXXFLAGS $ABI $OPTIMISATION_CXX" FCFLAGS="$FCFLAGS $ABI $OPTIMISATION_F" +fi],[ + CFLAGS="$CFLAGS $ABI -O2" + FFLAGS="$FFLAGS $ABI -O2" + CXXFLAGS="$CXXFLAGS $ABI -O2" + FCFLAGS="$FCFLAGS $ABI -O2" ] ) +CFLAGS="$CFLAGS -fno-strict-overflow" + AC_MSG_CHECKING([for usable shared memory]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([#include @@ -218,26 +244,12 @@ AC_COMPILE_IFELSE( ) AC_SUBST(SHARED_MEMORY) -AC_MSG_CHECKING([for pselect]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([#include - #include - #include - #include - ], - [ - struct timespec tv; - fd_set s1, s2, s3; - tv.tv_sec=1; - tv.tv_nsec=0; - FD_SET(1, &s1); FD_SET(2, &s2); FD_SET(3, &s3); - pselect(5, &s1, &s2, &s3, &tv, NULL); - return(0); - ])], -[PSELECT=-DPSELECT; AC_MSG_RESULT(yes)], -[PSELECT=-UPSELECT; AC_MSG_RESULT(no)] - ) -AC_SUBST(PSELECT) +AC_C_INLINE + +if test "$ac_cv_c_inline" != no ; then + AC_DEFINE(HAVE_INLINE,1,[inline keywork or macro available]) + AC_SUBST(HAVE_INLINE) +fi AC_ARG_ENABLE(sysv-ipcs, [ --enable-sysv-ipcs use SystemV IPC functions [[default=guessed]]], [ @@ -248,9 +260,9 @@ else IPCS_SYSV=-DIPCS_SYSV POSIX_IPCS=yes fi], -REG=$LDFLAGS +REG=$LIBS POSIX_IPCS=guessed -LDFLAGS="-lrt -lpthread" +LIBS="-lrt -lpthread" [AC_MSG_CHECKING([for POSIX semaphores and shared objects]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include @@ -269,12 +281,12 @@ fd = shm_open(sem , O_CREAT | O_RDWR, S_ [IPCS_SYSV=-UIPCS_SYSV; AC_MSG_RESULT(yes)], [IPCS_SYSV=-DIPCS_SYSV; AC_MSG_RESULT(no)] )] -LDFLAGS=$REG +LIBS=$REG ) if test "$IPCS_SYSV" = "-UIPCS_SYSV" -a "$POSIX_IPCS" = "guessed"; then -REG=$LDFLAGS -LDFLAGS=-pthread +REG=$LIBS +LIBS=-pthread AC_MSG_CHECKING([for POSIX anonymous semaphores]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include @@ -287,8 +299,8 @@ AC_LINK_IFELSE( [SEMAPHORES_NOMMES=-USEMAPHORES_NOMMES; AC_MSG_RESULT(yes)], [SEMAPHORES_NOMMES=-DSEMAPHORES_NOMMES; AC_MSG_RESULT(no)] ) -LDFLAGS=$REG -REG="" +LDFLAGS=$LIBS +LIBS=$REG else SEMAPHORES_NOMMES=-USEMAPHORES_NOMMES fi @@ -368,6 +380,19 @@ libX="" LIBMOTIF="" INCMOTIF="" BUILD_OPENMOTIF="" +MODULE_MOTIF="" + + +if test "$ac_x_includes" != "no"; then + if test x"$ac_x_includes" != x; then + includeX="-I$ac_x_includes" + fi +fi +if test "$ac_x_libraries" != "no"; then + if test x"$ac_x_libraries" != x; then + X_LIBS="-L$ac_x_libraries" + fi +fi AC_ARG_ENABLE(motif, [ --enable-motif provide the Motif support [[default=guessed]]], [ @@ -376,15 +401,27 @@ if test "$enableval" = "no"; then else MOTIF_SUPPORT="-DMOTIF_SUPPORT" fi], -if test "$have_x" == "yes"; then +if test "$have_x" = "yes"; then MOTIF_SUPPORT="-DMOTIF_SUPPORT" else MOTIF_SUPPORT="-UMOTIF_SUPPORT" fi) +dnl libXinerama path +AC_ARG_WITH(xinerama, +[ --with-xinerama specify libxinerama path used for Motif],[ +if test "$with_xinerama" = "no" -o "$with_xinerama" = "yes"; then + AC_MSG_ERROR([You have to specify libxinerama path !]) +else + LIBXINERAMA=-L$with_xinerama +fi],[ + LIBXINERAMA= + ] +) + if test "$MOTIF_SUPPORT" = "-DMOTIF_SUPPORT"; then - libX="$X_LIBS -lXt -lX11 -lXext" - LIBMOTIF="\$(top_builddir)/tools/$OPENMOTIF/lib/Xm/.libs/libXm.a \ + libX="$X_LIBS -lXt -lX11 -lXext $LIBXINERAMA -lXinerama" + LIBMOTIF="\$(top_builddir)/tools/$OPENMOTIF/install/lib/libXm.a \ \$(top_builddir)/tools/$LIBXPM/src/.libs/libXpm.a" INCMOTIF="-I\$(top_srcdir)/tools/$OPENMOTIF/lib \ -I\$(top_builddir)/tools/$OPENMOTIF/lib \ @@ -395,6 +432,8 @@ if test "$MOTIF_SUPPORT" = "-DMOTIF_SUPP AC_CONFIG_SUBDIRS(tools/$LIBXPM) AC_CONFIG_SUBDIRS(tools/$OPENMOTIF) fi; + + MODULE_MOTIF="modules/motif" fi AC_ARG_ENABLE(experimental, @@ -430,6 +469,12 @@ if test "$UUENCODE" = no; then AC_MSG_ERROR([Can not find uuencode !]) fi +dnl Checks for patch +AC_CHECK_PROG(PATCH, patch, yes, no) +if test "$PATCH" = no; then + AC_MSG_ERROR([Can not find patch !]) +fi + if test ! -d tools; then mkdir tools fi @@ -437,14 +482,19 @@ if test ! -d "$srcdir"/tools/$NCURSES; t gunzip -c "$srcdir"/tools/$NCURSES.tar.gz | \ (cd "$srcdir/tools" && tar -xf -) (cd "$srcdir/tools/"$NCURSES && \ - for i in ../$NCURSES*.sh.gz; - do TMP=$i; gunzip -c $i > ${TMP%.*}; + for i in $(ls ../$NCURSES*.sh.gz); + do echo Uncompressing script $i; TMP=$i; gunzip -c $i > ${TMP%.*}; done; - for i in ../$NCURSES*.sh; + for i in $(ls ../$NCURSES*.sh); do echo Applying script $i && chmod 775 $i && ./$i; done; - for i in ../$NCURSES*.patch.gz; - do echo Applying patch $i && gunzip -c $i | patch -p1; + for i in $(ls ../$NCURSES*.patch.gz); + do echo Applying patch $i && \ + gunzip -c $i | patch -p1; + done; + for i in $(ls ../ncurses-6.1*.patch.gz); + do echo Applying patch $i && \ + gunzip -c $i | patch -p1; done); fi if test ! -d "$srcdir"/tools/$READLINE; then @@ -516,6 +566,10 @@ if test ! -d "$srcdir"/rplcas/$MPFR; the gunzip -c "$srcdir"/rplcas/$MPFR.tar.gz | \ (cd "$srcdir/rplcas" && tar -xf -) fi +if test ! -d "$srcdir"/rplcas/$MPFI; then + gunzip -c "$srcdir"/rplcas/$MPFI.tar.gz | \ + (cd "$srcdir/rplcas" && tar -xf -) +fi if test ! -d rplcas/$NTL; then gunzip -c "$srcdir"/rplcas/$NTL.tar.gz | \ (cd rplcas && tar -xf -) @@ -682,14 +736,26 @@ AC_SUBST(libX) AC_SUBST(includeX) dnl Date -DATE=$(LANG=C date +"%A, %e %B %Y %T %z") +DATE=$(env LC_ALL=C date +"%A, %e %B %Y %T %z") +DATE_FR=$(env LC_ALL=fr_FR date +"%A, %e %B %Y %T %z") AC_SUBST(DATE) +AC_SUBST(DATE_FR) dnl Checks for libraries AC_CHECK_LIB(m, main,, AC_MSG_ERROR([Can not find libm !])) AC_CHECK_LIB(c, pthread_mutex_init,, [AC_CHECK_LIB(pthread, main,, AC_MSG_ERROR([Can not find libpthread !]))]) +if test "$MOTIF_SUPPORT" = "-DMOTIF_SUPPORT"; then + REG=$LIBS + LIBS="$LIBS $libX" + AC_CHECK_LIB(Xinerama, XineramaIsActive,, + AC_MSG_ERROR([Can not find libXinerama !])) + LIBS=$REG +fi +AC_CHECK_LIB(gomp, omp_get_num_procs,, AC_MSG_ERROR([Can not find libgomp !])) +OPENMP=-lgomp +AC_SUBST(OPENMP) dnl Check for union semun AC_CHECK_TYPE([union semun], SEMUN=-DUNION_SEMUN, SEMUN=-UUNION_SEMUN, [[ @@ -728,7 +794,7 @@ AC_ARG_WITH(mysql, [ --with-mysql=PATH specify directory for installed mysql], [], [with_mysql=check]) -if test "x$with_mysql" = xcheck -o "x$with_mysql" = yes; then +if test "x$with_mysql" = xcheck -o "x$with_mysql" = xyes; then libMySQLinc="-I/usr/include" libMySQLlib="/usr/lib" @@ -805,7 +871,7 @@ if test "$MYSQL_SUPPORT" = "-DMYSQL_SUPP if test $STATIC = no; then LIBS="$LIBS -L/$libMySQLlib -lmysqlclient_r $libMySQLinc" else - LIBS="$LIBS $libMySQLlib/libmysqlclient_r.a -lz $libMySQLinc" + LIBS="$LIBS $libMySQLlib/libmysqlclient_r.a $libMySQLinc" fi AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "mysql.h"]], [[MYSQL mysql; mysql_init(&mysql);]])],[AC_MSG_RESULT([yes]); MYSQL_LIB="yes"],[AC_MSG_RESULT([no]); MYSQL_LIB="no"]) LIBS=$saved_LIBS; @@ -1122,11 +1188,11 @@ AC_MSG_CHECKING([whether CC supports -ma AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], [AC_MSG_RESULT([yes]); FPCFLAGS="$FPCFLAGS -malign-double"], [AC_MSG_RESULT([no])]) -CFLAGS=-mieee-fp -AC_MSG_CHECKING([whether CC supports -mieee-fp]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], - [AC_MSG_RESULT([yes]); FPCFLAGS="$FPCFLAGS -mieee-fp"], - [AC_MSG_RESULT([no])]) +#CFLAGS=-mieee-fp +#AC_MSG_CHECKING([whether CC supports -mieee-fp]) +#AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], +# [AC_MSG_RESULT([yes]); FPCFLAGS="$FPCFLAGS -mieee-fp"], +# [AC_MSG_RESULT([no])]) CFLAGS=-mieee AC_MSG_CHECKING([whether CC supports -mieee]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])], @@ -1157,9 +1223,8 @@ esac AC_SUBST(OS) -DATE_FR=$(env LC_ALL=fr_FR date +'%A %x, %X %Z') -DATE=$(env LC_ALL=C date +'%A %x, %X %Z') MALLOC= +NO_EXPORT_DYNAMIC=-Wl,--no-export-dynamic case $OS in Darwin) @@ -1288,6 +1353,12 @@ case $OS in break ;; esac +dnl Correction d'un problème de compilation pour GNUplot 5.0.0 +ac_configure_args="$ac_configure_args --disable-wxwidgets" +dnl Correction d'un problème d'ABI avec readline +ac_configure_args="$ac_configure_args \ + --with-abi-version=5.9 --with-rel-version=5.9" + case $OS in OS2) WHOLE_LIB1="" @@ -1302,6 +1373,16 @@ case $OS in break ;; esac +BROKEN_SIGSEGV=-UBROKEN_SIGSEGV +BUILD_SIGSEGV=$SIGSEGV +if test x"$LIB_PREFIX" = x"lib"; then + LIBSIGSEGV=\$\(top_builddir\)/tools/$SIGSEGV/src/.libs/libsigsegv.a +else + LIBSIGSEGV=\$\(top_builddir\)/tools/$SIGSEGV/src/.libs/sigsegv.a +fi +INCSIGSEGV="-I\$(top_builddir)/tools/$SIGSEGV/src" +CYGWIN_LDFLAGS= + case $HOST in x86_64-*-linux-gnu) ARCH=amd64 @@ -1319,17 +1400,31 @@ case $HOST in ARCH=mipsel break;; + x86_64-*-cygwin) + BROKEN_SIGSEGV=-DBROKEN_SIGSEGV + BUILD_SIGSEGV= + INCSIGSEGV= + LIBSIGSEGV= + ARCH=$(echo $HOST | cut -f1 -d-) + CYGWIN_LDFLAGS=-Wl,--allow-multiple-definition \ + -Wl,--out-implib,rpl.exe.a + break;; + *) ARCH=$(echo $HOST | cut -f1 -d-) break ;; esac +AC_SUBST(INCSIGSEGV) +AC_SUBST(LIBSIGSEGV) AC_SUBST(WHOLE_LIB1) AC_SUBST(WHOLE_LIB2) AC_SUBST(LIB_PREFIX) +AC_SUBST(CYGWIN_LDFLAGS) AC_SUBST(C_STANDARD) AC_SUBST(EXPORT_DYNAMIC) +AC_SUBST(NO_EXPORT_DYNAMIC) AC_SUBST(NESTED_FUNCTIONS) AC_SUBST(SEMAPHORES_NOMMES) AC_SUBST(IPCS_SYSV) @@ -1356,18 +1451,21 @@ AC_SUBST(SIGSEGV) AC_SUBST(FINAL_ENCODING) AC_SUBST(FORCED_FINAL_ENCODING) AC_SUBST(DATE) -AC_SUBST(DATE_FR) AC_SUBST(EXT_SQL) AC_SUBST(MALLOC) AC_SUBST(GMP) AC_SUBST(MPFR) +AC_SUBST(MPFI) AC_SUBST(NTL) AC_SUBST(COCOA) AC_SUBST(PARI) AC_SUBST(GIAC) AC_SUBST(INCMOTIF) AC_SUBST(LIBMOTIF) +AC_SUBST(MODULE_MOTIF) AC_SUBST(ZLIB) +AC_SUBST(BUILD_SIGSEGV) +AC_SUBST(BROKEN_SIGSEGV) AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS) @@ -1390,7 +1488,9 @@ if test $RECURSIVE = yes; then AC_CONFIG_SUBDIRS(tools/$ICONV) AC_CONFIG_SUBDIRS(tools/$SQLITE) AC_CONFIG_SUBDIRS(tools/$UNITS) - AC_CONFIG_SUBDIRS(tools/$SIGSEGV) + if test x$BUILD_SIGSEGV = x$SIGSEGV; then + AC_CONFIG_SUBDIRS(tools/$SIGSEGV) + fi fi AC_CONFIG_FILES(Makefile) @@ -1411,6 +1511,8 @@ AC_CONFIG_FILES(rplcas/Makefile) AC_CONFIG_FILES(rplawk/Makefile) AC_CONFIG_FILES(lapack/lapack/Makefile) AC_CONFIG_FILES(lapack/blas/Makefile) +AC_CONFIG_FILES(modules/motif/Makefile) +AC_CONFIG_FILES(modules/sets/Makefile) AC_CONFIG_FILES(man/rpl.1) AC_CONFIG_FILES(man/rplcc.1)