]> www.ginac.de Git - cln.git/blob - configure.ac
Prepare for CLN 1.3.0 release.
[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], [3])
5 m4_define([cl_version_patchlevel], [0])
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], cl_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(autoconf/cl_config.h 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.10 dist-bzip2])
29 AH_TOP([#ifndef _CL_CONFIG_H])
30 AH_TOP([#define _CL_CONFIG_H])
31 AH_TOP([#include "cln/host_cpu.h"])
32 AH_TOP([/* prevents cln/config.h from being included, so no macro gets redefined */])
33 AH_TOP([#define _CL_CONFIG_PUBLIC_H])
34 AH_TOP([/* prevents cln/version.h from being included, so no macro gets redefined */])
35 AH_TOP([#define _CL_VERSION_H])
36 AH_BOTTOM([#endif /* _CL_CONFIG_H */])
37
38 dnl           checks for programs
39 dnl
40 AC_PROG_CC
41                       dnl sets variable CC
42 AC_PROG_CPP
43                       dnl sets variable CPP
44 AC_PROG_CXX
45                       dnl sets variable CXX
46 AC_PROG_CXXCPP
47                       dnl sets variable CXXCPP
48 CL_AS_UNDERSCORE
49                       dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE
50 CL_AS_NOEXECSTACK
51                       dnl sets variable ASMFLAGS
52 AC_PROG_INSTALL
53                       dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM
54 dnl
55 dnl           check for host type
56 dnl
57 CL_CANONICAL_HOST(autoconf)
58                       dnl sets variables host, host_cpu, host_vendor, host_os
59 CL_CANONICAL_HOST_CPU
60                       dnl DEFS __${host_cpu}__
61 case $host_os in
62     *mingw*)
63      AC_DISABLE_SHARED
64   dnl Shared libraries are not supported on some platforms [yet]
65     ;;
66     *)
67      AC_ENABLE_SHARED
68     ;;
69 esac
70 AC_PROG_LIBTOOL
71                       dnl sets variable LIBTOOL
72
73 LT_VERSION_INFO=cl_lt_version
74 AC_SUBST(LT_VERSION_INFO)
75
76 dnl release version
77 CL_VERSION_MAJOR=cl_version_major
78 CL_VERSION_MINOR=cl_version_minor
79 CL_VERSION_PATCHLEVEL=cl_version_patchlevel
80 dnl release version for cln/config.h, so it can be tested by the preprocessor
81 AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR, [Major version number of CLN])
82 AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR, [Minor version number of CLN])
83 AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL, [Patchlevel version number of CLN])
84 dnl concatenated release version
85 CL_VERSION=cl_version
86 AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION, [CLN release number])
87 AC_SUBST(CL_VERSION)
88
89 dnl           checks for compiler characteristics
90 dnl
91 AC_LANG([C++])
92 dnl
93 CL_LONGLONG
94                       dnl DEFS HAVE_LONGLONG
95 CL_LONGDOUBLE
96                       dnl DEFS HAVE_LONGDOUBLE
97 dnl
98 dnl           checks for header files
99 dnl
100 AC_CHECK_HEADERS([unistd.h])
101                       dnl DEFS HAVE_UNISTD_H if exist unistd.h
102 dnl
103 dnl           checks for typedefs
104 dnl
105 dnl
106 dnl           checks for functions and declarations
107 dnl
108 CL_ALLOCA
109                       dnl set variable ALLOCA, DEFS NO_ALLOCA
110 CL_GETTIMEOFDAY
111                       dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T
112 ac_cv_func_ftime=no
113                       dnl don't use ftime(3) even if it's available
114 CL_TIMES_CLOCK
115                       dnl DEFS HAVE_TIMES_CLOCK
116 CL_RUSAGE
117                       dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H
118 CL_PERROR
119                       dnl DEFS HAVE_PERROR_DECL
120 CL_ATTRIBUTE_FLATTEN
121                       dnl DEFS CL_HAVE_ATTRIBUTE_FLATTEN
122 dnl
123 dnl           checks for compiler characteristics
124 dnl
125 AC_C_CHAR_UNSIGNED
126                       dnl DEFS __CHAR_UNSIGNED__ if char is unsigned
127
128 dnl Create a subdirectory in the ${top_builddir} to hold auto-generated
129 dnl headers. This subdirectory does not exist when ${top_builddir} != ${top_srcdir}
130 dnl (a.k.a. "VPATH build").
131 if test ! -d include/cln; then
132         AS_MKDIR_P([include/cln])
133 fi
134 CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,[CL_INTPARAM_CROSS],include/cln/intparam.h,cl_cv_file_intparam_h)
135                       dnl builds include/cln/intparam.h
136 CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,[CL_FLOATPARAM_CROSS],include/cln/floatparam.h,cl_cv_file_floatparam_h)
137                       dnl builds include/cln/floatparam.h
138 CL_LIBGMP
139                       dnl DEFS CL_USE_GMP, GMP_DEMANDS_UINTD_*
140
141 CLNLIB_LIBS='-L${libdir} -lcln'
142 AC_LIB_LINKFLAGS_FROM_LIBS([CLNLIB_RPATH], [$CLNLIB_LIBS])
143
144 dnl
145 dnl           That's it.
146 dnl
147 AC_OUTPUT([Makefile src/Makefile tests/Makefile examples/Makefile doc/Makefile benchmarks/Makefile cln.spec cln.pc])