# $Id: SMakefile,v 40.4 93/12/21 11:23:40 jjszucs Exp $

MODNAME     =   PhotoCD
VERSION     =   40

REMOTE      =   Other:PhotoCD/photocd.library

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 CPU=68020 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 CPU=68020 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       =   photocdbase.c amiga.c photocd.c handle.c info.c image.c stubs.c revision.c

ASM_SOURCES     =   bsprintf.a photocd_lib.a writeyuv.a writergb.a writegamma.a endcode.a

OBJECTS         =   photocd_lib.o revision.o photocdbase.o amiga.o bsprintf.o writeyuv.o writergb.o writegamma.o photocd.o handle.o info.o image.o stubs.o endcode.o

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

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

$(LD_STRIP):    $(LD_FILE) $(MODNAME)_pragmas.h
                makesfd $(MODNAME)_lib.sfd
                $(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
#
##############################################################################

photocd_lib.o: photocd_lib.a photocd_rev.i photocdbase.i
writeycc.o: writeycc.a
writergb.o: writergb.a
photocdbase.o: photocdbase.c photocd.h photocdbase.h
amiga.o: amiga.c internal.h
photocd.o: photocd.c photocd.h internal.h
disc.o: disc.c photocd.h photocdbase.h internal.h
session.o: session.c photocd.h photocdbase.h internal.h
bsprintf.o: bsprintf.a
revision.o: revision.c $(MODNAME)_rev.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 >photocd.doc -C -I $(C_SOURCES)
    ad2ht photocd.doc TO T:
    copy T:photocd photocd.guide
    delete T:photocd

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

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

install:
    copy photocd_protos.h include:clib nopro
    copy photocd_pragmas.h include:pragmas nopro
    copy photocd.h include:libraries nopro
    copy photocdbase.h include:libraries nopro
    copy photocd.doc autodocs: nopro
    copy photocd.guide autodocs:photocd nopro
    copy photocd.ld.strip libs:photocd.library nopro
    avail flush
