
CFLAGS=-Wall -DVLUNIX -DUNIX # -DUDEBUG

OBJS=tparse.o cgen.o p.o y.tab.o symtable.o copt.o
VLUNIX_OBJS=vl.o vl_builtin.o vl_unix.o vl_display.o vl_list.o
VLPALM_OBJS=vl_palm.o vlvm_palm.o vl_list_palm.o vl_builtin_palm.o \
vl_display_palm.o

# point these at your pilot-link package include files and libs
PILOTLINK=/opt/pilot-link/default
PINC=-I$(PILOTLINK)/include
PLIB=-L$(PILOTLINK)/lib -lpisock

# cross-compiler and cflags
PCC=m68k-palmos-gcc
PILRC=pilrc
PCFLAGS=-O2 -DVLPALM -Wall -palmos3.5

unix: hhlc vl

all: unix install-vlo palm

vlpalm: vl_palm.prc

y.tab.c: hhl.y
	yacc -d hhl.y

hhlc:	$(OBJS)
	$(CC) -o hhlc $(OBJS)

vl: $(VLUNIX_OBJS)
	$(CC) -o vl $(VLUNIX_OBJS)

install-vlo: install-vlo.c
	$(CC) $(PINC) install-vlo.c -o install-vlo $(PLIB)

palm: vl_palm.prc

vl_palm.prc: vl_palm prc-stamp
	build-prc vl_palm.prc "VLPalm" VLpm vl_palm *.bin

prc-stamp: vl_palm.rcp vl_palm.def
	/bin/rm -f *.bin prc-stamp
	$(PILRC) vl_palm.rcp
	touch prc-stamp

# depends don't work right for this target..

vl_palm: vl_palm.c vl.c vl.h vl_builtin.c vl_builtin.h vl_display.c vl_display.h
	$(PCC) -c $(PCFLAGS) vl_palm.c
	$(PCC) -c $(PCFLAGS) vl.c -o vlvm_palm.o
	$(PCC) -c $(PCFLAGS) vl_list.c -o vl_list_palm.o
	$(PCC) -c $(PCFLAGS) vl_builtin.c -o vl_builtin_palm.o
	$(PCC) -c $(PCFLAGS) vl_display.c -o vl_display_palm.o
	$(PCC) $(VLPALM_OBJS) $(PCFLAGS) -o vl_palm

clean:	
	/bin/rm -f $(OBJS) hhlc $(VLUNIX_OBJS) $(VLPALM_OBJS) vl y.tab.c y.tab.h *.bin install-vlo prc-stamp vl_palm.o vlvm_palm.o vl_palm vl_palm.prc out.vlo

## depends

hhl.y: symtable.h tparse.h

p.l: symtable.h tparse.h y.tab.h

y.tab.h: y.tab.c

y.tab.o: y.tab.c

cgen.o: symtable.h tparse.h y.tab.h vl.h cgen.h

copt.o: symtable.h tparse.h y.tab.h vl.h copt.h

p.o: p.l y.tab.h hhl.y tparse.h

symtable.o: symtable.h

tparse.o: y.tab.h symtable.h tparse.h cgen.h

vl.o: vl.h vl_list.h vl_builtin.h vl_display.h

vl_list.o: vl.h vl_list.h vl_builtin.h vl_display.h

vl_builtin.o: vl.h vl_list.h vl_builtin.h vl_display.h

vl_display.o: vl.h vl_list.h vl_builtin.h vl_display.h

vl_unix.o: vl.h vl_list.h vl_builtin.h vl_display.h

