MODNAME	          = amigaguide
VERSION		  = 40

TEMP		  = RAM:Temp
LOCAL		  = W:classes/datatypes/amigaguide
REMOTE		  = V$(VERSION):src/workbench/classes/datatypes/amigaguide

LD_FILE	          = $(MODNAME).ld
LD_STRIP          = $(MODNAME).ld.strip

C_COMPILER        = SC
C_COMPILER_OPTS   = NOVERSION DATA=FAR NOSTKCHK PARMS=REG NMINC STRMERGE STREQ MCCONS \
		    COMNEST UNSCHAR DEBUG=L IDIR=SC:INCLUDE OPTSIZE OPTIMIZE
C_COMPILER_OPTS   = DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB \
		    STREQ STRMER DEBUG=L \
		    MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC \
		    OPT OPTPEEP OPTINLOCAL OPTTIME OPTDEP=3 OPTRDEP=3

ASSEMBLER         = hx68 FROM
ASSEMBLER_OPTS    = DEBUG ADDSYM INCDIR INCLUDE: TO

LINKER            = SLINK
LINKER_OPTS	  = ADDSYM SC SD MAP $(MODNAME).map HLSXF PLAIN SWIDTH 16
LINKER_OPTS_STRIP = ND

C_SOURCES	  = amigaguidebase.c asyncio.c dispatch.c nddispatch.c rlayout.c layout.c parser.c misc.c \
		    render.c process.c dbdispatch.c mdispatch.c findnode.c token.c xrefmgr.c \
		    lvoaddpathentries.c lvocopypathlist.c lvoexpungexref.c lvofreepathlist.c \
		    lvoloadxref.c lvolocke.c lvoopene.c lvoparsepathstring.c lvosetcurrentdire.c \
		    lvogetagstring.c lvonodehost.c input.c print.c arexx.c findline.c drawbox.c

ASM_SOURCES	  = amigaguide_lib.asm findnamei.asm endcode.asm

OBJECTS		  = amigaguide_lib.o amigaguidebase.o \
		    lvoaddpathentries.o lvocopypathlist.o lvoexpungexref.o lvofreepathlist.o \
		    lvoloadxref.o lvolocke.o lvoopene.o lvoparsepathstring.o lvosetcurrentdire.o \
		    lvogetagstring.o lvonodehost.o \
		    dispatch.o nddispatch.o rlayout.o layout.o render.o parser.o misc.o process.o \
		    dbdispatch.o mdispatch.o findnode.o token.o xrefmgr.o input.o \
		    print.o arexx.o findline.o drawbox.o asyncio.o \
		    findnamei.o endcode.o

STARTUP		  =
LIBS		  = cbmlib:debug.lib lib:amiga.lib lib:sc.lib


##############################################################################
# Build the stripped load file...
#
$(LD_STRIP):	$(LD_FILE)
		$(LINKER) FROM $(LD_FILE) TO $(LD_STRIP) $(LINKER_OPTS_STRIP)

##############################################################################
# Build the load file...
#
$(LD_FILE):	$(OBJECTS) $(LIBS)

		$(LINKER) <with <
FROM $(STARTUP) $(OBJECTS) TO $(LD_FILE) LIB $(LIBS) $(LINKER_OPTS)
<


##############################################################################
# Default rules...
#
.c.o:
	$(C_COMPILER) $(C_COMPILER_OPTS) $*.c

.asm.o:
	$(ASSEMBLER) $*.asm $(ASSEMBLER_OPTS) $*.o

##############################################################################
# All dependencies...
#
amigaguide_lib.o:	amigaguide_lib.asm $(MODNAME)_rev.rev amigaguidebase.i
amigaguidebase.o:	amigaguidebase.c amigaguidebase.h
asyncio.o:		asyncio.c asyncio.h
lvogetagstring.o:	lvogetagstring.c texttable.h
lvonodehost.o:		lvonodehost.c hosthandle.h
dbdispatch.o:		dbdispatch.c hosthandle.h
findnode.o:		findnode.c hosthandle.h
layout.o:		layout.c hosthandle.h
rlayout.o:		rlayout.c
texttable.h:		amigaguide.cd
			catcomp amigaguide.cd cfile texttable.h


##############################################################################
# Make protos
#
protos:
	mkproto \#?.c to $(MODNAME)_iprotos.h

##############################################################################
# Bump the version...
#
version:
	@BumpRev $(VERSION) $(MODNAME)_rev


##############################################################################
# Delete all object files
#
clean:
	-Delete \#?.o \#?.bak \#?.lnk
        -Delete $(LD_FILE) $(MODNAME).map


##############################################################################
# Build autodoc
#
$(MODNAME).doc:	autodocs.asm
	@Autodoc >$(MODNAME).doc autodocs.asm



##############################################################################
# Install the headers
#
headers:
		-COPY $(MODNAME)class_protos.h include:clib/$(MODNAME)class_protos.h
		-COPY $(MODNAME)class_pragmas.h include:pragmas/$(MODNAME)class_pragmas.h


##############################################################################
# Release the current build to the server...
#
internal:
	-Delete $(REMOTE)/((\#?.(c|h|asm|i|ld|rev|doc|datatype|class))|lmkfile)
	-protect ((\#?.(c|h|asm|i|ld|rev|doc))|lmkfile|$(LD_STRIP)) +r quiet
	-copy \#?.(strip|ld|doc|datatype|class) \#?_rev.\#? $(REMOTE)


##############################################################################
# Install the current build locally
#
install:
	copy $(LD_STRIP) SYS:classes/datatypes/$(MODNAME).datatype
#	protect $(REMOTE)/texttable.h +w
#	copy texttable.h $(REMOTE)
	flushlibs

newclient:
	delete layout.o  dispatch.o  print.o  findline.o  input.o  render.o
	delete misc.o  findnode.o  process.o  drawbox.o dbdispatch.o


##############################################################################
# Install the current debug build locally
#
debug:
	copy $(LD_FILE) SYS:classes/datatypes/$(MODNAME).datatype
	flushlibs

##############################################################################
# Create the Autodoc and send it to the server.
#
doc:
	@Autodoc >$(MODNAME).datatype.doc amigaguidebase.c
	@copy $(MODNAME).datatype.doc V$(VERSION):doc

installold:
	copy $(REMOTE)/$(LD_STRIP) sys:classes/datatypes/$(MODNAME).datatype
	flushlibs
