.
# $Header: /cvs/stx/stx/libcomp/Make.proto,v 1.25 1995-07-23 02:24:56 claus Exp $
#
# -------------- no need to change anything below ----------
TOP=..
SUBDIRS=
LIBNAME=libcomp
STCOPT=$(LIBCOMP_STCOPT)
STCLOCALOPT='-Pcompiler-classes-(libcomp)' $(COMMONSYMBOLS)
LOCALDEFS=$(DLDEFS)
all:: abbrev.stc $(UNCRITICALOBJS) objs classList.stc $(OBJTARGET) $(LIBCOMP_MORE)
#
# although all files are compiled in here,
# not everything goes into the target library
# ObjFLoader is optional
#
OBJFILES=`ls *.o \
| grep -v ObjFLoader.$(O) \
| grep -v libcompInit.$(O)`
#
# these are uncritical - save some bytes by compiling with optspace
#
UNCRITICALOBJS= \
Explainer.$(O) \
UndefVar.$(O) \
SrcFLoader.$(O)
OBJS= \
Scanner.$(O) \
Parser.$(O) \
BCompiler.$(O) \
Explainer.$(O) \
Variable.$(O) \
ParseNode.$(O) \
PrimaryNd.$(O) \
VarNode.$(O) \
SelfNode.$(O) \
SuperNode.$(O) \
ConstNode.$(O) \
StatNode.$(O) \
RetNode.$(O) \
PrimNd.$(O) \
AssignNd.$(O) \
BlockNode.$(O) \
MessageNd.$(O) \
UnaryNd.$(O) \
BinaryNd.$(O) \
CascadeNd.$(O) \
UndefVar.$(O) \
LazyMethod.$(O) \
SrcFLoader.$(O) \
ImmArray.$(O) \
$(EXTRA_LIBCOMP)
# only needed for NeXT - assembler dumps core with long name ?!?!
#
VarNode.$(O):
$(STC) -CC="$(CC)" $(STCFLAGS) $(SOMESHORTNAMES) $(CFLAGS) -c $*.st
#
# these are not time critical
#
$(UNCRITICALOBJS):
@$(MAKE) UNCRITICAL NAME=$*.st
UNCRITICAL:
$(STC) -CC="$(CC)" $(STCFLAGS) +optspace2 $(CFLAGS) -c $(NAME)
#
# install the extra objects
#
qinstall:: $(DESTLIBDIR)
if [ "$(EXTRA_LIBCOMP)"x != "x" ]; then \
$(INSTALL) $(EXTRA_LIBCOMP) $(DESTLIBDIR); \
fi
#
# ObjectFile and ObjectFileLoader are not included in
# the classLibrary (but as extra objects)
#
classList.stc: Make.proto
$(MAKE) genClassList
grep -v ObjectFileLoader < classList.stc > ttt
grep -v ObjectFile < ttt > classList.stc
rm -f ttt
cleanjunk::
-rm -f *.c *.H
clean::
-mv ObjFloader.o __ObjFLoader.o
-rm -f [A-Z]*.o
-mv __ObjFLoader.o ObjFloader.o
-rm -f *.c *.H abbrev.stc classList.stc
clobber::
-rm -f *.c *.H abbrev.stc classList.stc
tar:
(cd $(TOP); tar cvfh DISTRIB/libcomp.tar \
libcomp/.dir.info \
libcomp/*.st \
libcomp/Make.proto)
#
# next thing I'll build into stc is a makedepend feature for this ...
#
I = $(INCLUDE)
STCHDR=$(I)/stc.h $(I)/stcIntern.h $(CPUINTERN_H)
OBJECT=$(I)/Object.H $(STCHDR)
SCANNER=$(I)/Scanner.H $(OBJECT)
PARSER=$(I)/Parser.H $(SCANNER)
PARSENODE=$(I)/ParseNode.H $(OBJECT)
PRIMARYNODE=$(I)/PrimaryNd.H $(PARSENODE)
MESSAGENODE=$(I)/MessageNd.H $(PARSENODE)
ObjFLoader.$(O): ObjFLoader.st $(OBJECT)
LazyMethod.$(O): LazyMethod.st $(I)/Method.H $(I)/CompCode.H $(I)/ExecFunc.H $(OBJECT)
UndefVar.$(O): UndefVar.st $(OBJECT)
Scanner.$(O): Scanner.st $(OBJECT)
Parser.$(O): Parser.st $(SCANNER)
BCompiler.$(O): BCompiler.st $(PARSER)
Variable.$(O): Variable.st $(OBJECT)
ParseNode.$(O): ParseNode.st $(OBJECT)
StatNode.$(O): StatNode.st $(PARSENODE)
AssignNd.$(O): AssignNd.st $(PARSENODE)
BlockNode.$(O): BlockNode.st $(PARSENODE)
PrimaryNd.$(O): PrimaryNd.st $(PARSENODE)
VarNode.$(O): VarNode.st $(PRIMARYNODE)
SelfNode.$(O): SelfNode.st $(PRIMARYNODE)
ConstNode.$(O): ConstNode.st $(PRIMARYNODE)
VariableNode.$(O): VariableNode.st $(PRIMARYNODE)
SuperNode.$(O): SuperNode.st $(I)/SelfNode.H $(PRIMARYNODE)
MessageNd.$(O): MessageNd.st $(PARSENODE)
CascadeNd.$(O): CascadeNd.st $(MESSAGENODE)
BinaryNd.$(O): BinaryNd.st $(MESSAGENODE)
UnaryNd.$(O): UnaryNd.st $(MESSAGENODE)
PrimNd.$(O): PrimNd.st $(PARSENODE) $(I)/StatNode.H
RetNode.$(O): RetNode.st $(PARSENODE) $(I)/StatNode.H
CompErr.$(O): CompErr.st $(OBJECT)
ImmArray.$(O): ImmArray.st $(I)/Array.H $(OBJECT)
CMethod.$(O): CMethod.st $(I)/Method.H $(OBJECT)
MCompiler.$(O): MCompiler.st $(PARSER)
Explainer.$(O): Explainer.st $(PARSER)
SrcFLoader.$(O): SrcFLoader.st $(OBJECT)