Blob Blame History Raw
prefix=/usr
srcdir=.
libdir=$(prefix)/lib
VPATH=$(srcdir):$(srcdir)/tools

ifeq "$(DATATYPE)" ""
  DATATYPE=double
endif

SUFFIX=_$(DATATYPE)
TYPEFLAGS=-Dkiss_fft_scalar=$(DATATYPE)
ifeq  "$(DATATYPE)" "int32"
  TYPEFLAGS=-DFIXED_POINT=32
endif
ifeq  "$(DATATYPE)" "int16"
  TYPEFLAGS=-DFIXED_POINT=16
endif
ifeq  "$(DATATYPE)" "simd"
  TYPEFLAGS=-DUSE_SIMD=1 -msse
endif

CFLAGS:=$(TYPEFLAGS) -W -Wall -static -fPIC -ffast-math -fomit-frame-pointer $(CFLAGS)
HEADERS= \
	$(srcdir)/kiss_fft.h \
	$(srcdir)/kissfft.hh \
	$(srcdir)/tools/kfc.h \
	$(srcdir)/tools/kiss_fftnd.h \
	$(srcdir)/tools/kiss_fftndr.h \
	$(srcdir)/tools/kiss_fftr.h
LIBRARIES= \
	libkiss_fft$(SUFFIX).a \
	libkiss_fftnd$(SUFFIX).a \
	libkiss_fftndr$(SUFFIX).a \
	libkiss_fftr$(SUFFIX).a \
	libkiss_kfc$(SUFFIX).a

CC=gcc
COMPILE=libtool --mode=compile $(CC) $(CFLAGS) $(CXXFLAGS)
LINK=libtool --mode=link $(CC) $(CFLAGS) $(LDFLAGS)
INSTALL=libtool --mode=install install -p
CLEAN=libtool --mode=clean rm -f

all: $(LIBRARIES)

install: $(LIBRARIES)
	-mkdir -p $(DESTDIR)$(libdir) $(DESTDIR)$(prefix)/include/kissfft
	install -p -m 0644 $(HEADERS) $(DESTDIR)$(prefix)/include/kissfft
	$(INSTALL) $+ $(DESTDIR)$(libdir)

clean:
	$(CLEAN) *.o *.a *.lo *.la

%$(SUFFIX).o %$(SUFFIX).lo: %.c
	$(COMPILE) -I$(srcdir) -o $@ -c $<

%.a %.la:
	$(LINK) -o $@ $+

libkiss_fft$(SUFFIX).a: kiss_fft$(SUFFIX).lo
libkiss_fftnd$(SUFFIX).a: kiss_fftnd$(SUFFIX).lo
libkiss_fftndr$(SUFFIX).a: kiss_fftndr$(SUFFIX).lo
libkiss_fftr$(SUFFIX).a: kiss_fftr$(SUFFIX).lo
libkiss_kfc$(SUFFIX).a: kfc$(SUFFIX).lo

.PHONY: install clean all