MODNAME=			appshell
VERSION=			37

REMOTE=				APSH:

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

C_COMPILER=			LC
C_COMPILER_OPTS=	-b0 -O -cfis -ms -me -v -d4
C_DEBUG=			-DDBUG

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

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

C_SOURCES=		apsh_main.c apsh_lib.c apsh_msghandle.c apsh_dispatch.c \
			apsh_object.c apsh_projmng.c apsh_functable.c \
			apsh_clonesipc.c apsh_misc.c apsh_hyper.c apsh_version.c \
			apsh_stdfuncs.c wbarg.c snapshot.c \
			animtools.c apsh_arexx.c apsh_wb.c \
			apsh_stdidcmp.c apsh_pref.c apsh_dos.c apsh_idcmp.c \
			apsh_sipc.c apsh_tool.c apsh_winnode.c appshellc.c \
			apsh_locale.c

ASM_SOURCES=		appshella.asm sprintf.asm string.asm findnamei.asm \
			hookface.asm rexxvars.asm dispatchregs.asm

OBJECTS=		apsh_main.o apsh_lib.o apsh_msghandle.o apsh_dispatch.o \
			apsh_object.o apsh_projmng.o apsh_functable.o \
			apsh_clonesipc.o apsh_misc.o apsh_hyper.o appshellc.o \
			apsh_version.o sprintf.o \
			string.o findnamei.o apsh_stdfuncs.o wbarg.o snapshot.o \
			animtools.o dispatchregs.o hookface.o apsh_arexx.o \
			apsh_wb.o apsh_stdidcmp.o apsh_pref.o apsh_dos.o \
			apsh_idcmp.o apsh_sipc.o apsh_tool.o apsh_winnode.o \
			rexxvars.o appshella.o apsh_locale.o

#
#STARTUP=		appshella.o
#

LIBS=			LIB:debug.lib LIB:amiga.lib LIB:lc.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 $(OBJECTS) TO $(LD_FILE) LIB $(LIBS) $(LINKER_OPTS)
<

##############################################################################
# Default rules...
#
.c.o:
	$(C_COMPILER) $(C_DEBUG) $(C_COMPILER_OPTS) $*.c

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


##############################################################################
# All dependencies...
#


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


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


##############################################################################
# Build autodoc
#
$(MODNAME).doc:	autodocs.asm
		@Autodoc >$(MODNAME).doc autodocs.asm



##############################################################################
# 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)


##############################################################################
# Cross-load the new version into the system
#
xload:
	@copy $(LD_STRIP) SCRATCH:LIBS/
	@flush
	@setclock load
	@version $(LD_STRIP)
	@bumprev $(VERSION) $(MODNAME)_rev
	@Touch appshella.asm

##############################################################################
# Generate all internal prototypes
#
mkproto:
	$(C_COMPILER) -pi $*.c
