
ObjectFiles	=		\
			o.AddSubMenu	\
			o.Extend	\
			o.FontMenu	\
			o.FullDispos	\
			o.GetFlags	\
			o.GetText	\
			o.MakeIndrct	\
			o.MakeWrite	\
			o.NewMenu	\
			o.PopUp	\
			o.PopUpAuto	\
			o.RemItem	\
			o.ReviseWdth	\
			o.SetFlags	\
			o.SetText	\
			o.Show	\
			o.Warn	\
			o.FontMenu3	\


LibName		=	Menu



# Template makefile to make all .o files
# and the SDLS Stubs file for DeskLib
# sublibraries.
# Julian Smith 16 Mar 1995.


# The macro $(ObjectFiles) should be set at the 
# start of this file, to be a space-separated
# list of object files.
# This is done by 'Makatic'.


# The macro $(LibName) should also be set at the 
# start of this file, to be the name of the 
# DeskLib sublibrary.
# This is done by 'Makatic'.

# Compiler and linker flags, These can be anything. 
# All flags required by Straylight (eg CC -zM and
# Link -rmf) are included in the macros $(CC) and
# $(LINK).
#
CCFlags		=	-fahi $(CCExtra) -depend !Depend -throwback -D_DeskLib_$(LibName) -I,C:
ASMFlags	=	-Stamp -NoCache -CloseExec -Quit $(ASMExtra)


# Macros for commands, including the Straylight
# tool 'cdll'. Note that DRLink doesn't seem to
# work with the SDLS.
#
CC		=	cc -c -zM -d_DLL -JC:DLLLib.,:mem $(CCFlags)
ASM		=	ObjAsm $(ASMFlags)
CDLL		=	cdll
LINK		=	link
AS		=	as -dde -throwback


# filename of DLL Stubs aof file. This is linked with client apps.
# 
DLL_Stubs	=	Stubs


# Filenames of intermediate files needed to make $(DLL_Lib) and $(DLL_Stubs).
#
# DLL_Def:		Standard definition file as per SDLS docs.
# DLL_OtherStubsSource	Assembler source to be partially linked into
#			the final stubs file. This will force linking
#			in of stubs from any other DLLs used by this
#			library when a client application is built.
# DLL_PlainStubs	The vanilla stubs file created by SDLS's cdll.
# DLL_OtherStubsObject	Assembled from DLL_OtherStubsSource. This
#			simply imports __DeskLib_SDLS_Stubs_<libname>'s
#			for all DeskLib DLLs used by this library, and
#			exports __DeskLib_SDLS_Stubs_<thislibname>.
#
DLL_Def			=	^.DLLDef
DLL_OtherStubsSource	=	^.OtherStubs

DLL_PlainStubs		=	PlainStubs
DLL_OtherStubsObject	=	OSObj

# -------------------------------------------------------
# Everything below here should probably not be changed...
# -------------------------------------------------------



# Now all the rules...


# Here's the two things we want to make...
#
All:	$(DLL_Stubs) $(ObjectFiles)

$(DLL_Stubs):	$(DLL_PlainStubs) $(DLL_OtherStubsObject)
	$(LINK) -aof -o $@ $(DLL_PlainStubs) $(DLL_OtherStubsObject)

$(DLL_PlainStubs):	$(DLL_Def)
	$(CDLL) -def $(DLL_Def) -stub $(DLL_PlainStubs)


#$(DLL_OtherStubsObject):	$(DLL_OtherStubsSource)
#	$(AS) -o $(DLL_OtherStubsObject) $(DLL_OtherStubsSource)

$(DLL_OtherStubsObject):	$(DLL_OtherStubsSource)
	$(ASM) $(ASMFlags) -from $(DLL_OtherStubsSource) -to $(DLL_OtherStubsObject) 


$(DLL_Def):	
	| Warning: No DLL definition file exists.
	| Creating a default DLL definition file: $(DLL_Def)
	| This will have to be altered by hand.
	$(CDLL) -def $(DLL_Def) -obj $(ObjectFiles)



# Rule for compiling C source code for a Straylight dynamically-linked library.

VPATH = @.^

.SUFFIXES:	.o .c .s

.c.o:
	$(CC) -o $@ $<

.s.o:
	$(ASM) $(ASMFlags) -from $< -to $@



# Dynamic dependencies:
o.AddSubMenu:	^.c.AddSubMenu
o.AddSubMenu:	DeskLib:h.Wimp
o.AddSubMenu:	DeskLib:h.Core
o.AddSubMenu:	C:h.stddef
o.AddSubMenu:	C:DLLLib.h.dll
o.AddSubMenu:	C:h.kernel
o.AddSubMenu:	DeskLib:h.Menu
o.AddSubMenu:	DeskLib:h.Event
o.Extend:	^.c.Extend
o.Extend:	C:h.stdlib
o.Extend:	DeskLib:h.Error
o.Extend:	DeskLib:h.Core
o.Extend:	C:h.stddef
o.Extend:	C:DLLLib.h.dll
o.Extend:	C:h.kernel
o.Extend:	DeskLib:h.Screen
o.Extend:	DeskLib:h.Wimp
o.Extend:	DeskLib:h.Wimp
o.Extend:	DeskLib:h.Menu
o.Extend:	DeskLib:h.Event
o.Extend:	^.h.MenuDefs
o.FontMenu:	^.c.FontMenu
o.FontMenu:	C:h.string
o.FontMenu:	C:h.stdio
o.FontMenu:	DeskLib:h.Wimp
o.FontMenu:	DeskLib:h.Core
o.FontMenu:	C:h.stddef
o.FontMenu:	C:DLLLib.h.dll
o.FontMenu:	C:h.kernel
o.FontMenu:	DeskLib:h.Menu
o.FontMenu:	DeskLib:h.Event
o.FontMenu:	DeskLib:h.SWI
o.FullDispos:	^.c.FullDispos
o.FullDispos:	C:h.stdlib
o.FullDispos:	DeskLib:h.Menu
o.FullDispos:	DeskLib:h.Core
o.FullDispos:	C:h.stddef
o.FullDispos:	C:DLLLib.h.dll
o.FullDispos:	C:h.kernel
o.FullDispos:	DeskLib:h.Wimp
o.FullDispos:	DeskLib:h.Event
o.GetFlags:	^.c.GetFlags
o.GetFlags:	DeskLib:h.Wimp
o.GetFlags:	DeskLib:h.Core
o.GetFlags:	C:h.stddef
o.GetFlags:	C:DLLLib.h.dll
o.GetFlags:	C:h.kernel
o.GetFlags:	DeskLib:h.Menu
o.GetFlags:	DeskLib:h.Event
o.GetText:	^.c.GetText
o.GetText:	C:h.string
o.GetText:	C:h.stdlib
o.GetText:	DeskLib:h.Wimp
o.GetText:	DeskLib:h.Core
o.GetText:	C:h.stddef
o.GetText:	C:DLLLib.h.dll
o.GetText:	C:h.kernel
o.GetText:	DeskLib:h.Menu
o.GetText:	DeskLib:h.Event
o.MakeIndrct:	^.c.MakeIndrct
o.MakeIndrct:	DeskLib:h.Wimp
o.MakeIndrct:	DeskLib:h.Core
o.MakeIndrct:	C:h.stddef
o.MakeIndrct:	C:DLLLib.h.dll
o.MakeIndrct:	C:h.kernel
o.MakeIndrct:	DeskLib:h.Menu
o.MakeIndrct:	DeskLib:h.Event
o.MakeWrite:	^.c.MakeWrite
o.MakeWrite:	DeskLib:h.Core
o.MakeWrite:	C:h.stddef
o.MakeWrite:	C:DLLLib.h.dll
o.MakeWrite:	C:h.kernel
o.MakeWrite:	DeskLib:h.Wimp
o.MakeWrite:	DeskLib:h.Menu
o.MakeWrite:	DeskLib:h.Event
o.NewMenu:	^.c.NewMenu
o.NewMenu:	C:h.stdlib
o.NewMenu:	C:h.string
o.NewMenu:	DeskLib:h.Core
o.NewMenu:	C:h.stddef
o.NewMenu:	C:DLLLib.h.dll
o.NewMenu:	C:h.kernel
o.NewMenu:	DeskLib:h.Error
o.NewMenu:	DeskLib:h.Event
o.NewMenu:	DeskLib:h.Wimp
o.NewMenu:	DeskLib:h.Screen
o.NewMenu:	DeskLib:h.Wimp
o.NewMenu:	DeskLib:h.Menu
o.NewMenu:	^.h.MenuDefs
o.PopUp:	^.c.PopUp
o.PopUp:	DeskLib:h.Menu
o.PopUp:	DeskLib:h.Core
o.PopUp:	C:h.stddef
o.PopUp:	C:DLLLib.h.dll
o.PopUp:	C:h.kernel
o.PopUp:	DeskLib:h.Wimp
o.PopUp:	DeskLib:h.Event
o.PopUp:	DeskLib:h.WimpSWIs
o.PopUp:	DeskLib:h.Coord
o.PopUpAuto:	^.c.PopUpAuto
o.PopUpAuto:	DeskLib:h.Menu
o.PopUpAuto:	DeskLib:h.Core
o.PopUpAuto:	C:h.stddef
o.PopUpAuto:	C:DLLLib.h.dll
o.PopUpAuto:	C:h.kernel
o.PopUpAuto:	DeskLib:h.Wimp
o.PopUpAuto:	DeskLib:h.Event
o.PopUpAuto:	DeskLib:h.WimpSWIs
o.PopUpAuto:	DeskLib:h.Event
o.RemItem:	^.c.RemItem
o.RemItem:	DeskLib:h.Wimp
o.RemItem:	DeskLib:h.Core
o.RemItem:	C:h.stddef
o.RemItem:	C:DLLLib.h.dll
o.RemItem:	C:h.kernel
o.RemItem:	DeskLib:h.Menu
o.RemItem:	DeskLib:h.Event
o.ReviseWdth:	^.c.ReviseWdth
o.ReviseWdth:	DeskLib:h.Wimp
o.ReviseWdth:	DeskLib:h.Core
o.ReviseWdth:	C:h.stddef
o.ReviseWdth:	C:DLLLib.h.dll
o.ReviseWdth:	C:h.kernel
o.ReviseWdth:	DeskLib:h.Menu
o.ReviseWdth:	DeskLib:h.Event
o.ReviseWdth:	C:h.string
o.SetFlags:	^.c.SetFlags
o.SetFlags:	DeskLib:h.Wimp
o.SetFlags:	DeskLib:h.Core
o.SetFlags:	C:h.stddef
o.SetFlags:	C:DLLLib.h.dll
o.SetFlags:	C:h.kernel
o.SetFlags:	DeskLib:h.Menu
o.SetFlags:	DeskLib:h.Event
o.SetText:	^.c.SetText
o.SetText:	C:h.string
o.SetText:	C:h.stdlib
o.SetText:	DeskLib:h.Wimp
o.SetText:	DeskLib:h.Core
o.SetText:	C:h.stddef
o.SetText:	C:DLLLib.h.dll
o.SetText:	C:h.kernel
o.SetText:	DeskLib:h.Menu
o.SetText:	DeskLib:h.Event
o.Show:	^.c.Show
o.Show:	DeskLib:h.Wimp
o.Show:	DeskLib:h.Core
o.Show:	C:h.stddef
o.Show:	C:DLLLib.h.dll
o.Show:	C:h.kernel
o.Show:	DeskLib:h.WimpSWIs
o.Show:	DeskLib:h.Menu
o.Show:	DeskLib:h.Event
o.Warn:	^.c.Warn
o.Warn:	DeskLib:h.Wimp
o.Warn:	DeskLib:h.Core
o.Warn:	C:h.stddef
o.Warn:	C:DLLLib.h.dll
o.Warn:	C:h.kernel
o.Warn:	DeskLib:h.Event
o.Warn:	DeskLib:h.EventMsg
o.Warn:	DeskLib:h.Menu
