]> www.ginac.de Git - cln.git/blobdiff - configure.in
Interoperability with gcc-3.0 -fuse-cxa-atexit.
[cln.git] / configure.in
index 5d4cd6ba69591eb70369e7572af30887acc47f6f..68ffa38404e1261367fc75cc5721f57a7dbe6f80 100644 (file)
@@ -1,10 +1,10 @@
 dnl  AUTOCONF configuration for CLN
-dnl  Bruno Haible 8.1.1999
 dnl
 dnl  configure.in ---<autoconf>--->> configure
 dnl
 dnl  configure    ---<sh>--->> config.status
-dnl                      --->> include/cl_config.h
+dnl                      --->> include/cln/config.h
+dnl        cln-config.in --->> cln-config
 dnl          Makefile.in --->> Makefile
 dnl      src/Makefile.in --->> src/Makefile
 dnl
@@ -12,7 +12,8 @@ dnl  Makefile   ---<make>--->> 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_CONFIG_AUX_DIR(autoconf)
+AC_CONFIG_HEADER(include/cln/config.h include/cln/version.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.
@@ -64,24 +65,40 @@ CL_CANONICAL_HOST_CPU
 dnl
 dnl           check for build configuration
 dnl
+                      dnl libcln depends on libm
 PACKAGE=cln
-AM_DISABLE_SHARED
+                      dnl libtool wants PACKAGE
 AM_PROG_LIBTOOL
-dnl CLN library version information.
-dnl
-dnl Making new releases:
-dnl   CLN_MICRO_VERSION += 1;
-dnl   CLN_INTERFACE_AGE += 1;
-dnl   CLN_BINARY_AGE += 1;
-dnl if any functions have been added, set CLN_INTERFACE_AGE to 0.
-dnl if backwards compatibility has been broken,
-dnl set CLN_BINARY_AGE and CLN_INTERFACE_AGE to 0.
-dnl CLN_MAJOR_VERSION=1
-dnl CLN_MINOR_VERSION=0
-dnl CLN_MICRO_VERSION=4
-dnl CLN_INTERFACE_AGE=1
-dnl CLN_BINARY_AGE=1
                       dnl sets variable LIBTOOL
+
+dnl Libtool's library version information for CLN.
+dnl (Not to be confused with CLN's release version.)
+dnl Making new releases:
+dnl * increment CL_REVISION,
+dnl * if any functions/classes have been added, removed or changed, increment
+dnl   CL_CURRENT and set CL_REVISION to 0,
+dnl * if any functions/classes have been added, increment CL_AGE,
+dnl * if backwards compatibility has been broken, set CL_AGE to 0.
+CL_CURRENT=2
+CL_REVISION=1
+CL_AGE=0
+dnl make substitutions
+AC_SUBST(CL_CURRENT)
+AC_SUBST(CL_REVISION)
+AC_SUBST(CL_AGE)
+dnl release version
+CL_VERSION_MAJOR=1
+CL_VERSION_MINOR=1
+CL_VERSION_PATCHLEVEL=2
+dnl release version for cln/config.h, so it can be tested by the preprocessor
+AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
+AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
+AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
+dnl concatenated release version
+CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
+AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
+AC_SUBST(CL_VERSION)
+
 dnl
 dnl           checks for compiler characteristics
 dnl
@@ -127,24 +144,29 @@ 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
+test -d 'include/cln' || mkdir -p 'include/cln'
+CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,include/cln/intparam.h,cl_cv_file_intparam_h)
+                      dnl builds include/cln/intparam.h
+CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,include/cln/floatparam.h,cl_cv_file_floatparam_h)
+                      dnl builds include/cln/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])
+AC_ARG_WITH(gmp, [  --with-gmp              use external fast low-level functions from GNU MP 3.
+                          [default=yes]], ,with_gmp="yes")
 if test "$with_gmp" = yes; then
-  AC_CHECK_HEADER(gmp.h, , with_gmp="no")
-dnl mpn_divexact_by3 was introduced in gmp3 and the symbol has a leading `__g':
-  AC_CHECK_LIB(gmp, __gmpn_divexact_by3, , with_gmp="no")
+  CL_GMP_H_VERSION
+  if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
+  if test "$with_gmp" = yes; then
+    CL_GMP_CHECK
+    if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi
+  fi
 fi
 if test "$with_gmp" = yes; then
+  CL_GMP_SET_UINTD
   AC_DEFINE(CL_USE_GMP)
 else
-  AC_MSG_WARN([disabling external gmp])
+  AC_MSG_WARN([disabling external GNU MP library])
 fi
 dnl
 dnl           That's it.
@@ -159,4 +181,4 @@ changequote([,])dnl
     cp "$srcdir/$f" "$f"
   fi
 done
-AC_OUTPUT(Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile)
+AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln-config cln-config.1 cln.spec], [chmod +x cln-config])