You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2023/03/08 17:43:58 UTC

[nuttx-apps] branch master updated: Adding sdr group with liquid-dsp library

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git


The following commit(s) were added to refs/heads/master by this push:
     new 699b7c6a2 Adding sdr group with liquid-dsp library
699b7c6a2 is described below

commit 699b7c6a22dc5f4829c21aca66ccab032daf0cc6
Author: jturnsek <je...@gmail.com>
AuthorDate: Sun Mar 5 21:14:18 2023 +0100

    Adding sdr group with liquid-dsp library
---
 sdr/.gitignore           |   1 +
 sdr/Make.defs            |  21 +++
 sdr/Makefile             |  23 ++++
 sdr/liquid_dsp/Kconfig   |  10 ++
 sdr/liquid_dsp/Make.defs |  27 ++++
 sdr/liquid_dsp/Makefile  | 244 +++++++++++++++++++++++++++++++++++
 sdr/liquid_dsp/config.h  | 326 +++++++++++++++++++++++++++++++++++++++++++++++
 7 files changed, 652 insertions(+)

diff --git a/sdr/.gitignore b/sdr/.gitignore
new file mode 100644
index 000000000..9e1d2593e
--- /dev/null
+++ b/sdr/.gitignore
@@ -0,0 +1 @@
+/Kconfig
diff --git a/sdr/Make.defs b/sdr/Make.defs
new file mode 100644
index 000000000..0a48f77f2
--- /dev/null
+++ b/sdr/Make.defs
@@ -0,0 +1,21 @@
+############################################################################
+# apps/sdr/Make.defs
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+include $(wildcard $(APPDIR)/sdr/*/Make.defs)
diff --git a/sdr/Makefile b/sdr/Makefile
new file mode 100644
index 000000000..6a32e03fd
--- /dev/null
+++ b/sdr/Makefile
@@ -0,0 +1,23 @@
+############################################################################
+# apps/sdr/Makefile
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################
+
+MENUDESC = "Software Define Radio Libraries"
+
+include $(APPDIR)/Directory.mk
diff --git a/sdr/liquid_dsp/Kconfig b/sdr/liquid_dsp/Kconfig
new file mode 100644
index 000000000..5a07e3b93
--- /dev/null
+++ b/sdr/liquid_dsp/Kconfig
@@ -0,0 +1,10 @@
+#
+# For a description of the syntax of this configuration file,
+# see the file kconfig-language.txt in the NuttX tools repository.
+#
+
+config SDR_LIQUID_DSP
+	bool "Liquid DSP Library"
+	default n
+	---help---
+		Enable the Liquid DSP Library - https://liquidsdr.org
diff --git a/sdr/liquid_dsp/Make.defs b/sdr/liquid_dsp/Make.defs
new file mode 100644
index 000000000..eff26a4a8
--- /dev/null
+++ b/sdr/liquid_dsp/Make.defs
@@ -0,0 +1,27 @@
+############################################################################
+# apps/sdr/liquid_dsp/Make.defs
+# Adds selected applications to apps/ build
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################/
+
+ifneq ($(CONFIG_SDR_LIQUID_DSP),)
+CONFIGURED_APPS += $(APPDIR)/sdr/liquid_dsp
+
+CFLAGS += ${INCDIR_PREFIX}$(APPDIR)/sdr/liquid_dsp/liquid-dsp/include
+CXXFLAGS += ${INCDIR_PREFIX}$(APPDIR)/sdr/liquid_dsp/liquid-dsp/include
+endif
diff --git a/sdr/liquid_dsp/Makefile b/sdr/liquid_dsp/Makefile
new file mode 100644
index 000000000..88c3188f3
--- /dev/null
+++ b/sdr/liquid_dsp/Makefile
@@ -0,0 +1,244 @@
+###########################################################################
+# apps/sdr/liquid_dsp/Makefile
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.  The
+# ASF licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the
+# License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+############################################################################/
+
+include $(APPDIR)/Make.defs
+
+LIQUID_DSP_VERSION  = 1.4.0
+LIQUID_DSP_UNPACK   = liquid-dsp
+LIQUID_DSP_TARBALL  = v$(LIQUID_DSP_VERSION).tar.gz
+LIQUID_DSP_URL_BASE = https://github.com/jgaeddert/liquid-dsp/archive
+LIQUID_DSP_URL      = $(LIQUID_DSP_URL_BASE)/$(LIQUID_DSP_TARBALL)
+
+$(LIQUID_DSP_TARBALL):
+	$(Q) echo "Downloading $(LIQUID_DSP_TARBALL)"
+	$(Q) curl -O -L $(LIQUID_DSP_URL)
+
+$(LIQUID_DSP_UNPACK): $(LIQUID_DSP_TARBALL)
+	$(Q) echo "Unpacking $(LIQUID_DSP_TARBALL) to $(LIQUID_DSP_UNPACK)"
+	$(Q) tar xzvf $(LIQUID_DSP_TARBALL)
+	$(Q) mv liquid-dsp-$(LIQUID_DSP_VERSION) $(LIQUID_DSP_UNPACK)
+
+$(LIQUID_DSP_UNPACK)/.patch: $(LIQUID_DSP_UNPACK)
+	$(Q) touch $(LIQUID_DSP_UNPACK)/.patch
+
+CFLAGS += -std=c99
+CFLAGS += ${shell $(INCDIR) "$(CC)" $(APPDIR)/sdr/liquid_dsp}
+CFLAGS += -DM_SQRT1_2=0.7071067811865475244008443621048490
+CFLAGS += -DM_SQRT2=1.4142135623730950488016887242096981
+CFLAGS += -DM_PI=3.1415926535897932384626433832795029
+CFLAGS += -DM_LN2=0.6931471805599453094172321214581765
+CFLAGS += -DM_PI_2=1.5707963267948966192313216916397514
+CFLAGS += -DM_2_PI=0.6366197723675813430755350534900574
+
+
+CSRCS = $(LIQUID_DSP_UNPACK)/src/agc/src/agc_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/agc/src/agc_rrrf.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/audio/src/cvsd.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/buffer/src/bufferf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/buffer/src/buffercf.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/channel/src/channel_cccf.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/dotprod/src/dotprod_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/dotprod/src/dotprod_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/dotprod/src/dotprod_rrrf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/dotprod/src/sumsq.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/equalization/src/equalizer_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/equalization/src/equalizer_rrrf.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/crc.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_conv.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_conv_poly.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_conv_pmatrix.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_conv_punctured.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_golay2412.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming74.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming84.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming128.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming1511.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming3126.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_hamming128_gentab.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_pass.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_rep3.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_rep5.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_rs.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_secded2216.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_secded3932.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/fec_secded7264.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/interleaver.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/packetizer.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fec/src/sumproduct.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fft/src/fftf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fft/src/spgramcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fft/src/spgramf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/fft/src/fft_utilities.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/bessel.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/butter.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/cheby1.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/cheby2.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/ellip.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/filter_rrrf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/filter_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/filter_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/firdes.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/firdespm.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/fnyquist.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/gmsk.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/group_delay.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/hM3.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/iirdes.pll.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/iirdes.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/lpc.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/rcos.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/rkaiser.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/filter/src/rrcos.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bpacketgen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bpacketsync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bpresync_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bsync_rrrf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bsync_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/bsync_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/detector_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/dsssframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/dsssframesync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/framedatastats.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/framesyncstats.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/framegen64.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/framesync64.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/flexframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/flexframesync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/fskframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/fskframesync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/gmskframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/gmskframesync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/msourcecf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/ofdmflexframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/ofdmflexframesync.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/presync_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/symstreamcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/symstreamrcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/symtrack_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/qdetector_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/qpacketmodem.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/qpilotgen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/framing/src/qpilotsync.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/poly.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/polyc.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/polyf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/polycf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/math.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/math.bessel.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/math.gamma.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/math.complex.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/math.trig.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/modular_arithmetic.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/poly.findroots.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/math/src/windows.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/matrix.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/matrixf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/matrixc.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/matrixcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/smatrix.common.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/smatrixb.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/smatrixf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/matrix/src/smatrixi.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/ampmodem.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/cpfskdem.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/cpfskmod.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/fskdem.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/fskmod.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/gmskdem.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/gmskmod.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/modemcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/modem_utilities.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/modem_apsk_const.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/modem/src/modem_arb_const.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/multichannel/src/firpfbch_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/multichannel/src/firpfbch_cccf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/multichannel/src/ofdmframe.common.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/multichannel/src/ofdmframegen.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/multichannel/src/ofdmframesync.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/nco/src/nco_crcf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/nco/src/nco.utilities.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/nco/src/synth_crcf.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/chromosome.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/gasearch.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/gradsearch.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/optim.common.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/qnsearch.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/optim/src/utilities.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/quantization/src/compand.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/quantization/src/quantizercf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/quantization/src/quantizerf.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/quantization/src/quantizer.inline.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/rand.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randn.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randexp.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randweib.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randgamma.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randnakm.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/randricek.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/random/src/scramble.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/sequence/src/bsequence.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/sequence/src/msequence.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/bshift_array.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/byte_utilities.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/msb_index.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/pack_bytes.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/shift_array.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/utility/src/utility.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorf_add.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorf_norm.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorf_mul.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorf_trig.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorcf_add.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorcf_norm.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorcf_mul.port.c
+CSRCS += $(LIQUID_DSP_UNPACK)/src/vector/src/vectorcf_trig.port.c
+
+CSRCS += $(LIQUID_DSP_UNPACK)/src/libliquid.c
+
+ifeq ($(wildcard $(LIQUID_DSP_UNPACK)/.git),)
+context:: $(LIQUID_DSP_UNPACK)/.patch
+
+distclean::
+	$(call DELDIR, $(LIQUID_DSP_UNPACK))
+	$(call DELFILE, $(LIQUID_DSP_TARBALL))
+endif
+
+include $(APPDIR)/Application.mk
diff --git a/sdr/liquid_dsp/config.h b/sdr/liquid_dsp/config.h
new file mode 100644
index 000000000..50f7f4433
--- /dev/null
+++ b/sdr/liquid_dsp/config.h
@@ -0,0 +1,326 @@
+/****************************************************************************
+ * apps/sdr/liquid_dsp/config.h
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+#ifndef __APPS_SRC_LIQUID_DSP_CONFIG_H
+#define __APPS_SRC_LIQUID_DSP_CONFIG_H
+
+/* Support AVX (Advanced Vector Extensions) instructions */
+
+#define HAVE_AVX 0
+
+/* Define to 1 if you have the `cargf' function. */
+
+#define HAVE_CARGF 1
+
+/* Define to 1 if you have the `cexpf' function. */
+
+#define HAVE_CEXPF 1
+
+/* Define to 1 if you have the `cimagf' function. */
+
+#define HAVE_CIMAGF 1
+
+/* Define to 1 if you have the <complex.h> header file. */
+
+#define HAVE_COMPLEX_H 1
+
+/* Define to 1 if you have the `cosf' function. */
+
+#define HAVE_COSF 1
+
+/* Define to 1 if you have the `crealf' function. */
+
+#define HAVE_CREALF 1
+
+/* Define to 1 if you have the <emmintrin.h> header file. */
+
+#define HAVE_EMMINTRIN_H 0
+
+/* Define to 1 if you have the `expf' function. */
+
+#define HAVE_EXPF 1
+
+/* Define to 1 if you have the <fec.h> header file. */
+
+/* #undef HAVE_FEC_H */
+
+/* Define to 1 if you have the <fftw3.h> header file. */
+
+/* #undef HAVE_FFTW3_H */
+
+/* Define to 1 if you have the <float.h> header file. */
+
+#define HAVE_FLOAT_H 1
+
+/* Define to 1 if you have the `free' function. */
+
+#define HAVE_FREE 1
+
+/* Define to 1 if you have the <getopt.h> header file. */
+
+#define HAVE_GETOPT_H 1
+
+/* Define to 1 if you have the <immintrin.h> header file. */
+
+#define HAVE_IMMINTRIN_H 0
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `c' library (-lc). */
+
+#define HAVE_LIBC 1
+
+/* Define to 1 if you have the `fec' library (-lfec). */
+
+/* #undef HAVE_LIBFEC */
+
+/* Define to 1 if you have the `fftw3f' library (-lfftw3f). */
+
+/* #undef HAVE_LIBFFTW3F */
+
+/* Define to 1 if you have the `m' library (-lm). */
+
+#define HAVE_LIBM 1
+
+/* Define to 1 if you have the <limits.h> header file. */
+
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `malloc' function. */
+
+#define HAVE_MALLOC 1
+
+/* Define to 1 if you have the `memmove' function. */
+
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the `memset' function. */
+
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have the <mmintrin.h> header file. */
+
+#define HAVE_MMINTRIN_H 0
+
+/* Support MMX instructions */
+
+#define HAVE_MMX 0
+
+/* Define to 1 if you have the <pmmintrin.h> header file. */
+
+#define HAVE_PMMINTRIN_H 0
+
+/* Define to 1 if you have the `realloc' function. */
+
+#define HAVE_REALLOC 1
+
+/* Define to 1 if you have the `sinf' function. */
+
+#define HAVE_SINF 1
+
+/* Define to 1 if you have the <smmintrin.h> header file. */
+
+#define HAVE_SMMINTRIN_H 0
+
+/* Define to 1 if you have the `sqrtf' function. */
+
+#define HAVE_SQRTF 1
+
+/* Support SSE (Streaming SIMD Extensions) instructions */
+
+#define HAVE_SSE 0
+
+/* Support SSE2 (Streaming SIMD Extensions 2) instructions */
+
+#define HAVE_SSE2 0
+
+/* Support SSE3 (Streaming SIMD Extensions 3) instructions */
+
+#define HAVE_SSE3 0
+
+/* Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions */
+
+#define HAVE_SSE41 0
+
+/* Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions */
+
+#define HAVE_SSE42 0
+
+/* Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions */
+
+#define HAVE_SSSE3 0
+
+/* Define to 1 if you have the <stdint.h> header file. */
+
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+
+#define HAVE_SYS_RESOURCE_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <tmmintrin.h> header file. */
+
+#define HAVE_TMMINTRIN_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <xmmintrin.h> header file. */
+
+#define HAVE_XMMINTRIN_H 1
+
+/* Force internal FFT even if libfftw is available */
+
+/* #undef LIQUID_FFTOVERRIDE */
+
+/* Force overriding of SIMD (use portable C code) */
+
+/* #undef LIQUID_SIMDOVERRIDE */
+
+/* Enable strict program exit on error */
+
+/* #undef LIQUID_STRICT_EXIT */
+
+/* Suppress printing errors to stderr */
+
+/* #undef LIQUID_SUPPRESS_ERROR_OUTPUT */
+
+/* Define to the address where bug reports for this package should be sent. */
+
+#define PACKAGE_BUGREPORT "joseph@liquidsdr.org"
+
+/* Define to the full name of this package. */
+
+#define PACKAGE_NAME "liquid-dsp"
+
+/* Define to the full name and version of this package. */
+
+#define PACKAGE_STRING "liquid-dsp 1.4.0"
+
+/* Define to the one symbol short name of this package. */
+
+#define PACKAGE_TARNAME "liquid-dsp"
+
+/* Define to the home page for this package. */
+
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+
+#define PACKAGE_VERSION "1.4.0"
+
+/* The size of `int', as computed by sizeof. */
+
+#define SIZEOF_INT 4
+
+/* The size of `long int', as computed by sizeof. */
+
+#define SIZEOF_LONG_INT 8
+
+/* The size of `long long int', as computed by sizeof. */
+
+#define SIZEOF_LONG_LONG_INT 8
+
+/* The size of `short int', as computed by sizeof. */
+
+#define SIZEOF_SHORT_INT 2
+
+/* Define to 1 if you have the ANSI C header files. */
+
+#define STDC_HEADERS 1
+
+/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
+ * <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed,
+ * the #define below would cause a syntax error.
+ */
+
+/* #undef _UINT32_T */
+
+/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>,
+ * <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed,
+ * the #define below would cause a syntax error.
+ */
+
+/* #undef _UINT8_T */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ * calls it, or to nothing if 'inline' is not supported under any name.
+ */
+
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to rpl_malloc if the replacement function should be used. */
+
+/* #undef malloc */
+
+/* Define to rpl_realloc if the replacement function should be used. */
+
+/* #undef realloc */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+
+/* #undef size_t */
+
+/* Define to the type of an unsigned integer type of width exactly 32 bits if
+ * such a type exists and the standard includes do not define it.
+ */
+
+/* #undef uint32_t */
+
+/* Define to the type of an unsigned integer type of width exactly 8 bits if
+ * such a type exists and the standard includes do not define it.
+ */
+
+/* #undef uint8_t */
+
+#endif /* __APPS_SRC_LIQUID_DSP_CONFIG_H */