463 lines
12 KiB
Makefile
463 lines
12 KiB
Makefile
bin_PROGRAMS = utun
|
|
noinst_LIBRARIES = libutun.a
|
|
|
|
EXTRA_DIST = lwip_tcp/COPYING dnsmasq/COPYING dnsmasq/COPYING-v3 routing_layer/address_profile.h routing_layer/route_ping_doc.md \
|
|
stream/stream_playback_audio.h stream/stream_playback_audio.cpp
|
|
|
|
stream_core_files = \
|
|
stream/stream.h \
|
|
stream/stream.c \
|
|
stream/stream_priv.h \
|
|
stream/stream_optimizer.h \
|
|
stream/stream_optimizer.c \
|
|
stream/stream_wire.h \
|
|
stream/stream_wire.c \
|
|
stream/stream_network.h \
|
|
stream/stream_network.c \
|
|
stream/stream_member.h \
|
|
stream/stream_member.c \
|
|
stream/stream_proto.h \
|
|
stream/stream_media.h \
|
|
stream/stream_media.c \
|
|
stream/stream_publisher.h \
|
|
stream/stream_publisher.c \
|
|
stream/stream_media_buffer.h \
|
|
stream/stream_media_buffer.c \
|
|
stream/stream_playback_clock.h \
|
|
stream/stream_playback_clock.c \
|
|
stream/stream_block.h \
|
|
stream/stream_block.c \
|
|
stream/stream_buffer.h \
|
|
stream/stream_buffer.c \
|
|
stream/stream_metrics.h \
|
|
stream/stream_metrics.c \
|
|
stream/stream_load.h \
|
|
stream/stream_load.c \
|
|
stream/stream_source.h \
|
|
stream/stream_source.c
|
|
|
|
# Sources that are always compiled
|
|
utun_CORE_SOURCES = \
|
|
$(stream_core_files) \
|
|
utun.c \
|
|
utun_instance.c \
|
|
config_parser.c \
|
|
config_updater.c \
|
|
routing_layer/route_lib.c \
|
|
routing_layer/route6_lib.c \
|
|
routing_layer/topo_group.c \
|
|
routing_layer/route_ping.c \
|
|
routing_layer/nat_detection.c \
|
|
routing_layer/topo_node.c \
|
|
routing_layer/topo_node_sqlite.c \
|
|
routing_layer/route_connectivity.c \
|
|
routing_layer/sock_match.c \
|
|
routing_layer/conn_mgr_core.c \
|
|
routing_layer/conn_mgr_indirect.c \
|
|
routing_layer/conn_mgr_monitor.c \
|
|
routing_layer/topo_recovery.c \
|
|
routing_layer/topo_group_connect.c \
|
|
routing_layer/topo_group_invite.c \
|
|
chat/db_sync.c \
|
|
routing_layer/routing.c \
|
|
tun_if.c \
|
|
tun_route.c \
|
|
tun_linux.c \
|
|
tun_freebsd.c \
|
|
tun_windows.c \
|
|
transport_layer/etcp.c \
|
|
transport_layer/etcp_tx_stats.c \
|
|
transport_layer/etcp_tx_stats.h \
|
|
transport_layer/etcp_padding.c \
|
|
transport_layer/etcp_padding.h \
|
|
transport_layer/etcp_session.c \
|
|
transport_layer/etcp_session.h \
|
|
transport_layer/etcp_connections.c \
|
|
transport_layer/stun_nat.c \
|
|
transport_layer/stun_nat.h \
|
|
transport_layer/etcp_keepalive.c \
|
|
transport_layer/etcp_bbr.c \
|
|
transport_layer/etcp_loadbalancer.c \
|
|
transport_layer/etcp_debug.c \
|
|
transport_layer/etcp_dump.c \
|
|
transport_layer/secure_channel.c \
|
|
transport_layer/reality.c \
|
|
transport_layer/reality_record.c \
|
|
transport_layer/reality_record.h \
|
|
transport_layer/reality_io.c \
|
|
transport_layer/reality_io.h \
|
|
transport_layer/reality_fingerprint.c \
|
|
transport_layer/reality_relay.c \
|
|
transport_layer/crc32.c \
|
|
transport_layer/stcp_link.c \
|
|
transport_layer/stcp.c \
|
|
transport_layer/stcp_server.c \
|
|
transport_layer/stcp_client.c \
|
|
transport_layer/socks_client.c \
|
|
transport_layer/pkt_normalizer.c \
|
|
transport_layer/packet_dump.c \
|
|
transport_layer/etcp_api.c \
|
|
transport_layer/etcp_connect.c \
|
|
transport_layer/node_conn_direct.c \
|
|
transport_layer/socket_monitor.c \
|
|
transport_layer/auto_socket.c \
|
|
control_server.c \
|
|
firewall.c \
|
|
eim_nat.c \
|
|
nat_transport.c \
|
|
media_delivery/media_delivery.c \
|
|
media_delivery/media_download.c \
|
|
media_delivery/media_index.c \
|
|
media_delivery/file_transfer.c \
|
|
media_delivery/file_transfer.h \
|
|
member_files/protocol.c \
|
|
member_files/protocol.h \
|
|
member_files/disk.c \
|
|
member_files/disk.h \
|
|
member_files/storage.c \
|
|
member_files/storage.h \
|
|
member_files/member_files.c \
|
|
member_files/member_files.h \
|
|
member_files/private.h \
|
|
member_files/transfer.c \
|
|
member_files/worker.c \
|
|
member_files/worker.h \
|
|
media_async/media_async.c \
|
|
media_async/attachment.c \
|
|
media_async/media_crypto.c \
|
|
media_async/media_crypto.h \
|
|
media_async/encrypted_file.c \
|
|
media_async/encrypted_file.h \
|
|
media_async/attachment.h \
|
|
media_async/voice_file.c \
|
|
media_async/voice_file.h \
|
|
media_async/attachment_send.c \
|
|
media_async/attachment_send.h \
|
|
video/video.c \
|
|
transport_layer/dummynet.c \
|
|
ntp_time.c \
|
|
ntp_node_time.c \
|
|
proxy/proxy_protocol.h \
|
|
proxy/tcp_proxy_client.c \
|
|
routing_layer/etcp_router.c \
|
|
routing_layer/route_tx_stats.c \
|
|
routing_layer/route_tx_stats.h \
|
|
routing_layer/route_crypto.c \
|
|
proxy/tcp_proxy_server.c \
|
|
proxy/udp_proxy.c \
|
|
proxy/socks_proxy.c \
|
|
proxy/http_proxy.c \
|
|
proxy/http_proxy.h \
|
|
proxy/icmp_proxy.c \
|
|
lwip_tcp/lwip_pbuf.c \
|
|
lwip_tcp/lwip_tcp.c \
|
|
lwip_tcp/lwip_tcp_in.c \
|
|
lwip_tcp/lwip_tcp_out.c \
|
|
local_transport/local_transport.c \
|
|
local_transport/local_transport.h \
|
|
local_transport/platform.c \
|
|
local_transport/platform.h \
|
|
local_transport/protocol.h \
|
|
chat/chat_local.c \
|
|
chat/chat_local.h \
|
|
chat/chat_event.c \
|
|
chat/chat_setting.c \
|
|
chat/chat_core.c \
|
|
chat/chat_attachment.c \
|
|
chat/chat_attachment.h \
|
|
chat/chat_member.c \
|
|
chat/chat_msg.c \
|
|
chat/chat_feedback.c \
|
|
chat/chat_feedback.h \
|
|
chat/chat_poll.c \
|
|
chat/chat_poll_codec.c \
|
|
chat/chat_poll.h \
|
|
chat/chat_whisper.c \
|
|
chat/chat_channel.c \
|
|
chat/chat_profile.c \
|
|
chat/group_avatar.c \
|
|
chat/chat_status.c \
|
|
chat/chat_sync.c \
|
|
chat/chat_admin.c \
|
|
chat/chat_join.c \
|
|
chat/member_sync.c \
|
|
chat/merkle_sync.c \
|
|
chat/merkle_tree.c \
|
|
chat/merkle_tree.h \
|
|
chat/invite_link.c \
|
|
chat/invite_build.c \
|
|
chat/chat_headless_control.c \
|
|
dm/dm_core.c \
|
|
dm/dm_history.c \
|
|
dm/dm_history.h \
|
|
dm/dm_crypto.c \
|
|
dm/dm_mailbox.c \
|
|
dm/dm_media.c \
|
|
dm/dm_media.h \
|
|
dm/dm_media_priv.h \
|
|
dm/dm_mailbox_media.c \
|
|
dm/dm_mailbox_media.h \
|
|
call/call.c \
|
|
call/call_video_rate.c \
|
|
call/call_video_rate.h \
|
|
call/call_video.c \
|
|
call/call_video_bitstream.c \
|
|
call/call_video_bitstream.h \
|
|
call/call_video_fixtures.h \
|
|
call/call_video.h \
|
|
call/call_video_transport.c \
|
|
call/call_video_transport.h \
|
|
call/call_video_port.c \
|
|
call/call_video_port.h \
|
|
call/call_video_playout.c \
|
|
call/call_video_playout.h \
|
|
call/call_priv.h \
|
|
call/call_headless.c \
|
|
radio/radio.c \
|
|
radio/radio_headless.c \
|
|
broadcast.c
|
|
|
|
# libutun: all core sources except main()
|
|
libutun_a_SOURCES = \
|
|
transport_layer/etcp_tx_stats.c \
|
|
transport_layer/etcp_tx_stats.h \
|
|
$(stream_core_files) \
|
|
utun_instance.c \
|
|
config_parser.c \
|
|
config_updater.c \
|
|
routing_layer/route_lib.c \
|
|
routing_layer/route6_lib.c \
|
|
routing_layer/topo_group.c \
|
|
routing_layer/route_ping.c \
|
|
routing_layer/nat_detection.c \
|
|
routing_layer/topo_node.c \
|
|
routing_layer/topo_node_sqlite.c \
|
|
routing_layer/route_connectivity.c \
|
|
routing_layer/sock_match.c \
|
|
routing_layer/conn_mgr_core.c \
|
|
routing_layer/conn_mgr_indirect.c \
|
|
routing_layer/conn_mgr_monitor.c \
|
|
routing_layer/topo_recovery.c \
|
|
routing_layer/topo_group_connect.c \
|
|
routing_layer/topo_group_invite.c \
|
|
chat/db_sync.c \
|
|
routing_layer/routing.c \
|
|
tun_if.c \
|
|
tun_route.c \
|
|
tun_linux.c \
|
|
tun_freebsd.c \
|
|
tun_windows.c \
|
|
transport_layer/etcp.c \
|
|
transport_layer/etcp_padding.c \
|
|
transport_layer/etcp_padding.h \
|
|
transport_layer/etcp_session.c \
|
|
transport_layer/etcp_session.h \
|
|
transport_layer/etcp_connections.c \
|
|
transport_layer/stun_nat.c \
|
|
transport_layer/stun_nat.h \
|
|
transport_layer/etcp_keepalive.c \
|
|
transport_layer/etcp_bbr.c \
|
|
transport_layer/etcp_loadbalancer.c \
|
|
transport_layer/etcp_debug.c \
|
|
transport_layer/etcp_dump.c \
|
|
transport_layer/secure_channel.c \
|
|
transport_layer/reality.c \
|
|
transport_layer/reality_record.c \
|
|
transport_layer/reality_record.h \
|
|
transport_layer/reality_io.c \
|
|
transport_layer/reality_io.h \
|
|
transport_layer/reality_fingerprint.c \
|
|
transport_layer/reality_relay.c \
|
|
transport_layer/crc32.c \
|
|
transport_layer/stcp_link.c \
|
|
transport_layer/stcp.c \
|
|
transport_layer/stcp_server.c \
|
|
transport_layer/stcp_client.c \
|
|
transport_layer/socks_client.c \
|
|
transport_layer/pkt_normalizer.c \
|
|
transport_layer/packet_dump.c \
|
|
transport_layer/etcp_api.c \
|
|
transport_layer/etcp_connect.c \
|
|
transport_layer/node_conn_direct.c \
|
|
transport_layer/socket_monitor.c \
|
|
transport_layer/auto_socket.c \
|
|
transport_layer/call_ring.c \
|
|
control_server.c \
|
|
firewall.c \
|
|
eim_nat.c \
|
|
nat_transport.c \
|
|
media_delivery/media_delivery.c \
|
|
media_delivery/media_download.c \
|
|
media_delivery/media_index.c \
|
|
media_delivery/file_transfer.c \
|
|
media_delivery/file_transfer.h \
|
|
member_files/protocol.c \
|
|
member_files/protocol.h \
|
|
member_files/disk.c \
|
|
member_files/disk.h \
|
|
member_files/storage.c \
|
|
member_files/storage.h \
|
|
member_files/member_files.c \
|
|
member_files/member_files.h \
|
|
member_files/private.h \
|
|
member_files/transfer.c \
|
|
member_files/worker.c \
|
|
member_files/worker.h \
|
|
media_async/media_async.c \
|
|
media_async/attachment.c \
|
|
media_async/media_crypto.c \
|
|
media_async/media_crypto.h \
|
|
media_async/encrypted_file.c \
|
|
media_async/encrypted_file.h \
|
|
media_async/attachment.h \
|
|
media_async/voice_file.c \
|
|
media_async/voice_file.h \
|
|
media_async/attachment_send.c \
|
|
media_async/attachment_send.h \
|
|
video/video.c \
|
|
transport_layer/dummynet.c \
|
|
ntp_time.c \
|
|
ntp_node_time.c \
|
|
proxy/proxy_protocol.h \
|
|
proxy/tcp_proxy_client.c \
|
|
routing_layer/etcp_router.c \
|
|
routing_layer/route_tx_stats.c \
|
|
routing_layer/route_tx_stats.h \
|
|
routing_layer/route_crypto.c \
|
|
proxy/tcp_proxy_server.c \
|
|
proxy/udp_proxy.c \
|
|
proxy/socks_proxy.c \
|
|
proxy/http_proxy.c \
|
|
proxy/http_proxy.h \
|
|
proxy/icmp_proxy.c \
|
|
lwip_tcp/lwip_pbuf.c \
|
|
lwip_tcp/lwip_tcp.c \
|
|
lwip_tcp/lwip_tcp_in.c \
|
|
lwip_tcp/lwip_tcp_out.c \
|
|
local_transport/local_transport.c \
|
|
local_transport/local_transport.h \
|
|
local_transport/platform.c \
|
|
local_transport/platform.h \
|
|
local_transport/protocol.h \
|
|
chat/chat_local.c \
|
|
chat/chat_local.h \
|
|
chat/chat_event.c \
|
|
chat/chat_setting.c \
|
|
chat/chat_core.c \
|
|
chat/chat_attachment.c \
|
|
chat/chat_attachment.h \
|
|
chat/chat_member.c \
|
|
chat/chat_msg.c \
|
|
chat/chat_feedback.c \
|
|
chat/chat_feedback.h \
|
|
chat/chat_poll.c \
|
|
chat/chat_poll_codec.c \
|
|
chat/chat_poll.h \
|
|
chat/chat_channel.c \
|
|
chat/chat_profile.c \
|
|
chat/group_avatar.c \
|
|
chat/chat_status.c \
|
|
chat/chat_sync.c \
|
|
chat/chat_admin.c \
|
|
chat/chat_join.c \
|
|
chat/member_sync.c \
|
|
chat/merkle_sync.c \
|
|
chat/invite_link.c \
|
|
chat/merkle_tree.c \
|
|
chat/merkle_tree.h \
|
|
chat/invite_build.c \
|
|
chat/chat_headless_control.c \
|
|
dm/dm_core.c \
|
|
dm/dm_history.c \
|
|
dm/dm_history.h \
|
|
dm/dm_crypto.c \
|
|
dm/dm_mailbox.c \
|
|
dm/dm_media.c \
|
|
dm/dm_media.h \
|
|
dm/dm_media_priv.h \
|
|
dm/dm_mailbox_media.c \
|
|
dm/dm_mailbox_media.h \
|
|
call/call.c \
|
|
call/call_video_rate.c \
|
|
call/call_video_rate.h \
|
|
call/call_video.c \
|
|
call/call_video_bitstream.c \
|
|
call/call_video.h \
|
|
call/call_video_transport.c \
|
|
call/call_video_transport.h \
|
|
call/call_video_port.c \
|
|
call/call_video_port.h \
|
|
call/call_video_playout.c \
|
|
call/call_video_playout.h \
|
|
call/call_priv.h \
|
|
call/call_headless.c \
|
|
radio/radio.c \
|
|
radio/radio_headless.c \
|
|
broadcast.c
|
|
libutun_a_CFLAGS = $(utun_CFLAGS)
|
|
|
|
# Platform-specific TUN libs (Windows only)
|
|
utun_TUN_LIBS = @TUN_LIBS@
|
|
|
|
utun_SOURCES = utun.c chat/chat_whisper.c
|
|
|
|
# Include paths
|
|
utun_CFLAGS = \
|
|
-I$(top_srcdir)/lib \
|
|
-I$(top_srcdir)/src \
|
|
-I$(top_srcdir)/src/transport_layer \
|
|
-I$(top_srcdir)/src/routing_layer \
|
|
-I$(top_srcdir)/src/media_delivery \
|
|
-I$(top_srcdir)/src/media_async \
|
|
-I$(top_srcdir)/src/video \
|
|
-I$(top_srcdir)/src/call \
|
|
-I$(top_srcdir)/src/uip \
|
|
-g \
|
|
-DUSE_SQLITE \
|
|
-DSQLITE_THREADSAFE=1 \
|
|
$(DEBUG_FLAGS)
|
|
|
|
# Libraries
|
|
utun_LDADD = \
|
|
libutun.a \
|
|
$(top_builddir)/lib/libuasync.a \
|
|
$(top_builddir)/lib/libopus/libopus_internal.a \
|
|
-lpthread \
|
|
-lm \
|
|
-lcrypto \
|
|
$(utun_TUN_LIBS)
|
|
|
|
if HAVE_WHISPER
|
|
utun_CFLAGS += -DHAVE_WHISPER
|
|
utun_LDADD += @WHISPER_LIBS@
|
|
endif
|
|
|
|
if HAVE_FFMPEG
|
|
utun_CFLAGS += -DHAVE_FFMPEG @FFMPEG_CFLAGS@
|
|
utun_LDADD += @FFMPEG_LIBS@
|
|
endif
|
|
|
|
if HAVE_SILERO_VAD
|
|
utun_CFLAGS += -DHAVE_SILERO_VAD
|
|
utun_LDADD += @SILERO_VAD_LIBS@
|
|
endif
|
|
|
|
# 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
|