File: Makefile

package info (click to toggle)
kissfft 131.1.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 492 kB
  • sloc: ansic: 2,738; makefile: 368; sh: 201; python: 112; cpp: 64
file content (101 lines) | stat: -rw-r--r-- 2,491 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#
# 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