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
75 dnl Shared libraries are not supported on some platforms [yet]
81 dnl sets variable LIBTOOL
83 dnl Libtool's library version information for CLN.
84 dnl (Not to be confused with CLN's release version.)
85 dnl Making new releases:
86 dnl * increment CL_REVISION,
87 dnl * if any functions/classes have been added, removed or changed, increment
88 dnl CL_CURRENT and set CL_REVISION to 0,
89 dnl * if any functions/classes have been added, increment CL_AGE,
90 dnl * if backwards compatibility has been broken, set CL_AGE to 0.
91 dnl $(CL_CURRENT):$(CL_REVISION):$(CL_AGE) results in
92 dnl libcln.so.$(CL_CURRENT)-$(CL_AGE)
96 dnl make substitutions
103 CL_VERSION_PATCHLEVEL=12
104 dnl release version for cln/config.h, so it can be tested by the preprocessor
105 AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR)
106 AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR)
107 AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL)
108 dnl concatenated release version
109 CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL
110 AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION)
114 dnl checks for compiler characteristics
119 dnl DEFS HAVE_LONGLONG
121 dnl DEFS HAVE_LONGDOUBLE
122 CL_GLOBAL_CONSTRUCTORS
123 dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX
125 dnl checks for header files
127 AC_CHECK_HEADERS([unistd.h])
128 dnl DEFS HAVE_UNISTD_H if exist unistd.h
130 dnl checks for typedefs
133 dnl checks for functions and declarations
136 dnl set variable ALLOCA, DEFS NO_ALLOCA
138 dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW
140 dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
142 dnl don't use ftime(3) even if it's available
144 dnl DEFS HAVE_TIMES_CLOCK
146 dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
148 dnl DEFS HAVE_PERROR_DECL
150 dnl checks for compiler characteristics
153 dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
154 test -d 'include/cln' || mkdir -p 'include/cln'
155 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,[CL_INTPARAM_CROSS],include/cln/intparam.h,cl_cv_file_intparam_h)
156 dnl builds include/cln/intparam.h
157 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,[CL_FLOATPARAM_CROSS],include/cln/floatparam.h,cl_cv_file_floatparam_h)
158 dnl builds include/cln/floatparam.h
160 dnl interfacing to GNU gmp (must be at least version 3)
162 AC_ARG_WITH(gmp, [ --with-gmp use external fast low-level functions from GNU MP 3.
163 [default=yes]], ,with_gmp="yes")
164 if test "$with_gmp" = yes; then
166 if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi
167 if test "$with_gmp" = yes; then
169 if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi
172 if test "$with_gmp" = yes; then
174 AC_DEFINE(CL_USE_GMP)
176 AC_MSG_WARN([disabling external GNU MP library])
181 for f in 'tests/.gdbinit'; do
182 if test '!' -f "$f"; then
185 g=`echo "$f" | sed -e 's,/[^/]*$,,'`
187 test "$g" = "$f" || test -d "$g" || mkdir "$g"
191 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])