
MODNAME	          = iprefs
VERSION		  = 42
#VERSION_TYPE      = BETA_VERSION
VERSION_TYPE     = RELEASE_VERSION

REMOTE		  = V$(VERSION):src/workbench/c/iprefs

LD_FILE	          = $(MODNAME).ld
LD_STRIP          = $(MODNAME).ld.strip

C_COMPILER        = SC
C_COMPILER_OPTS   = RESOPT DATA=NEAR PARM=REGISTERS UCHAR CONSTLIB\
		    CPU=68020\
		    STREQ STRMER COMMENTNEST DBG=SYMBOL GST=INCLUDE:all.gst\
		    ANSI MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC\
		    OPT OPTPEEP OPTSIZE OPTDEP=3 OPTRDEP=3 OPTSCHED
# the inliner is turned off, otherwise the stack usage for ReadPrefsFile()
# soars to over 3K! This is because of a bug in SAS/C 6.3. If the bug gets
# fixed, it makes sense to turn the inliner back on in order to save some
# bytes

ASSEMBLER         = HX68 -a
ASSEMBLER_OPTS    = -csy -i include: -o

LINKER            = Slink
LINKER_OPTS	  = ADDSYM SC SD MAP $(MODNAME).map HLSXF PLAIN SWIDTH 16
LINKER_OPTS_STRIP = ND

CATCOMP           = CatComp
CATCOMP_OPTS      = SYMBOLS $(MODNAME) NOARRAY NOBLOCK NOSTRINGS NOCODE

C_SOURCES   = iprefs.c eventloop.c pread.c resetwb.c texttable.c sound.c monitors.c backdrop.c

ASM_SOURCES = soundpatch.asm backdroppatch.asm stubs.asm betaalert.asm

CATALOGS    = V:src/workbench/locale/catalogs/c.cd

OBJECTS     = iprefs.o eventloop.o texttable.o resetwb.o pread.o soundpatch.o \
	      sound.o monitors.o backdroppatch.o backdrop.o stubs.o betaalert.o\
	      $(MODNAME)_strings.o

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


##############################################################################
# Build the stripped load file...
#
$(LD_STRIP):	$(LD_FILE)
		$(LINKER) FROM $(LD_FILE) TO $(LD_STRIP) $(LINKER_OPTS_STRIP)


##############################################################################
# Build the 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) DEFINE $(VERSION_TYPE)=1 $*.c

.asm.o:
	$(ASSEMBLER) $*.asm -D $(VERSION_TYPE)=1 $(ASSEMBLER_OPTS) $*.o

.cd.h:
	$(CATCOMP) $*.cd CFILE $(MODNAME)_strings.h OBJFILE $(MODNAME)_strings.o $(CATCOMP_OPTS)


##############################################################################
# All dependencies...
#
$(MODNAME)_strings.h: $(CATALOGS)
iprefs.o: iprefs.c iprefs_rev.h iprefs.h resetwb.h pread.h texttable.h sound.h $(MODNAME)_strings.h
	$(C_COMPILER) $(C_COMPILER_OPTS) DEFINE $(VERSION_TYPE)=1 CODENAME=_NOMERGE $*.c

eventloop.o: eventloop.c eventloop.h iprefs.h
resetwb.o: resetwb.c resetwb.h texttable.h iprefs.h
pread.o: pread.c iprefs.h texttable.h monitors.h
texttable.o: texttable.c texttable.h $(MODNAME)_strings.h
soundpatch.o: soundpatch.asm
sound.o: sound.c sound.h
monitors.o: monitors.c monitors.h
backdroppatch.o: backdroppatch.asm
backdrop.o: backdrop.c backdrop.h
stubs.o: stubs.asm
betaalert.o: betaalert.asm


##############################################################################
# Bump the version...
#
version:
	@BumpRev $(VERSION) $(MODNAME)_rev


##############################################################################
# Delete all object files
#
clean:
	@Delete \#?.o
	@Delete $(LD_FILE) $(LD_STRIP) $(MODNAME).map


##############################################################################
# Release the current build to the server...
#
internal:
	@Delete $(REMOTE)/((\#?.(c|h|asm|i|ld|rev|doc|library))|lmkfile)
	@Protect ((\#?.(c|h|asm|i|ld|rev|doc))|lmkfile|$(LD_STRIP)) +rd quiet
	@Copy \#?.(strip|ld|doc|library) \#?_rev.\#? $(REMOTE)
