MODNAME=		intuition
VERSION=		42

REMOTE=			V$(VERSION):src/kickstart/libs/intuition

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

C_COMPILER=		SC
C_COMPILER_OPTS=	RESOPT CODE=FAR DATA=FARONLY UCHAR CONSTLIB LIBCODE \
			STREQ STRMER COMMENTNEST DEBUG=LINE \
			MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC \
			OPT OPTPEEP OPTINLOCAL OPTSIZE OPTDEP=3 OPTRDEP=3 \
			NOWVRET IGNORE 161 IGNORE 100

C_COMPILER_OPTS=	RESOPT CODE=FAR DATA=FARONLY UCHAR CONSTLIB LIBCODE \
			STREQ STRMER COMMENTNEST DEBUG=LINE \
			MEMSIZE=HUGE NOSTKCHK NOICONS NOVERSION NOMINC \
			OPT OPTPEEP OPTINLOCAL OPTSIZE OPTDEP=3 OPTRDEP=3

ASSEMBLER=		hx68 FROM
ASSEMBLER_OPTS=		DEBUG ADDSYM INCDIR INCLUDE: TO

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

C_SOURCES=		activate.c alert.c autodocs.c bhooks.c buttongclass.c \
			classes.c coercion.c dclip.c drawgadgets.c ezreq.c fillrectclass.c \
			fonts.c format.c frameiclass.c frbuttonclass.c gadclass.c gadgets.c \
			genv.c ggclass.c hitgadgets.c icclass.c idcmp.c iequeue.c ih.c \
			ihfront.c ihooks.c ilock.c imageclass.c images.c init.c iprefs.c \
			isdefault.c ism.c isupp2.c isupport.c itexticlass.c layout.c menu.c \
			misc.c modclass.c mouse.c newlook.c phooks.c pointer.c pools.c \
			prefs.c prop.c propgadclass.c pubclasses.c pubscreen.c rect.c \
			requester.c rootclass.c scale.c screens.c scsupp.c sdmrtimeout.c \
			sgadget.c shooks.c sidlewindow.c sinput.c size.c smenu.c snowindow.c \
			srequester.c sscreendrag.c strgadclass.c strings.c sverify.c \
			swsizedrag.c thing.c timing.c varargs.c vectorclass.c view.c \
			wbench.c windows.c wtags.c zoom.c

ASM_SOURCES=		iwork.asm intuitionface.asm \
			downcode.asm intuileap.asm lockstub.asm \
			mousebuttons.asm abs.asm hookface.asm aformat.asm \
			sysreqstack.asm xsysidata.asm classface.asm

OBJECTS=		iwork.o intuitionface.o \
			abs.o activate.o aformat.o alert.o autodocs.o bhooks.o \
			buttongclass.o classes.o classface.o coercion.o dclip.o downcode.o \
			drawgadgets.o ezreq.o fillrectclass.o fonts.o format.o frameiclass.o \
			frbuttonclass.o gadclass.o gadgets.o genv.o ggclass.o hitgadgets.o \
			hookface.o icclass.o idcmp.o iequeue.o ih.o ihfront.o \
			ihooks.o ilock.o imageclass.o images.o init.o intuileap.o \
			iprefs.o isdefault.o ism.o isupp2.o isupport.o itexticlass.o \
			layout.o lockstub.o menu.o misc.o modclass.o mouse.o \
			mousebuttons.o newlook.o phooks.o pointer.o pools.o prefs.o \
			prop.o propgadclass.o pubclasses.o pubscreen.o rect.o requester.o \
			rootclass.o scale.o screens.o scsupp.o sdmrtimeout.o sgadget.o \
			shooks.o sidlewindow.o sinput.o size.o smenu.o snowindow.o \
			srequester.o sscreendrag.o strgadclass.o strings.o sverify.o swsizedrag.o \
			sysreqstack.o thing.o timing.o varargs.o vectorclass.o view.o \
			wbench.o windows.o wtags.o xsysidata.o zoom.o

STARTUP=
LIBS=			idebug.lib LIB:rom.lib LIB:sc.lib LIB:debug.lib endcode.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) $*.c

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


##############################################################################
# All dependencies...
#
#buttongclass.o:	buttongclass.c classes.h classusr.h
#fillrectclass.o:	fillrectclass.c classes.h classusr.h
#frameiclass.o:		frameiclass.c classes.h classusr.h
#frbuttonclass.o:	frbuttonclass.c classes.h classusr.h
#gadclass.o:		gadclass.c classes.h classusr.h
#ggclass.o:		ggclass.c classes.h classusr.h
#icclass.o:		icclass.c classes.h classusr.h
#imageclass.o:		imageclass.c classes.h classusr.h
#itexticlass.o:		itexticlass.c classes.h classusr.h
#modclass.o:		modclass.c classes.h classusr.h
#propgadclass.o:	propgadclass.c classes.h classusr.h
#rootclass.o:		rootclass.c classes.h classusr.h
#strgadclass.o:		strgadclass.c classes.h classusr.h
#vectorclass.o:		vectorclass.c classes.h classusr.h
#xsysiclass.o:		xsysiclass.c  classes.h classusr.h

##############################################################################
# Make protos
#
protos:
		mkproto $(C_SOURCES) to $(MODNAME)_iprotos.h


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


##############################################################################
# Delete all object files
#
clean:
		-Delete \#?.o \#?.tmp \#?.bak \#?.map
	        -Delete $(LD_FILE)


##############################################################################
# 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)) +r quiet
		-copy \#?.(strip|ld|doc|library) \#?_rev.\#? $(REMOTE)
#		-COPY $(MODNAME)_lib.h V$(VERSION):include/libraries/$(MODNAME).h
#		-COPY $(MODNAME)_lib.i V$(VERSION):include/libraries/$(MODNAME).i
#		-COPY $(MODNAME)_protos.h V$(VERSION):include/clib/$(MODNAME)_protos.h
#		-COPY $(MODNAME)_lib.sfd V$(VERSION):lib/sfd
#		-COPY $(MODNAME).doc V$(VERSION):doc


##############################################################################
# Install locally
#
install:
		-copy $(LD_STRIP) LIBS:$(MODNAME).library
		-flushlibs
