MODNAME     =   serial
VERSION     =   40

REMOTE      =   V$(VERSION):src/workbench/devs/serial

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

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 OPTTIME\
                    OPTDEP=3 OPTRDEP=3

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

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

C_SOURCES       =

ASM_SOURCES     =   abs.asm begin.asm functions.asm init.asm read.asm setparams.asm write.asm

OBJECTS         =   abs.o begin.o functions.o init.o read.o setparams.o write.o

STARTUP         =
LIBS            =   LIB:debug.lib LIB:amiga.lib

##############################################################################
#
#   Build stripped load file
#
##############################################################################

$(LD_STRIP):    $(LD_FILE)
                $(LINKER) FROM $(LD_FILE) TO $(LD_STRIP) $(LINKER_OPTS_STRIP)

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

##############################################################################
#
#   Dependencies
#
##############################################################################

abs.o:  abs.asm serial_rev.i
begin.o: begin.asm assembly.i serialdev.i
functions.o: functions.asm assembly.i serialdev.i
init.o: init.asm assembly.i serialdev.i
read.o: read.asm assembly.i serialdev.i
setparams.o: setparams.asm assembly.i serialdev.i
write.o: write.asm assembly.i serialdev.i

##############################################################################
#
#   Bump revision
#
##############################################################################

version:
    @BumpRev $(VERSION) $(MODNAME)_rev

##############################################################################
#
#   Clean-up object files
#
##############################################################################

clean:
    @Delete \#?.o
    @Delete $(LD_FILE) $(LD_STRIP) $(MODNAME).map

##############################################################################
#
#   Release
#
##############################################################################

headers:
    #   AutoDocs
    autodoc >serial.doc -FT:AutoDocTemp $(CFILES)

    copy $(MODNAME).doc V$(VERSION):doc
    @delete $(MODNAME).doc quiet
    @protect V$(VERSION):include/devices/serial.? wrd quiet
    @copy serial.? V$(VERSION):include/devices quiet

##############################################################################
#
#   Release build to internal server
#
##############################################################################

internal:
    @copy \#?.(strip|ld|doc|library|device) \#?_rev.\#? $(REMOTE)
