-sbin_PROGRAMS = tincd tincctl
-
-EXTRA_DIST = linux/device.c bsd/device.c solaris/device.c cygwin/device.c mingw/device.c mingw/common.h raw_socket/device.c uml_socket/device.c
-
-tincd_SOURCES = cipher.c conf.c connection.c control.c crypto.c digest.c edge.c graph.c logger.c meta.c net.c net_packet.c net_setup.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 rsa.c subnet.c tincd.c
-
-tincctl_SOURCES = tincctl.c rsagen.c
+sbin_PROGRAMS = tincd tinc sptps_test
+
+EXTRA_DIST = linux bsd solaris cygwin mingw openssl gcrypt
+
+tincd_SOURCES = \
+ buffer.c \
+ conf.c \
+ connection.c \
+ control.c \
+ dropin.c \
+ dummy_device.c \
+ edge.c \
+ event.c \
+ fake-getaddrinfo.c \
+ fake-getnameinfo.c \
+ getopt.c \
+ getopt1.c \
+ graph.c \
+ hash.c \
+ list.c \
+ logger.c \
+ meta.c \
+ multicast_device.c \
+ names.c \
+ net.c \
+ net_packet.c \
+ net_setup.c \
+ net_socket.c \
+ netutl.c \
+ node.c \
+ process.c \
+ protocol.c \
+ protocol_auth.c \
+ protocol_edge.c \
+ protocol_key.c \
+ protocol_misc.c \
+ protocol_subnet.c \
+ raw_socket_device.c \
+ route.c \
+ splay_tree.c \
+ sptps.c \
+ subnet.c \
+ subnet_parse.c \
+ tincd.c \
+ utils.c
+
+tinc_SOURCES = \
+ dropin.c \
+ getopt.c \
+ getopt1.c \
+ info.c \
+ invitation.c \
+ list.c \
+ names.c \
+ netutl.c \
+ sptps.c \
+ subnet_parse.c \
+ tincctl.c \
+ top.c \
+ utils.c
+
+sptps_test_SOURCES = \
+ logger.c \
+ sptps.c \
+ sptps_test.c \
+ utils.c
+
+## Conditionally compile device drivers
+
+if LINUX
+tincd_SOURCES += linux/device.c
+endif