Updates Windows liquid-dsp binaries to v1.5.0:

- Win32/64 bins liquid-dsp ref: c3e0de7e89cdcc0ec5da9ccaeb5738496263d4c0 (tag: v1.5.0)
    - Win32/64 bins using GCC 12.2 (MSYS2)
	- Arch : SSE4.1 for maximum compatibility
This commit is contained in:
vsonnier 2023-01-10 20:03:03 +01:00
parent 03ba4ff2ee
commit 8c23e370da
14 changed files with 7568 additions and 6647 deletions

View File

@ -6,8 +6,57 @@
#define __LIQUID_CONFIG_H__ #define __LIQUID_CONFIG_H__
/* Support AVX (Advanced Vector Extensions) instructions */ /* Define to 1 to support Advanced Bit Manipulation */
#define HAVE_AVX 1 #define HAVE_ABM 1
/* Define to 1 to support Multi-Precision Add-Carry Instruction Extensions */
#define HAVE_ADX 1
/* Define to 1 to support Advanced Encryption Standard New Instruction Set
(AES-NI) */
/* #define HAVE_AES 1 */
/* Support Altivec instructions */
/* #undef HAVE_ALTIVEC */
/* Define to 1 to support Advanced Vector Extensions */
/* #define HAVE_AVX 1 */
/* Define to 1 to support Advanced Vector Extensions 2 */
/* #define HAVE_AVX2 1 */
/* Define to 1 to support AVX-512 Byte and Word Instructions */
/* #undef HAVE_AVX512_BW */
/* Define to 1 to support AVX-512 Conflict Detection Instructions */
/* #undef HAVE_AVX512_CD */
/* Define to 1 to support AVX-512 Doubleword and Quadword Instructions */
/* #undef HAVE_AVX512_DQ */
/* Define to 1 to support AVX-512 Exponential & Reciprocal Instructions */
/* #undef HAVE_AVX512_ER */
/* Define to 1 to support AVX-512 Foundation Extensions */
/* #undef HAVE_AVX512_F */
/* Define to 1 to support AVX-512 Integer Fused Multiply Add Instructions */
/* #undef HAVE_AVX512_IFMA */
/* Define to 1 to support AVX-512 Conflict Prefetch Instructions */
/* #undef HAVE_AVX512_PF */
/* Define to 1 to support AVX-512 Vector Byte Manipulation Instructions */
/* #undef HAVE_AVX512_VBMI */
/* Define to 1 to support AVX-512 Vector Length Extensions */
/* #undef HAVE_AVX512_VL */
/* Define to 1 to support Bit Manipulation Instruction Set 1 */
#define HAVE_BMI1 1
/* Define to 1 to support Bit Manipulation Instruction Set 2 */
#define HAVE_BMI2 1
/* Define to 1 if you have the `cargf' function. */ /* Define to 1 if you have the `cargf' function. */
#define HAVE_CARGF 1 #define HAVE_CARGF 1
@ -27,9 +76,6 @@
/* Define to 1 if you have the `crealf' function. */ /* Define to 1 if you have the `crealf' function. */
#define HAVE_CREALF 1 #define HAVE_CREALF 1
/* Define to 1 if you have the <emmintrin.h> header file. */
#define HAVE_EMMINTRIN_H 1
/* Define to 1 if you have the `expf' function. */ /* Define to 1 if you have the `expf' function. */
#define HAVE_EXPF 1 #define HAVE_EXPF 1
@ -42,15 +88,18 @@
/* Define to 1 if you have the <float.h> header file. */ /* Define to 1 if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1 #define HAVE_FLOAT_H 1
/* Define to 1 to support Fused Multiply-Add Extensions 3 */
#define HAVE_FMA3 1
/* Define to 1 to support Fused Multiply-Add Extensions 4 */
/* #undef HAVE_FMA4 */
/* Define to 1 if you have the `free' function. */ /* Define to 1 if you have the `free' function. */
#define HAVE_FREE 1 #define HAVE_FREE 1
/* Define to 1 if you have the <getopt.h> header file. */ /* Define to 1 if you have the <getopt.h> header file. */
#define HAVE_GETOPT_H 1 #define HAVE_GETOPT_H 1
/* Define to 1 if you have the <immintrin.h> header file. */
#define HAVE_IMMINTRIN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1 #define HAVE_INTTYPES_H 1
@ -75,49 +124,52 @@
/* Define to 1 if you have the `memmove' function. */ /* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE 1 #define HAVE_MEMMOVE 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `memset' function. */ /* Define to 1 if you have the `memset' function. */
#define HAVE_MEMSET 1 #define HAVE_MEMSET 1
/* Define to 1 if you have the <mmintrin.h> header file. */ /* Define to 1 to support Multimedia Extensions */
#define HAVE_MMINTRIN_H 1
/* Support MMX instructions */
#define HAVE_MMX 1 #define HAVE_MMX 1
/* Define to 1 if you have the <pmmintrin.h> header file. */ /* Define to 1 to support Memory Protection Extensions */
#define HAVE_PMMINTRIN_H 1 /* #undef HAVE_MPX */
/* Define to 1 to support Prefetch Vector Data Into Caches WT1 */
/* #undef HAVE_PREFETCHWT1 */
/* Define to 1 to support Digital Random Number Generator */
#define HAVE_RDRND 1
/* Define to 1 if you have the `realloc' function. */ /* Define to 1 if you have the `realloc' function. */
#define HAVE_REALLOC 1 #define HAVE_REALLOC 1
/* Define to 1 to support Secure Hash Algorithm Extension */
/* #undef HAVE_SHA */
/* Define to 1 if you have the `sinf' function. */ /* Define to 1 if you have the `sinf' function. */
#define HAVE_SINF 1 #define HAVE_SINF 1
/* Define to 1 if you have the <smmintrin.h> header file. */
#define HAVE_SMMINTRIN_H 1
/* Define to 1 if you have the `sqrtf' function. */ /* Define to 1 if you have the `sqrtf' function. */
#define HAVE_SQRTF 1 #define HAVE_SQRTF 1
/* Support SSE (Streaming SIMD Extensions) instructions */ /* Define to 1 to support Streaming SIMD Extensions */
#define HAVE_SSE 1 #define HAVE_SSE 1
/* Support SSE2 (Streaming SIMD Extensions 2) instructions */ /* Define to 1 to support Streaming SIMD Extensions */
#define HAVE_SSE2 1 #define HAVE_SSE2 1
/* Support SSE3 (Streaming SIMD Extensions 3) instructions */ /* Define to 1 to support Streaming SIMD Extensions 3 */
#define HAVE_SSE3 1 #define HAVE_SSE3 1
/* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */ /* Define to 1 to support Streaming SIMD Extensions 4.1 */
#define HAVE_SSE41 1 #define HAVE_SSE4_1 1
/* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */ /* Define to 1 to support Streaming SIMD Extensions 4.2 */
#define HAVE_SSE42 1 #define HAVE_SSE4_2 1
/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */ /* Define to 1 to support AMD Streaming SIMD Extensions 4a */
/* #undef HAVE_SSE4a */
/* Define to 1 to support Supplemental Streaming SIMD Extensions 3 */
#define HAVE_SSSE3 1 #define HAVE_SSSE3 1
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
@ -144,17 +196,17 @@
/* Define to 1 if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <tmmintrin.h> header file. */
#define HAVE_TMMINTRIN_H 1
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1 #define HAVE_UNISTD_H 1
/* Define to 1 if you have the <xmmintrin.h> header file. */ /* Support VSX instructions */
#define HAVE_XMMINTRIN_H 1 /* #undef HAVE_VSX */
/* Define to 1 to support eXtended Operations Extensions */
/* #undef HAVE_XOP */
/* Force internal FFT even if libfftw is available */ /* Force internal FFT even if libfftw is available */
#define LIQUID_FFTOVERRIDE 1 #undef LIQUID_FFTOVERRIDE
/* Force overriding of SIMD (use portable C code) */ /* Force overriding of SIMD (use portable C code) */
/* #undef LIQUID_SIMDOVERRIDE */ /* #undef LIQUID_SIMDOVERRIDE */
@ -172,7 +224,7 @@
#define PACKAGE_NAME "liquid-dsp" #define PACKAGE_NAME "liquid-dsp"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "liquid-dsp 1.4.0" #define PACKAGE_STRING "liquid-dsp 1.5"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "liquid-dsp" #define PACKAGE_TARNAME "liquid-dsp"
@ -181,7 +233,7 @@
#define PACKAGE_URL "" #define PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "1.4.0" #define PACKAGE_VERSION "1.5"
/* The size of `int', as computed by sizeof. */ /* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4 #define SIZEOF_INT 4
@ -195,7 +247,9 @@
/* The size of `short int', as computed by sizeof. */ /* The size of `short int', as computed by sizeof. */
#define SIZEOF_SHORT_INT 2 #define SIZEOF_SHORT_INT 2
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if all of the C90 standard headers exist (not just the ones
required in a freestanding environment). This macro is provided for
backward compatibility; new code need not use it. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -43,8 +43,10 @@
# autoconf initialization macros # autoconf initialization macros
NAME := liquid-dsp NAME := liquid-dsp
VERSION := 1.4.0 VERSION := 1.5
BUGREPORT := joseph@liquidsdr.org BUGREPORT := joseph@liquidsdr.org
AR_LIB := a
SH_LIB := dll
# paths # paths
prefix := /usr/local prefix := /usr/local
@ -68,11 +70,11 @@ RANLIB := ranlib
# flags # flags
INCLUDE_CFLAGS = $(addprefix -I,$(include_dirs)) INCLUDE_CFLAGS = $(addprefix -I,$(include_dirs))
COVERAGE_FLAGS = # dynamic library linker needs separate flag COVERAGE_FLAGS = # dynamic library linker needs separate flag
#MINGW: optimizations goes here, use SSSE42 for 32bit #MINGW: optimizations goes here, use SSSE42 for 32bit
CONFIG_CFLAGS = -m32 -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS} CONFIG_CFLAGS = -m32 -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS}
CPPFLAGS = $(INCLUDE_CFLAGS) CPPFLAGS = $(INCLUDE_CFLAGS)
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS = -lmsvcrt LIBS = -lmsvcrt
@ -110,9 +112,12 @@ agc_objects = \
src/agc/src/agc_crcf.o \ src/agc/src/agc_crcf.o \
src/agc/src/agc_rrrf.o \ src/agc/src/agc_rrrf.o \
agc_prototypes := \
src/agc/src/agc.proto.c \
# explicit targets and dependencies # explicit targets and dependencies
src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers) src/agc/src/agc_crcf.o : %.o : %.c $(include_headers) $(agc_prototypes)
src/agc/src/agc_rrrf.o : %.o : %.c src/agc/src/agc.c $(include_headers) src/agc/src/agc_rrrf.o : %.o : %.c $(include_headers) $(agc_prototypes)
# autotests # autotests
agc_autotests := \ agc_autotests := \
@ -148,22 +153,20 @@ buffer_objects := \
src/buffer/src/bufferf.o \ src/buffer/src/bufferf.o \
src/buffer/src/buffercf.o \ src/buffer/src/buffercf.o \
buffer_includes := \ # src/buffer/src/buffer.proto.c
src/buffer/src/cbuffer.c \ buffer_prototypes := \
src/buffer/src/wdelay.c \ src/buffer/src/cbuffer.proto.c \
src/buffer/src/window.c \ src/buffer/src/wdelay.proto.c \
src/buffer/src/window.proto.c \
src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_includes) src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_prototypes)
src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_prototypes)
src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_includes)
buffer_autotests := \ buffer_autotests := \
src/buffer/tests/cbuffer_autotest.c \ src/buffer/tests/cbuffer_autotest.c \
src/buffer/tests/wdelay_autotest.c \ src/buffer/tests/wdelay_autotest.c \
src/buffer/tests/window_autotest.c \ src/buffer/tests/window_autotest.c \
# src/buffer/tests/sbuffer_autotest.c
buffer_benchmarks := \ buffer_benchmarks := \
src/buffer/bench/cbuffercf_benchmark.c \ src/buffer/bench/cbuffercf_benchmark.c \
@ -177,13 +180,15 @@ buffer_benchmarks := \
channel_objects := \ channel_objects := \
src/channel/src/channel_cccf.o \ src/channel/src/channel_cccf.o \
channel_includes := \ channel_prototypes := \
src/channel/src/channel.c \ src/channel/src/channel.proto.c \
src/channel/src/tvmpch.c \ src/channel/src/tvmpch.proto.c \
src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_includes) src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_prototypes)
channel_autotests := \ channel_autotests := \
src/channel/tests/channel_copy_autotest.c \
src/channel/tests/tvmpch_copy_autotest.c \
#src/channel/tests/channel_cccf_autotest.c #src/channel/tests/channel_cccf_autotest.c
@ -195,11 +200,11 @@ channel_benchmarks := \
# MODULE : dotprod # MODULE : dotprod
# #
dotprod_objects := \ dotprod_objects := \
src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.mmx.o src/dotprod/src/sumsq.mmx.o \ src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.sse4.o src/dotprod/src/sumsq.mmx.o \
src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/sumsq.o : %.o : %.c $(include_headers) src/dotprod/src/sumsq.o : %.o : %.c $(include_headers)
# specific machine architectures # specific machine architectures
@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers)
# SSE4.1/2 # SSE4.1/2
src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers)
# AVX
src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers)
# ARM Neon # ARM Neon
src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers)
src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers)
@ -243,8 +251,11 @@ equalization_objects := \
src/equalization/src/equalizer_cccf.o \ src/equalization/src/equalizer_cccf.o \
src/equalization/src/equalizer_rrrf.o \ src/equalization/src/equalizer_rrrf.o \
equalization_prototypes := \
src/equalization/src/eqlms.proto.c \
src/equalization/src/eqrls.proto.c \
$(equalization_objects) : %.o : %.c $(include_headers) src/equalization/src/eqlms.c src/equalization/src/eqrls.c $(equalization_objects) : %.o : %.c $(include_headers) $(equalization_prototypes)
# autotests # autotests
@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers)
fec_autotests := \ fec_autotests := \
src/fec/tests/crc_autotest.c \ src/fec/tests/crc_autotest.c \
src/fec/tests/fec_autotest.c \ src/fec/tests/fec_autotest.c \
src/fec/tests/fec_copy_autotest.c \
src/fec/tests/fec_soft_autotest.c \ src/fec/tests/fec_soft_autotest.c \
src/fec/tests/fec_golay2412_autotest.c \ src/fec/tests/fec_golay2412_autotest.c \
src/fec/tests/fec_hamming74_autotest.c \ src/fec/tests/fec_hamming74_autotest.c \
@ -308,6 +320,7 @@ fec_autotests := \
src/fec/tests/fec_secded3932_autotest.c \ src/fec/tests/fec_secded3932_autotest.c \
src/fec/tests/fec_secded7264_autotest.c \ src/fec/tests/fec_secded7264_autotest.c \
src/fec/tests/interleaver_autotest.c \ src/fec/tests/interleaver_autotest.c \
src/fec/tests/packetizer_copy_autotest.c \
src/fec/tests/packetizer_autotest.c \ src/fec/tests/packetizer_autotest.c \
@ -332,26 +345,27 @@ fft_objects := \
src/fft/src/fft_utilities.o \ src/fft/src/fft_utilities.o \
# explicit targets and dependencies # explicit targets and dependencies
fft_includes := \ fft_prototypes := \
src/fft/src/fft_common.c \ src/fft/src/fft_common.proto.c \
src/fft/src/fft_dft.c \ src/fft/src/fft_dft.proto.c \
src/fft/src/fft_radix2.c \ src/fft/src/fft_radix2.proto.c \
src/fft/src/fft_mixed_radix.c \ src/fft/src/fft_mixed_radix.proto.c \
src/fft/src/fft_rader.c \ src/fft/src/fft_rader.proto.c \
src/fft/src/fft_rader2.c \ src/fft/src/fft_rader2.proto.c \
src/fft/src/fft_r2r_1d.c \ src/fft/src/fft_r2r_1d.proto.c \
src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_includes) src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_prototypes)
src/fft/src/asgram.o : %.o : %.c $(include_headers) src/fft/src/asgram.o : %.o : %.c $(include_headers)
src/fft/src/dct.o : %.o : %.c $(include_headers) src/fft/src/dct.o : %.o : %.c $(include_headers)
src/fft/src/fftf.o : %.o : %.c $(include_headers) src/fft/src/fftf.o : %.o : %.c $(include_headers)
src/fft/src/fft_utilities.o : %.o : %.c $(include_headers) src/fft/src/fft_utilities.o : %.o : %.c $(include_headers)
src/fft/src/mdct.o : %.o : %.c $(include_headers) src/fft/src/mdct.o : %.o : %.c $(include_headers)
src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
# fft autotest scripts # fft autotest scripts
fft_autotests := \ fft_autotests := \
src/fft/tests/asgram_autotest.c \
src/fft/tests/fft_small_autotest.c \ src/fft/tests/fft_small_autotest.c \
src/fft/tests/fft_radix2_autotest.c \ src/fft/tests/fft_radix2_autotest.c \
src/fft/tests/fft_composite_autotest.c \ src/fft/tests/fft_composite_autotest.c \
@ -407,6 +421,7 @@ fft_benchmarks := \
src/fft/bench/fft_prime_benchmark.c \ src/fft/bench/fft_prime_benchmark.c \
src/fft/bench/fft_radix2_benchmark.c \ src/fft/bench/fft_radix2_benchmark.c \
src/fft/bench/fft_r2r_benchmark.c \ src/fft/bench/fft_r2r_benchmark.c \
src/fft/bench/spgramcf_benchmark.c \
# additional benchmark objects # additional benchmark objects
benchmark_extra_obj := \ benchmark_extra_obj := \
@ -427,6 +442,7 @@ filter_objects := \
src/filter/src/filter_cccf.o \ src/filter/src/filter_cccf.o \
src/filter/src/firdes.o \ src/filter/src/firdes.o \
src/filter/src/firdespm.o \ src/filter/src/firdespm.o \
src/filter/src/firdespm_halfband.o \
src/filter/src/fnyquist.o \ src/filter/src/fnyquist.o \
src/filter/src/gmsk.o \ src/filter/src/gmsk.o \
src/filter/src/group_delay.o \ src/filter/src/group_delay.o \
@ -440,29 +456,29 @@ filter_objects := \
# list explicit targets and dependencies here # list explicit targets and dependencies here
filter_includes := \ filter_prototypes := \
src/filter/src/autocorr.c \ src/filter/src/autocorr.proto.c \
src/filter/src/dds.c \ src/filter/src/dds.proto.c \
src/filter/src/fdelay.c \ src/filter/src/fdelay.proto.c \
src/filter/src/fftfilt.c \ src/filter/src/fftfilt.proto.c \
src/filter/src/firdecim.c \ src/filter/src/firdecim.proto.c \
src/filter/src/firfarrow.c \ src/filter/src/firfarrow.proto.c \
src/filter/src/firfilt.c \ src/filter/src/firfilt.proto.c \
src/filter/src/firhilb.c \ src/filter/src/firhilb.proto.c \
src/filter/src/firinterp.c \ src/filter/src/firinterp.proto.c \
src/filter/src/firpfb.c \ src/filter/src/firpfb.proto.c \
src/filter/src/iirdecim.c \ src/filter/src/iirdecim.proto.c \
src/filter/src/iirfilt.c \ src/filter/src/iirfilt.proto.c \
src/filter/src/iirfiltsos.c \ src/filter/src/iirfiltsos.proto.c \
src/filter/src/iirhilb.c \ src/filter/src/iirhilb.proto.c \
src/filter/src/iirinterp.c \ src/filter/src/iirinterp.proto.c \
src/filter/src/msresamp.c \ src/filter/src/msresamp.proto.c \
src/filter/src/msresamp2.c \ src/filter/src/msresamp2.proto.c \
src/filter/src/ordfilt.c \ src/filter/src/ordfilt.proto.c \
src/filter/src/rresamp.c \ src/filter/src/rresamp.proto.c \
src/filter/src/resamp.fixed.c \ src/filter/src/resamp.fixed.proto.c \
src/filter/src/resamp2.c \ src/filter/src/resamp2.proto.c \
src/filter/src/symsync.c \ src/filter/src/symsync.proto.c \
src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers)
src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers)
@ -470,9 +486,9 @@ src/filter/src/butter.o : %.o : %.c $(include_headers)
src/filter/src/cheby1.o : %.o : %.c $(include_headers) src/filter/src/cheby1.o : %.o : %.c $(include_headers)
src/filter/src/cheby2.o : %.o : %.c $(include_headers) src/filter/src/cheby2.o : %.o : %.c $(include_headers)
src/filter/src/ellip.o : %.o : %.c $(include_headers) src/filter/src/ellip.o : %.o : %.c $(include_headers)
src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/firdes.o : %.o : %.c $(include_headers) src/filter/src/firdes.o : %.o : %.c $(include_headers)
src/filter/src/firdespm.o : %.o : %.c $(include_headers) src/filter/src/firdespm.o : %.o : %.c $(include_headers)
src/filter/src/group_delay.o : %.o : %.c $(include_headers) src/filter/src/group_delay.o : %.o : %.c $(include_headers)
@ -486,30 +502,41 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \ filter_autotests := \
src/filter/tests/dds_cccf_autotest.c \
src/filter/tests/fdelay_rrrf_autotest.c \ src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \
src/filter/tests/firdes_autotest.c \ src/filter/tests/firdes_autotest.c \
src/filter/tests/firdespm_autotest.c \ src/filter/tests/firdespm_autotest.c \
src/filter/tests/firfilt_autotest.c \
src/filter/tests/firfilt_cccf_notch_autotest.c \ src/filter/tests/firfilt_cccf_notch_autotest.c \
src/filter/tests/firfilt_coefficients_autotest.c \ src/filter/tests/firfilt_coefficients_autotest.c \
src/filter/tests/firfilt_rnyquist_autotest.c \ src/filter/tests/firfilt_rnyquist_autotest.c \
src/filter/tests/firfilt_xxxf_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \
src/filter/tests/firfilt_copy_autotest.c \
src/filter/tests/firhilb_autotest.c \ src/filter/tests/firhilb_autotest.c \
src/filter/tests/firinterp_autotest.c \ src/filter/tests/firinterp_autotest.c \
src/filter/tests/firpfb_autotest.c \ src/filter/tests/firpfb_autotest.c \
src/filter/tests/groupdelay_autotest.c \ src/filter/tests/groupdelay_autotest.c \
src/filter/tests/iirdecim_autotest.c \
src/filter/tests/iirdes_autotest.c \ src/filter/tests/iirdes_autotest.c \
src/filter/tests/iirdes_support_autotest.c \ src/filter/tests/iirdes_support_autotest.c \
src/filter/tests/iirfilt_xxxf_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \
src/filter/tests/iirfiltsos_rrrf_autotest.c \ src/filter/tests/iirfilt_copy_autotest.c \
src/filter/tests/iirfiltsos_autotest.c \
src/filter/tests/iirhilb_autotest.c \
src/filter/tests/iirinterp_autotest.c \
src/filter/tests/lpc_autotest.c \ src/filter/tests/lpc_autotest.c \
src/filter/tests/msresamp_crcf_autotest.c \ src/filter/tests/msresamp_crcf_autotest.c \
src/filter/tests/msresamp2_crcf_autotest.c \
src/filter/tests/ordfilt_autotest.c \
src/filter/tests/rresamp_crcf_autotest.c \ src/filter/tests/rresamp_crcf_autotest.c \
src/filter/tests/rresamp_crcf_partition_autotest.c \ src/filter/tests/rresamp_crcf_partition_autotest.c \
src/filter/tests/resamp_crcf_autotest.c \ src/filter/tests/resamp_crcf_autotest.c \
src/filter/tests/resamp2_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \
src/filter/tests/symsync_copy_autotest.c \
src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \
src/filter/tests/symsync_rrrf_autotest.c \ src/filter/tests/symsync_rrrf_autotest.c \
@ -638,10 +665,10 @@ framing_objects := \
src/framing/src/bpacketgen.o : %.o : %.c $(include_headers) src/framing/src/bpacketgen.o : %.o : %.c $(include_headers)
src/framing/src/bpacketsync.o : %.o : %.c $(include_headers) src/framing/src/bpacketsync.o : %.o : %.c $(include_headers)
src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.c src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.proto.c
src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.o : %.o : %.c $(include_headers) src/framing/src/dsssframegen.o : %.o : %.c $(include_headers)
src/framing/src/dsssframesync.o : %.o : %.c $(include_headers) src/framing/src/dsssframesync.o : %.o : %.c $(include_headers)
@ -651,28 +678,34 @@ src/framing/src/framegen64.o : %.o : %.c $(include_headers)
src/framing/src/framesync64.o : %.o : %.c $(include_headers) src/framing/src/framesync64.o : %.o : %.c $(include_headers)
src/framing/src/flexframegen.o : %.o : %.c $(include_headers) src/framing/src/flexframegen.o : %.o : %.c $(include_headers)
src/framing/src/flexframesync.o : %.o : %.c $(include_headers) src/framing/src/flexframesync.o : %.o : %.c $(include_headers)
src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.c src/framing/src/qsource.c src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.proto.c src/framing/src/qsource.proto.c
src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers)
src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers)
src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.c src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.proto.c
src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers) src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers)
src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.proto.c
src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.proto.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c
framing_autotests := \ framing_autotests := \
src/framing/tests/bpacketsync_autotest.c \ src/framing/tests/bpacketsync_autotest.c \
src/framing/tests/bsync_autotest.c \ src/framing/tests/bsync_autotest.c \
src/framing/tests/detector_autotest.c \ src/framing/tests/detector_autotest.c \
src/framing/tests/dsssframesync_autotest.c \
src/framing/tests/flexframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \ src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \ src/framing/tests/gmskframe_autotest.c \
src/framing/tests/msource_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qdetector_cccf_copy_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_autotest.c \ src/framing/tests/qpilotsync_autotest.c \
src/framing/tests/qsource_autotest.c \
src/framing/tests/symstreamcf_autotest.c \
src/framing/tests/symstreamcf_delay_autotest.c \ src/framing/tests/symstreamcf_delay_autotest.c \
src/framing/tests/symstreamrcf_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \ src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \ src/framing/tests/symtrack_cccf_autotest.c \
@ -708,15 +741,15 @@ math_objects := \
src/math/src/windows.o \ src/math/src/windows.o \
poly_includes := \ poly_prototypes := \
src/math/src/poly.common.c \ src/math/src/poly.common.proto.c \
src/math/src/poly.expand.c \ src/math/src/poly.expand.proto.c \
src/math/src/poly.lagrange.c \ src/math/src/poly.lagrange.proto.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/math.o : %.o : %.c $(include_headers) src/math/src/math.o : %.o : %.c $(include_headers)
src/math/src/math.bessel.o : %.o : %.c $(include_headers) src/math/src/math.bessel.o : %.o : %.c $(include_headers)
src/math/src/math.gamma.o : %.o : %.c $(include_headers) src/math/src/math.gamma.o : %.o : %.c $(include_headers)
@ -757,24 +790,24 @@ matrix_objects := \
src/matrix/src/smatrixi.o \ src/matrix/src/smatrixi.o \
matrix_includes := \ matrix_prototypes := \
src/matrix/src/matrix.base.c \ src/matrix/src/matrix.base.proto.c \
src/matrix/src/matrix.cgsolve.c \ src/matrix/src/matrix.cgsolve.proto.c \
src/matrix/src/matrix.chol.c \ src/matrix/src/matrix.chol.proto.c \
src/matrix/src/matrix.gramschmidt.c \ src/matrix/src/matrix.gramschmidt.proto.c \
src/matrix/src/matrix.inv.c \ src/matrix/src/matrix.inv.proto.c \
src/matrix/src/matrix.linsolve.c \ src/matrix/src/matrix.linsolve.proto.c \
src/matrix/src/matrix.ludecomp.c \ src/matrix/src/matrix.ludecomp.proto.c \
src/matrix/src/matrix.qrdecomp.c \ src/matrix/src/matrix.qrdecomp.proto.c \
src/matrix/src/matrix.math.c \ src/matrix/src/matrix.math.proto.c \
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
# matrix autotest scripts # matrix autotest scripts
@ -835,26 +868,26 @@ modem_objects := \
src/modem/src/modem_arb_const.o \ src/modem/src/modem_arb_const.o \
# explicit targets and dependencies # explicit targets and dependencies
modem_includes := \ modem_prototypes := \
src/modem/src/freqdem.c \ src/modem/src/freqdem.proto.c \
src/modem/src/freqmod.c \ src/modem/src/freqmod.proto.c \
src/modem/src/modem_common.c \ src/modem/src/modem_common.proto.c \
src/modem/src/modem_psk.c \ src/modem/src/modem_psk.proto.c \
src/modem/src/modem_dpsk.c \ src/modem/src/modem_dpsk.proto.c \
src/modem/src/modem_ask.c \ src/modem/src/modem_ask.proto.c \
src/modem/src/modem_qam.c \ src/modem/src/modem_qam.proto.c \
src/modem/src/modem_apsk.c \ src/modem/src/modem_apsk.proto.c \
src/modem/src/modem_bpsk.c \ src/modem/src/modem_bpsk.proto.c \
src/modem/src/modem_qpsk.c \ src/modem/src/modem_qpsk.proto.c \
src/modem/src/modem_ook.c \ src/modem/src/modem_ook.proto.c \
src/modem/src/modem_pi4dqpsk.c \ src/modem/src/modem_pi4dqpsk.proto.c \
src/modem/src/modem_sqam32.c \ src/modem/src/modem_sqam32.proto.c \
src/modem/src/modem_sqam128.c \ src/modem/src/modem_sqam128.proto.c \
src/modem/src/modem_arb.c \ src/modem/src/modem_arb.proto.c \
#src/modem/src/modem_demod_soft_const.c #src/modem/src/modem_demod_soft_const.c
src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes) src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_prototypes)
src/modem/src/modem.shim.o : %.o : %.c $(include_headers) src/modem/src/modem.shim.o : %.o : %.c $(include_headers)
src/modem/src/gmskmod.o : %.o : %.c $(include_headers) src/modem/src/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
@ -870,7 +903,9 @@ modem_autotests := \
src/modem/tests/cpfskmodem_autotest.c \ src/modem/tests/cpfskmodem_autotest.c \
src/modem/tests/freqmodem_autotest.c \ src/modem/tests/freqmodem_autotest.c \
src/modem/tests/fskmodem_autotest.c \ src/modem/tests/fskmodem_autotest.c \
src/modem/tests/gmskmodem_autotest.c \
src/modem/tests/modem_autotest.c \ src/modem/tests/modem_autotest.c \
src/modem/tests/modem_copy_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \ src/modem/tests/modem_utilities_autotest.c \
@ -900,13 +935,13 @@ multichannel_objects := \
$(multichannel_objects) : %.o : %.c $(include_headers) $(multichannel_objects) : %.o : %.c $(include_headers)
# list explicit targets and dependencies here # list explicit targets and dependencies here
multichannel_includes := \ multichannel_prototypes := \
src/multichannel/src/firpfbch.c \ src/multichannel/src/firpfbch.proto.c \
src/multichannel/src/firpfbch2.c \ src/multichannel/src/firpfbch2.proto.c \
src/multichannel/src/firpfbchr.c \ src/multichannel/src/firpfbchr.proto.c \
src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes) src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_prototypes)
src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_includes) src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_prototypes)
# autotests # autotests
multichannel_autotests := \ multichannel_autotests := \
@ -930,16 +965,18 @@ multichannel_benchmarks := \
nco_objects := \ nco_objects := \
src/nco/src/nco_crcf.o \ src/nco/src/nco_crcf.o \
src/nco/src/nco.utilities.o \ src/nco/src/nco.utilities.o \
src/nco/src/synth_crcf.o \
nco_prototypes := \
src/nco/src/nco.proto.c \
src/nco/src/synth.proto.c \
src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) src/nco/src/nco.c src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) $(nco_prototypes)
src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers)
src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests # autotests
nco_autotests := \ nco_autotests := \
src/nco/tests/nco_crcf_copy_autotest.c \
src/nco/tests/nco_crcf_frequency_autotest.c \ src/nco/tests/nco_crcf_frequency_autotest.c \
src/nco/tests/nco_crcf_mix_autotest.c \ src/nco/tests/nco_crcf_mix_autotest.c \
src/nco/tests/nco_crcf_phase_autotest.c \ src/nco/tests/nco_crcf_phase_autotest.c \
@ -968,6 +1005,7 @@ optim_objects := \
src/optim/src/gradsearch.o \ src/optim/src/gradsearch.o \
src/optim/src/optim.common.o \ src/optim/src/optim.common.o \
src/optim/src/qnsearch.o \ src/optim/src/qnsearch.o \
src/optim/src/qs1dsearch.o \
src/optim/src/utilities.o \ src/optim/src/utilities.o \
$(optim_objects) : %.o : %.c $(include_headers) $(optim_objects) : %.o : %.c $(include_headers)
@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers)
# autotests # autotests
optim_autotests := \ optim_autotests := \
src/optim/tests/gradsearch_autotest.c \ src/optim/tests/gradsearch_autotest.c \
src/optim/tests/qs1dsearch_autotest.c \
# benchmarks # benchmarks
optim_benchmarks := optim_benchmarks :=
@ -990,10 +1029,12 @@ quantization_objects := \
src/quantization/src/quantizerf.o \ src/quantization/src/quantizerf.o \
src/quantization/src/quantizer.inline.o \ src/quantization/src/quantizer.inline.o \
quantization_prototypes := \
src/quantization/src/quantizer.proto.c \
src/quantization/src/compand.o : %.o : %.c $(include_headers) src/quantization/src/compand.o : %.o : %.c $(include_headers)
src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) $(quantization_prototypes)
src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) $(quantization_prototypes)
src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers)
@ -1066,6 +1107,7 @@ sequence_benchmarks := \
utility_objects := \ utility_objects := \
src/utility/src/bshift_array.o \ src/utility/src/bshift_array.o \
src/utility/src/byte_utilities.o \ src/utility/src/byte_utilities.o \
src/utility/src/memory.o \
src/utility/src/msb_index.o \ src/utility/src/msb_index.o \
src/utility/src/pack_bytes.o \ src/utility/src/pack_bytes.o \
src/utility/src/shift_array.o \ src/utility/src/shift_array.o \
@ -1094,14 +1136,14 @@ vector_objects := \
src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \ src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \
# portable builds # portable builds
src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c
src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c
src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c
src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c
src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c
src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c
src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c
src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c
# builds for specific architectures # builds for specific architectures
# ... # ...
@ -1202,10 +1244,9 @@ benchmark_sources := \
## ##
.PHONY: all .PHONY: all
# Shared library # Shared library targets
ARCHIVE_LIB = libliquid.a ARCHIVE_LIB = libliquid.${AR_LIB}
#MINGW: SHARED_LIB = libliquid.${SH_LIB}
SHARED_LIB = libliquid.dll
# #
# darwin # darwin
@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB}
## TARGET : help - print list of targets ## TARGET : help - print list of targets
## ##
# look for all occurences of '## TARGET : ' and print rest of line to screen # look for all occurrences of '## TARGET : ' and print rest of line to screen
help: help:
@echo "Targets for liquid-dsp makefile:" @echo "Targets for liquid-dsp makefile:"
@$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /' @$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /'
@ -1249,11 +1290,13 @@ help:
install: all install: all
@echo "installing..." @echo "installing..."
@echo "" @echo ""
mkdir -p $(DESTDIR)$(prefix)/include
mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(prefix)/include/liquid
mkdir -p $(DESTDIR)$(libdir) mkdir -p $(DESTDIR)$(libdir)
install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir) install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid install -m 644 -p libliquid.${SH_LIB} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
install -m 644 -p include/liquid.h $(DESTDIR)$(prefix)/include/liquid/liquid.h
ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
@echo "" @echo ""
@echo "---------------------------------------------------------" @echo "---------------------------------------------------------"
@echo " liquid-dsp was successfully installed. " @echo " liquid-dsp was successfully installed. "
@ -1272,11 +1315,14 @@ install: all
## TARGET : uninstall - uninstalls the libraries and header files in the host system ## TARGET : uninstall - uninstalls the libraries and header files in the host system
## ##
#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
uninstall: uninstall:
@echo "uninstalling..." @echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) $(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h
$(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB} $(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/${SHARED_LIB} $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
@echo "done." @echo "done."
## ##
@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers)
# autotest objects # autotest objects
# NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled
# header' so we need to explicity tell it to compile as a c source file with # header' so we need to explicitly tell it to compile as a c source file with
# the '-x c' flag # the '-x c' flag
autotest_obj = $(patsubst %.c,%.o,$(autotest_sources)) autotest_obj = $(patsubst %.c,%.o,$(autotest_sources))
$(autotest_obj) : %.o : %.c $(include_headers) $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# additional autotest objects
$(autotest_extra_obj) : %.o : %.c $(include_headers)
# compile the autotest internal library functions without linking
autotest/autotestlib.o : autotest/autotestlib.c autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# compile the autotest program without linking # compile the autotest program without linking
$(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h $(autotest_prog).o : autotest/xautotest.c autotest/autotest.h autotest_include.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# link the autotest program with the objects # link the autotest program with the objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB} $(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# run the autotest program # run the autotest program
@ -1343,10 +1382,12 @@ test: check
# clean the generated files # clean the generated files
clean-check: clean-check:
$(RM) autotest_include.h $(autotest_prog).o $(autotest_prog) $(RM) autotest_include.h $(autotest_prog).o $(autotest_prog)
$(RM) autotest/autotestlib.o
$(RM) $(autotest_obj) $(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj) $(RM) $(autotest_extra_obj)
$(RM) autotest/autotest.o
$(RM) autotest.json $(RM) autotest.json
$(RM) autotest/logs/*.m autotest/logs/*.dat
$(RM) autotest/logs/*.bin autotest/logs/*.gnu autotest/logs/*.png
## ##
## TARGET : doc-check - build and run basic documentation checks ## TARGET : doc-check - build and run basic documentation checks
@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers)
# benchmark objects # benchmark objects
# NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled
# header' so we need to explicity tell it to compile as a c source file with # header' so we need to explicitly tell it to compile as a c source file with
# the '-x c' flag # the '-x c' flag
benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources)) benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources))
$(benchmark_obj) : %.o : %.c $(include_headers) $(benchmark_obj) : %.o : %.c $(include_headers)
@ -1436,10 +1477,6 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE
bench: $(bench_prog) bench: $(bench_prog)
./$(bench_prog) -o benchmark.json ./$(bench_prog) -o benchmark.json
# benchmark compare script
scripts/benchmark_compare : % : %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
# fftbench program # fftbench program
bench/fftbench.o : %.o : %.c bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB}
# clean up the generated files # clean up the generated files
clean-bench: clean-bench:
$(RM) benchmark_include.h $(bench_prog).o $(bench_prog) $(RM) benchmark_include.h $(bench_prog).o $(bench_prog)
$(RM) scripts/benchmark_compare
$(RM) $(benchmark_obj) $(RM) $(benchmark_obj)
$(RM) $(benchmark_extra_obj) $(RM) $(benchmark_extra_obj)
$(RM) bench/fftbench.o $(RM) bench/fftbench.o
@ -1504,11 +1540,14 @@ example_programs := \
examples/firfarrow_rrrf_example \ examples/firfarrow_rrrf_example \
examples/firfilt_cccf_example \ examples/firfilt_cccf_example \
examples/firfilt_cccf_notch_example \ examples/firfilt_cccf_notch_example \
examples/firfilt_crcf_copy_example \
examples/firfilt_crcf_example \ examples/firfilt_crcf_example \
examples/firfilt_crcf_dcblocker_example \ examples/firfilt_crcf_dcblocker_example \
examples/firfilt_rrrf_example \ examples/firfilt_rrrf_example \
examples/firdes_doppler_example \
examples/firdes_kaiser_example \ examples/firdes_kaiser_example \
examples/firdespm_callback_example \ examples/firdespm_callback_example \
examples/firdespm_halfband_example \
examples/firdespm_example \ examples/firdespm_example \
examples/firdespm_lowpass_example \ examples/firdespm_lowpass_example \
examples/firhilb_example \ examples/firhilb_example \
@ -1525,6 +1564,7 @@ example_programs := \
examples/firinterp_rrrf_window_example \ examples/firinterp_rrrf_window_example \
examples/firpfbch_crcf_example \ examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \ examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_msource_example \
examples/firpfbch_crcf_synthesis_example \ examples/firpfbch_crcf_synthesis_example \
examples/flexframesync_example \ examples/flexframesync_example \
examples/flexframesync_reconfig_example \ examples/flexframesync_reconfig_example \
@ -1595,6 +1635,7 @@ example_programs := \
examples/qpacketmodem_example \ examples/qpacketmodem_example \
examples/qpilotsync_example \ examples/qpilotsync_example \
examples/qnsearch_example \ examples/qnsearch_example \
examples/qs1dsearch_example \
examples/quantize_example \ examples/quantize_example \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
@ -1704,6 +1745,7 @@ sandbox_programs = \
sandbox/firdes_gmskrx_test \ sandbox/firdes_gmskrx_test \
sandbox/firdes_group_delay_test \ sandbox/firdes_group_delay_test \
sandbox/firdes_length_test \ sandbox/firdes_length_test \
sandbox/firdespm_halfband_test \
sandbox/firfarrow_rrrf_test \ sandbox/firfarrow_rrrf_test \
sandbox/firfilt_dcblocker_test \ sandbox/firfilt_dcblocker_test \
sandbox/firpfbch_analysis_alignment_test \ sandbox/firpfbch_analysis_alignment_test \
@ -1751,6 +1793,7 @@ sandbox_programs = \
sandbox/resamp2_crcf_filterbank_test \ sandbox/resamp2_crcf_filterbank_test \
sandbox/resamp2_crcf_interp_recreate_test \ sandbox/resamp2_crcf_interp_recreate_test \
sandbox/reverse_byte_gentab \ sandbox/reverse_byte_gentab \
sandbox/rhamming_test \
sandbox/rkaiser2_test \ sandbox/rkaiser2_test \
sandbox/shadowing_test \ sandbox/shadowing_test \
sandbox/simplex_test \ sandbox/simplex_test \
@ -1783,6 +1826,23 @@ clean-sandbox:
$(RM) sandbox/*.o $(RM) sandbox/*.o
$(RM) $(sandbox_programs) $(RM) $(sandbox_programs)
##
## TARGET : check-link- test linking to installed library
##
# run program, ensuring proper error code
check-link: scripts/liquid_linker_test ; ./$<
# use subset of compiler flags so we don't try to build or link against
# local files
scripts/liquid_linker_test.o : %.o : %.c
$(CC) -c -Wall -O2 -o $@ $<
scripts/liquid_linker_test : % : %.o
$(CC) -Wall -O2 -o $@ $< -L/usr/local/lib ${LIBS} -lliquid
extra_clean += scripts/liquid_linker_test.o scripts/liquid_linker_test
## ##
## TARGET : programs - build all programs, but don't run anything ## TARGET : programs - build all programs, but don't run anything
## ##
@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle
distclean: clean distclean: clean
@echo "cleaning distribution..." @echo "cleaning distribution..."
$(RM) octave-core *.m $(RM) octave-core *_example.m
$(RM) configure config.h config.h.in config.h.in~ config.log config.status $(RM) configure config.h config.h.in config.h.in~ config.log config.status
$(RM) -r autom4te.cache $(RM) -r autom4te.cache
$(RM) aclocal.m4 $(RM) aclocal.m4

View File

@ -43,8 +43,10 @@
# autoconf initialization macros # autoconf initialization macros
NAME := liquid-dsp NAME := liquid-dsp
VERSION := 1.4.0 VERSION := 1.5
BUGREPORT := joseph@liquidsdr.org BUGREPORT := joseph@liquidsdr.org
AR_LIB := a
SH_LIB := dll
# paths # paths
prefix := /usr/local prefix := /usr/local
@ -71,8 +73,8 @@ COVERAGE_FLAGS = # dynamic library linker needs separate flag
#MINGW: optimizations goes here, use SSSE42 for 64bit #MINGW: optimizations goes here, use SSSE42 for 64bit
CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS} CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS}
CPPFLAGS = $(INCLUDE_CFLAGS) CPPFLAGS = $(INCLUDE_CFLAGS)
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS = -lmsvcrt LIBS = -lmsvcrt
@ -110,9 +112,12 @@ agc_objects = \
src/agc/src/agc_crcf.o \ src/agc/src/agc_crcf.o \
src/agc/src/agc_rrrf.o \ src/agc/src/agc_rrrf.o \
agc_prototypes := \
src/agc/src/agc.proto.c \
# explicit targets and dependencies # explicit targets and dependencies
src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers) src/agc/src/agc_crcf.o : %.o : %.c $(include_headers) $(agc_prototypes)
src/agc/src/agc_rrrf.o : %.o : %.c src/agc/src/agc.c $(include_headers) src/agc/src/agc_rrrf.o : %.o : %.c $(include_headers) $(agc_prototypes)
# autotests # autotests
agc_autotests := \ agc_autotests := \
@ -148,22 +153,20 @@ buffer_objects := \
src/buffer/src/bufferf.o \ src/buffer/src/bufferf.o \
src/buffer/src/buffercf.o \ src/buffer/src/buffercf.o \
buffer_includes := \ # src/buffer/src/buffer.proto.c
src/buffer/src/cbuffer.c \ buffer_prototypes := \
src/buffer/src/wdelay.c \ src/buffer/src/cbuffer.proto.c \
src/buffer/src/window.c \ src/buffer/src/wdelay.proto.c \
src/buffer/src/window.proto.c \
src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_includes) src/buffer/src/bufferf.o : %.o : %.c $(include_headers) $(buffer_prototypes)
src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_prototypes)
src/buffer/src/buffercf.o : %.o : %.c $(include_headers) $(buffer_includes)
buffer_autotests := \ buffer_autotests := \
src/buffer/tests/cbuffer_autotest.c \ src/buffer/tests/cbuffer_autotest.c \
src/buffer/tests/wdelay_autotest.c \ src/buffer/tests/wdelay_autotest.c \
src/buffer/tests/window_autotest.c \ src/buffer/tests/window_autotest.c \
# src/buffer/tests/sbuffer_autotest.c
buffer_benchmarks := \ buffer_benchmarks := \
src/buffer/bench/cbuffercf_benchmark.c \ src/buffer/bench/cbuffercf_benchmark.c \
@ -177,13 +180,15 @@ buffer_benchmarks := \
channel_objects := \ channel_objects := \
src/channel/src/channel_cccf.o \ src/channel/src/channel_cccf.o \
channel_includes := \ channel_prototypes := \
src/channel/src/channel.c \ src/channel/src/channel.proto.c \
src/channel/src/tvmpch.c \ src/channel/src/tvmpch.proto.c \
src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_includes) src/channel/src/channel_cccf.o : %.o : %.c $(include_headers) $(channel_prototypes)
channel_autotests := \ channel_autotests := \
src/channel/tests/channel_copy_autotest.c \
src/channel/tests/tvmpch_copy_autotest.c \
#src/channel/tests/channel_cccf_autotest.c #src/channel/tests/channel_cccf_autotest.c
@ -195,11 +200,11 @@ channel_benchmarks := \
# MODULE : dotprod # MODULE : dotprod
# #
dotprod_objects := \ dotprod_objects := \
src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.mmx.o src/dotprod/src/sumsq.mmx.o \ src/dotprod/src/dotprod_cccf.mmx.o src/dotprod/src/dotprod_crcf.mmx.o src/dotprod/src/dotprod_rrrf.sse4.o src/dotprod/src/sumsq.mmx.o \
src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_cccf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c src/dotprod/src/dotprod_rrrf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.proto.c
src/dotprod/src/sumsq.o : %.o : %.c $(include_headers) src/dotprod/src/sumsq.o : %.o : %.c $(include_headers)
# specific machine architectures # specific machine architectures
@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers)
# SSE4.1/2 # SSE4.1/2
src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers)
# AVX
src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers)
# ARM Neon # ARM Neon
src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_rrrf.neon.o : %.o : %.c $(include_headers)
src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod_crcf.neon.o : %.o : %.c $(include_headers)
@ -243,8 +251,11 @@ equalization_objects := \
src/equalization/src/equalizer_cccf.o \ src/equalization/src/equalizer_cccf.o \
src/equalization/src/equalizer_rrrf.o \ src/equalization/src/equalizer_rrrf.o \
equalization_prototypes := \
src/equalization/src/eqlms.proto.c \
src/equalization/src/eqrls.proto.c \
$(equalization_objects) : %.o : %.c $(include_headers) src/equalization/src/eqlms.c src/equalization/src/eqrls.c $(equalization_objects) : %.o : %.c $(include_headers) $(equalization_prototypes)
# autotests # autotests
@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers)
fec_autotests := \ fec_autotests := \
src/fec/tests/crc_autotest.c \ src/fec/tests/crc_autotest.c \
src/fec/tests/fec_autotest.c \ src/fec/tests/fec_autotest.c \
src/fec/tests/fec_copy_autotest.c \
src/fec/tests/fec_soft_autotest.c \ src/fec/tests/fec_soft_autotest.c \
src/fec/tests/fec_golay2412_autotest.c \ src/fec/tests/fec_golay2412_autotest.c \
src/fec/tests/fec_hamming74_autotest.c \ src/fec/tests/fec_hamming74_autotest.c \
@ -308,6 +320,7 @@ fec_autotests := \
src/fec/tests/fec_secded3932_autotest.c \ src/fec/tests/fec_secded3932_autotest.c \
src/fec/tests/fec_secded7264_autotest.c \ src/fec/tests/fec_secded7264_autotest.c \
src/fec/tests/interleaver_autotest.c \ src/fec/tests/interleaver_autotest.c \
src/fec/tests/packetizer_copy_autotest.c \
src/fec/tests/packetizer_autotest.c \ src/fec/tests/packetizer_autotest.c \
@ -332,26 +345,27 @@ fft_objects := \
src/fft/src/fft_utilities.o \ src/fft/src/fft_utilities.o \
# explicit targets and dependencies # explicit targets and dependencies
fft_includes := \ fft_prototypes := \
src/fft/src/fft_common.c \ src/fft/src/fft_common.proto.c \
src/fft/src/fft_dft.c \ src/fft/src/fft_dft.proto.c \
src/fft/src/fft_radix2.c \ src/fft/src/fft_radix2.proto.c \
src/fft/src/fft_mixed_radix.c \ src/fft/src/fft_mixed_radix.proto.c \
src/fft/src/fft_rader.c \ src/fft/src/fft_rader.proto.c \
src/fft/src/fft_rader2.c \ src/fft/src/fft_rader2.proto.c \
src/fft/src/fft_r2r_1d.c \ src/fft/src/fft_r2r_1d.proto.c \
src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_includes) src/fft/src/fftf.o : %.o : %.c $(include_headers) $(fft_prototypes)
src/fft/src/asgram.o : %.o : %.c $(include_headers) src/fft/src/asgram.o : %.o : %.c $(include_headers)
src/fft/src/dct.o : %.o : %.c $(include_headers) src/fft/src/dct.o : %.o : %.c $(include_headers)
src/fft/src/fftf.o : %.o : %.c $(include_headers) src/fft/src/fftf.o : %.o : %.c $(include_headers)
src/fft/src/fft_utilities.o : %.o : %.c $(include_headers) src/fft/src/fft_utilities.o : %.o : %.c $(include_headers)
src/fft/src/mdct.o : %.o : %.c $(include_headers) src/fft/src/mdct.o : %.o : %.c $(include_headers)
src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c src/fft/src/spgramcf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.c src/fft/src/spgram.c src/fft/src/spwaterfall.c src/fft/src/spgramf.o : %.o : %.c $(include_headers) src/fft/src/asgram.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
# fft autotest scripts # fft autotest scripts
fft_autotests := \ fft_autotests := \
src/fft/tests/asgram_autotest.c \
src/fft/tests/fft_small_autotest.c \ src/fft/tests/fft_small_autotest.c \
src/fft/tests/fft_radix2_autotest.c \ src/fft/tests/fft_radix2_autotest.c \
src/fft/tests/fft_composite_autotest.c \ src/fft/tests/fft_composite_autotest.c \
@ -407,6 +421,7 @@ fft_benchmarks := \
src/fft/bench/fft_prime_benchmark.c \ src/fft/bench/fft_prime_benchmark.c \
src/fft/bench/fft_radix2_benchmark.c \ src/fft/bench/fft_radix2_benchmark.c \
src/fft/bench/fft_r2r_benchmark.c \ src/fft/bench/fft_r2r_benchmark.c \
src/fft/bench/spgramcf_benchmark.c \
# additional benchmark objects # additional benchmark objects
benchmark_extra_obj := \ benchmark_extra_obj := \
@ -427,6 +442,7 @@ filter_objects := \
src/filter/src/filter_cccf.o \ src/filter/src/filter_cccf.o \
src/filter/src/firdes.o \ src/filter/src/firdes.o \
src/filter/src/firdespm.o \ src/filter/src/firdespm.o \
src/filter/src/firdespm_halfband.o \
src/filter/src/fnyquist.o \ src/filter/src/fnyquist.o \
src/filter/src/gmsk.o \ src/filter/src/gmsk.o \
src/filter/src/group_delay.o \ src/filter/src/group_delay.o \
@ -440,29 +456,29 @@ filter_objects := \
# list explicit targets and dependencies here # list explicit targets and dependencies here
filter_includes := \ filter_prototypes := \
src/filter/src/autocorr.c \ src/filter/src/autocorr.proto.c \
src/filter/src/dds.c \ src/filter/src/dds.proto.c \
src/filter/src/fdelay.c \ src/filter/src/fdelay.proto.c \
src/filter/src/fftfilt.c \ src/filter/src/fftfilt.proto.c \
src/filter/src/firdecim.c \ src/filter/src/firdecim.proto.c \
src/filter/src/firfarrow.c \ src/filter/src/firfarrow.proto.c \
src/filter/src/firfilt.c \ src/filter/src/firfilt.proto.c \
src/filter/src/firhilb.c \ src/filter/src/firhilb.proto.c \
src/filter/src/firinterp.c \ src/filter/src/firinterp.proto.c \
src/filter/src/firpfb.c \ src/filter/src/firpfb.proto.c \
src/filter/src/iirdecim.c \ src/filter/src/iirdecim.proto.c \
src/filter/src/iirfilt.c \ src/filter/src/iirfilt.proto.c \
src/filter/src/iirfiltsos.c \ src/filter/src/iirfiltsos.proto.c \
src/filter/src/iirhilb.c \ src/filter/src/iirhilb.proto.c \
src/filter/src/iirinterp.c \ src/filter/src/iirinterp.proto.c \
src/filter/src/msresamp.c \ src/filter/src/msresamp.proto.c \
src/filter/src/msresamp2.c \ src/filter/src/msresamp2.proto.c \
src/filter/src/ordfilt.c \ src/filter/src/ordfilt.proto.c \
src/filter/src/rresamp.c \ src/filter/src/rresamp.proto.c \
src/filter/src/resamp.fixed.c \ src/filter/src/resamp.fixed.proto.c \
src/filter/src/resamp2.c \ src/filter/src/resamp2.proto.c \
src/filter/src/symsync.c \ src/filter/src/symsync.proto.c \
src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers)
src/filter/src/bessel.o : %.o : %.c $(include_headers) src/filter/src/bessel.o : %.o : %.c $(include_headers)
@ -470,9 +486,9 @@ src/filter/src/butter.o : %.o : %.c $(include_headers)
src/filter/src/cheby1.o : %.o : %.c $(include_headers) src/filter/src/cheby1.o : %.o : %.c $(include_headers)
src/filter/src/cheby2.o : %.o : %.c $(include_headers) src/filter/src/cheby2.o : %.o : %.c $(include_headers)
src/filter/src/ellip.o : %.o : %.c $(include_headers) src/filter/src/ellip.o : %.o : %.c $(include_headers)
src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_rrrf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_crcf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_includes) src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/firdes.o : %.o : %.c $(include_headers) src/filter/src/firdes.o : %.o : %.c $(include_headers)
src/filter/src/firdespm.o : %.o : %.c $(include_headers) src/filter/src/firdespm.o : %.o : %.c $(include_headers)
src/filter/src/group_delay.o : %.o : %.c $(include_headers) src/filter/src/group_delay.o : %.o : %.c $(include_headers)
@ -486,30 +502,41 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \ filter_autotests := \
src/filter/tests/dds_cccf_autotest.c \
src/filter/tests/fdelay_rrrf_autotest.c \ src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \
src/filter/tests/firdes_autotest.c \ src/filter/tests/firdes_autotest.c \
src/filter/tests/firdespm_autotest.c \ src/filter/tests/firdespm_autotest.c \
src/filter/tests/firfilt_autotest.c \
src/filter/tests/firfilt_cccf_notch_autotest.c \ src/filter/tests/firfilt_cccf_notch_autotest.c \
src/filter/tests/firfilt_coefficients_autotest.c \ src/filter/tests/firfilt_coefficients_autotest.c \
src/filter/tests/firfilt_rnyquist_autotest.c \ src/filter/tests/firfilt_rnyquist_autotest.c \
src/filter/tests/firfilt_xxxf_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \
src/filter/tests/firfilt_copy_autotest.c \
src/filter/tests/firhilb_autotest.c \ src/filter/tests/firhilb_autotest.c \
src/filter/tests/firinterp_autotest.c \ src/filter/tests/firinterp_autotest.c \
src/filter/tests/firpfb_autotest.c \ src/filter/tests/firpfb_autotest.c \
src/filter/tests/groupdelay_autotest.c \ src/filter/tests/groupdelay_autotest.c \
src/filter/tests/iirdecim_autotest.c \
src/filter/tests/iirdes_autotest.c \ src/filter/tests/iirdes_autotest.c \
src/filter/tests/iirdes_support_autotest.c \ src/filter/tests/iirdes_support_autotest.c \
src/filter/tests/iirfilt_xxxf_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \
src/filter/tests/iirfiltsos_rrrf_autotest.c \ src/filter/tests/iirfilt_copy_autotest.c \
src/filter/tests/iirfiltsos_autotest.c \
src/filter/tests/iirhilb_autotest.c \
src/filter/tests/iirinterp_autotest.c \
src/filter/tests/lpc_autotest.c \ src/filter/tests/lpc_autotest.c \
src/filter/tests/msresamp_crcf_autotest.c \ src/filter/tests/msresamp_crcf_autotest.c \
src/filter/tests/msresamp2_crcf_autotest.c \
src/filter/tests/ordfilt_autotest.c \
src/filter/tests/rresamp_crcf_autotest.c \ src/filter/tests/rresamp_crcf_autotest.c \
src/filter/tests/rresamp_crcf_partition_autotest.c \ src/filter/tests/rresamp_crcf_partition_autotest.c \
src/filter/tests/resamp_crcf_autotest.c \ src/filter/tests/resamp_crcf_autotest.c \
src/filter/tests/resamp2_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \
src/filter/tests/symsync_copy_autotest.c \
src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \
src/filter/tests/symsync_rrrf_autotest.c \ src/filter/tests/symsync_rrrf_autotest.c \
@ -638,10 +665,10 @@ framing_objects := \
src/framing/src/bpacketgen.o : %.o : %.c $(include_headers) src/framing/src/bpacketgen.o : %.o : %.c $(include_headers)
src/framing/src/bpacketsync.o : %.o : %.c $(include_headers) src/framing/src/bpacketsync.o : %.o : %.c $(include_headers)
src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.c src/framing/src/bpresync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bpresync.proto.c
src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.proto.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.o : %.o : %.c $(include_headers) src/framing/src/dsssframegen.o : %.o : %.c $(include_headers)
src/framing/src/dsssframesync.o : %.o : %.c $(include_headers) src/framing/src/dsssframesync.o : %.o : %.c $(include_headers)
@ -651,28 +678,34 @@ src/framing/src/framegen64.o : %.o : %.c $(include_headers)
src/framing/src/framesync64.o : %.o : %.c $(include_headers) src/framing/src/framesync64.o : %.o : %.c $(include_headers)
src/framing/src/flexframegen.o : %.o : %.c $(include_headers) src/framing/src/flexframegen.o : %.o : %.c $(include_headers)
src/framing/src/flexframesync.o : %.o : %.c $(include_headers) src/framing/src/flexframesync.o : %.o : %.c $(include_headers)
src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.c src/framing/src/qsource.c src/framing/src/msourcecf.o : %.o : %.c $(include_headers) src/framing/src/msource.proto.c src/framing/src/qsource.proto.c
src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframegen.o : %.o : %.c $(include_headers)
src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers) src/framing/src/ofdmflexframesync.o : %.o : %.c $(include_headers)
src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.c src/framing/src/presync_cccf.o : %.o : %.c $(include_headers) src/framing/src/presync.proto.c
src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers) src/framing/src/qpacketmodem.o : %.o : %.c $(include_headers)
src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c src/framing/src/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.proto.c
src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.proto.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c
framing_autotests := \ framing_autotests := \
src/framing/tests/bpacketsync_autotest.c \ src/framing/tests/bpacketsync_autotest.c \
src/framing/tests/bsync_autotest.c \ src/framing/tests/bsync_autotest.c \
src/framing/tests/detector_autotest.c \ src/framing/tests/detector_autotest.c \
src/framing/tests/dsssframesync_autotest.c \
src/framing/tests/flexframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \ src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \ src/framing/tests/gmskframe_autotest.c \
src/framing/tests/msource_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qdetector_cccf_copy_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_autotest.c \ src/framing/tests/qpilotsync_autotest.c \
src/framing/tests/qsource_autotest.c \
src/framing/tests/symstreamcf_autotest.c \
src/framing/tests/symstreamcf_delay_autotest.c \ src/framing/tests/symstreamcf_delay_autotest.c \
src/framing/tests/symstreamrcf_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \ src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \ src/framing/tests/symtrack_cccf_autotest.c \
@ -708,15 +741,15 @@ math_objects := \
src/math/src/windows.o \ src/math/src/windows.o \
poly_includes := \ poly_prototypes := \
src/math/src/poly.common.c \ src/math/src/poly.common.proto.c \
src/math/src/poly.expand.c \ src/math/src/poly.expand.proto.c \
src/math/src/poly.lagrange.c \ src/math/src/poly.lagrange.proto.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/math.o : %.o : %.c $(include_headers) src/math/src/math.o : %.o : %.c $(include_headers)
src/math/src/math.bessel.o : %.o : %.c $(include_headers) src/math/src/math.bessel.o : %.o : %.c $(include_headers)
src/math/src/math.gamma.o : %.o : %.c $(include_headers) src/math/src/math.gamma.o : %.o : %.c $(include_headers)
@ -757,24 +790,24 @@ matrix_objects := \
src/matrix/src/smatrixi.o \ src/matrix/src/smatrixi.o \
matrix_includes := \ matrix_prototypes := \
src/matrix/src/matrix.base.c \ src/matrix/src/matrix.base.proto.c \
src/matrix/src/matrix.cgsolve.c \ src/matrix/src/matrix.cgsolve.proto.c \
src/matrix/src/matrix.chol.c \ src/matrix/src/matrix.chol.proto.c \
src/matrix/src/matrix.gramschmidt.c \ src/matrix/src/matrix.gramschmidt.proto.c \
src/matrix/src/matrix.inv.c \ src/matrix/src/matrix.inv.proto.c \
src/matrix/src/matrix.linsolve.c \ src/matrix/src/matrix.linsolve.proto.c \
src/matrix/src/matrix.ludecomp.c \ src/matrix/src/matrix.ludecomp.proto.c \
src/matrix/src/matrix.qrdecomp.c \ src/matrix/src/matrix.qrdecomp.proto.c \
src/matrix/src/matrix.math.c \ src/matrix/src/matrix.math.proto.c \
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes) src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
# matrix autotest scripts # matrix autotest scripts
@ -835,26 +868,26 @@ modem_objects := \
src/modem/src/modem_arb_const.o \ src/modem/src/modem_arb_const.o \
# explicit targets and dependencies # explicit targets and dependencies
modem_includes := \ modem_prototypes := \
src/modem/src/freqdem.c \ src/modem/src/freqdem.proto.c \
src/modem/src/freqmod.c \ src/modem/src/freqmod.proto.c \
src/modem/src/modem_common.c \ src/modem/src/modem_common.proto.c \
src/modem/src/modem_psk.c \ src/modem/src/modem_psk.proto.c \
src/modem/src/modem_dpsk.c \ src/modem/src/modem_dpsk.proto.c \
src/modem/src/modem_ask.c \ src/modem/src/modem_ask.proto.c \
src/modem/src/modem_qam.c \ src/modem/src/modem_qam.proto.c \
src/modem/src/modem_apsk.c \ src/modem/src/modem_apsk.proto.c \
src/modem/src/modem_bpsk.c \ src/modem/src/modem_bpsk.proto.c \
src/modem/src/modem_qpsk.c \ src/modem/src/modem_qpsk.proto.c \
src/modem/src/modem_ook.c \ src/modem/src/modem_ook.proto.c \
src/modem/src/modem_pi4dqpsk.c \ src/modem/src/modem_pi4dqpsk.proto.c \
src/modem/src/modem_sqam32.c \ src/modem/src/modem_sqam32.proto.c \
src/modem/src/modem_sqam128.c \ src/modem/src/modem_sqam128.proto.c \
src/modem/src/modem_arb.c \ src/modem/src/modem_arb.proto.c \
#src/modem/src/modem_demod_soft_const.c #src/modem/src/modem_demod_soft_const.c
src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes) src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_prototypes)
src/modem/src/modem.shim.o : %.o : %.c $(include_headers) src/modem/src/modem.shim.o : %.o : %.c $(include_headers)
src/modem/src/gmskmod.o : %.o : %.c $(include_headers) src/modem/src/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
@ -870,7 +903,9 @@ modem_autotests := \
src/modem/tests/cpfskmodem_autotest.c \ src/modem/tests/cpfskmodem_autotest.c \
src/modem/tests/freqmodem_autotest.c \ src/modem/tests/freqmodem_autotest.c \
src/modem/tests/fskmodem_autotest.c \ src/modem/tests/fskmodem_autotest.c \
src/modem/tests/gmskmodem_autotest.c \
src/modem/tests/modem_autotest.c \ src/modem/tests/modem_autotest.c \
src/modem/tests/modem_copy_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \ src/modem/tests/modem_utilities_autotest.c \
@ -900,13 +935,13 @@ multichannel_objects := \
$(multichannel_objects) : %.o : %.c $(include_headers) $(multichannel_objects) : %.o : %.c $(include_headers)
# list explicit targets and dependencies here # list explicit targets and dependencies here
multichannel_includes := \ multichannel_prototypes := \
src/multichannel/src/firpfbch.c \ src/multichannel/src/firpfbch.proto.c \
src/multichannel/src/firpfbch2.c \ src/multichannel/src/firpfbch2.proto.c \
src/multichannel/src/firpfbchr.c \ src/multichannel/src/firpfbchr.proto.c \
src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes) src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_prototypes)
src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_includes) src/multichannel/src/firpfbch_cccf.o : %.o : %.c $(include_headers) $(multichannel_prototypes)
# autotests # autotests
multichannel_autotests := \ multichannel_autotests := \
@ -930,16 +965,18 @@ multichannel_benchmarks := \
nco_objects := \ nco_objects := \
src/nco/src/nco_crcf.o \ src/nco/src/nco_crcf.o \
src/nco/src/nco.utilities.o \ src/nco/src/nco.utilities.o \
src/nco/src/synth_crcf.o \
nco_prototypes := \
src/nco/src/nco.proto.c \
src/nco/src/synth.proto.c \
src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) src/nco/src/nco.c src/nco/src/nco_crcf.o : %.o : %.c $(include_headers) $(nco_prototypes)
src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers)
src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests # autotests
nco_autotests := \ nco_autotests := \
src/nco/tests/nco_crcf_copy_autotest.c \
src/nco/tests/nco_crcf_frequency_autotest.c \ src/nco/tests/nco_crcf_frequency_autotest.c \
src/nco/tests/nco_crcf_mix_autotest.c \ src/nco/tests/nco_crcf_mix_autotest.c \
src/nco/tests/nco_crcf_phase_autotest.c \ src/nco/tests/nco_crcf_phase_autotest.c \
@ -968,6 +1005,7 @@ optim_objects := \
src/optim/src/gradsearch.o \ src/optim/src/gradsearch.o \
src/optim/src/optim.common.o \ src/optim/src/optim.common.o \
src/optim/src/qnsearch.o \ src/optim/src/qnsearch.o \
src/optim/src/qs1dsearch.o \
src/optim/src/utilities.o \ src/optim/src/utilities.o \
$(optim_objects) : %.o : %.c $(include_headers) $(optim_objects) : %.o : %.c $(include_headers)
@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers)
# autotests # autotests
optim_autotests := \ optim_autotests := \
src/optim/tests/gradsearch_autotest.c \ src/optim/tests/gradsearch_autotest.c \
src/optim/tests/qs1dsearch_autotest.c \
# benchmarks # benchmarks
optim_benchmarks := optim_benchmarks :=
@ -990,10 +1029,12 @@ quantization_objects := \
src/quantization/src/quantizerf.o \ src/quantization/src/quantizerf.o \
src/quantization/src/quantizer.inline.o \ src/quantization/src/quantizer.inline.o \
quantization_prototypes := \
src/quantization/src/quantizer.proto.c \
src/quantization/src/compand.o : %.o : %.c $(include_headers) src/quantization/src/compand.o : %.o : %.c $(include_headers)
src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c src/quantization/src/quantizercf.o : %.o : %.c $(include_headers) $(quantization_prototypes)
src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c src/quantization/src/quantizerf.o : %.o : %.c $(include_headers) $(quantization_prototypes)
src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers)
@ -1066,6 +1107,7 @@ sequence_benchmarks := \
utility_objects := \ utility_objects := \
src/utility/src/bshift_array.o \ src/utility/src/bshift_array.o \
src/utility/src/byte_utilities.o \ src/utility/src/byte_utilities.o \
src/utility/src/memory.o \
src/utility/src/msb_index.o \ src/utility/src/msb_index.o \
src/utility/src/pack_bytes.o \ src/utility/src/pack_bytes.o \
src/utility/src/shift_array.o \ src/utility/src/shift_array.o \
@ -1094,14 +1136,14 @@ vector_objects := \
src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \ src/vector/src/vectorf_add.port.o src/vector/src/vectorf_norm.port.o src/vector/src/vectorf_mul.port.o src/vector/src/vectorf_trig.port.o src/vector/src/vectorcf_add.port.o src/vector/src/vectorcf_norm.port.o src/vector/src/vectorcf_mul.port.o src/vector/src/vectorcf_trig.port.o \
# portable builds # portable builds
src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c
src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c
src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c
src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c
src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.proto.c
src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.proto.c
src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.proto.c
src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.proto.c
# builds for specific architectures # builds for specific architectures
# ... # ...
@ -1202,10 +1244,9 @@ benchmark_sources := \
## ##
.PHONY: all .PHONY: all
# Shared library # Shared library targets
ARCHIVE_LIB = libliquid.a ARCHIVE_LIB = libliquid.${AR_LIB}
#MINGW: SHARED_LIB = libliquid.${SH_LIB}
SHARED_LIB = libliquid.dll
# #
# darwin # darwin
@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB}
## TARGET : help - print list of targets ## TARGET : help - print list of targets
## ##
# look for all occurences of '## TARGET : ' and print rest of line to screen # look for all occurrences of '## TARGET : ' and print rest of line to screen
help: help:
@echo "Targets for liquid-dsp makefile:" @echo "Targets for liquid-dsp makefile:"
@$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /' @$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /'
@ -1249,11 +1290,13 @@ help:
install: all install: all
@echo "installing..." @echo "installing..."
@echo "" @echo ""
mkdir -p $(DESTDIR)$(prefix)/include
mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(prefix)/include/liquid
mkdir -p $(DESTDIR)$(libdir) mkdir -p $(DESTDIR)$(libdir)
install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir) install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid install -m 644 -p libliquid.${SH_LIB} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
install -m 644 -p include/liquid.h $(DESTDIR)$(prefix)/include/liquid/liquid.h
ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
ln -sf libliquid.${SH_LIB}.${VERSION} $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
@echo "" @echo ""
@echo "---------------------------------------------------------" @echo "---------------------------------------------------------"
@echo " liquid-dsp was successfully installed. " @echo " liquid-dsp was successfully installed. "
@ -1272,11 +1315,14 @@ install: all
## TARGET : uninstall - uninstalls the libraries and header files in the host system ## TARGET : uninstall - uninstalls the libraries and header files in the host system
## ##
#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
uninstall: uninstall:
@echo "uninstalling..." @echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) $(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h
$(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB} $(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/${SHARED_LIB} $(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
@echo "done." @echo "done."
## ##
@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers)
# autotest objects # autotest objects
# NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled
# header' so we need to explicity tell it to compile as a c source file with # header' so we need to explicitly tell it to compile as a c source file with
# the '-x c' flag # the '-x c' flag
autotest_obj = $(patsubst %.c,%.o,$(autotest_sources)) autotest_obj = $(patsubst %.c,%.o,$(autotest_sources))
$(autotest_obj) : %.o : %.c $(include_headers) $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# additional autotest objects
$(autotest_extra_obj) : %.o : %.c $(include_headers)
# compile the autotest internal library functions without linking
autotest/autotestlib.o : autotest/autotestlib.c autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# compile the autotest program without linking # compile the autotest program without linking
$(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h $(autotest_prog).o : autotest/xautotest.c autotest/autotest.h autotest_include.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@ $(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# link the autotest program with the objects # link the autotest program with the objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB} $(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotest.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# run the autotest program # run the autotest program
@ -1343,10 +1382,12 @@ test: check
# clean the generated files # clean the generated files
clean-check: clean-check:
$(RM) autotest_include.h $(autotest_prog).o $(autotest_prog) $(RM) autotest_include.h $(autotest_prog).o $(autotest_prog)
$(RM) autotest/autotestlib.o
$(RM) $(autotest_obj) $(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj) $(RM) $(autotest_extra_obj)
$(RM) autotest/autotest.o
$(RM) autotest.json $(RM) autotest.json
$(RM) autotest/logs/*.m autotest/logs/*.dat
$(RM) autotest/logs/*.bin autotest/logs/*.gnu autotest/logs/*.png
## ##
## TARGET : doc-check - build and run basic documentation checks ## TARGET : doc-check - build and run basic documentation checks
@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers)
# benchmark objects # benchmark objects
# NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled # NOTE: by default, gcc compiles any file with a '.h' extension as a 'pre-compiled
# header' so we need to explicity tell it to compile as a c source file with # header' so we need to explicitly tell it to compile as a c source file with
# the '-x c' flag # the '-x c' flag
benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources)) benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources))
$(benchmark_obj) : %.o : %.c $(include_headers) $(benchmark_obj) : %.o : %.c $(include_headers)
@ -1436,10 +1477,6 @@ $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE
bench: $(bench_prog) bench: $(bench_prog)
./$(bench_prog) -o benchmark.json ./$(bench_prog) -o benchmark.json
# benchmark compare script
scripts/benchmark_compare : % : %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
# fftbench program # fftbench program
bench/fftbench.o : %.o : %.c bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB}
# clean up the generated files # clean up the generated files
clean-bench: clean-bench:
$(RM) benchmark_include.h $(bench_prog).o $(bench_prog) $(RM) benchmark_include.h $(bench_prog).o $(bench_prog)
$(RM) scripts/benchmark_compare
$(RM) $(benchmark_obj) $(RM) $(benchmark_obj)
$(RM) $(benchmark_extra_obj) $(RM) $(benchmark_extra_obj)
$(RM) bench/fftbench.o $(RM) bench/fftbench.o
@ -1504,11 +1540,14 @@ example_programs := \
examples/firfarrow_rrrf_example \ examples/firfarrow_rrrf_example \
examples/firfilt_cccf_example \ examples/firfilt_cccf_example \
examples/firfilt_cccf_notch_example \ examples/firfilt_cccf_notch_example \
examples/firfilt_crcf_copy_example \
examples/firfilt_crcf_example \ examples/firfilt_crcf_example \
examples/firfilt_crcf_dcblocker_example \ examples/firfilt_crcf_dcblocker_example \
examples/firfilt_rrrf_example \ examples/firfilt_rrrf_example \
examples/firdes_doppler_example \
examples/firdes_kaiser_example \ examples/firdes_kaiser_example \
examples/firdespm_callback_example \ examples/firdespm_callback_example \
examples/firdespm_halfband_example \
examples/firdespm_example \ examples/firdespm_example \
examples/firdespm_lowpass_example \ examples/firdespm_lowpass_example \
examples/firhilb_example \ examples/firhilb_example \
@ -1525,6 +1564,7 @@ example_programs := \
examples/firinterp_rrrf_window_example \ examples/firinterp_rrrf_window_example \
examples/firpfbch_crcf_example \ examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \ examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_msource_example \
examples/firpfbch_crcf_synthesis_example \ examples/firpfbch_crcf_synthesis_example \
examples/flexframesync_example \ examples/flexframesync_example \
examples/flexframesync_reconfig_example \ examples/flexframesync_reconfig_example \
@ -1595,6 +1635,7 @@ example_programs := \
examples/qpacketmodem_example \ examples/qpacketmodem_example \
examples/qpilotsync_example \ examples/qpilotsync_example \
examples/qnsearch_example \ examples/qnsearch_example \
examples/qs1dsearch_example \
examples/quantize_example \ examples/quantize_example \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
@ -1704,6 +1745,7 @@ sandbox_programs = \
sandbox/firdes_gmskrx_test \ sandbox/firdes_gmskrx_test \
sandbox/firdes_group_delay_test \ sandbox/firdes_group_delay_test \
sandbox/firdes_length_test \ sandbox/firdes_length_test \
sandbox/firdespm_halfband_test \
sandbox/firfarrow_rrrf_test \ sandbox/firfarrow_rrrf_test \
sandbox/firfilt_dcblocker_test \ sandbox/firfilt_dcblocker_test \
sandbox/firpfbch_analysis_alignment_test \ sandbox/firpfbch_analysis_alignment_test \
@ -1751,6 +1793,7 @@ sandbox_programs = \
sandbox/resamp2_crcf_filterbank_test \ sandbox/resamp2_crcf_filterbank_test \
sandbox/resamp2_crcf_interp_recreate_test \ sandbox/resamp2_crcf_interp_recreate_test \
sandbox/reverse_byte_gentab \ sandbox/reverse_byte_gentab \
sandbox/rhamming_test \
sandbox/rkaiser2_test \ sandbox/rkaiser2_test \
sandbox/shadowing_test \ sandbox/shadowing_test \
sandbox/simplex_test \ sandbox/simplex_test \
@ -1783,6 +1826,23 @@ clean-sandbox:
$(RM) sandbox/*.o $(RM) sandbox/*.o
$(RM) $(sandbox_programs) $(RM) $(sandbox_programs)
##
## TARGET : check-link- test linking to installed library
##
# run program, ensuring proper error code
check-link: scripts/liquid_linker_test ; ./$<
# use subset of compiler flags so we don't try to build or link against
# local files
scripts/liquid_linker_test.o : %.o : %.c
$(CC) -c -Wall -O2 -o $@ $<
scripts/liquid_linker_test : % : %.o
$(CC) -Wall -O2 -o $@ $< -L/usr/local/lib ${LIBS} -lliquid
extra_clean += scripts/liquid_linker_test.o scripts/liquid_linker_test
## ##
## TARGET : programs - build all programs, but don't run anything ## TARGET : programs - build all programs, but don't run anything
## ##
@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle
distclean: clean distclean: clean
@echo "cleaning distribution..." @echo "cleaning distribution..."
$(RM) octave-core *.m $(RM) octave-core *_example.m
$(RM) configure config.h config.h.in config.h.in~ config.log config.status $(RM) configure config.h config.h.in config.h.in~ config.log config.status
$(RM) -r autom4te.cache $(RM) -r autom4te.cache
$(RM) aclocal.m4 $(RM) aclocal.m4

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.