# Makefile for any machine
#

D = -DGZIP

INSTALL_DIR = $(HOME)/bin/sparc
MAN_DIR = $(HOME)/pub/man
  
ALLOPTS = $(MAIN_OPTS) $(COPTS)

hpux:
	$(MAKE) all MACHINE=hpux O=.o MAIN_OPTS="" \
	COPTS="-c +O3 +OS +ESlit" LIBS="-lAt -lAlib -lm"

solaris:
	$(MAKE) all MACHINE=solaris O=.o CC=cc MAIN_OPTS="${D} -O" \
	COPTS="-c" LIBS=-lm

sparc:
	$(MAKE) all MACHINE=ss10 O=.o CC=cc MAIN_OPTS="${D} -Bstatic" \
	COPTS="-c -O" LIBS=-lm

dec:
	$(MAKE) all MACHINE=AF O=.o CC=cc MAIN_OPTS="${D} -O -Ddec" \
	COPTS="-c" LIBS="-lm -lAF"

sgi:
	$(MAKE) all MACHINE=sgi O=.u MAIN_OPTS="${D} -O -DSIGNED" \
	COPTS="-j" LIBS="-laudio -lm"

pc:
	$(MAKE) all MACHINE=soundblaster O=.o MAIN_OPTS="${D} -O" \
	COPTS="-c" LIBS="-lm"

linux:
	$(MAKE) all MACHINE=linux O=.o MAIN_OPTS="${D} -O6 -funroll-loops" \
	COPTS="-c" LIBS=-lm

OBJECTS = main$O $(MACHINE)_audio$O st_read$O commands$O \
audio$O automaton$O player$O getopt$O open$O tools$O \
termio$O dump_song$O setup_audio$O notes$O display$O

O2 = analyzer$O st_read$O open$O dump_song$O tools$O notes$O


all:	tracker randomize analyzer

install: 
	-rm -f $(INSTALL_DIR)/tracker $(INSTALL_DIR)/randomize \
	$(INSTALL_DIR)/analyzer
	cp tracker $(INSTALL_DIR)
	chmod a-w $(INSTALL_DIR)/tracker
	cp randomize $(INSTALL_DIR)
	chmod a-w $(INSTALL_DIR)/randomize
	cp analyzer $(INSTALL_DIR)
	chmod a-w $(INSTALL_DIR)/analyzer
	cp tracker.1 $(MAN_DIR)/man1/tracker.1

devel: 
	-rm -f $(INSTALL_DIR)/dtracker 
	cp tracker $(INSTALL_DIR)/dtracker

tracker: ${OBJECTS}
	${CC} -o tracker ${MAIN_OPTS} ${OBJECTS} ${LIBS}

analyzer: ${O2}
	$(CC) -o analyzer ${MAIN_OPTS} ${O2} ${LIBS}

randomize: randomize.c
	$(CC) -o randomize ${MAIN_OPTS} randomize.c 

main$O: main.c song.h
	$(CC) ${ALLOPTS} main.c

tools$O: main.c 
	$(CC) ${ALLOPTS} tools.c

$(MACHINE)_audio$O: $(MACHINE)_audio.c 
	$(CC) ${ALLOPTS} $(MACHINE)_audio.c

open$O: open.c
	$(CC) ${ALLOPTS} open.c

audio$O: audio.c
	$(CC) ${ALLOPTS} audio.c

automaton$O: automaton.c song.h channel.h
	$(CC) ${ALLOPTS} automaton.c

getopt$O: getopt.c getopt.h
	$(CC) ${ALLOPTS} getopt.c

getopt1$O: getopt1.c getopt.h
	$(CC) ${ALLOPTS} getopt1.c

player$O: player.c song.h channel.h
	$(CC) ${ALLOPTS} player.c

st_read$O: st_read.c song.h
	$(CC) ${ALLOPTS} st_read.c

commands$O: commands.c channel.h song.h
	$(CC) ${ALLOPTS} commands.c

termio$O: termio.c
	$(CC) ${ALLOPTS} termio.c
dump_song$O: dump_song.c
	$(CC) $(ALLOPTS) dump_song.c
analyzer$O: analyzer.c
	$(CC) $(ALLOPTS) analyzer.c
setup_audio$O: setup_audio.c
	$(CC) $(ALLOPTS) setup_audio.c
notes$O: notes.c
	$(CC) $(ALLOPTS) notes.c

display$O: display.c
	$(CC) $(ALLOPTS) display.c


clean:
	-rm *.u *.o tracker randomize core tracker.tar tracker.tar.Z tracker.lzh
export:
	-rm tracker.tar.Z
	-rm tracker.lzh
	cd ..; tar cvf tracker/tracker.tar tracker/*.c tracker/*.h \
	tracker/tracker.1 tracker/*akefile tracker/docs/* 
	compress tracker.tar
	cd ..; lha a tracker/tracker.lzh tracker/*.c tracker/*.h tracker/tracker.1 \
	tracker/*akefile tracker/docs #tracker/bin.amiga
