# Makefile for cmt
# Copyright 1989 Carnegie Mellon University
# Last modified date: 

CMTLIB = cmt
CAMDLIB = :camd/lib/camd.lib
CAMDDIR = :camd/include


# Definition of Compiler, Linker, and Flags
CC     = lc
CFLAGS = -d -v -O -i$(CAMDDIR)

# EVERYTHING is everything this makefile knows how to make
EVERYTHING = cmt.lib moxc.o moxcmain.o

# CURRENT is the file we want to make now.
CURRENT = $(EVERYTHING) almakefile

MUOBJ1 = midifns.o userio.o cmdline.o cext.o timebase.o prop1.o camdmidi.o
MUOBJ2 = seq.o excldesc.o record.o seqmread.o seqmwrite.o cleanup.o mem.o
MUOBJ3 = seqread.o seqextns.o cmtcmd.o seqwrite.o tempomap.o midifile.o 
MUOBJ  = $(MUOBJ1) $(MUOBJ2) $(MUOBJ3)
# avoid naming moxc.o or moxcmain.o
CLEANOBJ1 = midifn?.o useri?.o cmdlin?.o cex?.o timebas?.o pro?1.o camdmid?.o
CLEANOBJ2 = s?q.o excldes?.o recor?.o seqmrea?.o seqmwrit?.o cleanu?.o
CLEANOBJ3 = seqrea?.o seqextn?.o cmtcm?.o seqwrit?.o tempoma?.o midifil?.o me?.o
RECOMP = cmt.l?b \#?.o

#-------------------------------------------------------------------------

current : $(CURRENT)
	echo "made $(CURRENT)"

everything : $(EVERYTHING)
	echo "made $(EVERYTHING)"

switches.h : aswitches.h
	copy aswitches.h switches.h

prop1.o : prop1.c prop1.h
	$(CC) $(CFLAGS) prop1.c

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

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

excldesc.o : excldesc.c midicode.h
	$(CC) $(CFLAGS) excldesc.c 

moxc.o : midifns.h cmdline.h midicode.h moxc.c
	$(CC) $(CFLAGS) moxc.c

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

cmt.lib : $(MUOBJ)
	oml cmt.lib r @alcmtlib.lst

midifns.o : midifns.h midicode.h cmdline.h userio.h pitch.h midifns.c
	$(CC) $(CFLAGS) midifns.c 

seqread.o : cmdline.h seqread.c seq.h
	$(CC) $(CFLAGS) seqread.c

seq.o : midifns.h userio.h seq.c seq.h
	$(CC) $(CFLAGS) seq.c

seq2.o : midifns.h userio.h seq2.c seq.h
	$(CC) $(CFLAGS) seq2.c

seqmwrite.o : midifns.h userio.h seqmwrite.c seq.h
	$(CC) $(CFLAGS) seqmwrite.c

record.o : midifns.h userio.h midicode.h record.c
	$(CC) $(CFLAGS) record.c

tuning : tuning.o $(CMTLIB).lib
	$(LN) tuning.o $(LFLAGS) 

userio.o : userio.h userio.c
	$(CC) $(CFLAGS) userio.c

almakefile : makefile
	copy makefile almakefile

# clean objects for library
clean :
	delete $(CLEANOBJ1)
	delete $(CLEANOBJ2)
	delete $(CLEANOBJ3)

purge : clean
	delete $(RECOMP)

