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 ASMFLAGS
57 dnl sets variable RANLIB
59 dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
61 dnl check for host type
63 CL_CANONICAL_HOST(autoconf)
64 dnl sets variables host, host_cpu, host_vendor, host_os
66 dnl DEFS __${host_cpu}__
68 dnl check for build configuration
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 CL_REVISION,
79 dnl * if any functions/classes have been added, removed or changed, increment
80 dnl CL_CURRENT and set CL_REVISION to 0,
81 dnl * if any functions/classes have been added, increment CL_AGE,
82 dnl * if backwards compatibility has been broken, set CL_AGE to 0.
86 dnl make substitutions
93 CL_VERSION_PATCHLEVEL=9
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 concatenated 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_LONGLONG
111 dnl DEFS HAVE_LONGDOUBLE
112 CL_GLOBAL_CONSTRUCTORS
113 dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX
115 dnl checks for header files
117 AC_CHECK_HEADERS([unistd.h])
118 dnl DEFS HAVE_UNISTD_H if exist unistd.h
120 dnl checks for typedefs
123 dnl checks for functions and declarations
126 dnl set variable ALLOCA, DEFS NO_ALLOCA
128 dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW
130 dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
132 dnl don't use ftime(3) even if it's available
134 dnl DEFS HAVE_TIMES_CLOCK
136 dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
138 dnl DEFS HAVE_PERROR_DECL
140 dnl checks for compiler characteristics
143 dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
144 test -d 'include/cln' || mkdir -p 'include/cln'
145 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,include/cln/intparam.h,cl_cv_file_intparam_h)
146 dnl builds include/cln/intparam.h
147 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,include/cln/floatparam.h,cl_cv_file_floatparam_h)
148 dnl builds include/cln/floatparam.h
150 dnl interfacing to GNU gmp (must be at least version 3)
152 AC_ARG_WITH(gmp, [ --with-gmp use external fast low-level functions from GNU MP 3.
153 [default=yes]], ,with_gmp="yes")
154 if test "$with_gmp" = yes; then
156 if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
157 if test "$with_gmp" = yes; then
159 if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi
162 if test "$with_gmp" = yes; then
164 AC_DEFINE(CL_USE_GMP)
166 AC_MSG_WARN([disabling external GNU MP library])
171 for f in 'tests/.gdbinit'; do
172 if test '!' -f "$f"; then
175 g=`echo "$f" | sed -e 's,/[^/]*$,,'`
177 test "$g" = "$f" || test -d "$g" || mkdir "$g"
181 AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln-config cln-config.1 cln.spec cln.pc], [chmod +x cln-config])