# Name:  CC.MK	Part No.: _______-____r
#			
#		   DENELCOR, INC. SOFTWARE ENGINEERING
#
# The recipient of this product specifically agrees not to distribute,
# disclose, or disseminate in any way, to any one, nor use for its own
# benefit, or the benefit of others, any information contained  herein
# without the expressed written consent of Denelcor, Inc.
#
#                      RESTRICTED RIGHTS LEGEND
#
# Use, duplication, or disclosure by the Government is  subject  to
# restriction  as  set forth in paragraph (b) (3) (B) of the Rights
# in Technical Data and Computer Software  Clause  in  DAR  7-104.9
# (a).
#
# @(#)CC.MK	1.15

ROOT = /usr/jbev/
TARGET = bin
LIB = bin
SOURCE = /usr/jbev/cc
INCLUDE =  /usr/include
PREFIX = 

CC = /bin/$(PREFIX)cc
CFLAGS = -Dmpx
OPTIONS = -Ox
LIBC = /lib/lib$(PREFIX)c.a

GET = /usr/bin/get
GFLAGS =

FRC =

PASS1 = \
	cgram1.o \
	code1.o \
	comm1.o \
	local1.o \
	optim1.o \
	pftn1.o \
	scan1.o \
	sym1.o \
	trees1.o \
	vinit1.o \
	xdefs1.o

PASS3 = \
	allo3.o \
	comm3.o \
	lcl3.o \
	local3.o \
	match3.o \
	optim3.o \
	order3.o \
	rdr3.o \
	reader3.o \
	regallo3.o \
	regs3.o \
	stats3.o \
	table3.o \
	tr3.o \
	wrt3.o

ASSEM = \
	cgram1.s \
	code1.s \
	comm1.s \
	local1.s \
	optim1.s \
	pftn1.s \
	scan1.s \
	sym1.s \
	trees1.s \
	vinit1.s \
	xdefs1.s \
	allo3.s \
	comm3.s \
	lcl3.s \
	local3.s \
	match3.s \
	optim3.s \
	order3.s \
	rdr3.s \
	reader3.s \
	regallo3.s \
	regs3.s \
	table3.s \
	tr3.s \
	wrt3.s \
	cpp.s \
	cpy.h \
	zcc.s

all: echoinfo cc cpp pass1 pass3

echoinfo:
	@/bin/echo "\t***** cc CC.MK:  Version 1.15"

clean:
	-/bin/rm -f mfile1 mfile3 mfile1.h mfile3.h mopt.h \
		manifest.h macdefs.h macdefs3.h macdefs1.h \
		motabdefs3.h yaccdefs.h \
		$(ASSEM) \
		$(PASS1) \
		$(PASS3) \
		zcc.o \
		cpp.o \
		cpy.o

clobber: clean
	-/bin/rm -f cc
	-if test "$(ROOT)$(TARGET)" = "`pwd`" ; then \
		/bin/rm -f $(ROOT)$(LIB)/pass1 ; \
		/bin/rm -f $(ROOT)$(LIB)/pass3 ; \
		/bin/rm -f $(ROOT)$(LIB)/cpp ; \
	else \
		/bin/rm -f pass1 pass3 cpp ; \
	fi

cc:\
	zcc.o \
	$(LIBC) \
	$(FRC)
	$(CC) $(CFLAGS) $(OPTIONS) zcc.o -o cc
	/bin/chmod 755 cc
	/bin/chgrp bin cc
	/bin/chown bin cc

zcc.o:\
	$(INCLUDE)/stdio.h \
	$(INCLUDE)/ctype.h \
	$(INCLUDE)/signal.h \
	$(INCLUDE)/errno.h \
	$(INCLUDE)/sys/types.h \
	$(INCLUDE)/sys/stat.h \
	$(SOURCE)/s.driver.c \
	$(SOURCE)/s.drivedefs.h \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.driver.c -p >zcc.c
	$(GET) $(GFLAGS) $(SOURCE)/s.drivedefs.h
	$(CC) $(CFLAGS) $(OPTIONS) -c zcc.c
	-/bin/rm -f zcc.c drivedefs.h

cpp:\
	cpp.o \
	cpy.o \
	$(LIBC) \
	$(FRC)
	$(CC) $(CFLAGS) $(OPTIONS) cpp.o cpy.hao -o cpp
	/bin/chmod 755 cpp
	/bin/chgrp bin cpp
	/bin/chown bin cpp
	-if test "$(ROOT)$(TARGET)" = "`pwd`" ; then \
		/bin/mv cpp $(ROOT)$(LIB)/cpp ; \
	fi

cpp.o:\
	$(INCLUDE)/stdio.h \
	$(SOURCE)/cp/s.cpp.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/cp/s.cpp.c
	$(CC) $(CFLAGS) $(OPTIONS) -c cpp.c
	-/bin/rm -f cpp.c

cpy.o:\
	$(SOURCE)/cp/s.cpy.y \
	$(SOURCE)/cp/s.yylex.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/cp/s.cpy.y
	$(YACC) cpy.y
	-/bin/mv y.tab.c cpy.c
	-/bin/rm -f cpy.y
	$(GET) $(GFLAGS) $(SOURCE)/cp/s.yylex.c
	$(CC) $(CFLAGS) $(OPTIONS) -c cpy.c
	-/bin/rm -f yylex.c cpy.c

pass1:\
	$(PASS1) \
	$(LIBC) \
	$(FRC)
	$(CC) $(CFLAGS) $(OPTIONS) $(PASS1) -o pass1
	/bin/chmod 755 pass1
	/bin/chgrp bin pass1
	/bin/chown bin pass1
	-if test "$(ROOT)$(TARGET)" = "`pwd`" ; then \
		/bin/mv pass1 $(ROOT)$(LIB)/pass1 ; \
	fi

cgram1.o:\
	mfile1 \
	$(SOURCE)/s.cgram1.y \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.cgram1.y
	$(YACC) cgram1.y
	-/bin/mv y.tab.c cgram1.c
	-/bin/rm -f cgram1.y
	$(CC) -c $(CFLAGS) $(OPTIONS) cgram1.c
	-/bin/rm -f cgram1.c

code1.o:\
	mfile1 \
	$(INCLUDE)/ctype.h \
	$(INCLUDE)/signal.h \
	$(SOURCE)/s.code1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.code1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c code1.c
	-/bin/rm -f code1.c

comm1.o:\
	mfile1 \
	$(SOURCE)/s.common \
	$(SOURCE)/s.comm1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.common
	$(GET) $(GFLAGS) $(SOURCE)/s.comm1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c comm1.c
	-/bin/rm -f comm1.c common

local1.o:\
	mfile1 \
	$(SOURCE)/s.local1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.local1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c local1.c
	-/bin/rm -f local1.c

optim1.o:\
	mfile1 \
	$(SOURCE)/s.optim \
	$(SOURCE)/s.optim1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.optim
	$(GET) $(GFLAGS) $(SOURCE)/s.optim1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c optim1.c
	-/bin/rm -f optim1.c optim

pftn1.o:\
	mfile1 \
	$(SOURCE)/s.pftn1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.pftn1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c pftn1.c
	-/bin/rm -f pftn1.c

scan1.o:\
	mfile1 \
	$(SOURCE)/s.scan1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.scan1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c scan1.c
	-/bin/rm -f scan1.c

sym1.o:\
	mfile1 \
	$(SOURCE)/s.sym1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.sym1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c sym1.c
	-/bin/rm -f sym1.c

trees1.o:\
	mfile1 \
	$(SOURCE)/s.trees1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.trees1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c trees1.c
	-/bin/rm -f trees1.c

vinit1.o:\
	mfile1 \
	$(SOURCE)/s.vinit1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.vinit1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c vinit1.c
	-/bin/rm -f vinit1.c

xdefs1.o:\
	mfile1 \
	$(SOURCE)/s.xdefs1.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.xdefs1.c
	$(CC) $(CFLAGS) $(OPTIONS) -c xdefs1.c
	-/bin/rm -f xdefs1.c

mfile1:\
	manifest.h \
	$(SOURCE)/s.mfile1.h \
	$(SOURCE)/s.macdefs.h \
	$(SOURCE)/s.mopt.h \
	$(SOURCE)/s.yaccdefs.h \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.mfile1.h
	$(GET) $(GFLAGS) $(SOURCE)/s.macdefs.h
	$(GET) $(GFLAGS) $(SOURCE)/s.mopt.h
	$(GET) $(GFLAGS) $(SOURCE)/s.yaccdefs.h
	touch mfile1


pass3:\
	$(PASS3) \
	$(LIBC) \
	$(FRC)
	$(CC) $(CFLAGS) $(OPTIONS) $(PASS3) -o pass3
	/bin/chmod 755 pass3
	/bin/chgrp bin pass3
	/bin/chown bin pass3
	-if test "$(ROOT)$(TARGET)" = "`pwd`" ; then \
		/bin/mv pass3 $(ROOT)$(LIB)/pass3 ; \
	fi

allo3.o:\
	mfile3 \
	$(SOURCE)/s.allo3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.allo3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c allo3.c
	-/bin/rm -f allo3.c

comm3.o:\
	mfile3 \
	$(SOURCE)/s.common \
	$(SOURCE)/s.comm3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.common
	$(GET) $(GFLAGS) $(SOURCE)/s.comm3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c comm3.c
	-/bin/rm -f comm3.c common

lcl3.o:\
	mfile3 \
	$(SOURCE)/s.lcl3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.lcl3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c lcl3.c
	-/bin/rm -f lcl3.c

match3.o:\
	mfile3 \
	$(SOURCE)/s.match3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.match3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c match3.c
	-/bin/rm -f match3.c

local3.o:\
	mfile3 \
	$(SOURCE)/s.local3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.local3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c local3.c
	-/bin/rm -f local3.c

optim3.o:\
	mfile3 \
	$(SOURCE)/s.optim \
	$(SOURCE)/s.optim3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.optim
	$(GET) $(GFLAGS) $(SOURCE)/s.optim3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c optim3.c
	-/bin/rm -f optim3.c optim

order3.o:\
	mfile3 \
	$(SOURCE)/s.order3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.order3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c order3.c
	-/bin/rm -f order3.c

rdr3.o:\
	mfile3 \
	$(SOURCE)/s.rdr \
	$(SOURCE)/s.rdr3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.rdr
	$(GET) $(GFLAGS) $(SOURCE)/s.rdr3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c rdr3.c
	-/bin/rm -f rdr3.c rdr

reader3.o:\
	mfile3 \
	$(SOURCE)/s.reader3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.reader3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c reader3.c
	-/bin/rm -f reader3.c

regallo3.o:\
	mfile3 \
	$(SO//s.regallo3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.regallo3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c regallo3.c
	-/bin/rm -f regallo3.c

regs3.o:\
	mfile3 \
	$(SOURCE)/s.regs3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.regs3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c regs3.c
	-/bin/rm -f regs3.c

stats3.o:\
	$(SOURCE)/s.stats3.s \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.stats3.s
	$(CC) $(CFLAGS) $(OPTIONS) -c stats3.s
	-/bin/rm -f stats3.s

table3.o:\
	mfile3 \
	$(SOURCE)/s.table3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.table3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c table3.c
	-/bin/rm -f table3.c

tr3.o:\
	mfile3 \
	$(SOURCE)/s.tr3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.tr3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c tr3.c
	-/bin/rm -f tr3.c

wrt3.o:\
	mfile3 \
	$(SOURCE)/s.wrt3.c \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.wrt3.c
	$(CC) $(CFLAGS) $(OPTIONS) -c wrt3.c
	-/bin/rm -f wrt3.c

mfile3:\
	manifest.h \
	$(SOURCE)/s.mfile3.h \
	$(SOURCE)/s.macdefs.h \
	$(SOURCE)/s.mopt.h \
	$(SOURCE)/s.motabdefs3.h \
	$(SOURCE)/s.macdefs3.h \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.mfile3.h
	$(GET) $(GFLAGS) $(SOURCE)/s.macdefs.h
	$(GET) $(GFLAGS) $(SOURCE)/s.mopt.h
	$(GET) $(GFLAGS) $(SOURCE)/s.motabdefs3.h
	$(GET) $(GFLAGS) $(SOURCE)/s.macdefs3.h
	touch mfile3

manifest.h:\
	$(INCLUDE)/stdio.h \
	$(SOURCE)/s.manifest.h \
	$(FRC)
	$(GET) $(GFLAGS) $(SOURCE)/s.manifest.h

FRC:
