# examples - jimm's commodities
# lattice makefile

##### precompiled include file setup	#####
SYM=lcx.sym
SYMSRC= sysall.h
SYMDIR=rad:

##### setup	#####
LCLIB=lib:lc.lib 
SHUTTLE=df1:
MYBIN=usr:bin
LIBS=$(LCLIB) /cxsupp/cx_support.lib
SU=lib:c.o

##### options	#####
# lc pass 1
LNAME="commodities.library"
INCLS=-i//include/ -iINCLUDE: 
CFLAGS1=-. $(INCLS) -DLIBNAME=$(LNAME) -d -cwus -H$(SYMDIR)$(SYM) 
# lc pass 2
CFLAGS2=-.
# cape assembler
AFLAGS=-iINCLUDE: -cvrf
# linker
BLOPTS=BATCH BUFSIZE 1024 QUIET SC SD DEFINE __main=__tinymain

##### rules	#####
# lattice compiler
.c.o:
	@echo noline "$*.c	pass 1"
	@lc1 $(CFLAGS1) -oquad:$*.q $* 
	@ echo noline "	optimize"
	@go quad:$*.q
	@echo "	pass 2"
	@lc2 $(CFLAGS2) -o$*.o quad:$*.q 

# cape assembler rule
.asm.o:
	casm -a $*.asm -o$*.o $(AFLAGS)

# produce a "listing" file (by disassembly)
.o.lst:
	omd >$*.lst $*.o $*.c

# produce a library pragma file (.p file) from .fd file
.fd.p:
	fd2pragma $*.fd $*.p

###### example programs	#####
all: $(SYMDIR)$(SYM) popup ihelp nocapslock autopoint2

announce:
	@echo "cflags1: $(CFLAGS1)"
	@echo "cflags2: $(CFLAGS2)"

test: test.o /cxsupp/cx_support.lib
	blink $(BLOPTS) FROM $(SU) $(TESTOBJ) LIB $(LIBS) TO $@

shuttle:
	copy popup|keydump|ihelp|nocapslock|autopoint2 to $(SHUTTLE)

install:
	copy popup|keydump|ihelp|nocapslock|autopoint2 to $(MYBIN)

DEMOSRC=demomain.c demowindow.c democx.c
DEMOOBJ =demomain.o demowindow.o democx.o
popup: $(DEMOOBJ)
	blink $(BLOPTS) FROM $(SU) $(DEMOOBJ) LIB $(LIBS) TO $@

IHELPSRC=ihelp.c ivudu.c
IHELPOBJ=ihelp.o ivudu.o
ihelp: $(IHELPOBJ)
	blink $(BLOPTS) FROM $(SU) $(IHELPOBJ) LIB $(LIBS) TO $@

NOCAPSRC=nocapslock.c
NOCAPSOBJ=nocapslock.o
nocapslock: $(NOCAPSOBJ)
	blink $(BLOPTS) FROM $(SU) $(NOCAPSOBJ) LIB $(LIBS) TO $@


APT2SRC=autopoint2.c apt2vudu.c
APT2OBJ=autopoint2.o apt2vudu.o
autopoint2: $(APT2OBJ)
	blink $(BLOPTS) FROM $(SU) $(APT2OBJ) LIB $(LIBS) TO $@

SRC=$(IHELPSRC) $(NOCAPSRC) $(APT2SRC)
OBJ=$(IHELPOBJ) $(NOCAPSOBJ) $(APT2OBJ)

##### kprintf stub	#####
kp.omod: kp.o
	blink PRELINK $(BLOPTS) FROM kp.o LIB LIB:debug.lib LIB:amiga.lib TO $@

##### make precompiled header files	#####

$(SYMDIR)$(SYM): $(SYM)
	copy $(SYM) $(SYMDIR)

$(SYM): $(SYMSRC)
	lc1 $(INCLS) -ph -o$(SYM) $(SYMSRC)

##### utilities	#####
clean:
	delete \#?.lst \#?.o \#?.q \#?.p

tags: $(SRC)
	ctags $(SRC)
