#
# Makefile
#
#  1998 Straylight/Edgeware
#

#----- Licensing note -------------------------------------------------------
#
# This makefile is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This makefile is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this makefile.  If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

#----- Compilation flags ----------------------------------------------------

# --- Uncomment to use the C4 tools ---

# OLD = o-

# --- C compilation ---

CC = $(OLD)cc -c -o $@
CFLAGS = -depend !Depend -throwback -ffah -Ilibs: -IC:
COMPILE = $(CC) $(CFLAGS)

# --- Assembling ---

AS = $(OLD)objasm -quit -to $@
ASFLAGS = -stamp -depend !Depend -throwback
ASSEMBLE = $(AS) $(ASFLAGS) -from

BAS = basasm

# --- Linking ---

LD = $(OLD)link -o $@
LD_APP = $(LD) -aif
LD_UTIL = $(LD) -bin -base 0
LD_MOD = $(LD) -bin -base 0
LD_BIN = $(LD) -bin -base 0
LD_DLL = $(LD) -rmf
LD_AOF = $(LD) -aof

# --- Making libraries ---

AR = $(OLD)libfile -o

CDLL = cdll

# --- Setting file types ---

SET_APP = SetType $@ FF8
SET_MOD = SetType $@ FFA
SET_UTIL = SetType $@ FFC
SET_DLL = SetType $@ FFD

# --- Other maintenance things ---

RM = ssrclean
INSTALL = inst
SETDATE = setdate
SQUEEZE = squeeze $@
DATE = %zdy %mo %ce%yr
MODDATE = %dy %m3 %ce%yr
CRIGHT =  %ce%yr Straylight
FIXLINK = fixlink $@

#----- Default rules --------------------------------------------------------

.SUFFIXES: .o .c .s .bs
.c.o:
	$(COMPILE) $<
.s.o:
	$(ASSEMBLE) $<
.bs.o:
	$(BAS) $< $@

#----- Object files ---------------------------------------------------------

# --- Components of the DLL stub library ---

DLLSTUBS = \
	stub.core stub.resources \
	stub.list stub.tearoff \
	stub.csapph stub.thread \
	o.bnrStub o.stub o.llistStub

# --- Dynamic libraries to build ---

DLLS = dll.core dll.resources dll.list dll.tearoff dll.csapph dll.thread

# --- Core library components ---

COREOBJ = \
	o.divide o.coRoutine o.except o.fastMove o.fixedPt o.libOpts o.mem \
		 o.rand o.seh o.sqrt o.string \
	o.alloc o.flex o.heap o.subAlloc \
	o.cmdLine o.msgs o.res o.resources o.resspr o.template \
	o.roVersion o.hour o.ptr o.screen o.wimp o.winUtils \
	o.defHandler o.drag o.event o.help o.idle o.menu o.transWin o.win \
	o.akbd o.keyString o.repeater \
	o.dynPtr o.draw o.fontMenu o.ibicon o.pane o.sprite o.tspr \
	o.dbox dbx.o.dbx dbx.o.arrow dbx.o.colourPot dbx.o.fileIcon \
		dbx.o.numWrite dbx.o.slider dbx.o.stringSet \
	o.colourBox o.mbox o.progInfo xfer.o.saveAs o.writable \
	o.buttons o.errorBox o.nopoll o.note o.report o.saveWarn o.warning \
	o.chunk choices.o.choices choices.o.options choices.o.prefs \
	xfer.o.load xfer.o.save xfer.o.xload xfer.o.xsave

COREDLLOBJ = $(COREOBJ) o.dKernel o.dBanner
CORESTATOBJ = $(COREOBJ) o.kernel o.banner

# --- Resources library components ---

RSCOBJ = o.sapphRes o.rsc
RESOURCES = rsc.messages rsc.sprites rsc.templates

# --- List library components ---

LISTOBJ = o.gallery o.llistman o.listbox o.viewer

# --- Tearoff library components ---

TMSOBJ = \
	tms.o.tmsCreate tms.o.tmsGlue tms.o.tmsMain \
	libs:tearSupt.o.tearSupt

# --- Sapphire C support library components ---

CSAPPHOBJ = \
	csapph.o.cmath csapph.o.crout csapph.o.crts csapph.o.csapph \
	csapph.o.csetjmp csapph.o.ctype

# --- Thread library components ---

THREADOBJ = o.thread

# --- Extension library offsets ---

TMSOFF = 24
LISTOFF = 28
THREADOFF = 32
CSAPPHOFF = 36

# --- Static library components ---

STATOBJ = $(CORESTATOBJ) $(LISTOBJ) $(TMSOBJ) $(CSAPPHOBJ) $(THREADOBJ)

#----- Interface targets ----------------------------------------------------

# --- Main target ---

all: $(DLLS) lib.sapphire lib.sapphdll lib.csapph
	submake Modules.Makefile

# --- Installing the libraries ---

install: $(DLLS)
	cdir <SSR$DLLDir>.Straylight
	cdir <SSR$DLLDir>.Straylight.Sapphire
	$(INSTALL) $(DLLS) <SSR$DLLDir>.Straylight.Sapphire
	submake Modules.Makefile -- install

# --- Cleansing the build tree ---

clean:
	-$(RM) ..o.* lib.* dll.* dc.* dh.* dl.* ds.* $(DLLS)
	submake Modules.Makefile -- clean

#----- Building the static libraries ----------------------------------------

lib.sapphdll: $(DLLSTUBS)
	$(AR) -c lib.sapphdll $(DLLSTUBS)

lib.csapph: csapph.o.cstart
	$(INSTALL) csapph.o.cstart lib.csapph

lib.sapphire: $(STATOBJ)
	test -file lib.sapphire -exists -else "$(AR) -c lib.sapphire"
	$(AR) -i lib.sapphire $?

#----- Building dynamic libraries -------------------------------------------

# --- There are lots of little generated files lying around ---
#
# For creating DLLs, I need a collection of small AOF files.  For a DLL
# `foo' I may need:
#
# dh.foo	cdll-generated library header
# ds.foo	cdll-generated client stub
# dc.foo	buildstub-generated client stub
# dl.foo	buildstub-generated library stub

# --- Core library ---

stub.core: ds.core
	$(LD_AOF) ds.core

ds.core dh.core: def.core lib.sapphire
	$(CDLL) def.core ds.core dh.core

dll.core: dh.core $(COREDLLOBJ)
	$(LD_DLL) dh.core $(COREDLLOBJ)
	$(SET_DLL) dll.core

# --- Resources library ---

stub.resources: ds.resources
	$(LD_AOF) ds.resources

ds.resources dh.resources: def.resources $(RSCOBJ)
	$(CDLL) def.resources ds.resources dh.resources

o.rsc: $(RESOURCES)
	resgen rsc o.rsc

dll.resources: dh.resources $(RSCOBJ)
	$(LD_DLL) dh.resources $(RSCOBJ)
	$(SET_DLL) dll.resources

# --- List library ---

stub.list: ds.list dc.list
	$(LD_AOF) ds.list dc.list

dc.list dl.list:
	buildstub dl.list dc.list __list_stub $(LISTOFF)

ds.list dh.list: def.list lib.sapphire dl.list
	$(CDLL) def.list ds.list dh.list

dll.list: dh.list dl.list ds.core $(LISTOBJ)
	$(LD_DLL) dh.list dl.list ds.core $(LISTOBJ)
	$(SET_DLL) dll.list

# --- Thread library ---

stub.thread: ds.thread dc.thread
	$(LD_AOF) ds.thread dc.thread

dc.thread dl.thread:
	buildstub dl.thread dc.thread __thread_stub $(THREADOFF)

ds.thread dh.thread: def.thread lib.sapphire dl.thread
	$(CDLL) def.thread ds.thread dh.thread

dll.thread: dh.thread dl.thread ds.core $(THREADOBJ)
	$(LD_DLL) dh.thread dl.thread ds.core $(THREADOBJ)
	$(SET_DLL) dll.thread

# --- Sapphire C support library ---

stub.csapph: ds.csapph dc.csapph
	$(LD_AOF) ds.csapph dc.csapph

dc.csapph dl.csapph:
	buildstub dl.csapph dc.csapph __csapph_stub $(CSAPPHOFF)

ds.csapph dh.csapph: def.csapph lib.sapphire dl.csapph
	$(CDLL) def.csapph ds.csapph dh.csapph

dll.csapph: dh.csapph dl.csapph ds.core $(CSAPPHOBJ)
	$(LD_DLL) dh.csapph dl.csapph ds.core $(CSAPPHOBJ)
	$(SET_DLL) dll.csapph

# --- Tearoff library ---

stub.tearoff: ds.tearoff dc.tearoff
	$(LD_AOF) ds.tearoff dc.tearoff

dc.tearoff dl.tearoff:
	buildstub dl.tearoff dc.tearoff __tearoff_stub $(TMSOFF)

ds.tearoff dh.tearoff: def.tearoff lib.sapphire dl.tearoff
	$(CDLL) def.tearoff ds.tearoff dh.tearoff

dll.tearoff: dh.tearoff dl.tearoff ds.core $(TMSOBJ)
	$(LD_DLL) dh.tearoff dl.tearoff ds.core $(TMSOBJ)
	$(SET_DLL) dll.tearoff

#----- Dynamic dependencies -------------------------------------------------

# Dynamic dependencies:
csapph.o.crts: csapph.s.crts
csapph.o.crts: libs:header
csapph.o.crts: libs:stream
csapph.o.crts: sapphire:divide
csapph.o.csapph: csapph.s.csapph
csapph.o.csapph: libs:header
csapph.o.csapph: libs:swis
csapph.o.csapph: libs:stream
csapph.o.csapph: libs:s.xswi
csapph.o.csapph: libs:s.swihack
csapph.o.csetjmp: csapph.s.csetjmp
csapph.o.csetjmp: libs:header
csapph.o.csetjmp: libs:swis
csapph.o.csetjmp: libs:stream
csapph.o.ctype: csapph.s.ctype
csapph.o.ctype: libs:header
csapph.o.ctype: libs:swis
csapph.o.ctype: libs:stream
o.thread: s.thread
o.thread: libs:header
o.thread: libs:swis
o.thread: sapphire:alloc
o.thread: sapphire:suballoc
o.thread: sapphire:idle
o.thread: sapphire:msgs
o.thread: sapphire:sapphire
o.bnrStub: s.bnrStub
o.bnrStub: libs:header
o.bnrStub: libs:swis
o.bnrStub: libs:stream
o.stub: s.stub
o.stub: libs:header
o.stub: libs:swis
o.stub: libs:stream
o.llistStub: s.llistStub
csapph.o.cstart: csapph.s.cstart
csapph.o.cstart: libs:header
csapph.o.cstart: libs:stream
csapph.o.cstart: sapphire:sapphire
o.subAlloc: s.subAlloc
o.subAlloc: libs:swis
o.subAlloc: libs:header
o.subAlloc: sapphire:alloc
o.subAlloc: sapphire:mem
o.subAlloc: sapphire:sapphire
o.cmdLine: s.cmdLine
o.cmdLine: libs:header
o.cmdLine: libs:swis
o.msgs: s.msgs
o.msgs: libs:header
o.msgs: libs:swis
o.msgs: sapphire:alloc
o.msgs: sapphire:sapphire
o.msgs: sapphire:string
o.msgs: sapphire:res
o.msgs: sapphire:resources
o.res: s.res
o.res: libs:header
o.res: libs:swis
o.res: sapphire:string
o.res: sapphire:sapphire
o.resources: s.resources
o.resources: libs:header
o.resources: libs:swis
o.resources: libs:stream
o.resources: sapphire:except
o.resources: sapphire:sapphire
o.resspr: s.resspr
o.resspr: libs:header
o.resspr: libs:swis
o.resspr: sapphire:alloc
o.resspr: sapphire:msgs
o.resspr: sapphire:res
o.resspr: sapphire:resources
o.resspr: sapphire:sapphire
o.resspr: sapphire:string
o.template: s.template
o.template: libs:header
o.template: libs:swis
o.template: sapphire:alloc
o.template: sapphire:fastMove
o.template: sapphire:except
o.template: sapphire:mem
o.template: sapphire:msgs
o.template: sapphire:res
o.template: sapphire:resources
o.template: sapphire:resspr
o.template: sapphire:sapphire
o.template: sapphire:string
o.roVersion: s.roVersion
o.roVersion: libs:swis
o.roVersion: libs:header
o.roVersion: sapphire:sapphire
o.hour: s.hour
o.hour: libs:header
o.hour: libs:swis
o.hour: sapphire:except
o.hour: sapphire:sapphire
o.ptr: s.ptr
o.ptr: libs:header
o.ptr: libs:swis
o.ptr: sapphire:event
o.ptr: sapphire:except
o.ptr: sapphire:idle
o.ptr: sapphire:resspr
o.ptr: sapphire:sapphire
o.ptr: sapphire:screen
o.ptr: sapphire:sprite
o.ptr: sapphire:string
o.ptr: sapphire:wimp
o.screen: s.screen
o.screen: libs:header
o.screen: libs:swis
o.screen: sapphire:sapphire
o.screen: sapphire:event
o.wimp: s.wimp
o.wimp: libs:header
o.wimp: libs:swis
o.wimp: sapphire:except
o.wimp: sapphire:libOpts
o.wimp: sapphire:roVersion
o.wimp: sapphire:sapphire
o.winUtils: s.winUtils
o.winUtils: libs:header
o.winUtils: libs:swis
o.winUtils: sapphire:screen
o.defHandler: s.defHandler
o.defHandler: libs:header
o.defHandler: libs:swis
o.defHandler: sapphire:resspr
o.drag: s.drag
o.drag: libs:header
o.drag: libs:swis
o.drag: libs:stream
o.drag: sapphire:akbd
o.drag: sapphire:idle
o.drag: sapphire:intKeys
o.drag: sapphire:sapphire
o.drag: sapphire:screen
o.drag: sapphire:win
o.event: s.event
o.event: libs:header
o.event: libs:swis
o.event: sapphire:sapphire
o.event: sapphire:suballoc
o.event: sapphire:hour
o.help: s.help
o.help: libs:header
o.help: libs:swis
o.help: sapphire:event
o.help: sapphire:idle
o.help: sapphire:msgs
o.help: sapphire:sapphire
o.help: sapphire:string
o.idle: s.idle
o.idle: libs:header
o.idle: libs:swis
o.idle: sapphire:sapphire
o.idle: sapphire:suballoc
o.idle: sapphire:event
o.menu: s.menu
o.menu: libs:header
o.menu: libs:swis
o.menu: sapphire:event
o.menu: sapphire:libOpts
o.menu: sapphire:sapphire
o.menu: sapphire:string
o.menu: sapphire:fastMove
o.menu: sapphire:msgs
o.menu: sapphire:help
o.transWin: s.transWin
o.transWin: libs:header
o.transWin: libs:swis
o.transWin: libs:stream
o.transWin: sapphire:event
o.transWin: sapphire:sapphire
o.win: s.win
o.win: libs:header
o.win: libs:swis
o.win: sapphire:sapphire
o.win: sapphire:suballoc
o.win: sapphire:event
o.akbd: s.akbd
o.akbd: libs:header
o.akbd: libs:swis
o.akbd: sapphire:keyMap
o.akbd: sapphire:intKeys
o.keyString: s.keyString
o.keyString: libs:header
o.keyString: libs:swis
o.keyString: sapphire:msgs
o.keyString: sapphire:keyMap
o.keyString: sapphire:string
o.repeater: s.repeater
o.repeater: libs:header
o.repeater: libs:swis
o.repeater: libs:stream
o.repeater: sapphire:divide
o.repeater: sapphire:idle
o.repeater: sapphire:sapphire
o.repeater: sapphire:win
o.dynPtr: s.dynPtr
o.dynPtr: libs:header
o.dynPtr: libs:swis
o.dynPtr: sapphire:ptr
o.dynPtr: sapphire:resspr
o.draw: s.draw
o.draw: libs:header
o.draw: libs:swis
o.draw: sapphire:divide
o.draw: sapphire:mem
o.draw: sapphire:msgs
o.draw: sapphire:roVersion
o.draw: sapphire:sapphire
o.draw: sapphire:screen
o.draw: sapphire:sprite
o.fontMenu: s.fontMenu
o.fontMenu: libs:header
o.fontMenu: libs:swis
o.fontMenu: libs:stream
o.fontMenu: sapphire:alloc
o.fontMenu: sapphire:event
o.fontMenu: sapphire:flex
o.fontMenu: sapphire:menu
o.fontMenu: sapphire:menuDefs
o.fontMenu: sapphire:msgs
o.fontMenu: sapphire:sapphire
o.fontMenu: sapphire:string
o.ibicon: s.ibicon
o.ibicon: libs:header
o.ibicon: libs:swis
o.ibicon: sapphire:msgs
o.ibicon: sapphire:suballoc
o.ibicon: sapphire:sapphire
o.ibicon: sapphire:string
o.ibicon: sapphire:resspr
o.ibicon: sapphire:wimp
o.ibicon: sapphire:win
o.pane: s.pane
o.pane: libs:header
o.pane: libs:swis
o.pane: sapphire:alloc
o.pane: sapphire:event
o.pane: sapphire:screen
o.pane: sapphire:sapphire
o.pane: sapphire:suballoc
o.pane: sapphire:tspr
o.sprite: s.sprite
o.sprite: libs:header
o.sprite: libs:swis
o.sprite: sapphire:resspr
o.sprite: sapphire:screen
o.tspr: s.tspr
o.tspr: libs:header
o.tspr: libs:swis
o.tspr: sapphire:screen
o.tspr: sapphire:wimp
o.dbox: s.dbox
o.dbox: libs:header
o.dbox: libs:swis
o.dbox: sapphire:akbd
o.dbox: sapphire:alloc
o.dbox: sapphire:event
o.dbox: sapphire:keyMap
o.dbox: sapphire:help
o.dbox: sapphire:hour
o.dbox: sapphire:msgs
o.dbox: sapphire:sapphire
o.dbox: sapphire:string
o.dbox: sapphire:subAlloc
o.dbox: sapphire:template
o.dbox: sapphire:transWin
o.dbox: sapphire:win
o.dbox: sapphire:winUtils
dbx.o.dbx: dbx.s.dbx
dbx.o.dbx: libs:header
dbx.o.dbx: libs:swis
dbx.o.dbx: sapphire:dbox
dbx.o.dbx: sapphire:msgs
dbx.o.dbx: sapphire:screen
dbx.o.arrow: dbx.s.arrow
dbx.o.arrow: libs:header
dbx.o.arrow: libs:swis
dbx.o.arrow: sapphire:dbox
dbx.o.arrow: sapphire:repeater
dbx.o.arrow: sapphire:dbx.dbx
dbx.o.arrow: sapphire:dbx._dbxMacs
dbx.o.colourPot: dbx.s.colourPot
dbx.o.colourPot: libs:header
dbx.o.colourPot: libs:swis
dbx.o.colourPot: libs:stream
dbx.o.colourPot: sapphire:colourBox
dbx.o.colourPot: sapphire:dbox
dbx.o.colourPot: sapphire:errorBox
dbx.o.colourPot: sapphire:screen
dbx.o.colourPot: sapphire:winUtils
dbx.o.colourPot: sapphire:dbx.dbx
dbx.o.colourPot: sapphire:dbx._dbxMacs
dbx.o.fileIcon: dbx.s.fileIcon
dbx.o.fileIcon: libs:header
dbx.o.fileIcon: libs:swis
dbx.o.fileIcon: sapphire:dbox
dbx.o.fileIcon: sapphire:sapphire
dbx.o.fileIcon: sapphire:screen
dbx.o.fileIcon: sapphire:string
dbx.o.fileIcon: sapphire:win
dbx.o.fileIcon: sapphire:dbx.dbx
dbx.o.fileIcon: sapphire:dbx._dbxMacs
dbx.o.numWrite: dbx.s.numWrite
dbx.o.numWrite: libs:header
dbx.o.numWrite: libs:swis
dbx.o.numWrite: sapphire:dbox
dbx.o.numWrite: sapphire:keyMap
dbx.o.numWrite: sapphire:string
dbx.o.numWrite: sapphire:dbx.dbx
dbx.o.numWrite: sapphire:dbx._dbxMacs
dbx.o.slider: dbx.s.slider
dbx.o.slider: libs:header
dbx.o.slider: libs:swis
dbx.o.slider: sapphire:dbox
dbx.o.slider: sapphire:divide
dbx.o.slider: sapphire:idle
dbx.o.slider: sapphire:win
dbx.o.slider: sapphire:msgs
dbx.o.slider: sapphire:screen
dbx.o.slider: sapphire:winUtils
dbx.o.slider: sapphire:dbx.dbx
dbx.o.slider: sapphire:dbx._dbxMacs
dbx.o.stringSet: dbx.s.stringSet
dbx.o.stringSet: libs:header
dbx.o.stringSet: libs:swis
dbx.o.stringSet: libs:stream
dbx.o.stringSet: sapphire:dbox
dbx.o.stringSet: sapphire:menu
dbx.o.stringSet: sapphire:menuDefs
dbx.o.stringSet: sapphire:msgs
dbx.o.stringSet: sapphire:string
dbx.o.stringSet: sapphire:dbx.dbx
dbx.o.stringSet: sapphire:dbx._dbxMacs
o.colourBox: s.colourBox
o.colourBox: libs:header
o.colourBox: libs:swis
o.colourBox: libs:stream
o.colourBox: sapphire:dbox
o.colourBox: sapphire:msgs
o.colourBox: sapphire:sapphire
o.colourBox: sapphire:keyMap
o.mbox: s.mbox
o.mbox: libs:header
o.mbox: libs:swis
o.mbox: sapphire:dbox
o.mbox: sapphire:help
o.mbox: sapphire:msgs
o.progInfo: s.progInfo
o.progInfo: libs:header
o.progInfo: libs:swis
o.progInfo: sapphire:dbox
o.progInfo: sapphire:mbox
o.progInfo: sapphire:sapphire
xfer.o.saveAs: xfer.s.saveAs
xfer.o.saveAs: libs:header
xfer.o.saveAs: libs:swis
xfer.o.saveAs: sapphire:dbox
xfer.o.saveAs: sapphire:help
xfer.o.saveAs: sapphire:msgs
xfer.o.saveAs: sapphire:note
xfer.o.saveAs: sapphire:sapphire
xfer.o.saveAs: sapphire:dbx.dbx
xfer.o.saveAs: sapphire:dbx.fileIcon
xfer.o.saveAs: sapphire:dbx.dbx
xfer.o.saveAs: sapphire:xfer.save
o.writable: s.writable
o.writable: libs:header
o.writable: libs:swis
o.writable: sapphire:dbox
o.writable: sapphire:fastMove
o.writable: sapphire:msgs
o.writable: sapphire:sapphire
o.writable: sapphire:string
o.buttons: s.buttons
o.buttons: libs:header
o.buttons: libs:swis
o.buttons: libs:stream
o.buttons: sapphire:dbox
o.buttons: sapphire:msgs
o.errorBox: s.errorBox
o.errorBox: libs:header
o.errorBox: libs:swis
o.errorBox: libs:stream
o.errorBox: sapphire:buttons
o.errorBox: sapphire:dbox
o.errorBox: sapphire:msgs
o.errorBox: sapphire:nopoll
o.errorBox: sapphire:sapphire
o.errorBox: sapphire:string
o.errorBox: sapphire:template
o.errorBox: sapphire:wimp
o.nopoll: s.nopoll
o.nopoll: libs:header
o.nopoll: libs:swis
o.nopoll: sapphire:defHandler
o.nopoll: sapphire:event
o.nopoll: sapphire:hour
o.nopoll: sapphire:sapphire
o.nopoll: sapphire:screen
o.note: s.note
o.note: libs:header
o.note: libs:swis
o.note: sapphire:dbox
o.note: sapphire:errorBox
o.note: sapphire:msgs
o.note: sapphire:nopoll
o.note: sapphire:sapphire
o.note: sapphire:string
o.report: s.report
o.report: libs:header
o.report: libs:swis
o.report: sapphire:buttons
o.report: sapphire:errorBox
o.report: sapphire:except
o.report: sapphire:msgs
o.report: sapphire:sapphire
o.report: sapphire:seh
o.report: sapphire:string
o.saveWarn: s.saveWarn
o.saveWarn: libs:header
o.saveWarn: libs:swis
o.saveWarn: libs:stream
o.saveWarn: sapphire:buttons
o.saveWarn: sapphire:errorBox
o.saveWarn: sapphire:msgs
o.saveWarn: sapphire:sapphire
o.saveWarn: sapphire:string
o.saveWarn: sapphire:warning
o.saveWarn: sapphire:xfer.saveAs
o.warning: s.warning
o.warning: libs:header
o.warning: libs:swis
o.warning: libs:stream
o.warning: sapphire:buttons
o.warning: sapphire:dbox
o.warning: sapphire:errorBox
o.warning: sapphire:msgs
o.warning: sapphire:nopoll
o.warning: sapphire:sapphire
o.warning: sapphire:string
o.warning: sapphire:template
o.warning: sapphire:wimp
o.chunk: s.chunk
o.chunk: libs:header
o.chunk: libs:swis
o.chunk: libs:stream
o.chunk: sapphire:alloc
o.chunk: sapphire:fastMove
o.chunk: sapphire:flex
o.chunk: sapphire:string
o.chunk: sapphire:xfer.xsave
choices.o.choices: choices.s.choices
choices.o.choices: libs:header
choices.o.choices: libs:swis
choices.o.choices: libs:stream
choices.o.choices: sapphire:res
choices.o.choices: sapphire:sapphire
choices.o.choices: sapphire:string
xfer.o.save: xfer.s.save
xfer.o.save: libs:header
xfer.o.save: libs:swis
xfer.o.save: sapphire:fastMove
xfer.o.save: sapphire:msgs
xfer.o.save: sapphire:sapphire
xfer.o.save: sapphire:string
xfer.o.save: sapphire:wimp
xfer.o.save: sapphire:win
xfer.o.xload: xfer.s.xload
xfer.o.xload: libs:header
xfer.o.xload: libs:swis
xfer.o.xload: sapphire:alloc
xfer.o.xload: sapphire:coRoutine
xfer.o.xload: sapphire:fastMove
xfer.o.xload: sapphire:sapphire
xfer.o.xsave: xfer.s.xsave
xfer.o.xsave: libs:header
xfer.o.xsave: libs:swis
xfer.o.xsave: sapphire:alloc
xfer.o.xsave: sapphire:coRoutine
xfer.o.xsave: sapphire:fastMove
xfer.o.xsave: sapphire:sapphire
o.kernel: s.kernel
o.kernel: libs:header
o.kernel: libs:swis
o.kernel: libs:stream
o.gallery: s.gallery
o.gallery: libs:header
o.gallery: libs:swis
o.gallery: libs:stream
o.gallery: sapphire:idle
o.gallery: sapphire:screen
o.gallery: sapphire:viewer
o.llistman: s.llistman
o.llistman: libs:header
o.llistman: libs:swis
o.llistman: sapphire:alloc
o.llistman: sapphire:fastMove
o.llistman: sapphire:sapphire
o.listbox: s.listbox
o.listbox: libs:header
o.listbox: libs:swis
o.listbox: sapphire:alloc
o.listbox: sapphire:fastMove
o.listbox: sapphire:idle
o.listbox: sapphire:divide
o.listbox: sapphire:pane
o.listbox: sapphire:resspr
o.listbox: sapphire:sapphire
o.listbox: sapphire:screen
o.listbox: sapphire:tspr
o.listbox: sapphire:win
o.viewer: s.viewer
o.viewer: libs:header
o.viewer: libs:swis
o.viewer: libs:stream
o.viewer: sapphire:akbd
o.viewer: sapphire:alloc
o.viewer: sapphire:divide
o.viewer: sapphire:drag
o.viewer: sapphire:fastMove
o.viewer: sapphire:msgs
o.viewer: sapphire:sapphire
o.viewer: sapphire:screen
o.viewer: sapphire:wimp
o.viewer: sapphire:win
o.viewer: sapphire:winUtils
tms.o.tmsCreate: tms.s.tmsCreate
tms.o.tmsCreate: libs:header
tms.o.tmsCreate: libs:swis
tms.o.tmsCreate: libs:stream
tms.o.tmsCreate: sapphire:alloc
tms.o.tmsCreate: sapphire:heap
tms.o.tmsCreate: sapphire:keyString
tms.o.tmsCreate: sapphire:msgs
tms.o.tmsCreate: sapphire:resspr
tms.o.tmsCreate: sapphire:sapphire
tms.o.tmsCreate: sapphire:string
tms.o.tmsCreate: sapphire:wimp
tms.o.tmsCreate: sapphire:win
tms.o.tmsCreate: sapphire:winUtils
tms.o.tmsCreate: sapphire:_tms.tmsGlobal
tms.o.tmsCreate: sapphire:_tms.tmsMain
tms.o.tmsGlue: tms.s.tmsGlue
tms.o.tmsGlue: libs:header
tms.o.tmsGlue: libs:swis
tms.o.tmsGlue: libs:stream
tms.o.tmsGlue: libs:tearSupt.sh.tearSupt
tms.o.tmsGlue: sapphire:event
tms.o.tmsGlue: sapphire:errorBox
tms.o.tmsGlue: sapphire:heap
tms.o.tmsGlue: sapphire:mem
tms.o.tmsGlue: sapphire:sapphire
tms.o.tmsGlue: sapphire:screen
tms.o.tmsGlue: sapphire:wimp
tms.o.tmsGlue: sapphire:win
tms.o.tmsGlue: sapphire:_tms.tmsGlobal
tms.o.tmsGlue: sapphire:_tms.tmsMain
tms.o.tmsMain: tms.s.tmsMain
tms.o.tmsMain: libs:header
tms.o.tmsMain: libs:swis
tms.o.tmsMain: libs:tearSupt.sh.tearsupt
tms.o.tmsMain: sapphire:errorBox
tms.o.tmsMain: sapphire:help
tms.o.tmsMain: sapphire:idle
tms.o.tmsMain: sapphire:keyString
tms.o.tmsMain: sapphire:msgs
tms.o.tmsMain: sapphire:resspr
tms.o.tmsMain: sapphire:sapphire
tms.o.tmsMain: sapphire:screen
tms.o.tmsMain: sapphire:string
tms.o.tmsMain: sapphire:tspr
tms.o.tmsMain: sapphire:wimp
tms.o.tmsMain: sapphire:win
tms.o.tmsMain: sapphire:_tms.tmsCreate
tms.o.tmsMain: sapphire:_tms.tmsGlobal
tms.o.tmsMain: sapphire:_tms.tmsGlue
csapph.o.cmath: csapph.s.cmath
csapph.o.cmath: libs:header
csapph.o.cmath: libs:stream
csapph.o.crout: csapph.s.crout
csapph.o.crout: libs:header
csapph.o.crout: libs:stream
csapph.o.crout: sapphire:alloc
csapph.o.crout: sapphire:flex
csapph.o.crout: sapphire:msgs
csapph.o.crout: sapphire:sapphire
csapph.o.crout: sapphire:string
o.divide: s.divide
o.divide: libs:header
o.divide: libs:swis
o.coRoutine: s.coRoutine
o.coRoutine: libs:header
o.coRoutine: libs:swis
o.coRoutine: sapphire:alloc
o.coRoutine: sapphire:sapphire
o.coRoutine: sapphire:seh
o.coRoutine: sapphire:suballoc
o.except: s.except
o.except: libs:header
o.except: libs:swis
o.except: sapphire:sapphire
o.except: sapphire:suballoc
o.fastMove: s.fastMove
o.fastMove: libs:s.fastMove
o.fastMove: libs:header
o.fastMove: libs:swis
o.libOpts: s.libOpts
o.libOpts: libs:header
o.libOpts: libs:swis
o.libOpts: libs:stream
o.libOpts: sapphire:sapphire
o.libOpts: sapphire:suballoc
o.mem: s.mem
o.mem: libs:swis
o.mem: libs:header
o.rand: s.rand
o.rand: libs:header
o.rand: libs:swis
o.rand: sapphire:divide
o.rand: sapphire:sapphire
o.seh: s.seh
o.seh: libs:header
o.seh: libs:swis
o.seh: libs:stream
o.seh: sapphire:except
o.seh: sapphire:msgs
o.seh: sapphire:sapphire
o.sqrt: s.sqrt
o.sqrt: libs:header
o.sqrt: libs:swis
o.sqrt: libs:stream
o.string: s.string
o.string: libs:swis
o.string: libs:header
o.string: sapphire:sapphire
o.alloc: s.alloc
o.alloc: libs:header
o.alloc: libs:swis
o.alloc: sapphire:msgs
o.alloc: sapphire:sapphire
o.alloc: sapphire:subAlloc
o.sapphRes: s.sapphRes
o.sapphRes: libs:header
o.sapphRes: libs:swis
o.sapphRes: libs:stream
o.dKernel: s.dKernel
o.dKernel: s.kernel
o.dKernel: libs:header
o.dKernel: libs:swis
o.dKernel: libs:stream
o.dBanner: s.dBanner
o.dBanner: s.banner
o.dBanner: libs:header
o.dBanner: libs:swis
o.dBanner: libs:stream
o.dBanner: sapphire:alloc
o.dBanner: sapphire:dbox
o.dBanner: sapphire:divide
o.dBanner: sapphire:event
o.dBanner: sapphire:flex
o.dBanner: sapphire:heap
o.dBanner: sapphire:hour
o.dBanner: sapphire:nopoll
o.dBanner: sapphire:res
o.dBanner: sapphire:sapphire
o.dBanner: sapphire:screen
o.dBanner: sapphire:wimp
o.dBanner: sapphire:dbx.dbx
o.dBanner: sapphire:dbx.slider
o.dBanner: sapphire:dbx.dbx
choices.o.options: choices.s.options
choices.o.options: libs:header
choices.o.options: libs:swis
choices.o.options: libs:stream
choices.o.options: sapphire:chunk
choices.o.options: sapphire:divide
choices.o.options: sapphire:flex
choices.o.options: sapphire:string
choices.o.options: sapphire:xfer.xsave
choices.o.prefs: choices.s.prefs
choices.o.prefs: libs:header
choices.o.prefs: libs:swis
choices.o.prefs: libs:stream
choices.o.prefs: sapphire:alloc
choices.o.prefs: sapphire:chunk
choices.o.prefs: sapphire:flex
choices.o.prefs: sapphire:heap
choices.o.prefs: sapphire:res
choices.o.prefs: sapphire:sapphire
choices.o.prefs: sapphire:xfer.load
choices.o.prefs: sapphire:choices.choices
xfer.o.load: xfer.s.load
xfer.o.load: libs:swis
xfer.o.load: libs:header
xfer.o.load: sapphire:alloc
xfer.o.load: sapphire:event
xfer.o.load: sapphire:fastMove
xfer.o.load: sapphire:flex
xfer.o.load: sapphire:msgs
xfer.o.load: sapphire:sapphire
xfer.o.load: sapphire:string
xfer.o.load: sapphire:wimp
xfer.o.load: sapphire:win
o.banner: s.banner
o.banner: libs:header
o.banner: libs:swis
o.banner: libs:stream
o.banner: sapphire:alloc
o.banner: sapphire:dbox
o.banner: sapphire:divide
o.banner: sapphire:event
o.banner: sapphire:flex
o.banner: sapphire:heap
o.banner: sapphire:hour
o.banner: sapphire:nopoll
o.banner: sapphire:res
o.banner: sapphire:sapphire
o.banner: sapphire:screen
o.banner: sapphire:wimp
o.banner: sapphire:dbx.dbx
o.banner: sapphire:dbx.slider
o.banner: sapphire:dbx.dbx
o.flex: s.flex
o.flex: libs:s.flex
o.flex: libs:header
o.flex: libs:swis
o.flex: sapphire:fastMove
o.flex: sapphire:event
o.flex: sapphire:except
o.flex: sapphire:libOpts
o.flex: sapphire:roVersion
o.flex: sapphire:sapphire
o.flex: libs:sh.flexws
o.heap: s.heap
o.heap: libs:s.heap
o.heap: libs:header
o.heap: libs:swis
o.heap: sapphire:alloc
o.heap: sapphire:flex
o.heap: sapphire:msgs
o.heap: sapphire:fastMove
o.heap: sapphire:sapphire
o.heap: libs:sh.heapws
