#
#
#
# SAS/C SMakefile for RSys1.4gmd
#
#	- for SAS/C 6.5x  by Gary Duncan 
#
LFLAGS =  noicons quiet

#
# activate SF below for debug
#
##SF = debug = sf
SF

CC =  sc
LN =  slink 
AS =  asm

#
GST = gst
#

#
# Object File dest dirs 
#
OBJ_C = O_C/
OBJ_ASM = O_ASM/
#
#  Source File dirs
#
SRC_C = C/
SRC_ASM = Asm/
#

PROTO = protos

CFLAGS = \
 gst=$(GST) data=far ObjectName=$(OBJ_C) noicons novers mccons $(SF)
 
#
PROG =  Rsys 
#
PR =  gst=$(GST) novers genprotos  mccons  noicons
#
INCPR =  Proto/
INC =  Inc/
#
OBJS = $(C_OBJS) $(ASM_OBJS)
#
C_INCS =  RSys.h  $(INC)RSysPre.h $(INC)RSysEnum.h typedefs.h

#
# C objs
#
C_OBJS =  \
$(OBJ_C)Iconify.o \
$(OBJ_C)Init.o \
$(OBJ_C)Action.o \
$(OBJ_C)Broker.o \
$(OBJ_C)CheckOffsets.o \
$(OBJ_C)Clip.o \
$(OBJ_C)CRC.o \
$(OBJ_C)Crypt.o \
$(OBJ_C)Displays.o \
$(OBJ_C)Doslists.o \
$(OBJ_C)Error.o \
$(OBJ_C)Extern.o \
$(OBJ_C)ExecLists.o \
$(OBJ_C)FindFile.o \
$(OBJ_C)Flush.o \
$(OBJ_C)FormatDisk.o \
$(OBJ_C)Filetype.o  \
$(OBJ_C)GfxIntuiLists.o \
$(OBJ_C)GfxCtrl.o \
$(OBJ_C)Global.o \
$(OBJ_C)HandlerList.o \
$(OBJ_C)Help.o  \
$(OBJ_C)Hunks.o \
$(OBJ_C)InitData.o \
$(OBJ_C)IntuiCtrl.o \
$(OBJ_C)List.o \
$(OBJ_C)Main.o  \
$(OBJ_C)Modify.o \
$(OBJ_C)Monitor.o \
$(OBJ_C)PreferenceLists.o \
$(OBJ_C)rsys.o \
$(OBJ_C)SaveWindow.o \
$(OBJ_C)Search.o \
$(OBJ_C)ShowFont.o \
$(OBJ_C)SummaryLists.o \
$(OBJ_C)SignalTrap.o \
$(OBJ_C)SpecialList.o \
$(OBJ_C)TextFormatter.o \
$(OBJ_C)TreeHunks.o  \
$(OBJ_C)Utils.o 
#
# ASM objs
#
ASM_OBJS =  \
$(OBJ_ASM)RSysIdents.o \
$(OBJ_ASM)RSysTrap.o
#
# ASM-dependencies
#
$(OBJ_ASM)RSysIdents.o	: $(SRC_ASM)RSysIdents.asm 
$(OBJ_ASM)RSysSprintf.o	: $(SRC_ASM)RSysSprintf.asm 
$(OBJ_ASM)RSysTrap.o	: $(SRC_ASM)RSysTrap.asm
#
# C-dependencies
#
$(OBJ_C)Global.o	: $(SRC_C)Global.c	$(C_INCS)
$(OBJ_C)Help.o		: $(SRC_C)Help.c
$(OBJ_C)rsys.o		: $(SRC_C)rsys.c	$(C_INCS)
$(OBJ_C)Action.o	: $(SRC_C)Action.c
$(OBJ_C)Broker.o	: $(SRC_C)Broker.c
$(OBJ_C)CheckOffsets.o	: $(SRC_C)CheckOffsets.c
$(OBJ_C)Clip.o		: $(SRC_C)Clip.c
$(OBJ_C)CRC.o		: $(SRC_C)CRC.c
$(OBJ_C)Crypt.o		: $(SRC_C)Crypt.c
$(OBJ_C)Displays.o	: $(SRC_C)Displays.c
$(OBJ_C)Doslists.o	: $(SRC_C)Doslists.c
$(OBJ_C)Error.o		: $(SRC_C)Error.c
$(OBJ_C)ExecLists.o	: $(SRC_C)ExecLists.c
$(OBJ_C)FindFile.o	: $(SRC_C)FindFile.c
$(OBJ_C)Flush.o		: $(SRC_C)Flush.c
$(OBJ_C)FormatDisk.o	: $(SRC_C)FormatDisk.c
$(OBJ_C)GfxCtrl.o	: $(SRC_C)GfxCtrl.c
$(OBJ_C)Extern.o	: $(SRC_C)Extern.c
$(OBJ_C)GfxIntuiLists.o	: $(SRC_C)GfxIntuiLists.c
$(OBJ_C)HandlerList.o	: $(SRC_C)HandlerList.c
$(OBJ_C)Hunks.o		: $(SRC_C)Hunks.c
$(OBJ_C)Iconify.o	: $(SRC_C)Iconify.c
$(OBJ_C)Init.o		: $(SRC_C)Init.c
$(OBJ_C)InitData.o	: $(SRC_C)InitData.c
$(OBJ_C)IntuiCtrl.o	: $(SRC_C)IntuiCtrl.c
$(OBJ_C)List.o		: $(SRC_C)List.c
$(OBJ_C)Main.o		: $(SRC_C)Main.c	
$(OBJ_C)Modify.o	: $(SRC_C)Modify.c
$(OBJ_C)Monitor.o	: $(SRC_C)Monitor.c
$(OBJ_C)PreferenceLists.o:	 $(SRC_C)PreferenceLists.c
$(OBJ_C)SaveWindow.o	: $(SRC_C)SaveWindow.c
$(OBJ_C)Search.o	: $(SRC_C)Search.c
$(OBJ_C)ShowFont.o	: $(SRC_C)ShowFont.c
$(OBJ_C)TextFormatter.o	: $(SRC_C)TextFormatter.c
$(OBJ_C)TreeHunks.o	: $(SRC_C)TreeHunks.c
$(OBJ_C)SignalTrap.o	: $(SRC_C)SignalTrap.c
$(OBJ_C)SpecialList.o	: $(SRC_C)SpecialList.c
$(OBJ_C)SummaryLists.o	: $(SRC_C)SummaryLists.c
$(OBJ_C)Filetype.o	: $(SRC_C)Filetype.c
$(OBJ_C)Utils.o		: $(SRC_C)Utils.c


all:	clean  clean_protos $(GST) protos $(PROG)
 
clean:
	-delete $(OBJ_C)\#?.o  >nil:
	-delete $(OBJ_ASM)\#?.o >nil:

clean_protos:
	-delete $(INCPR)\#?.h  >nil:

.asm.o:
	$(AS) -iinclude: -o$(OBJ_ASM) $*.asm 

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

$(PROG):  $(GST) $(ASM_OBJS) $(C_OBJS) link 

#-------------------------------------------------------------------


link:
       slink with <<
	FROM lib:c.o
	FROM $(C_OBJS)
	FROM $(ASM_OBJS)
	TO $(PROG) 
	LIB  lib:sc.lib  lib:amiga.lib
	noicons quiet batch
<

#-------------------------------------------------------------------

gst:	
	sc noobjname mgst=$(GST) $(SRC_C)global.c noicons novers
	@Filenote $(GST) NOBACKUP
 
indent: 
	indent -gnu $(SRC_C)Action.c
	indent -gnu $(SRC_C)Broker.c
	indent -gnu $(SRC_C)CheckOffsets.c
	indent -gnu $(SRC_C)Clip.c
	indent -gnu $(SRC_C)CRC.c
	indent -gnu $(SRC_C)Crypt.c
	indent -gnu $(SRC_C)Displays.c
	indent -gnu $(SRC_C)Doslists.c
	indent -gnu $(SRC_C)Error.c
	indent -gnu $(SRC_C)ExecLists.c
	indent -gnu $(SRC_C)Extern.c
	indent -gnu $(SRC_C)Filetype.c
	indent -gnu $(SRC_C)FindFile.c
	indent -gnu $(SRC_C)Flush.c
	indent -gnu $(SRC_C)FormatDisk.c
	indent -gnu $(SRC_C)GfxCtrl.c
	indent -gnu $(SRC_C)GfxIntuiLists.c
	indent -gnu $(SRC_C)Global.c
	indent -gnu $(SRC_C)HandlerList.c
	indent -gnu $(SRC_C)Help.c
	indent -gnu $(SRC_C)Hunks.c
	indent -gnu $(SRC_C)Iconify.c
	indent -gnu $(SRC_C)Init.c
	indent -gnu $(SRC_C)InitData.c
	indent -gnu $(SRC_C)IntuiCtrl.c
	indent -gnu $(SRC_C)List.c
	indent -gnu $(SRC_C)Main.c
	indent -gnu $(SRC_C)Modify.c
	indent -gnu $(SRC_C)Monitor.c
	indent -gnu $(SRC_C)PreferenceLists.c
	indent -gnu $(SRC_C)rsys.c
	indent -gnu $(SRC_C)SaveWindow.c
	indent -gnu $(SRC_C)Search.c
	indent -gnu $(SRC_C)ShowFont.c
	indent -gnu $(SRC_C)SignalTrap.c
	indent -gnu $(SRC_C)SpecialList.c
	indent -gnu $(SRC_C)SummaryLists.c
	indent -gnu $(SRC_C)TextFormatter.c
	indent -gnu $(SRC_C)TreeHunks.c
	indent -gnu $(SRC_C)Utils.c

#
# proto generation stuff
#

proto_Global	: 
	sc $(PR) GenProtoFile=$(INCPR)Global_protos.h  $(SRC_C)Global.c

proto_rsys	: 
	sc $(PR) GenProtoFile=$(INCPR)rsys_protos.h  $(SRC_C)rsys.c

proto_ExecLists	: 
	sc $(PR) GenProtoFile=$(INCPR)ExecLists_protos.h  $(SRC_C)ExecLists.c

proto_Iconify	: 
	sc $(PR) GenProtoFile=$(INCPR)Iconify_protos.h  $(SRC_C)Iconify.c

proto_InitData	: 
	sc $(PR) GenProtoFile=$(INCPR)InitData_protos.h  $(SRC_C)InitData.c

proto_Help	: 
	sc $(PR) GenProtoFile=$(INCPR)Help_protos.h  $(SRC_C)Help.c

proto_SaveWindow	: 
	sc $(PR) GenProtoFile=$(INCPR)SaveWindow_protos.h  $(SRC_C)SaveWindow.c

proto_Crypt	: 
	sc $(PR) GenProtoFile=$(INCPR)Crypt_protos.h  $(SRC_C)Crypt.c

proto_FindFile	: 
	sc $(PR) GenProtoFile=$(INCPR)FindFile_protos.h  $(SRC_C)FindFile.c

proto_FormatDisk	: 
	sc $(PR) GenProtoFile=$(INCPR)FormatDisk_protos.h  $(SRC_C)FormatDisk.c

proto_Broker	: 
	sc $(PR) GenProtoFile=$(INCPR)Broker_protos.h  $(SRC_C)Broker.c

proto_Doslists	: 
	sc $(PR) GenProtoFile=$(INCPR)Doslists_protos.h  $(SRC_C)Doslists.c

proto_SignalTrap	: 
	sc $(PR) GenProtoFile=$(INCPR)SignalTrap_protos.h  $(SRC_C)SignalTrap.c

proto_SpecialList	: 
	sc $(PR) GenProtoFile=$(INCPR)SpecialList_protos.h  $(SRC_C)SpecialList.c

proto_Action	: 
	sc $(PR) GenProtoFile=$(INCPR)Action_protos.h  $(SRC_C)Action.c

proto_PreferenceLists	: 
	sc $(PR) GenProtoFile=$(INCPR)PreferenceLists_protos.h  $(SRC_C)PreferenceLists.c

proto_CheckOffsets	: 
	sc $(PR) GenProtoFile=$(INCPR)CheckOffsets_protos.h  $(SRC_C)CheckOffsets.c

proto_Clip	: 
	sc $(PR) GenProtoFile=$(INCPR)Clip_protos.h  $(SRC_C)Clip.c

proto_CRC	: 
	sc $(PR) GenProtoFile=$(INCPR)CRC_protos.h  $(SRC_C)CRC.c

proto_Displays	: 
	sc $(PR) GenProtoFile=$(INCPR)Displays_protos.h  $(SRC_C)Displays.c

proto_Error	: 
	sc $(PR) GenProtoFile=$(INCPR)Error_protos.h  $(SRC_C)Error.c

proto_Extern	: 
	sc $(PR) GenProtoFile=$(INCPR)Extern_protos.h  $(SRC_C)Extern.c

proto_Filetype	: 
	sc $(PR) GenProtoFile=$(INCPR)Filetype_protos.h  $(SRC_C)Filetype.c

proto_Flush	: 
	sc $(PR) GenProtoFile=$(INCPR)Flush_protos.h  $(SRC_C)Flush.c

proto_GfxCtrl	: 
	sc $(PR) GenProtoFile=$(INCPR)GfxCtrl_protos.h  $(SRC_C)GfxCtrl.c

proto_GfxIntuiLists	: 
	sc $(PR) GenProtoFile=$(INCPR)GfxIntuiLists_protos.h  $(SRC_C)GfxIntuiLists.c

proto_HandlerList	: 
	sc $(PR) GenProtoFile=$(INCPR)HandlerList_protos.h  $(SRC_C)HandlerList.c

proto_Hunks	: 
	sc $(PR) GenProtoFile=$(INCPR)Hunks_protos.h  $(SRC_C)Hunks.c

proto_IntuiCtrl	: 
	sc $(PR) GenProtoFile=$(INCPR)IntuiCtrl_protos.h  $(SRC_C)IntuiCtrl.c

proto_List	: 
	sc $(PR) GenProtoFile=$(INCPR)List_protos.h  $(SRC_C)List.c

proto_Main	: 
	sc $(PR) GenProtoFile=$(INCPR)Main_protos.h  $(SRC_C)Main.c

proto_Modify	: 
	sc $(PR) GenProtoFile=$(INCPR)Modify_protos.h  $(SRC_C)Modify.c

proto_Monitor	: 
	sc $(PR) GenProtoFile=$(INCPR)Monitor_protos.h  $(SRC_C)Monitor.c

proto_Search	: 
	sc $(PR) GenProtoFile=$(INCPR)Search_protos.h  $(SRC_C)Search.c

proto_ShowFont	: 
	sc $(PR) GenProtoFile=$(INCPR)ShowFont_protos.h  $(SRC_C)ShowFont.c

proto_SummaryLists	: 
	sc $(PR) GenProtoFile=$(INCPR)SummaryLists_protos.h  $(SRC_C)SummaryLists.c

proto_TextFormatter	: 
	sc $(PR) GenProtoFile=$(INCPR)TextFormatter_protos.h  $(SRC_C)TextFormatter.c

proto_TreeHunks	: 
	sc $(PR) GenProtoFile=$(INCPR)TreeHunks_protos.h  $(SRC_C)TreeHunks.c

proto_Utils	: 
	sc $(PR) GenProtoFile=$(INCPR)Utils_protos.h  $(SRC_C)Utils.c

proto_Init	: 
	sc $(PR) GenProtoFile=$(INCPR)Init_protos.h  $(SRC_C)Init.c

protos:  proto_Global	\
	 proto_rsys	\
	 proto_ExecLists	\
	 proto_Iconify	\
	 proto_InitData	\
	 proto_Help	\
	 proto_SaveWindow	\
	 proto_Crypt	\
	 proto_FindFile	\
	 proto_FormatDisk	\
	 proto_Hunks	\
	 proto_CRC	\
	 proto_Action	\
	 proto_Broker	\
	 proto_Doslists	\
	 proto_SignalTrap	\
	 proto_SpecialList	\
	 proto_PreferenceLists	\
	 proto_CheckOffsets	\
	 proto_Clip	\
	 proto_Displays	\
	 proto_Error	\
	 proto_Extern	\
	 proto_Filetype	\
	 proto_Flush	\
	 proto_GfxCtrl	\
	 proto_GfxIntuiLists	\
	 proto_HandlerList	\
	 proto_Hunks	\
	 proto_Utils	\
	 proto_IntuiCtrl	\
	 proto_List	\
	 proto_Main	\
	 proto_Modify	\
	 proto_Monitor	\
	 proto_Search	\
	 proto_ShowFont	\
	 proto_SummaryLists	\
	 proto_TextFormatter	\
	 proto_TreeHunks	\
	 proto_Init


