From 9f0fb224a6c2eab93b6917ef6c034423c49126cd Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Fri, 8 Apr 2016 17:49:49 +0200 Subject: [PATCH] Don't compile getopt*.c if the system provides getopt_long(). # Conflicts: # configure.ac # src/Makefile.am # src/tincd.c --- configure.ac | 5 ++++- src/Makefile.am | 19 ++++++++++++++++--- src/have.h | 6 ++++++ src/tincd.c | 2 -- 4 files changed, 26 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index dfdef20c..5065901d 100644 --- a/configure.ac +++ b/configure.ac @@ -170,7 +170,7 @@ dnl Checks for header files. dnl We do this in multiple stages, because unlike Linux all the other operating systems really suck and don't include their own dependencies. AC_HEADER_STDC -AC_CHECK_HEADERS([stdbool.h syslog.h sys/file.h sys/ioctl.h sys/mman.h sys/param.h sys/resource.h sys/socket.h sys/time.h sys/uio.h sys/un.h sys/wait.h netdb.h arpa/inet.h dirent.h]) +AC_CHECK_HEADERS([stdbool.h syslog.h sys/file.h sys/ioctl.h sys/mman.h sys/param.h sys/resource.h sys/socket.h sys/time.h sys/uio.h sys/un.h sys/wait.h netdb.h arpa/inet.h dirent.h getopt.h]) AC_CHECK_HEADERS([net/if.h net/if_types.h linux/if_tun.h net/if_tun.h net/tun/if_tun.h net/if_tap.h net/tap/if_tap.h net/ethernet.h net/if_arp.h netinet/in_systm.h netinet/in.h netinet/in6.h time.h netpacket/packet.h], [], [], [#include "$srcdir/src/have.h"] ) @@ -202,6 +202,9 @@ AC_CHECK_FUNCS([asprintf daemon fchmod flock ftime fork get_current_dir_name get [], [], [#include "$srcdir/src/have.h"] ) +AC_CHECK_FUNC(getopt_long, [getopt=true; AC_DEFINE(HAVE_GETOPT_LONG, 1, [getopt_long()])], [getopt=false]) +AM_CONDITIONAL(GETOPT, test "$getopt" = true) + dnl Support for SunOS AC_CHECK_FUNC(socket, [], [ diff --git a/src/Makefile.am b/src/Makefile.am index dacfbfc9..7de9ecb7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -53,8 +53,6 @@ tincd_SOURCES = \ fake-gai-errnos.h \ fake-getaddrinfo.c fake-getaddrinfo.h \ fake-getnameinfo.c fake-getnameinfo.h \ - getopt.c getopt.h \ - getopt1.c \ graph.c graph.h \ hash.c hash.h \ have.h \ @@ -149,7 +147,22 @@ sptps_speed_SOURCES = \ $(chacha_poly1305_SOURCES) ## Conditionally compile device drivers - + +if !GETOPT +tincd_SOURCES += \ + getopt.c getopt.h \ + getopt1.c +tinc_SOURCES += \ + getopt.c getopt.h \ + getopt1.cendif +sptps_test_SOURCES += \ + getopt.c getopt.h \ + getopt1.c +sptps_keypair_SOURCES += \ + getopt.c getopt.h \ + getopt1.c +endif + if LINUX tincd_SOURCES += linux/device.c endif diff --git a/src/have.h b/src/have.h index 88733a1e..57de6e08 100644 --- a/src/have.h +++ b/src/have.h @@ -210,6 +210,12 @@ #include #endif +#ifdef HAVE_GETOPT_H +#include +#else +#include "getopt.h" +#endif + #ifdef STATUS #undef STATUS #endif diff --git a/src/tincd.c b/src/tincd.c index eb03165f..15a5622d 100644 --- a/src/tincd.c +++ b/src/tincd.c @@ -43,8 +43,6 @@ #include #endif -#include - #include "conf.h" #include "control.h" #include "crypto.h" -- 2.20.1