Make.proto
author Claus Gittinger <cg@exept.de>
Mon, 28 Oct 1996 23:08:27 +0100
changeset 402 fb8bf147ff37
parent 352 d53d128a7dae
child 571 4ff851f605b8
permissions -rw-r--r--
aix shared lib changes

# $Header: /cvs/stx/stx/libcomp/Make.proto,v 1.50 1996-10-28 22:08:27 cg Exp $
#
# -------------- no need to change anything below ----------

TOP=..
SUBDIRS=

LIBNAME=libcomp

STCOPT=$(LIBCOMP_STCOPT)
ZFLAG=-varPrefix=$(LIBNAME)
STCLOCALOPT='-package=compiler-classes-(stx:libcomp)' $(COMMONSYMBOLS) $(SEPINITCODE) $(ZFLAG)
LINKOBJRULE=$(SEPINITLINKOBJRULE)

LOCALDEFS=$(DLDEFS)

DELIVERBINARIES=lib*.o lib*.so lib*.a $(LIBCOMP_EXTRA_TARGETS)

all::       classLibRule $(LIBCOMP_EXTRA_TARGETS)

#
# although all files are compiled in here,
# not everything goes into the target library
# ObjFLoader is optional
#
LINKOBJS=`ls *.o                     \
	  | grep -v ObjFLoader.$(O)  \
	  | grep -v libcompInit.$(O) \
	  | grep -v i_ | $(TOP)/rules/tr_NL_2_Space`

#
# these are uncritical - save some bytes by compiling with optspace
#
UNCRITICALOBJS=\
	Explainer.$(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)                            \
	      ObjFHandle.$(O)                          \
	      $(EXTRA_LIBCOMP)

#
# only needed for NeXT2.1 - assembler dumps core with long name ?!?!
#
# VarNode.$(O):
#       $(STC) -CC="$(CC)" $(STCFLAGS) $(SOMESHORTNAMES) $(CFLAGS) -c $*.st

#
# ObjFLoader is a separate (shared) Object - compile without sepInitCode 
# and without -Zlibcomp (to speedup ld.so on SGI, by avoiding conflicts)
#
ObjFLoader.$(O):
	$(MAKE) $(SPEEDOPT_O_RULE) STCOPT="$(STCOPT)" SEPINITCODE=-sepInitCode OPT="$(OPT)" STFILE=ObjFLoader ZFLAG=

ObjFLoader.c:
	$(MAKE) $(C_RULE) STCOPT="$(STCOPT)" SEPINITCODE=-sepInitCode OPT="$(OPT)" STFILE=ObjFLoader

#
# on HP, big classes blow the C-preprocessor (stops with 'too much defining' error)
#
#HP::    HPbigFiles
#
#HPbigFiles:
#       $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=Parser CC=$(CC) OPT="$(OPT)"
#       $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=BCompiler CC=$(CC) OPT="$(OPT)"

AIX_SHARED_OBJFILELOADER:
	$(MAKE) ObjFLoader$(O_EXT) \
		ENTRY_INIT=ObjectFileLoader \
		AIX_LOCAL_LIBS=""

AIX::   $(AIX_OBJFILELOADER_RULE)


#
# install the extra objects
#
qinstall::  $(DESTLIBDIR)
	    if [ "$(EXTRA_LIBCOMP)"x != "x" ]; then             \
		$(INSTALL) $(EXTRA_LIBCOMP) $(DESTLIBDIR);      \
	    fi

#
# ObjectFileLoader is not included in
# the classLibrary (but as extra objects)
#
specialClassList:
	    $(MAKE) genClassList
	    grep -v ObjectFileLoader < classList.stc > ttt
	    mv ttt classList.stc

CLASSLISTRULE=specialClassList

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

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)

# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
AssignNd.o: AssignNd.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
BCompiler.o: BCompiler.st $(STCHDR) ../include/Parser.H ../include/Scanner.H ../include/Object.H
BinaryNd.o: BinaryNd.st $(STCHDR) ../include/MessageNd.H ../include/ParseNode.H ../include/Object.H
BlockNode.o: BlockNode.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
CascadeNd.o: CascadeNd.st $(STCHDR) ../include/MessageNd.H ../include/ParseNode.H ../include/Object.H
CodeStream.o: CodeStream.st $(STCHDR) ../include/WriteStr.H ../include/PosStream.H ../include/PeekStr.H ../include/Stream.H ../include/Object.H
ConstNode.o: ConstNode.st $(STCHDR) ../include/PrimaryNd.H ../include/ParseNode.H ../include/Object.H
Explainer.o: Explainer.st $(STCHDR) ../include/Parser.H ../include/Scanner.H ../include/Object.H
ImmArray.o: ImmArray.st $(STCHDR) ../include/Array.H ../include/ArrColl.H ../include/SeqColl.H ../include/Coll.H ../include/Object.H
LazyMethod.o: LazyMethod.st $(STCHDR) ../include/Method.H ../include/CompCode.H ../include/ExecFunc.H ../include/Object.H
MessageNd.o: MessageNd.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
MethodNode.o: MethodNode.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
NullScope.o: NullScope.st $(STCHDR) ../include/Object.H
ObjFLoader.o: ObjFLoader.st $(STCHDR) ../include/Object.H
ObjFHandle.o: ObjFHandle.st $(STCHDR) ../include/Object.H
ParseNode.o: ParseNode.st $(STCHDR) ../include/Object.H
Parser.o: Parser.st $(STCHDR) ../include/Scanner.H ../include/Object.H
PrimNd.o: PrimNd.st $(STCHDR) ../include/StatNode.H ../include/ParseNode.H ../include/Object.H
PrimaryNd.o: PrimaryNd.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
ProgNodeBldr.o: ProgNodeBldr.st $(STCHDR) ../include/Object.H
RetNode.o: RetNode.st $(STCHDR) ../include/StatNode.H ../include/ParseNode.H ../include/Object.H
Scanner.o: Scanner.st $(STCHDR) ../include/Object.H
SelfNode.o: SelfNode.st $(STCHDR) ../include/PrimaryNd.H ../include/ParseNode.H ../include/Object.H
SrcFLoader.o: SrcFLoader.st $(STCHDR) ../include/Object.H
StatNode.o: StatNode.st $(STCHDR) ../include/ParseNode.H ../include/Object.H
SuperNode.o: SuperNode.st $(STCHDR) ../include/SelfNode.H ../include/PrimaryNd.H ../include/ParseNode.H ../include/Object.H
Switch.o: Switch.st $(STCHDR) ../include/Object.H
UnaryNd.o: UnaryNd.st $(STCHDR) ../include/MessageNd.H ../include/ParseNode.H ../include/Object.H
UndefVar.o: UndefVar.st $(STCHDR) ../include/Object.H
VarNode.o: VarNode.st $(STCHDR) ../include/PrimaryNd.H ../include/ParseNode.H ../include/Object.H
Variable.o: Variable.st $(STCHDR) ../include/Object.H
# ENDMAKEDEPEND --- do not remove this line; make depend needs it