MODNAME	          = text
VERSION		  = 40

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

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

C_COMPILER        = SC
C_COMPILER_OPTS   = -O -b0 -ms -v -me -rr -cfistqmcu -d1
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	  = textbase.c dispatch.c drawbox.c input.c findline.c
ASM_SOURCES	  = text_lib.asm rectangle.asm endcode.asm

OBJECTS		  = text_lib.o textbase.o dispatch.o drawbox.o input.o findline.o rectangle.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...
#
text_lib.o:	text_lib.asm $(MODNAME)_rev.rev textbase.i
textbase.o:	textbase.c textbase.h
dispatch.o:	dispatch.c textbase.h classdata.h
drawbox.o:	drawbox.c textbase.h classdata.h
input.o:	input.c textbase.h classdata.h
findline.o:	findline.c textbase.h classdata.h

##############################################################################
# Make protos
#
protos:
	mkproto $(C_SOURCES) to $(MODNAME)_iprotos.h

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


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


##############################################################################
# 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)
	-protect (\#?.(h|i)) +r quiet
	-protect V39:include/datatypes/\#? +w
	-protect include:datatypes/\#? +w
	-copy textclass.h V39:include/datatypes
	-copy textclass.i V39:include/datatypes
	-copy textclass.h include:datatypes
	-copy textclass.i include:datatypes

##############################################################################
# Install the current build locally
#
install:
	copy $(LD_STRIP) SYS:classes/datatypes/$(MODNAME).datatype
#	-protect include:datatypes/\#? rwd
#	-copy textclass.? include:datatypes
	flushlibs

headers:
	-copy textclass.h include:datatypes
	-copy textclass.i include:datatypes

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