MODNAME 	  = videocd
VERSION 	  = 40

REMOTE		  = CDGS:src/$(MODNAME)

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

C_COMPILER	  = SC
C_COMPILER_OPTS   = NOVERSION DATA=FAR NOSTKCHK PARMS=REG NMINC STRMERGE STREQ DEBUG=L OPTIMIZE OPTSIZE

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	  = libbase.c videocd.c
ASM_SOURCES	  = libinit.asm endcode.asm

OBJECTS 	  = libinit.o libbase.o videocd.o endcode.o

STARTUP 	  =
LIBS		  = CBMLIB:amiga.lib CBMLIB:debug.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...
#
libinit.o:	libinit.asm $(MODNAME)_rev.rev libbase.i
libbase.o:	libbase.c libbase.h
videocd.o:	videocd.c libbase.h $(MODNAME)_lib.h


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


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


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


##############################################################################
# Build autodoc
#
doc:
	@Autodoc >$(MODNAME).doc videocd.c
	@copy $(MODNAME).doc CDGS:doc


##############################################################################
# Release the current build to the server...
#
internal:
	-Delete $(REMOTE)/((\#?.(c|h|asm|i|ld|rev|doc|library))|lmkfile|smakefile)
	-protect ((\#?.(c|h|asm|i|ld|rev|doc))|lmkfile|$(LD_STRIP)) +r quiet
	-copy \#?.(strip|ld|doc|library) \#?_rev.\#? $(REMOTE)
	@copy $(MODNAME).doc CDGS:doc
	@copy $(MODNAME)_lib.h CDGS:include/libraries/$(MODNAME).h
	@copy $(MODNAME)_lib.i CDGS:include/libraries/$(MODNAME).i
	@copy $(MODNAME)_protos.h CDGS:include/clib
	@copy $(MODNAME)_pragmas.h CDGS:include/pragmas


##############################################################################
# Install the current build locally
#
install:
	copy $(LD_STRIP) LIBS:$(MODNAME).library
	flushlibs
#	copy $(LD_STRIP) DF0:LIBS/$(MODNAME).library

headers:
	@copy $(MODNAME)_lib.h INCLUDE:libraries/$(MODNAME).h
	@copy $(MODNAME)_lib.i INCLUDE:libraries/$(MODNAME).i
	@copy $(MODNAME)_protos.h INCLUDE:clib
	@copy $(MODNAME)_pragmas.h INCLUDE:pragmas

	@copy $(MODNAME)_lib.h CDGS:include/libraries/$(MODNAME).h
	@copy $(MODNAME)_lib.i CDGS:include/libraries/$(MODNAME).i
	@copy $(MODNAME)_protos.h CDGS:include/clib
	@copy $(MODNAME)_pragmas.h CDGS:include/pragmas
