# Makefile for msdos using microsoft c and masm.
#
#

CFLAGS= -O -c
CC =gcc

all:	progs tests
progs:	fftgc fftgf fftg68
fft:	fft256c.o fft256f.o fftsubs.o fft256a.o
tests:	fft2c fft2f fft2a.o

#
# The generator programs
#

.c.o:
	$(CC) $(CFLAGS) $*.c

fftoutf.o: fftoutf.c
fftoutc.o: fftoutc.c
fftg.o: fftg.c

fftgc:	fftg.o fftoutc.o
	$(CC) -o fftgc fftg.o fftoutc.o -lm

fftgf:	fftg.o fftoutf.o
	$(CC) -o fftgf fftg.o fftoutf.o -lm

#
# test programs
#

fft256c.o:	fft256c.c fftsubs.h
fftime.o: fftime.c
fft256f.o:	fft256f.c
fftsubs.o:	fftsubs.c

fft2.o: fft2.c

#fft2c:	fft2 fft256c
#	blink lib:c.o fft2.o fft256c.o to fft2c lib lib:lcm.lib lib:lc.lib

#fft2f:	fft2.o fft256f.o fftsubs.o
#	blink lib:c.o fft2.o fft256f.o fftsubs.o to fft2f lib lib:lcm.lib lib:lc.lib

#fft2_68:	fft2.o fft256_68.o
#	blink lib:c.o fft2.o fft256_68.o to fft2_68 lib lib:lcm.lib lib:lc.lib

#
# generated files
#

fft256c.c:	fftgc
	fftgc fft256c 8 fft

fft256f.c:	fftgf
	fftgf fft256f 8 fft

fft256_68.o:	fft256_68.asm
	a68k fft256_68.asm

fft256_68.asm:	fftg68
	fftg68 fft256_68 8 _fft

#
# cut a tar file
#

tar:		ffttar.uue

ffttar.uue:	fft_tar.Z
	uue fft_tar.Z >ffttar.uue

fft_tar.Z:	fft_tar
	compress fft_tar

FFTPROGS= fftg.c fftoutf.c fftoutc.c fftsubs.c fftsubs.h
FFTASM= fftouts.c fftouta.c fftouta.mac
TESTS= fft2.c fft256c.c fft256f.c
DATA= data1.fft data2.fft
MISC= makefile README MANIFEST
TAR= $(FFTPROGS) $(TESTS) $(DATA) $(MISC)

fft_tar:	$(TAR)
	tar cvf fft_tar $(TAR)

#
# cut an arc file
#

arc:		fftarc.uue

fftarc.uue:	fft.arc
	uue fft.arc >fftarc.uue

fft.arc:	$(TAR)
	del fft.arc
	pkarc -a fft $(FFTPROGS)
	pkarc -a fft $(TESTS)
	pkarc -a fft $(DATA)
	pkarc -a fft $(MISC)

#
# temp progs to test machine instruction timing in a tight loop.
#

loop.obj:	loop.s

speed:	speed.obj loop.obj
	cc -o speed speed.obj loop.obj
