Use conditional compilation for device.c.
This requires the automake option "subdir-objects" to be enabled, and it becomes more critical to specify the exact path to local header files.
This commit is contained in:
parent
9f8020a09c
commit
e70b5b5bd7
12 changed files with 96 additions and 70 deletions
37
configure.ac
37
configure.ac
|
@ -27,45 +27,45 @@ AC_CANONICAL_HOST
|
|||
|
||||
case $host_os in
|
||||
*linux*)
|
||||
linux=true
|
||||
AC_DEFINE(HAVE_LINUX, 1, [Linux])
|
||||
[ rm -f src/device.c; ln -sf linux/device.c src/device.c ]
|
||||
;;
|
||||
*freebsd*)
|
||||
bsd=true
|
||||
AC_DEFINE(HAVE_FREEBSD, 1, [FreeBSD])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*darwin*)
|
||||
bsd=true
|
||||
AC_DEFINE(HAVE_DARWIN, 1, [Darwin (MacOS/X)])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*solaris*)
|
||||
solaris=true
|
||||
AC_DEFINE(HAVE_SOLARIS, 1, [Solaris/SunOS])
|
||||
[ rm -f src/device.c; ln -sf solaris/device.c src/device.c ]
|
||||
;;
|
||||
*openbsd*)
|
||||
bsd=true
|
||||
AC_DEFINE(HAVE_OPENBSD, 1, [OpenBSD])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*netbsd*)
|
||||
bsd=true
|
||||
AC_DEFINE(HAVE_NETBSD, 1, [NetBSD])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*dragonfly*)
|
||||
bsd=true
|
||||
AC_DEFINE(HAVE_DRAGONFLY, 1, [DragonFly])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*bsd*)
|
||||
bsd=true
|
||||
AC_MSG_WARN("Unknown BSD variant, tinc might not compile or work!")
|
||||
AC_DEFINE(HAVE_BSD, 1, [Unknown BSD variant])
|
||||
[ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
|
||||
;;
|
||||
*cygwin*)
|
||||
cygwin=true
|
||||
AC_DEFINE(HAVE_CYGWIN, 1, [Cygwin])
|
||||
[ rm -f src/device.c; ln -sf cygwin/device.c src/device.c ]
|
||||
;;
|
||||
*mingw*)
|
||||
mingw=true
|
||||
AC_DEFINE(HAVE_MINGW, 1, [MinGW])
|
||||
[ rm -f src/device.c; cp -f src/mingw/device.c src/device.c ]
|
||||
LIBS="$LIBS -lws2_32 -lgdi32 -lcrypt32"
|
||||
;;
|
||||
*)
|
||||
|
@ -114,6 +114,11 @@ AC_ARG_WITH(windows2000,
|
|||
]
|
||||
)
|
||||
|
||||
AM_CONDITIONAL(LINUX, test "$linux" = true)
|
||||
AM_CONDITIONAL(BSD, test "$bsd" = true)
|
||||
AM_CONDITIONAL(SOLARIS, test "$solaris" = true)
|
||||
AM_CONDITIONAL(MINGW, test "$mingw" = true)
|
||||
AM_CONDITIONAL(CYGWIN, test "$cygwin" = true)
|
||||
AM_CONDITIONAL(UML, test "$uml" = true)
|
||||
AM_CONDITIONAL(VDE, test "$vde" = true)
|
||||
AM_CONDITIONAL(TUNEMU, test "$tunemu" = true)
|
||||
|
@ -133,13 +138,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/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([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 "have.h"]
|
||||
[], [], [#include "src/have.h"]
|
||||
)
|
||||
AC_CHECK_HEADERS([netinet/if_ether.h netinet/ip.h netinet/ip6.h],
|
||||
[], [], [#include "have.h"]
|
||||
[], [], [#include "src/have.h"]
|
||||
)
|
||||
AC_CHECK_HEADERS([netinet/tcp.h netinet/ip_icmp.h netinet/icmp6.h],
|
||||
[], [], [#include "have.h"]
|
||||
[], [], [#include "src/have.h"]
|
||||
)
|
||||
|
||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||
|
@ -153,13 +158,13 @@ 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], , ,
|
||||
[#include "have.h"]
|
||||
[#include "src/have.h"]
|
||||
)
|
||||
|
||||
dnl Checks for library functions.
|
||||
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 time usleep unsetenv vsyslog writev],
|
||||
[], [], [#include "have.h"]
|
||||
[], [], [#include "src/have.h"]
|
||||
)
|
||||
|
||||
dnl Support for SunOS
|
||||
|
@ -172,7 +177,7 @@ AC_CHECK_FUNC(gethostbyname, [], [
|
|||
])
|
||||
|
||||
AC_CHECK_DECLS([freeaddrinfo, gai_strerror, getaddrinfo, getnameinfo],
|
||||
[], [], [#include "have.h"]
|
||||
[], [], [#include "src/have.h"]
|
||||
)
|
||||
|
||||
AC_CACHE_SAVE
|
||||
|
|
|
@ -10,7 +10,29 @@ tincd_SOURCES = \
|
|||
net_socket.c netutl.c node.c process.c protocol.c protocol_auth.c protocol_edge.c protocol_misc.c \
|
||||
protocol_key.c protocol_subnet.c route.c sptps.c subnet.c subnet_parse.c event.c tincd.c \
|
||||
dummy_device.c raw_socket_device.c multicast_device.c names.c
|
||||
|
||||
## Conditionally compile device drivers
|
||||
|
||||
if LINUX
|
||||
tincd_SOURCES += linux/device.c
|
||||
endif
|
||||
|
||||
if BSD
|
||||
tincd_SOURCES += bsd/device.c
|
||||
endif
|
||||
|
||||
if SOLARIS
|
||||
tincd_SOURCES += solaris/device.c
|
||||
endif
|
||||
|
||||
if MINGW
|
||||
tincd_SOURCES += mingw/device.c
|
||||
endif
|
||||
|
||||
if CYGWIN
|
||||
tincd_SOURCES += cygwin/device.c
|
||||
endif
|
||||
|
||||
if UML
|
||||
tincd_SOURCES += uml_device.c
|
||||
endif
|
||||
|
@ -20,7 +42,7 @@ tincd_SOURCES += vde_device.c
|
|||
endif
|
||||
|
||||
nodist_tincd_SOURCES = \
|
||||
device.c cipher.c crypto.c ecdh.c ecdsa.c digest.c prf.c rsa.c
|
||||
cipher.c crypto.c ecdh.c ecdsa.c digest.c prf.c rsa.c
|
||||
|
||||
tinc_SOURCES = \
|
||||
utils.c getopt.c getopt1.c dropin.c \
|
||||
|
@ -41,7 +63,7 @@ tinc_LDADD = $(READLINE_LIBS) $(CURSES_LIBS)
|
|||
|
||||
DEFAULT_INCLUDES =
|
||||
|
||||
INCLUDES = @INCLUDES@ -I$(top_builddir)
|
||||
INCLUDES = @INCLUDES@
|
||||
|
||||
noinst_HEADERS = \
|
||||
xalloc.h utils.h getopt.h list.h splay_tree.h dropin.h fake-getaddrinfo.h fake-getnameinfo.h fake-gai-errnos.h ipv6.h ipv4.h ethernet.h \
|
||||
|
|
|
@ -19,16 +19,16 @@
|
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
#include "../system.h"
|
||||
|
||||
#include "conf.h"
|
||||
#include "device.h"
|
||||
#include "logger.h"
|
||||
#include "names.h"
|
||||
#include "net.h"
|
||||
#include "route.h"
|
||||
#include "utils.h"
|
||||
#include "xalloc.h"
|
||||
#include "../conf.h"
|
||||
#include "../device.h"
|
||||
#include "../logger.h"
|
||||
#include "../names.h"
|
||||
#include "../net.h"
|
||||
#include "../route.h"
|
||||
#include "../utils.h"
|
||||
#include "../xalloc.h"
|
||||
|
||||
#ifdef ENABLE_TUNEMU
|
||||
#include "bsd/tunemu.h"
|
||||
|
|
|
@ -18,21 +18,21 @@
|
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
#include "../system.h"
|
||||
|
||||
#include <w32api/windows.h>
|
||||
#include <w32api/winioctl.h>
|
||||
|
||||
#include "conf.h"
|
||||
#include "device.h"
|
||||
#include "logger.h"
|
||||
#include "names.h"
|
||||
#include "net.h"
|
||||
#include "route.h"
|
||||
#include "utils.h"
|
||||
#include "xalloc.h"
|
||||
#include "../conf.h"
|
||||
#include "../device.h"
|
||||
#include "../logger.h"
|
||||
#include "../names.h"
|
||||
#include "../net.h"
|
||||
#include "../route.h"
|
||||
#include "../utils.h"
|
||||
#include "../xalloc.h"
|
||||
|
||||
#include "mingw/common.h"
|
||||
#include "../mingw/common.h"
|
||||
|
||||
int device_fd = -1;
|
||||
static HANDLE device_handle = INVALID_HANDLE_VALUE;
|
||||
|
|
|
@ -31,7 +31,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
#endif
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#include "../config.h"
|
||||
#endif
|
||||
|
||||
#if !defined (__STDC__) || !__STDC__
|
||||
|
|
|
@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#include "../config.h"
|
||||
#endif
|
||||
|
||||
#include "getopt.h"
|
||||
|
|
|
@ -44,7 +44,6 @@
|
|||
|
||||
#include "system.h"
|
||||
|
||||
#include "config.h"
|
||||
#include "connection.h"
|
||||
#include "device.h"
|
||||
#include "edge.h"
|
||||
|
|
|
@ -18,20 +18,20 @@
|
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
#include "../system.h"
|
||||
|
||||
#include <linux/if_tun.h>
|
||||
#define DEFAULT_DEVICE "/dev/net/tun"
|
||||
|
||||
#include "conf.h"
|
||||
#include "device.h"
|
||||
#include "logger.h"
|
||||
#include "names.h"
|
||||
#include "net.h"
|
||||
#include "route.h"
|
||||
#include "utils.h"
|
||||
#include "xalloc.h"
|
||||
#include "device.h"
|
||||
#include "../conf.h"
|
||||
#include "../device.h"
|
||||
#include "../logger.h"
|
||||
#include "../names.h"
|
||||
#include "../net.h"
|
||||
#include "../route.h"
|
||||
#include "../utils.h"
|
||||
#include "../xalloc.h"
|
||||
#include "../device.h"
|
||||
|
||||
typedef enum device_type_t {
|
||||
DEVICE_TYPE_TUN,
|
||||
|
|
|
@ -18,21 +18,21 @@
|
|||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "system.h"
|
||||
#include "../system.h"
|
||||
|
||||
#include <windows.h>
|
||||
#include <winioctl.h>
|
||||
|
||||
#include "conf.h"
|
||||
#include "device.h"
|
||||
#include "logger.h"
|
||||
#include "names.h"
|
||||
#include "net.h"
|
||||
#include "route.h"
|
||||
#include "utils.h"
|
||||
#include "xalloc.h"
|
||||
#include "../conf.h"
|
||||
#include "../device.h"
|
||||
#include "../logger.h"
|
||||
#include "../names.h"
|
||||
#include "../net.h"
|
||||
#include "../route.h"
|
||||
#include "../utils.h"
|
||||
#include "../xalloc.h"
|
||||
|
||||
#include "mingw/common.h"
|
||||
#include "common.h"
|
||||
|
||||
int device_fd = -1;
|
||||
static HANDLE device_handle = INVALID_HANDLE_VALUE;
|
||||
|
|
|
@ -19,19 +19,19 @@
|
|||
*/
|
||||
|
||||
|
||||
#include "system.h"
|
||||
#include "../system.h"
|
||||
|
||||
#include <sys/stropts.h>
|
||||
#include <sys/sockio.h>
|
||||
#include <net/if_tun.h>
|
||||
|
||||
#include "conf.h"
|
||||
#include "device.h"
|
||||
#include "logger.h"
|
||||
#include "names.h"
|
||||
#include "net.h"
|
||||
#include "utils.h"
|
||||
#include "xalloc.h"
|
||||
#include "../conf.h"
|
||||
#include "../device.h"
|
||||
#include "../logger.h"
|
||||
#include "../names.h"
|
||||
#include "../net.h"
|
||||
#include "../utils.h"
|
||||
#include "../xalloc.h"
|
||||
|
||||
#define DEFAULT_DEVICE "/dev/tun"
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#ifndef __TINC_SYSTEM_H__
|
||||
#define __TINC_SYSTEM_H__
|
||||
|
||||
#include "config.h"
|
||||
#include "../config.h"
|
||||
|
||||
#include "have.h"
|
||||
|
||||
|
@ -37,7 +37,7 @@ typedef int bool;
|
|||
|
||||
/* Other functions */
|
||||
|
||||
#include "src/dropin.h"
|
||||
#include "dropin.h"
|
||||
|
||||
#ifndef HAVE_SOCKLEN_T
|
||||
typedef int socklen_t;
|
Loading…
Reference in a new issue