CFLAGS =	-ansi -O2 -g -Wall -fmessage-length=0

LIBS = -lm

COMMON = common.h

OBJSLOSSLESS =	lossless.o decoder.o encoder.o error.o io.o wave.o
LOSSLESS =	lossless.exe

OBJSULAW =	ulaw.o io.o wave.o error.o
ULAW =	ulaw.exe

OBJSIMAADPCM =	imaadpcm.o io.o wave.o error.o
IMAADPCM =	imaadpcm.exe

all:	$(LOSSLESS) $(ULAW) $(IMAADPCM)

$(ULAW):	$(OBJSULAW)
	$(CC) -o $(ULAW) $(OBJSULAW) $(LIBS)

$(LOSSLESS):	$(OBJSLOSSLESS)
	$(CC) -o $(LOSSLESS) $(OBJSLOSSLESS) $(LIBS)
	
$(IMAADPCM): $(OBJSIMAADPCM)
	$(CC) -o $(IMAADPCM) $(OBJSIMAADPCM) $(LIBS)

clean:
	rm -f $(OBJSLOSSLESS) $(LOSSLESS) $(OBJSULAW) $(ULAW) $(IMAADPCM) $(OBJSIMAADPCM)

decoder.o: $(COMMON) decoder.h io.h

encoder.o: $(COMMON) encoder.h io.h

error.o: $(COMMON) error.h

lossless.o: $(COMMON) encoder.h decoder.h io.h

wave.o: $(COMMON) wave.h error.h

io.o: $(COMMON) io.h error.h wave.h