mirror of
https://github.com/mborgerding/kissfft.git
synced 2025-05-27 21:20:27 -04:00
* Header files and correspondent C sources that define functions recently added to public API moved from 'tools' directory to root * By default, install prefix is '/usr/local/', and header install path is '${PREFIX}/include/kissfft' * Added detection of external libraries like FFTW or libPNG Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
102 lines
2.4 KiB
Makefile
102 lines
2.4 KiB
Makefile
#
|
|
# Warnings
|
|
#
|
|
|
|
WARNINGS = -W -Wall -Wstrict-prototypes -Wmissing-prototypes \
|
|
-Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast \
|
|
-Wwrite-strings
|
|
|
|
#
|
|
# Compile-time definitions
|
|
#
|
|
|
|
CFLAGS = -Wall -O3 $(WARNINGS)
|
|
#CFLAGS = -Wall -O3 -pedantic -march=pentiumpro -ffast-math -fomit-frame-pointer $(WARNINGS)
|
|
# If the above flags do not work, try the following
|
|
# tip: try -openmp or -fopenmp to use multiple cores
|
|
|
|
CFLAGS += $(CFLAGADD)
|
|
|
|
#
|
|
# Check missing external libraries
|
|
#
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
LIBPNG_MISSING = $(shell echo "int main(){return 0;}" > _test_library_dummy.c; \
|
|
$(CC) -o _test_library_dummy _test_library_dummy.c -lpng; \
|
|
echo $$?; \
|
|
rm -f _test_library_dummy.c _test_library_dummy)
|
|
endif
|
|
|
|
#
|
|
# Tool names
|
|
#
|
|
|
|
ifneq ($(KISSFFT_OPENMP),1)
|
|
FFTUTIL = fft-$(KISSFFT_DATATYPE)
|
|
FASTFILT = fastconv-$(KISSFFT_DATATYPE)
|
|
FASTFILTREAL = fastconvr-$(KISSFFT_DATATYPE)
|
|
PSDPNG = psdpng-$(KISSFFT_DATATYPE)
|
|
DUMPHDR = dumphdr-$(KISSFFT_DATATYPE)
|
|
else
|
|
FFTUTIL = fft-$(KISSFFT_DATATYPE)-openmp
|
|
FASTFILT = fastconv-$(KISSFFT_DATATYPE)-openmp
|
|
FASTFILTREAL = fastconvr-$(KISSFFT_DATATYPE)-openmp
|
|
PSDPNG = psdpng-$(KISSFFT_DATATYPE)-openmp
|
|
DUMPHDR = dumphdr-$(KISSFFT_DATATYPE)-openmp
|
|
endif
|
|
|
|
#
|
|
# Target: "make all"
|
|
#
|
|
|
|
all: $(FFTUTIL) $(FASTFILT) $(FASTFILTREAL) $(PSDPNG)
|
|
# $(DUMPHDR)
|
|
|
|
#
|
|
# Individual tool make rules
|
|
#
|
|
|
|
$(FASTFILTREAL): kiss_fastfir.c
|
|
$(CC) -o $@ $(CFLAGS) -I.. $(TYPEFLAGS) -DREAL_FASTFIR $< -DFAST_FILT_UTIL -L.. -l$(KISSFFTLIB_SHORTNAME) -lm
|
|
|
|
$(FASTFILT): kiss_fastfir.c
|
|
$(CC) -o $@ $(CFLAGS) -I.. $(TYPEFLAGS) $< -DFAST_FILT_UTIL -L.. -l$(KISSFFTLIB_SHORTNAME) -lm
|
|
|
|
$(FFTUTIL): fftutil.c
|
|
$(CC) -o $@ $(CFLAGS) -I.. $(TYPEFLAGS) $< -L.. -l$(KISSFFTLIB_SHORTNAME) -lm
|
|
|
|
$(PSDPNG): psdpng.c
|
|
ifeq "$(KISSFFT_DATATYPE)" "simd"
|
|
$(warning WARNING: psdpng can not utilize SIMD!)
|
|
else ifeq ($(LIBPNG_MISSING), 0)
|
|
$(CC) -o $@ $(CFLAGS) -I.. $(TYPEFLAGS) $< -L.. -l$(KISSFFTLIB_SHORTNAME) -lpng -lm
|
|
else
|
|
$(error ERROR: no libpng development files found!)
|
|
endif
|
|
|
|
$(DUMPHDR): dumphdr.c
|
|
$(CC) -o $@ $(CFLAGS) -I.. $(TYPEFLAGS) $< -L.. -l$(KISSFFTLIB_SHORTNAME) -lm
|
|
|
|
#
|
|
# Target: "make install"
|
|
#
|
|
|
|
install: all
|
|
$(INSTALL) -Dt $(ABS_BINDIR) -m 755 \
|
|
$(FFTUTIL) \
|
|
$(FASTFILT) \
|
|
$(FASTFILTREAL)
|
|
|
|
ifneq "$(KISSFFT_DATATYPE)" "simd"
|
|
$(INSTALL) -Dt $(ABS_BINDIR) -m 755 \
|
|
$(PSDPNG)
|
|
endif
|
|
|
|
#
|
|
# Target: "make clean"
|
|
#
|
|
|
|
clean:
|
|
rm -f *~ fft fft-* fastconv fastconv-* fastconvr fastconvr-* psdpng psdpng-* _test_library_dummy _test_library_dummy.c
|