
MODNAME	          = commodities
VERSION		  = 40

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

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

C_COMPILER        = LC
C_COMPILER_OPTS   = -b0 -ms -v -me -rr -cfistqmcu -d1 -O

# for SAS/C 6.0, don't forget the linker line too
#C_COMPILER        = SC
#C_COMPILER_OPTS   = RESOPT DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB LIBCODE\
#		    STREQ STRMER COMMENTNEST DBG=SYMBOL\
#		    MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC\
#		    OPT OPTPEEP OPTINLOCAL OPTSIZE OPTDEP=3 OPTRDEP=3

ASSEMBLER         = HX68 -a
ASSEMBLER_OPTS    = -csy -i include: -o

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

C_SOURCES   	  = commoditiesbase.c pool.c objects.c objlists.c messages.c \
		    broker.c ihandler.c parseix.c ikm.c exchange.c

ASM_SOURCES = commodities_lib.asm dispatch.asm matchix.asm ihandlerstub.asm \
	      serialout.asm endcode.asm

OBJECTS     = commodities_lib.o commoditiesbase.o pool.o matchix.o dispatch.o \
	      objects.o objlists.o broker.o messages.o ihandler.o \
	      parseix.o ikm.o exchange.o ihandlerstub.o serialout.o endcode.o

STARTUP     =
LIBS        = LIB:amiga.lib LIB:debug.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 #DISASM $*.dasm

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


##############################################################################
# All dependencies...
#
commodities_lib.o: commodities_lib.asm $(MODNAME)_rev.rev commoditiesbase.i
commoditiesbase.o: commoditiesbase.c commoditiesbase.h
matchix.o: matchix.asm matchix.h commoditiesbase.h
pool.o: pool.c pool.h commoditiesbase.h
messages.o: messages.c messages.h commoditiesbase.h
objlists.o: objlists.c objlists.h commoditiesbase.h
ikm.o: ikm.c ikm.h commoditiesbase.h
exchange.o: exchange.c exchange.h commoditiesbase.h
parseix.o: parseix.c parseix.h commoditiesbase.h
broker.o: broker.c broker.h commoditiesbase.h
objects.o: objects.c objects.h commoditiesbase.h
dispatch.o: dispatch.asm dispatch.h
ihandlerstub.o: ihandlerstub.asm ihandlerstub.h
ihandler.o: ihandler.c ihandler.h commoditiesbase.h
endcode.o: endcode.asm


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


##############################################################################
# Release stuff that should be...
#
headers:
	@autodoc >$(MODNAME).doc autodocs.asm
	@copy $(MODNAME).doc V$(VERSION):doc
	@delete $(MODNAME).doc quiet
	@protect V$(VERSION):include/libraries/commodities.? wrd quiet
	@copy commodities.? V$(VERSION):include/libraries quiet
	@protect V$(VERSION):lib/sfd/commodities_lib.sfd wrd
	@copy commodities_lib.sfd V$(VERSION):lib/sfd


##############################################################################
# Delete all object files
#
clean:
	@Delete $(OBJECTS)
	@Delete $(LD_FILE) $(LD_STRIP)


##############################################################################
# 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)
