add_executable(
	test_correlator
	../src/layer1/correlator.c
	../src/layer1/correlator.h
	../src/layer1/freq_est.c
	../src/layer1/freq_est.h
	../src/logger.c
	../src/logger.h
	../src/utils.c
	layer1/test_correlator.c
)

target_link_libraries(
	test_correlator
	m
	liquid
)

#------------------------------------

add_executable(
	test_layer1_loopback
	../src/layer1/correlator.c
	../src/layer1/correlator.h
	../src/layer1/freq_est.c
	../src/layer1/freq_est.h
	../src/layer1/packet_mod.c
	../src/layer1/packet_mod.h
	../src/layer1/preamble.c
	../src/layer1/preamble.h
	../src/layer1/transmission.c
	../src/layer1/transmission.h
	../src/layer1/tx.c
	../src/layer1/tx.h
	../src/layer1/rx.c
	../src/layer1/rx.h
	../src/layer1/whitening.c
	../src/layer1/whitening.h
	../src/layer1/modcod.c
	../src/layer1/modcod.h
	../src/layer1/interleaver.c
	../src/layer1/interleaver.h
	../src/utils.c
	../src/utils.h
	../src/var_array.c
	../src/var_array.h
	../src/options.c
	../src/options.h
	../src/logger.c
	../src/logger.h
	layer1/test_loopback.c
)

target_link_libraries(
	test_layer1_loopback
	m
	liquid
	fftw3
	fftw3f
	fec
)

#------------------------------------

add_executable(
	test_freq_est
	../src/layer1/freq_est.c
	../src/layer1/freq_est.h
	../src/utils.c
	layer1/test_freq_est.c
)

target_link_libraries(
	test_freq_est
	fftw3f
	m
	liquid
)

#------------------------------------

add_executable(
	test_rx_file
	../src/layer1/correlator.c
	../src/layer1/correlator.h
	../src/layer1/freq_est.c
	../src/layer1/freq_est.h
	../src/layer1/rx.c
	../src/layer1/rx.h
	../src/layer1/whitening.c
	../src/layer1/whitening.h
	../src/layer1/modcod.c
	../src/layer1/modcod.h
	../src/layer1/interleaver.c
	../src/layer1/interleaver.h
	../src/layer1/preamble.c
	../src/layer1/preamble.h
	../src/utils.c
	../src/utils.h
	../src/logger.c
	../src/logger.h
	../src/options.c
	../src/options.h
	../src/var_array.c
	../src/var_array.h
	../src/config.h
	../src/jsonlogger.c
	../src/jsonlogger.h
	../src/debug_structs.h
	layer1/test_rx_file.c
)

target_link_libraries(
	test_rx_file
	fec
	fftw3f
	m
	liquid
)

#------------------------------------

add_executable(
	test_rx_file_l2dbg
	../src/layer1/correlator.c
	../src/layer1/correlator.h
	../src/layer1/freq_est.c
	../src/layer1/freq_est.h
	../src/layer1/rx.c
	../src/layer1/rx.h
	../src/layer1/whitening.c
	../src/layer1/whitening.h
	../src/layer1/modcod.c
	../src/layer1/modcod.h
	../src/layer1/interleaver.c
	../src/layer1/interleaver.h
	../src/layer1/preamble.c
	../src/layer1/preamble.h
	../src/utils.c
	../src/utils.h
	../src/logger.c
	../src/logger.h
	../src/options.c
	../src/options.h
	../src/var_array.c
	../src/var_array.h
	../src/config.h
	../src/jsonlogger.c
	../src/jsonlogger.h
	../src/debug_structs.h
	../src/layer2/packet_structs.c
	../src/layer2/packet_structs.h
	../src/layer2/ham64.c
	../src/layer2/ham64.h
	test_rx_file_l2dbg.c
)

target_link_libraries(
	test_rx_file_l2dbg
	fec
	fftw3f
	m
	liquid
)

#------------------------------------

add_executable(
	test_jsonlogger
	../src/jsonlogger.c
	../src/jsonlogger.h
	../src/logger.c
	../src/logger.h
	../src/debug_structs.h
	test_jsonlogger.c
)

target_link_libraries(
	test_freq_est
	fftw3f
	m
	liquid
)

#------------------------------------

add_executable(
	test_ham64
	../src/layer2/ham64.c
	../src/layer2/ham64.h
	test_ham64.c
)

target_link_libraries(
	test_ham64
)

#------------------------------------

add_executable(
	test_packet_queue
	../src/layer2/packet_queue.c
	../src/layer2/packet_queue.h
	test_packet_queue.c
)

target_link_libraries(
	test_packet_queue
)

#------------------------------------

add_executable(
	test_interleaver
	../src/layer1/interleaver.c
	../src/layer1/interleaver.h
	../src/config.h
	test_interleaver.c
)

target_link_libraries(
	test_interleaver
	m
)

#------------------------------------

add_subdirectory(layer2_over_udp)