dnl AUTOCONF configuration for CLN dnl Bruno Haible 8.1.1999 dnl dnl configure.in ------>> configure dnl dnl configure ------>> config.status dnl --->> include/cl_config.h dnl Makefile.in --->> Makefile dnl src/Makefile.in --->> src/Makefile dnl dnl Makefile ------>> libcln.a dnl dnl AC_INIT(src/integer/gcd/cl_I_gcd.cc) AC_CONFIG_HEADER(include/cl_config.h src/base/cl_base_config.h src/base/cl_gmpconfig.h src/float/cl_float_config.h src/timing/cl_t_config.h) AC_PROG_MAKE_SET dnl This piece of sed script replaces every line containing '@subdir@' dnl by several consecutive lines, each referencing one subdir. extrasub="$extrasub"' /@subdir@/{ h g s/@subdir@/src/ p g s/@subdir@/tests/ p g s/@subdir@/benchmarks/ p g s/@subdir@/examples/ p g s/@subdir@/doc/ p d } ' dnl dnl checks for programs dnl AC_PROG_CC dnl sets variable CC AC_PROG_CPP dnl sets variable CPP AC_PROG_CXX dnl sets variable CXX AC_PROG_CXXCPP dnl sets variable CXXCPP CL_AS_UNDERSCORE dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE CL_PROG_RANLIB dnl sets variable RANLIB CL_PROG_INSTALL dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM dnl dnl check for host type dnl CL_CANONICAL_HOST(autoconf) dnl sets variables host, host_cpu, host_vendor, host_os CL_CANONICAL_HOST_CPU dnl DEFS __${host_cpu}__ dnl dnl check for build configuration dnl PACKAGE=cln AM_DISABLE_SHARED AM_PROG_LIBTOOL dnl Libtool's library version information for CLN. dnl (Not to be confused with CLN's release number.) dnl Making new releases: dnl * increment CLN_REVISION, dnl * if any functions/classes have been added, removed or changed, increment dnl CLN_CURRENT and set CLN_REVISION to 0, dnl * if any functions/classes have been added, increment CLN_AGE, dnl * if backwards compatibility has been broken, set CLN_AGE to 0. CLN_CURRENT=1 CLN_REVISION=0 CLN_AGE=1 AC_SUBST(CLN_CURRENT) AC_SUBST(CLN_REVISION) AC_SUBST(CLN_AGE) dnl sets variable LIBTOOL dnl dnl checks for compiler characteristics dnl AC_LANG_CPLUSPLUS dnl CL_BOOL dnl DEFS HAVE_BOOL, bool CL_LONGLONG dnl DEFS HAVE_LONGLONG CL_LONGDOUBLE dnl DEFS HAVE_LONGDOUBLE CL_TEMPLATE_NULL dnl DEFS HAVE_TEMPLATE_NULL CL_GLOBAL_CONSTRUCTORS dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX dnl dnl checks for header files dnl CL_UNISTD_H dnl DEFS HAVE_UNISTD_H if exist unistd.h dnl dnl checks for typedefs dnl dnl dnl checks for functions and declarations dnl CL_ALLOCA dnl set variable ALLOCA, DEFS NO_ALLOCA CL_FPU_CONTROL dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW CL_GETTIMEOFDAY dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T CL_FTIME dnl DEFS HAVE_FTIME CL_TIMES_CLOCK dnl DEFS HAVE_TIMES_CLOCK CL_RUSAGE dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H CL_PERROR dnl DEFS HAVE_PERROR_DECL dnl dnl checks for compiler characteristics dnl CL_CHAR_UNSIGNED dnl DEFS __CHAR_UNSIGNED__ if char is unsigned test -d 'include' || mkdir 'include' CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,include/cl_intparam.h,cl_cv_file_intparam_h) dnl builds include/cl_intparam.h CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,include/cl_floatparam.h,cl_cv_file_floatparam_h) dnl builds include/cl_floatparam.h dnl dnl interfacing to GNU gmp (must be at least version 3) dnl AC_ARG_WITH(gmp, [ --with-gmp use external fast GNU gmp low-level functions]) if test "$with_gmp" = yes; then dnl Is the gmp header file new enough? (i.e. >= 3.0) AC_CACHE_CHECK([for recent enough gmp.h], cl_cv_new_gmp_h, [ AC_TRY_CPP([#include #if !defined(__GNU_MP_VERSION) || (__GNU_MP_VERSION < 3) #error "ancient gmp.h" #endif], cl_cv_new_gmp_h="yes", cl_cv_new_gmp_h="no"; with_gmp="no") ]) dnl Does the library match the header file have 3.0 features? AC_CACHE_CHECK([for working libgmp], cl_cv_new_libgmp, [ SAVELIBS=$LIBS LIBS="$LIBS -lgmp" AC_TRY_LINK([#include ],[mpn_divexact_by3(0,0,0)], cl_cv_new_libgmp="yes", cl_cv_new_libgmp="no"; with_gmp="no"; LIBS=$SAVELIBS) ]) fi if test "$with_gmp" = yes; then AC_DEFINE(CL_USE_GMP) else AC_MSG_WARN([disabling external GNU MP library]) fi dnl dnl That's it. dnl for f in 'tests/.gdbinit'; do if test '!' -f "$f"; then echo "creating $f" changequote(,)dnl g=`echo "$f" | sed -e 's,/[^/]*$,,'` changequote([,])dnl test "$g" = "$f" || test -d "$g" || mkdir "$g" cp "$srcdir/$f" "$f" fi done AC_OUTPUT(Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile)