
MODNAME	          = printer
VERSION		  = 39

REMOTE		  = V$(VERSION):src/Workbench/devs/printer/printer

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

C_COMPILER        = LC
C_COMPILER_OPTS   = -b0 -ms -v -me -cwistq -d1 -iV$(VERSION):include
#C_COMPILER_OPTS   = -b1 -ms -v -me -rr -O -cfistqmcu -d1

ASSEMBLER         = Hx68 -a
ASSEMBLER_OPTS    = -csy -i V$(VERSION):include -o

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

#
# Default rules...
#
.c.o:
	$(C_COMPILER) $(C_COMPILER_OPTS) $*.c

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


#
# C files
#
MY_C =	awrite.c \
cdefault.c \
cdumprport.c \
copen.c \
cwrite.c \
yexe.c \
yexr.c \
yrxe.c \
yrxr.c \
pixel.c \
error.c \
fixcolors.c \
mrp.c \
query.c \
floyd.c \
alias.c \
time.c \
requester.c

#
# assembly files
#
MY_A =	residenttag.asm \
beginio.asm \
device.asm \
stop.asm \
unsupported.asm \
wtask.asm \
pwrite.asm \
write.asm \
rawwrite.asm \
prtcommand.asm \
dumprport.asm \
wait.asm \
rpa.asm \
scale.asm \
endmodule.asm

#
# Object files (not including first module)
#
OBJECTS =	beginio.o \
device.o \
stop.o \
unsupported.o \
wtask.o \
pwrite.o \
write.o \
rawwrite.o \
prtcommand.o \
dumprport.o \
awrite.o \
cdefault.o \
cdumprport.o \
copen.o \
cwrite.o \
wait.o \
yexe.o \
yexr.o \
yrxe.o \
yrxr.o \
pixel.o \
error.o \
fixcolors.o \
rpa.o \
time.o \
scale.o \
mrp.o \
query.o \
floyd.o \
alias.o \
requester.o \
endmodule.o

#
# My headers...
#
PUBLIC_HDR = printer.h printer.i prtgfx.h prtgfx.i prtbase.i prtbase.i

STARTUP=	residenttag.o
LIBS=		V$(VERSION):lib/amiga.lib V$(VERSION):lib/lattice/lcr.lib LIB:debug.lib


ALL:	$(LD_STRIP)

#
# 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):	$(STARTUP) $(OBJECTS) $(LIBS)

		$(LINKER) <with <
FROM $(STARTUP) $(OBJECTS) TO $(LD_FILE) LIB $(LIBS) $(LINKER_OPTS)
<


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

$(MODNAME)_rev.i:
	@bumprev $(VERSION) $(MODNAME)_rev

$(MODNAME)_rev.h:
	@bumprev $(VERSION) $(MODNAME)_rev

#
# Release just the headers
#
headers:	$(PUBLIC_HDR)
	copy $(PUBLIC_HDR) V$(VERSION):include/devices NOPRO


#
# dependencies
#
residenttag.o:	residenttag.asm printer_rev.i


#
# Blow away all files that would need to be rebuilt
#
clean:
	@delete (\#?.o|\#?.o.\#?|$(MODNAME).doc|$(MODNAME).ld\#?)


#
# Release the current build to the server
#
internal:
	@delete $(REMOTE)/((\#?.(c|h|asm|i|rev|doc|sfd|ld|ld.\#?))|makefile|lmkfile)
	@protect ((\#?.(c|h|asm|i|ld|rev|doc|sfd))|makefile|lmkfile) +r quiet
	@copy ((\#?.(c|h|asm|i|rev|doc|sfd|ld|ld.\#?))|makefile|lmkfile) $(REMOTE)
	@copy \#?.doc V$(VERSION):doc NOPRO
	@copy \#?.sfd V$(VERSION):lib/sfd NOPRO

#
# Make the AutoDocs
#
doc:	$(MODNAME).doc

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

#
# Make a complete new release (This still is in testing...)
#
release:
	lmk clean
	lmk version
	lmk $(LD_FILE)
	lmk $(LD_STRIP)

