# BEWARE: This Makefile is shared by all processor architectures!
midi	=/u/psl/midi
l	= ../lib/libmidi.a
slibs	= -lsuntool -lsunwindow -lpixrect
CFLAGS	= -O -I$(midi)/include
C	= cc -o $@ $(CFLAGS) SRC/$@.c $(l)
Cm	= cc -o $@ $(CFLAGS) SRC/$@.c $(l) -lm
Cp	= cc -o $@ $(CFLAGS) SRC/$@.c $(l) -lplot
Cs	= cc -o $@ $(CFLAGS) SRC/$@.c $(l) $(slibs)
Csm	= cc -o $@ $(CFLAGS) SRC/$@.c $(l) $(slibs) -lm
Csg	= cc -o $@ $(CFLAGS) -g SRC/$@.c $(l) $(slibs)
rm	= rm -f

.SUFFIXES: .c .lint
.c.lint:
	lint -I$(midi)/include -DLINT -hv $*.c 2>$*.lint 1>&2

ALL	= play record merge transpose da ra just marteau \
	dx7but dx7tune muzak vget vprint vput voxname \
	acca accl adjust adtobb axtobb bars \
	bbriffs bbtoad bbtoax bellscore byteval \
	cc2gc ccc ched chmap chpress cntl conduct countin cs \
	dack ddm ddmt dp2mpu ekn fade fract gc2mpu inst invert julia \
	key2name keyvel kmap m2mpu mecho mfm mg midiman midimode \
	mirbut mirpar mirset mixer mixer_sa mixplay mjoin mkcc mozart \
	mpp mpu2m mpu2midi mpuclean mpumon mpureset mputhru \
	name2key netscore notedur numev pbend pharm pseq qwe \
	resid retro rpt rpts resid rtloop rxkey \
	scat select sing stats sustain sxmon sxmpu sxstrip \
	tab2mpu tempo tmod tonerow trim tshift txeld txget txput txvmrg unjust \
	vegplot velpat vmod vpr

def:	$(ALL)
bin:	;	cd /u/psl/midi/`arch`/bin; make

play:		SRC/play.c;		$(C)
record:		SRC/record.c;		$(C)
merge:		SRC/merge.c;		$(C)
transpose:	SRC/transpose.c;	$(C)
da:		SRC/da.c $(l);		$(C)
ra:		SRC/ra.c;		$(C)
just:		SRC/just.c;		$(C)
patch:		SRC/patch.c;		$(C)
xtoa:		SRC/xtoa.c;		$(C)
atox:		xtoa;			$(rm) atox; ln xtoa atox
marteau:	SRC/marteau.c;		$(C)
dx7but:		SRC/dx7but.c;		$(C)
dx7tune:	SRC/dx7tune.c;		$(C)
muzak:		SRC/muzak.c;		$(C)
vget:		SRC/vget.c;		$(C)
vprint:		SRC/vprint.c;		$(C)
vput:		SRC/vput.c;		$(C)
voxname:	SRC/voxname.c;		$(C)
acca:		SRC/acca.c;		$(C)
accl:		SRC/accl.c $l(banjoplay.o);		$(C)
adjust:		SRC/adjust.c;		$(C)
adtobb:		SRC/adtobb.c;		$(C)
axtobb:		SRC/axtobb.c;		$(C)
bars:		SRC/bars.c;		$(C)
bbriffs:	SRC/bbriffs.c riffs.o;	$(C) riffs.o
riffs.o:	SRC/riffs.c;		cc -o $@ $(CFLAGS) -c SRC/riffs.c
bbtoad:		adtobb;			$(rm) bbtoad; ln adtobb bbtoad
bbtoax:		axtobb;			$(rm) bbtoax; ln axtobb bbtoax
bellscore:	SRC/bellscore.c;	$(Cs)
byteval:	SRC/byteval.c;		$(C)
cc2gc:		SRC/cc2gc.c;		$(C)
ccc:		SRC/ccc.c;		$(C)
ched:		SRC/ched.c;		$(Cs)
chmap:		SRC/chmap.c;		$(C)
chpress:	SRC/chpress.c;		$(C)
cntl:		SRC/cntl.c;		$(C)
conduct:	SRC/conduct.c;		$(Cs)
countin:	SRC/countin.c;		$(C)
cs:		SRC/cs.c;		$(C)
dack:		SRC/dack.c;		$(C)
ddm:		SRC/ddm.c;		$(C)
ddmt:		SRC/ddmt.c;		$(Cs)
dp2mpu:		SRC/dp2mpu.c;		$(C)
ekn:		SRC/ekn.c;		$(C)
fade:		SRC/fade.c;		$(C)
fract:		SRC/fract.c;		$(C)
gc2mpu:		SRC/gc2mpu.c;		$(C)
inst:		SRC/inst.c;		$(C)
invert:		SRC/invert.c;		$(C)
julia:		SRC/julia.c;		$(Cm)
key2name:	SRC/key2name.c;		$(C)
keyvel:		SRC/keyvel.c;		$(Cm)
kmap:		SRC/kmap.c;		$(C)
m2mpu:		SRC/m2mpu.c;		$(C)
mecho:		SRC/mecho.c;		$(C)
mfm:		SRC/mfm.c;		$(Csm)
mg:		SRC/mg.c;		$(C)
midiman:	SRC/midiman.sh;		ln -s SRC/midiman.sh midiman
midimode:	SRC/midimode.c;		$(C)
midinews:	SRC/midinews.sh;	ln -s SRC/midinews.sh midinews
mirbut:		SRC/mirbut.c;		$(C)
mirpar:		SRC/mirpar.c;		$(Cs)
mirset:		SRC/mirset.c;		$(C)
mix:		SRC/mix.c;		$(Cs)
mixer:		SRC/mixer.c ;		$(Cs)
mixer_sa:	SRC/mixer_sa.c ;	$(Cs)
mixplay:	SRC/mixplay.c ;		$(Cs)
mjoin:		SRC/mjoin.c;		$(C)
mkcc:		SRC/mkcc.c;		$(C)
mozart:		SRC/mozart.c;		$(C)
mpp:		SRC/mpp.c;		$(C)
mpu2m:		SRC/mpu2m.c;		$(C)
mpu2midi:	SRC/mpu2midi.c;		$(C)
mpu2pc:		SRC/mpu2pc.c;		$(C)
mpuclean:	SRC/mpuclean.c;		$(C)
mpumon:		SRC/mpumon.c;		$(C)
mputhru:	SRC/mputhru.c;		$(C)
mpureset:	SRC/mpureset.c;		$(C)
name2key:	key2name;		$(rm) name2key; ln key2name name2key
netscore:	SRC/netscore.c;		$(C)
notedur:	SRC/notedur.c;		$(C)
numev:		SRC/numev.c;		$(C)
pbend:		SRC/pbend.c;		$(C)
pharm:		SRC/pharm.c;		$(C)
pseq:		SRC/pseq.c;		$(C)
qwe:		SRC/qwe.c;		$(Cs)
resid:		SRC/resid.c;		$(C)
retro:		SRC/retro.c;		$(C)
rpt:		SRC/rpt.c;		$(C)
rpts:		SRC/rpts.c;		$(C)
rtloop:		SRC/rtloop.c;		$(C)
rxkey:		SRC/rxkey.c;		$(C)
scat:		SRC/scat.c;		$(C)
select:		SRC/select.c $(l);	$(C)
sing:		SRC/sing.c;		$(C)
stats:		SRC/stats.c;		$(C)
sustain:	SRC/sustain.c;		$(C)
sxmon:		SRC/sxmon.c $(l);	$(C)
sxmpu:		SRC/sxmpu.c $(l);	$(C)
sxstrip:	SRC/sxstrip.c;		$(C)
tab2mpu:	SRC/tab2mpu.c $(l);	$(C)
tempo:		SRC/tempo.c $(l);	$(C)
tmod:		SRC/tmod.c;		$(C)
tonerow:	SRC/tonerow.c $(l);	$(C)
trim:		SRC/trim.c $(l);	$(C)
tshift:		SRC/tshift.c $(l);	$(C)
txeld:		SRC/txeld.c $(l);	$(C)
txget:		SRC/txget.c $(l);	$(C)
txput:		SRC/txput.c $(l);	$(C)
txvmrg:		SRC/txvmrg.c $(l);	$(C)
unjust:		SRC/unjust.c $(l);	$(C)
vegplot:	SRC/vegplot.c;		$(Cp)
velpat:		SRC/velpat.c;		$(C)
vmod:		SRC/vmod.c;		$(C)
vpr:		SRC/vpr.c;		$(C)

cleanup:; $(rm) core errors .comfile
