MODNAME=		DataTypes
CLASSNAME=		dtclass
VERSION=		40

REMOTE=			V$(VERSION):src/workbench/libs/datatypes

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

C_COMPILER=		SC
C_COMPILER_OPTS=	RESOPT DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB\
			STREQ STRMER COMMENTNEST DBG=SYMBOL \
			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

DOC_SOURCES=		datatypesbase.c dispatch.c examinedt.c class.c strings.c
C_SOURCES=		datatypesbase.c dispatch.c examinedt.c class.c strings.c misc.c datatypesclass.c

ASM_SOURCES=		datatypes_lib.asm findnamei.asm stubs.asm drawbox.asm endcode.asm

OBJECTS=		datatypes_lib.o datatypesbase.o dispatch.o examinedt.o class.o strings.o \
			misc.o datatypesclass.o findnamei.o stubs.o drawbox.o endcode.o

STARTUP=
LIBS=			LIB: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...
#
datatypes_lib.o:	datatypes_lib.asm $(MODNAME)_rev.rev datatypesbase.i
datatypesbase.o:	datatypesbase.c datatypesbase.h
stubs.o:		stubs.asm
class.o:		class.c datatypesclass.h
datatypesclass.o:	datatypesclass.c datatypesclass.h
strings.o:		strings.c


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

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


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

##############################################################################
# Release the current build to the server...
#
internal:
		-Delete $(REMOTE)/((\#?.(c|h|asm|i|ld|rev|doc|library))|lmkfile)
		-protect ((\#?.(c|h|asm|i|ld|rev|doc))|lmkfile|$(LD_STRIP)) +r quiet
		-copy \#?.(strip|ld|doc|library) \#?_rev.\#? $(REMOTE)
		-protect v39:include/datatypes/\#? rwd
		-protect v39:doc/datatypes\#? rwd
		-protect v39:lib/sfd/datatypes\#? rwd
		-copy datatypesclass.h V39:include/datatypes
		-copy datatypesclass.i V39:include/datatypes
		-copy datatypes_lib.h V39:include/datatypes/datatypes.h
		-copy datatypes_lib.i V39:include/datatypes/datatypes.i
		-copy datatypes.doc V39:doc
		-copy datatypes_lib.sfd V39:lib/sfd
		-copy dtclass_lib.sfd V39:lib/sfd
		-copy datatypesclass.h include:datatypes
		-copy datatypesclass.i include:datatypes
		-copy datatypes_lib.h include:datatypes/datatypes.h
		-copy datatypes_lib.i include:datatypes/datatypes.i
		-copy datatypes_protos.h include:clib/datatypes_protos.h
		-copy datatypes_pragmas.h include:pragmas/datatypes_pragmas.h
		-copy dtclass_protos.h include:clib/dtclass_protos.h
		-copy dtclass_pragmas.h include:pragmas/dtclass_pragmas.h

##############################################################################
# Make the headers
#
headers:
		-copy datatypesclass.h include:datatypes/datatypesclass.h
		-copy datatypesclass.i include:datatypes/datatypesclass.i
		-copy datatypes_lib.h include:datatypes/datatypes.h
		-copy datatypes_lib.i include:datatypes/datatypes.i
		-copy datatypes_protos.h include:clib/datatypes_protos.h
		-copy datatypes_pragmas.h include:pragmas/datatypes_pragmas.h
		-copy dtclass_protos.h include:clib/dtclass_protos.h
		-copy dtclass_pragmas.h include:pragmas/dtclass_pragmas.h

##############################################################################
# Install locally
#
install:
		-copy $(LD_STRIP) LIBS:datatypes.library
		-flushlibs

##############################################################################
# Build autodoc
#
doc:
		AD \#?.c TO datatypes.doc INDEX
