
MODNAME	          = bootmenu
VERSION		  = 40

REMOTE		  = V$(VERSION):src/kickstart/bootmenu

LD_FILE	          = $(MODNAME).ld$(EXTENSION)
MAP_FILE          = $(MODNAME).map$(EXTENSION)

C_COMPILER        = SC
C_COMPILER_OPTS   = RESOPT DATA=FARONLY PARM=REGISTERS UCHAR CONSTLIB\
		    STREQ STRMER COMMENTNEST DBG=SYMBOL\
		    ANSI MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC\
		    OPT OPTPEEP OPTINLOCAL OPTSIZE OPTDEP=3 OPTRDEP=3

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

LINKER            = Slink
LINKER_OPTS	  = ADDSYM SC SD MAP $(MAP_FILE) HLSXF PLAIN SWIDTH 16

C_SOURCES   = bootmenu.c

ASM_SOURCES = bootmenutag.asm syschecktag.asm unlinkromtag.asm endcode.asm

OBJECTS     = bootmenutag.o syschecktag$(TYPE).o bootmenu$(TYPE).o unlinkromtag.o \
              endcode.o

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


##############################################################################
#
# This compiles all different versions of boot menu
#
# $(TYPE)      = The type of the file
# $(MACHINE)   = The machine name definition.
# $(EXTENSION) = The type extension of the file.
ALL:
	smake -s TYPE=       MACHINE=MACHINE_A2000 EXTENSION=      $(LD_FILE)
	smake -s TYPE=a600   MACHINE=MACHINE_A600  EXTENSION=.a600 $(LD_FILE).a600
	smake -s TYPE=cdgs   MACHINE=MACHINE_CDGS  EXTENSION=.cdgs $(LD_FILE).cdgs


##############################################################################
# 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=$(MACHINE)=1 OBJNAME=$*$(TYPE).o $*.c

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


##############################################################################
# All dependencies...
#
bootmenutag.o: bootmenutag.asm bootmenu_rev.rev
syschecktag$(TYPE).o: syschecktag.asm
bootmenu$(TYPE).o: bootmenu.c
unlinkromtag.o: unlinkromtag.asm
endcode.o: endcode.asm


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


##############################################################################
# Delete all object files
#
clean:
	@Delete (\#?.o|\#?.o.\#?|$(MODNAME).doc|$(MODNAME).ld\#?|$(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) +r quiet
	@copy \#?.(strip|ld|doc|library)\#? \#?_rev.\#? $(REMOTE)
