# $Id$

MODNAME     =   label
VERSION     =   42

REMOTE      =   V42:src/workbench/classes/images/label
PUBLIC      =   SoftServe:jjszucs/classes/images/label

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

C_COMPILER      =   SC
# C_COMPILER_OPTS =    RESOPT DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB STREQ STRMER COMMENTNEST UTILLIB DEBUG=SYMBOL NOICONS NOVERSION NOMINC ERRREXX UCHAR OPTIMIZE OPTPEEP OPTGO OPTINLOCAL OPTTIME OPTDEP=3 OPTRDEP=3 NOSTKCHK DEFINE=DEBUG
C_COMPILER_OPTS =    RESOPT DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB STREQ STRMER COMMENTNEST UTILLIB DEBUG=SYMBOL NOICONS NOVERSION NOMINC ERRREXX UCHAR OPTIMIZE OPTPEEP OPTGO OPTINLOCAL OPTTIME OPTDEP=3 OPTRDEP=3 NOSTKCHK

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

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

C_SOURCES       =   classbase.c dispatch.c text.c bitmap.c string.c

ASM_SOURCES     =   bsprintf.a classinit.a endcode.a

OBJECTS         =   classinit.o classbase.o dispatch.o text.o bitmap.o string.o endcode.o

STARTUP         =
LIBS            =   LIB:SC.lib LIB:amiga.lib LIB:debug.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

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

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

classinit.o:    classinit.a $(MODNAME)_rev.rev classbase.i
classbase.o:    classbase.c classbase.h
endcode.o:      endcode.a
dispatch.o:     dispatch.c classbase.h classdata.h
text.o:         text.c classbase.h classdata.h
bitmap.o:       bitmap.c classbase.h classdata.h

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

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

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

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

##############################################################################
#
#   AutoDocs
#
##############################################################################

autodocs:
    #   AutoDocs
    autodoc >label_ic.doc -C -I $(C_SOURCES)
    ad2ht label_ic.doc TO T:
    copy T:label_ic label_ic.guide
    delete T:label_ic

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

internal:
    delete $(REMOTE)/((\#?.(c|h|a|i|rev|doc|library))|SMakefile)
    protect ((\#?.(c|h|a|i|rev|doc))|SMakefile|$(LD_STRIP)) +r quiet
    copy ((\#?.(c|h|a|i|rev|doc|library))|SMakefile) $(REMOTE)
    copy $(MODNAME).ld.strip $(REMOTE)

public:
    copy label.ld.strip $(PUBLIC)/label.image
    copy label_ic.doc $(PUBLIC)
    copy label_ic.guide $(PUBLIC)
    copy test.c $(PUBLIC)
    copy test $(PUBLIC)

##############################################################################
#
#   Install on local system
#
##############################################################################

install:
    copy label.(h|i) include:images nopro
    copy label_ic.doc autodocs: nopro
    copy label_ic.guide autodocs:label_ic nopro
    copy $(LD_STRIP) sys:classes/images/$(MODNAME).image
    avail flush
