NAME = dspfft
CFLAGS = -g -O -Wall -DEXPANSION_MEMORY=$(EXPANSION_MEMORY)
# For those who have expansion memory.  But for some reason I don't
# understand well this is actually SLOWER than the configuration
# without expansion memory, even though the transfer buffer sizes
# are bigger.  Thus, set to 0 for optimal performance.
EXPANSION_MEMORY = 0

SRCS =  $(NAME).c sd_error.c sd_error.h \
	$(NAME).asm fftr2en.asm slow_dma_support.asm ioequ.asm

all:  example cores

lib: $(NAME).o sd_error.o
	ar r libdspfft.a $(NAME).o sd_error.o
	ranlib -s libdspfft.a

cores: dspfft16.snd dspfft32.snd dspfft64.snd dspfft128.snd dspfft256.snd dspfft512.snd

dspfft16.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'16\' $(NAME).asm
	mv	$(NAME).lod dspfft16.lod
	sndconvert -o dspfft16.snd -d dspfft16.lod
	
dspfft32.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'32\' $(NAME).asm
	mv	$(NAME).lod dspfft32.lod
	sndconvert -o dspfft32.snd -d dspfft32.lod

dspfft64.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'64\' $(NAME).asm
	mv	$(NAME).lod dspfft64.lod
	sndconvert -o dspfft64.snd -d dspfft64.lod

dspfft128.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'128\' $(NAME).asm
	mv	$(NAME).lod dspfft128.lod
	sndconvert -o dspfft128.snd -d dspfft128.lod

dspfft256.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'256\' $(NAME).asm
	mv	$(NAME).lod dspfft256.lod
	sndconvert -o dspfft256.snd -d dspfft256.lod

dspfft512.snd: dspfft.asm
	asm56000 -a -b -l -OS,SO,MEX -DBUG56 \'0\' -DEXPANSION_MEMORY \'$(EXPANSION_MEMORY)\' -DXFRM_SIZE \'512\' $(NAME).asm
	mv	$(NAME).lod dspfft512.lod
	sndconvert -o dspfft512.snd -d dspfft512.lod

example: $(NAME).o example.o sd_error.o
	$(CC) $(CFLAGS) -o example example.o sd_error.o $(NAME).o -lsys_s -lNeXT_s
	
clean:
	rm -f $(NAME) *.o *.lst *.lod *.snd

installsrc:
	mkdirs -m 755 $(SRCROOT)
	cp $(SRCS) Makefile $(SRCROOT)
	chmod 444 $(SRCROOT)/*

output: $(NAME)
	$(NAME)
