X-Git-Url: https://ginac.de/CLN/cln.git//cln.git?a=blobdiff_plain;f=configure.ac;h=5a5b552154215eddf4b62ad64d5b5651c5e135b9;hb=1bda4951ebdb5a5b03a503053d27036dd3b510aa;hp=e5e06de9567205eb3fbc8cc91bd5dc599abdd9bc;hpb=27e3a2ba765c9fce3f8472809448b9441ad55761;p=cln.git diff --git a/configure.ac b/configure.ac index e5e06de..5a5b552 100644 --- a/configure.ac +++ b/configure.ac @@ -1,51 +1,39 @@ -dnl AUTOCONF configuration for CLN -dnl -dnl configure.ac ------>> configure -dnl -dnl configure ------>> config.status -dnl --->> include/cln/config.h -dnl cln-config.in --->> cln-config -dnl Makefile.in --->> Makefile -dnl src/Makefile.in --->> src/Makefile -dnl -dnl Makefile ------>> libcln.a -dnl -dnl -AC_INIT(src/integer/gcd/cl_I_gcd.cc) -AC_CONFIG_AUX_DIR(autoconf) -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) -AC_PROG_MAKE_SET -dnl This piece of sed script replaces every line containing '@subdir@' -dnl by several consecutive lines, each referencing one subdir. -extrasub="$extrasub"' -/@subdir@/{ -h -g -s/@subdir@/src/ -p -g -s/@subdir@/tests/ -p -g -s/@subdir@/benchmarks/ -p -g -s/@subdir@/examples/ -p -g -s/@subdir@/doc/ -p -d -} -' -dnl +dnl run autoreconf -iv to produce the configure script. + +m4_define([cl_version_major], CL_GET_VERSION([MAJOR])) +m4_define([cl_version_minor], CL_GET_VERSION([MINOR])) +m4_define([cl_version_patchlevel], CL_GET_VERSION([PATCHLEVEL])) +m4_define([cl_version], [cl_version_major.cl_version_minor.cl_version_patchlevel]) + +dnl Libtool's library version information for CLN. +m4_define([cl_lt_current], CL_GET_LTVERSION([CURRENT])) +m4_define([cl_lt_revision], CL_GET_LTVERSION([REVISION])) +m4_define([cl_lt_age], CL_GET_LTVERSION([AGE])) +m4_define([cl_lt_version], [cl_lt_current:cl_lt_revision:cl_lt_age]) + +AC_INIT([cln], cl_version) +AC_PREREQ(2.59) +AC_CONFIG_SRCDIR(src/integer/gcd/cl_I_gcd.cc) +AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_HEADERS(autoconf/cl_config.h include/cln/config.h include/cln/host_cpu.h src/base/cl_base_config.h src/base/cl_gmpconfig.h src/timing/cl_t_config.h) +AM_INIT_AUTOMAKE([foreign 1.10 dist-bzip2 subdir-objects]) +AH_TOP([#ifndef _CL_CONFIG_H]) +AH_TOP([#define _CL_CONFIG_H]) +AH_TOP([#include "cln/host_cpu.h"]) +AH_TOP([/* prevents cln/config.h from being included, so no macro gets redefined */]) +AH_TOP([#define _CL_CONFIG_PUBLIC_H]) +AH_TOP([/* prevents cln/version.h from being included, so no macro gets redefined */]) +AH_TOP([#define _CL_VERSION_H]) +AH_BOTTOM([#endif /* _CL_CONFIG_H */]) + dnl checks for programs dnl -CL_PROG_CC +AC_PROG_CC dnl sets variable CC AC_PROG_CPP dnl sets variable CPP -CL_PROG_CXX +AC_PROG_CXX dnl sets variable CXX AC_PROG_CXXCPP dnl sets variable CXXCPP @@ -53,22 +41,15 @@ CL_AS_UNDERSCORE dnl sets variable AS_UNDERSCORE, DEFS ASM_UNDERSCORE CL_AS_NOEXECSTACK dnl sets variable ASMFLAGS -AC_PROG_RANLIB - dnl sets variable RANLIB AC_PROG_INSTALL dnl sets variables INSTALL, INSTALL_DATA, INSTALL_PROGRAM dnl dnl check for host type dnl -CL_CANONICAL_HOST(autoconf) +CL_CANONICAL_HOST dnl sets variables host, host_cpu, host_vendor, host_os CL_CANONICAL_HOST_CPU dnl DEFS __${host_cpu}__ -dnl -dnl check for build configuration -dnl -PACKAGE=cln - dnl libtool wants PACKAGE case $host_os in *mingw*) AC_DISABLE_SHARED @@ -81,47 +62,16 @@ esac AC_PROG_LIBTOOL dnl sets variable LIBTOOL -dnl Libtool's library version information for CLN. -dnl (Not to be confused with CLN's release version.) -dnl Making new releases: -dnl * increment CL_REVISION, -dnl * if any functions/classes have been added, removed or changed, increment -dnl CL_CURRENT and set CL_REVISION to 0, -dnl * if any functions/classes have been added, increment CL_AGE, -dnl * if backwards compatibility has been broken, set CL_AGE to 0. -dnl $(CL_CURRENT):$(CL_REVISION):$(CL_AGE) results in -dnl libcln.so.$(CL_CURRENT)-$(CL_AGE) -CL_CURRENT=5 -CL_REVISION=1 -CL_AGE=0 -dnl make substitutions -AC_SUBST(CL_CURRENT) -AC_SUBST(CL_REVISION) -AC_SUBST(CL_AGE) -dnl release version -CL_VERSION_MAJOR=1 -CL_VERSION_MINOR=2 -CL_VERSION_PATCHLEVEL=1 -dnl release version for cln/config.h, so it can be tested by the preprocessor -AC_DEFINE_UNQUOTED(CL_VERSION_MAJOR, $CL_VERSION_MAJOR) -AC_DEFINE_UNQUOTED(CL_VERSION_MINOR, $CL_VERSION_MINOR) -AC_DEFINE_UNQUOTED(CL_VERSION_PATCHLEVEL, $CL_VERSION_PATCHLEVEL) -dnl concatenated release version -CL_VERSION=$CL_VERSION_MAJOR.$CL_VERSION_MINOR.$CL_VERSION_PATCHLEVEL -AC_DEFINE_UNQUOTED(CL_VERSION, $CL_VERSION) -AC_SUBST(CL_VERSION) +LT_VERSION_INFO=cl_lt_version +AC_SUBST(LT_VERSION_INFO) -dnl dnl checks for compiler characteristics dnl -AC_LANG_CPLUSPLUS +AC_LANG([C++]) +AX_CXX_COMPILE_STDCXX([11], [ext], [optional]) dnl -CL_LONGLONG - dnl DEFS HAVE_LONGLONG -CL_LONGDOUBLE - dnl DEFS HAVE_LONGDOUBLE -CL_GLOBAL_CONSTRUCTORS - dnl DEFS CL_GLOBAL_CONSTRUCTOR_PREFIX, CL_GLOBAL_DESTRUCTOR_PREFIX +AC_CHECK_ALIGNOF([void*]) +AC_DEFINE_UNQUOTED([cl_word_alignment], [$ac_cv_alignof_voidp], [Normal alignment of void*]) dnl dnl checks for header files dnl @@ -135,14 +85,10 @@ dnl checks for functions and declarations dnl CL_ALLOCA dnl set variable ALLOCA, DEFS NO_ALLOCA -CL_FPU_CONTROL - dnl DEFS HAVE_FPU_CONTROL_T, HAVE_SETFPUCW CL_GETTIMEOFDAY dnl DEFS HAVE_GETTIMEOFDAY, GETTIMEOFDAY_DOTS, GETTIMEOFDAY_TZP_T ac_cv_func_ftime=no dnl don't use ftime(3) even if it's available -CL_TIMES_CLOCK - dnl DEFS HAVE_TIMES_CLOCK CL_RUSAGE dnl DEFS HAVE_SYS_RESOURCE_H, HAVE_GETRUSAGE, HAVE_SYS_TIMES_H CL_PERROR @@ -154,43 +100,24 @@ dnl checks for compiler characteristics dnl AC_C_CHAR_UNSIGNED dnl DEFS __CHAR_UNSIGNED__ if char is unsigned -test -d 'include/cln' || mkdir -p 'include/cln' + +dnl Create a subdirectory in the ${top_builddir} to hold auto-generated +dnl headers. This subdirectory does not exist when ${top_builddir} != ${top_srcdir} +dnl (a.k.a. "VPATH build"). +if test ! -d include/cln; then + AS_MKDIR_P([include/cln]) +fi CL_MACHINE([integer types and behaviour],${srcdir}/autoconf/intparam.c,[CL_INTPARAM_CROSS],include/cln/intparam.h,cl_cv_file_intparam_h) dnl builds include/cln/intparam.h CL_MACHINE([floating-point types and behaviour],${srcdir}/autoconf/floatparam.c,[CL_FLOATPARAM_CROSS],include/cln/floatparam.h,cl_cv_file_floatparam_h) dnl builds include/cln/floatparam.h -dnl -dnl interfacing to GNU gmp (must be at least version 3) -dnl -AC_ARG_WITH(gmp, AS_HELP_STRING([--with-gmp], - [use external fast low-level functions from GNU MP (default: yes).]), - with_gmp="$withval", - with_gmp="yes") -if test "$with_gmp" = yes; then - CL_GMP_H_VERSION - if test "$cl_cv_new_gmp_h" = no; then with_gmp="no"; fi - if test "$with_gmp" = yes; then - CL_GMP_CHECK - if test "$cl_cv_new_libgmp" = no; then with_gmp="no"; fi - fi -fi -if test "$with_gmp" = yes; then - CL_GMP_SET_UINTD - AC_DEFINE(CL_USE_GMP) -else - AC_MSG_WARN([disabling external GNU MP library]) -fi +CL_LIBGMP + dnl DEFS CL_USE_GMP, GMP_DEMANDS_UINTD_* + +CLNLIB_LIBS='-L${libdir} -lcln' +AC_LIB_LINKFLAGS_FROM_LIBS([CLNLIB_RPATH], [$CLNLIB_LIBS]) + dnl dnl That's it. dnl -for f in 'tests/.gdbinit'; do - if test '!' -f "$f"; then - echo "creating $f" -changequote(,)dnl - g=`echo "$f" | sed -e 's,/[^/]*$,,'` -changequote([,])dnl - test "$g" = "$f" || test -d "$g" || mkdir "$g" - cp "$srcdir/$f" "$f" - fi -done -AC_OUTPUT([Makefile src/Makefile tests/Makefile benchmarks/Makefile examples/Makefile doc/Makefile cln.spec cln.pc]) +AC_OUTPUT([Makefile src/Makefile tests/Makefile examples/Makefile doc/Makefile benchmarks/Makefile cln.spec cln.pc])