V8/usr/src/cmd/ccom/vax/makefile

DEBUG= .
PCC2COM= ../common

CC=	cc
LINT=	lint
YACC=	/usr/bin/yacc
LFLAGS=	-p
CFLAGS=-g
YFLAGS=-d -D
INCLIST=	-I. -I$(PCC2COM) -I$(DEBUG)
DEFLIST=
LDFLAGS=
CCOMNAME=comp
TARGET=-DVAX
CC_CMD=	$(CC) -c $(CFLAGS) $(INCLIST) $(DEFLIST) $(TARGET)
YACC_CMD=	$(YACC) $(YFLAGS)

# use M as a short-hand for the awkward PCC2COM
# (M for Machine independent part)
# similarly, use D for DEBUG

M=	$(PCC2COM)
D=	$(DEBUG)

OFILES= cgram.o xdefs.o scan.o pftn.o trees.o optim.o local.o reader.o\
	local2.o debug.o common1.o \
	memcpy.o pjw.o gencode.o genaux.o printx.o lookup.o lcatch2.o catch2.o \
	t2print.o
CFILES=	cgram.c $M/xdefs.c $M/scan.c $M/pftn.c $M/cgen.c $M/cost.c \
	$M/trees.c $M/optim.c local.c $M/prepass.c $M/reader.c \
	$D/debug.c local2.c $M/match.c $M/allo.c table.c $M/pjw.c \
	gencode.c genaux.c

build:	$(CCOMNAME)

install:	$(CCOMNAME)
	cp /lib/ccom comp.sv
	cp comp /lib/ccom
	strip /lib/ccom

vcc:	vcc.c
	$(CC) -o Nvcc vcc.c
	mv Nvcc vcc
#-------------------------

$(CCOMNAME):	$(OFILES)
		time $(CC) $(CFLAGS) $(LDFLAGS) -o $(CCOMNAME) $(OFILES)

sty:		$M/manifest.h $M/sty.y macdefs.h $M/mfile2.h
		-@echo "Expect 3 reduce/reduce conflicts"
		$(YACC_CMD) $M/sty.y
		$(CC) $(CFLAGS) $(LDFLAGS) -I. -I$M -o sty y.tab.c
		rm y.tab.c

pjw.o:		$M/pjw.c
		$(CC_CMD) $M/pjw.c
prepass.o:	$M/prepass.c
		$(CC_CMD) $M/prepass.c
gencode.o:	$M/mfile2.h gencode.c gencode.h
		$(CC_CMD) gencode.c
genaux.o:	$M/mfile2.h genaux.c gencode.h
		$(CC_CMD) genaux.c
catch2.o:	$M/mfile2.h $M/catch2.c
		$(CC_CMD) $M/catch2.c
lcatch2.o:	$M/mfile2.h lcatch2.c
		$(CC_CMD) lcatch2.c
t2print.o:	$M/mfile2.h $M/t2print.c
		$(CC_CMD) $M/t2print.c
printx.o:	printx.c
		$(CC_CMD) printx.c
trees.o:	$M/manifest.h macdefs.h $M/mfile1.h $M/trees.c
		$(CC_CMD) $M/trees.c
lookup.o:	$M/manifest.h macdefs.h $M/mfile1.h $M/lookup.c
		$(CC_CMD) $M/lookup.c

optim.o:	$M/manifest.h macdefs.h $M/mfile1.h $M/optim.c
		$(CC_CMD) $M/optim.c

pftn.o:		$M/manifest.h macdefs.h $M/mfile1.h $M/pftn.c
		$(CC_CMD) $M/pftn.c

init.o:		$M/manifest.h macdefs.h $M/mfile1.h $M/init.c
		$(CC_CMD) $M/init.c

local.o:	$M/manifest.h macdefs.h $M/mfile1.h 
		$(CC_CMD) local.c

scan.o:		$M/manifest.h macdefs.h $M/mfile1.h $M/scan.c
		$(CC_CMD) $M/scan.c

common1.o:	$M/manifest.h $M/mfile1.h macdefs.h dope.h $M/common1.c
		$(CC_CMD) $M/common1.c

xdefs.o:	$M/manifest.h $M/mfile1.h macdefs.h $M/xdefs.c
		$(CC_CMD) $M/xdefs.c

cgram.o:	$M/manifest.h $M/mfile1.h macdefs.h cgram.c
		cp y.debug.sv y.debug
		$(CC_CMD) -DYYDEBUG cgram.c

cgram.c:	$M/cgram.y
		-@echo "Expect 6 shift/reduce conflicts"
		$(YACC_CMD) $M/cgram.y
		sed 's_^# line .*_/* & */_' y.tab.c >cgram.c
		rm y.tab.c

parsetrees.c:	parsetrees.y
		$(YACC_CMD) parsetrees.y
		sed 's_^# line .*_/* & */_' y.tab.c > parsetrees.c
		rm y.tab.c

table.o:	$M/manifest.h $M/mfile2.h macdefs.h table.c
		$(CC_CMD) table.c

table.c:	sty stin
		-@echo "Expect no warning messages"
		sty <stin >table.c

cost.o:		$M/manifest.h $M/mfile2.h macdefs.h $M/cost.c
		$(CC_CMD) $M/cost.c

cgen.o:		$M/manifest.h $M/mfile2.h macdefs.h $M/cgen.c
		$(CC_CMD) $M/cgen.c

cdgen.o:	$M/manifest.h $M/mfile2.h macdefs.h $M/cdgen.c
		$(CC_CMD) $M/cdgen.c

reader.o:	$M/manifest.h $M/mfile2.h macdefs.h $M/reader.c
		$(CC_CMD) $M/reader.c

local2.o:	$M/manifest.h $M/mfile2.h macdefs.h
		$(CC_CMD) local2.c

debug.o:	$M/manifest.h $M/mfile1.h macdefs.h $D/debug.c $D/debug.h 
		$(CC_CMD) $D/debug.c

match.o:	$M/manifest.h $M/mfile2.h macdefs.h $M/match.c 
		$(CC_CMD) $M/match.c

allo.o:		$M/manifest.h $M/mfile2.h macdefs.h $M/allo.c
		$(CC_CMD) $M/allo.c

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

stout: comp
	R&

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

lint: $(CFILES)
	$(LINT) $(INCLIST) $(LFLAGS) $(CFILES)

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

clean:
	-rm -f $(OFILES) cgram.c core nohup.out stout mout lout y.act* comp comp.sv y.tab.h

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

clobber:	clean
		-rm -f $(CCOMNAME) table.c sty