CC      = gcc
CFLAGS  = -Wall -O2 -fomit-frame-pointer
LD      = gcc
LDFLAGS = -s
XLIBS	= -lX11 -lXext
XAWLIBS	= -lXaw -lXmu -lXt
MATHLIB	= -lm

BINARIES=xchart xfft xscope

FFT=ffti
# uncomment the next three lines for the floating point version of xfft
#FFT=fft
#DEFINES=-DFLOATINGPOINT
#COMPLEX=complex.o

.c.o:	$(CC) $(CFLAGS) -c $<

all:	$(BINARIES)

clean:
	# Don't remove binaries.  Only core, object and backup files.
	rm -f core *.o

squeaky-clean:
	rm -f $(BINARIES) core *.o

dist:	clean
	cd ..;tar -czvf chartprogs.tar.gz chartprogs/*

# programs

xchart:	xchart.o Chart.o Chart.h
	$(LD) $(LDFLAGS) -o xchart xchart.o Chart.o\
		$(XAWLIBS) $(XLIBS) $(MATHLIB)

xfft:	xfft.o Chart.o Chart.h $(FFT).o $(COMPLEX)
	$(LD) $(LDFLAGS) -o xfft xfft.o $(FFT).o Chart.o $(COMPLEX)\
		$(XAWLIBS) $(XLIBS) $(MATHLIB)
xfft.o:	xfft.c $(FFT).h Chart.h
	$(CC) $(CFLAGS) -c $(DEFINES) xfft.c -o xfft.o

xscope:	xscope.o Chart.o Chart.h
	$(LD) $(LDFLAGS) -o xscope xscope.o Chart.o $(XAWLIBS) $(XLIBS)

# Utility libraries
fft.o:		fft.c fft.h complex.h
ffti.o:		ffti.c ffti.h
complex.o:	complex.c complex.h
Chart.o:	Chart.h Chart.c ChartP.h
