
# lmkfile for AV3  910625
# $Header: AVDev:Server/main/av/rcs/lmkfile,v 3.60 92/05/29 09:26:33 JOHN Exp $

# Configuration defaults - always leave these active.
TINY = DEFINE __main=__tinymain 
ALLPRE = PRE:AllSAS-b0.pre
CO = lib:c.o

LFLAGS1 = ND SC VERBOSE
LFLAGS1 = ND SC 
LFLAGS	= $(LFLAGS1)

AUTOSTACK = stack.o

#DEBUGLIB = lib:debug.lib

# flags for conditionally compiled code ...

###########################################################################
# Configuration blocks - activate only one
###########################################################################
#	AV -- in-house development w/debugs
CFLAGS = -b0 -dIN_HOUSE 
LFLAGS = $(LFLAGS1) SD
LIBS = idebug.lib lib:db.lib lib:lcm.lib lib:lcnb.lib lib:debug.lib lib:amiga.lib
TARGET = av
TINY = 
MAP = MAP AV.map,O,H,F,X PLAIN HEIGHT 0 SWIDTH 25 WIDTH 80
###########################################################################
#	AV -- shipping version.
#CFLAGS = -b0 -O
#LFLAGS = $(LFLAGS1) SD
#LIBS = lib:db.lib lib:lcm.lib lib:lcnb.lib lib:camd-lattice.lib lib:amiga.lib
#TARGET = av
###########################################################################
###########################################################################
#	AVp -- the residentable player
#AFLAGS = -dSMALLDATA
#ALLPRE = PRE:AllSAS-b1.pre
#AUTOSTACK =
#CFLAGS = -b1 -dAVPLAYER 
##CFLAGS = -b1 -dAVPLAYER -O
#LIBS = lib:lcm.lib lib:lc.lib $(DEBUGLIB) lib:camd-lattice.lib lib:amiga.lib
#MAP = MAP AVp.map,H,O,X PLAIN HEIGHT 0 SWIDTH 25 WIDTH 80
#TARGET = avp
###########################################################################
#	AVDB.LIBRARY -- dBase runtime library for AVp
#TARGET = avdb.library
#ALLPRE = PRE:AllSAS-b1.pre
#CFLAGS = -b1 -ml -dAVPLAYER -O
#AFLAGS = -dSMALLDATA
#LIBS = lib:db-ml.lib lib:lcm.lib lib:lc.lib $(DEBUGLIB) lib:amiga.lib
###########################################################################
###########################################################################
#	AVt -- Testing version of AVPlayer
#AFLAGS = -dSMALLDATA
#ALLPRE = PRE:AllSAS-b1.pre
#AUTOSTACK =
##CFLAGS = -b1 -dAVPLAYER -O
#CFLAGS = -b1 -dAVPLAYER 
#LIBS = lib:db-b1.lib lib:lcm.lib lib:lc.lib $(DEBUGLIB) lib:camd-lattice.lib lib:amiga.lib
##MAP = MAP AVt.map,O,H,F,X PLAIN HEIGHT 0 SWIDTH 25 WIDTH 80
#TARGET = AVt
###########################################################################

CC = LC -j88i -cw -v
INCS = -iAVI:

LINK = BLink

.ONERROR:
	execute s:make.error

.c.o:
	$(CC) $(CFLAGS) -H$(ALLPRE) $(INCS) $*.c
#	$(CC) $(CFLAGS) -H$(ALLPRE) $(INCS) -ptei -o$*.p $*.c  #makes prototypes

.a.o:
	asm -m0 -iINCLUDE: $(AFLAGS) $*.a


CACHEOBJS = cache_man.o resources.o sem.o \
	8svx.o smus.o ilbm.o cm_cdxl.o \
    ilbm_decode.o clip_decode.o MidiFile.o \
	DiskAnim.o Anim8SVX.o Disk8svx.o 

ROOT_PLAY = $(AUTOSTACK) resdataseg.o \
	AV.o Kernal.o ToRoot.o \
	Memory.o AllMoMem.o DataNode.o SysResource.o dnode.o \
	Eval.o CommandLib.o EvalIO.o \
	RTLinkages.o RTAVBase.o \
	Buffering.o ifftype.o paths.o DeBox.o \
	hooks.o RawDoFmtSupport.o FakeInput.o \
	SysStrings.o DOSSwap.o SLLists.o \
	MidiPlay.o MidiSoundServ.o \
	Audio.o soundlib.o CDAudio.o speak.o \
	Score.o ciatimer.o cia.o \
	RexxAV.o Rexx.o RexxFunc.o \
	runwb.o processes.o \
	expr.o lex.o func.o \
	sparse1.o sparse.o var.o value.o \
	trunc.o str.o date.o df.o key.o capitalize.o TextGad.o \
	ActiveScreen.o GetLastScreenInfo.o GelsInfo.o pointer.o \
	tfileprep.o TFile.o TFileParse.o Fonts.o \
	AVSystem.o Attr.o CDTVSystem.o CDTVstuff.o \
	video.o \
	ihandler.o draw_dob.o \
	dob_run.o path_run.o rect_run.o text_run.o \
	brush_run.o twin_run.o field_run.o \
	circ_run.o line_run.o poly_run.o \
	isqroot.o riff.o hriff.o xriff.o \
	vblank.o vblank_server.o \
	trans.o vptrans.o coptrans.o dview.o \
	rect_util.o work_dob.o \
	anim.o animbrush.o utils_dob.o \
	dobio.o dob_clone.o dob_res.o \
	SuperDob.o DobAttr.o dobfixstr.o \
	cdxl.o asyncio.o BlitDef.o PathedDob.o \
	$(CACHEOBJS) 

DB_PLAY = db_runtime.o db_main.o

ROOT_LOAD = ReadCourse.o commanddata.o Struct_Updates.o \
	ActionList.o LinkNode.o References.o \
	Event.o CopyEvent.o Recurse.o 

ROOT_EDIT = RootGad.o requesters.o reqbuttons.o AllStrings.o \
	MemoryMonitor.o Crypt.o informuser.o tempscreen.o 

STARTUP = Startup.o AVBase.o 
OVL0 = RootPanic.o 

OVL1 = Editor.o IconMenu.o EventInfo.o editorver.o \
	EWMenu.o Prefs.o EWRun.o EWDisplay.o EWGadgets.o \
	EWIcon.o EWInfo.o EWFile.o EWEdit.o EWSearch.o \
	EWRubber.o EWCopy.o UnCollect.o \
	ShowHelp.o TextBrowser.o TranRQ.o calcrq.o \
	fr.o filelist.o iotext.o heapsort.o \
	DOS_Packet.o strex.o \
	expr_win.o expr_varslave.o expr_funcslave.o \
	ReqObjects.o ReqVarRef.o ReqAV.o ReqScore.o \
	ReqInstruments.o ReqSound.o ReqVoice.o ReqText.o \
	ReqPaint.o ReqAnim.o ReqGfx.o ReqVideo.o \
	ReqDBOutput.o ReqForm.o ReqData.o ReqWait.o \
	ReqWaitMain.o ReqWaitcond.o ReqDelay.o ReqLoop.o \
	ReqRemove.o ReqRes.o ReqEvent.o ReqExecute.o \
	ReqTimer.o ReqFont.o \
	DobedCalls.o Preview.o \
	WriteCourse.o WriteIcon.o \
	authorscreen.o scrpal.o scrreq.o palbox.o \
	Windows.o Paralyze.o \
	Gadgets.o ValProp.o DIMButtons.o ILists.o \
	makebob.o VSprite.o AllImages.o \
	Slave.o ReqAttr.o IconType.o IconNameSlave.o \
	WindowServer.o countmidichans.o ToFirst.o viking-work:sourceflow/sourceinfo.o viking-work:sourceflow/sourceflow.o viking-work:sourceflow/sourceicon.o 

AMOBJS = AMCatalog.o AMDest.o AMDisk.o AMFloppy.o \
	AMFlowRename.o AMFlowScan.o AMLog.o AMResname.o \
	AMResref.o AMResScan.o AMMain.o AMWindow.o \
	AMInstall.o AMCreate.o AMInstallCopy.o \
	AMCreateCopy.o AMFileRename.o AMResIcon.o 

OVL2A = Config.o ReqDefaults.o ReqMemMon.o \
	IconPrint.o PrintFunctions.o IconFieldSlave.o PrintConds.o \
	PrintAv.o PrintData.o PrintInterrupt.o PrintWait.o \
	PrintControl.o PrintSystem.o PrintOther.o PrintInit.o \
	$(AMOBJS) 

OVL2B = dobedmenus.o scrdef.o Dob_Path.o VisualPlace.o ColorStrip.o \
	dob_edit.o DobedControl.o SuperEdit.o info_dob.o sr_vblank.o \
	rect_edit.o text_edit.o circ_edit.o line_edit.o poly_edit.o \
	brush_edit.o twin_edit.o field_edit.o \
	vidmain.o vidswitch.o vidlist.o dobslave.o 

OVL2C = db_window.o db_edit.o db_key.o 

OVL2D = panic.o 

AVP_ROOT = avp.o AVpDBHooks.o 
AVP_LOAD = AVpReadHooks.o 
AVT_ROOT = avp.o avt.o

#libraries, etc
DB_LIB = avdb_libent.o avdb_libinit.o avdb.o
IDEBUGOBJS = Debugs.o EWDebug.o AMDebug.o dobeddebug.o 

all: $(TARGET)

av: as_defs.o ss_defs.o $(ALLPRE)
av: $(STARTUP) $(ROOT_PLAY) $(ROOT_LOAD) $(ROOT_EDIT) $(DB_PLAY) 
av: $(OVL0) $(OVL1) $(OVL2A) $(OVL2B) $(OVL2C) $(OVL2D) 
av: lmkfile idebug.lib crypt
av: bumpversion
	$(LINK) WITH <<
	FROM
		$(CO)
		$(STARTUP)
		$(ROOT_PLAY)
		$(ROOT_LOAD)
		$(ROOT_EDIT)
		$(DB_PLAY)
	OVERLAY
		$(OVL0)
		$(OVL1)
		*$(OVL2A)
		*$(OVL2B)
		*$(OVL2C)
		*$(OVL2D)
		\#
	TO $(TARGET)
	LIB $(LIBS)
	MAXHUNK 100000
	$(TINY)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)

avp: $(ALLPRE) $(STARTUP) $(AVP_ROOT) 
avp: $(ROOT_PLAY) $(ROOT_LOAD) $(AVP_LOAD) $(OVL2D)
avp: lmkfile
	$(LINK) WITH <<
	FROM
		$(CO)
		$(AVP_ROOT)
		$(ROOT_PLAY)
	OVERLAY
		$(STARTUP) $(ROOT_LOAD) $(AVP_LOAD)		# ReadEvent()
		$(OVL2D)						# PanicOverlay()
		\#
	TO $(TARGET)
	LIB $(LIBS)
	$(TINY)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)


# be sure to "make avp" first...
# IMPORTANT: VERSION MAINTENANCE
#   Unfortunately, you must make modifications in three places to
#   update the library version number:
#      1) the defines at the beginning of avdb_libinit.c
#      2) an equate at the beginning of avdb_libent.a
#      3) the blink LIBID command in this lmkfile
#
avdb.library: $(ALLPRE)
avdb.library: $(DB_LIB) $(DB_PLAY)
avdb.library: lmkfile
	$(LINK) WITH <<
	LIBPREFIX _LIB
	LIBFD avdb.fd
	LIBID "avdb.library 2.1"
	FROM
		$(DB_LIB)
		$(DB_PLAY)
	TO $(TARGET)
	LIB $(LIBS)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)

# This used for testing purposes only. It generates a non-overlayed
#	executable that contains all essential code for the player, but
#	has no overhead for the library or overlay interactions.
AVt: $(ALLPRE)
AVt: $(STARTUP) $(AVT_ROOT) $(ROOT_PLAY) $(ROOT_LOAD) $(DB_PLAY) 
AVt: lmkfile
	$(LINK) WITH <<
	FROM
		$(CO)
		$(STARTUP)
		$(AVT_ROOT)
		$(ROOT_PLAY)
		$(ROOT_LOAD)
		$(DB_PLAY)
	TO $(TARGET)
	LIB $(LIBS)
	$(TINY)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)

avs_environ:
	copy av:lmkfile av:tags TO av:avs CLONE NOPRO
	copy av:\#?(.a|.c|.fd) TO av:avs CLONE NOPRO

# need to edit av:avp/lmkfile to activate the AVP configuration block.
avp_environ:
	copy av:lmkfile av:tags TO av:avp CLONE NOPRO
	copy av:\#?(.a|.c|.fd) TO av:avp CLONE NOPRO

ds: ds.c
	LC -v -HPRE:AllSAS-b0.pre ds
	$(LINK) FROM lib:c.o ds.o LIB lib:lc.lib lib:amiga.lib ND SC SD

bumpversion: ds
	ds editorver.a VersionString S:Version
	asm -m0 -iINCLUDE: editorver.a

cryptmain.o: crypt.c
	$(CC) -HPRE:AllSAS-b0.pre $(INCS) -ocryptmain.o -dSTANDALONE crypt.c

crypt.o: crypt.c
	$(CC) -HPRE:AllSAS-b0.pre $(INCS) crypt.c

crypt: cryptmain.o
	$(LINK) TO crypt FROM lib:c.o cryptmain.o LIB lib:lc.lib lib:amiga.lib ND SC SD

idebug.lib: $(IDEBUGOBJS)
	join $(IDEBUGOBJS) as idebug.lib

AV.lib: $(ALLPRE) $(STARTUP) $(AVP_ROOT) 
AV.lib: $(ROOT_PLAY) $(ROOT_LOAD) $(AVP_LOAD) $(OVL2D)
	join $(ALLPRE) $(STARTUP) $(AVP_ROOT) $(ROOT_PLAY) $(ROOT_LOAD) $(AVP_LOAD) $(OVL2D) as AV.lib

PRE:AllSAS-b0.pre: 
	copy include:AllSAS-b0.pre pre:

PRE:AllSAS-b1.pre: 
	copy include:AllSAS-b1.pre pre:


### 'Touchers' ###

#define IN_HOUSE
inhouse: 
	touch av.c avbase.c allstrings.c ewmenu.c memory.c sysstrings.c eval.c dobedcalls.c

avp_defines:
	delete avdb.o avp.o commandlib.o eval.o ihandler.o informuser.o readcourse.o tempscreen.o

as_defs.o: avi:as_desc.h
    avstr a
    copy avi:as_defs.h as_defs.o

ss_defs.o: avi:ss_desc.h
    avstr s
    copy avi:ss_defs.h ss_defs.o

t:	as_defs.o ss_defs.o
t:	bumpversion func.o viking-work:sourceflow/sourceicon.o viking-work:sourceflow/sourceflow.o viking-work:sourceflow/sourceinfo.o MidiPlay.o anim.o AVBase.o ReqEvent.o startup.o ReqButtons.o Requesters.o dimbuttons.o prefs.o info_dob.o ReqAV.o IconMenu.o rootgad.o ReqFont.o ilists.o ReqAnim.o ReqPaint.o reqgfx.o ReqScore.o ReqVoice.o ReqRemove.o ReqText.o ReqSound.o ReqVideo.o ReqVarRef.o ReqForm.o ReqExecute.o ReqTimer.o ReqRes.o ReqDelay.o ReqWait.o ReqWaitCond.o ReqWaitMain.o ReqDBOutPut.o ReqData.o ReqLoop.o expr_win.o dob_edit.o DobedControl.o 
	$(LINK) WITH <<
	FROM
		$(CO)
		$(STARTUP)
		$(ROOT_PLAY)
		$(ROOT_LOAD)
		$(ROOT_EDIT)
		$(DB_PLAY)
	OVERLAY
		$(OVL0)
		$(OVL1)
		*$(OVL2A)
		*$(OVL2B)
		*$(OVL2C)
		*$(OVL2D)
		\#
	TO $(TARGET)
	LIB $(LIBS)
	MAXHUNK 100000
	$(TINY)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)


p: lmkfile avbase.o rtavbase.o av.o eval.o startup.o avp.o memory.o dosswap.o cache_man.o 
	$(LINK) WITH <<
	FROM
		$(CO)
		$(AVP_ROOT)
		$(ROOT_PLAY)
	OVERLAY
		$(STARTUP) $(ROOT_LOAD) $(AVP_LOAD)		# ReadEvent()
		$(OVL2D)						# PanicOverlay()
		\#
	TO $(TARGET)
	LIB $(LIBS)
	$(TINY)
	$(LFLAGS)
	$(MAP)
	<
	execute s:make.user $(TARGET)
