CC = gcc
CFLAGS = -g -Wall 

LINEMOD = linemod.o complex.o fft.o compute.o
MODELS1 = line.o series_r.o shunt_r.o shunt_c.o transformer.o series_c.o
MODELS2 = pulse.o biphase.o series_l.o delay.o butterworth.o file.o
MODELS3 = funct_list.o filt_tf.o
make: $(LINEMOD) $(MODELS1) $(MODELS2) $(MODELS3)
	$(CC) -o linemod $(CFLAGS) $(LINEMOD) $(MODELS1) $(MODELS2) $(MODELS3) -lm 

complex.o: complex.h complex.c
	$(CC) $(CFLAGS) -c complex.c 
linemod.o: complex.h type.h linemod.c
	$(CC) $(CFLAGS) -c linemod.c 
fft.o: complex.h fft.c
	$(CC) $(CFLAGS) -c fft.c 
compute.o: complex.h type.h compute.c
	$(CC) $(CFLAGS) -c compute.c 
line.o: complex.h type.h line.c
	$(CC) $(CFLAGS) -c line.c 
filt_tf.o: complex.h filt_tf.c
	$(CC) $(CFLAGS) -c filt_tf.c 
funct_list.o: type.h funct_list.c
	$(CC) $(CFLAGS) -c funct_list.c 
file.o: type.h file.c
	$(CC) $(CFLAGS) -c file.c 
series_r.o: type.h series_r.c
	$(CC) $(CFLAGS) -c series_r.c 
shunt_r.o: type.h shunt_r.c
	$(CC) $(CFLAGS) -c shunt_r.c 
shunt_c.o: type.h shunt_c.c
	$(CC) $(CFLAGS) -c shunt_c.c 
series_c.o: type.h series_c.c
	$(CC) $(CFLAGS) -c series_c.c 
series_l.o: type.h series_l.c
	$(CC) $(CFLAGS) -c series_l.c 
transformer.o: type.h transformer.c
	$(CC) $(CFLAGS) -c transformer.c 
pulse.o: type.h pulse.c
	$(CC) $(CFLAGS) -c pulse.c
biphase.o: type.h biphase.c
	$(CC) $(CFLAGS) -c biphase.c
delay.o: type.h delay.c
	$(CC) $(CFLAGS) -c delay.c
butterworth.o: type.h butterworth.c
	$(CC) $(CFLAGS) -c butterworth.c
clean: 
	rm -f core $(LINEMOD) $(MODELS1) $(MODELS2) $(MODELS3) *~