diff options
| -rw-r--r-- | Makefile.am | 148 | ||||
| -rw-r--r-- | configure.ac | 7 | ||||
| -rw-r--r-- | doc/example.ini | 2 | ||||
| -rw-r--r-- | lib/Makefile.am | 19 | ||||
| -rw-r--r-- | m4/pkg.m4 | 214 | ||||
| -rw-r--r-- | src/Makefile.am | 127 | 
6 files changed, 364 insertions, 153 deletions
| diff --git a/Makefile.am b/Makefile.am index c0b3024..3f5d639 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,8 +18,152 @@  # You should have received a copy of the GNU General Public License  # along with ODR-DabMod.  If not, see <http://www.gnu.org/licenses/>. -SUBDIRS = src lib -  ACLOCAL_AMFLAGS = -I m4  EXTRA_DIST = COPYING NEWS README.md AUTHORS ChangeLog TODO doc + +if IS_GIT_REPO +GITVERSION_FLAGS = -DGITVERSION="\"`git describe`\"" +else +GITVERSION_FLAGS = +endif + +if HAVE_SSE +SIMD_CFLAGS = -msse -msse2 +else +SIMD_CFLAGS = +endif + +bin_PROGRAMS = odr-dabmod + +FFT_DIR=lib/kiss_fft129 +FFT_LDADD= + +if USE_KISS_FFT +FFT_INC=-I$(FFT_DIR) -I$(FFT_DIR)/tools +FFT_FLG=-ffast-math + +.PHONY: lib/kiss_fft129 + +BUILT_SOURCES=lib/kiss_fft129 + +lib/kiss_fft129: +	if [ ! -e lib/kiss_fft129/kiss_fft.c ]; then \ +		tar xzf lib/kiss_fft129.tar.gz -C lib; \ +	fi + +nodist_odr_dabmod_SOURCES = lib/kiss_fft129/kiss_fft.c \ +							lib/kiss_fft129/kiss_fft.h \ +							lib/kiss_fft129/tools/kiss_fftr.c \ +							lib/kiss_fft129/tools/kiss_fftr.h \ +							src/kiss_fftsimd.c \ +							src/kiss_fftsimd.h + +clean-local: +	rm -rf $(FFT_DIR) + +else +FFT_INC= +FFT_FLG= +endif + +odr_dabmod_CPPFLAGS = -Wall -Isrc \ +					  $(FFT_INC) $(FFT_FLG) $(SIMD_CFLAGS) $(GITVERSION_FLAGS) +odr_dabmod_LDADD    = $(FFT_LDADD) +odr_dabmod_SOURCES  = src/DabMod.cpp \ +					  src/PcDebug.h \ +					  src/porting.c \ +					  src/porting.h \ +					  src/DabModulator.cpp \ +					  src/DabModulator.h \ +					  src/Buffer.cpp \ +					  src/Buffer.h \ +					  src/ModCodec.cpp \ +					  src/ModCodec.h \ +					  src/ModPlugin.cpp \ +					  src/ModPlugin.h \ +					  src/ModFormat.cpp \ +					  src/ModFormat.h \ +					  src/EtiReader.cpp \ +					  src/EtiReader.h \ +					  src/Eti.cpp \ +					  src/Eti.h \ +					  src/FicSource.cpp \ +					  src/FicSource.h \ +					  src/FIRFilter.cpp \ +					  src/FIRFilter.h \ +					  src/ModInput.cpp \ +					  src/ModInput.h \ +					  src/PuncturingRule.cpp \ +					  src/PuncturingRule.h \ +					  src/PuncturingEncoder.cpp \ +					  src/PuncturingEncoder.h \ +					  src/SubchannelSource.cpp \ +					  src/SubchannelSource.h \ +					  src/Flowgraph.cpp \ +					  src/Flowgraph.h \ +					  src/GainControl.cpp \ +					  src/GainControl.h \ +					  src/OutputMemory.cpp \ +					  src/OutputMemory.h \ +					  src/OutputZeroMQ.cpp \ +					  src/OutputZeroMQ.h \ +					  src/TimestampDecoder.h \ +					  src/TimestampDecoder.cpp \ +					  src/OutputUHD.cpp \ +					  src/OutputUHD.h \ +					  src/ModOutput.cpp \ +					  src/ModOutput.h \ +					  src/InputMemory.cpp \ +					  src/InputMemory.h \ +					  src/InputFileReader.cpp \ +					  src/InputZeroMQReader.cpp \ +					  src/InputReader.h \ +					  src/OutputFile.cpp \ +					  src/OutputFile.h \ +					  src/FrameMultiplexer.cpp \ +					  src/FrameMultiplexer.h \ +					  src/ModMux.cpp \ +					  src/ModMux.h \ +					  src/PrbsGenerator.cpp \ +					  src/PrbsGenerator.h \ +					  src/BlockPartitioner.cpp \ +					  src/BlockPartitioner.h \ +					  src/QpskSymbolMapper.cpp \ +					  src/QpskSymbolMapper.h \ +					  src/FrequencyInterleaver.cpp \ +					  src/FrequencyInterleaver.h \ +					  src/PhaseReference.cpp \ +					  src/PhaseReference.h \ +					  src/DifferentialModulator.cpp \ +					  src/DifferentialModulator.h \ +					  src/NullSymbol.cpp \ +					  src/NullSymbol.h \ +					  src/SignalMultiplexer.cpp \ +					  src/SignalMultiplexer.h \ +					  src/CicEqualizer.cpp \ +					  src/CicEqualizer.h \ +					  src/OfdmGenerator.cpp \ +					  src/OfdmGenerator.h \ +					  src/GuardIntervalInserter.cpp \ +					  src/GuardIntervalInserter.h \ +					  src/Resampler.cpp \ +					  src/Resampler.h \ +					  src/ConvEncoder.cpp \ +					  src/ConvEncoder.h \ +					  src/TimeInterleaver.cpp \ +					  src/TimeInterleaver.h \ +					  src/ThreadsafeQueue.h \ +					  src/Log.cpp \ +					  src/Log.h \ +					  src/RemoteControl.cpp \ +					  src/RemoteControl.h \ +					  src/FormatConverter.cpp \ +					  src/FormatConverter.h \ +					  src/zmq.hpp + +dist_bin_SCRIPTS = src/crc-dwap.py + +EXTRA_DIST += lib/kiss_fft129.tar.gz +EXTRA_DIST += src/kiss_fftsimd.c src/kiss_fftsimd.h + diff --git a/configure.ac b/configure.ac index 3f21f89..a73ee39 100644 --- a/configure.ac +++ b/configure.ac @@ -21,8 +21,9 @@  AC_PREREQ(2.59)  AC_INIT([ODR-DabMod], [0.5.1], [matthias.braendli@mpb.li])  AC_CONFIG_AUX_DIR([build-aux]) +AC_CONFIG_MACRO_DIR([m4])  AC_CANONICAL_SYSTEM -AM_INIT_AUTOMAKE([-Wall foreign]) +AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])  AC_CONFIG_SRCDIR([src/DabMod.cpp])  AM_CONFIG_HEADER([config.h])  AM_SILENT_RULES([yes]) @@ -186,9 +187,7 @@ AM_CONDITIONAL([HAVE_SSE], [test "x$has_sse" = "xyes"])  AC_TYPE_SIGNAL  AC_CHECK_FUNCS([bzero floor ftime gettimeofday memset sqrt strchr strerror strtol]) -AC_CONFIG_FILES([Makefile -                 lib/Makefile -                 src/Makefile]) +AC_CONFIG_FILES([Makefile])  AC_OUTPUT  echo diff --git a/doc/example.ini b/doc/example.ini index 43adacb..cec0f23 100644 --- a/doc/example.ini +++ b/doc/example.ini @@ -150,7 +150,7 @@ txgain=2.0  ; For the B200  ; More information and measurements available on: -; http://opendigitalradio.org/index.php/USRP_B200_Measurements +; http://wiki.opendigitalradio.org/index.php/USRP_B200_Measurements  ;  ; Settings:  ;device= diff --git a/lib/Makefile.am b/lib/Makefile.am deleted file mode 100644 index c37fb46..0000000 --- a/lib/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2008, 2009 Her Majesty the Queen in Right of Canada -# (Communications Research Center Canada) - -# This file is part of ODR-DabMod. -#  -# ODR-DabMod is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -#  -# ODR-DabMod is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -# GNU General Public License for more details. -#  -# You should have received a copy of the GNU General Public License -# along with ODR-DabMod.  If not, see <http://www.gnu.org/licenses/>. - -EXTRA_DIST	=kiss_fft129.tar.gz diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 0000000..c5b26b5 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,214 @@ +# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +#  +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then +	AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then +	_pkg_min_version=m4_default([$1], [0.9.0]) +	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) +	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then +		AC_MSG_RESULT([yes]) +	else +		AC_MSG_RESULT([no]) +		PKG_CONFIG="" +	fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists.  Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ +    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then +  m4_default([$2], [:]) +m4_ifvaln([$3], [else +  $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then +    pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then +    PKG_CHECK_EXISTS([$3], +                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` +		      test "x$?" != "x0" && pkg_failed=yes ], +		     [pkg_failed=yes]) + else +    pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then +        _pkg_short_errors_supported=yes +else +        _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then +   	AC_MSG_RESULT([no]) +        _PKG_SHORT_ERRORS_SUPPORTED +        if test $_pkg_short_errors_supported = yes; then +	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` +        else  +	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` +        fi +	# Put the nasty error message in config.log where it belongs +	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + +	m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl +        ]) +elif test $pkg_failed = untried; then +     	AC_MSG_RESULT([no]) +	m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old.  Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl +        ]) +else +	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS +	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS +        AC_MSG_RESULT([yes]) +	$3 +fi[]dnl +])# PKG_CHECK_MODULES + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], +    [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], +    [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, +    [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], +    [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], +    [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, +    [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index f8ba7c2..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,127 +0,0 @@ -# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Her Majesty the -# Queen in Right of Canada (Communications Research Center Canada) - -# This file is part of ODR-DabMod. -# -# ODR-DabMod is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# ODR-DabMod is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -# GNU General Public License for more details. -#  -# You should have received a copy of the GNU General Public License -# along with ODR-DabMod.  If not, see <http://www.gnu.org/licenses/>. - -if IS_GIT_REPO -GITVERSION_FLAGS = -DGITVERSION="\"`git describe`\"" -else -GITVERSION_FLAGS = -endif - -if HAVE_SSE -SIMD_CFLAGS = -msse -msse2 -else -SIMD_CFLAGS = -endif - -bin_PROGRAMS = odr-dabmod - -if USE_KISS_FFT -FFT_DIR=$(top_builddir)/lib/kiss_fft129 -FFT_INC=-I$(FFT_DIR) -I$(FFT_DIR)/tools -FFT_SRC=$(FFT_DIR)/kiss_fft.c \ -		$(FFT_DIR)/kiss_fft.h \ -		$(FFT_DIR)/tools/kiss_fftr.c \ -		$(FFT_DIR)/tools/kiss_fftr.h \ -		kiss_fftsimd.c \ -		kiss_fftsimd.h -FFT_FLG=-ffast-math - -.PHONY: kiss_fft129 reed-solomon-4.0 - -DabModulator.cpp: $(FFT_DIR) - -BUILT_SOURCES: $(FFT_DIR) - -FFT_LDADD= - -$(FFT_DIR): -	if [ ! -e $(FFT_DIR) ]; then \ -		tar xzf $(top_srcdir)/lib/kiss_fft129.tar.gz -C $(top_builddir)/lib; \ -	fi - -else -FFT_LDADD= -FFT_DIR= -FFT_INC= -FFT_SRC= -FFT_FLG= -endif - -odr_dabmod_CPPFLAGS = -Wall \ -					  $(FFT_INC) $(FFT_FLG) $(SIMD_CFLAGS) $(GITVERSION_FLAGS) -odr_dabmod_LDADD    = $(FFT_LDADD) -odr_dabmod_SOURCES  = DabMod.cpp \ -					  PcDebug.h \ -					  porting.c porting.h \ -					  DabModulator.cpp DabModulator.h  \ -					  Buffer.cpp Buffer.h \ -					  ModCodec.cpp ModCodec.h \ -					  ModPlugin.cpp ModPlugin.h \ -					  ModFormat.cpp ModFormat.h \ -					  EtiReader.cpp EtiReader.h \ -					  Eti.cpp Eti.h \ -					  FicSource.cpp FicSource.h \ -					  FIRFilter.cpp FIRFilter.h \ -					  ModInput.cpp ModInput.h \ -					  PuncturingRule.cpp PuncturingRule.h \ -					  PuncturingEncoder.cpp PuncturingEncoder.h \ -					  SubchannelSource.cpp SubchannelSource.h \ -					  Flowgraph.cpp Flowgraph.h \ -					  GainControl.cpp GainControl.h \ -					  OutputMemory.cpp OutputMemory.h \ -					  OutputZeroMQ.cpp OutputZeroMQ.h \ -					  TimestampDecoder.h TimestampDecoder.cpp \ -					  OutputUHD.cpp OutputUHD.h \ -					  ModOutput.cpp ModOutput.h \ -					  InputMemory.cpp InputMemory.h \ -					  InputFileReader.cpp InputZeroMQReader.cpp InputReader.h \ -					  OutputFile.cpp OutputFile.h \ -					  FrameMultiplexer.cpp FrameMultiplexer.h \ -					  ModMux.cpp ModMux.h \ -					  PrbsGenerator.cpp PrbsGenerator.h \ -					  BlockPartitioner.cpp BlockPartitioner.h \ -					  QpskSymbolMapper.cpp QpskSymbolMapper.h \ -					  FrequencyInterleaver.cpp FrequencyInterleaver.h \ -					  PhaseReference.cpp PhaseReference.h \ -					  DifferentialModulator.cpp DifferentialModulator.h \ -					  NullSymbol.cpp NullSymbol.h \ -					  SignalMultiplexer.cpp SignalMultiplexer.h \ -					  CicEqualizer.cpp CicEqualizer.h \ -					  OfdmGenerator.cpp OfdmGenerator.h \ -					  GuardIntervalInserter.cpp GuardIntervalInserter.h \ -					  Resampler.cpp Resampler.h \ -					  ConvEncoder.cpp ConvEncoder.h \ -					  TimeInterleaver.cpp TimeInterleaver.h \ -					  ThreadsafeQueue.h \ -					  Log.cpp Log.h \ -					  RemoteControl.cpp RemoteControl.h \ -					  FormatConverter.cpp FormatConverter.h \ -					  zmq.hpp - -nodist_odr_dabmod_SOURCES = $(FFT_SRC) - -dist_bin_SCRIPTS = crc-dwap.py - -if USE_KISS_FFT -EXTRA_DIST = kiss_fftsimd.c kiss_fftsimd.h - -clean-local: -	rm -rf $(FFT_DIR) - -endif - | 
