CC	= colorgcc
LD	= gcc

AUTOGEN		= autogen

PYTHONINC	= -I/usr/include/python2.4
NUMPYINC	= -I/home/david/local/lib/python2.4/site-packages/numpy/core/include

DEBUG		= -g
OPTIMS		= -O3 -funroll-all-loops -march=pentium4 -msse2
#OPTIMS		= $(DEBUG)
WARN		= -W -Wall -Winline -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wcast-qual -Wnested-externs -Wshadow -Wbad-function-cast -Wwrite-strings
LANGSTD		= -std=gnu9x

CFLAGS	= $(PYTHONINC) $(NUMPYINC) $(OPTIMS) $(WARN) $(LANGSTD)

OBJS	= autocorr_nofft.o levinson.o lpc.o

SRC		= levinson.c lpc.c autocorr_nofft.c

# targets
lib: libgabsig.so

src: $(SRC)

#=================
# Shared libraries
#=================
libgabsig.so: $(OBJS)
	$(LD) -shared -o $@ $(OBJS) -Wl,-soname,$@ 

#=============
# Object files
#=============
lpc.o: lpc.c 
	$(CC) -c $(CFLAGS) -fPIC $<

levinson.o: levinson.c 
	$(CC) -c $(CFLAGS) -fPIC $<

autocorr_nofft.o: autocorr_nofft.c autocorr_nofft.h
	$(CC) -c $(CFLAGS) -fPIC $<

#=========================
# Autogenerated c sources
#=========================
autocorr_nofft.c: autocorr_nofft.def autocorr_nofft.tpl
	$(AUTOGEN) autocorr_nofft.def

lpc.c: lpc.def lpc.tpl lpc.h
	$(AUTOGEN) lpc.def

levinson.c: levinson.def levinson.tpl levinson.h
	$(AUTOGEN) levinson.def

clean:
	rm -f libautocorr.so
	rm -f test_autocorr
	rm -f *.o
	rm -f *.so
	rm -f *.pyc
	rm -f autocorr_nofft.c
	rm -f lpc.c
	rm -f levinson.c
