Updated Windows liquid-dsp binaries to master

- liquid-dsp ref: 373d440d38201bb8950f65c73b322b981355f2c9
- using GCC 10.3 (MSYS2)
This commit is contained in:
vsonnier 2021-08-14 10:06:54 +02:00
parent 29e9144aa5
commit b7ee0fb8ca
13 changed files with 3784 additions and 3535 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2007 - 2020 Joseph Gaeddert * Copyright (c) 2007 - 2021 Joseph Gaeddert
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
@ -1621,6 +1621,9 @@ unsigned int SPGRAM(_get_window_len)(SPGRAM() _q); \
/* Get delay between transforms */ \ /* Get delay between transforms */ \
unsigned int SPGRAM(_get_delay)(SPGRAM() _q); \ unsigned int SPGRAM(_get_delay)(SPGRAM() _q); \
\ \
/* Get window type used for spectral estimation */ \
int SPGRAM(_get_wtype)(SPGRAM() _q); \
\
/* Get number of samples processed since reset */ \ /* Get number of samples processed since reset */ \
unsigned long long int SPGRAM(_get_num_samples)(SPGRAM() _q); \ unsigned long long int SPGRAM(_get_num_samples)(SPGRAM() _q); \
\ \
@ -1835,6 +1838,15 @@ unsigned int SPWATERFALL(_get_num_freq)(SPWATERFALL() _q); \
/* Get number of accumulated FFTs (rows in PSD output) */ \ /* Get number of accumulated FFTs (rows in PSD output) */ \
unsigned int SPWATERFALL(_get_num_time)(SPWATERFALL() _q); \ unsigned int SPWATERFALL(_get_num_time)(SPWATERFALL() _q); \
\ \
/* Get window length used in spectral estimation */ \
unsigned int SPWATERFALL(_get_window_len)(SPWATERFALL() _q); \
\
/* Get delay between transforms used in spectral estimation */ \
unsigned int SPWATERFALL(_get_delay)(SPWATERFALL() _q); \
\
/* Get window type used in spectral estimation */ \
int SPWATERFALL(_get_wtype)(SPWATERFALL() _q); \
\
/* Get power spectral density (PSD), size: nfft x time */ \ /* Get power spectral density (PSD), size: nfft x time */ \
const T * SPWATERFALL(_get_psd)(SPWATERFALL() _q); \ const T * SPWATERFALL(_get_psd)(SPWATERFALL() _q); \
\ \
@ -2674,6 +2686,12 @@ void FIRFILT(_execute_block)(FIRFILT() _q, \
/* Get length of filter object (number of internal coefficients) */ \ /* Get length of filter object (number of internal coefficients) */ \
unsigned int FIRFILT(_get_length)(FIRFILT() _q); \ unsigned int FIRFILT(_get_length)(FIRFILT() _q); \
\ \
/* Get pointer to coefficients array */ \
/* _q : filter object */ \
/* _h : pointer to output coefficients array [size: _n x 1] */ \
int FIRFILT(_get_coefficients)(FIRFILT() _q, \
TC * _h); \
\
/* Compute complex frequency response of filter object */ \ /* Compute complex frequency response of filter object */ \
/* _q : filter object */ \ /* _q : filter object */ \
/* _fc : normalized frequency for evaluation */ \ /* _fc : normalized frequency for evaluation */ \
@ -3123,6 +3141,83 @@ LIQUID_IIRFILT_DEFINE_API(LIQUID_IIRFILT_MANGLE_CCCF,
liquid_float_complex, liquid_float_complex,
liquid_float_complex) liquid_float_complex)
//
// iirfiltsos : infinite impulse respone filter (second-order sections)
//
#define LIQUID_IIRFILTSOS_MANGLE_RRRF(name) LIQUID_CONCAT(iirfiltsos_rrrf,name)
#define LIQUID_IIRFILTSOS_MANGLE_CRCF(name) LIQUID_CONCAT(iirfiltsos_crcf,name)
#define LIQUID_IIRFILTSOS_MANGLE_CCCF(name) LIQUID_CONCAT(iirfiltsos_cccf,name)
#define LIQUID_IIRFILTSOS_DEFINE_API(IIRFILTSOS,TO,TC,TI) \
typedef struct IIRFILTSOS(_s) * IIRFILTSOS(); \
\
/* create 2nd-order infinite impulse reponse filter */ \
/* _b : feed-forward coefficients [size: _3 x 1] */ \
/* _a : feed-back coefficients [size: _3 x 1] */ \
IIRFILTSOS() IIRFILTSOS(_create)(TC * _b, \
TC * _a); \
\
/* explicitly set 2nd-order IIR filter coefficients */ \
/* _q : iirfiltsos object */ \
/* _b : feed-forward coefficients [size: _3 x 1] */ \
/* _a : feed-back coefficients [size: _3 x 1] */ \
void IIRFILTSOS(_set_coefficients)(IIRFILTSOS() _q, \
TC * _b, \
TC * _a); \
\
/* destroy iirfiltsos object, freeing all internal memory */ \
void IIRFILTSOS(_destroy)(IIRFILTSOS() _q); \
\
/* print iirfiltsos object properties to stdout */ \
void IIRFILTSOS(_print)(IIRFILTSOS() _q); \
\
/* clear/reset iirfiltsos object internals */ \
void IIRFILTSOS(_reset)(IIRFILTSOS() _q); \
\
/* compute filter output */ \
/* _q : iirfiltsos object */ \
/* _x : input sample */ \
/* _y : output sample pointer */ \
void IIRFILTSOS(_execute)(IIRFILTSOS() _q, \
TI _x, \
TO * _y); \
\
/* compute filter output, direct-form I method */ \
/* _q : iirfiltsos object */ \
/* _x : input sample */ \
/* _y : output sample pointer */ \
void IIRFILTSOS(_execute_df1)(IIRFILTSOS() _q, \
TI _x, \
TO * _y); \
\
/* compute filter output, direct-form II method */ \
/* _q : iirfiltsos object */ \
/* _x : input sample */ \
/* _y : output sample pointer */ \
void IIRFILTSOS(_execute_df2)(IIRFILTSOS() _q, \
TI _x, \
TO * _y); \
\
/* compute and return group delay of filter object */ \
/* _q : filter object */ \
/* _fc : frequency to evaluate */ \
float IIRFILTSOS(_groupdelay)(IIRFILTSOS() _q, \
float _fc); \
LIQUID_IIRFILTSOS_DEFINE_API(LIQUID_IIRFILTSOS_MANGLE_RRRF,
float,
float,
float)
LIQUID_IIRFILTSOS_DEFINE_API(LIQUID_IIRFILTSOS_MANGLE_CRCF,
liquid_float_complex,
float,
liquid_float_complex)
LIQUID_IIRFILTSOS_DEFINE_API(LIQUID_IIRFILTSOS_MANGLE_CCCF,
liquid_float_complex,
liquid_float_complex,
liquid_float_complex)
// //
// FIR Polyphase filter bank // FIR Polyphase filter bank
@ -3235,6 +3330,13 @@ void FIRPFB(_reset)(FIRPFB() _q); \
void FIRPFB(_push)(FIRPFB() _q, \ void FIRPFB(_push)(FIRPFB() _q, \
TI _x); \ TI _x); \
\ \
/* Write a block of samples into object's internal buffer */ \
/* _q : filter object */ \
/* _x : single input sample */ \
void FIRPFB(_write)(FIRPFB() _q, \
TI * _x, \
unsigned int _n); \
\
/* Execute vector dot product on the filter's internal buffer and */ \ /* Execute vector dot product on the filter's internal buffer and */ \
/* coefficients using the coefficients from sub-filter at index _i */ \ /* coefficients using the coefficients from sub-filter at index _i */ \
/* _q : firpfb object */ \ /* _q : firpfb object */ \
@ -3343,6 +3445,9 @@ void FIRINTERP(_reset)(FIRINTERP() _q); \
/* Get interpolation rate */ \ /* Get interpolation rate */ \
unsigned int FIRINTERP(_get_interp_rate)(FIRINTERP() _q); \ unsigned int FIRINTERP(_get_interp_rate)(FIRINTERP() _q); \
\ \
/* Get sub-filter length (length of each poly-phase filter) */ \
unsigned int FIRINTERP(_get_sub_len)(FIRINTERP() _q); \
\
/* Set output scaling for interpolator */ \ /* Set output scaling for interpolator */ \
/* _q : interpolator object */ \ /* _q : interpolator object */ \
/* _scale : scaling factor to apply to each output sample */ \ /* _scale : scaling factor to apply to each output sample */ \
@ -3927,6 +4032,14 @@ unsigned int RRESAMP(_get_block_len)(RRESAMP() _q); \
/* Get rate of resampler, \(r = P/Q\) */ \ /* Get rate of resampler, \(r = P/Q\) */ \
float RRESAMP(_get_rate)(RRESAMP() _q); \ float RRESAMP(_get_rate)(RRESAMP() _q); \
\ \
/* Write \(Q\) input samples (after removing greatest common divisor) */ \
/* into buffer, but do not compute output. This effectively updates the */ \
/* internal state of the resampler. */ \
/* _q : resamp object */ \
/* _buf : input sample array, [size: Q x 1] */ \
void RRESAMP(_write)(RRESAMP() _q, \
TI * _buf); \
\
/* Execute rational-rate resampler on a block of input samples and */ \ /* Execute rational-rate resampler on a block of input samples and */ \
/* store the resulting samples in the output array. */ \ /* store the resulting samples in the output array. */ \
/* Note that the size of the input and output buffers correspond to the */ \ /* Note that the size of the input and output buffers correspond to the */ \
@ -3944,6 +4057,16 @@ float RRESAMP(_get_rate)(RRESAMP() _q); \
/* _y : output sample array [size: P x 1] */ \ /* _y : output sample array [size: P x 1] */ \
void RRESAMP(_execute)(RRESAMP() _q, \ void RRESAMP(_execute)(RRESAMP() _q, \
TI * _x, \ TI * _x, \
TO * _y); \
\
/* Execute on a block of samples */ \
/* _q : resamp object */ \
/* _x : input sample array, [size: Q*n x 1] */ \
/* _n : block size */ \
/* _y : output sample array [size: P*n x 1] */ \
void RRESAMP(_execute_block)(RRESAMP() _q, \
TI * _x, \
unsigned int _n, \
TO * _y); \ TO * _y); \
LIQUID_RRESAMP_DEFINE_API(LIQUID_RRESAMP_MANGLE_RRRF, LIQUID_RRESAMP_DEFINE_API(LIQUID_RRESAMP_MANGLE_RRRF,
@ -5151,6 +5274,10 @@ int gmskframesync_is_frame_open(gmskframesync _q);
int gmskframesync_execute(gmskframesync _q, int gmskframesync_execute(gmskframesync _q,
liquid_float_complex * _x, liquid_float_complex * _x,
unsigned int _n); unsigned int _n);
// frame data statistics
int gmskframesync_reset_framedatastats(gmskframesync _q);
framedatastats_s gmskframesync_get_framedatastats (gmskframesync _q);
// debugging // debugging
int gmskframesync_debug_enable(gmskframesync _q); int gmskframesync_debug_enable(gmskframesync _q);
@ -5662,6 +5789,68 @@ int SYMSTREAM(_write_samples)(SYMSTREAM() _q, \
LIQUID_SYMSTREAM_DEFINE_API(LIQUID_SYMSTREAM_MANGLE_CFLOAT, liquid_float_complex) LIQUID_SYMSTREAM_DEFINE_API(LIQUID_SYMSTREAM_MANGLE_CFLOAT, liquid_float_complex)
//
// symbol streaming, as with symstream but arbitrary output rate
//
#define LIQUID_SYMSTREAMR_MANGLE_CFLOAT(name) LIQUID_CONCAT(symstreamrcf,name)
#define LIQUID_SYMSTREAMR_DEFINE_API(SYMSTREAMR,TO) \
\
/* Symbol streaming generator object */ \
typedef struct SYMSTREAMR(_s) * SYMSTREAMR(); \
\
/* Create symstream object with default parameters. */ \
/* This is equivalent to invoking the create_linear() method */ \
/* with _ftype=LIQUID_FIRFILT_ARKAISER, _k=2, _m=7, _beta=0.3, and */ \
/* with _ms=LIQUID_MODEM_QPSK */ \
SYMSTREAMR() SYMSTREAMR(_create)(void); \
\
/* Create symstream object with linear modulation */ \
/* _ftype : filter type (e.g. LIQUID_FIRFILT_RRC) */ \
/* _bw : relative signal bandwidth, 0.001 <= _bw <= 1.0 */ \
/* _m : filter delay (symbols), _m > 0 */ \
/* _beta : filter excess bandwidth, 0 < _beta <= 1 */ \
/* _ms : modulation scheme, e.g. LIQUID_MODEM_QPSK */ \
SYMSTREAMR() SYMSTREAMR(_create_linear)(int _ftype, \
float _bw, \
unsigned int _m, \
float _beta, \
int _ms); \
\
/* Destroy symstream object, freeing all internal memory */ \
int SYMSTREAMR(_destroy)(SYMSTREAMR() _q); \
\
/* Print symstream object's parameters */ \
int SYMSTREAMR(_print)(SYMSTREAMR() _q); \
\
/* Reset symstream internal state */ \
int SYMSTREAMR(_reset)(SYMSTREAMR() _q); \
\
/* Set internal linear modulation scheme, leaving the filter parameters */ \
/* (interpolator) unmodified */ \
int SYMSTREAMR(_set_scheme)(SYMSTREAMR() _q, \
int _ms); \
\
/* Get internal linear modulation scheme */ \
int SYMSTREAMR(_get_scheme)(SYMSTREAMR() _q); \
\
/* Set internal linear gain (before interpolation) */ \
int SYMSTREAMR(_set_gain)(SYMSTREAMR() _q, \
float _gain); \
\
/* Get internal linear gain (before interpolation) */ \
float SYMSTREAMR(_get_gain)(SYMSTREAMR() _q); \
\
/* Write block of samples to output buffer */ \
/* _q : synchronizer object */ \
/* _buf : output buffer [size: _buf_len x 1] */ \
/* _buf_len: output buffer size */ \
int SYMSTREAMR(_write_samples)(SYMSTREAMR() _q, \
TO * _buf, \
unsigned int _buf_len); \
LIQUID_SYMSTREAMR_DEFINE_API(LIQUID_SYMSTREAMR_MANGLE_CFLOAT, liquid_float_complex)
// //

View File

@ -1,4 +1,4 @@
# Copyright (c) 2007 - 2020 Joseph Gaeddert # Copyright (c) 2007 - 2021 Joseph Gaeddert
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal # of this software and associated documentation files (the "Software"), to deal
@ -72,6 +72,7 @@ COVERAGE_FLAGS = # dynamic library linker needs separate flag
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 CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-return-type-c-linkage
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS = -lmsvcrt LIBS = -lmsvcrt
@ -358,6 +359,7 @@ fft_autotests := \
src/fft/tests/fft_r2r_autotest.c \ src/fft/tests/fft_r2r_autotest.c \
src/fft/tests/fft_shift_autotest.c \ src/fft/tests/fft_shift_autotest.c \
src/fft/tests/spgram_autotest.c \ src/fft/tests/spgram_autotest.c \
src/fft/tests/spwaterfall_autotest.c \
# additional autotest objects # additional autotest objects
autotest_extra_obj += \ autotest_extra_obj += \
@ -489,6 +491,7 @@ filter_autotests := \
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_cccf_notch_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_rnyquist_autotest.c \
src/filter/tests/firfilt_xxxf_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \
src/filter/tests/firhilb_autotest.c \ src/filter/tests/firhilb_autotest.c \
@ -502,6 +505,7 @@ filter_autotests := \
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/rresamp_crcf_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/resamp_crcf_autotest.c \
src/filter/tests/resamp2_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \
src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \
@ -620,6 +624,7 @@ framing_objects := \
src/framing/src/ofdmflexframesync.o \ src/framing/src/ofdmflexframesync.o \
src/framing/src/presync_cccf.o \ src/framing/src/presync_cccf.o \
src/framing/src/symstreamcf.o \ src/framing/src/symstreamcf.o \
src/framing/src/symstreamrcf.o \
src/framing/src/symtrack_cccf.o \ src/framing/src/symtrack_cccf.o \
src/framing/src/qdetector_cccf.o \ src/framing/src/qdetector_cccf.o \
src/framing/src/qpacketmodem.o \ src/framing/src/qpacketmodem.o \
@ -650,6 +655,7 @@ 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.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.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/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c
@ -692,13 +698,13 @@ math_objects := \
src/math/src/math.complex.o \ src/math/src/math.complex.o \
src/math/src/math.trig.o \ src/math/src/math.trig.o \
src/math/src/modular_arithmetic.o \ src/math/src/modular_arithmetic.o \
src/math/src/poly.findroots.o \
src/math/src/windows.o \ src/math/src/windows.o \
poly_includes := \ poly_includes := \
src/math/src/poly.common.c \ src/math/src/poly.common.c \
src/math/src/poly.expand.c \ src/math/src/poly.expand.c \
src/math/src/poly.findroots.c \
src/math/src/poly.lagrange.c \ src/math/src/poly.lagrange.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes)
@ -716,7 +722,7 @@ src/math/src/windows.o : %.o : %.c $(include_headers)
math_autotests := \ math_autotests := \
src/math/tests/gcd_autotest.c \ src/math/tests/gcd_autotest.c \
src/math/tests/kbd_autotest.c \ src/math/tests/window_autotest.c \
src/math/tests/math_autotest.c \ src/math/tests/math_autotest.c \
src/math/tests/math_bessel_autotest.c \ src/math/tests/math_bessel_autotest.c \
src/math/tests/math_gamma_autotest.c \ src/math/tests/math_gamma_autotest.c \
@ -1349,10 +1355,10 @@ readme.cc.example.cc : README.md
${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@ ${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.cc.example.o : %.o : %.cc ${include_headers} readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CFLAGS} $< -c -o $@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
readme.cc.example : % : %.o ${ARCHIVE_LIB} readme.cc.example : % : %.o ${ARCHIVE_LIB}
${CXX} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS} ${CXX} ${CXXFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
doc-check : readme.c.example readme.cc.example ; ./readme.c.example && ./readme.cc.example doc-check : readme.c.example readme.cc.example ; ./readme.c.example && ./readme.cc.example
@ -1582,6 +1588,7 @@ example_programs := \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
examples/rresamp_crcf_example \ examples/rresamp_crcf_example \
examples/rresamp_crcf_partition_example \
examples/rresamp_crcf_rnyquist_example \ examples/rresamp_crcf_rnyquist_example \
examples/rresamp_rrrf_example \ examples/rresamp_rrrf_example \
examples/resamp_crcf_example \ examples/resamp_crcf_example \
@ -1602,6 +1609,7 @@ example_programs := \
examples/symsync_crcf_full_example \ examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \ examples/symsync_crcf_kaiser_example \
examples/symstreamcf_example \ examples/symstreamcf_example \
examples/symstreamrcf_example \
examples/symtrack_cccf_example \ examples/symtrack_cccf_example \
examples/wdelayf_example \ examples/wdelayf_example \
examples/windowf_example \ examples/windowf_example \
@ -1687,6 +1695,7 @@ sandbox_programs = \
sandbox/firpfbch_analysis_alignment_test \ sandbox/firpfbch_analysis_alignment_test \
sandbox/firpfbch2_analysis_equivalence_test \ sandbox/firpfbch2_analysis_equivalence_test \
sandbox/firpfbch2_test \ sandbox/firpfbch2_test \
sandbox/firpfbch2_flatness_test \
sandbox/firpfbch_analysis_equivalence_test \ sandbox/firpfbch_analysis_equivalence_test \
sandbox/firpfbch_synthesis_equivalence_test \ sandbox/firpfbch_synthesis_equivalence_test \
sandbox/gmskmodem_test \ sandbox/gmskmodem_test \
@ -1781,7 +1790,7 @@ clean-modules:
$(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o $(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o
$(RM) src/libliquid.o $(RM) src/libliquid.o
clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox clean-doc-check
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean) $(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
## ##

View File

@ -1,4 +1,4 @@
# Copyright (c) 2007 - 2020 Joseph Gaeddert # Copyright (c) 2007 - 2021 Joseph Gaeddert
# #
# Permission is hereby granted, free of charge, to any person obtaining a copy # Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal # of this software and associated documentation files (the "Software"), to deal
@ -72,9 +72,10 @@ COVERAGE_FLAGS = # dynamic library linker needs separate flag
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 CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
CXXFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC -Wno-return-type-c-linkage
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS = -static-libgcc LIBS = -lmsvcrt
PATHSEP = / PATHSEP = /
# #
@ -358,6 +359,7 @@ fft_autotests := \
src/fft/tests/fft_r2r_autotest.c \ src/fft/tests/fft_r2r_autotest.c \
src/fft/tests/fft_shift_autotest.c \ src/fft/tests/fft_shift_autotest.c \
src/fft/tests/spgram_autotest.c \ src/fft/tests/spgram_autotest.c \
src/fft/tests/spwaterfall_autotest.c \
# additional autotest objects # additional autotest objects
autotest_extra_obj += \ autotest_extra_obj += \
@ -489,6 +491,7 @@ filter_autotests := \
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_cccf_notch_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_rnyquist_autotest.c \
src/filter/tests/firfilt_xxxf_autotest.c \ src/filter/tests/firfilt_xxxf_autotest.c \
src/filter/tests/firhilb_autotest.c \ src/filter/tests/firhilb_autotest.c \
@ -502,6 +505,7 @@ filter_autotests := \
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/rresamp_crcf_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/resamp_crcf_autotest.c \
src/filter/tests/resamp2_crcf_autotest.c \ src/filter/tests/resamp2_crcf_autotest.c \
src/filter/tests/symsync_crcf_autotest.c \ src/filter/tests/symsync_crcf_autotest.c \
@ -620,6 +624,7 @@ framing_objects := \
src/framing/src/ofdmflexframesync.o \ src/framing/src/ofdmflexframesync.o \
src/framing/src/presync_cccf.o \ src/framing/src/presync_cccf.o \
src/framing/src/symstreamcf.o \ src/framing/src/symstreamcf.o \
src/framing/src/symstreamrcf.o \
src/framing/src/symtrack_cccf.o \ src/framing/src/symtrack_cccf.o \
src/framing/src/qdetector_cccf.o \ src/framing/src/qdetector_cccf.o \
src/framing/src/qpacketmodem.o \ src/framing/src/qpacketmodem.o \
@ -650,6 +655,7 @@ 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.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.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/symtrack_cccf.o : %.o : %.c $(include_headers) src/framing/src/symtrack.c
@ -692,13 +698,13 @@ math_objects := \
src/math/src/math.complex.o \ src/math/src/math.complex.o \
src/math/src/math.trig.o \ src/math/src/math.trig.o \
src/math/src/modular_arithmetic.o \ src/math/src/modular_arithmetic.o \
src/math/src/poly.findroots.o \
src/math/src/windows.o \ src/math/src/windows.o \
poly_includes := \ poly_includes := \
src/math/src/poly.common.c \ src/math/src/poly.common.c \
src/math/src/poly.expand.c \ src/math/src/poly.expand.c \
src/math/src/poly.findroots.c \
src/math/src/poly.lagrange.c \ src/math/src/poly.lagrange.c \
src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes) src/math/src/poly.o : %.o : %.c $(include_headers) $(poly_includes)
@ -716,7 +722,7 @@ src/math/src/windows.o : %.o : %.c $(include_headers)
math_autotests := \ math_autotests := \
src/math/tests/gcd_autotest.c \ src/math/tests/gcd_autotest.c \
src/math/tests/kbd_autotest.c \ src/math/tests/window_autotest.c \
src/math/tests/math_autotest.c \ src/math/tests/math_autotest.c \
src/math/tests/math_bessel_autotest.c \ src/math/tests/math_bessel_autotest.c \
src/math/tests/math_gamma_autotest.c \ src/math/tests/math_gamma_autotest.c \
@ -1349,10 +1355,10 @@ readme.cc.example.cc : README.md
${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@ ${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.cc.example.o : %.o : %.cc ${include_headers} readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CFLAGS} $< -c -o $@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
readme.cc.example : % : %.o ${ARCHIVE_LIB} readme.cc.example : % : %.o ${ARCHIVE_LIB}
${CXX} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS} ${CXX} ${CXXFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
doc-check : readme.c.example readme.cc.example ; ./readme.c.example && ./readme.cc.example doc-check : readme.c.example readme.cc.example ; ./readme.c.example && ./readme.cc.example
@ -1582,6 +1588,7 @@ example_programs := \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
examples/rresamp_crcf_example \ examples/rresamp_crcf_example \
examples/rresamp_crcf_partition_example \
examples/rresamp_crcf_rnyquist_example \ examples/rresamp_crcf_rnyquist_example \
examples/rresamp_rrrf_example \ examples/rresamp_rrrf_example \
examples/resamp_crcf_example \ examples/resamp_crcf_example \
@ -1602,6 +1609,7 @@ example_programs := \
examples/symsync_crcf_full_example \ examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \ examples/symsync_crcf_kaiser_example \
examples/symstreamcf_example \ examples/symstreamcf_example \
examples/symstreamrcf_example \
examples/symtrack_cccf_example \ examples/symtrack_cccf_example \
examples/wdelayf_example \ examples/wdelayf_example \
examples/windowf_example \ examples/windowf_example \
@ -1687,6 +1695,7 @@ sandbox_programs = \
sandbox/firpfbch_analysis_alignment_test \ sandbox/firpfbch_analysis_alignment_test \
sandbox/firpfbch2_analysis_equivalence_test \ sandbox/firpfbch2_analysis_equivalence_test \
sandbox/firpfbch2_test \ sandbox/firpfbch2_test \
sandbox/firpfbch2_flatness_test \
sandbox/firpfbch_analysis_equivalence_test \ sandbox/firpfbch_analysis_equivalence_test \
sandbox/firpfbch_synthesis_equivalence_test \ sandbox/firpfbch_synthesis_equivalence_test \
sandbox/gmskmodem_test \ sandbox/gmskmodem_test \
@ -1781,7 +1790,7 @@ clean-modules:
$(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o $(RM) src/*/src/*.o src/*/bench/*.o src/*/tests/*.o
$(RM) src/libliquid.o $(RM) src/libliquid.o
clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox clean: clean-modules clean-autoscript clean-check clean-coverage clean-bench clean-examples clean-sandbox clean-doc-check
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean) $(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
## ##

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.