#sccs	"@(#)cxref:Makefile	1.2"

#	Convergent Technologies - System V - 9/25/84 elr
include $(MAKEINC)/Makepre.h

OWNER=$(ROOT)/usr/lib
LINTF = -p
LINT = lint
OPRL = oprl
LFLAG1 = 
LFLAG2 =
LFLAG3 = -s
FFLAG =
ID = id.o
CFLAGS = -O -c -DCXREF
CPASS1 =	cgram.c comm1.c optim.c pftn.c scan.c trees.c \
		xdefs.c xlocal.c lint.c
OPASS1 =	cgram.o comm1.o optim.o pftn.o scan.o trees.o \
		xdefs.o xlocal.o lint.o

XPASS =	cgram.y comm1.c common lint.c lmanifest macdefs manifest \
	mfile1 optim.c pftn.c scan.c trees.c xdefs.c xlocal.c

DEPENDLIST = cgram.c \
	cgram.y \
	comm1.c \
	common \
	cpp.c \
	cpy.c \
	cpy.y \
	cxr.c \
	lint.c \
	lmanifest \
	macdefs \
	manifest \
	optim.c \
	owner.h \
	pftn.c \
	scan.c \
	trees.c \
	xdefs.c \
	xlocal.c \
	yylex.c

all :	Makeincludes cxref xpass xcpp

Makeincludes: $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes
	$(MAKE)

includes: $(DEPENDLIST)
	$(INCCMD) $(DEPENDLIST) | $(SORT) | $(FILTER) > Makeincludes

# CXREF

cxref :	cxr.c owner.h $(ID)
	$(CC) $(FFLAG) -O -c cxr.c
	$(LD) $(LFLAG3) $(SHAREDLIB) cxr.o -o cxref $(ID)

# XPASS

xpass:	$(OPASS1) $(ID)
	$(LD) $(FFLAG) $(LFLAG1) $(LFLAG3) $(SHAREDLIB) $(OPASS1) -o xpass $(ID)

$(OPASS1): manifest macdefs mfile1

cgram.c: cgram.y
	sed -e 's/\/\*CXREF\(.*\)\*\//\1/' cgram.y > gram.y
	yacc gram.y
	mv y.tab.c cgram.c
	rm -f gram.y

cgram.o: cgram.c
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) cgram.c

comm1.o: common
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) comm1.c

lint.o:	lmanifest lint.c
	$(CC) $(FFLAG) $(CFLAGS) lint.c
	
optim.o:	optim.c
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) optim.c
	
pftn.o:		pftn.c
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) pftn.c
	
scan.o: scan.c 
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) scan.c

trees.o:	trees.c
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) trees.c

xdefs.o: xdefs.c
	$(CC) -DBUG4 $(FFLAG) $(CFLAGS) xdefs.c
	
xlocal.o:	xlocal.c lmanifest
	$(CC) $(FFLAG) $(CFLAGS) xlocal.c
	
# XCPP

xcpp:	cpp.o cpy.o $(ID)
	$(LD) $(FFLAG) $(LFLAG2) $(LFLAG3) $(SHAREDLIB) -o xcpp cpp.o cpy.o $(ID)

cpp.o:	cpp.c
	$(CC) $(FFLAG) $(CFLAGS) -Dunix=1 cpp.c

cpy.o:	cpy.c yylex.c
	$(CC) $(FFLAG) $(CFLAGS) -Dunix=1 cpy.c

cpy.c:	cpy.y
	yacc cpy.y
	mv y.tab.c cpy.c

# UTILITIES

install:
	$(INSTALL) -i$(EXITFLAG) cxref $(INSDIR) $(PROTOFILE)
	$(INSTALL) -i$(EXITFLAG) xpass $(INSDIR) $(PROTOFILE)
	$(INSTALL) -i$(EXITFLAG) xcpp $(INSDIR) $(PROTOFILE)

clean:
	rm -f *.o  

clobber: clean
	rm -f xpass cgram.c cxref xcpp cpy.c


id.c: cxref.sl
	mkslid > id.c

populate:
	getunit
lint:
	$(LINT) $(LINTF) cxr.c
	$(LINT) $(LINTF) -DBUG4 $(CPASS1)
	$(LINT) $(LINTF) -Dunix=1 -Dcpp.c cpy.c

cxref.list:	cxr.c owner.h
	@echo "Listing of cxref"
	$(OPRL) -x cxr.c owner.h
	$(OPRL) -x -C cxr.c
	touch cxref.list

xcpp.list:	cpp.c cpy.c yylex.c
	@echo "Listing of xcpp"
	$(OPRL) -x cpp.c cpy.y yylex.c
	$(OPRL) -x -C cpp.c cpy.c
	touch xcpp.list

xpass.list:	$(XPASS) cgram.c
	@echo "Listing of xpass"
	$(OPRL) -x $(XPASS)
	$(OPRL) -x -C $(CPASS1)
	touch xpass.list

list:	$(OWNER)/bin/xcpp $(OWNER)/bin/xpass $(OWNER)/bin/cxref \
	cxref.list xcpp.list xpass.list
	$(OPRL) -x Makefile
	touch list

include Makeincludes
include $(MAKEINC)/Makepost.h

