# %W% %E%
#
# -------------- no need to change anything below ----------
TOP=..
SUBDIRS=
LIBNAME=libbasic2
STCOPT=$(LIBBASIC2_STCOPT)
STCLOCALOPT=-Padditional-basic-classes $(COMMONSYMBOLS)
all:: abbrev.stc objs classList.stc $(OBJTARGET)
#
# these are uncritical - save some bytes by compiling with optspace
#
UNCRITICAL= Change.$(O) ChangeSet.$(O) ClassChg.$(O) ClsDefChg.$(O) \
ClsComChg.$(O) MethodChg.$(O) \
PrintStr.$(O) PSPrStr.$(O) HPIIPrStr.$(O) FX1PrStr.$(O)
compact::
$(RM) $(UNCRITICAL); $(MAKE) LIBBASIC2_STCOPT=+optspace2 $(UNCRITICAL)
objs:: \
Change.$(O) \
ClassChg.$(O) \
ClsComChg.$(O) \
ClsDefChg.$(O) \
MethodChg.$(O) \
MthdCatChg.$(O) \
ExtFunc.$(O) \
MappedColl.$(O) \
TwoByteStr.$(O) \
Polygon.$(O) \
VarArray.$(O) \
StrColl.$(O) \
FileText.$(O) \
VarString.$(O) \
ChangeSet.$(O) \
CacheDict.$(O) \
ValLink.$(O) \
MsgTally.$(O) \
MsgTracer.$(O) \
MsgSend.$(O) \
Project.$(O) \
Socket.$(O) \
SoundStr.$(O) \
PrintStr.$(O) \
PSPRSTR \
HPIIPRSTR \
FX1PRSTR \
Random.$(O) \
WMethod.$(O)
classList.stc: Make.proto
$(MAKE) genClassList
#
# these nest too deep on some systems (see discussion about LIMITSUPERINCLUDE
# in configurations/COMMON/defines
#
PSPRSTR:
@$(MAKE) PSPrStr.$(O) STCFLAGS="$(STCFLAGS) $(LIMITSUPERINCLUDE)"
HPIIPRSTR:
@$(MAKE) HPIIPrStr.$(O) STCFLAGS="$(STCFLAGS) $(LIMITSUPERINCLUDE)"
FX1PRSTR:
@$(MAKE) FX1PrStr.$(O) STCFLAGS="$(STCFLAGS) $(LIMITSUPERINCLUDE)"
cleanjunk::
-rm -f *.c *.H
clean::
-rm -f *.c *.H classList.stc abbrev.stc
clobber::
-rm -f *.c *.H classList.stc abbrev.stc
tar:
(cd $(TOP); tar cvf DISTRIB/libbasic2.tar \
libbasic2/.dir.info \
libbasic2/*.st \
libbasic2/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)
BOOLEAN=$(I)/Boolean.H $(OBJECT)
BEHAVIOR=$(I)/Behavior.H $(OBJECT)
CLASS=$(I)/Class.H $(I)/ClassDescr.H $(BEHAVIOR)
MsgTally.$(O): MsgTally.st $(OBJECT)
MsgTracer.$(O): MsgTracer.st $(OBJECT)
MsgSend.$(O): MsgSend.st $(I)/Message.H $(OBJECT)
BCCReader.$(O): BCCReader.st $(I)/CCReader.H $(OBJECT)
Project.$(O): Project.st $(OBJECT)
WMethod.$(O): WMethod.st $(I)/Method.H $(I)/CompCode.H $(I)/ExecFunc.H $(OBJECT)
COLL=$(I)/Coll.H $(OBJECT)
SET=$(I)/Set.H $(COLL)
DICT=$(I)/Dict.H $(COLL)
IDDICT=$(I)/IdDict.H $(DICT)
WEAKIDDICT=$(I)/WeakIdDict.H $(IDDICT)
SEQCOLL=$(I)/SeqColl.H $(COLL)
ARRCOLL=$(I)/ArrColl.H $(SEQCOLL)
ARRAY=$(I)/Array.H $(ARRCOLL)
VARARRAY=$(I)/VarArray.H $(ARRCOLL)
BYTEARRAY=$(I)/ByteArray.H $(ARRCOLL)
STRING=$(I)/String.H $(I)/AbstrStr.H $(BYTEARRAY)
MappedColl.$(O):MappedColl.st $(COLL)
CacheDict.$(O): CacheDict.st $(DICT)
ChangeSet.$(O): ChangeSet.st $(I)/OrdColl.H $(SEQCOLL)
ValLink.$(O): ValLink.st $(I)/Link.H $(OBJECT)
VarArray.$(O): VarArray.st $(ARRCOLL)
VarString.$(O): VarString.st $(ARRCOLL)
Text.$(O): Text.st $(VARARRAY)
FileText.$(O): FileText.st $(I)/Text.H $(VARARRAY)
Polygon.$(O): Polygon.st $(ARRAY)
TwoByteStr.$(O):TwoByteStr.st $(I)/AbstrStr.H $(BYTEARRAY)
Change.$(O): Change.st $(OBJECT)
ClassChg.$(O): ClassChg.st $(OBJECT)
ClsDefChg.$(O): ClsDefChg.st $(OBJECT)
ClsComChg.$(O): ClsComChg.st $(OBJECT)
MethodChg.$(O): MethodChg.st $(OBJECT)
STREAM=$(I)/Stream.H $(OBJECT)
POSSTREAM=$(I)/PosStream.H $(STREAM)
WRITESTREAM=$(I)/WriteStr.H $(POSSTREAM)
RWSTREAM=$(I)/RWStream.H $(WRITESTREAM)
EXTSTREAM=$(I)/ExtStream.H $(RWSTREAM)
NPEXTSTREAM=$(I)/NPExtStr.H $(EXTSTREAM)
PIPESTREAM=$(I)/PipeStr.H $(NPEXTSTREAM)
Random.$(O): Random.st $(STREAM)
TTYStream.$(O): TTYStream.st $(NPEXTSTREAM)
Socket.$(O): Socket.st $(NPEXTSTREAM)
PrintStr.$(O): PrintStr.st $(PIPESTREAM)
PSPrStr.$(O): PSPrStr.st $(I)/PrintStr.H $(PIPESTREAM)
HPIIPrStr.$(O): HPIIPrStr.st $(I)/PrintStr.H $(PIPESTREAM)
FX1PrStr.$(O): FX1PrStr.st $(I)/PrintStr.H $(PIPESTREAM)
SoundStr.$(O): SoundStr.st $(I)/FileStr.H $(EXTSTREAM)
ExtFunc.$(O): ExtFunc.st $(I)/ExecFunc.H $(OBJECT)