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:
parent
c561292a27
commit
f13af7f357
|
@ -4,7 +4,7 @@
|
|||
- Add mingw32 and mingw64 compiler to the Msys2 installation.
|
||||
- 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 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.
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#ifndef __LIQUID_CONFIG_H__
|
||||
#define __LIQUID_CONFIG_H__
|
||||
|
||||
|
||||
/* Define to 1 if you have the <complex.h> header file. */
|
||||
#define HAVE_COMPLEX_H 1
|
||||
|
||||
|
@ -45,6 +46,9 @@
|
|||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#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 HAVE_MMINTRIN_H 1
|
||||
|
||||
|
@ -58,7 +62,7 @@
|
|||
#define HAVE_PMMINTRIN_H 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 HAVE_IMMINTRIN_H 1
|
||||
|
@ -73,26 +77,23 @@
|
|||
and to 0 otherwise. */
|
||||
#define HAVE_REALLOC 1
|
||||
|
||||
/* Support MMX instructions */
|
||||
#define HAVE_MMX /**/
|
||||
|
||||
/* Support SSE (Streaming SIMD Extensions) instructions */
|
||||
#define HAVE_SSE /**/
|
||||
#define HAVE_SSE 1
|
||||
|
||||
/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
|
||||
#define HAVE_SSE2 /**/
|
||||
#define HAVE_SSE2 1
|
||||
|
||||
/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
|
||||
#define HAVE_SSE3 /**/
|
||||
#define HAVE_SSE3 1
|
||||
|
||||
/* 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 */
|
||||
#define HAVE_SSE42 1
|
||||
|
||||
/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
|
||||
#define HAVE_SSSE3 /**/
|
||||
#define HAVE_SSSE3 1
|
||||
|
||||
/* Support AVX (Advanced Vector Extensions) instructions */
|
||||
#define HAVE_AVX /**/
|
||||
|
@ -128,7 +129,7 @@
|
|||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Force internal FFT even if libfftw is available */
|
||||
/* #undef LIQUID_FFTOVERRIDE */
|
||||
#define LIQUID_FFTOVERRIDE 1
|
||||
|
||||
/* Force overriding of SIMD (use portable C code) */
|
||||
/* #undef LIQUID_SIMDOVERRIDE */
|
||||
|
@ -140,7 +141,7 @@
|
|||
#define PACKAGE_NAME "liquid-dsp"
|
||||
|
||||
/* 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 PACKAGE_TARNAME "liquid-dsp"
|
||||
|
@ -149,7 +150,7 @@
|
|||
#define PACKAGE_URL ""
|
||||
|
||||
/* 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 STDC_HEADERS 1
|
||||
|
|
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.
File diff suppressed because it is too large
Load Diff
|
@ -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
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -23,8 +23,7 @@
|
|||
#
|
||||
# Targets:
|
||||
# all : dynamic shared-library object (e.g. libliquid.so)
|
||||
# install : install the dynamic shared library object and
|
||||
# header file(s)
|
||||
# install : install the dynamic shared library object and headers
|
||||
# uninstall : uninstall the library and header file(s)
|
||||
# clean : clean all targets (bench, check, examples, etc)
|
||||
# distclean : removes everything except the originally distributed files
|
||||
|
@ -57,9 +56,10 @@ include_dirs := . include
|
|||
CC := gcc
|
||||
MV := mv -f
|
||||
RM := rm -f
|
||||
SED := /usr/bin/sed
|
||||
GREP := /usr/bin/grep
|
||||
SED := /bin/sed
|
||||
GREP := /bin/grep
|
||||
AR := ar
|
||||
LIBTOOL :=
|
||||
RANLIB := ranlib
|
||||
|
||||
# flags
|
||||
|
@ -71,7 +71,6 @@ CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
|
|||
LDFLAGS =
|
||||
#MINGW:
|
||||
LIBS += -lmsvcrt
|
||||
ARFLAGS = r
|
||||
PATHSEP = /
|
||||
|
||||
#
|
||||
|
@ -446,10 +445,13 @@ filter_includes := \
|
|||
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/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/symsync.c \
|
||||
|
||||
|
@ -489,6 +491,7 @@ filter_autotests := \
|
|||
src/filter/tests/iirfilt_xxxf_autotest.c \
|
||||
src/filter/tests/iirfiltsos_rrrf_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/resamp2_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/iirfilt_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/resamp2_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_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/framesyncstats.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_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.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)
|
||||
src/framing/src/framedatastats.o : %.o : %.c $(include_headers)
|
||||
src/framing/src/framesyncstats.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 := \
|
||||
src/math/tests/gcd_autotest.c \
|
||||
src/math/tests/kbd_autotest.c \
|
||||
src/math/tests/math_autotest.c \
|
||||
src/math/tests/math_bessel_autotest.c \
|
||||
src/math/tests/math_gamma_autotest.c \
|
||||
src/math/tests/math_complex_autotest.c \
|
||||
src/math/tests/polynomial_autotest.c \
|
||||
src/math/tests/prime_autotest.c \
|
||||
|
||||
|
||||
math_benchmarks := \
|
||||
|
@ -887,15 +897,18 @@ multichannel_benchmarks := \
|
|||
nco_objects := \
|
||||
src/nco/src/nco_crcf.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.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_frequency_autotest.c \
|
||||
src/nco/tests/nco_crcf_mix_autotest.c \
|
||||
src/nco/tests/nco_crcf_phase_autotest.c \
|
||||
src/nco/tests/nco_crcf_pll_autotest.c \
|
||||
src/nco/tests/unwrap_phase_autotest.c \
|
||||
|
@ -1023,6 +1036,7 @@ utility_objects := \
|
|||
src/utility/src/msb_index.o \
|
||||
src/utility/src/pack_bytes.o \
|
||||
src/utility/src/shift_array.o \
|
||||
src/utility/src/utility.o \
|
||||
|
||||
$(utility_objects) : %.o : %.c $(include_headers)
|
||||
|
||||
|
@ -1033,9 +1047,9 @@ utility_autotests := \
|
|||
src/utility/tests/pack_bytes_autotest.c \
|
||||
src/utility/tests/shift_array_autotest.c \
|
||||
|
||||
|
||||
# benchmarks
|
||||
utility_benchmarks :=
|
||||
utility_benchmarks := \
|
||||
src/utility/bench/byte_utilities_benchmark.c \
|
||||
|
||||
|
||||
#
|
||||
|
@ -1155,28 +1169,35 @@ benchmark_sources := \
|
|||
.PHONY: all
|
||||
|
||||
# Shared library
|
||||
ARCHIVE_LIB = libliquid.a
|
||||
#MINGW:
|
||||
SHARED_LIB = libliquid.dll
|
||||
|
||||
# liquid library definition
|
||||
libliquid.a: $(objects)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
$(RANLIB) $@
|
||||
|
||||
#
|
||||
# darwin
|
||||
#
|
||||
libliquid.ar: $(objects)
|
||||
${LIBTOOL} -static -o $@ $^
|
||||
|
||||
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
|
||||
libliquid.dylib: $(objects)
|
||||
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
|
||||
#
|
||||
# linux, et al
|
||||
#
|
||||
libliquid.a: $(objects)
|
||||
${AR} r $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
libliquid.so: libliquid.a
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS)
|
||||
#MINGW:
|
||||
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)
|
||||
|
||||
all: libliquid.a $(SHARED_LIB)
|
||||
# static archive and library objects
|
||||
all: ${ARCHIVE_LIB} ${SHARED_LIB}
|
||||
|
||||
##
|
||||
## TARGET : help - print list of targets
|
||||
|
@ -1196,7 +1217,7 @@ install: all
|
|||
@echo ""
|
||||
mkdir -p $(DESTDIR)$(exec_prefix)$(libdir)
|
||||
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
|
||||
@echo ""
|
||||
@echo "---------------------------------------------------------"
|
||||
|
@ -1219,8 +1240,8 @@ install: all
|
|||
uninstall:
|
||||
@echo "uninstalling..."
|
||||
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/libliquid.a
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/$(SHARED_LIB)
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${ARCHIVE_LIB}
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${SHARED_LIB}
|
||||
@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
|
||||
# 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)
|
||||
|
||||
# run the autotest program
|
||||
check: $(autotest_prog)
|
||||
./$(autotest_prog) -v
|
||||
./$(autotest_prog) -v -o autotest.json
|
||||
|
||||
# let 'make test' be an alias for 'make check'
|
||||
test: check
|
||||
|
@ -1290,6 +1311,7 @@ clean-check:
|
|||
$(RM) autotest/autotestlib.o
|
||||
$(RM) $(autotest_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
|
||||
# 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)
|
||||
|
||||
# run the benchmark program
|
||||
|
@ -1341,7 +1363,7 @@ scripts/benchmark_compare : % : %.c
|
|||
bench/fftbench.o : %.o : %.c
|
||||
$(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)
|
||||
|
||||
# clean up the generated files
|
||||
|
@ -1383,6 +1405,7 @@ example_programs := \
|
|||
examples/cpfskmodem_psd_example \
|
||||
examples/cvsd_example \
|
||||
examples/detector_cccf_example \
|
||||
examples/dsssframesync_example \
|
||||
examples/dotprod_rrrf_example \
|
||||
examples/dotprod_cccf_example \
|
||||
examples/eqlms_cccf_block_example \
|
||||
|
@ -1405,9 +1428,11 @@ example_programs := \
|
|||
examples/firdespm_lowpass_example \
|
||||
examples/firhilb_example \
|
||||
examples/firhilb_decim_example \
|
||||
examples/firhilb_filter_example \
|
||||
examples/firhilb_interp_example \
|
||||
examples/firpfbch2_crcf_example \
|
||||
examples/firinterp_crcf_example \
|
||||
examples/firinterp_firdecim_crcf_example \
|
||||
examples/firpfbch_crcf_example \
|
||||
examples/firpfbch_crcf_analysis_example \
|
||||
examples/firpfbch_crcf_synthesis_example \
|
||||
|
@ -1416,6 +1441,7 @@ example_programs := \
|
|||
examples/framesync64_example \
|
||||
examples/freqmodem_example \
|
||||
examples/fskmodem_example \
|
||||
examples/fskmodem_waterfall_example \
|
||||
examples/gasearch_example \
|
||||
examples/gasearch_knapsack_example \
|
||||
examples/gmskframesync_example \
|
||||
|
@ -1432,6 +1458,8 @@ example_programs := \
|
|||
examples/iirfilt_cccf_example \
|
||||
examples/iirfilt_crcf_example \
|
||||
examples/iirfilt_crcf_dcblocker_example \
|
||||
examples/iirhilb_example \
|
||||
examples/iirhilb_filter_example \
|
||||
examples/iirinterp_crcf_example \
|
||||
examples/kbd_window_example \
|
||||
examples/lpc_example \
|
||||
|
@ -1446,13 +1474,16 @@ example_programs := \
|
|||
examples/msequence_example \
|
||||
examples/msourcecf_example \
|
||||
examples/msresamp_crcf_example \
|
||||
examples/msresamp_crcf_noise_example \
|
||||
examples/msresamp2_crcf_example \
|
||||
examples/nco_crcf_mix_example \
|
||||
examples/nco_example \
|
||||
examples/nco_pll_example \
|
||||
examples/nco_pll_modem_example \
|
||||
examples/nyquist_filter_example \
|
||||
examples/ofdmflexframesync_example \
|
||||
examples/ofdmframesync_example \
|
||||
examples/ordfilt_rrrf_example \
|
||||
examples/packetizer_example \
|
||||
examples/packetizer_soft_example \
|
||||
examples/pll_example \
|
||||
|
@ -1467,7 +1498,9 @@ example_programs := \
|
|||
examples/quantize_example \
|
||||
examples/random_histogram_example \
|
||||
examples/repack_bytes_example \
|
||||
examples/rresamp_crcf_example \
|
||||
examples/resamp_crcf_example \
|
||||
examples/resamp_crcf_noise_example \
|
||||
examples/resamp2_cccf_example \
|
||||
examples/resamp2_crcf_example \
|
||||
examples/resamp2_crcf_decim_example \
|
||||
|
@ -1477,7 +1510,6 @@ example_programs := \
|
|||
examples/scramble_example \
|
||||
examples/smatrix_example \
|
||||
examples/spgramcf_example \
|
||||
examples/spgramcf_waterfall_example \
|
||||
examples/spgramf_example \
|
||||
examples/spwaterfallcf_example \
|
||||
examples/symsync_crcf_example \
|
||||
|
@ -1499,7 +1531,7 @@ examples: $(example_programs)
|
|||
# NOTE: linked libraries must come _after_ the target program
|
||||
$(example_objects): %.o : %.c
|
||||
|
||||
$(example_programs): % : %.o libliquid.a
|
||||
$(example_programs): % : %.o ${ARCHIVE_LIB}
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||
|
||||
# clean examples
|
||||
|
@ -1605,6 +1637,7 @@ sandbox_programs = \
|
|||
sandbox/symsync_eqlms_test \
|
||||
sandbox/svd_test \
|
||||
sandbox/thiran_allpass_iir_test \
|
||||
sandbox/throttle_test \
|
||||
sandbox/vectorcf_test \
|
||||
|
||||
# sandbox/packetizer_persistent_ber_test
|
||||
|
@ -1621,7 +1654,7 @@ SANDBOX_LDFLAGS = $(LDFLAGS) -lfftw3f
|
|||
# NOTE: linked libraries must come _after_ the target program
|
||||
$(sandbox_objects): %.o : %.c
|
||||
|
||||
$(sandbox_programs): % : %.o libliquid.a
|
||||
$(sandbox_programs): % : %.o ${ARCHIVE_LIB}
|
||||
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
# clean sandbox
|
||||
|
@ -1630,6 +1663,22 @@ clean-sandbox:
|
|||
$(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
|
||||
##
|
||||
|
@ -1666,10 +1715,8 @@ clean-modules:
|
|||
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
|
||||
$(RM) src/libliquid.o
|
||||
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox
|
||||
$(RM) $(extra_clean)
|
||||
$(RM) libliquid.a
|
||||
$(RM) $(SHARED_LIB)
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean-tools
|
||||
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
|
||||
|
||||
##
|
||||
## TARGET : distclean - removes everything except the originally distributed files
|
||||
|
|
|
@ -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
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -23,8 +23,7 @@
|
|||
#
|
||||
# Targets:
|
||||
# all : dynamic shared-library object (e.g. libliquid.so)
|
||||
# install : install the dynamic shared library object and
|
||||
# header file(s)
|
||||
# install : install the dynamic shared library object and headers
|
||||
# uninstall : uninstall the library and header file(s)
|
||||
# clean : clean all targets (bench, check, examples, etc)
|
||||
# distclean : removes everything except the originally distributed files
|
||||
|
@ -57,21 +56,21 @@ include_dirs := . include
|
|||
CC := gcc
|
||||
MV := mv -f
|
||||
RM := rm -f
|
||||
SED := /usr/bin/sed
|
||||
GREP := /usr/bin/grep
|
||||
SED := /bin/sed
|
||||
GREP := /bin/grep
|
||||
AR := ar
|
||||
LIBTOOL :=
|
||||
RANLIB := ranlib
|
||||
|
||||
# flags
|
||||
INCLUDE_CFLAGS = $(addprefix -I ,$(include_dirs))
|
||||
#MINGW: optimizations goes here
|
||||
CONFIG_CFLAGS = -O3 -msse3 -ffast-math -static-libgcc -static-libstdc++
|
||||
#MINGW: optimizations goes here, use SSSE42 for 64bit
|
||||
CONFIG_CFLAGS = -O3 -msse4.2 -ffast-math -static-libgcc -static-libstdc++
|
||||
CPPFLAGS = $(INCLUDE_CFLAGS)
|
||||
CFLAGS = $(CONFIG_CFLAGS) -Wall -fPIC
|
||||
LDFLAGS =
|
||||
#MINGW:
|
||||
LIBS += -static-libgcc -static-libstdc++
|
||||
ARFLAGS = r
|
||||
PATHSEP = /
|
||||
|
||||
#
|
||||
|
@ -446,10 +445,13 @@ filter_includes := \
|
|||
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/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/symsync.c \
|
||||
|
||||
|
@ -489,6 +491,7 @@ filter_autotests := \
|
|||
src/filter/tests/iirfilt_xxxf_autotest.c \
|
||||
src/filter/tests/iirfiltsos_rrrf_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/resamp2_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/iirfilt_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/resamp2_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_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/framesyncstats.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_cccf.o : %.o : %.c $(include_headers) src/framing/src/bsync.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)
|
||||
src/framing/src/framedatastats.o : %.o : %.c $(include_headers)
|
||||
src/framing/src/framesyncstats.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 := \
|
||||
src/math/tests/gcd_autotest.c \
|
||||
src/math/tests/kbd_autotest.c \
|
||||
src/math/tests/math_autotest.c \
|
||||
src/math/tests/math_bessel_autotest.c \
|
||||
src/math/tests/math_gamma_autotest.c \
|
||||
src/math/tests/math_complex_autotest.c \
|
||||
src/math/tests/polynomial_autotest.c \
|
||||
src/math/tests/prime_autotest.c \
|
||||
|
||||
|
||||
math_benchmarks := \
|
||||
|
@ -887,15 +897,18 @@ multichannel_benchmarks := \
|
|||
nco_objects := \
|
||||
src/nco/src/nco_crcf.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.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_frequency_autotest.c \
|
||||
src/nco/tests/nco_crcf_mix_autotest.c \
|
||||
src/nco/tests/nco_crcf_phase_autotest.c \
|
||||
src/nco/tests/nco_crcf_pll_autotest.c \
|
||||
src/nco/tests/unwrap_phase_autotest.c \
|
||||
|
@ -1023,6 +1036,7 @@ utility_objects := \
|
|||
src/utility/src/msb_index.o \
|
||||
src/utility/src/pack_bytes.o \
|
||||
src/utility/src/shift_array.o \
|
||||
src/utility/src/utility.o \
|
||||
|
||||
$(utility_objects) : %.o : %.c $(include_headers)
|
||||
|
||||
|
@ -1033,9 +1047,9 @@ utility_autotests := \
|
|||
src/utility/tests/pack_bytes_autotest.c \
|
||||
src/utility/tests/shift_array_autotest.c \
|
||||
|
||||
|
||||
# benchmarks
|
||||
utility_benchmarks :=
|
||||
utility_benchmarks := \
|
||||
src/utility/bench/byte_utilities_benchmark.c \
|
||||
|
||||
|
||||
#
|
||||
|
@ -1155,28 +1169,35 @@ benchmark_sources := \
|
|||
.PHONY: all
|
||||
|
||||
# Shared library
|
||||
ARCHIVE_LIB = libliquid.a
|
||||
#MINGW:
|
||||
SHARED_LIB = libliquid.dll
|
||||
|
||||
# liquid library definition
|
||||
libliquid.a: $(objects)
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
$(RANLIB) $@
|
||||
|
||||
#
|
||||
# darwin
|
||||
#
|
||||
libliquid.ar: $(objects)
|
||||
${LIBTOOL} -static -o $@ $^
|
||||
|
||||
# gcc -dynamiclib -install_name libliquid.dylib -o libliquid.dylib libmodem.a libutility.a
|
||||
libliquid.dylib: $(objects)
|
||||
$(CC) -dynamiclib -install_name $@ -o $@ $^ $(LDFLAGS) $(LIBS)
|
||||
|
||||
#
|
||||
# linux, et al
|
||||
#
|
||||
libliquid.a: $(objects)
|
||||
${AR} r $@ $^
|
||||
${RANLIB} $@
|
||||
|
||||
libliquid.so: libliquid.a
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) -shared -Xlinker -soname=$@ -o $@ -Wl,-whole-archive $^ -Wl,-no-whole-archive $(LIBS)
|
||||
#MINGW:
|
||||
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)
|
||||
|
||||
all: libliquid.a $(SHARED_LIB)
|
||||
# static archive and library objects
|
||||
all: ${ARCHIVE_LIB} ${SHARED_LIB}
|
||||
|
||||
##
|
||||
## TARGET : help - print list of targets
|
||||
|
@ -1196,7 +1217,7 @@ install: all
|
|||
@echo ""
|
||||
mkdir -p $(DESTDIR)$(exec_prefix)$(libdir)
|
||||
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
|
||||
@echo ""
|
||||
@echo "---------------------------------------------------------"
|
||||
|
@ -1219,8 +1240,8 @@ install: all
|
|||
uninstall:
|
||||
@echo "uninstalling..."
|
||||
$(RM) $(addprefix $(DESTDIR)$(prefix)/include/liquid/, $(headers_install))
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/libliquid.a
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/$(SHARED_LIB)
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${ARCHIVE_LIB}
|
||||
$(RM) $(DESTDIR)$(exec_prefix)$(libdir)/${SHARED_LIB}
|
||||
@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
|
||||
# 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)
|
||||
|
||||
# run the autotest program
|
||||
check: $(autotest_prog)
|
||||
./$(autotest_prog) -v
|
||||
./$(autotest_prog) -v -o autotest.json
|
||||
|
||||
# let 'make test' be an alias for 'make check'
|
||||
test: check
|
||||
|
@ -1290,6 +1311,7 @@ clean-check:
|
|||
$(RM) autotest/autotestlib.o
|
||||
$(RM) $(autotest_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
|
||||
# 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)
|
||||
|
||||
# run the benchmark program
|
||||
|
@ -1341,7 +1363,7 @@ scripts/benchmark_compare : % : %.c
|
|||
bench/fftbench.o : %.o : %.c
|
||||
$(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)
|
||||
|
||||
# clean up the generated files
|
||||
|
@ -1383,6 +1405,7 @@ example_programs := \
|
|||
examples/cpfskmodem_psd_example \
|
||||
examples/cvsd_example \
|
||||
examples/detector_cccf_example \
|
||||
examples/dsssframesync_example \
|
||||
examples/dotprod_rrrf_example \
|
||||
examples/dotprod_cccf_example \
|
||||
examples/eqlms_cccf_block_example \
|
||||
|
@ -1405,9 +1428,11 @@ example_programs := \
|
|||
examples/firdespm_lowpass_example \
|
||||
examples/firhilb_example \
|
||||
examples/firhilb_decim_example \
|
||||
examples/firhilb_filter_example \
|
||||
examples/firhilb_interp_example \
|
||||
examples/firpfbch2_crcf_example \
|
||||
examples/firinterp_crcf_example \
|
||||
examples/firinterp_firdecim_crcf_example \
|
||||
examples/firpfbch_crcf_example \
|
||||
examples/firpfbch_crcf_analysis_example \
|
||||
examples/firpfbch_crcf_synthesis_example \
|
||||
|
@ -1416,6 +1441,7 @@ example_programs := \
|
|||
examples/framesync64_example \
|
||||
examples/freqmodem_example \
|
||||
examples/fskmodem_example \
|
||||
examples/fskmodem_waterfall_example \
|
||||
examples/gasearch_example \
|
||||
examples/gasearch_knapsack_example \
|
||||
examples/gmskframesync_example \
|
||||
|
@ -1432,6 +1458,8 @@ example_programs := \
|
|||
examples/iirfilt_cccf_example \
|
||||
examples/iirfilt_crcf_example \
|
||||
examples/iirfilt_crcf_dcblocker_example \
|
||||
examples/iirhilb_example \
|
||||
examples/iirhilb_filter_example \
|
||||
examples/iirinterp_crcf_example \
|
||||
examples/kbd_window_example \
|
||||
examples/lpc_example \
|
||||
|
@ -1446,13 +1474,16 @@ example_programs := \
|
|||
examples/msequence_example \
|
||||
examples/msourcecf_example \
|
||||
examples/msresamp_crcf_example \
|
||||
examples/msresamp_crcf_noise_example \
|
||||
examples/msresamp2_crcf_example \
|
||||
examples/nco_crcf_mix_example \
|
||||
examples/nco_example \
|
||||
examples/nco_pll_example \
|
||||
examples/nco_pll_modem_example \
|
||||
examples/nyquist_filter_example \
|
||||
examples/ofdmflexframesync_example \
|
||||
examples/ofdmframesync_example \
|
||||
examples/ordfilt_rrrf_example \
|
||||
examples/packetizer_example \
|
||||
examples/packetizer_soft_example \
|
||||
examples/pll_example \
|
||||
|
@ -1467,7 +1498,9 @@ example_programs := \
|
|||
examples/quantize_example \
|
||||
examples/random_histogram_example \
|
||||
examples/repack_bytes_example \
|
||||
examples/rresamp_crcf_example \
|
||||
examples/resamp_crcf_example \
|
||||
examples/resamp_crcf_noise_example \
|
||||
examples/resamp2_cccf_example \
|
||||
examples/resamp2_crcf_example \
|
||||
examples/resamp2_crcf_decim_example \
|
||||
|
@ -1477,7 +1510,6 @@ example_programs := \
|
|||
examples/scramble_example \
|
||||
examples/smatrix_example \
|
||||
examples/spgramcf_example \
|
||||
examples/spgramcf_waterfall_example \
|
||||
examples/spgramf_example \
|
||||
examples/spwaterfallcf_example \
|
||||
examples/symsync_crcf_example \
|
||||
|
@ -1499,7 +1531,7 @@ examples: $(example_programs)
|
|||
# NOTE: linked libraries must come _after_ the target program
|
||||
$(example_objects): %.o : %.c
|
||||
|
||||
$(example_programs): % : %.o libliquid.a
|
||||
$(example_programs): % : %.o ${ARCHIVE_LIB}
|
||||
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
|
||||
|
||||
# clean examples
|
||||
|
@ -1605,6 +1637,7 @@ sandbox_programs = \
|
|||
sandbox/symsync_eqlms_test \
|
||||
sandbox/svd_test \
|
||||
sandbox/thiran_allpass_iir_test \
|
||||
sandbox/throttle_test \
|
||||
sandbox/vectorcf_test \
|
||||
|
||||
# sandbox/packetizer_persistent_ber_test
|
||||
|
@ -1621,7 +1654,7 @@ SANDBOX_LDFLAGS = $(LDFLAGS) -lfftw3f
|
|||
# NOTE: linked libraries must come _after_ the target program
|
||||
$(sandbox_objects): %.o : %.c
|
||||
|
||||
$(sandbox_programs): % : %.o libliquid.a
|
||||
$(sandbox_programs): % : %.o ${ARCHIVE_LIB}
|
||||
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)
|
||||
|
||||
# clean sandbox
|
||||
|
@ -1630,6 +1663,22 @@ clean-sandbox:
|
|||
$(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
|
||||
##
|
||||
|
@ -1666,10 +1715,8 @@ clean-modules:
|
|||
$(RM) src/vector/src/*.o src/vector/bench/*.o src/vector/tests/*.o
|
||||
$(RM) src/libliquid.o
|
||||
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox
|
||||
$(RM) $(extra_clean)
|
||||
$(RM) libliquid.a
|
||||
$(RM) $(SHARED_LIB)
|
||||
clean: clean-modules clean-autoscript clean-check clean-bench clean-examples clean-sandbox clean-tools
|
||||
$(RM) ${ARCHIVE_LIB} ${SHARED_LIB} $(extra_clean)
|
||||
|
||||
##
|
||||
## 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.
Loading…
Reference in New Issue