
MODNAME=		eucdriver
VERSION=		40

REMOTE=			V40:src/japan/workbench/libs/eucdriver

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

C_COMPILER=		LC
C_COMPILER_OPTS=	-. -b1 -csuw -ma -O -r -v

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

LINKER=			Blink
LINKER_OPTS=		ADDSYM BATCH BUFSIZE 1024 SMALLCODE SMALLDATA MAP $(MODNAME).map,f,h,l,s,x
LINKER_OPTS_STRIP=	ND

EXTERNHFILES=
EXTERNIFILES=

IFILES=			debug.i driver.i
HFILES=

AFILES=			library.asm loader.asm install.asm write.asm length.asm flush.asm debug.asm endmodule.asm

CFILES=

OBJECTS=		library.o \
			loader.o \
			install.o \
			write.o \
			length.o \
			flush.o \
			debug.o \
			endmodule.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

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


##############################################################################
# All dependencies...
#
library.o:	library.asm	$(IFILES) $(MODNAME)_rev.i
install.o:	install.asm	$(IFILES)
loader.o:	loader.asm	$(IFILES)
write.o:	write.asm	$(IFILES)
length.o:	length.asm	$(IFILES)
flush.o:	flush.asm	$(IFILES)
debug.o:	debug.asm	$(IFILES)
endmodule.o:	endmodule.asm	$(IFILES)

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


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


##############################################################################
# Build autodoc
#
doc:
	@Echo "Making $(MODNAME).doc"
	@JOIN <as RAM:$(MODNAME).cat ~? ~< <
	$(AFILES) $(CFILES) ;
	<
	@AutoDoc >$(MODNAME).doc -a -C -s -l78 RAM:$(MODNAME).cat
	@Delete RAM:$(MODNAME).cat QUIET
	@Protect $(MODNAME).doc +rwd


##############################################################################
# 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 ((\#?.(c|h|asm|i|rev|doc|sfd|ld|ld.\#?))|makefile|lmkfile) $(REMOTE)

##############################################################################
# Release public includes, docs, sfd to server
#
headers:
	
#	@copy $(EXTERNIFILES) $(EXTERNHFILES) TO V$(VERSION):include/libraries
#	@copy $(MODNAME).doc V$(VERSION):doc NOPRO
#	@copy $(MODNAME)_lib.sfd V$(VERSION):lib/sfd NOPRO

##############################################################################
# Make vector files
#
coral.vec:

	hx68 -a coral_vec.asm  -o coral_vec.o -i include: -cfvqrsy
	blink from coral_vec.o to coral.vec

coral_e.vec:

	hx68 -a coral_e_vec.asm  -o coral_e_vec.o -i include: -cfvqrsy
	blink from coral_e_vec.o to coral_e.vec

pearl.vec:

	hx68 -a pearl_vec.asm  -o pearl_vec.o -i include: -cfvqrsy
	blink from pearl_vec.o to pearl.vec

pearl_e.vec:

	hx68 -a pearl_e_vec.asm  -o pearl_e_vec.o -i include: -cfvqrsy
	blink from pearl_e_vec.o to pearl_e.vec

