#!sc:c/smake
#
#####################################################################
#
#  SMakefile for SANA2Meter
#
#  (C) Copyright 1996 Marius Gröger
#      All Rights Reserved
#
#####################################################################

#####################################################################
#
# installation drawer and names
#
INSTALL_DIR = AMITCP:SANA2Meter
BIN_DIR     = /bin
LOCALE_DIR  = /Catalogs
NAME        = SANA2Meter
BASENAME    = SANA2Meter
RELNAME     = SANA2Meter
IDS         = aminet.ids
VERSION     = 37
#
#####################################################################

#####################################################################
#
# following stuff is your configuration
#
LIBS        = LIB lib:pools.lib LIB LIB:amiga.lib LIB lib:debug.lib \
              LIB lib:sc.lib
CINCLUDES   = INCDIR DOCS:pd INCDIR DOCS:poolsinclude
ASMINCLUDES = INCDIR=INCLUDEA:
CP          = C:Copy
MV          = C:Rename
RM          = C:Delete >NIL:
LD          = sc:c/slink
CC          = sc:c/sc
AS          = sc:c/sc
STRIP       = sc:c/slink
MAKE        = sc:c/smake
BUMPREV     = C:BumpRev
SETREV      = C:SetRev
CATCOMP     = C:CatComp
PROTECT     = protect
BUILD_AMINET= /s/build-aminet
ECHO        = Echo


#####################################################################
#
# Compilation Flavours
#

CPUTYPE     =
CPUCFLAGS   =
CPULDFLAGS  =

SUFFIX      = .$(CPUTYPE)

#
#####################################################################

#####################################################################
#
# Assembler/Compiler Flags
#

STDCFLAGS   = $(CINCLUDES) NOMULTIPLEINCLUDES ERRREXX COMMENTNEST NOSTKCHK NOCHKABORT\
              SMALLCODE SMALLDATA VERBOSE NOICONS NOSTRICT ANSI\
              GST $(NAME).gst $(CPUCFLAGS)

OPTCFLAGS   = $(STDCFLAGS) PARAMETERS=REGISTERS OPT OPTTIME OPTINLINE\
              OPTSCHEDULE STRINGMERGE STRUCTUREEQUIVALENCE

CFLAGS      = $(STDCFLAGS) DEBUG=SYMBOLFLUSH

AFLAGS      = $(ASMINCLUDES) VERBOSE SMALLCODE SMALLDATA

#
#####################################################################

#####################################################################
#
# linkage flags
#
LDFLAGS     = NOICONS SC SD $(LIBS) $(CPULDFLAGS) TO
STRIPFLAGS  = NOICONS ND TO
#
#####################################################################

#####################################################################
#
# the object files
#
OBJECTS     = LIB:RXstartup.obj sana2meter$(SUFFIX)o \
               gui$(SUFFIX)o support$(SUFFIX)o constdata$(SUFFIX)o\
               locale.o LIB:extrdargs.o 
#
#####################################################################

#####################################################################
#
# rules
#

.c$(SUFFIX)o:
   @$(CC) OBJECTNAME=T:$@ $(CFLAGS) $*.c
   @$(CP) T:$@ $@
   @$(RM) T:$@

.asm.o:
   $(AS) $(AFLAGS) $*.asm

$(BIN_DIR)/$(NAME)$(SUFFIX): $(OBJECTS)
   $(LD) $(OBJECTS) $(LDFLAGS) $@
   @$(PROTECT) $@ +p

$(BIN_DIR)/$(NAME): $(OBJECTS)
   @$(LD) $(OBJECTS) $(LDFLAGS) $@.ld
   @$(STRIP) $@.ld $(STRIPFLAGS) $@
   @$(PROTECT) $@ +p

$(NAME).gst: $(NAME).preinc
   $(CC) NOOBJNAME MGST $@ $(STDFLAGS) $(NAME).preinc

#
#####################################################################

#####################################################################
#
# Exported Targets
#
help:
   -@$(ECHO) ""
   -@$(ECHO) "SANA2Meter SMakefile usage:"
   -@$(ECHO) "> smake all .................... Build unoptimized version"
   -@$(ECHO) "> smake all[000|020|040] ....... Build optimized version for MC680x0"
   -@$(ECHO) "> smake install ................ Install unoptimized version"
   -@$(ECHO) "> smake install[000|020|040] ... Install optimized version for MC680x0"
   -@$(ECHO) "> smake newrev ................. Increment proram revision"
   -@$(ECHO) "> smake clean .................. Remove intermediate files"
   -@$(ECHO) ""

all: $(BIN_DIR)/$(NAME) locale
allopt: $(BIN_DIR)/$(NAME)$(SUFFIX)
all000:
   @$(MAKE) CPUTYPE=000 "CFLAGS=$(OPTCFLAGS) CPU=000" "CPULDFLAGS=ND" allopt
all020:
   @$(MAKE) CPUTYPE=020 "CFLAGS=$(OPTCFLAGS) CPU=020" "CPULDFLAGS=ND" allopt
all040:
   @$(MAKE) CPUTYPE=040 "CFLAGS=$(OPTCFLAGS) CPU=040" "CPULDFLAGS=ND" allopt

install: all
   $(CP) $(BIN_DIR)/$(NAME) $(INSTALL_DIR)/$(NAME)
install000: all000
   $(CP) $(BIN_DIR)/$(NAME).000 $(INSTALL_DIR)/$(NAME)
install020: all020
   $(CP) $(BIN_DIR)/$(NAME).020 $(INSTALL_DIR)/$(NAME)
install040: all040
   $(CP) $(BIN_DIR)/$(NAME).040 $(INSTALL_DIR)/$(NAME)

newrev:
   $(BUMPREV) $(VERSION) $(NAME)_rev

release:
   -@$(RM) $(BIN_DIR)/$(NAME)
   -@$(RM) $(BIN_DIR)/$(NAME).ld
   $(MAKE) all000
   $(MAKE) all020
   $(BUILD_AMINET) "$(RELNAME)" "$(BASENAME)" "$(NAME)_rev.h" "/ReadMe" "//$(NAME)" "$(IDS)" CLEAN

clean:
   -@$(RM) $(BIN_DIR)/*.ld
   -@$(RM) *.gst
   -@$(RM) *.*o
#
#####################################################################

#####################################################################
#
# Localisation Stuff
#
locale: blank.ct $(LOCALE_DIR)/deutsch/$(NAME).catalog

locale.o: locale.cd
   $(CATCOMP) VERBOSITY=1 DESCRIPTOR locale.cd OBJFILE $@

blank.ct: locale.cd
   $(CATCOMP) VERBOSITY=1 DESCRIPTOR locale.cd CTFILE $@

locale.h: locale.cd
   $(CATCOMP) VERBOSITY=1 NOSTRINGS NOARRAY NOBLOCK NOCODE DESCRIPTOR locale.cd CFILE locale.h

$(LOCALE_DIR)/deutsch/$(NAME).catalog: $(LOCALE_DIR)/deutsch/$(NAME).ct
   $(CATCOMP) VERBOSITY=1 DESCRIPTOR locale.cd $< CATALOG $@
#
#####################################################################


#####################################################################
#
# Dependencies
#
constdata$(SUFFIX)o: constdata.c sana2meter.h $(NAME)_rev.h $(NAME).gst
support$(SUFFIX)o: support.c sana2meter.h constdata.h $(NAME).gst
gui$(SUFFIX)o: gui.c sana2meter.h constdata.h $(NAME).gst
sana2meter$(SUFFIX)o: sana2meter.c locale.h sana2meter.h constdata.h $(NAME).gst
#
#####################################################################

