OBJS=snap.o openclose.o clip.o patch.o handler.o \
 snapchars.o frame.o misc.o atie.o snapasm.o
EXE=snap
SYMS=$(EXE).syms
SYMSRC=$(EXE).h
QUICKSYMS=ram:$(SYMS)

CCEXTRA=
GFXFLAGS=
GFXOBJS=
REXXFLAGS=
REXXOBJS=
AZTEC_50D=

# Debug flags
CCDEBUG=
LNDEBUG=

# The two following lines gives a normal Snap. Comment them out for a
# tiny Snap. No gfx at all. Also no Amiga style arguments!
# Remove '-dREQLIB' if you don't have the necessary include files.
# Add '-dASLLIB' to use asl.library's file requester under 2.0
GFXFLAGS=-dSNAPGFX -dREQLIB -dASLLIB
GFXOBJS=snapgfx.o saveilbm.o windows.o

# The three following lines are ARexx stuff
REXXFLAGS=-dSNAPREXX
REXXOBJS=rexx.o minrexx.o

# Uncomment the following if you compile with Aztec version 5.0d
#AZTEC_50D=-r6



#Aztec
#   Compiler switches
#   -pc     Allow extra characters after preprocessor commands
#   -so     Optimize
#   -wl     Lint
#   -hi     Read precompiled include file
#   -ho     Write precompiled include file
#   -pp     Unsigned chars
#
#   Linker switches
#   -f      Read commands from file
#
#CCFLAGS=$(CCEXTRA) $(CCDEBUG) $(AZTEC_50D) -pc -so -wl -hi$(QUICKSYMS) $(GFXFLAGS) $(REXXFLAGS)
#ASFLAGS=
#LNFLAGS=$(LNDEBUG)
#LNOBJS=-lc
#SYMFLAGS=-pc -so -wl -ho$(SYMS) $(GFXFLAGS) -oram:null.o
#CC=cc
#AS=as
#LN=ln -f

#Lattice
#   Compiler switches
#   -O      Optimize
#   -cr     Enable registerized parameter passing
#   -v      No stack checking
#   -H      Read precompiled include file
#   -ph     Write precompiled include file
#
#   Linker switches
#   NOALVS  No Automatic Load Vectors
#   SC      Small Code
#   SD      Small Data
#   ND      No Debug
#
CCFLAGS=$(GFXFLAGS) $(REXXFLAGS) -cr -v -H$(QUICKSYMS) -O
ASFLAGS=-iinclude:
LNFLAGS=NOALVS SC SD ND TO $(EXE) FROM lib:c.o
LNOBJS=LIB lib:lc.lib lib:amiga.lib
SYMFLAGS=-ph $(GFXFLAGS) -o$(SYMS)
CC=lc
AS=asm
LN=blink with

.c.o:
    $(CC) $(CCFLAGS) $*.c

.s.o:
    $(AS) $(ASFLAGS) $*.s

all: $(SYMS) $(QUICKSYMS) $(EXE)

#Link
$(EXE): $(OBJS) $(GFXOBJS) $(REXXOBJS) $(EXE).lnk
    $(LN) $(EXE).lnk

$(EXE).lnk: makefile
    echo >ram:l1 "$(LNFLAGS)"
    echo >ram:l2 "$(OBJS) $(GFXOBJS) $(REXXOBJS)"
    echo >ram:l3 "$(LNOBJS)"
    join ram:l1 ram:l2 ram:l3 as $(EXE).lnk
    delete ram:l1 ram:l2 ram:l3

$(SYMS): $(SYMSRC)
    copy $(SYMSRC) ram:temp.c
    $(CC) $(SYMFLAGS) ram:temp.c
    delete ram:temp.c

$(QUICKSYMS): $(SYMS)
    copy $(SYMS) $(QUICKSYMS)

archive:
    lharc a src.lzh atie.c changes clip.c frame.c handler.s makefile minrexx.c
    lharc a src.lzh minrexx.h misc.c openclose.c patch.c rexx.c saveilbm.c
    lharc a src.lzh snap.c snap.h snapasm.s snapchars.c snapgfx.c windows.c
