From 7a855725f2ffde508da0c7ee01dc1bcd6e0a5d93 Mon Sep 17 00:00:00 2001 From: "Ondrej Zajicek (work)" Date: Tue, 14 Mar 2017 13:46:51 +0100 Subject: [PATCH] Some autoconf cleanups The patch allows to use autoreconf, replaces some long obsolete constructs and does some other minor cleanups. Also, the file configure.in is renamed to configure.ac, as the old name has been deprecated for a long time. Thanks to Ruben Kerkhof for the patchset. --- aclocal.m4 | 29 +++++++------ configure.in => configure.ac | 79 +++++++++++++++++++++++------------- sysdep/autoconf.h.in | 70 -------------------------------- tools/Makefile-top.in | 2 +- 4 files changed, 68 insertions(+), 112 deletions(-) rename configure.in => configure.ac (81%) delete mode 100644 sysdep/autoconf.h.in diff --git a/aclocal.m4 b/aclocal.m4 index 02c0f76b..f2775422 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,12 +1,17 @@ dnl ** Additional Autoconf tests for BIRD configure script dnl ** (c) 1999 Martin Mares -AC_DEFUN(BIRD_CHECK_INTEGERS, +AC_DEFUN([BIRD_CHECK_INTEGERS], [AC_CHECK_SIZEOF(char, 0) AC_CHECK_SIZEOF(short int, 0) AC_CHECK_SIZEOF(int, 0) AC_CHECK_SIZEOF(long int, 0) AC_CHECK_SIZEOF(long long int, 0) +AH_TEMPLATE([INTEGER_8], [8-bit integer type]) +AH_TEMPLATE([INTEGER_16], [16-bit integer type]) +AH_TEMPLATE([INTEGER_32], [32-bit integer type]) +AH_TEMPLATE([INTEGER_64], [64-bit integer type]) + for size in 1 2 4 8; do bits=`expr $size "*" 8` AC_MSG_CHECKING([for $bits-bit type]) @@ -30,7 +35,7 @@ for size in 1 2 4 8; do ]) dnl BIRD_CHECK_ENDIAN is unused and obsolete -AC_DEFUN(BIRD_CHECK_ENDIAN, +AC_DEFUN([BIRD_CHECK_ENDIAN], [AC_CACHE_CHECK([CPU endianity], bird_cv_c_endian,[ AC_TRY_RUN([ #include @@ -65,7 +70,7 @@ case $bird_cv_c_endian in esac ]) -AC_DEFUN(BIRD_CHECK_STRUCT_ALIGN, +AC_DEFUN([BIRD_CHECK_STRUCT_ALIGN], [AC_CACHE_CHECK([usual alignment of structures],bird_cv_c_struct_align,[ AC_TRY_RUN([ #include @@ -87,10 +92,10 @@ AC_MSG_RESULT([test program failed]) AC_MSG_ERROR([Cannot determine structure alignment]) ],[bird_cv_c_struct_align=16]) ]) -AC_DEFINE_UNQUOTED(CPU_STRUCT_ALIGN, $bird_cv_c_struct_align) +AC_DEFINE_UNQUOTED([CPU_STRUCT_ALIGN], [$bird_cv_c_struct_align], [Usual alignment of structures]) ]) -AC_DEFUN(BIRD_CHECK_TIME_T, +AC_DEFUN([BIRD_CHECK_TIME_T], [AC_CACHE_CHECK([characteristics of time_t], bird_cv_type_time_t, [ AC_TRY_RUN([ #include @@ -113,15 +118,15 @@ int main(void) ],[bird_cv_type_time_t="32-bit signed"]) ]) case "$bird_cv_type_time_t" in - *64-bit*) AC_DEFINE(TIME_T_IS_64BIT) ;; + *64-bit*) AC_DEFINE([TIME_T_IS_64BIT], [1], [Define to 1 if time_t is 64 bit]) ;; esac case "$bird_cv_type_time_t" in *unsigned*) ;; - *) AC_DEFINE(TIME_T_IS_SIGNED) ;; + *) AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed]) ;; esac ]) -AC_DEFUN(BIRD_CHECK_STRUCT_IP_MREQN, +AC_DEFUN([BIRD_CHECK_STRUCT_IP_MREQN], [AC_CACHE_CHECK([for struct ip_mreqn], bird_cv_struct_ip_mreqn,[ AC_TRY_COMPILE([#include ],[struct ip_mreqn x; @@ -129,11 +134,11 @@ AC_TRY_COMPILE([#include ],[bird_cv_struct_ip_mreqn=no ])]) if test "$bird_cv_struct_ip_mreqn" = yes ; then - AC_DEFINE(HAVE_STRUCT_IP_MREQN) + AC_DEFINE([HAVE_STRUCT_IP_MREQN], [1], [Define to 1 if you have struct ip_mreqn]) fi ]) -AC_DEFUN(BIRD_CHECK_PTHREADS, +AC_DEFUN([BIRD_CHECK_PTHREADS], [ bird_tmp_cflags="$CFLAGS" @@ -145,7 +150,7 @@ AC_DEFUN(BIRD_CHECK_PTHREADS, CFLAGS="$bird_tmp_cflags" ]) -AC_DEFUN(BIRD_CHECK_GCC_OPTION, +AC_DEFUN([BIRD_CHECK_GCC_OPTION], [ bird_tmp_cflags="$CFLAGS" @@ -156,7 +161,7 @@ AC_DEFUN(BIRD_CHECK_GCC_OPTION, CFLAGS="$bird_tmp_cflags" ]) -AC_DEFUN(BIRD_ADD_GCC_OPTION, +AC_DEFUN([BIRD_ADD_GCC_OPTION], [ if test "$$1" = yes ; then CFLAGS="$CFLAGS $2" diff --git a/configure.in b/configure.ac similarity index 81% rename from configure.in rename to configure.ac index 57fa0079..c06677c5 100644 --- a/configure.in +++ b/configure.ac @@ -2,8 +2,8 @@ dnl ** This is a configure script template for BIRD dnl ** Process it with autoconf to get ./configure dnl ** (c) 1999--2000 Martin Mares -AC_REVISION($Id$) -AC_INIT(conf/confbase.Y) +AC_INIT +AC_CONFIG_SRCDIR([conf/confbase.Y]) AC_CONFIG_AUX_DIR(tools) AC_ARG_ENABLE(debug, [ --enable-debug enable internal debugging routines (default: disabled)],,enable_debug=no) @@ -96,7 +96,7 @@ if test "$enable_pthreads" != no ; then BIRD_CHECK_PTHREADS if test "$bird_cv_lib_pthreads" = yes ; then - AC_DEFINE(USE_PTHREADS) + AC_DEFINE([USE_PTHREADS], [1], [Define to 1 if pthreads are enabled]) CFLAGS="$CFLAGS -pthread" LDFLAGS="$LDFLAGS -pthread" proto_bfd=bfd @@ -191,7 +191,7 @@ if ! test -f $sysdesc ; then AC_MSG_ERROR([The system configuration file is missing.]) fi sysname=`echo $sysdesc | sed 's/\.h$//'` -AC_DEFINE_UNQUOTED(SYSCONF_INCLUDE, "$sysdesc") +AC_DEFINE_UNQUOTED([SYSCONF_INCLUDE], ["$sysdesc"], [Which sysdep header to include]) AC_MSG_CHECKING([system-dependent directories]) sysdep_dirs="`sed <$sysdesc '/^Link: /!d;s/^Link: \(.*\)$/\1/' | tr '\012' ' '` lib" @@ -217,6 +217,15 @@ if test "$with_protocols" = all ; then with_protocols="$all_protocols" fi +AH_TEMPLATE([CONFIG_BABEL], [Babel protocol]) +AH_TEMPLATE([CONFIG_BFD], [BFD protocol]) +AH_TEMPLATE([CONFIG_BGP], [BGP protocol]) +AH_TEMPLATE([CONFIG_OSPF], [OSPF protocol]) +AH_TEMPLATE([CONFIG_PIPE], [Pipe protocol]) +AH_TEMPLATE([CONFIG_RADV], [RAdv protocol]) +AH_TEMPLATE([CONFIG_RIP], [RIP protocol]) +AH_TEMPLATE([CONFIG_STATIC], [Static protocol]) + AC_MSG_CHECKING([protocols]) protocols=`echo "$with_protocols" | sed 's/,/ /g'` if test "$protocols" = no ; then protocols= ; fi @@ -239,18 +248,32 @@ case $sysdesc in ;; esac -AC_CHECK_HEADER(syslog.h, [AC_DEFINE(HAVE_SYSLOG)]) -AC_CHECK_HEADER(alloca.h, [AC_DEFINE(HAVE_ALLOCA_H)]) +AC_CHECK_HEADER(syslog.h, [AC_DEFINE([HAVE_SYSLOG], [1], [Define to 1 if you have the header file])]) +AC_CHECK_HEADER(alloca.h, [AC_DEFINE([HAVE_ALLOCA_H], [1], [Define to 1 if you have the header file])]) AC_MSG_CHECKING(whether 'struct sockaddr' has sa_len) -AC_TRY_COMPILE([#include - #include - ], [static struct sockaddr sa; int i = sizeof(sa.sa_len);], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_SIN_LEN,,sin_len)], - AC_MSG_RESULT(no)) +AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM( + [[ + #include + #include + ]], + [[ + static struct sockaddr sa; + int i = sizeof(sa.sa_len); + ]] + )], + [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SIN_LEN,,sin_len) + ], + [AC_MSG_RESULT(no)] +) -AC_C_BIGENDIAN([AC_DEFINE(CPU_BIG_ENDIAN)], [AC_DEFINE(CPU_LITTLE_ENDIAN)], - [AC_MSG_ERROR([Cannot determine CPU endianity.])]) +AC_C_BIGENDIAN( + [AC_DEFINE([CPU_BIG_ENDIAN], [1], [Define to 1 if cpu is big endian])], + [AC_DEFINE([CPU_LITTLE_ENDIAN], [1], [Define to 1 if cpu is little endian])], + [AC_MSG_ERROR([Cannot determine CPU endianity.])] +) BIRD_CHECK_INTEGERS BIRD_CHECK_STRUCT_ALIGN @@ -258,7 +281,7 @@ BIRD_CHECK_TIME_T BIRD_CHECK_STRUCT_IP_MREQN if test "$enable_debug" = yes ; then - AC_DEFINE(DEBUGGING) + AC_DEFINE([DEBUGGING], [1], [Define to 1 if debugging is enabled]) if test "$enable_memcheck" = yes ; then AC_CHECK_LIB(dmalloc, dmalloc_debug) if test $ac_cv_lib_dmalloc_dmalloc_debug != yes ; then @@ -280,8 +303,8 @@ if test "$enable_client" = yes ; then AC_MSG_ERROR([[The client requires ncurses library. Either install the library or use --disable-client to compile without the client.]])))))) AC_CHECK_LIB(readline, rl_callback_read_char, CLIENT_LIBS="-lreadline $CLIENT_LIBS $USE_TERMCAP_LIB", AC_MSG_ERROR([[The client requires GNU readline library 2.1 or newer. Either install the library or use --disable-client to compile without the client.]]), $USE_TERMCAP_LIB) - AC_CHECK_LIB(readline, rl_crlf, AC_DEFINE(HAVE_RL_CRLF),,$USE_TERMCAP_LIB) - AC_CHECK_LIB(readline, rl_ding, AC_DEFINE(HAVE_RL_DING),,$USE_TERMCAP_LIB) + AC_CHECK_LIB(readline, rl_crlf, AC_DEFINE([HAVE_RL_CRLF], [1], [Define to 1 if you have rl_crlf()]),,$USE_TERMCAP_LIB) + AC_CHECK_LIB(readline, rl_ding, AC_DEFINE([HAVE_RL_DING], [1], [Define to 1 if you have rl_ding()]),,$USE_TERMCAP_LIB) fi AC_SUBST(CLIENT) AC_SUBST(CLIENT_LIBS) @@ -299,16 +322,14 @@ AC_OUTPUT rm -f $objdir/sysdep/paths.h -cat >&AC_FD_MSG < */ -#undef HAVE_STRUCT_IP_MREQN - -/* Protocols compiled in */ -#undef CONFIG_STATIC -#undef CONFIG_RIP -#undef CONFIG_RADV -#undef CONFIG_BFD -#undef CONFIG_BGP -#undef CONFIG_OSPF -#undef CONFIG_PIPE -#undef CONFIG_BABEL - -/* We use multithreading */ -#undef USE_PTHREADS - -/* We have and syslog() */ -#undef HAVE_SYSLOG - -/* We have */ -#undef HAVE_ALLOCA_H - -/* Are we using dmalloc? */ -#undef HAVE_LIBDMALLOC - -/* Readline stuff */ -#undef HAVE_RL_CRLF -#undef HAVE_RL_DING - -/* struct sockaddr_in(6) */ -#undef HAVE_SIN_LEN - -/* We have stdint.h */ -#undef HAVE_STDINT_H - -#define CONFIG_PATH ? diff --git a/tools/Makefile-top.in b/tools/Makefile-top.in index cf59f7a1..fa02b5e6 100644 --- a/tools/Makefile-top.in +++ b/tools/Makefile-top.in @@ -16,5 +16,5 @@ clean: distclean: clean $(MAKE) -C doc distclean rm -rf $(objdir) autom4te.cache - rm -f config.* configure sysdep/autoconf.h sysdep/paths.h Makefile + rm -f config.* configure sysdep/autoconf.h.in sysdep/paths.h Makefile