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__
/* Support AVX (Advanced Vector Extensions) instructions */
#define HAVE_AVX 1
/* Define to 1 to support Advanced Bit Manipulation */
#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 HAVE_CARGF 1
@ -27,9 +76,6 @@
/* Define to 1 if you have the `crealf' function. */
#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 HAVE_EXPF 1
@ -42,15 +88,18 @@
/* Define to 1 if you have the <float.h> header file. */
#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 HAVE_FREE 1
/* Define to 1 if you have the <getopt.h> header file. */
#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 HAVE_INTTYPES_H 1
@ -75,49 +124,52 @@
/* Define to 1 if you have the `memmove' function. */
#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 HAVE_MEMSET 1
/* Define to 1 if you have the <mmintrin.h> header file. */
#define HAVE_MMINTRIN_H 1
/* Support MMX instructions */
/* Define to 1 to support Multimedia Extensions */
#define HAVE_MMX 1
/* Define to 1 if you have the <pmmintrin.h> header file. */
#define HAVE_PMMINTRIN_H 1
/* Define to 1 to support Memory Protection Extensions */
/* #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 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 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 HAVE_SQRTF 1
/* Support SSE (Streaming SIMD Extensions) instructions */
/* Define to 1 to support Streaming SIMD Extensions */
#define HAVE_SSE 1
/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
/* Define to 1 to support Streaming SIMD Extensions */
#define HAVE_SSE2 1
/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
/* Define to 1 to support Streaming SIMD Extensions 3 */
#define HAVE_SSE3 1
/* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */
#define HAVE_SSE41 1
/* Define to 1 to support Streaming SIMD Extensions 4.1 */
#define HAVE_SSE4_1 1
/* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */
#define HAVE_SSE42 1
/* Define to 1 to support Streaming SIMD Extensions 4.2 */
#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 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 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 HAVE_UNISTD_H 1
/* Define to 1 if you have the <xmmintrin.h> header file. */
#define HAVE_XMMINTRIN_H 1
/* Support VSX instructions */
/* #undef HAVE_VSX */
/* Define to 1 to support eXtended Operations Extensions */
/* #undef HAVE_XOP */
/* Force internal FFT even if libfftw is available */
#define LIQUID_FFTOVERRIDE 1
#undef LIQUID_FFTOVERRIDE
/* Force overriding of SIMD (use portable C code) */
/* #undef LIQUID_SIMDOVERRIDE */
@ -172,7 +224,7 @@
#define PACKAGE_NAME "liquid-dsp"
/* 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 PACKAGE_TARNAME "liquid-dsp"
@ -181,7 +233,7 @@
#define PACKAGE_URL ""
/* 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. */
#define SIZEOF_INT 4
@ -195,7 +247,9 @@
/* The size of `short int', as computed by sizeof. */
#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 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
NAME := liquid-dsp
VERSION := 1.4.0
VERSION := 1.5
BUGREPORT := joseph@liquidsdr.org
AR_LIB := a
SH_LIB := dll
# paths
prefix := /usr/local
@ -68,11 +70,11 @@ RANLIB := ranlib
# flags
INCLUDE_CFLAGS = $(addprefix -I,$(include_dirs))
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}
CPPFLAGS = $(INCLUDE_CFLAGS)
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations
CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage
LDFLAGS =
#MINGW:
LIBS = -lmsvcrt
@ -110,9 +112,12 @@ agc_objects = \
src/agc/src/agc_crcf.o \
src/agc/src/agc_rrrf.o \
agc_prototypes := \
src/agc/src/agc.proto.c \
# explicit targets and dependencies
src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers)
src/agc/src/agc_rrrf.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 $(include_headers) $(agc_prototypes)
# autotests
agc_autotests := \
@ -148,22 +153,20 @@ buffer_objects := \
src/buffer/src/bufferf.o \
src/buffer/src/buffercf.o \
buffer_includes := \
src/buffer/src/cbuffer.c \
src/buffer/src/wdelay.c \
src/buffer/src/window.c \
# src/buffer/src/buffer.proto.c
buffer_prototypes := \
src/buffer/src/cbuffer.proto.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/buffercf.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)
buffer_autotests := \
src/buffer/tests/cbuffer_autotest.c \
src/buffer/tests/wdelay_autotest.c \
src/buffer/tests/window_autotest.c \
# src/buffer/tests/sbuffer_autotest.c
buffer_benchmarks := \
src/buffer/bench/cbuffercf_benchmark.c \
@ -177,13 +180,15 @@ buffer_benchmarks := \
channel_objects := \
src/channel/src/channel_cccf.o \
channel_includes := \
src/channel/src/channel.c \
src/channel/src/tvmpch.c \
channel_prototypes := \
src/channel/src/channel.proto.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 := \
src/channel/tests/channel_copy_autotest.c \
src/channel/tests/tvmpch_copy_autotest.c \
#src/channel/tests/channel_cccf_autotest.c
@ -195,11 +200,11 @@ channel_benchmarks := \
# MODULE : dotprod
#
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_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c
src/dotprod/src/dotprod_rrrf.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.proto.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)
# specific machine architectures
@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers)
# SSE4.1/2
src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers)
# AVX
src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers)
# ARM Neon
src/dotprod/src/dotprod_rrrf.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_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
@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers)
fec_autotests := \
src/fec/tests/crc_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_golay2412_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_secded7264_autotest.c \
src/fec/tests/interleaver_autotest.c \
src/fec/tests/packetizer_copy_autotest.c \
src/fec/tests/packetizer_autotest.c \
@ -332,26 +345,27 @@ fft_objects := \
src/fft/src/fft_utilities.o \
# explicit targets and dependencies
fft_includes := \
src/fft/src/fft_common.c \
src/fft/src/fft_dft.c \
src/fft/src/fft_radix2.c \
src/fft/src/fft_mixed_radix.c \
src/fft/src/fft_rader.c \
src/fft/src/fft_rader2.c \
src/fft/src/fft_r2r_1d.c \
fft_prototypes := \
src/fft/src/fft_common.proto.c \
src/fft/src/fft_dft.proto.c \
src/fft/src/fft_radix2.proto.c \
src/fft/src/fft_mixed_radix.proto.c \
src/fft/src/fft_rader.proto.c \
src/fft/src/fft_rader2.proto.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/dct.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/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/spgramf.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.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
# fft autotest scripts
fft_autotests := \
src/fft/tests/asgram_autotest.c \
src/fft/tests/fft_small_autotest.c \
src/fft/tests/fft_radix2_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_radix2_benchmark.c \
src/fft/bench/fft_r2r_benchmark.c \
src/fft/bench/spgramcf_benchmark.c \
# additional benchmark objects
benchmark_extra_obj := \
@ -427,6 +442,7 @@ filter_objects := \
src/filter/src/filter_cccf.o \
src/filter/src/firdes.o \
src/filter/src/firdespm.o \
src/filter/src/firdespm_halfband.o \
src/filter/src/fnyquist.o \
src/filter/src/gmsk.o \
src/filter/src/group_delay.o \
@ -440,29 +456,29 @@ filter_objects := \
# list explicit targets and dependencies here
filter_includes := \
src/filter/src/autocorr.c \
src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \
src/filter/src/firfilt.c \
src/filter/src/firhilb.c \
src/filter/src/firinterp.c \
src/filter/src/firpfb.c \
src/filter/src/iirdecim.c \
src/filter/src/iirfilt.c \
src/filter/src/iirfiltsos.c \
src/filter/src/iirhilb.c \
src/filter/src/iirinterp.c \
src/filter/src/msresamp.c \
src/filter/src/msresamp2.c \
src/filter/src/ordfilt.c \
src/filter/src/rresamp.c \
src/filter/src/resamp.fixed.c \
src/filter/src/resamp2.c \
src/filter/src/symsync.c \
filter_prototypes := \
src/filter/src/autocorr.proto.c \
src/filter/src/dds.proto.c \
src/filter/src/fdelay.proto.c \
src/filter/src/fftfilt.proto.c \
src/filter/src/firdecim.proto.c \
src/filter/src/firfarrow.proto.c \
src/filter/src/firfilt.proto.c \
src/filter/src/firhilb.proto.c \
src/filter/src/firinterp.proto.c \
src/filter/src/firpfb.proto.c \
src/filter/src/iirdecim.proto.c \
src/filter/src/iirfilt.proto.c \
src/filter/src/iirfiltsos.proto.c \
src/filter/src/iirhilb.proto.c \
src/filter/src/iirinterp.proto.c \
src/filter/src/msresamp.proto.c \
src/filter/src/msresamp2.proto.c \
src/filter/src/ordfilt.proto.c \
src/filter/src/rresamp.proto.c \
src/filter/src/resamp.fixed.proto.c \
src/filter/src/resamp2.proto.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)
@ -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/cheby2.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_crcf.o : %.o : %.c $(include_headers) $(filter_includes)
src/filter/src/filter_cccf.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_prototypes)
src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/firdes.o : %.o : %.c $(include_headers)
src/filter/src/firdespm.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 := \
src/filter/tests/dds_cccf_autotest.c \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_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/firdes_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_coefficients_autotest.c \
src/filter/tests/firfilt_rnyquist_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/firinterp_autotest.c \
src/filter/tests/firpfb_autotest.c \
src/filter/tests/groupdelay_autotest.c \
src/filter/tests/iirdecim_autotest.c \
src/filter/tests/iirdes_autotest.c \
src/filter/tests/iirdes_support_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/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_partition_autotest.c \
src/filter/tests/resamp_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_rrrf_autotest.c \
@ -638,10 +665,10 @@ framing_objects := \
src/framing/src/bpacketgen.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/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.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.proto.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.proto.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.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/flexframegen.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/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/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c
src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.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.proto.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c
framing_autotests := \
src/framing/tests/bpacketsync_autotest.c \
src/framing/tests/bsync_autotest.c \
src/framing/tests/detector_autotest.c \
src/framing/tests/dsssframesync_autotest.c \
src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/msource_autotest.c \
src/framing/tests/ofdmflexframe_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/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/symstreamrcf_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \
@ -708,15 +741,15 @@ math_objects := \
src/math/src/windows.o \
poly_includes := \
src/math/src/poly.common.c \
src/math/src/poly.expand.c \
src/math/src/poly.lagrange.c \
poly_prototypes := \
src/math/src/poly.common.proto.c \
src/math/src/poly.expand.proto.c \
src/math/src/poly.lagrange.proto.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polycf.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_prototypes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/math.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)
@ -757,24 +790,24 @@ matrix_objects := \
src/matrix/src/smatrixi.o \
matrix_includes := \
src/matrix/src/matrix.base.c \
src/matrix/src/matrix.cgsolve.c \
src/matrix/src/matrix.chol.c \
src/matrix/src/matrix.gramschmidt.c \
src/matrix/src/matrix.inv.c \
src/matrix/src/matrix.linsolve.c \
src/matrix/src/matrix.ludecomp.c \
src/matrix/src/matrix.qrdecomp.c \
src/matrix/src/matrix.math.c \
matrix_prototypes := \
src/matrix/src/matrix.base.proto.c \
src/matrix/src/matrix.cgsolve.proto.c \
src/matrix/src/matrix.chol.proto.c \
src/matrix/src/matrix.gramschmidt.proto.c \
src/matrix/src/matrix.inv.proto.c \
src/matrix/src/matrix.linsolve.proto.c \
src/matrix/src/matrix.ludecomp.proto.c \
src/matrix/src/matrix.qrdecomp.proto.c \
src/matrix/src/matrix.math.proto.c \
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
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.proto.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
# matrix autotest scripts
@ -835,26 +868,26 @@ modem_objects := \
src/modem/src/modem_arb_const.o \
# explicit targets and dependencies
modem_includes := \
src/modem/src/freqdem.c \
src/modem/src/freqmod.c \
src/modem/src/modem_common.c \
src/modem/src/modem_psk.c \
src/modem/src/modem_dpsk.c \
src/modem/src/modem_ask.c \
src/modem/src/modem_qam.c \
src/modem/src/modem_apsk.c \
src/modem/src/modem_bpsk.c \
src/modem/src/modem_qpsk.c \
src/modem/src/modem_ook.c \
src/modem/src/modem_pi4dqpsk.c \
src/modem/src/modem_sqam32.c \
src/modem/src/modem_sqam128.c \
src/modem/src/modem_arb.c \
modem_prototypes := \
src/modem/src/freqdem.proto.c \
src/modem/src/freqmod.proto.c \
src/modem/src/modem_common.proto.c \
src/modem/src/modem_psk.proto.c \
src/modem/src/modem_dpsk.proto.c \
src/modem/src/modem_ask.proto.c \
src/modem/src/modem_qam.proto.c \
src/modem/src/modem_apsk.proto.c \
src/modem/src/modem_bpsk.proto.c \
src/modem/src/modem_qpsk.proto.c \
src/modem/src/modem_ook.proto.c \
src/modem/src/modem_pi4dqpsk.proto.c \
src/modem/src/modem_sqam32.proto.c \
src/modem/src/modem_sqam128.proto.c \
src/modem/src/modem_arb.proto.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/gmskmod.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/freqmodem_autotest.c \
src/modem/tests/fskmodem_autotest.c \
src/modem/tests/gmskmodem_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_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
@ -900,13 +935,13 @@ multichannel_objects := \
$(multichannel_objects) : %.o : %.c $(include_headers)
# list explicit targets and dependencies here
multichannel_includes := \
src/multichannel/src/firpfbch.c \
src/multichannel/src/firpfbch2.c \
src/multichannel/src/firpfbchr.c \
multichannel_prototypes := \
src/multichannel/src/firpfbch.proto.c \
src/multichannel/src/firpfbch2.proto.c \
src/multichannel/src/firpfbchr.proto.c \
src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes)
src/multichannel/src/firpfbch_cccf.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_prototypes)
# autotests
multichannel_autotests := \
@ -930,16 +965,18 @@ multichannel_benchmarks := \
nco_objects := \
src/nco/src/nco_crcf.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/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests
nco_autotests := \
src/nco/tests/nco_crcf_copy_autotest.c \
src/nco/tests/nco_crcf_frequency_autotest.c \
src/nco/tests/nco_crcf_mix_autotest.c \
src/nco/tests/nco_crcf_phase_autotest.c \
@ -968,6 +1005,7 @@ optim_objects := \
src/optim/src/gradsearch.o \
src/optim/src/optim.common.o \
src/optim/src/qnsearch.o \
src/optim/src/qs1dsearch.o \
src/optim/src/utilities.o \
$(optim_objects) : %.o : %.c $(include_headers)
@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers)
# autotests
optim_autotests := \
src/optim/tests/gradsearch_autotest.c \
src/optim/tests/qs1dsearch_autotest.c \
# benchmarks
optim_benchmarks :=
@ -990,10 +1029,12 @@ quantization_objects := \
src/quantization/src/quantizerf.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/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c
src/quantization/src/quantizerf.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) $(quantization_prototypes)
src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers)
@ -1066,6 +1107,7 @@ sequence_benchmarks := \
utility_objects := \
src/utility/src/bshift_array.o \
src/utility/src/byte_utilities.o \
src/utility/src/memory.o \
src/utility/src/msb_index.o \
src/utility/src/pack_bytes.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 \
# portable builds
src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c
src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c
src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c
src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c
src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c
src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c
src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c
src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.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.proto.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.proto.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.proto.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.proto.c
# builds for specific architectures
# ...
@ -1202,10 +1244,9 @@ benchmark_sources := \
##
.PHONY: all
# Shared library
ARCHIVE_LIB = libliquid.a
#MINGW:
SHARED_LIB = libliquid.dll
# Shared library targets
ARCHIVE_LIB = libliquid.${AR_LIB}
SHARED_LIB = libliquid.${SH_LIB}
#
# darwin
@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB}
## 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:
@echo "Targets for liquid-dsp makefile:"
@$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /'
@ -1249,11 +1290,13 @@ help:
install: all
@echo "installing..."
@echo ""
mkdir -p $(DESTDIR)$(prefix)/include
mkdir -p $(DESTDIR)$(prefix)/include/liquid
mkdir -p $(DESTDIR)$(libdir)
install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir)
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid
install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
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 " liquid-dsp was successfully installed. "
@ -1272,11 +1315,14 @@ install: all
## TARGET : uninstall - uninstalls the libraries and header files in the host system
##
#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
uninstall:
@echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
$(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB}
$(RM) $(DESTDIR)$(libdir)/${SHARED_LIB}
$(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h
$(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
@echo "done."
##
@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers)
# autotest objects
# 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
autotest_obj = $(patsubst %.c,%.o,$(autotest_sources))
$(autotest_obj) : %.o : %.c $(include_headers)
$(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
$(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# 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 $@
# link the autotest program with the objects
# 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)
# run the autotest program
@ -1343,10 +1382,12 @@ test: check
# clean the generated files
clean-check:
$(RM) autotest_include.h $(autotest_prog).o $(autotest_prog)
$(RM) autotest/autotestlib.o
$(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj)
$(RM) autotest/autotest.o
$(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
@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers)
# benchmark objects
# 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
benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources))
$(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_prog) -o benchmark.json
# benchmark compare script
scripts/benchmark_compare : % : %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
# fftbench program
bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB}
# clean up the generated files
clean-bench:
$(RM) benchmark_include.h $(bench_prog).o $(bench_prog)
$(RM) scripts/benchmark_compare
$(RM) $(benchmark_obj)
$(RM) $(benchmark_extra_obj)
$(RM) bench/fftbench.o
@ -1504,11 +1540,14 @@ example_programs := \
examples/firfarrow_rrrf_example \
examples/firfilt_cccf_example \
examples/firfilt_cccf_notch_example \
examples/firfilt_crcf_copy_example \
examples/firfilt_crcf_example \
examples/firfilt_crcf_dcblocker_example \
examples/firfilt_rrrf_example \
examples/firdes_doppler_example \
examples/firdes_kaiser_example \
examples/firdespm_callback_example \
examples/firdespm_halfband_example \
examples/firdespm_example \
examples/firdespm_lowpass_example \
examples/firhilb_example \
@ -1525,6 +1564,7 @@ example_programs := \
examples/firinterp_rrrf_window_example \
examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_msource_example \
examples/firpfbch_crcf_synthesis_example \
examples/flexframesync_example \
examples/flexframesync_reconfig_example \
@ -1595,6 +1635,7 @@ example_programs := \
examples/qpacketmodem_example \
examples/qpilotsync_example \
examples/qnsearch_example \
examples/qs1dsearch_example \
examples/quantize_example \
examples/random_histogram_example \
examples/repack_bytes_example \
@ -1704,6 +1745,7 @@ sandbox_programs = \
sandbox/firdes_gmskrx_test \
sandbox/firdes_group_delay_test \
sandbox/firdes_length_test \
sandbox/firdespm_halfband_test \
sandbox/firfarrow_rrrf_test \
sandbox/firfilt_dcblocker_test \
sandbox/firpfbch_analysis_alignment_test \
@ -1751,6 +1793,7 @@ sandbox_programs = \
sandbox/resamp2_crcf_filterbank_test \
sandbox/resamp2_crcf_interp_recreate_test \
sandbox/reverse_byte_gentab \
sandbox/rhamming_test \
sandbox/rkaiser2_test \
sandbox/shadowing_test \
sandbox/simplex_test \
@ -1783,6 +1826,23 @@ clean-sandbox:
$(RM) sandbox/*.o
$(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
##
@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle
distclean: clean
@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) -r autom4te.cache
$(RM) aclocal.m4

View File

@ -43,8 +43,10 @@
# autoconf initialization macros
NAME := liquid-dsp
VERSION := 1.4.0
VERSION := 1.5
BUGREPORT := joseph@liquidsdr.org
AR_LIB := a
SH_LIB := dll
# paths
prefix := /usr/local
@ -71,8 +73,8 @@ COVERAGE_FLAGS = # dynamic library linker needs separate flag
#MINGW: optimizations goes here, use SSSE42 for 64bit
CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math ${COVERAGE_FLAGS}
CPPFLAGS = $(INCLUDE_CFLAGS)
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-return-type-c-linkage
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-deprecated -Wno-deprecated-declarations
CXXFLAGS = $(CFLAGS) -std=c++14 -Wno-return-type-c-linkage
LDFLAGS =
#MINGW:
LIBS = -lmsvcrt
@ -110,9 +112,12 @@ agc_objects = \
src/agc/src/agc_crcf.o \
src/agc/src/agc_rrrf.o \
agc_prototypes := \
src/agc/src/agc.proto.c \
# explicit targets and dependencies
src/agc/src/agc_crcf.o : %.o : %.c src/agc/src/agc.c $(include_headers)
src/agc/src/agc_rrrf.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 $(include_headers) $(agc_prototypes)
# autotests
agc_autotests := \
@ -148,22 +153,20 @@ buffer_objects := \
src/buffer/src/bufferf.o \
src/buffer/src/buffercf.o \
buffer_includes := \
src/buffer/src/cbuffer.c \
src/buffer/src/wdelay.c \
src/buffer/src/window.c \
# src/buffer/src/buffer.proto.c
buffer_prototypes := \
src/buffer/src/cbuffer.proto.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/buffercf.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)
buffer_autotests := \
src/buffer/tests/cbuffer_autotest.c \
src/buffer/tests/wdelay_autotest.c \
src/buffer/tests/window_autotest.c \
# src/buffer/tests/sbuffer_autotest.c
buffer_benchmarks := \
src/buffer/bench/cbuffercf_benchmark.c \
@ -177,13 +180,15 @@ buffer_benchmarks := \
channel_objects := \
src/channel/src/channel_cccf.o \
channel_includes := \
src/channel/src/channel.c \
src/channel/src/tvmpch.c \
channel_prototypes := \
src/channel/src/channel.proto.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 := \
src/channel/tests/channel_copy_autotest.c \
src/channel/tests/tvmpch_copy_autotest.c \
#src/channel/tests/channel_cccf_autotest.c
@ -195,11 +200,11 @@ channel_benchmarks := \
# MODULE : dotprod
#
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_crcf.o : %.o : %.c $(include_headers) src/dotprod/src/dotprod.c
src/dotprod/src/dotprod_rrrf.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.proto.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)
# specific machine architectures
@ -217,6 +222,9 @@ src/dotprod/src/sumsq.mmx.o : %.o : %.c $(include_headers)
# SSE4.1/2
src/dotprod/src/dotprod_rrrf.sse4.o : %.o : %.c $(include_headers)
# AVX
src/dotprod/src/sumsq.avx.o : %.o : %.c $(include_headers)
# ARM Neon
src/dotprod/src/dotprod_rrrf.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_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
@ -294,6 +305,7 @@ $(fec_objects) : %.o : %.c $(include_headers)
fec_autotests := \
src/fec/tests/crc_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_golay2412_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_secded7264_autotest.c \
src/fec/tests/interleaver_autotest.c \
src/fec/tests/packetizer_copy_autotest.c \
src/fec/tests/packetizer_autotest.c \
@ -332,26 +345,27 @@ fft_objects := \
src/fft/src/fft_utilities.o \
# explicit targets and dependencies
fft_includes := \
src/fft/src/fft_common.c \
src/fft/src/fft_dft.c \
src/fft/src/fft_radix2.c \
src/fft/src/fft_mixed_radix.c \
src/fft/src/fft_rader.c \
src/fft/src/fft_rader2.c \
src/fft/src/fft_r2r_1d.c \
fft_prototypes := \
src/fft/src/fft_common.proto.c \
src/fft/src/fft_dft.proto.c \
src/fft/src/fft_radix2.proto.c \
src/fft/src/fft_mixed_radix.proto.c \
src/fft/src/fft_rader.proto.c \
src/fft/src/fft_rader2.proto.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/dct.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/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/spgramf.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.proto.c src/fft/src/spgram.proto.c src/fft/src/spwaterfall.proto.c
# fft autotest scripts
fft_autotests := \
src/fft/tests/asgram_autotest.c \
src/fft/tests/fft_small_autotest.c \
src/fft/tests/fft_radix2_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_radix2_benchmark.c \
src/fft/bench/fft_r2r_benchmark.c \
src/fft/bench/spgramcf_benchmark.c \
# additional benchmark objects
benchmark_extra_obj := \
@ -427,6 +442,7 @@ filter_objects := \
src/filter/src/filter_cccf.o \
src/filter/src/firdes.o \
src/filter/src/firdespm.o \
src/filter/src/firdespm_halfband.o \
src/filter/src/fnyquist.o \
src/filter/src/gmsk.o \
src/filter/src/group_delay.o \
@ -440,29 +456,29 @@ filter_objects := \
# list explicit targets and dependencies here
filter_includes := \
src/filter/src/autocorr.c \
src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \
src/filter/src/firfilt.c \
src/filter/src/firhilb.c \
src/filter/src/firinterp.c \
src/filter/src/firpfb.c \
src/filter/src/iirdecim.c \
src/filter/src/iirfilt.c \
src/filter/src/iirfiltsos.c \
src/filter/src/iirhilb.c \
src/filter/src/iirinterp.c \
src/filter/src/msresamp.c \
src/filter/src/msresamp2.c \
src/filter/src/ordfilt.c \
src/filter/src/rresamp.c \
src/filter/src/resamp.fixed.c \
src/filter/src/resamp2.c \
src/filter/src/symsync.c \
filter_prototypes := \
src/filter/src/autocorr.proto.c \
src/filter/src/dds.proto.c \
src/filter/src/fdelay.proto.c \
src/filter/src/fftfilt.proto.c \
src/filter/src/firdecim.proto.c \
src/filter/src/firfarrow.proto.c \
src/filter/src/firfilt.proto.c \
src/filter/src/firhilb.proto.c \
src/filter/src/firinterp.proto.c \
src/filter/src/firpfb.proto.c \
src/filter/src/iirdecim.proto.c \
src/filter/src/iirfilt.proto.c \
src/filter/src/iirfiltsos.proto.c \
src/filter/src/iirhilb.proto.c \
src/filter/src/iirinterp.proto.c \
src/filter/src/msresamp.proto.c \
src/filter/src/msresamp2.proto.c \
src/filter/src/ordfilt.proto.c \
src/filter/src/rresamp.proto.c \
src/filter/src/resamp.fixed.proto.c \
src/filter/src/resamp2.proto.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)
@ -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/cheby2.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_crcf.o : %.o : %.c $(include_headers) $(filter_includes)
src/filter/src/filter_cccf.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_prototypes)
src/filter/src/filter_cccf.o : %.o : %.c $(include_headers) $(filter_prototypes)
src/filter/src/firdes.o : %.o : %.c $(include_headers)
src/filter/src/firdespm.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 := \
src/filter/tests/dds_cccf_autotest.c \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_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/firdes_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_coefficients_autotest.c \
src/filter/tests/firfilt_rnyquist_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/firinterp_autotest.c \
src/filter/tests/firpfb_autotest.c \
src/filter/tests/groupdelay_autotest.c \
src/filter/tests/iirdecim_autotest.c \
src/filter/tests/iirdes_autotest.c \
src/filter/tests/iirdes_support_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/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_partition_autotest.c \
src/filter/tests/resamp_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_rrrf_autotest.c \
@ -638,10 +665,10 @@ framing_objects := \
src/framing/src/bpacketgen.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/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.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.proto.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.proto.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.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/flexframegen.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/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/symstreamcf.o : %.o : %.c $(include_headers) src/framing/src/symstream.c
src/framing/src/symstreamrcf.o : %.o : %.c $(include_headers) src/framing/src/symstreamr.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.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.proto.c
src/framing/src/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.proto.c
framing_autotests := \
src/framing/tests/bpacketsync_autotest.c \
src/framing/tests/bsync_autotest.c \
src/framing/tests/detector_autotest.c \
src/framing/tests/dsssframesync_autotest.c \
src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/msource_autotest.c \
src/framing/tests/ofdmflexframe_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/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/symstreamrcf_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \
@ -708,15 +741,15 @@ math_objects := \
src/math/src/windows.o \
poly_includes := \
src/math/src/poly.common.c \
src/math/src/poly.expand.c \
src/math/src/poly.lagrange.c \
poly_prototypes := \
src/math/src/poly.common.proto.c \
src/math/src/poly.expand.proto.c \
src/math/src/poly.lagrange.proto.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polyc.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_includes)
src/math/src/polycf.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_prototypes)
src/math/src/polyf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/polycf.o : %.o : %.c $(include_headers) $(poly_prototypes)
src/math/src/math.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)
@ -757,24 +790,24 @@ matrix_objects := \
src/matrix/src/smatrixi.o \
matrix_includes := \
src/matrix/src/matrix.base.c \
src/matrix/src/matrix.cgsolve.c \
src/matrix/src/matrix.chol.c \
src/matrix/src/matrix.gramschmidt.c \
src/matrix/src/matrix.inv.c \
src/matrix/src/matrix.linsolve.c \
src/matrix/src/matrix.ludecomp.c \
src/matrix/src/matrix.qrdecomp.c \
src/matrix/src/matrix.math.c \
matrix_prototypes := \
src/matrix/src/matrix.base.proto.c \
src/matrix/src/matrix.cgsolve.proto.c \
src/matrix/src/matrix.chol.proto.c \
src/matrix/src/matrix.gramschmidt.proto.c \
src/matrix/src/matrix.inv.proto.c \
src/matrix/src/matrix.linsolve.proto.c \
src/matrix/src/matrix.ludecomp.proto.c \
src/matrix/src/matrix.qrdecomp.proto.c \
src/matrix/src/matrix.math.proto.c \
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_includes)
src/matrix/src/smatrixb.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/smatrixf.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.c
src/matrix/src/matrix.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixc.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
src/matrix/src/matrixcf.o : %.o : %.c $(include_headers) $(matrix_prototypes)
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.proto.c
src/matrix/src/smatrixi.o : %.o : %.c $(include_headers) src/matrix/src/smatrix.proto.c
# matrix autotest scripts
@ -835,26 +868,26 @@ modem_objects := \
src/modem/src/modem_arb_const.o \
# explicit targets and dependencies
modem_includes := \
src/modem/src/freqdem.c \
src/modem/src/freqmod.c \
src/modem/src/modem_common.c \
src/modem/src/modem_psk.c \
src/modem/src/modem_dpsk.c \
src/modem/src/modem_ask.c \
src/modem/src/modem_qam.c \
src/modem/src/modem_apsk.c \
src/modem/src/modem_bpsk.c \
src/modem/src/modem_qpsk.c \
src/modem/src/modem_ook.c \
src/modem/src/modem_pi4dqpsk.c \
src/modem/src/modem_sqam32.c \
src/modem/src/modem_sqam128.c \
src/modem/src/modem_arb.c \
modem_prototypes := \
src/modem/src/freqdem.proto.c \
src/modem/src/freqmod.proto.c \
src/modem/src/modem_common.proto.c \
src/modem/src/modem_psk.proto.c \
src/modem/src/modem_dpsk.proto.c \
src/modem/src/modem_ask.proto.c \
src/modem/src/modem_qam.proto.c \
src/modem/src/modem_apsk.proto.c \
src/modem/src/modem_bpsk.proto.c \
src/modem/src/modem_qpsk.proto.c \
src/modem/src/modem_ook.proto.c \
src/modem/src/modem_pi4dqpsk.proto.c \
src/modem/src/modem_sqam32.proto.c \
src/modem/src/modem_sqam128.proto.c \
src/modem/src/modem_arb.proto.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/gmskmod.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/freqmodem_autotest.c \
src/modem/tests/fskmodem_autotest.c \
src/modem/tests/gmskmodem_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_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
@ -900,13 +935,13 @@ multichannel_objects := \
$(multichannel_objects) : %.o : %.c $(include_headers)
# list explicit targets and dependencies here
multichannel_includes := \
src/multichannel/src/firpfbch.c \
src/multichannel/src/firpfbch2.c \
src/multichannel/src/firpfbchr.c \
multichannel_prototypes := \
src/multichannel/src/firpfbch.proto.c \
src/multichannel/src/firpfbch2.proto.c \
src/multichannel/src/firpfbchr.proto.c \
src/multichannel/src/firpfbch_crcf.o : %.o : %.c $(include_headers) $(multichannel_includes)
src/multichannel/src/firpfbch_cccf.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_prototypes)
# autotests
multichannel_autotests := \
@ -930,16 +965,18 @@ multichannel_benchmarks := \
nco_objects := \
src/nco/src/nco_crcf.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/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests
nco_autotests := \
src/nco/tests/nco_crcf_copy_autotest.c \
src/nco/tests/nco_crcf_frequency_autotest.c \
src/nco/tests/nco_crcf_mix_autotest.c \
src/nco/tests/nco_crcf_phase_autotest.c \
@ -968,6 +1005,7 @@ optim_objects := \
src/optim/src/gradsearch.o \
src/optim/src/optim.common.o \
src/optim/src/qnsearch.o \
src/optim/src/qs1dsearch.o \
src/optim/src/utilities.o \
$(optim_objects) : %.o : %.c $(include_headers)
@ -975,6 +1013,7 @@ $(optim_objects) : %.o : %.c $(include_headers)
# autotests
optim_autotests := \
src/optim/tests/gradsearch_autotest.c \
src/optim/tests/qs1dsearch_autotest.c \
# benchmarks
optim_benchmarks :=
@ -990,10 +1029,12 @@ quantization_objects := \
src/quantization/src/quantizerf.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/quantizercf.o : %.o : %.c $(include_headers) src/quantization/src/quantizer.c
src/quantization/src/quantizerf.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) $(quantization_prototypes)
src/quantization/src/quantizer.inline.o : %.o : %.c $(include_headers)
@ -1066,6 +1107,7 @@ sequence_benchmarks := \
utility_objects := \
src/utility/src/bshift_array.o \
src/utility/src/byte_utilities.o \
src/utility/src/memory.o \
src/utility/src/msb_index.o \
src/utility/src/pack_bytes.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 \
# portable builds
src/vector/src/vectorf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c
src/vector/src/vectorf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c
src/vector/src/vectorf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c
src/vector/src/vectorf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.c
src/vector/src/vectorcf_add.port.o : %.o : %.c $(include_headers) src/vector/src/vector_add.c
src/vector/src/vectorcf_norm.port.o : %.o : %.c $(include_headers) src/vector/src/vector_norm.c
src/vector/src/vectorcf_mul.port.o : %.o : %.c $(include_headers) src/vector/src/vector_mul.c
src/vector/src/vectorcf_trig.port.o : %.o : %.c $(include_headers) src/vector/src/vector_trig.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.proto.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.proto.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.proto.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.proto.c
# builds for specific architectures
# ...
@ -1202,10 +1244,9 @@ benchmark_sources := \
##
.PHONY: all
# Shared library
ARCHIVE_LIB = libliquid.a
#MINGW:
SHARED_LIB = libliquid.dll
# Shared library targets
ARCHIVE_LIB = libliquid.${AR_LIB}
SHARED_LIB = libliquid.${SH_LIB}
#
# darwin
@ -1237,7 +1278,7 @@ all: ${ARCHIVE_LIB} ${SHARED_LIB}
## 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:
@echo "Targets for liquid-dsp makefile:"
@$(GREP) -E "^## TARGET : " [Mm]akefile | $(SED) 's/## TARGET : / /'
@ -1249,11 +1290,13 @@ help:
install: all
@echo "installing..."
@echo ""
mkdir -p $(DESTDIR)$(prefix)/include
mkdir -p $(DESTDIR)$(prefix)/include/liquid
mkdir -p $(DESTDIR)$(libdir)
install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(libdir)
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid
install -m 644 -p libliquid.${AR_LIB} $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
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 " liquid-dsp was successfully installed. "
@ -1272,11 +1315,14 @@ install: all
## TARGET : uninstall - uninstalls the libraries and header files in the host system
##
#$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
uninstall:
@echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
$(RM) $(DESTDIR)$(libdir)/${ARCHIVE_LIB}
$(RM) $(DESTDIR)$(libdir)/${SHARED_LIB}
$(RM) $(DESTDIR)$(prefix)/include/liquid/liquid.h
$(RM) $(DESTDIR)$(libdir)/libliquid.${AR_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.${VERSION}
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}.1
$(RM) $(DESTDIR)$(libdir)/libliquid.${SH_LIB}
@echo "done."
##
@ -1311,26 +1357,19 @@ autotest_include.h : scripts/autoscript $(autotest_sources) $(include_headers)
# autotest objects
# 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
autotest_obj = $(patsubst %.c,%.o,$(autotest_sources))
$(autotest_obj) : %.o : %.c $(include_headers)
$(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
$(autotest_obj) $(autotest_extra_obj) autotest/autotest.o : %.o : %.c $(include_headers) autotest/autotest.h
$(CC) $(CPPFLAGS) $(CFLAGS) $< -c -o $@
# 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 $@
# link the autotest program with the objects
# 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)
# run the autotest program
@ -1343,10 +1382,12 @@ test: check
# clean the generated files
clean-check:
$(RM) autotest_include.h $(autotest_prog).o $(autotest_prog)
$(RM) autotest/autotestlib.o
$(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj)
$(RM) autotest/autotest.o
$(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
@ -1414,7 +1455,7 @@ benchmark_include.h : scripts/autoscript $(benchmark_sources) $(include_headers)
# benchmark objects
# 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
benchmark_obj = $(patsubst %.c,%.o,$(benchmark_sources))
$(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_prog) -o benchmark.json
# benchmark compare script
scripts/benchmark_compare : % : %.c
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
# fftbench program
bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
@ -1450,7 +1487,6 @@ bench/fftbench : % : %.o ${ARCHIVE_LIB}
# clean up the generated files
clean-bench:
$(RM) benchmark_include.h $(bench_prog).o $(bench_prog)
$(RM) scripts/benchmark_compare
$(RM) $(benchmark_obj)
$(RM) $(benchmark_extra_obj)
$(RM) bench/fftbench.o
@ -1504,11 +1540,14 @@ example_programs := \
examples/firfarrow_rrrf_example \
examples/firfilt_cccf_example \
examples/firfilt_cccf_notch_example \
examples/firfilt_crcf_copy_example \
examples/firfilt_crcf_example \
examples/firfilt_crcf_dcblocker_example \
examples/firfilt_rrrf_example \
examples/firdes_doppler_example \
examples/firdes_kaiser_example \
examples/firdespm_callback_example \
examples/firdespm_halfband_example \
examples/firdespm_example \
examples/firdespm_lowpass_example \
examples/firhilb_example \
@ -1525,6 +1564,7 @@ example_programs := \
examples/firinterp_rrrf_window_example \
examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_msource_example \
examples/firpfbch_crcf_synthesis_example \
examples/flexframesync_example \
examples/flexframesync_reconfig_example \
@ -1595,6 +1635,7 @@ example_programs := \
examples/qpacketmodem_example \
examples/qpilotsync_example \
examples/qnsearch_example \
examples/qs1dsearch_example \
examples/quantize_example \
examples/random_histogram_example \
examples/repack_bytes_example \
@ -1704,6 +1745,7 @@ sandbox_programs = \
sandbox/firdes_gmskrx_test \
sandbox/firdes_group_delay_test \
sandbox/firdes_length_test \
sandbox/firdespm_halfband_test \
sandbox/firfarrow_rrrf_test \
sandbox/firfilt_dcblocker_test \
sandbox/firpfbch_analysis_alignment_test \
@ -1751,6 +1793,7 @@ sandbox_programs = \
sandbox/resamp2_crcf_filterbank_test \
sandbox/resamp2_crcf_interp_recreate_test \
sandbox/reverse_byte_gentab \
sandbox/rhamming_test \
sandbox/rkaiser2_test \
sandbox/shadowing_test \
sandbox/simplex_test \
@ -1783,6 +1826,23 @@ clean-sandbox:
$(RM) sandbox/*.o
$(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
##
@ -1813,7 +1873,7 @@ clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench cle
distclean: clean
@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) -r autom4te.cache
$(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.