]> www.ginac.de Git - cln.git/blob - configure.ac
build: switch to ordinary auto* tools system.
[cln.git] / configure.ac
1 dnl run autoreconf -iv to produce the configure script.
2
3 m4_define([cl_version_major], [1])
4 m4_define([cl_version_minor], [2])
5 m4_define([cl_version_patchlevel], [2])
6 m4_define([cl_version], [cl_version_major.cl_version_minor.cl_version_patchlevel])
7
8 dnl Libtool's library version information for CLN.
9 dnl (Not to be confused with CLN's release version.)
10 dnl Making new releases:
11 dnl * increment CL_REVISION,
12 dnl * if any functions/classes have been added, removed or changed, increment
13 dnl   CL_CURRENT and set CL_REVISION to 0,
14 dnl * if any functions/classes have been added, increment CL_AGE,
15 dnl * if backwards compatibility has been broken, set CL_AGE to 0.
16 dnl $(CL_CURRENT):$(CL_REVISION):$(CL_AGE) results in
17 dnl libcln.so.$(CL_CURRENT)-$(CL_AGE)
18 m4_define([cl_current], [6])
19 m4_define([cl_revision], [0])
20 m4_define([cl_age], [0])
21 m4_define([cl_lt_version], [cl_current:cl_revision:cl_age])
22
23 AC_INIT([cln], cln_version)
24 AC_PREREQ(2.59)
25 AC_CONFIG_SRCDIR(src/integer/gcd/cl_I_gcd.cc)
26 AC_CONFIG_AUX_DIR([autoconf])
27 AC_CONFIG_HEADERS(include/cln/config.h include/cln/host_cpu.h include/cln/version.h src/base/cl_base_config.h src/base/cl_gmpconfig.h src/timing/cl_t_config.h)
28 AM_INIT_AUTOMAKE([foreign 1.8 dist-bzip2])
29 AH_TOP([#ifdef _CL_CONFIG_H])
30 AH_TOP([#include "cln/host_cpu.h"])
31 AH_BOTTOM([#endif /* _CL_CONFIG_H */])
32
33 dnl           checks for programs
34 dnl
35 AC_PROG_CC
36                       dnl sets variable CC
37 AC_PROG_CPP
38                       dnl sets variable CPP
39 AC_PROG_CXX
40                       dnl sets variable CXX
41 AC_PROG_CXXCPP
42                       dnl sets variable CXXCPP
43 CL_AS_UNDERSCORE
44                       dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE
45 CL_AS_NOEXECSTACK
46                       dnl sets variable ASMFLAGS
47 AC_PROG_INSTALL
48                       dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
49 dnl
50 dnl           check for host type
51 dnl
52 CL_CANONICAL_HOST(autoconf)
53                       dnl sets variables host, host_cpu, host_vendor, host_os
54 CL_CANONICAL_HOST_CPU
55                       dnl DEFS __${host_cpu}__
56 case $host_os in
57     *mingw*)
58      AC_DISABLE_SHARED
59   dnl Shared libraries are not supported on some platforms [yet]
60     ;;
61     *)
62      AC_ENABLE_SHARED
63     ;;
64 esac
65 AC_PROG_LIBTOOL
66                       dnl sets variable LIBTOOL
67
68 LT_VERSION_INFO=cl_lt_version
69 AC_SUBST(LT_VERSION_INFO)
70
71 dnl release version
72 CL_VERSION_MAJOR=cl_version_major
73 CL_VERSION_MINOR=cl_version_minor
74 CL_VERSION_PATCHLEVEL=cl_version_patchlevel
75 dnl release version for cln/config.h, so it can be tested by the preprocessor
76 AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR, [Major version number of CLN])
77 AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR, [Minor version number of CLN])
78 AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL, [Patchlevel version number of CLN])
79 dnl concatenated release version
80 CL_VERSION=cl_version
81 AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION, [CLN release number])
82 AC_SUBST(CL_VERSION)
83
84 dnl           checks for compiler characteristics
85 dnl
86 AC_LANG([C++])
87 dnl
88 CL_LONGLONG
89                       dnl DEFS HAVE_LONGLONG
90 CL_LONGDOUBLE
91                       dnl DEFS HAVE_LONGDOUBLE
92 dnl
93 dnl           checks for header files
94 dnl
95 AC_CHECK_HEADERS([unistd.h])
96                       dnl DEFS HAVE_UNISTD_H if exist unistd.h
97 dnl
98 dnl           checks for typedefs
99 dnl
100 dnl
101 dnl           checks for functions and declarations
102 dnl
103 CL_ALLOCA
104                       dnl set variable ALLOCA, DEFS NO_ALLOCA
105 CL_GETTIMEOFDAY
106                       dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
107 ac_cv_func_ftime=no
108                       dnl don't use ftime(3) even if it's available
109 CL_TIMES_CLOCK
110                       dnl DEFS HAVE_TIMES_CLOCK
111 CL_RUSAGE
112                       dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
113 CL_PERROR
114                       dnl DEFS HAVE_PERROR_DECL
115 CL_ATTRIBUTE_FLATTEN
116                       dnl DEFS CL_HAVE_ATTRIBUTE_FLATTEN
117 dnl
118 dnl           checks for compiler characteristics
119 dnl
120 AC_C_CHAR_UNSIGNED
121                       dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
122
123 dnl Create a subdirectory in the ${top_builddir} to hold auto-generated
124 dnl headers. This subdirectory does not exist when ${top_builddir} != ${top_srcdir}
125 dnl (a.k.a. "VPATH build").
126 if test ! -d include/cln; then
127         AS_MKDIR_P([include/cln])
128 fi
129 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,[CL_INTPARAM_CROSS],include/cln/intparam.h,cl_cv_file_intparam_h)
130                       dnl builds include/cln/intparam.h
131 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,[CL_FLOATPARAM_CROSS],include/cln/floatparam.h,cl_cv_file_floatparam_h)
132                       dnl builds include/cln/floatparam.h
133 CL_LIBGMP
134                       dnl DEFS CL_USE_GMP, GMP_DEMANDS_UINTD_*
135 dnl
136 dnl           That's it.
137 dnl
138 AC_OUTPUT([Makefile src/Makefile tests/Makefile examples/Makefile doc/Makefile cln.spec cln.pc])