CC = $(COMP)
CDEFS = -I..
#CFLAGS = -DDEBUG_MATH -g
CFLAGS = -O -ffast-math -fomit-frame-pointer -funroll-loops
# Joerg Arndt says these are optimal for gcc-2.7.2

# Here are the files we use

sources   = $(wildcard *.cc *.c)
includedirs = -I..

LIBOBJFILES = rasta.o anal.o powspec.o noise_est.o mapping.o \
	audspec.o nl_audspec.o rasta_filt.o inverse_nl.o post_audspec.o \
	lpccep.o fft.o fvecsubs.o svecsubs.o

SRCFILES = rasta.c init.c anal.c powspec.c noise_est.c mapping.c \
	audspec.c nl_audspec.c rasta_filt.c inverse_nl.c post_audspec.c \
	lpccep.c fft.c io.c fvecsubs.c svecsubs.c debug.c
HDRFILES = functions.h rasta.h
DISTFILES = $(SRCFILES) $(HDRFILES) README map_weights.dat rasta.1 Makefile

# This defines how we actually make the program

all: libmrasta.a

libmrasta.a: $(LIBOBJFILES)
	ar rcs libmrasta.a $(LIBOBJFILES)

libmrasta_g.a: $(LIBOBJFILES)
	ar rcs libmrasta_g.a $(LIBOBJFILES)

rasta: $(OBJFILES) Makefile
	$(CC) $(CFLAGS) $(CDEFS) -o rasta $(OBJFILES) $(LIBS)

rasta.o: rasta.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) rasta.c

init.o: init.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS)  init.c

debug.o: debug.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS)  debug.c

io.o: io.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS)  io.c

anal.o: anal.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) anal.c

powspec.o: powspec.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) powspec.c

audspec.o: audspec.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) audspec.c

noise_est.o: noise_est.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) noise_est.c

mapping.o: mapping.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) mapping.c	

nl_audspec.o: nl_audspec.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) nl_audspec.c

rasta_filt.o: rasta_filt.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) rasta_filt.c

inverse_nl.o: inverse_nl.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) inverse_nl.c

post_audspec.o: post_audspec.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) post_audspec.c

lpccep.o: lpccep.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) lpccep.c

fft.o: fft.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) fft.c

fvecsubs.o: fvecsubs.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) fvecsubs.c

svecsubs.o: svecsubs.c functions.h rasta.h Makefile
	$(CC) -c  $(CFLAGS) $(CDEFS) svecsubs.c


# Finally some other targets for administrative stuff

deltrash:
	rm -f *~ DEADJOE t tt log

clean: deltrash
	rm -f *.o .depend

distclean: clean
	rm -f *.a

install: rasta
	$(INSTALL_PROG) $(INSTALL_FLAGS) rasta $(BINDIR)/$(NAME)

TAGS: $(SRCFILES) $(HDRFILES)
	$(ETAGS) $(SRCFILES) $(HDRFILES)

ifeq (.depend,$(wildcard .depend))
include .depend
depend:
else
depend: $(sources)
	@echo Making dependencies...
	@$(CPP) $(includedirs) -M $(defs) $(sources) > .depend
endif
