#	Copyright (c) 1984 AT&T
#	  All Rights Reserved

#	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T
#	The copyright notice above does not evidence any
#	actual or intended publication of such source code.

#ident	"@(#)cpp:m32/makefile	1.6"
#	Cpp Makefile
#
#
BASE	= ../..
TARGET =$(SGS)
SGS=m88k
#
# the two variables NEW_MACH and NEW_SYS are used to create new instances
# of cpp by giving new machine and/or system names to cpp.c.  These
# should be used with PD_MACH=D_newmach and PD_SYS=D_newsys.
# NEW_MACH and NEW_SYS are used (just as SGSINC is) as a string in cpp.c
#
PD_MACH	= D_nomach
PD_SYS	= D_unix
NEW_MACH =
NEW_SYS	=
#
#	External Directories
#
ROOT	=
SGSBASE	= ../..
LIBDIR	= $(BASE)/lib
INCDIR	= 
USRINC	= $(ROOT)/usr/include
#
#	Internal Directories
#
CPPCOM	= ../common
#
#	Compilation Parameters
#
CC=$(PFX)cc
OCSFLAG = OCS_BCS
CFLAGS	= 
FLEX	= FLEXNAMES
DEFLIST	= -D$(FLEX) -D$(OCSFLAG)
ENVPARMS = -DSGSINC=\"$(INCDIR)\" -DUSRINC=\"$(USRINC)\" -DPD_MACH=$(PD_MACH) -DPD_SYS=$(PD_SYS)
SGSENV	=
LDFLAGS	=
LDLIBS =
LIBES	=
#
#	Lint Parameters
#
LINT	= lint
LINTFLAGS = -p
O	= o
#
#	Other Commands
#
SH	= sh
YACC	= yacc
YFLAGS	= -d
STRIP	= strip
SPFLAGS	=
CP	= cp
RM	= rm
PRINT	= pr
PRFLAGS	= -n
LP	= lp
#
PROT	= 775
GRP	= bin
OWN	= bin
#
FRC	=
#
#	Files making up cpp
#
OBJECTS	= cpp.$O cpy.$O rodata.$O yylex.$O
SOURCE	= $(CPPCOM)/cpy.y $(CPPCOM)/yylex.c $(CPPCOM)/cpp.c

all :		$(SGS)cpp

$(SGS)cpp:	$(OBJECTS) $(FRC)
		$(CC) $(CFLAGS) $(DEFLIST) -o $@ $(OBJECTS) $(LIBES) $(LDLIBS)

y.tab.h cpy.c : $(CPPCOM)/cpy.y $(FRC)
	$(YACC) $(YFLAGS) $(CPPCOM)/cpy.y
	-if pdp11 || vax; \
	then \
		$(SH) $(CPPCOM)/:yyfix >rodata.c; \
	else \
		>rodata.c; \
	fi
	mv y.tab.c cpy.c
#
cpy.$O:	cpy.c $(FRC)
	$(CC) $(CFLAGS) $(DEFLIST) $(SGSENV) -c cpy.c
#
yylex.$O: $(CPPCOM)/yylex.c y.tab.h $(FRC)
	$(CC) $(CFLAGS) $(DEFLIST) $(SGSENV) -I. -c $(CPPCOM)/yylex.c
#
cpp.$O: $(CPPCOM)/cpp.c $(FRC)
	$(CC) $(CFLAGS) $(DEFLIST) $(ENVPARMS) $(NEW_SYS) $(NEW_MACH) $(SGSENV) -c $(CPPCOM)/cpp.c
#
rodata.$O: cpy.c $(FRC)
	$(CC) $(CFLAGS) $(DEFLIST) $(SGSENV) -S rodata.c
	-if pdp11 || vax; \
	then \
		$(SH) $(CPPCOM)/:rofix rodata.s; \
	fi
	$(CC) $(CFLAGS) $(DEFLIST) -c rodata.s
#
#
clean :
	$(RM) -f cpy.c y.tab.h rodata.c rodata.s *.o
	$(RM) -f ../*/core ../*/nohup.out ../*/*~

#
clobber: clean
	$(RM) -f $(SGS)cpp

install :	$(LIBDIR)/$(SGS)cpp

$(LIBDIR)/$(SGS)cpp:	$(SGS)cpp
			sh $(BASE)/sgs.install 755 $(OWN) $(GRP) $@ $?

save:
	$(RM) -f $(LIBDIR)/$(SGS)cpp.back
	$(CP) $(LIBDIR)/$(SGS)cpp $(LIBDIR)/$(SGS)cpp.back
#
uninstall:	$(LIBDIR)/$(SGS)cpp.back
	$(RM) -f $(LIBDIR)/$(SGS)cpp
	$(CP) $(LIBDIR)/$(SGS)cpp.back $(LIBDIR)/$(SGS)cpp
#
lint:	$(SOURCE)
	$(LINT) $(LINTFLAGS) $(DEFLIST) $(SOURCE)
#
listing:	$(SOURCE) 
	$(PRINT) $(PRFLAGS) $(SOURCE) $(CPPCOM)/:yyfix $(CPPCOM)/:rofix | $(LP)
#
FRC:
