From 2c40495747945bc497dac65b734a4995ab3400a3 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Fri, 1 Oct 2004 18:22:06 +0000 Subject: [PATCH] Move all #ifdef HAVE_HEADER_H #include to have.h, this allows for simplification of configure.in. --- configure.in | 148 ++++----------------------------------------------- have.h | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++ system.h | 106 +----------------------------------- 3 files changed, 160 insertions(+), 242 deletions(-) create mode 100644 have.h diff --git a/configure.in b/configure.in index bae72e31..4bddb0b8 100644 --- a/configure.in +++ b/configure.in @@ -95,97 +95,13 @@ dnl We do this in multiple stages, because unlike Linux all the other operating AC_HEADER_STDC AC_CHECK_HEADERS([stdbool.h syslog.h sys/file.h sys/ioctl.h sys/param.h sys/time.h sys/socket.h sys/wait.h sys/mman.h netdb.h arpa/inet.h]) AC_CHECK_HEADERS([net/if.h net/ethernet.h net/if_arp.h netinet/in_systm.h netinet/in.h netinet/in6.h], - [], [], - [#ifdef HAVE_SYS_TYPES_H - #include - #endif - #ifdef HAVE_NETDB_H - #include - #endif - #ifdef HAVE_ARPA_INET_H - #include - #endif - #ifdef HAVE_SYS_SOCKET_H - #include - #endif - ] + [], [], [#include "have.h"] ) AC_CHECK_HEADERS([netinet/if_ether.h netinet/ip.h netinet/ip6.h], - [], [], - [#ifdef HAVE_SYS_TYPES_H - #include - #endif - #ifdef HAVE_NETDB_H - #include - #endif - #ifdef HAVE_ARPA_INET_H - #include - #endif - #ifdef HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NET_IF_H - #include - #endif - #ifdef HAVE_NETINET_IN_SYSTM_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif - #ifdef HAVE_NETINET_IN6_H - #include - #endif - #ifdef HAVE_NET_ETHERNET_H - #include - #endif - #ifdef HAVE_NET_IF_ARP_H - #include - #endif - ] + [], [], [#include "have.h"] ) AC_CHECK_HEADERS([netinet/tcp.h netinet/ip_icmp.h netinet/icmp6.h], - [], [], - [#ifdef HAVE_SYS_TYPES_H - #include - #endif - #ifdef HAVE_NETDB_H - #include - #endif - #ifdef HAVE_ARPA_INET_H - #include - #endif - #ifdef HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NET_IF_H - #include - #endif - #ifdef HAVE_NETINET_IN_SYSTM_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif - #ifdef HAVE_NETINET_IP_H - #include - #endif - #ifdef HAVE_NETINET_IN6_H - #include - #endif - #ifdef HAVE_NETINET_IP6_H - #include - #endif - #ifdef HAVE_NET_ETHERNET_H - #include - #endif - #ifdef HAVE_NET_IF_ARP_H - #include - #endif - #ifdef HAVE_NETINET_IF_ETHER_H - #include - #endif - ] + [], [], [#include "have.h"] ) dnl Checks for typedefs, structures, and compiler characteristics. @@ -199,62 +115,16 @@ AC_STRUCT_TM tinc_ATTRIBUTE(__malloc__) AC_CHECK_TYPES([socklen_t, struct ether_header, struct arphdr, struct ether_arp, struct in_addr, struct addrinfo, struct ip, struct icmp, struct in6_addr, struct sockaddr_in6, struct ip6_hdr, struct icmp6_hdr, struct nd_neighbor_solicit, struct nd_opt_hdr], , , - [#ifdef HAVE_SYS_TYPES_H - #include - #endif - #ifdef HAVE_NETDB_H - #include - #endif - #ifdef HAVE_ARPA_INET_H - #include - #endif - #ifdef HAVE_SYS_SOCKET_H - #include - #endif - #ifdef HAVE_NET_IF_H - #include - #endif - #ifdef HAVE_NETINET_IN_SYSTM_H - #include - #endif - #ifdef HAVE_NETINET_IN_H - #include - #endif - #ifdef HAVE_NETINET_IP_H - #include - #endif - #ifdef HAVE_NETINET_TCP_H - #include - #endif - #ifdef HAVE_NETINET_IN6_H - #include - #endif - #ifdef HAVE_NETINET_IP6_H - #include - #endif - #ifdef HAVE_NET_ETHERNET_H - #include - #endif - #ifdef HAVE_NET_IF_ARP_H - #include - #endif - #ifdef HAVE_NETINET_IF_ETHER_H - #include - #endif - #ifdef HAVE_NETINET_IP_ICMP_H - #include - #endif - #ifdef HAVE_NETINET_ICMP6_H - #include - #endif - ] + [#include "have.h"] ) dnl Checks for library functions. AC_FUNC_MEMCMP AC_FUNC_ALLOCA AC_TYPE_SIGNAL -AC_CHECK_FUNCS([asprintf daemon fchmod flock ftime fork get_current_dir_name gettimeofday mlockall putenv random select strdup strerror strsignal strtol system unsetenv vsyslog]) +AC_CHECK_FUNCS([asprintf daemon fchmod flock ftime fork get_current_dir_name gettimeofday mlockall putenv random select strdup strerror strsignal strtol system unsetenv vsyslog], + [], [], [#include "have.h"] +) jm_FUNC_MALLOC jm_FUNC_REALLOC @@ -267,7 +137,9 @@ AC_CHECK_FUNC(gethostbyname, [], [ AC_CHECK_LIB(nsl, gethostbyname) ]) -AC_CHECK_FUNCS([freeaddrinfo gai_strerror getaddrinfo getnameinfo inet_aton]) +AC_CHECK_FUNCS([freeaddrinfo gai_strerror getaddrinfo getnameinfo inet_aton], + [], [], [#include "have.h"] +) AC_CACHE_SAVE diff --git a/have.h b/have.h new file mode 100644 index 00000000..e5b0af83 --- /dev/null +++ b/have.h @@ -0,0 +1,148 @@ +/* + have.h -- include headers which are known to exist + Copyright (C) 1998-2004 Ivo Timmermans + 2003-2004 Guus Sliepen + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef __TINC_HAVE_H__ +#define __TINC_HAVE_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef HAVE_STDBOOL_H +#include +#endif + +#ifdef HAVE_TERMIOS_H +#include +#endif + +#ifdef HAVE_INTTYPES_H +#include +#endif + +/* Include system specific headers */ + +#ifdef HAVE_SYSLOG_H +#include +#endif + +#ifdef HAVE_SYS_TIME_H +#include +#endif + +#ifdef HAVE_SYS_TYPES_H +#include +#endif + +#ifdef HAVE_SYS_STAT_H +#include +#endif + +#ifdef HAVE_SYS_FILE_H +#include +#endif + +#ifdef HAVE_SYS_WAIT_H +#include +#endif + +#ifdef HAVE_SYS_IOCTL_H +#include +#endif + +#ifdef HAVE_SYS_PARAM_H +#include +#endif + +/* SunOS really wants sys/socket.h BEFORE net/if.h, + and FreeBSD wants these lines below the rest. */ + +#ifdef HAVE_NETDB_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif + +#ifdef HAVE_NET_IF_H +#include +#endif + +#ifdef HAVE_NETINET_IN_SYSTM_H +#include +#endif + +#ifdef HAVE_NETINET_IN_H +#include +#endif + +#ifdef HAVE_ARPA_INET_H +#include +#endif + +#ifdef HAVE_NETINET_IP_H +#include +#endif + +#ifdef HAVE_NETINET_TCP_H +#include +#endif + +#ifdef HAVE_NETINET_IN6_H +#include +#endif + +#ifdef HAVE_NETINET_IP6_H +#include +#endif + +#ifdef HAVE_NET_ETHERNET_H +#include +#endif + +#ifdef HAVE_NET_IF_ARP_H +#include +#endif + +#ifdef HAVE_NETINET_IP_ICMP_H +#include +#endif + +#ifdef HAVE_NETINET_ICMP6_H +#include +#endif + +#ifdef HAVE_NETINET_IF_ETHER_H +#include +#endif + +#ifdef HAVE_MINGW +#include +#include +#endif + +#endif /* __TINC_SYSTEM_H__ */ diff --git a/system.h b/system.h index b0d23c8c..02fc2ee1 100644 --- a/system.h +++ b/system.h @@ -23,116 +23,14 @@ #include "config.h" -/* Include standard headers */ +#include "have.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_STDBOOL_H -#include -#else +#ifndef HAVE_STDBOOL_H typedef int bool; #define true 1 #define false 0 #endif -#ifdef HAVE_TERMIOS_H -#include -#endif - -#ifdef HAVE_INTTYPES_H -#include -#endif - -/* Include system specific headers */ - -#ifdef HAVE_SYSLOG_H -#include -#endif - -#ifdef HAVE_SYS_TIME_H -#include -#endif - -#ifdef HAVE_SYS_TYPES_H -#include -#endif - -#ifdef HAVE_SYS_STAT_H -#include -#endif - -#ifdef HAVE_SYS_FILE_H -#include -#endif - -#ifdef HAVE_SYS_WAIT_H -#include -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include -#endif - -#ifdef HAVE_SYS_PARAM_H -#include -#endif - -/* SunOS really wants sys/socket.h BEFORE net/if.h, - and FreeBSD wants these lines below the rest. */ - -#ifdef HAVE_NETDB_H -#include -#endif - -#ifdef HAVE_SYS_SOCKET_H -#include -#endif - -#ifdef HAVE_NET_IF_H -#include -#endif - -#ifdef HAVE_NETINET_IN_SYSTM_H -#include -#endif - -#ifdef HAVE_NETINET_IN_H -#include -#endif - -#ifdef HAVE_ARPA_INET_H -#include -#endif - -#ifdef HAVE_NETINET_IP_H -#include -#endif - -#ifdef HAVE_NETINET_TCP_H -#include -#endif - -#ifdef HAVE_NETINET_IN6_H -#include -#endif - -#ifdef HAVE_NETINET_IP6_H -#include -#endif - -#ifdef HAVE_MINGW -#include -#include -#endif - /* Include localisation support */ #include "gettext.h" -- 2.20.1