You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
4.2 KiB
157 lines
4.2 KiB
bin_PROGRAMS = utun |
|
|
|
# Sources that are always compiled |
|
utun_CORE_SOURCES = \ |
|
utun.c \ |
|
utun_instance.c \ |
|
config_parser.c \ |
|
config_updater.c \ |
|
route_lib.c \ |
|
route_bgp.c \ |
|
route_ping.c \ |
|
route_node.c \ |
|
route_connectivity.c \ |
|
routing.c \ |
|
tun_if.c \ |
|
tun_route.c \ |
|
tun_linux.c \ |
|
tun_freebsd.c \ |
|
tun_windows.c \ |
|
etcp.c \ |
|
etcp_connections.c \ |
|
etcp_loadbalancer.c \ |
|
etcp_debug.c \ |
|
secure_channel.c \ |
|
crc32.c \ |
|
pkt_normalizer.c \ |
|
packet_dump.c \ |
|
etcp_api.c \ |
|
control_server.c \ |
|
firewall.c \ |
|
eim_nat.c \ |
|
nat_transport.c |
|
|
|
# Platform-specific TUN libs (Windows only) |
|
utun_TUN_LIBS = @TUN_LIBS@ |
|
|
|
# TinyCrypt sources (only used without OpenSSL) |
|
utun_TINYCRYPT_SOURCES = \ |
|
$(top_srcdir)/tinycrypt/lib/source/aes_encrypt.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/aes_decrypt.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/cbc_mode.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ccm_mode.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/cmac_mode.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ctr_mode.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ecc.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ecc_dh.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ecc_dsa.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/ecc_platform_specific.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/hmac.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/sha256.c \ |
|
$(top_srcdir)/tinycrypt/lib/source/utils.c |
|
|
|
# Combine sources based on OpenSSL usage |
|
if USE_OPENSSL |
|
utun_SOURCES = $(utun_CORE_SOURCES) $(utun_TUN_SOURCES) |
|
else |
|
utun_SOURCES = $(utun_CORE_SOURCES) $(utun_TINYCRYPT_SOURCES) $(utun_TUN_SOURCES) |
|
endif |
|
|
|
# Include paths |
|
utun_CORE_CFLAGS = \ |
|
-I$(top_srcdir)/lib \ |
|
-I$(top_srcdir)/tinycrypt/lib/include \ |
|
-I$(top_srcdir)/tinycrypt/lib/source \ |
|
-g \ |
|
$(DEBUG_FLAGS) |
|
|
|
utun_CFLAGS = $(utun_CORE_CFLAGS) |
|
|
|
# Libraries |
|
utun_CORE_LDADD = \ |
|
$(top_builddir)/lib/libuasync.a \ |
|
-lpthread \ |
|
-lm |
|
|
|
if USE_OPENSSL |
|
utun_LDADD = $(utun_CORE_LDADD) -lcrypto $(utun_TUN_LIBS) |
|
else |
|
utun_LDADD = $(utun_CORE_LDADD) $(utun_TUN_LIBS) |
|
endif |
|
|
|
# TinyCrypt object files (for tests that need them) |
|
TINYCRYPT_SRCDIR = $(top_srcdir)/tinycrypt/lib/source |
|
|
|
TINYCRYPT_OBJS = \ |
|
utun-aes_encrypt.o \ |
|
utun-aes_decrypt.o \ |
|
utun-ccm_mode.o \ |
|
utun-cmac_mode.o \ |
|
utun-ctr_mode.o \ |
|
utun-ecc.o \ |
|
utun-ecc_dh.o \ |
|
utun-ecc_dsa.o \ |
|
utun-sha256.o \ |
|
utun-ecc_platform_specific.o \ |
|
utun-utils.o |
|
|
|
# Rules to build TinyCrypt objects (for tests) |
|
TINYCRYPT_CFLAGS = -g -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source |
|
|
|
utun-aes_encrypt.o: $(TINYCRYPT_SRCDIR)/aes_encrypt.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-aes_decrypt.o: $(TINYCRYPT_SRCDIR)/aes_decrypt.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-ccm_mode.o: $(TINYCRYPT_SRCDIR)/ccm_mode.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-cmac_mode.o: $(TINYCRYPT_SRCDIR)/cmac_mode.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-ctr_mode.o: $(TINYCRYPT_SRCDIR)/ctr_mode.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-ecc.o: $(TINYCRYPT_SRCDIR)/ecc.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-ecc_dh.o: $(TINYCRYPT_SRCDIR)/ecc_dh.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-ecc_dsa.o: $(TINYCRYPT_SRCDIR)/ecc_dsa.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
utun-sha256.o: $(TINYCRYPT_SRCDIR)/sha256.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
# Force rebuild of ecc_platform_specific.o to pick up platform changes |
|
utun-ecc_platform_specific.o: $(TINYCRYPT_SRCDIR)/ecc_platform_specific.c FORCE |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
FORCE: |
|
|
|
utun-utils.o: $(TINYCRYPT_SRCDIR)/utils.c |
|
$(AM_V_CC)$(COMPILE) $(TINYCRYPT_CFLAGS) -c -o $@ $< |
|
|
|
# Build TinyCrypt objects for tests (convenience target) |
|
tinycrypt-objects: $(TINYCRYPT_OBJS) |
|
|
|
# Copy binary to project root after building |
|
all-local: copy-to-root |
|
|
|
copy-to-root: utun$(EXEEXT) |
|
@cp -f utun$(EXEEXT) $(top_srcdir)/ |
|
@cp -f $(top_srcdir)/lib/wintun.dll $(top_srcdir)/ 2>/dev/null || echo "Warning: wintun.dll not found in lib/" |
|
if OS_WINDOWS |
|
@cp -f $(srcdir)/utun.manifest $(top_srcdir)/utun.exe.manifest 2>/dev/null || true |
|
endif |
|
|
|
# Clean |
|
clean-local: |
|
@true |
|
|
|
# Install directories |
|
install-exec-hook: |
|
$(MKDIR_P) $(DESTDIR)$(bindir) |
|
$(MKDIR_P) $(DESTDIR)$(sysconfdir)/utun
|
|
|