--- rpl/configure.ac 2011/10/02 14:14:29 1.2 +++ rpl/configure.ac 2013/02/27 17:11:39 1.57 @@ -1,59 +1,61 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([rpl],[4.1.4]) +AC_INIT([rpl],[4.1.13]) AC_CANONICAL_TARGET AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE(silent-rules) +AM_SILENT_RULES([yes]) AC_SUBST(target_cpu) AC_CONFIG_HEADERS([rplconfig.h]) dnl Libraries NCURSES=ncurses-5.9 READLINE=readline-6.2 -UNITS=units-1.88 +UNITS=units-2.01 GSL=gsl-1.15 GPP=gpp-3.0 -GNUPLOT=gnuplot-4.4.3 -FILE=file-5.03 +GNUPLOT=gnuplot-4.6.1 +FILE=file-5.11 ICONV=libiconv-1.13.1 -SQLITE=sqlite-3.7.8 -OPENSSL=openssl-1.0.0e -OPENMOTIF=openmotif-2.3.3 +SQLITE=sqlite-3.7.15.2 +OPENSSL=openssl-1.0.1e +OPENMOTIF=openmotif-2.3.4 LIBXPM=libXpm-3.5.9 -SIGSEGV=libsigsegv-2.6 +SIGSEGV=libsigsegv-2.11 -GMP=gmp-5.0.2 -MPFR=mpfr-3.0.1 +GMP=gmp-5.1.1 +MPFR=mpfr-3.1.1 NTL=ntl-5.5.2 -COCOA=CoCoALib-0.9943 -PARI=pari-2.5.0 -GIAC=giac-0.9.3 +COCOA=CoCoALib-0.9950 +PARI=pari-2.5.1 +GIAC=giac-1.1.0 + +dnl 32 bits ABI +AC_ARG_WITH(gcc_version, +[ --with-gcc-version force gcc version],[ +CC=gcc-$with_gcc_version +CXX=g++-$with_gcc_version +CF=gfortran-$with_gcc_version +F77=gfortran-$with_gcc_version +AC_SUBST(CC) +AC_SUBST(CXX) +AC_SUBST(CF) +AC_SUBST(F77) +],[]) + +dnl Checks for Bash +BASH=$(which bash | sed 's/\//\\\//g') + +if test x$BASH = x; then + AC_MSG_ERROR([Cannot find bash! You have to install it.]) +fi + +AC_SUBST(BASH) dnl Checks for C compiler AC_PROG_CC(gcc) EXT_SQL= -if test x"$CC" != x""; then - GCC_VERSION_MAJEURE=`$CC -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $1);}'` - GCC_VERSION_MINEURE=`$CC -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $2);}'` - if test $GCC_VERSION_MAJEURE -ge 5; then - OPTIMISATION_C=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 4 -a $GCC_VERSION_MINEURE -ge 4; \ - then - OPTIMISATION_C=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 2; then - OPTIMISATION_C=-O2 - else - AC_MSG_ERROR([Cannot find decent or recent gcc (gcc-4.2 or better)!]) - fi - fi - fi -fi - AM_PROG_CC_C_O if test "$GCC" != yes; then @@ -67,60 +69,24 @@ if test "$GXX" != yes; then AC_MSG_ERROR([Cannot find g++! You have to install it.]) fi -if test x"$CXX" != x""; then - GCC_VERSION_MAJEURE=`$CXX -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $1);}'` - GCC_VERSION_MINEURE=`$CXX -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $2);}'` - if test $GCC_VERSION_MAJEURE -ge 5; then - OPTIMISATION_GXX=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 4 -a $GCC_VERSION_MINEURE -ge 4; then - OPTIMISATION_GXX=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 3; then - OPTIMISATION_GXX=-O2 - else - AC_MSG_ERROR([Cannot find decent or recent g++ (g++-4.3 or better)!]) - fi - fi - fi -fi - dnl Checks for Fortran 77 compiler AC_PROG_F77(gfortran) -if test "$F77" != gfortran -a "$F77" != gfortran-4.4; then - AC_MSG_ERROR([Cannot find gfortran! You have to install it.]) -fi - dnl Check for Fortran 9* compiler AC_PROG_FC(gfortran) -if test "$FC" != gfortran -a "$FC" != gfortran-4.4; 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 - GCC_VERSION_MAJEURE=`$FC -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $1);}'` - GCC_VERSION_MINEURE=`$FC -v 2>&1 | awk '/^gcc/ { print $3; }' | \ - awk -F. '{ printf("%s", $2);}'` - if test $GCC_VERSION_MAJEURE -ge 5; then - OPTIMISATION_F=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 4 -a $GCC_VERSION_MINEURE -ge 4; then - OPTIMISATION_F=-O3 - else - if test $GCC_VERSION_MAJEURE -ge 3; then - OPTIMISATION_F=-O2 - else - AC_MSG_ERROR([Cannot find decent or recent gfortran (gfortran-4.3 or better)!]) - fi - fi - fi +if test x"$FC" == x; then + AC_MSG_ERROR([Cannot find gfortran! You have to install it.]) fi +OPTIMISATION_C=-O3 +OPTIMISATION_CXX=-O3 +OPTIMISATION_F=-O3 + dnl X paths AC_PATH_X AC_PATH_XTRA @@ -140,7 +106,7 @@ fi dnl 32 bits ABI AC_ARG_WITH(32bits-abi, [ --with-32bits-abi force 32bits ABI (multilib)],[ -if test "$with-32bits-abi" = "no"; then +if test "$with_32bits_abi" = "no"; then ABI= else ABI=-m32 @@ -152,7 +118,7 @@ fi],[ if test x$ABI = x; then AC_ARG_WITH(64bits-abi, [ --with-64bits-abi force 64bits ABI (multilib)],[ -if test "$with-64bits-abi" = "no"; then +if test "$with_64bits_abi" = "no"; then ABI= else ABI=-m64 @@ -164,10 +130,47 @@ fi LDFLAGS="$LDFLAGS $ABI" +AC_ARG_WITH(sysroot, +[ --with-sysroot sysroot for cross compilation],[ +if test "$with_sysroot" = "no" -o "$with_rpltools" = "yes"; then + AC_MSG_ERROR([You have to specify sysroot path !]) +else + SYSROOT="-I$with_sysroot/usr/include" + SYSROOT2=$with_sysroot +fi],[ + SYSROOT= + SYSROOT2= + ] +) + +AC_ARG_ENABLE(recursive, +[ --enable-recursive recursive configuration (default=yes)],[ +if test "$enableval" = "yes"; then + RECURSIVE=yes +else + RECURSIVE=no +fi],[ + RECURSIVE=yes + ] +) + +AC_ARG_WITH(rpltools, +[ --with-rpltools specify rpltools path used for cross compilation],[ +if test "$with_rpltools" = "no" -o "$with_rpltools" = "yes"; then + AC_MSG_ERROR([You have to specify rpltools path !]) +else + RPLTOOLS=$with_rpltools +fi],[ + RPLTOOLS=\$\(top_builddir\) + ] +) + +AC_SUBST(RPLTOOLS) + dnl RPL/CAS support -AC_ARG_WITH(rplcas, -[ --with-rplcas compile rplcas (default=no)],[ -if test "$with-rplcas" = "no"; then +AC_ARG_ENABLE(rplcas, +[ --enable-rplcas compile rplcas (default=no)],[ +if test "$enableval" = "no"; then RPLCAS=-URPLCAS LIBRPLCAS= else @@ -204,17 +207,51 @@ fi],[ ] ) +AC_MSG_CHECKING([for usable shared memory]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([#include + ], + [ return(0); ])], +[SHARED_MEMORY=-DSHARED_MEMORY; AC_MSG_RESULT(yes)], +[SHARED_MEMORY=-USHARED_MEMORY; AC_MSG_RESULT(no)] + ) +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_ARG_ENABLE(sysv-ipcs, [ --enable-sysv-ipcs use SystemV IPC functions [[default=guessed]]], [ if test "$enableval" = "no"; then - IPCS_SYSV=no + IPCS_SYSV=-UIPCS_SYSV + POSIX_IPCS=no else - IPCS_SYSV=yes + IPCS_SYSV=-DIPCS_SYSV + POSIX_IPCS=yes fi], REG=$LDFLAGS +POSIX_IPCS=guessed LDFLAGS=-lrt [AC_MSG_CHECKING([for POSIX semaphores and shared objects]) -AC_RUN_IFELSE( +AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include #include #include @@ -234,11 +271,11 @@ fd = shm_open(sem , O_CREAT | O_RDWR, S_ LDFLAGS=$REG ) -if test "$IPCS_SYSV" = "-UIPCS_SYSV"; then +if test "$IPCS_SYSV" = "-UIPCS_SYSV" -a "$POSIX_IPCS" = "guessed"; then REG=$LDFLAGS LDFLAGS=-pthread AC_MSG_CHECKING([for POSIX anonymous semaphores]) -AC_RUN_IFELSE( +AC_LINK_IFELSE( [AC_LANG_PROGRAM([#include ], [ sem_t sem; @@ -291,8 +328,10 @@ AC_ARG_ENABLE(vim, [ --enable-vim provide the vim support [[default=guessed]]], [ if test "$enableval" = "no"; then VIM_SUPPORT=no + DEBVIM= else VIM_SUPPORT=yes + DEBVIM=", vim" fi], VIM_SUPPORT=guessed) @@ -343,15 +382,18 @@ else fi) if test "$MOTIF_SUPPORT" = "-DMOTIF_SUPPORT"; then - libX="$X_LIBS -lXt -lX11" + libX="$X_LIBS -lXt -lX11 -lXext" LIBMOTIF="\$(top_builddir)/tools/$OPENMOTIF/lib/Xm/.libs/libXm.a \ \$(top_builddir)/tools/$LIBXPM/src/.libs/libXpm.a" INCMOTIF="-I\$(top_srcdir)/tools/$OPENMOTIF/lib \ -I\$(top_builddir)/tools/$OPENMOTIF/lib \ - -I\$(top_builddir)/tools/$LIBXPM/include" + -I\$(top_srcdir)/tools/$LIBXPM/include" BUILD_OPENMOTIF="$LIBXPM $OPENMOTIF" - AC_CONFIG_SUBDIRS(tools/$LIBXPM) - AC_CONFIG_SUBDIRS(tools/$OPENMOTIF) + + if test $RECURSIVE = yes; then + AC_CONFIG_SUBDIRS(tools/$LIBXPM) + AC_CONFIG_SUBDIRS(tools/$OPENMOTIF) + fi; fi AC_ARG_ENABLE(experimental, @@ -381,6 +423,12 @@ fi], [PROFILAGE=""]) AC_SUBST(PROFILAGE) +dnl Checks for uuencode +AC_CHECK_PROG(UUENCODE, uuencode, yes, no) +if test "$UUENCODE" = no; then + AC_MSG_ERROR([Can not find uuencode !]) +fi + if test ! -d tools; then mkdir tools fi @@ -388,8 +436,14 @@ 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%.*}; + done; + for i in ../$NCURSES*.sh; + do echo Applying script $i && chmod 775 $i && ./$i; + done; for i in ../$NCURSES*.patch.gz; - do gunzip -c $i | patch -p1; + do echo Applying patch $i && gunzip -c $i | patch -p1; done); fi if test ! -d "$srcdir"/tools/$READLINE; then @@ -417,11 +471,8 @@ fi if test ! -d "$srcdir"/tools/$FILE; then gunzip -c "$srcdir"/tools/$FILE.tar.gz | \ (cd "$srcdir/tools" && tar -xf - ) - (cd "$srcdir/tools"/$FILE && gunzip -c ../$FILE.diff.gz | patch -p1) -fi -if test ! -d "$srcdir"/tools/$ICONV; then - gunzip -c "$srcdir"/tools/$ICONV.tar.gz | \ - (cd "$srcdir/tools" && tar -xf -) + (cd "$srcdir/tools"/$FILE && gunzip -c ../$FILE.diff.gz | patch -p1 && \ + autoreconf) fi if test ! -d "$srcdir"/tools/$SQLITE; then gunzip -c "$srcdir"/tools/$SQLITE.tar.gz | \ @@ -430,6 +481,12 @@ fi if test ! -d "$srcdir"/tools/$SIGSEGV; then gunzip -c "$srcdir"/tools/$SIGSEGV.tar.gz | \ (cd "$srcdir/tools" && tar -xf -) + (cd "$srcdir/tools/$SIGSEGV" && ./autogen.sh --skip-gnulib) +fi +if test ! -d "$srcdir"/tools/$ICONV; then + gunzip -c "$srcdir"/tools/$ICONV.tar.gz | \ + (cd "$srcdir/tools" && tar -xf -) + (cd "$srcdir"/tools/$ICONV && ln -sf ../$SIGSEGV/gnulib gnulib) fi if test ! -d "$srcdir"/tools/$OPENMOTIF; then gunzip -c "$srcdir"/tools/$OPENMOTIF.tar.gz | \ @@ -511,6 +568,12 @@ if test "$SED" = no; then AC_MSG_ERROR([Can not find sed !]) fi +dnl Checks for yacc +AC_CHECK_PROG(YACC, yacc, yes, no) +if test "$YACC" = no; then + AC_MSG_ERROR([Can not find yacc !]) +fi + dnl Checks for TeX, LaTeX, dvips, gs, gv, vim and gnuplot if test "$TEX_SUPPORT" = guessed; then POSTSCRIPT_SUPPORT="-DPOSTSCRIPT_SUPPORT" @@ -587,14 +650,18 @@ if test "$VIM_SUPPORT" = guessed; then Download at http://www.vim.org/ ]) VIM_SUPPORT="-UVIM_SUPPORT" + DEBVIM= else VIM_SUPPORT="-DVIM_SUPPORT" + DEBVIM=", vim" fi else if test "$VIM_SUPPORT" = no; then VIM_SUPPORT="-UVIM_SUPPORT" + DEBVIM= else VIM_SUPPORT="-DVIM_SUPPORT" + DEBVIM=", vim" fi fi @@ -744,9 +811,13 @@ if test "$MYSQL_SUPPORT" = "-DMYSQL_SUPP fi fi +DEBMYSQL= + if test "$MYSQL_SUPPORT" != "-DMYSQL_SUPPORT"; then libMySQLinc= libMySQLlib= +else + DEBMYSQL=", libmysqlclient18" fi AC_SUBST(MYSQL_SUPPORT) @@ -890,9 +961,13 @@ if test "$POSTGRESQL_SUPPORT" = "-DPOSTG fi fi +DEBPQ= + if test "$POSTGRESQL_SUPPORT" != "-DPOSTGRESQL_SUPPORT"; then libPgSQLinc= libPgSQLlib= +else + DEBPQ=", libpq5" fi AC_SUBST(POSTGRESQL_SUPPORT) @@ -985,8 +1060,15 @@ AC_ARG_WITH(openssl_arch, if test $(uname) = "OS/2"; then bash -c "cd tools/$OPENSSL && os2/OS2-EMX.cmd" else + if test $build = $host; then + OPENSSL_CROSS= + else + OPENSSL_CROSS="AR=$host-ar RANLIB=$host-ranlib CC=$host-gcc NM=$host-nm" + fi + echo $build $host + echo $OPENSSL_CROSS if test "x$with_openssl_arch" = xnone; then - (cd tools/$OPENSSL && ./config no-asm) + (cd tools/$OPENSSL && sh -c "$OPENSSL_CROSS ./config no-asm") elif test "x$with_openssl_arch" = xyes -o "x$with_openssl_arch" = xno; then (cd tools/$OPENSSL && ./Configure) AC_MSG_ERROR([OS/COMP informations are required!]) @@ -994,7 +1076,8 @@ else (cd tools/$OPENSSL && ./Configure) AC_MSG_ERROR([Please specify OS and Architecture]) else - (cd tools/$OPENSSL && ./Configure no-asm $with_openssl_arch) + (cd tools/$OPENSSL && sh -c "$OPENSSL_CROSS ./Configure no-asm \ + $with_openssl_arch") fi fi @@ -1003,7 +1086,11 @@ if test "$MYGNUPLOT" = "yes"; then gunzip -c "$srcdir"/tools/$GNUPLOT.tar.gz | \ (cd "$srcdir/tools" && tar -xf -) fi - AC_CONFIG_SUBDIRS(tools/$GNUPLOT) + + if test $RECURSIVE = yes; then + AC_CONFIG_SUBDIRS(tools/$GNUPLOT) + fi + GNUPLOT_COMPILATION=$GNUPLOT else GNUPLOT_COMPILATION= @@ -1011,8 +1098,10 @@ fi AC_SUBST(GNUPLOT_COMPILATION) -HOST=$host +HOST=$target AC_SUBST(HOST) +BUILD=$build +AC_SUBST(BUILD) my_save_cflags="$CFLAGS" FPCFLAGS="" @@ -1062,7 +1151,6 @@ DATE=$(env LC_ALL=C date +'%A %x, %X %Z' MALLOC= case $OS in - Darwin) EXPORT_DYNAMIC=-Wl,-flat_namespace NESTED_FUNCTIONS=-fnested-functions @@ -1115,6 +1203,7 @@ case $OS in OS/2) if test $FORCED_FINAL_ENCODING -eq 0; then \ FINAL_ENCODING=CP850; \ + FORCED_FINAL_ENCODING=1;\ fi; OS=OS2 NESTED_FUNCTIONS= @@ -1132,6 +1221,7 @@ case $OS in OpenBSD) if test $FORCED_FINAL_ENCODING -eq 0; then \ FINAL_ENCODING=UTF-8; \ + FORCED_FINAL_ENCODING=1;\ fi; EXPORT_DYNAMIC=-Wl,--export-dynamic NESTED_FUNCTIONS= @@ -1185,9 +1275,48 @@ case $OS in C_STANDARD=-std=gnu99 ELF= break ;; +esac + +case $OS in + OS2) + WHOLE_LIB1="" + WHOLE_LIB2="" + LIB_PREFIX="" + break ;; + + *) + WHOLE_LIB1="-Wl,-whole-archive" + WHOLE_LIB2="-Wl,-no-whole-archive" + LIB_PREFIX="lib" + break ;; +esac + +case $HOST in + x86_64-*-linux-gnu) + ARCH=amd64 + break ;; + + i?86-*-linux-gnu) + ARCH=i386 + break ;; + + arm-unknown-linux-gnueabi) + ARCH=armel + break;; + mips*el-*-linux-gnu) + ARCH=mipsel + break;; + + *) + ARCH=unknown + break ;; esac +AC_SUBST(WHOLE_LIB1) +AC_SUBST(WHOLE_LIB2) +AC_SUBST(LIB_PREFIX) + AC_SUBST(C_STANDARD) AC_SUBST(EXPORT_DYNAMIC) AC_SUBST(NESTED_FUNCTIONS) @@ -1197,6 +1326,7 @@ AC_SUBST(SEMUN) AC_SUBST(IPV6) AC_SUBST(BSH_PATH) AC_SUBST(ELF) +AC_SUBST(ARCH) AC_SUBST(NCURSES) AC_SUBST(READLINE) @@ -1213,6 +1343,7 @@ AC_SUBST(OPENMOTIF) AC_SUBST(BUILD_OPENMOTIF) AC_SUBST(SIGSEGV) AC_SUBST(FINAL_ENCODING) +AC_SUBST(FORCED_FINAL_ENCODING) AC_SUBST(DATE) AC_SUBST(DATE_FR) AC_SUBST(EXT_SQL) @@ -1231,16 +1362,32 @@ AC_SUBST(CXXFLAGS) AC_SUBST(FFLAGS) AC_SUBST(FCFLAGS) AC_SUBST(LDFLAGS) +AC_SUBST(SYSROOT) +AC_SUBST(SYSROOT2) + +AC_SUBST(DEBPQ) +AC_SUBST(DEBMYSQL) +AC_SUBST(DEBVIM) -AC_CONFIG_SUBDIRS(tools/$NCURSES) -AC_CONFIG_SUBDIRS(tools/$READLINE) -AC_CONFIG_SUBDIRS(tools/$GSL) -AC_CONFIG_SUBDIRS(tools/$GPP) -AC_CONFIG_SUBDIRS(tools/$FILE) -AC_CONFIG_SUBDIRS(tools/$ICONV) -AC_CONFIG_SUBDIRS(tools/$SQLITE) -AC_CONFIG_SUBDIRS(tools/$UNITS) -AC_CONFIG_SUBDIRS(tools/$SIGSEGV) +if test $RECURSIVE = yes; then + AC_CONFIG_SUBDIRS(tools/$NCURSES) + AC_CONFIG_SUBDIRS(tools/$READLINE) + AC_CONFIG_SUBDIRS(tools/$GSL) + AC_CONFIG_SUBDIRS(tools/$GPP) + AC_CONFIG_SUBDIRS(tools/$FILE) + AC_CONFIG_SUBDIRS(tools/$ICONV) + AC_CONFIG_SUBDIRS(tools/$SQLITE) + AC_CONFIG_SUBDIRS(tools/$UNITS) + AC_CONFIG_SUBDIRS(tools/$SIGSEGV) +fi + +if test x$MYSQL_LIB = x"yes" -o x$POSTGRESQL_LIB = x"yes"; then + ZLIB=-lz +else + ZLIB= +fi + +AC_SUBST(ZLIB) AC_CONFIG_FILES(Makefile) AC_CONFIG_FILES(COPYING) @@ -1272,4 +1419,6 @@ AC_CONFIG_FILES(man/fr_FR/rpllink.1) AC_CONFIG_FILES(man/fr_FR/rpltags.1) AC_CONFIG_FILES(man/fr_FR/mkrplso.1) +AC_CONFIG_FILES(DEBIAN/control) + AC_OUTPUT