#******************************************************************************
#*
#*  $VER: SMakefile 1.1 (9.11.97)
#*  mpegaudio.datatype 1.1
#*
#*  SAS/C makefile for mpegaudio.datatype
#*
#*  Written 1997 by Roland 'Gizzy' Mainz
#*  Original example source from David N. Junod
#*
#******************************************************************************

MODNAME                = mpegaudio.datatype
VERSION                = 1

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

C_COMPILER             = SC
C_COMPILER_OPTS        = ANSI STRICT INCLUDEDIR=datatypes_library:Development/ PARAMETERS=REGISTER UNSIGNEDCHARS CODE=NEAR DATA=NEAR NOSTACKCHECK NOMULTIPLEINCLUDES STRINGMERGE VERBOSE MEMORYSIZE=HUGE ERRORREXX
C_COMPILER_DEBUG       = DEBUG=LINE IGNORE=165 DEFINE REQUIREDAFF=(AFF_68020|AFF_68881) DEFINE NO_ENCODER
C_COMPILER_OPTIMIZE    = OPTIMIZE OPTIMIZESIZE OPTIMIZERINLINELOCAL

ASSEMBLER              = a68k
ASSEMBLER_OPTS         = -iinclude31: -o

LINKER                 = SLINK
LINKER_OPTS            = ADDSYM SMALLCODE SMALLDATA MAP $(MODNAME).map HLSXF PLAIN SWIDTH 16 VERBOSE
LINKER_OPTS_STRIP      = STRIPDEBUG VERBOSE

C_SOURCES              = classbase.c stackswap.c dispatch.c
ASM_SOURCES            = classinit.asm endcode.asm

OBJECTS                = classinit.o classbase.o stackswap.o dispatch.o endcode.o

STARTUP                =
LIBS                   = dlib:amiga31s.lib SC:lib/sc.lib lib31:debug.lib


############################################################################################################################################################
# Rebuild the project...
#
all: $(LD_STRIP) $(MODNAME).doc


############################################################################################################################################################
# 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) FROM $(STARTUP) $(OBJECTS) TO $(LD_FILE) LIB $(LIBS) $(LINKER_OPTS)


############################################################################################################################################################
# Default rules...
# Disable $(C_COMPILER_OPTIMIZE) during debugging cycle
#
.c.o:
	$(C_COMPILER) $(C_COMPILER_OPTS) $(C_COMPILER_DEBUG) $(C_COMPILER_OPTIMIZE) $*.c

.asm.o:
	$(ASSEMBLER) $*.asm $(ASSEMBLER_OPTS)$*.o


############################################################################################################################################################
# All dependencies...
#
classinit.o:    classinit.asm $(MODNAME)_rev.rev classbase.i
classbase.o:    classbase.c classbase.h
stackswap.o:    stackswap.c classbase.h
dispatch.o:     dispatch.c classdata.h classbase.h

############################################################################################################################################################
# Make protos
#
protos:
	MKProto $(C_SOURCES) TO class_iprotos.h

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


############################################################################################################################################################
# Delete all object files
#
clean:
	-Delete $(OBJECTS)
	-Delete $(LD_FILE) $(LD_STRIP) $(MODNAME).map \#?.BAK


############################################################################################################################################################
# Build autodoc
#
$(MODNAME).doc:    $(C_SOURCES)
	Autodoc -I -C >$(MODNAME).doc $(C_SOURCES)


############################################################################################################################################################
# Install the current build locally
#
install:
	Copy CLONE FROM $(LD_STRIP) TO SYS:Classes/DataTypes/$(MODNAME)
	Avail FLUSH

