This requires the automake option "subdir-objects" to be enabled, and it
becomes more critical to specify the exact path to local header files.
12 files changed:
case $host_os in
*linux*)
case $host_os in
*linux*)
AC_DEFINE(HAVE_LINUX, 1, [Linux])
AC_DEFINE(HAVE_LINUX, 1, [Linux])
- [ rm -f src/device.c; ln -sf linux/device.c src/device.c ]
AC_DEFINE(HAVE_FREEBSD, 1, [FreeBSD])
AC_DEFINE(HAVE_FREEBSD, 1, [FreeBSD])
- [ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
AC_DEFINE(HAVE_DARWIN, 1, [Darwin (MacOS/X)])
AC_DEFINE(HAVE_DARWIN, 1, [Darwin (MacOS/X)])
- [ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
AC_DEFINE(HAVE_SOLARIS, 1, [Solaris/SunOS])
AC_DEFINE(HAVE_SOLARIS, 1, [Solaris/SunOS])
- [ rm -f src/device.c; ln -sf solaris/device.c src/device.c ]
AC_DEFINE(HAVE_OPENBSD, 1, [OpenBSD])
AC_DEFINE(HAVE_OPENBSD, 1, [OpenBSD])
- [ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
AC_DEFINE(HAVE_NETBSD, 1, [NetBSD])
AC_DEFINE(HAVE_NETBSD, 1, [NetBSD])
- [ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
AC_DEFINE(HAVE_DRAGONFLY, 1, [DragonFly])
AC_DEFINE(HAVE_DRAGONFLY, 1, [DragonFly])
- [ rm -f src/device.c; ln -sf bsd/device.c src/device.c ]
AC_MSG_WARN("Unknown BSD variant, tinc might not compile or work!")
AC_DEFINE(HAVE_BSD, 1, [Unknown BSD variant])
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 ]
AC_DEFINE(HAVE_CYGWIN, 1, [Cygwin])
AC_DEFINE(HAVE_CYGWIN, 1, [Cygwin])
- [ rm -f src/device.c; ln -sf cygwin/device.c src/device.c ]
AC_DEFINE(HAVE_MINGW, 1, [MinGW])
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"
;;
*)
LIBS="$LIBS -lws2_32 -lgdi32 -lcrypt32"
;;
*)
+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)
AM_CONDITIONAL(UML, test "$uml" = true)
AM_CONDITIONAL(VDE, test "$vde" = true)
AM_CONDITIONAL(TUNEMU, test "$tunemu" = true)
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],
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],
)
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],
)
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.
)
dnl Checks for typedefs, structures, and compiler characteristics.
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], , ,
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 "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],
)
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"]
])
AC_CHECK_DECLS([freeaddrinfo, gai_strerror, getaddrinfo, getnameinfo],
])
AC_CHECK_DECLS([freeaddrinfo, gai_strerror, getaddrinfo, getnameinfo],
- [], [], [#include "have.h"]
+ [], [], [#include "src/have.h"]
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
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
if UML
tincd_SOURCES += uml_device.c
endif
endif
nodist_tincd_SOURCES = \
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 \
tinc_SOURCES = \
utils.c getopt.c getopt1.c dropin.c \
-INCLUDES = @INCLUDES@ -I$(top_builddir)
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 \
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 \
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#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 "../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"
#ifdef ENABLE_TUNEMU
#include "bsd/tunemu.h"
#ifdef ENABLE_TUNEMU
#include "bsd/tunemu.h"
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <w32api/windows.h>
#include <w32api/winioctl.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;
int device_fd = -1;
static HANDLE device_handle = INVALID_HANDLE_VALUE;
#endif
#ifdef HAVE_CONFIG_H
#endif
#ifdef HAVE_CONFIG_H
#endif
#if !defined (__STDC__) || !__STDC__
#endif
#if !defined (__STDC__) || !__STDC__
*/
\f
#ifdef HAVE_CONFIG_H
*/
\f
#ifdef HAVE_CONFIG_H
#endif
#include "getopt.h"
#endif
#include "getopt.h"
#include "connection.h"
#include "device.h"
#include "edge.h"
#include "connection.h"
#include "device.h"
#include "edge.h"
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <linux/if_tun.h>
#define DEFAULT_DEVICE "/dev/net/tun"
#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,
typedef enum device_type_t {
DEVICE_TYPE_TUN,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include <windows.h>
#include <winioctl.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"
int device_fd = -1;
static HANDLE device_handle = INVALID_HANDLE_VALUE;
int device_fd = -1;
static HANDLE device_handle = INVALID_HANDLE_VALUE;
#include <sys/stropts.h>
#include <sys/sockio.h>
#include <net/if_tun.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"
#define DEFAULT_DEVICE "/dev/tun"
#ifndef __TINC_SYSTEM_H__
#define __TINC_SYSTEM_H__
#ifndef __TINC_SYSTEM_H__
#define __TINC_SYSTEM_H__
#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;
#ifndef HAVE_SOCKLEN_T
typedef int socklen_t;