PREFIX = /usr/local

OPTS = -O6 -ffast-math -funroll-loops -Wall -fPIC

CC = g++

PLUG = pvoc
UTIL = stretch

PLUGDEST = $(PREFIX)/lib/ladspa
UTILDEST = $(PREFIX)/bin
MAN1DEST = $(PREFIX)/man/man1

VERSION = 0.1.12

PVOCSRC = pvoc.cc
PLUGSRC = interface.cc Plugins.cc 
UTILSRC = stretch.cc

SOURCES = $(PVOCSRC) $(PLUGSRC) $(UTILSRC)

PVOCOBJ	= $(PVOCSRC:.cc=.o) 
PLUGOBJ	= $(PLUGSRC:.cc=.o) 
UTILOBJ	= $(UTILSRC:.cc=.o) 

HEADERS = $(wildcard *.h) $(wildcard dsp/*.h) $(wildcard util/*.h)

FFTW3CFLAGS = `pkg-config --cflags fftw3f`
FFTW3LDOPTS = `pkg-config --libs fftw3f`

LIBSFCFLAGS = `pkg-config --cflags sndfile`
LIBSFLDOPTS = `pkg-config --libs sndfile`

CFLAGS = $(OPTS) -I/usr/local/include -DVERSION=\"$(VERSION)\" $(FFTW3CFLAGS)
PLUGLDOPTS = $(FFTW3LDOPTS) -Wl,-Bsymbolic
UTILLDOPTS = $(LIBSFLDOPTS) $(FFTW3LDOPTS) -Wl,-Bsymbolic

PDF = caps-$(VERSION).pdf

-include defines.make

# all systems go ##############################################################

all: depend $(PLUG).so $(UTIL) tags

run: all
	sudo python -i test.py

$(PLUG).so: $(PLUGOBJ) $(PVOCOBJ)
	$(CC) -nostartfiles -shared -o $@  $(PLUGOBJ) $(PVOCOBJ) $(PLUGLDOPTS) 

$(UTIL): $(UTILOBJ) $(PVOCOBJ)
	$(CC) -o $@ $(UTILOBJ) $(PVOCOBJ) $(UTILLDOPTS)

.cc.s: 
	$(CC) $(CFLAGS) -S $<

.cc.o:
	$(CC) $(CFLAGS) -I/usr/local/include -c $<

tags: $(SOURCES) $(HEADERS)
	@echo making tags
	@-if [ -x /usr/bin/ctags ]; then ctags $(SOURCES) $(HEADERS) ; fi

install: all
	strip $(PLUG).so
	strip $(UTIL)
	install -d $(PLUGDEST)
	install -d $(UTILDEST)
	install -d $(MAN1DEST)
	install -m 644 $(PLUG).so $(PLUGDEST)
	install -m 755 $(UTIL) $(UTILDEST)
	install -m 644 $(UTIL).1 $(MAN1DEST)

fake-install: all
	-rm $(DEST)/$(PLUG).so
	ln -s $(PWD)/$(PLUG).so $(DEST)/$(PLUG).so

uninstall:
	rm $(PLUGDEST)/$(PLUG).so
	rm $(UTILDEST)/$(UTIL)
	rm $(MAN1DEST)/$(UTIL).1

clean:
	rm -f *.o *.so *.s depend $(UTIL)

dist: all
	man -l -Tascii stretch.1 > /www/quitte/dsp/stretch.1
	touch /www/quitte/dsp/$(PLUG)_$(VERSION).tar.gz
	tools/make-dist.py $(PLUG) $(VERSION) $(CFLAGS)
	@rm /www/quitte/dsp/$(PLUG)*.tar.gz
	@cp $(PLUG)_$(VERSION).tar.gz /www/quitte/dsp

depend: $(SOURCES) $(HEADERS)
	$(CC) -MM $(DEFINES) $(SOURCES) > depend

-include depend
