##
##	GadTools layout toolkit
##
##	Copyright © 1993-1996 by Olaf `Olsen' Barthel
##		Freely distributable.
##
##	:ts=8
##

.c.o:
	sc $< $(OPTIMIZE) $(CFLAGS) $(GST) cpu=$(CPU)

.c.oo:
	sc $< $(OPTIMIZE) $(CFLAGS) $(GST) cpu=any objname=$>.oo

.a.o:
	asm -D -DCPU_$(CPU) -u $<

VERSION		= 32

OPTIMIZE	= optimize
GST		= gst=gtlayout.gst gstimm

CPU		= 68030
#CPU		= any

DEBUG		= debug=line

#C_UTILITY	= utillib
#L_UTILITY	= define __CXM33=__UCXM33 define __CXD33=__UCXD33 \
#		  define __CXM22=__UCXM22 define __CXD22=__UCXD22

CFLAGS		= streq strmerge nostkchk nover memsize=huge params=r \
		  nooptinlocal opttime define=CPU_$(CPU) $(DEBUG) $(C_UTILITY)
LFLAGS		= sc sd addsym noicons $(L_UTILITY)

LIBS		= lib:amiga.lib lib:sc.lib lib:small.lib

all:		gtlayout.gst gtlayout.library

OBJS		= gtlayout_romtag.o gtlayout_data.o gtlayout_lib.oo \
		  LTP_AddGadgets.o LTP_AddHistory.o LTP_AdjustItemPosition.o \
		  LTP_AdjustMenuPosition.o LTP_Atol.o LTP_BackFillRoutine.o \
		  LTP_BitMap.o LTP_BlinkButton.o LTP_CheckGlyph.o \
		  LTP_Clone.o LTP_ConvertNum.o LTP_CorrectItemList.o \
		  LTP_CreateExtraObject.o LTP_CreateGadgets.o LTP_CreateMenuTagList.o \
		  LTP_CreateMenuTemplate.o LTP_CreateObjectNode.o LTP_DefaultEditRoutine.o \
		  LTP_DefaultHistoryHook.o LTP_Delay.o LTP_DeleteObjectNode.o \
		  LTP_DetermineSize.o LTP_Draw.o LTP_DrawBackFore.o \
		  LTP_DrawBox.o LTP_DrawGauge.o LTP_DrawGroup.o \
		  LTP_DrawIncrementer.o LTP_DrawPalette.o LTP_DrawPicker.o \
		  LTP_DrawPrevNext.o LTP_DrawTapeButton.o LTP_FillMenu.o \
		  LTP_Find.o LTP_FixExtraLabel.o LTP_FracEditRoutine.o \
		  LTP_GetCommandWidth.o LTP_GetDisplayClip.o LTP_GlyphSetup.o \
		  LTP_HandleHistory.o LTP_HexEditRoutine.o LTP_ImageClass.o \
		  LTP_InitIText.o LTP_LayoutGadgets.o LTP_LayoutGroup.o \
		  LTP_LayoutMenu.o LTP_LevelGadget.o LTP_LevelImage.o \
		  LTP_MakeItem.o LTP_MakeMenu.o LTP_Memory.o \
		  LTP_MoveToWindow.o LTP_NewMenu.o LTP_PasswordEditRoutine.o \
		  LTP_PlaceGroups.o LTP_PopupClass.o LTP_PrintBoxLine.o \
		  LTP_PrintLabel.o LTP_RenderArrow.o LTP_RenderCircle.o \
		  LTP_Rescale.o LTP_ResetGroups.o LTP_RPortAttrs.o \
		  LTP_SearchKeys.o LTP_SelectKeys.o LTP_ShrinkMenu.o \
		  LTP_SizeDimensions.o LTP_Spread.o LTP_SPrintf.o \
		  LTP_Storage.o LTP_TabClass.o LT_Activate.o \
		  LT_Build.o LT_CreateHandle.o LT_DeleteHandle.o \
		  LT_DisposeMenu.o LT_FindMenuCommand.o LT_Fixed.o \
		  LT_GetAttributes.o LT_GetCode.o LT_GetMenuItem.o \
		  LT_HandleInput.o LT_IMsg.o LT_InitExit.o \
		  LT_LabelWidth.o LT_LayoutMenus.o LT_LevelWidth.o \
		  LT_LockWindow.o LT_MenuControlTagList.o LT_New.o \
		  LT_NewMenuTagList.o LT_NewMenuTemplate.o LT_PressButton.o \
		  LT_Rebuild.o LT_Refresh.o LT_SetAttributes.o \
		  LT_ShowWindow.o LT_UpdateStrings.o

gtlayout.library:	$(OBJS)
			slink <with <
				from $(OBJS)
				to $@.debug
				lib $(LIBS)
				$(LFLAGS)
			<
			slink from $@.debug to $@ nd noicons
			protect $@ -e

gtlayout_romtag.o:	gtlayout_romtag.a gtlayout.library_rev.i

gtlayout.gst:		gtlayout_preinclude.c gtlayout_includes.h
			gst $@ unload
			sc $(CFLAGS) noobjname makegst=$@ gtlayout_preinclude.c
			gst $@

clean:
			-delete gtlayout.gst \#?.o\#o

autodocs:
			type (gtlayout_lib.c|LT_\#?.c) >t:autodocs
			autodoc -C -I -c t:autodocs >gtlayout.doc
			delete quiet t:autodocs
