
PROJECT=            Scout

VERSION=            37

OPTIMIZE=           opt opttime optsched nooptinline
DEBUG=              debug=line
CFLAGS=             cpu=68020 parm=r streq strmerge nostkchk nocheckabort utillib incdir=objects incdir=netinclude: incdir=/include gst=$(PROJECT).gst idlen=64 ign=104
AFLAGS=             cpu=68020 incdir=include:
LFLAGS=             smallcode smalldata noicons addsym

# $(PROJECT).o _has_ to be the first module !!! (Because we use no
# startup-code)

OBJECTS=startup.o $(PROJECT).o \
   scout_logo.o scout_net.o \
   i64.o \
   objects/fontdisplay_class.o \
   objects/scout_about.o \
   objects/scout_allocations.o \
   objects/scout_arexx.o \
   objects/scout_asm.o \
   objects/scout_assigns.o \
   objects/scout_classes.o \
   objects/scout_classes_detail.o \
   objects/scout_commands.o \
   objects/scout_commodity.o \
   objects/scout_commodity_detail.o \
   objects/scout_customclasses.o \
   objects/scout_devices.o \
   objects/scout_devices_detail.o \
   objects/scout_expansions.o \
   objects/scout_expansions_detail.o \
   objects/scout_extras.o \
   objects/scout_flags.o \
   objects/scout_fonts.o \
   objects/scout_fonts_detail.o \
   objects/scout_functions.o \
   objects/scout_inputhandlers.o \
   objects/scout_interrupts.o \
   objects/scout_interrupts_detail.o \
   objects/scout_libraries.o \
   objects/scout_libraries_detail.o \
   objects/scout_locks.o \
   objects/scout_lowmemory.o \
   objects/scout_main.o \
   objects/scout_memory.o \
   objects/scout_memory_detail.o \
   objects/scout_mount.o \
   objects/scout_mount_detail.o \
   objects/scout_ports.o \
   objects/scout_ports_detail.o \
   objects/scout_parentwindow.o \
   objects/scout_print.o \
   objects/scout_priority.o \
   objects/scout_residents.o \
   objects/scout_residents_detail.o \
   objects/scout_resources.o \
   objects/scout_resources_detail.o \
   objects/scout_screenmode.o \
   objects/scout_screenmode_detail.o \
   objects/scout_semaphores.o \
   objects/scout_signal.o \
   objects/scout_system.o \
   objects/scout_tasks.o \
   objects/scout_tasks_detail.o \
   objects/scout_timer.o \
   objects/scout_vectors.o \
   objects/scout_version.o \
   objects/scout_windows.o \
   objects/scout_windows_detail.o \
   objects/scout_patches.o \
   objects/scout_catalogs.o \
   objects/scout_audiomode.o \
   objects/scout_audiomode_detail.o \
   hexdump.o \
   scout_cat.o \
   SmartReadArgs.o

HEADERS=system_headers.h startup.h $(PROJECT).h \
   scout_logo.h scout_net.h \
   i64.h \
   scout_defs.h scout_tags.h startup_defs.h \
   objects/fontdisplay_class.h \
   objects/scout_about.h \
   objects/scout_allocations.h \
   objects/scout_arexx.h \
   objects/scout_asm.h \
   objects/scout_assigns.h \
   objects/scout_classes.h \
   objects/scout_classes_detail.h \
   objects/scout_commands.h \
   objects/scout_commodity.h \
   objects/scout_commodity_detail.h \
   objects/scout_customclasses.h \
   objects/scout_devices.h \
   objects/scout_devices_detail.h \
   objects/scout_expansions.h \
   objects/scout_expansions_detail.h \
   objects/scout_extras.h \
   objects/scout_flags.h \
   objects/scout_fonts.h \
   objects/scout_fonts_detail.h \
   objects/scout_functions.h \
   objects/scout_inputhandlers.h \
   objects/scout_interrupts.h \
   objects/scout_interrupts_detail.h \
   objects/scout_libraries.h \
   objects/scout_libraries_detail.h \
   objects/scout_locks.h \
   objects/scout_lowmemory.h \
   objects/scout_main.h \
   objects/scout_memory.h \
   objects/scout_memory_detail.h \
   objects/scout_mount.h \
   objects/scout_mount_detail.h \
   objects/scout_ports.h \
   objects/scout_ports_detail.h \
   objects/scout_parentwindow.h \
   objects/scout_print.h \
   objects/scout_priority.h \
   objects/scout_residents.h \
   objects/scout_residents_detail.h \
   objects/scout_resources.h \
   objects/scout_resources_detail.h \
   objects/scout_screenmode.h \
   objects/scout_screenmode_detail.h \
   objects/scout_semaphores.h \
   objects/scout_signal.h \
   objects/scout_system.h \
   objects/scout_tasks.h \
   objects/scout_tasks_detail.h \
   objects/scout_timer.h \
   objects/scout_vectors.h \
   objects/scout_version.h \
   objects/scout_windows.h \
   objects/scout_windows_detail.h \
   objects/scout_patches.h \
   objects/scout_catalogs.h \
   objects/scout_audiomode.h \
   objects/scout_audiomode_detail.h \
   hexdump.h \
   scout_cat.h \
   SmartReadArgs.h

LIBS=               netlib:net.lib lib:sc.lib lib:amiga.lib lib:debug.lib /lib/tblib.lib

all:                $(PROJECT).gst $(PROJECT)

.c.o:
                    sc $(CFLAGS) $(OPTIMIZE) $(DEBUG) $*.c

.asm.o:
                    sc $(AFLAGS) $(DEBUG) $*.asm


$(PROJECT).gst:     $(HEADERS) system_headers.c
                    gst unload $@
                    sc $(CFLAGS) nodebug noobjname noicons nogst makegst=$@ system_headers.c

$(PROJECT):         $(PROJECT).gst $(OBJECTS)
                    slink with <<
                        from $(OBJECTS) \
                        to $@.debug \
                        lib $(LIBS) \
                        $(LFLAGS) \
                        map $@.map,fhx fwidth 32 pwidth 32 swidth 32 width 100
                    <
                    slink $@.debug to $@ noicons nodebug

scout_cat.h:        scout.cd
                    prog:tools/flexcat/flexcat Scout.cd scout_cat.c=tboeckelC_c.sd
                    prog:tools/flexcat/flexcat Scout.cd scout_cat.h=tboeckelC_h.sd
                    #prog:tools/flexcat/flexcat Scout.cd scout_deutsch.ct catalog catalogs/deutsch/scout.catalog

scout_cat.o:        $(GST) scout_cat.h

objects/scout_version.o: objects/scout_version.c Scout_rev.h

objects/scout_customclasses.o: $(GST) $(HEADERS) objects/scout_customclasses.c

objects/scout_about.o: $(GST) $(HEADERS) objects/scout_about.c

objects/scout_version.o: $(GST) $(HEADERS) objects/scout_version.c

clean:
                    -delete \#?.o objects/\#?.o \#?.gst \#?.map $(PROJECT) $(PROJECT).debug quiet

realclean:          clean
                    -delete $(PROJECT).gst quiet

version:
                    bumprev $(VERSION) $(PROJECT)

date:
                    @eval `type $(PROJECT)_rev.rev`-1 >t:$(PROJECT)_rev.rev
                    @copy t:$(PROJECT)_rev.rev $(PROJECT)_rev.rev
                    @delete >nil: t:$(PROJECT)_rev.rev
                    @smake version

install:            $(PROJECT)
                    copy $(PROJECT) Work:Debug/Scout

cvs-tag:
                    cvs -q tag V$(VERSION)_`type $(PROJECT)_rev.rev`

cvs-update:
                    cvs update

doc:
                    @execute <<
                        pushcd help
                        smake
                        popcd
                    <

