#
# extra includes required for your system
#
# H =
H = -I/usr/demo/SOUND

#
# the name of the compiler to use
#
CC = cc
# CC = gcc

#
# The compiler flags to use, except for include path.
#
CFLAGS = -O
# CFLAGS = -g
# CFLAGS = -O -Wall -ansi	# gcc

#
# extra libraries required for your system
#
# LIBRARIES =
LIBRARIES = -L/usr/demo/SOUND -laudio

# You should not need to alter anything below this point.
#------------------------------------------------------------

all: bin/recite


audio/audio.o: audio/audio.c audio/audio.h common/main.h common/error.h \
		common/mem.h 
	$(CC) $(CFLAGS) -Iaudio -Icommon $(H) -c audio/audio.c
	mv audio.o audio

common/ansi.o: common/ansi.c common/main.h
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/ansi.c
	mv ansi.o common

common/arglex.o: common/arglex.c common/main.h common/arglex.h \
		common/error.h common/mem.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/arglex.c
	mv arglex.o common

common/error.o: common/error.c common/s-v-arg.h common/main.h \
		common/error.h common/arglex.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/error.c
	mv error.o common

common/frame.o: common/frame.c common/error.h common/main.h \
		common/frame.h common/mem.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/frame.c
	mv frame.o common

common/help.o: common/help.c common/arglex.h common/main.h \
		common/error.h common/help.h common/patchlevel.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/help.c
	mv help.o common

common/mem.o: common/mem.c common/mem.h common/main.h common/error.h
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/mem.c
	mv mem.o common

common/trace.o: common/trace.c common/s-v-arg.h common/error.h \
		common/main.h common/mem.h common/arglex.h \
		common/trace.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/trace.c
	mv trace.o common

common/version.o: common/version.c common/arglex.h common/main.h \
		common/error.h common/help.h common/version.h \
		common/mem.h 
	$(CC) $(CFLAGS) -Icommon -Icommon $(H) -c common/version.c
	mv version.o common

english/english.o: english/english.c english/english.h common/main.h \
		common/mem.h english/phoneme.h english/spellword.h \
		english/saynum.h common/trace.h 
	$(CC) $(CFLAGS) -Ienglish -Icommon $(H) -c english/english.c
	mv english.o english

english/phoneme.o: english/phoneme.c english/english.h common/main.h \
		english/phoneme.h english/rules.h common/trace.h 
	$(CC) $(CFLAGS) -Ienglish -Icommon $(H) -c english/phoneme.c
	mv phoneme.o english

english/rules.o: english/rules.c english/rules.h common/main.h
	$(CC) $(CFLAGS) -Ienglish -Icommon $(H) -c english/rules.c
	mv rules.o english

english/saynum.o: english/saynum.c english/phoneme.h common/main.h \
		english/saynum.h 
	$(CC) $(CFLAGS) -Ienglish -Icommon $(H) -c english/saynum.c
	mv saynum.o english

english/spellword.o: english/spellword.c english/spellword.h \
		common/main.h english/english.h 
	$(CC) $(CFLAGS) -Ienglish -Icommon $(H) -c english/spellword.c
	mv spellword.o english

klatt/klatt.o: klatt/klatt.c common/frame.h common/main.h klatt/klatt.h \
		common/mem.h klatt/parwave.h common/trace.h 
	$(CC) $(CFLAGS) -Iklatt -Icommon $(H) -c klatt/klatt.c
	mv klatt.o klatt

klatt/parwave.o: klatt/parwave.c common/error.h common/main.h \
		klatt/parwave.h klatt/r250.h common/trace.h 
	$(CC) $(CFLAGS) -Iklatt -Icommon $(H) -c klatt/parwave.c
	mv parwave.o klatt

klatt/r250.o: klatt/r250.c klatt/r250.h common/main.h
	$(CC) $(CFLAGS) -Iklatt -Icommon $(H) -c klatt/r250.c
	mv r250.o klatt

phonemes/features.o: phonemes/features.c phonemes/features.h \
		common/frame.h common/main.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/features.c
	mv features.o phonemes

phonemes/fricatives.o: phonemes/fricatives.c phonemes/features.h \
		common/frame.h common/main.h phonemes/fricatives.h \
		phonemes/rules.h common/trace.h phonemes/var.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/fricatives.c
	mv fricatives.o phonemes

phonemes/phonemes.o: phonemes/phonemes.c common/error.h common/main.h \
		phonemes/features.h common/frame.h \
		phonemes/fricatives.h common/mem.h phonemes/phonemes.h \
		phonemes/plosives.h phonemes/rules.h \
		phonemes/sonorants.h common/trace.h phonemes/var.h \
		phonemes/vowel.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/phonemes.c
	mv phonemes.o phonemes

phonemes/plosives.o: phonemes/plosives.c phonemes/features.h \
		common/frame.h common/main.h phonemes/plosives.h \
		phonemes/rules.h common/trace.h phonemes/var.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/plosives.c
	mv plosives.o phonemes

phonemes/rules.o: phonemes/rules.c phonemes/features.h common/frame.h \
		common/main.h phonemes/rules.h common/trace.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/rules.c
	mv rules.o phonemes

phonemes/sonorants.o: phonemes/sonorants.c phonemes/features.h \
		common/frame.h common/main.h phonemes/rules.h \
		phonemes/sonorants.h common/trace.h phonemes/var.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/sonorants.c
	mv sonorants.o phonemes

phonemes/var.o: phonemes/var.c phonemes/var.h phonemes/features.h \
		common/frame.h common/main.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/var.c
	mv var.o phonemes

phonemes/vowel.o: phonemes/vowel.c phonemes/features.h common/frame.h \
		common/main.h phonemes/rules.h common/trace.h \
		phonemes/var.h phonemes/vowel.h 
	$(CC) $(CFLAGS) -Iphonemes -Icommon $(H) -c phonemes/vowel.c
	mv vowel.o phonemes

recite/file.o: recite/file.c recite/file.h common/main.h common/error.h \
		common/mem.h 
	$(CC) $(CFLAGS) -Irecite -Icommon $(H) -c recite/file.c
	mv file.o recite

recite/main.o: recite/main.c common/arglex.h common/main.h \
		common/error.h recite/file.h common/frame.h \
		common/help.h common/mem.h common/trace.h \
		common/version.h 
	$(CC) $(CFLAGS) -Irecite -Icommon $(H) -c recite/main.c
	mv main.o recite

t0001a: all test/00/t0001a.sh
	sh test/00/t0001a.sh

t0002a: all test/00/t0002a.sh
	sh test/00/t0002a.sh

t0003a: all test/00/t0003a.sh
	sh test/00/t0003a.sh

ReciteObj = audio/audio.o common/ansi.o common/arglex.o common/error.o \
		common/frame.o common/help.o common/mem.o \
		common/trace.o common/version.o english/english.o \
		english/phoneme.o english/rules.o english/saynum.o \
		english/spellword.o klatt/klatt.o klatt/parwave.o \
		klatt/r250.o phonemes/features.o phonemes/fricatives.o \
		phonemes/phonemes.o phonemes/plosives.o \
		phonemes/rules.o phonemes/sonorants.o phonemes/var.o \
		phonemes/vowel.o recite/file.o recite/main.o 

bin/recite: $(ReciteObj)
	-mkdir bin
	$(CC) -o bin/recite $(ReciteObj) $(LIBRARIES) -lm

sure: t0001a t0002a t0003a
	@echo Passed All Tests

clean:
	rm -f core audio/audio.o common/ansi.o common/arglex.o \
		common/error.o common/frame.o common/help.o \
		common/mem.o common/trace.o common/version.o \
		english/english.o english/phoneme.o english/rules.o \
		english/saynum.o english/spellword.o klatt/klatt.o \
		klatt/parwave.o klatt/r250.o phonemes/features.o \
		phonemes/fricatives.o phonemes/phonemes.o \
		phonemes/plosives.o phonemes/rules.o \
		phonemes/sonorants.o phonemes/var.o phonemes/vowel.o \
		recite/file.o recite/main.o 

clobber: clean
	rm -f bin/recite
