Updated Windows liquid-dsp binaries to latest version

- Take liquid-dsp master
- Align config.h MingW and Linux one.
- Make 64bit build target SSE4.2 while 32bit stays SSE3.
- Use latest MSYS2 version, i.e. GCC 8.3 for 64bit, GCC 7.4 for 32bit.
- Updated libwinpthread-1.dll from latest MSYS2
- Removed libliquid.a from msvsc libs since Visual Studio can't possibly static link MINGW lib.
==> 1.5x perf boost in CubicSDR :)
==> Maybe the config.h was wrong all this time, for instance HAVE_MMX wasn't defined. Well well.
This commit is contained in:
vsonnier 2019-03-09 10:21:55 +01:00
parent c561292a27
commit f13af7f357
23 changed files with 8648 additions and 11183 deletions

View File

@ -4,7 +4,7 @@
- Add mingw32 and mingw64 compiler to the Msys2 installation. - Add mingw32 and mingw64 compiler to the Msys2 installation.
- Copy config.h, makefile.mingw32, makefile.mingw64 in the liquid-dsp root directory. - Copy config.h, makefile.mingw32, makefile.mingw64 in the liquid-dsp root directory.
- Run a Msys2 Win32 shell (mingw32.exe) and execute 'make -f makefile.mingw32 -j clean' then 'make -f makefile.mingw32 -j' to compile a libliquid.dll 32bit Windows Dll. - Run a Msys2 Win32 shell (mingw32.exe) and execute 'make -f makefile.mingw32 -j clean' then 'make -f makefile.mingw32 -j' to compile a libliquid.dll 32bit Windows Dll.
- Run a Msys2 Win64 shell (mingw64.exe) and execute 'make -f makefile.mingw64 -j clean' then 'make -f makefile.mingw32 -j' to compile a libliquid.dll 64bit Windows Dll. - Run a Msys2 Win64 shell (mingw64.exe) and execute 'make -f makefile.mingw64 -j clean' then 'make -f makefile.mingw64 -j' to compile a libliquid.dll 64bit Windows Dll.
This process generates a .dll, .a together with libliquid.def the listing exported functions, and libliquid.lib the import lib matching the dll. This process generates a .dll, .a together with libliquid.def the listing exported functions, and libliquid.lib the import lib matching the dll.

View File

@ -5,6 +5,7 @@
#ifndef __LIQUID_CONFIG_H__ #ifndef __LIQUID_CONFIG_H__
#define __LIQUID_CONFIG_H__ #define __LIQUID_CONFIG_H__
/* Define to 1 if you have the <complex.h> header file. */ /* Define to 1 if you have the <complex.h> header file. */
#define HAVE_COMPLEX_H 1 #define HAVE_COMPLEX_H 1
@ -45,6 +46,9 @@
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1 #define HAVE_MEMORY_H 1
/* Support MMX instructions */
#define HAVE_MMX 1
/* Define to 1 if you have the <mmintrin.h> header file. */ //MMX /* Define to 1 if you have the <mmintrin.h> header file. */ //MMX
#define HAVE_MMINTRIN_H 1 #define HAVE_MMINTRIN_H 1
@ -58,7 +62,7 @@
#define HAVE_PMMINTRIN_H 1 #define HAVE_PMMINTRIN_H 1
/* Define to 1 if you have the <smmintrin.h> header file. */ //SSE4.1 /* Define to 1 if you have the <smmintrin.h> header file. */ //SSE4.1
//#define HAVE_SMMINTRIN_H 1 #define HAVE_SMMINTRIN_H 1
/* Define to 1 if you have the <immintrin.h> header file. */ //AVX /* Define to 1 if you have the <immintrin.h> header file. */ //AVX
//#define HAVE_IMMINTRIN_H 1 //#define HAVE_IMMINTRIN_H 1
@ -73,26 +77,23 @@
and to 0 otherwise. */ and to 0 otherwise. */
#define HAVE_REALLOC 1 #define HAVE_REALLOC 1
/* Support MMX instructions */
#define HAVE_MMX /**/
/* Support SSE (Streaming SIMD Extensions) instructions */ /* Support SSE (Streaming SIMD Extensions) instructions */
#define HAVE_SSE /**/ #define HAVE_SSE 1
/* Support SSE2 (Streaming SIMD Extensions 2) instructions */ /* Support SSE2 (Streaming SIMD Extensions 2) instructions */
#define HAVE_SSE2 /**/ #define HAVE_SSE2 1
/* Support SSE3 (Streaming SIMD Extensions 3) instructions */ /* Support SSE3 (Streaming SIMD Extensions 3) instructions */
#define HAVE_SSE3 /**/ #define HAVE_SSE3 1
/* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */ /* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */
#define HAVE_SSE41 /**/ #define HAVE_SSE41 1
/* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */ /* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */
#define HAVE_SSE42 1 #define HAVE_SSE42 1
/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */ /* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
#define HAVE_SSSE3 /**/ #define HAVE_SSSE3 1
/* Support AVX (Advanced Vector Extensions) instructions */ /* Support AVX (Advanced Vector Extensions) instructions */
#define HAVE_AVX /**/ #define HAVE_AVX /**/
@ -128,7 +129,7 @@
#define HAVE_UNISTD_H 1 #define HAVE_UNISTD_H 1
/* Force internal FFT even if libfftw is available */ /* Force internal FFT even if libfftw is available */
/* #undef LIQUID_FFTOVERRIDE */ #define LIQUID_FFTOVERRIDE 1
/* Force overriding of SIMD (use portable C code) */ /* Force overriding of SIMD (use portable C code) */
/* #undef LIQUID_SIMDOVERRIDE */ /* #undef LIQUID_SIMDOVERRIDE */
@ -140,7 +141,7 @@
#define PACKAGE_NAME "liquid-dsp" #define PACKAGE_NAME "liquid-dsp"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "liquid-dsp 1.3.0" #define PACKAGE_STRING "liquid-dsp 1.3.1"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "liquid-dsp" #define PACKAGE_TARNAME "liquid-dsp"
@ -149,7 +150,7 @@
#define PACKAGE_URL "" #define PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "1.3.0" #define PACKAGE_VERSION "1.3.1"
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
external/liquid-dsp/gcc/32/libliquid.lib vendored Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

BIN
external/liquid-dsp/gcc/64/libliquid.lib vendored Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
# Copyright (c) 2007 - 2016 Joseph Gaeddert # Copyright (c) 2007 - 2018 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
@ -23,8 +23,7 @@
# #
# Targets: # Targets:
# all : dynamic shared-library object (e.g. libliquid.so) # all : dynamic shared-library object (e.g. libliquid.so)
# install : install the dynamic shared library object and # install : install the dynamic shared library object and headers
# header file(s)
# uninstall : uninstall the library and header file(s) # uninstall : uninstall the library and header file(s)
# clean : clean all targets (bench, check, examples, etc) # clean : clean all targets (bench, check, examples, etc)
# distclean : removes everything except the originally distributed files # distclean : removes everything except the originally distributed files
@ -57,9 +56,10 @@ include_dirs := . include
CC := gcc CC := gcc
MV := mv -f MV := mv -f
RM := rm -f RM := rm -f
SED := /usr/bin/sed SED := /bin/sed
GREP := /usr/bin/grep GREP := /bin/grep
AR := ar AR := ar
LIBTOOL :=
RANLIB := ranlib RANLIB := ranlib
# flags # flags
@ -71,7 +71,6 @@ CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS += -lmsvcrt LIBS += -lmsvcrt
ARFLAGS = r
PATHSEP = / PATHSEP = /
# #
@ -446,10 +445,13 @@ filter_includes := \
src/filter/src/iirdecim.c \ src/filter/src/iirdecim.c \
src/filter/src/iirfilt.c \ src/filter/src/iirfilt.c \
src/filter/src/iirfiltsos.c \ src/filter/src/iirfiltsos.c \
src/filter/src/iirhilb.c \
src/filter/src/iirinterp.c \ src/filter/src/iirinterp.c \
src/filter/src/msresamp.c \ src/filter/src/msresamp.c \
src/filter/src/msresamp2.c \ src/filter/src/msresamp2.c \
src/filter/src/resamp.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/resamp2.c \
src/filter/src/symsync.c \ src/filter/src/symsync.c \
@ -489,6 +491,7 @@ filter_autotests := \
src/filter/tests/iirfilt_xxxf_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \
src/filter/tests/iirfiltsos_rrrf_autotest.c \ src/filter/tests/iirfiltsos_rrrf_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/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 \
@ -573,6 +576,7 @@ filter_benchmarks := \
src/filter/bench/iirdecim_crcf_benchmark.c \ src/filter/bench/iirdecim_crcf_benchmark.c \
src/filter/bench/iirfilt_crcf_benchmark.c \ src/filter/bench/iirfilt_crcf_benchmark.c \
src/filter/bench/iirinterp_crcf_benchmark.c \ src/filter/bench/iirinterp_crcf_benchmark.c \
src/filter/bench/rresamp_crcf_benchmark.c \
src/filter/bench/resamp_crcf_benchmark.c \ src/filter/bench/resamp_crcf_benchmark.c \
src/filter/bench/resamp2_crcf_benchmark.c \ src/filter/bench/resamp2_crcf_benchmark.c \
src/filter/bench/symsync_crcf_benchmark.c \ src/filter/bench/symsync_crcf_benchmark.c \
@ -589,6 +593,8 @@ framing_objects := \
src/framing/src/bsync_crcf.o \ src/framing/src/bsync_crcf.o \
src/framing/src/bsync_cccf.o \ src/framing/src/bsync_cccf.o \
src/framing/src/detector_cccf.o \ src/framing/src/detector_cccf.o \
src/framing/src/dsssframegen.o \
src/framing/src/dsssframesync.o \
src/framing/src/framedatastats.o \ src/framing/src/framedatastats.o \
src/framing/src/framesyncstats.o \ src/framing/src/framesyncstats.o \
src/framing/src/framegen64.o \ src/framing/src/framegen64.o \
@ -618,6 +624,8 @@ src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/s
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.o : %.o : %.c $(include_headers)
src/framing/src/dsssframesync.o : %.o : %.c $(include_headers)
src/framing/src/framedatastats.o : %.o : %.c $(include_headers) src/framing/src/framedatastats.o : %.o : %.c $(include_headers)
src/framing/src/framesyncstats.o : %.o : %.c $(include_headers) src/framing/src/framesyncstats.o : %.o : %.c $(include_headers)
src/framing/src/framegen64.o : %.o : %.c $(include_headers) src/framing/src/framegen64.o : %.o : %.c $(include_headers)
@ -694,12 +702,14 @@ src/math/src/windows.o : %.o : %.c $(include_headers)
math_autotests := \ math_autotests := \
src/math/tests/gcd_autotest.c \
src/math/tests/kbd_autotest.c \ src/math/tests/kbd_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 \
src/math/tests/math_complex_autotest.c \ src/math/tests/math_complex_autotest.c \
src/math/tests/polynomial_autotest.c \ src/math/tests/polynomial_autotest.c \
src/math/tests/prime_autotest.c \
math_benchmarks := \ math_benchmarks := \
@ -887,15 +897,18 @@ multichannel_benchmarks := \
nco_objects := \ nco_objects := \
src/nco/src/nco_crcf.o \ src/nco/src/nco_crcf.o \
src/nco/src/nco.utilities.o \ src/nco/src/nco.utilities.o \
src/nco/src/synth_crcf.o \
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) src/nco/src/nco.c
src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers)
src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests # autotests
nco_autotests := \ nco_autotests := \
src/nco/tests/nco_crcf_frequency_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 \ src/nco/tests/nco_crcf_phase_autotest.c \
src/nco/tests/nco_crcf_pll_autotest.c \ src/nco/tests/nco_crcf_pll_autotest.c \
src/nco/tests/unwrap_phase_autotest.c \ src/nco/tests/unwrap_phase_autotest.c \
@ -1023,6 +1036,7 @@ utility_objects := \
src/utility/src/msb_index.o \ src/utility/src/msb_index.o \
src/utility/src/pack_bytes.o \ src/utility/src/pack_bytes.o \
src/utility/src/shift_array.o \ src/utility/src/shift_array.o \
src/utility/src/utility.o \
$(utility_objects) : %.o : %.c $(include_headers) $(utility_objects) : %.o : %.c $(include_headers)
@ -1033,9 +1047,9 @@ utility_autotests := \
src/utility/tests/pack_bytes_autotest.c \ src/utility/tests/pack_bytes_autotest.c \
src/utility/tests/shift_array_autotest.c \ src/utility/tests/shift_array_autotest.c \
# benchmarks # benchmarks
utility_benchmarks := utility_benchmarks := \
src/utility/bench/byte_utilities_benchmark.c \
# #
@ -1155,28 +1169,35 @@ benchmark_sources := \
.PHONY: all .PHONY: all
# Shared library # Shared library
ARCHIVE_LIB = libliquid.a
#MINGW: #MINGW:
SHARED_LIB = libliquid.dll SHARED_LIB = libliquid.dll
# liquid library definition #
libliquid.a: $(objects)
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
# darwin # darwin
# #
libliquid.ar: $(objects)
${LIBTOOL} -static -o $@ $^
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a # gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
libliquid.dylib: $(objects) libliquid.dylib: $(objects)
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS) $(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
#
# linux, et al # linux, et al
#
libliquid.a: $(objects)
${AR} r $@ $^
${RANLIB} $@
libliquid.so: libliquid.a libliquid.so: libliquid.a
$(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS)
#MINGW: #MINGW:
libliquid.dll: libliquid.a libliquid.dll: libliquid.a
$(CC) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive -Wl,--output-def,libliquid.def -Wl,--out-implib,libliquid.lib $(LIBS) $(CC) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive -Wl,--output-def,libliquid.def -Wl,--out-implib,libliquid.lib $(LIBS)
all: libliquid.a $(SHARED_LIB) # static archive and library objects
all: ${ARCHIVE_LIB} ${SHARED_LIB}
## ##
## TARGET : help - print list of targets ## TARGET : help - print list of targets
@ -1196,7 +1217,7 @@ install: all
@echo "" @echo ""
mkdir -p $(DESTDIR)$(exec_prefix)$(libdir) mkdir -p $(DESTDIR)$(exec_prefix)$(libdir)
mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(prefix)/include/liquid
install -m 644 -p $(SHARED_LIB) libliquid.a $(DESTDIR)$(exec_prefix)$(libdir) install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(exec_prefix)$(libdir)
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid
@echo "" @echo ""
@echo "---------------------------------------------------------" @echo "---------------------------------------------------------"
@ -1219,8 +1240,8 @@ install: all
uninstall: uninstall:
@echo "uninstalling..." @echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) $(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/libliquid.a $(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${ARCHIVE_LIB}
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/$(SHARED_LIB) $(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${SHARED_LIB}
@echo "done." @echo "done."
## ##
@ -1274,12 +1295,12 @@ $(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h
# link the autotest program with the objects # link the autotest program with the objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o libliquid.a $(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# run the autotest program # run the autotest program
check: $(autotest_prog) check: $(autotest_prog)
./$(autotest_prog) -v ./$(autotest_prog) -v -o autotest.json
# let 'make test' be an alias for 'make check' # let 'make test' be an alias for 'make check'
test: check test: check
@ -1290,6 +1311,7 @@ clean-check:
$(RM) autotest/autotestlib.o $(RM) autotest/autotestlib.o
$(RM) $(autotest_obj) $(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj) $(RM) $(autotest_extra_obj)
$(RM) autotest.json
## ##
@ -1326,7 +1348,7 @@ $(bench_prog).o: bench/bench.c benchmark_include.h bench/bench.c
# link the benchmark program with the library objects # link the benchmark program with the library objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) libliquid.a $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE_LIB}
$(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $(bench_prog) $(BENCH_LIBS) $(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $(bench_prog) $(BENCH_LIBS)
# run the benchmark program # run the benchmark program
@ -1341,7 +1363,7 @@ scripts/benchmark_compare : % : %.c
bench/fftbench.o : %.o : %.c bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
bench/fftbench : % : %.o libliquid.a bench/fftbench : % : %.o ${ARCHIVE_LIB}
$(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $@ $(BENCH_LIBS) $(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $@ $(BENCH_LIBS)
# clean up the generated files # clean up the generated files
@ -1383,6 +1405,7 @@ example_programs := \
examples/cpfskmodem_psd_example \ examples/cpfskmodem_psd_example \
examples/cvsd_example \ examples/cvsd_example \
examples/detector_cccf_example \ examples/detector_cccf_example \
examples/dsssframesync_example \
examples/dotprod_rrrf_example \ examples/dotprod_rrrf_example \
examples/dotprod_cccf_example \ examples/dotprod_cccf_example \
examples/eqlms_cccf_block_example \ examples/eqlms_cccf_block_example \
@ -1405,9 +1428,11 @@ example_programs := \
examples/firdespm_lowpass_example \ examples/firdespm_lowpass_example \
examples/firhilb_example \ examples/firhilb_example \
examples/firhilb_decim_example \ examples/firhilb_decim_example \
examples/firhilb_filter_example \
examples/firhilb_interp_example \ examples/firhilb_interp_example \
examples/firpfbch2_crcf_example \ examples/firpfbch2_crcf_example \
examples/firinterp_crcf_example \ examples/firinterp_crcf_example \
examples/firinterp_firdecim_crcf_example \
examples/firpfbch_crcf_example \ examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \ examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_synthesis_example \ examples/firpfbch_crcf_synthesis_example \
@ -1416,6 +1441,7 @@ example_programs := \
examples/framesync64_example \ examples/framesync64_example \
examples/freqmodem_example \ examples/freqmodem_example \
examples/fskmodem_example \ examples/fskmodem_example \
examples/fskmodem_waterfall_example \
examples/gasearch_example \ examples/gasearch_example \
examples/gasearch_knapsack_example \ examples/gasearch_knapsack_example \
examples/gmskframesync_example \ examples/gmskframesync_example \
@ -1432,6 +1458,8 @@ example_programs := \
examples/iirfilt_cccf_example \ examples/iirfilt_cccf_example \
examples/iirfilt_crcf_example \ examples/iirfilt_crcf_example \
examples/iirfilt_crcf_dcblocker_example \ examples/iirfilt_crcf_dcblocker_example \
examples/iirhilb_example \
examples/iirhilb_filter_example \
examples/iirinterp_crcf_example \ examples/iirinterp_crcf_example \
examples/kbd_window_example \ examples/kbd_window_example \
examples/lpc_example \ examples/lpc_example \
@ -1446,13 +1474,16 @@ example_programs := \
examples/msequence_example \ examples/msequence_example \
examples/msourcecf_example \ examples/msourcecf_example \
examples/msresamp_crcf_example \ examples/msresamp_crcf_example \
examples/msresamp_crcf_noise_example \
examples/msresamp2_crcf_example \ examples/msresamp2_crcf_example \
examples/nco_crcf_mix_example \
examples/nco_example \ examples/nco_example \
examples/nco_pll_example \ examples/nco_pll_example \
examples/nco_pll_modem_example \ examples/nco_pll_modem_example \
examples/nyquist_filter_example \ examples/nyquist_filter_example \
examples/ofdmflexframesync_example \ examples/ofdmflexframesync_example \
examples/ofdmframesync_example \ examples/ofdmframesync_example \
examples/ordfilt_rrrf_example \
examples/packetizer_example \ examples/packetizer_example \
examples/packetizer_soft_example \ examples/packetizer_soft_example \
examples/pll_example \ examples/pll_example \
@ -1467,7 +1498,9 @@ example_programs := \
examples/quantize_example \ examples/quantize_example \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
examples/rresamp_crcf_example \
examples/resamp_crcf_example \ examples/resamp_crcf_example \
examples/resamp_crcf_noise_example \
examples/resamp2_cccf_example \ examples/resamp2_cccf_example \
examples/resamp2_crcf_example \ examples/resamp2_crcf_example \
examples/resamp2_crcf_decim_example \ examples/resamp2_crcf_decim_example \
@ -1477,7 +1510,6 @@ example_programs := \
examples/scramble_example \ examples/scramble_example \
examples/smatrix_example \ examples/smatrix_example \
examples/spgramcf_example \ examples/spgramcf_example \
examples/spgramcf_waterfall_example \
examples/spgramf_example \ examples/spgramf_example \
examples/spwaterfallcf_example \ examples/spwaterfallcf_example \
examples/symsync_crcf_example \ examples/symsync_crcf_example \
@ -1499,7 +1531,7 @@ examples: $(example_programs)
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(example_objects): %.o : %.c $(example_objects): %.o : %.c
$(example_programs): % : %.o libliquid.a $(example_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# clean examples # clean examples
@ -1605,6 +1637,7 @@ sandbox_programs = \
sandbox/symsync_eqlms_test \ sandbox/symsync_eqlms_test \
sandbox/svd_test \ sandbox/svd_test \
sandbox/thiran_allpass_iir_test \ sandbox/thiran_allpass_iir_test \
sandbox/throttle_test \
sandbox/vectorcf_test \ sandbox/vectorcf_test \
# sandbox/packetizer_persistent_ber_test # sandbox/packetizer_persistent_ber_test
@ -1621,7 +1654,7 @@ SANDBOX_LDFLAGS = $(LDFLAGS) -lfftw3f
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(sandbox_objects): %.o : %.c $(sandbox_objects): %.o : %.c
$(sandbox_programs): % : %.o libliquid.a $(sandbox_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
# clean sandbox # clean sandbox
@ -1630,6 +1663,22 @@ clean-sandbox:
$(RM) $(sandbox_programs) $(RM) $(sandbox_programs)
.PHONY: tools
tools_programs = \
tools/msequence_generator \
tools_objects = $(patsubst %,%.o,$(tools_programs))
tools: $(tools_programs)
$(tools_objects): %.o: %.c
$(tools_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
clean-tools:
$(RM) tools/*.o
$(RM) $(tools_programs)
## ##
## TARGET : world - build absolutely everything ## TARGET : world - build absolutely everything
## ##
@ -1666,10 +1715,8 @@ clean-modules:
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o $(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
$(RM) src/libliquid.o $(RM) src/libliquid.o
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean-tools
$(RM) $(extra_clean) $(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
$(RM) libliquid.a
$(RM) $(SHARED_LIB)
## ##
## TARGET : distclean - removes everything except the originally distributed files ## TARGET : distclean - removes everything except the originally distributed files

View File

@ -1,4 +1,4 @@
# Copyright (c) 2007 - 2016 Joseph Gaeddert # Copyright (c) 2007 - 2018 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
@ -23,8 +23,7 @@
# #
# Targets: # Targets:
# all : dynamic shared-library object (e.g. libliquid.so) # all : dynamic shared-library object (e.g. libliquid.so)
# install : install the dynamic shared library object and # install : install the dynamic shared library object and headers
# header file(s)
# uninstall : uninstall the library and header file(s) # uninstall : uninstall the library and header file(s)
# clean : clean all targets (bench, check, examples, etc) # clean : clean all targets (bench, check, examples, etc)
# distclean : removes everything except the originally distributed files # distclean : removes everything except the originally distributed files
@ -57,21 +56,21 @@ include_dirs := . include
CC := gcc CC := gcc
MV := mv -f MV := mv -f
RM := rm -f RM := rm -f
SED := /usr/bin/sed SED := /bin/sed
GREP := /usr/bin/grep GREP := /bin/grep
AR := ar AR := ar
LIBTOOL :=
RANLIB := ranlib RANLIB := ranlib
# flags # flags
INCLUDE_CFLAGS = $(addprefix -I ,$(include_dirs)) INCLUDE_CFLAGS = $(addprefix -I ,$(include_dirs))
#MINGW: optimizations goes here #MINGW: optimizations goes here, use SSSE42 for 64bit
CONFIG_CFLAGS = -O3 -msse3 -ffast-math -static-libgcc -static-libstdc++ CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math -static-libgcc -static-libstdc++
CPPFLAGS = $(INCLUDE_CFLAGS) CPPFLAGS = $(INCLUDE_CFLAGS)
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
LDFLAGS = LDFLAGS =
#MINGW: #MINGW:
LIBS += -static-libgcc -static-libstdc++ LIBS += -static-libgcc -static-libstdc++
ARFLAGS = r
PATHSEP = / PATHSEP = /
# #
@ -446,10 +445,13 @@ filter_includes := \
src/filter/src/iirdecim.c \ src/filter/src/iirdecim.c \
src/filter/src/iirfilt.c \ src/filter/src/iirfilt.c \
src/filter/src/iirfiltsos.c \ src/filter/src/iirfiltsos.c \
src/filter/src/iirhilb.c \
src/filter/src/iirinterp.c \ src/filter/src/iirinterp.c \
src/filter/src/msresamp.c \ src/filter/src/msresamp.c \
src/filter/src/msresamp2.c \ src/filter/src/msresamp2.c \
src/filter/src/resamp.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/resamp2.c \
src/filter/src/symsync.c \ src/filter/src/symsync.c \
@ -489,6 +491,7 @@ filter_autotests := \
src/filter/tests/iirfilt_xxxf_autotest.c \ src/filter/tests/iirfilt_xxxf_autotest.c \
src/filter/tests/iirfiltsos_rrrf_autotest.c \ src/filter/tests/iirfiltsos_rrrf_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/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 \
@ -573,6 +576,7 @@ filter_benchmarks := \
src/filter/bench/iirdecim_crcf_benchmark.c \ src/filter/bench/iirdecim_crcf_benchmark.c \
src/filter/bench/iirfilt_crcf_benchmark.c \ src/filter/bench/iirfilt_crcf_benchmark.c \
src/filter/bench/iirinterp_crcf_benchmark.c \ src/filter/bench/iirinterp_crcf_benchmark.c \
src/filter/bench/rresamp_crcf_benchmark.c \
src/filter/bench/resamp_crcf_benchmark.c \ src/filter/bench/resamp_crcf_benchmark.c \
src/filter/bench/resamp2_crcf_benchmark.c \ src/filter/bench/resamp2_crcf_benchmark.c \
src/filter/bench/symsync_crcf_benchmark.c \ src/filter/bench/symsync_crcf_benchmark.c \
@ -589,6 +593,8 @@ framing_objects := \
src/framing/src/bsync_crcf.o \ src/framing/src/bsync_crcf.o \
src/framing/src/bsync_cccf.o \ src/framing/src/bsync_cccf.o \
src/framing/src/detector_cccf.o \ src/framing/src/detector_cccf.o \
src/framing/src/dsssframegen.o \
src/framing/src/dsssframesync.o \
src/framing/src/framedatastats.o \ src/framing/src/framedatastats.o \
src/framing/src/framesyncstats.o \ src/framing/src/framesyncstats.o \
src/framing/src/framegen64.o \ src/framing/src/framegen64.o \
@ -618,6 +624,8 @@ src/framing/src/bsync_rrrf.o : %.o : %.c $(include_headers) src/framing/s
src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_crcf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c src/framing/src/bsync_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.c
src/framing/src/detector_cccf.o : %.o : %.c $(include_headers) src/framing/src/detector_cccf.o : %.o : %.c $(include_headers)
src/framing/src/dsssframegen.o : %.o : %.c $(include_headers)
src/framing/src/dsssframesync.o : %.o : %.c $(include_headers)
src/framing/src/framedatastats.o : %.o : %.c $(include_headers) src/framing/src/framedatastats.o : %.o : %.c $(include_headers)
src/framing/src/framesyncstats.o : %.o : %.c $(include_headers) src/framing/src/framesyncstats.o : %.o : %.c $(include_headers)
src/framing/src/framegen64.o : %.o : %.c $(include_headers) src/framing/src/framegen64.o : %.o : %.c $(include_headers)
@ -694,12 +702,14 @@ src/math/src/windows.o : %.o : %.c $(include_headers)
math_autotests := \ math_autotests := \
src/math/tests/gcd_autotest.c \
src/math/tests/kbd_autotest.c \ src/math/tests/kbd_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 \
src/math/tests/math_complex_autotest.c \ src/math/tests/math_complex_autotest.c \
src/math/tests/polynomial_autotest.c \ src/math/tests/polynomial_autotest.c \
src/math/tests/prime_autotest.c \
math_benchmarks := \ math_benchmarks := \
@ -887,15 +897,18 @@ multichannel_benchmarks := \
nco_objects := \ nco_objects := \
src/nco/src/nco_crcf.o \ src/nco/src/nco_crcf.o \
src/nco/src/nco.utilities.o \ src/nco/src/nco.utilities.o \
src/nco/src/synth_crcf.o \
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) src/nco/src/nco.c
src/nco/src/nco.utilities.o : %.o : %.c $(include_headers) src/nco/src/nco.utilities.o : %.o : %.c $(include_headers)
src/nco/src/synth_crcf.o : %.o : %.c $(include_headers) src/nco/src/synth.c
# autotests # autotests
nco_autotests := \ nco_autotests := \
src/nco/tests/nco_crcf_frequency_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 \ src/nco/tests/nco_crcf_phase_autotest.c \
src/nco/tests/nco_crcf_pll_autotest.c \ src/nco/tests/nco_crcf_pll_autotest.c \
src/nco/tests/unwrap_phase_autotest.c \ src/nco/tests/unwrap_phase_autotest.c \
@ -1023,6 +1036,7 @@ utility_objects := \
src/utility/src/msb_index.o \ src/utility/src/msb_index.o \
src/utility/src/pack_bytes.o \ src/utility/src/pack_bytes.o \
src/utility/src/shift_array.o \ src/utility/src/shift_array.o \
src/utility/src/utility.o \
$(utility_objects) : %.o : %.c $(include_headers) $(utility_objects) : %.o : %.c $(include_headers)
@ -1033,9 +1047,9 @@ utility_autotests := \
src/utility/tests/pack_bytes_autotest.c \ src/utility/tests/pack_bytes_autotest.c \
src/utility/tests/shift_array_autotest.c \ src/utility/tests/shift_array_autotest.c \
# benchmarks # benchmarks
utility_benchmarks := utility_benchmarks := \
src/utility/bench/byte_utilities_benchmark.c \
# #
@ -1155,28 +1169,35 @@ benchmark_sources := \
.PHONY: all .PHONY: all
# Shared library # Shared library
ARCHIVE_LIB = libliquid.a
#MINGW: #MINGW:
SHARED_LIB = libliquid.dll SHARED_LIB = libliquid.dll
# liquid library definition #
libliquid.a: $(objects)
$(AR) $(ARFLAGS) $@ $^
$(RANLIB) $@
# darwin # darwin
# #
libliquid.ar: $(objects)
${LIBTOOL} -static -o $@ $^
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a # gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
libliquid.dylib: $(objects) libliquid.dylib: $(objects)
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS) $(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
#
# linux, et al # linux, et al
#
libliquid.a: $(objects)
${AR} r $@ $^
${RANLIB} $@
libliquid.so: libliquid.a libliquid.so: libliquid.a
$(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS)
#MINGW: #MINGW:
libliquid.dll: libliquid.a libliquid.dll: libliquid.a
$(CC) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive -Wl,--output-def,libliquid.def -Wl,--out-implib,libliquid.lib $(LIBS) $(CC) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive -Wl,--output-def,libliquid.def -Wl,--out-implib,libliquid.lib $(LIBS)
all: libliquid.a $(SHARED_LIB) # static archive and library objects
all: ${ARCHIVE_LIB} ${SHARED_LIB}
## ##
## TARGET : help - print list of targets ## TARGET : help - print list of targets
@ -1196,7 +1217,7 @@ install: all
@echo "" @echo ""
mkdir -p $(DESTDIR)$(exec_prefix)$(libdir) mkdir -p $(DESTDIR)$(exec_prefix)$(libdir)
mkdir -p $(DESTDIR)$(prefix)/include/liquid mkdir -p $(DESTDIR)$(prefix)/include/liquid
install -m 644 -p $(SHARED_LIB) libliquid.a $(DESTDIR)$(exec_prefix)$(libdir) install -m 644 -p ${ARCHIVE_LIB} ${SHARED_LIB} $(DESTDIR)$(exec_prefix)$(libdir)
install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid install -m 644 -p $(addprefix include/,$(headers_install)) $(DESTDIR)$(prefix)/include/liquid
@echo "" @echo ""
@echo "---------------------------------------------------------" @echo "---------------------------------------------------------"
@ -1219,8 +1240,8 @@ install: all
uninstall: uninstall:
@echo "uninstalling..." @echo "uninstalling..."
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install)) $(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/libliquid.a $(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${ARCHIVE_LIB}
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/$(SHARED_LIB) $(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${SHARED_LIB}
@echo "done." @echo "done."
## ##
@ -1274,12 +1295,12 @@ $(autotest_prog).o : autotest/autotest.c autotest/autotest.h autotest_include.h
# link the autotest program with the objects # link the autotest program with the objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o libliquid.a $(autotest_prog): $(autotest_prog).o $(autotest_obj) $(autotest_extra_obj) autotest/autotestlib.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# run the autotest program # run the autotest program
check: $(autotest_prog) check: $(autotest_prog)
./$(autotest_prog) -v ./$(autotest_prog) -v -o autotest.json
# let 'make test' be an alias for 'make check' # let 'make test' be an alias for 'make check'
test: check test: check
@ -1290,6 +1311,7 @@ clean-check:
$(RM) autotest/autotestlib.o $(RM) autotest/autotestlib.o
$(RM) $(autotest_obj) $(RM) $(autotest_obj)
$(RM) $(autotest_extra_obj) $(RM) $(autotest_extra_obj)
$(RM) autotest.json
## ##
@ -1326,7 +1348,7 @@ $(bench_prog).o: bench/bench.c benchmark_include.h bench/bench.c
# link the benchmark program with the library objects # link the benchmark program with the library objects
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) libliquid.a $(bench_prog): $(bench_prog).o $(benchmark_obj) $(benchmark_extra_obj) ${ARCHIVE_LIB}
$(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $(bench_prog) $(BENCH_LIBS) $(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $(bench_prog) $(BENCH_LIBS)
# run the benchmark program # run the benchmark program
@ -1341,7 +1363,7 @@ scripts/benchmark_compare : % : %.c
bench/fftbench.o : %.o : %.c bench/fftbench.o : %.o : %.c
$(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@ $(CC) $(BENCH_CPPFLAGS) $(BENCH_CFLAGS) $< -c -o $@
bench/fftbench : % : %.o libliquid.a bench/fftbench : % : %.o ${ARCHIVE_LIB}
$(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $@ $(BENCH_LIBS) $(CC) $(BENCH_CFLAGS) $(BENCH_LDFLAGS) $^ -o $@ $(BENCH_LIBS)
# clean up the generated files # clean up the generated files
@ -1383,6 +1405,7 @@ example_programs := \
examples/cpfskmodem_psd_example \ examples/cpfskmodem_psd_example \
examples/cvsd_example \ examples/cvsd_example \
examples/detector_cccf_example \ examples/detector_cccf_example \
examples/dsssframesync_example \
examples/dotprod_rrrf_example \ examples/dotprod_rrrf_example \
examples/dotprod_cccf_example \ examples/dotprod_cccf_example \
examples/eqlms_cccf_block_example \ examples/eqlms_cccf_block_example \
@ -1405,9 +1428,11 @@ example_programs := \
examples/firdespm_lowpass_example \ examples/firdespm_lowpass_example \
examples/firhilb_example \ examples/firhilb_example \
examples/firhilb_decim_example \ examples/firhilb_decim_example \
examples/firhilb_filter_example \
examples/firhilb_interp_example \ examples/firhilb_interp_example \
examples/firpfbch2_crcf_example \ examples/firpfbch2_crcf_example \
examples/firinterp_crcf_example \ examples/firinterp_crcf_example \
examples/firinterp_firdecim_crcf_example \
examples/firpfbch_crcf_example \ examples/firpfbch_crcf_example \
examples/firpfbch_crcf_analysis_example \ examples/firpfbch_crcf_analysis_example \
examples/firpfbch_crcf_synthesis_example \ examples/firpfbch_crcf_synthesis_example \
@ -1416,6 +1441,7 @@ example_programs := \
examples/framesync64_example \ examples/framesync64_example \
examples/freqmodem_example \ examples/freqmodem_example \
examples/fskmodem_example \ examples/fskmodem_example \
examples/fskmodem_waterfall_example \
examples/gasearch_example \ examples/gasearch_example \
examples/gasearch_knapsack_example \ examples/gasearch_knapsack_example \
examples/gmskframesync_example \ examples/gmskframesync_example \
@ -1432,6 +1458,8 @@ example_programs := \
examples/iirfilt_cccf_example \ examples/iirfilt_cccf_example \
examples/iirfilt_crcf_example \ examples/iirfilt_crcf_example \
examples/iirfilt_crcf_dcblocker_example \ examples/iirfilt_crcf_dcblocker_example \
examples/iirhilb_example \
examples/iirhilb_filter_example \
examples/iirinterp_crcf_example \ examples/iirinterp_crcf_example \
examples/kbd_window_example \ examples/kbd_window_example \
examples/lpc_example \ examples/lpc_example \
@ -1446,13 +1474,16 @@ example_programs := \
examples/msequence_example \ examples/msequence_example \
examples/msourcecf_example \ examples/msourcecf_example \
examples/msresamp_crcf_example \ examples/msresamp_crcf_example \
examples/msresamp_crcf_noise_example \
examples/msresamp2_crcf_example \ examples/msresamp2_crcf_example \
examples/nco_crcf_mix_example \
examples/nco_example \ examples/nco_example \
examples/nco_pll_example \ examples/nco_pll_example \
examples/nco_pll_modem_example \ examples/nco_pll_modem_example \
examples/nyquist_filter_example \ examples/nyquist_filter_example \
examples/ofdmflexframesync_example \ examples/ofdmflexframesync_example \
examples/ofdmframesync_example \ examples/ofdmframesync_example \
examples/ordfilt_rrrf_example \
examples/packetizer_example \ examples/packetizer_example \
examples/packetizer_soft_example \ examples/packetizer_soft_example \
examples/pll_example \ examples/pll_example \
@ -1467,7 +1498,9 @@ example_programs := \
examples/quantize_example \ examples/quantize_example \
examples/random_histogram_example \ examples/random_histogram_example \
examples/repack_bytes_example \ examples/repack_bytes_example \
examples/rresamp_crcf_example \
examples/resamp_crcf_example \ examples/resamp_crcf_example \
examples/resamp_crcf_noise_example \
examples/resamp2_cccf_example \ examples/resamp2_cccf_example \
examples/resamp2_crcf_example \ examples/resamp2_crcf_example \
examples/resamp2_crcf_decim_example \ examples/resamp2_crcf_decim_example \
@ -1477,7 +1510,6 @@ example_programs := \
examples/scramble_example \ examples/scramble_example \
examples/smatrix_example \ examples/smatrix_example \
examples/spgramcf_example \ examples/spgramcf_example \
examples/spgramcf_waterfall_example \
examples/spgramf_example \ examples/spgramf_example \
examples/spwaterfallcf_example \ examples/spwaterfallcf_example \
examples/symsync_crcf_example \ examples/symsync_crcf_example \
@ -1499,7 +1531,7 @@ examples: $(example_programs)
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(example_objects): %.o : %.c $(example_objects): %.o : %.c
$(example_programs): % : %.o libliquid.a $(example_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS) $(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
# clean examples # clean examples
@ -1605,6 +1637,7 @@ sandbox_programs = \
sandbox/symsync_eqlms_test \ sandbox/symsync_eqlms_test \
sandbox/svd_test \ sandbox/svd_test \
sandbox/thiran_allpass_iir_test \ sandbox/thiran_allpass_iir_test \
sandbox/throttle_test \
sandbox/vectorcf_test \ sandbox/vectorcf_test \
# sandbox/packetizer_persistent_ber_test # sandbox/packetizer_persistent_ber_test
@ -1621,7 +1654,7 @@ SANDBOX_LDFLAGS = $(LDFLAGS) -lfftw3f
# NOTE: linked libraries must come _after_ the target program # NOTE: linked libraries must come _after_ the target program
$(sandbox_objects): %.o : %.c $(sandbox_objects): %.o : %.c
$(sandbox_programs): % : %.o libliquid.a $(sandbox_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
# clean sandbox # clean sandbox
@ -1630,6 +1663,22 @@ clean-sandbox:
$(RM) $(sandbox_programs) $(RM) $(sandbox_programs)
.PHONY: tools
tools_programs = \
tools/msequence_generator \
tools_objects = $(patsubst %,%.o,$(tools_programs))
tools: $(tools_programs)
$(tools_objects): %.o: %.c
$(tools_programs): % : %.o ${ARCHIVE_LIB}
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
clean-tools:
$(RM) tools/*.o
$(RM) $(tools_programs)
## ##
## TARGET : world - build absolutely everything ## TARGET : world - build absolutely everything
## ##
@ -1666,10 +1715,8 @@ clean-modules:
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o $(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
$(RM) src/libliquid.o $(RM) src/libliquid.o
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean-tools
$(RM) $(extra_clean) $(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
$(RM) libliquid.a
$(RM) $(SHARED_LIB)
## ##
## TARGET : distclean - removes everything except the originally distributed files ## TARGET : distclean - removes everything except the originally distributed files

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

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.

Binary file not shown.

Binary file not shown.