1 dnl AUTOCONF configuration for CLN
2 dnl Bruno Haible 8.1.1999
4 dnl configure.in ---<autoconf>--->> configure
6 dnl configure ---<sh>--->> config.status
7 dnl --->> include/cln/config.h
8 dnl cln-config.in --->> cln-config
9 dnl Makefile.in --->> Makefile
10 dnl src/Makefile.in --->> src/Makefile
12 dnl Makefile ---<make>--->> libcln.a
15 AC_INIT(src/integer/gcd/cl_I_gcd.cc)
16 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)
18 dnl This piece of sed script replaces every line containing '@subdir@'
19 dnl by several consecutive lines, each referencing one subdir.
30 s/@subdir@/benchmarks/
42 dnl checks for programs
51 dnl sets variable CXXCPP
53 dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE
55 dnl sets variable RANLIB
57 dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
59 dnl check for host type
61 CL_CANONICAL_HOST(autoconf)
62 dnl sets variables host, host_cpu, host_vendor, host_os
64 dnl DEFS __${host_cpu}__
66 dnl check for build configuration
69 dnl libcln depends on libm
71 dnl libtool wants PACKAGE
73 dnl sets variable LIBTOOL
75 dnl Libtool's library version information for CLN.
76 dnl (Not to be confused with CLN's release version.)
77 dnl Making new releases:
78 dnl * increment CLN_REVISION,
79 dnl * if any functions/classes have been added, removed or changed, increment
80 dnl CLN_CURRENT and set CLN_REVISION to 0,
81 dnl * if any functions/classes have been added, increment CLN_AGE,
82 dnl * if backwards compatibility has been broken, set CLN_AGE to 0.
86 dnl make substitutions
93 CL_VERSION_PATCHLEVEL=0
94 dnl release version for cln/config.h, so it can be tested by the preprocessor
95 AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
96 AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
97 AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
98 dnl concateneted release version
99 CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
100 AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
104 dnl checks for compiler characteristics
109 dnl DEFS HAVE_BOOL, bool
111 dnl DEFS HAVE_LONGLONG
113 dnl DEFS HAVE_LONGDOUBLE
115 dnl DEFS HAVE_TEMPLATE_NULL
116 CL_GLOBAL_CONSTRUCTORS
117 dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX
119 dnl checks for header files
122 dnl DEFS HAVE_UNISTD_H if exist unistd.h
124 dnl checks for typedefs
127 dnl checks for functions and declarations
130 dnl set variable ALLOCA, DEFS NO_ALLOCA
132 dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW
134 dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
138 dnl DEFS HAVE_TIMES_CLOCK
140 dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
142 dnl DEFS HAVE_PERROR_DECL
144 dnl checks for compiler characteristics
147 dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
148 test -d 'include' || mkdir 'include'
149 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,include/cln/intparam.h,cl_cv_file_intparam_h)
150 dnl builds include/cln/intparam.h
151 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,include/cln/floatparam.h,cl_cv_file_floatparam_h)
152 dnl builds include/cln/floatparam.h
154 dnl interfacing to GNU gmp (must be at least version 3)
156 AC_ARG_WITH(gmp, [ --with-gmp use external fast low-level functions from GNU MP 3.
157 [default=yes]], ,with_gmp="yes")
158 if test "$with_gmp" = yes; then
160 if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
161 if test "$with_gmp" = yes; then
163 if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi
166 if test "$with_gmp" = yes; then
167 AC_DEFINE(CL_USE_GMP)
169 AC_MSG_WARN([disabling external GNU MP library])
174 for f in 'tests/.gdbinit'; do
175 if test '!' -f "$f"; then
178 g=`echo "$f" | sed -e 's,/[^/]*$,,'`
180 test "$g" = "$f" || test -d "$g" || mkdir "$g"
184 AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln-config cln.spec], [chmod +x cln-config])