runtime = /home/olson/PCN/v2.0a7/src/runtime
vpath %.c .:$(runtime)

ARCH = sun4
#ARCH = ipsc860
BUILD = /home/olson/PCN/v2.0a7/Build/new/src
#BUILD0 = /home/olson/PCN/v2.0a7/Build/sun4/src
BUILD0 = /home/olson/PCN/v2.0a7/Build/next040/src
SRC = /home/olson/PCN/v2.0a7/src
STAGE = _stage1
STAGE1 = _stage1
#PCNCOMP = /home/olson/PCN/v2.0a7/scripts/pcncomp/pcncomp
PCNCOMP = /usr/local/pcn_2.0a7/bin/pcncomp -target $(ARCH)
#PCNCOMP = $(BUILD)/compiler/pcncomp$(STAGE)
#PCNLINK = $(BUILD)/linker/pcnlink_stage1
#PCNLINK = $(BUILD)/linker/pcnlink$(STAGE) $(NOCREATE)
PCNLINK = $(BUILD)/linker/pcnlink_stage0 $(NOCREATE)

PCNCOMPFLAGS = -v -dumpafter vt -dumpafter basic

CC = $(PCNCOMP) -v -g
CFLAGS = 

VT = vt_msg.pam boot.pam vt_remap.pam vt_route.pam vt_manager.pam vt_server.pam

WORKS = $(BUILD0)/vt
NWORKS = $(BUILD)/vt

VT_PAMS = \
	$(WORKS)/vt_manager.pam	\
	$(WORKS)/vt_msg.pam	\
	$(WORKS)/vt_lib.pam	\
	$(WORKS)/vt_route.pam	\
	$(WORKS)/vt_ports.pam	\
	$(WORKS)/vt_remap.pam	\
	$(WORKS)/vt_server.pam	\
	$(NWORKS)/vts.pam               

TARRAY_OBJS = tarray.pam 

tarray: pcnt_tarray.o
	$(PCNCOMP) -o tarray pcnt_tarray.o -pdb -v
pcnt_tarray.c: $(TARRAY_OBJS)
	$(PCNCOMP) -o tarray -oc pcnt_tarray -pdb $(TARRAY_OBJS) -pcnt -v \
		 -mm tarray

DEEP_OBJS = deep.pam boot.pam vt_manager.pam vt_server.pam  vt_lib.pam \
		vt_route.pam

deep: pcnt_deep.o
	$(PCNCOMP) -o deep pcnt_deep.o -pdb -v
pcnt_deep.c: $(DEEP_OBJS)
	$(PCNCOMP) -o deep -oc pcnt_deep -pdb $(DEEP_OBJS) -pcnt -v \
		 -mm deep

TMAP_PAMS = tmap.pam  
TMAP_OBJS = tmap.o pcnt_tmap.o
#boot.pam vt_manager.pam vt_server.pam  vt_lib.pam \
#		vt_route.pam

tmap: $(TMAP_OBJS)
	$(PCNCOMP) -o tmap $(TMAP_OBJS) -pdb -v 
pcnt_tmap.c: $(TMAP_PAMS)
	$(PCNCOMP) -o tmap -oc pcnt_tmap -pdb $(TMAP_PAMS) -pcnt -v \
		 -mm tmap -PL$(BUILD)/vt -PL$(BUILD)/boot


tmap1: pcnt_tmap1.o
	$(PCNCOMP) -o tmap1 pcnt_tmap1.o -pdb -v 
pcnt_tmap1.c: tmap1.pam
	$(PCNCOMP) -o tmap1 -oc pcnt_tmap1.c -pdb tmap1.pam -pcnt -v \
		 -mm tmap1 -PL$(BUILD)/vt -PL$(BUILD)/boot


fast_tmap: pcnt_tmap.o
	cc $(CFLAGS)pcnt_tmap.o \
	$(BUILD)/runtime/libpcn_p_ng_stage1_$(ARCH).a \
	$(BUILD)/sys/libsys_stage1_$(ARCH).a \
	$(BUILD)/stdio/libstdio_stage1_$(ARCH).a -lm -o tmap

sys.pam: $(SRC)/sys/sys.pcn
	$(PCNCOMP) $(PCNCOMPFLAGS) $<

vt_msg.pam: $(SRC)/vt/vt_msg.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

vt_server.pam: $(SRC)/vt/vt_server.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

vt_lib.pam: $(SRC)/vt/vt_lib.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

vt_remap.pam: $(SRC)/vt/vt_remap.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

vt_manager.pam: $(SRC)/vt/vt_manager.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

vt_route.pam: $(SRC)/vt/vt_route.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $< -dumpafter encode

boot.pam: boot.pcn
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $< -dumpafter encode

.SUFFIXES: .pcn .pam

.pcn.pam:
	$(PCNCOMP) -c $(PCNCOMPFLAGS) $<

