X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=aclocal.m4;h=d4cb399bc994e67795632a123d95c1655fd985e4;hp=87d8492d5fa5f4f3d92eb06cdd47715cd62731e4;hb=298104ffd6cdee39d045d6a742d91bb09cbcea52;hpb=868126104f29e425a1f3a5c8196d5673735aa30d diff --git a/aclocal.m4 b/aclocal.m4 index 87d8492d..d4cb399b 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -20,12 +20,12 @@ dnl Generally, it is a bad idea to put specialized header files for a library dnl into a generic directory like /usr/local/include/. Instead, one should put dnl them into a subdirectory. GiNaC does it, NTL does it. Unfortunately, CLN dnl doesn't do so but some people choose to do it by hand. In these cases we -dnl need to #include , otherwise #include . This macro +dnl need to #include , otherwise #include . This macro dnl tries to be clever and find out the correct way by defining the variable dnl HAVE_CLN_CLN_H in config.h: AC_DEFUN(GINAC_CHECK_CLN_H, [AC_PROVIDE([$0]) - AC_CHECK_HEADERS(CLN/cln.h, , + AC_CHECK_HEADERS(cln/cln.h, , AC_CHECK_HEADERS(cln.h, , AC_MSG_ERROR([cannot find header for Bruno Haible's CLN]); ) @@ -37,20 +37,20 @@ dnl C++ is more strongly typed than C. Therefore we need to work with the dnl more fundamental AC_TRY_LINK instead. AC_DEFUN(GINAC_CHECK_LIBCLN, [AC_PROVIDE([$0]) - AC_MSG_CHECKING([how to link with libcln]) + AC_MSG_CHECKING([for doublefactorial in -lcln]) saved_LIBS="${LIBS}" AC_CACHE_VAL(ginac_cv_lib_cln_link, [LIBS="-lcln" - case "${ac_cv_header_CLN_cln_h}" in + case "${ac_cv_header_cln_cln_h}" in "yes") - AC_TRY_LINK([#include ], - [factorial(1);], + AC_TRY_LINK([#include ], + [doublefactorial(2);], ginac_cv_lib_cln_link="-lcln", ginac_cv_lib_cln_link="fail") ;; *) AC_TRY_LINK([#include ], - [factorial(1);], + [doublefactorial(2);], ginac_cv_lib_cln_link="-lcln", ginac_cv_lib_cln_link="fail") ;; @@ -59,75 +59,62 @@ AC_DEFUN(GINAC_CHECK_LIBCLN, case "${ginac_cv_lib_cln_link}" in dnl linking worked: "-lcln") - LIBS="-lcln ${saved_LIBS}" - AC_MSG_RESULT([-lcln]) - GINAC_CHECK_LIBCLN_SANITY + LIBS="${ginac_cv_lib_cln_link} ${saved_LIBS}" + AC_MSG_RESULT("yes") ;; dnl linking failed: "fail") LIBS="${saved_LIBS}" - AC_MSG_RESULT([]) - AC_MSG_ERROR([linking with libcln failed, maybe need to set \$LDFLAGS?]) - ;; -dnl should never ever get here: - *) - LIBS="${saved_LIBS}" - ;; - esac -]) - -dnl Check if the CLN library suits our needs, i.e. if it is new enough, by -dnl trying to run into a little bug which was present till version 1.0.1 and -dnl then removed. -AC_DEFUN(GINAC_CHECK_LIBCLN_SANITY, - [AC_PROVIDE([$0]) - AC_MSG_CHECKING([whether libcln behaves sane]) - AC_CACHE_VAL(ginac_cv_lib_cln_integrity, - [ - case "${ac_cv_header_CLN_cln_h}" in - "yes") - AC_TRY_RUN([#include -int main() { -cl_RA q(3); q = q/2; cl_RA p(3); p = p/2; -if (q+p != 3) return 1; else return 0; -}], - ginac_cv_lib_cln_integrity="sane", - ginac_cv_lib_cln_integrity="insane", - ginac_cv_lib_cln_integrity="guessing sane") - ;; - *) - AC_TRY_RUN([#include -int main() { -cl_RA q(3); q = q/2; cl_RA p(3); p = p/2; -if (q+p != 3) return 1; else return 0; -}], - ginac_cv_lib_cln_integrity="sane", - ginac_cv_lib_cln_integrity="insane", - ginac_cv_lib_cln_integrity="guessing sane") - ;; - esac - ]) - case "${ginac_cv_lib_cln_integrity}" in -dnl exit status was 0: - "sane") - AC_MSG_RESULT([yes]) - ;; -dnl exit status was not 0: - "insane") AC_MSG_RESULT([no]) - AC_MSG_WARN([maybe version of libcln is older than 1.0.2?]) - ;; -dnl test-program was not run because we are cross-compiling: - "guessing sane") - AC_MSG_RESULT([hopefully]) - ;; -dnl should never ever get here: - *) - AC_MSG_WARN([you found a bug in the configure script!]) + GINAC_ERROR([I could not successfully link a test-program against libcln and run it. + You either need to set \$LDFLAGS or install/update the CLN library.]) ;; esac ]) +dnl Usage: GINAC_ERROR(message) +dnl This macro displays the warning "message" and sets the flag ginac_error +dnl to yes. +AC_DEFUN(GINAC_ERROR,[ +ginac_error_txt="$ginac_error_txt +** $1 +" +ginac_error=yes]) + +dnl Usage: GINAC_WARNING(message) +dnl This macro displays the warning "message" and sets the flag ginac_warning +dnl to yes. +AC_DEFUN(GINAC_WARNING,[ +ginac_warning_txt="$ginac_warning_txt +== $1 +" +ginac_warning=yes]) + +dnl Usage: GINAC_CHECK_ERRORS +dnl (preferably to be put at end of configure.in) +dnl This macro displays a warning message if GINAC_ERROR or GINAC_WARNING +dnl has occured previously. +AC_DEFUN(GINAC_CHECK_ERRORS,[ +if test "x${ginac_error}" = "xyes"; then + echo "**** The following problems have been detected by configure." + echo "**** Please check the messages below before running \"make\"." + echo "**** (see the section 'Common Problems' in the INSTALL file)" + echo "$ginac_error_txt" + if test "x${ginac_warning_txt}" != "x"; then + echo "${ginac_warning_txt}" + fi + echo "deleting cache ${cache_file}" + rm -f $cache_file + else + if test x$ginac_warning = xyes; then + echo "=== The following minor problems have been detected by configure." + echo "=== Please check the messages below before running \"make\"." + echo "=== (see the section 'Common Problems' in the INSTALL file)" + echo "$ginac_warning_txt" + fi + echo "Configuration of GiNaC $VERSION done. Now type \"make\"." +fi]) + # Like AC_CONFIG_HEADER, but automatically create stamp file. AC_DEFUN(AM_CONFIG_HEADER, @@ -290,7 +277,7 @@ LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \ LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \ DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \ ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ -$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ +$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \ || AC_MSG_ERROR([libtool configure failed]) # Reload cache, that may have been modified by ltconfig @@ -322,6 +309,11 @@ AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl dnl +case "$target" in +NONE) lt_target="$host" ;; +*) lt_target="$target" ;; +esac + # Check for any special flags to pass to ltconfig. libtool_flags="--cache-file=$cache_file" test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" @@ -340,7 +332,7 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" # Some flags need to be propagated to the compiler or linker for good # libtool support. -case "$host" in +case "$lt_target" in *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext @@ -556,7 +548,6 @@ else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_SUBST(LD) AC_PROG_LD_GNU ]) @@ -602,14 +593,13 @@ else fi]) NM="$ac_cv_path_NM" AC_MSG_RESULT([$NM]) -AC_SUBST(NM) ]) # AC_CHECK_LIBM - check for math library AC_DEFUN(AC_CHECK_LIBM, [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= -case "$host" in +case "$lt_target" in *-*-beos* | *-*-cygwin*) # These system don't have libm ;;