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
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_HEADER(include/cln/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.
dnl
dnl check for build configuration
dnl
+LIBS=-lm
+ dnl libcln depends on libm
PACKAGE=cln
-AM_DISABLE_SHARED
+ dnl libtool wants PACKAGE
AM_PROG_LIBTOOL
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 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.
+CL_CURRENT=1
+CL_REVISION=0
+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=0
+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 concateneted 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
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
-dnl
-AC_ARG_WITH(gmp, [ --with-gmp use fast GNU gmp low-level functions])
-if test -z "$with_gmp"; then
- if test -d "${srcdir}/gmp"; then
- with_gmp=yes
- else
- with_gmp=no
+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 low-level functions from GNU MP 3.
+ [default=yes]], ,with_gmp="yes")
+if test "$with_gmp" = yes; then
+ 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
AC_DEFINE(CL_USE_GMP)
- GMP_INCLUDES='-I$(top_srcdir)/gmp'
- GMP_OBJDEPS='../gmp/mpn/libmpn.la'
- GMP_OBJS='../gmp/mpn/*.lo ../gmp/*.lo'
else
- GMP_INCLUDES=''
- GMP_OBJDEPS=''
- GMP_OBJS=''
+ AC_MSG_WARN([disabling external GNU MP library])
fi
-AC_SUBST(GMP_INCLUDES)
-AC_SUBST(GMP_OBJDEPS)
-AC_SUBST(GMP_OBJS)
dnl
dnl That's it.
dnl
cp "$srcdir/$f" "$f"
fi
done
-AC_OUTPUT(Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile)
-if test "$with_gmp" = yes; then
- AC_OUTPUT_SUBDIRS(gmp)
-fi
+AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln-config cln.spec], [chmod +x cln-config])