1 dnl AUTOCONF configuration for CLN
3 dnl configure.ac ---<autoconf>--->> configure
5 dnl configure ---<sh>--->> config.status
6 dnl --->> include/cln/config.h
7 dnl cln-config.in --->> cln-config
8 dnl Makefile.in --->> Makefile
9 dnl src/Makefile.in --->> src/Makefile
11 dnl Makefile ---<make>--->> libcln.a
14 AC_INIT(src/integer/gcd/cl_I_gcd.cc)
15 AC_CONFIG_AUX_DIR(autoconf)
16 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)
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
68 dnl libcln depends on libm
70 dnl libtool wants PACKAGE
72 dnl sets variable LIBTOOL
74 dnl Libtool's library version information for CLN.
75 dnl (Not to be confused with CLN's release version.)
76 dnl Making new releases:
77 dnl * increment CL_REVISION,
78 dnl * if any functions/classes have been added, removed or changed, increment
79 dnl CL_CURRENT and set CL_REVISION to 0,
80 dnl * if any functions/classes have been added, increment CL_AGE,
81 dnl * if backwards compatibility has been broken, set CL_AGE to 0.
85 dnl make substitutions
92 CL_VERSION_PATCHLEVEL=4
93 dnl release version for cln/config.h, so it can be tested by the preprocessor
94 AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
95 AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
96 AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
97 dnl concatenated release version
98 CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
99 AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
103 dnl checks for compiler characteristics
108 dnl DEFS HAVE_BOOL, bool
110 dnl DEFS HAVE_LONGLONG
112 dnl DEFS HAVE_LONGDOUBLE
114 dnl DEFS HAVE_TEMPLATE_NULL
115 CL_GLOBAL_CONSTRUCTORS
116 dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX
118 dnl checks for header files
121 dnl DEFS HAVE_UNISTD_H if exist unistd.h
123 dnl checks for typedefs
126 dnl checks for functions and declarations
129 dnl set variable ALLOCA, DEFS NO_ALLOCA
131 dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW
133 dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
137 dnl DEFS HAVE_TIMES_CLOCK
139 dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
141 dnl DEFS HAVE_PERROR_DECL
143 dnl checks for compiler characteristics
146 dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
147 test -d 'include/cln' || mkdir -p 'include/cln'
148 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,include/cln/intparam.h,cl_cv_file_intparam_h)
149 dnl builds include/cln/intparam.h
150 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,include/cln/floatparam.h,cl_cv_file_floatparam_h)
151 dnl builds include/cln/floatparam.h
153 dnl interfacing to GNU gmp (must be at least version 3)
155 AC_ARG_WITH(gmp, [ --with-gmp use external fast low-level functions from GNU MP 3.
156 [default=yes]], ,with_gmp="yes")
157 if test "$with_gmp" = yes; then
159 if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
160 if test "$with_gmp" = yes; then
162 if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi
165 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-config.1 cln.spec], [chmod +x cln-config])