CC = cc
CFLAGS = -g -O -finline-functions
MOLES = pv tv pexp pinv furious turnip saint strident further surf anarchy drown fury stridex taint taffy
DESTDIR = /b/penrose/albini
LDFLAGS = -lNeXT_s -lsys_s -lm

BINARIES = carith.o checkroots.o convert.o fft.o findroots.o fold.o\
           laguerre.o lpa.o lpamp.o makewindows.o oscbank.o overlapadd.o\
           readinput.o shiftin.o shiftout.o unconvert.o crack.o space.o
FUROBJS =  fconvert.o fft.o fold.o makewindows.o overlapadd.o shiftin.o\
	   shiftout.o crack.o space.o
TURNOBJS = carith.o checkroots.o turn.o fft.o findroots.o fold.o\
           laguerre.o lpa.o lpamp.o makewindows.o oscbank.o overlapadd.o\
           readinput.o turnin.o shiftout.o extrema.o crack.o space.o
STROBJS =  convert.o fft.o fold.o makewindows.o stribank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o
TVOBJS =   carith.o checkroots.o tconvert.o fft.o findroots.o fold.o\
           laguerre.o lpa.o lpamp.o makewindows.o tossbank.o overlapadd.o\
           readinput.o shiftin.o shiftout.o unconvert.o crack.o space.o
PEXOBJS =  convert.o fft.o fold.o makewindows.o noscbank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o
SURFOBJS = convert.o lookfft.o fold.o makewindows.o noscbank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o
ANAROBJS = archaic.o fft.o fold.o makewindows.o overlapadd.o shiftin.o\
	   shiftout.o crack.o space.o rand.o
SAINOBJS = convert.o fft.o fold.o makewindows.o soscbank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o
DROWOBJS = drowned.o fft.o fold.o makewindows.o overlapadd.o shiftin.o\
	   shiftout.o crack.o space.o
FURYOBJS = sweeper.o fft.o fold.o makewindows.o overlapadd.o shiftin.o\
	   shiftout.o crack.o space.o
DEXOBJS =  convert.o fft.o fold.o makewindows.o dexbank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o
TAINOBJS = tainter.o selftaint.o fft.o fold.o makewindows.o overlapadd.o\
	   turnin.o shiftout.o crack.o space.o
TAFIOBJS = convert.o fft.o fold.o makewindows.o noscbank.o overlapadd.o\
           shiftin.o shiftout.o unconvert.o crack.o space.o

all: $(MOLES)

clean:
	-rm -f $(MOLES) *.o

install:
	-strip $(MOLES)
	-cp $(MOLES) $(DESTDIR)

pv:	$(BINARIES) main.o
		$(CC) -o pv $(CFLAGS) $(BINARIES) main.o $(LDFLAGS)

tv:	$(TVOBJS) tv.o
		$(CC) -o tv $(CFLAGS) $(TVOBJS) tv.o $(LDFLAGS)

pexp:	$(PEXOBJS) pexp.o
		$(CC) -o pexp $(CFLAGS) $(PEXOBJS) pexp.o $(LDFLAGS)

pinv:	$(BINARIES) pinv.o
		$(CC) -o pinv $(CFLAGS) $(BINARIES) pinv.o $(LDFLAGS)

furious:  $(FUROBJS) furnace.o
		$(CC) -o furious $(CFLAGS) $(FUROBJS) furnace.o $(LDFLAGS)

saint:  $(SAINOBJS) saint.o
		$(CC) -o saint $(CFLAGS) $(SAINOBJS) saint.o $(LDFLAGS)

turnip:	$(TURNOBJS) turnip.o
		$(CC) -o turnip $(CFLAGS) $(TURNOBJS) turnip.o $(LDFLAGS)

strident:  $(STROBJS) strident.o
		$(CC) -o strident $(CFLAGS) $(STROBJS) strident.o $(LDFLAGS)

further:  $(FUROBJS) further.o
		$(CC) -o further $(CFLAGS) $(FUROBJS) further.o $(LDFLAGS)

surf:  $(SURFOBJS) surf.o
		$(CC) -o surf $(CFLAGS) $(SURFOBJS) surf.o $(LDFLAGS)

anarchy:  $(ANAROBJS) anarchy.o
		$(CC) -o anarchy $(CFLAGS) $(ANAROBJS) anarchy.o $(LDFLAGS)

drown:  $(DROWOBJS) drown.o
		$(CC) -o drown $(CFLAGS) $(DROWOBJS) drown.o $(LDFLAGS)

fury:  $(FURYOBJS) fury.o
		$(CC) -o fury $(CFLAGS) $(FURYOBJS) fury.o $(LDFLAGS)

stridex:  $(DEXOBJS) stridex.o
		$(CC) -o stridex $(CFLAGS) $(DEXOBJS) stridex.o $(LDFLAGS)

taint:	$(TAINOBJS) taint.o
		$(CC) -o taint $(CFLAGS) $(TAINOBJS) taint.o $(LDFLAGS)

taffy:	$(TAFIOBJS) taffy.o
		$(CC) -o taffy $(CFLAGS) $(TAFIOBJS) taffy.o $(LDFLAGS)
