CFLAGS=-g -O2 -I. -I/usr/local/include -Wall -march=i686
LIBS=-lrs -lviterbi -ldsp

all: dpsk_xmit dpsk_demod addnoise fade fec_decode p3_decode

p3_decode: p3_decode.o
	gcc -g -o p3_decode p3_decode.o

fec_decode: fec_decode.o dpsk.a
	gcc -g -o fec_decode fec_decode.o dpsk.a -lrs -lviterbi -ldsp -lm

dpsk_xmit: dpsk_xmit.o dpsk.a
	gcc -g -o dpsk_xmit dpsk_xmit.o dpsk.a -lrs -lm

dpsk_xmit.o: dpsk_xmit.c dpsk.h cos.h

dpsk_demod: dpsk_demod.o dpsk.a
	gcc -g -o dpsk_demod dpsk_demod.o dpsk.a -lrs -lviterbi -ldsp -lm

dpsk_demod.o: dpsk_demod.c dpsk.h cos.h

addnoise: addnoise.o
	gcc -g -o addnoise addnoise.o -lm

fade: fade.o
	gcc -g -o fade fade.o -lm

genfir: genfir.o
	gcc -o genfir genfir.o -lrfftw -lfftw -lm

genfir.o: genfir.c dpsk.h

p3filter: p3filter.o
	gcc -g -o p3filter p3filter.o -lrfftw -lfftw

dpsk.a: cos.o sync.o scrambler.o encode_frame.o p3fir.o nrzifir.o
	ar rv $@ $^
	ranlib dpsk.a

p3fir.o: p3fir.c

p3fir.c:
	make p3filter
	./p3filter --name p3fir --samples 40 --sample-rate 9600 > p3fir.c

nrzifir.o: nrzifir.c

nrzifir.c:
	make genfir
	./genfir --name nrzifir --sample-rate 9600 --taps 72 --symbol-rate 400 --beta 0.5 --nrzi > nrzifir.c

encode_frame.o: encode_frame.c dpsk.h

clean:
	rm -f *.o *.a *.plot dpsk_xmit dpsk_demod ff dofft \
	addnoise fade p3filter filterplot mkstereo fft \
	autocorr genfir fec_decode p3_decode




