#
# Makefile automatically generated by MKMK V6.51 on Jan 11 1994 at 08:59:51
#
# $Id: SMakefile 1.3 1994/09/14 20:47:41 digulla Exp digulla $
#

VERSION = 1.84
VERDATE = `rx "say translate(date(E),'.','/')"`
ROOT	=
SRCDIR	= $(ROOT)Src/
INCDIR	= $(ROOT)Include/
OBJDIR	= $(ROOT)obj_debug/
OBJDIR	= $(ROOT)obj/
DOCDIR	= $(ROOT)docs/
ROOTDIR = $(ROOT)
DESTBINDIR = C:Tools/
DESTDOCDIR = DOC:
LIBS	= # lib /ResTrackLib/restrackr.lib
#	  ^		NULL!
MAKEGUIDE=$(ROOT)Util/CAG/CAG
EXTRACT = $(ROOT)Util/Extract/Extract
TAGS	= $(ROOT)Util/BinUtil/etags -B
PARSER	= $(ROOT)Util/Var/Parser
TOUCH	= $(ROOT)Util/BinUtil/Touch
UNIQ	= RX $(ROOTDIR)Util/Rexx/Uniq
GENDEF	= RX $(ROOTDIR)Util/Rexx/mkDefs

SRCS =	$(SRCDIR)about.c \
	$(SRCDIR)amiga.c \
	$(SRCDIR)block.c \
	$(SRCDIR)clipboard.c \
	$(SRCDIR)cmd.c \
	$(SRCDIR)command.c \
	$(SRCDIR)cursor.c \
	$(SRCDIR)drexx.c \
	$(SRCDIR)edit.c \
	$(SRCDIR)filereq.c \
	$(SRCDIR)globals.c \
	$(SRCDIR)hrexx.c \
	$(SRCDIR)io.c \
	$(SRCDIR)main.c \
	$(SRCDIR)prefs.c \
	$(SRCDIR)redraw.c \
	$(SRCDIR)refs.c \
	$(SRCDIR)search.c \
	$(SRCDIR)subs.c \
	$(SRCDIR)swap.a \
	$(SRCDIR)text.c \
	$(SRCDIR)win.c \
	$(SRCDIR)Key/keyaddes.c \
	$(SRCDIR)Key/keycodes.c \
	$(SRCDIR)Key/keycom.c \
	$(SRCDIR)Key/keycontrol.c \
	$(SRCDIR)Key/keytables.c \
	$(SRCDIR)Menu/menu_dme.c \
	$(SRCDIR)Menu/menucom.c \
	$(SRCDIR)Menu/menucontrol.c \
	$(SRCDIR)Menu/menustrips.c \
	$(SRCDIR)Mod/Alias.c \
	$(SRCDIR)Mod/AppIcon.c \
	$(SRCDIR)Mod/CmdSh.c \
	$(SRCDIR)Mod/GTB.c \
	$(SRCDIR)Mod/Lists.c \
	$(SRCDIR)Mod/Macros.c \
	$(SRCDIR)Mod/Math.c \
	$(SRCDIR)Mod/mem.c \
	$(SRCDIR)Mod/Messages.c \
	$(SRCDIR)Mod/Mikro.c \
	$(SRCDIR)Mod/Request.c \
	$(SRCDIR)Mod/SharedCode.c \
	$(SRCDIR)Mod/Tplter.c \
	$(SRCDIR)Mod/VarAddes.c \
	$(SRCDIR)Mod/VarStack.c \
	$(SRCDIR)Mod/Sec.c \
	$(SRCDIR)Kalle/rep_cmd.c \
	$(SRCDIR)Kalle/replace.c \
	$(ROOTDIR)Lib/src/HL.c  \
	$(ROOTDIR)Lib/src/AVL.c \
	$(ROOTDIR)Lib/src/DLL.c \
	$(ROOTDIR)Lib/src/SLL.c \
	$(SRCDIR)Var/flags.c \
	$(SRCDIR)Var/vars.c \
	$(SRCDIR)Var/varsbases.c \
	$(SRCDIR)Var/rxadd.c \
	$(SRCDIR)Var/spc.c

OBJS =	$(OBJDIR)about.o \
	$(OBJDIR)amiga.o \
	$(OBJDIR)block.o \
	$(OBJDIR)clipboard.o \
	$(OBJDIR)cmd.o \
	$(OBJDIR)command.o \
	$(OBJDIR)cursor.o \
	$(OBJDIR)drexx.o \
	$(OBJDIR)edit.o \
	$(OBJDIR)filereq.o \
	$(OBJDIR)globals.o \
	$(OBJDIR)hrexx.o \
	$(OBJDIR)io.o \
	$(OBJDIR)main.o \
	$(OBJDIR)prefs.o \
	$(OBJDIR)redraw.o \
	$(OBJDIR)refs.o \
	$(OBJDIR)search.o \
	$(OBJDIR)subs.o \
	$(OBJDIR)swap.o \
	$(OBJDIR)text.o \
	$(OBJDIR)win.o \
	$(OBJDIR)keyaddes.o \
	$(OBJDIR)keycodes.o \
	$(OBJDIR)keycom.o \
	$(OBJDIR)keycontrol.o \
	$(OBJDIR)keytables.o \
	$(OBJDIR)menu_dme.o \
	$(OBJDIR)menucom.o \
	$(OBJDIR)menucontrol.o \
	$(OBJDIR)menustrips.o \
	$(OBJDIR)alias.o \
	$(OBJDIR)AppIcon.o \
	$(OBJDIR)CmdSh.o \
	$(OBJDIR)GTB.o \
	$(OBJDIR)Lists.o \
	$(OBJDIR)macros.o \
	$(OBJDIR)math.o \
	$(OBJDIR)mem.o \
	$(OBJDIR)messages.o \
	$(OBJDIR)mikro.o \
	$(OBJDIR)Request.o \
	$(OBJDIR)SharedCode.o \
	$(OBJDIR)Tplter.o \
	$(OBJDIR)Sec.o \
	$(OBJDIR)varaddes.o \
	$(OBJDIR)varstack.o \
	$(OBJDIR)rep_cmd.o \
	$(OBJDIR)replace.o \
	$(OBJDIR)HL.o      \
	$(OBJDIR)AVL.o     \
	$(OBJDIR)DLL.o     \
	$(OBJDIR)SLL.o    \
	$(OBJDIR)flags.o \
	$(OBJDIR)vars.o \
	$(OBJDIR)varsbases.o \
	$(OBJDIR)rxadd.o \
	$(OBJDIR)spc.o
#	 $(OBJDIR)malloc.o



all : XDME

XDME : $(OBJS)
	sc link to XDME $(LIBS) with <<
$(OBJS)
<

stripped : $(OBJS)
	sc link to XDME $(LIBS) stripdebug with <<
$(OBJS)
<



do-debug :
	copy SCOPTIONS.debug SCOPTIONS

do-dist :
	copy SCOPTIONS.dist SCOPTIONS
	sc $(SRCDIR)about.c DEFINE VERSION="$(VERSION)" DEFINE VERDATE="$(VERDATE)"
	smake OBJDIR=obj/ LIBS=

edit-debug :
	copy SCOPTIONS.debug SCOPTIONS
	scopts
	copy SCOPTIONS SCOPTIONS.debug

edit-dist :
	copy SCOPTIONS.dist SCOPTIONS
	scopts
	copy SCOPTIONS SCOPTIONS.dist

$(INCDIR)defs.h : $(INCDIR)all.h $(INCDIR)global.h $(INCDIR)config.h
	$(TOUCH) $(INCDIR)defs.h


$(OBJDIR)clipboard.o:   $(SRCDIR)clipboard.c $(INCDIR)clipboard.h

$(OBJDIR)hrexx.o:       $(SRCDIR)hrexx.c    $(INCDIR)hrexx.h $(INCDIR)rexx.h


$(OBJDIR)about.o:       $(SRCDIR)about.c    $(INCDIR)defs.h $(ROOTDIR)SMakefile
	sc $(SRCDIR)about.c DEFINE VERSION="$(VERSION)" DEFINE VERDATE="$(VERDATE)"

$(OBJDIR)amiga.o:       $(SRCDIR)amiga.c    $(INCDIR)defs.h

$(OBJDIR)block.o:       $(SRCDIR)block.c    $(INCDIR)defs.h $(INCDIR)clipboard.h

$(OBJDIR)cmd.o:         $(SRCDIR)cmd.c      $(INCDIR)defs.h

$(OBJDIR)command.o:     $(SRCDIR)command.c  $(INCDIR)defs.h $(INCDIR)commands.h

$(OBJDIR)cursor.o:      $(SRCDIR)cursor.c   $(INCDIR)defs.h

$(OBJDIR)drexx.o:       $(SRCDIR)drexx.c    $(INCDIR)defs.h $(INCDIR)hrexx.h

$(OBJDIR)edit.o:        $(SRCDIR)edit.c     $(INCDIR)defs.h $(INCDIR)clipboard.h

$(OBJDIR)filereq.o:     $(SRCDIR)filereq.c  $(INCDIR)defs.h

$(OBJDIR)globals.o:     $(SRCDIR)globals.c  $(INCDIR)defs.h

$(OBJDIR)io.o:          $(SRCDIR)io.c       $(INCDIR)defs.h $(INCDIR)rexx.h

$(OBJDIR)line.o:        $(SRCDIR)line.c     $(INCDIR)defs.h

$(OBJDIR)main.o:        $(SRCDIR)main.c     $(INCDIR)defs.h $(INCDIR)gen_sighandlers.h

$(OBJDIR)prefs.o:       $(SRCDIR)prefs.c    $(INCDIR)defs.h

$(OBJDIR)redraw.o:      $(SRCDIR)redraw.c   $(INCDIR)defs.h

$(OBJDIR)refs.o:        $(SRCDIR)refs.c     $(INCDIR)defs.h

$(OBJDIR)search.o:      $(SRCDIR)search.c   $(INCDIR)defs.h

$(OBJDIR)subs.o:        $(SRCDIR)subs.c     $(INCDIR)defs.h

$(OBJDIR)text.o:        $(SRCDIR)text.c     $(INCDIR)defs.h

$(OBJDIR)win.o:         $(SRCDIR)win.c      $(INCDIR)defs.h


$(OBJDIR)keyaddes.o:    $(SRCDIR)Key/keyaddes.c     $(INCDIR)defs.h $(INCDIR)keyhashes.h

$(OBJDIR)keycodes.o:    $(SRCDIR)Key/keycodes.c     $(INCDIR)defs.h $(INCDIR)keyhashes.h

$(OBJDIR)keycom.o:      $(SRCDIR)Key/keycom.c       $(INCDIR)defs.h $(INCDIR)keyhashes.h

$(OBJDIR)keycontrol.o:  $(SRCDIR)Key/keycontrol.c   $(INCDIR)defs.h $(INCDIR)keyhashes.h

$(OBJDIR)keytables.o:   $(SRCDIR)Key/keytables.c    $(INCDIR)defs.h $(INCDIR)keyhashes.h $(INCDIR)defmap.h



$(OBJDIR)menu_dme.o:    $(SRCDIR)Menu/menu_dme.c    $(INCDIR)defs.h $(INCDIR)menubase.h

$(OBJDIR)menucom.o:     $(SRCDIR)Menu/menucom.c     $(INCDIR)defs.h $(INCDIR)menubase.h

$(OBJDIR)menucontrol.o: $(SRCDIR)Menu/menucontrol.c $(INCDIR)defs.h $(INCDIR)menubase.h

$(OBJDIR)menustrips.o:  $(SRCDIR)Menu/menustrips.c  $(INCDIR)defs.h $(INCDIR)menubase.h


$(OBJDIR)flags.o:       $(SRCDIR)Var/flags.c        $(INCDIR)defs.h

$(OBJDIR)rxadd.o:       $(SRCDIR)Var/rxadd.c        $(INCDIR)defs.h

$(OBJDIR)varsbases.o:   $(SRCDIR)Var/varsbases.c    $(INCDIR)defs.h

$(OBJDIR)vars.o:        $(SRCDIR)Var/vars.c         $(INCDIR)defs.h $(INCDIR)gen_vtrees.h

$(OBJDIR)spc.o:         $(SRCDIR)Var/spc.c          $(INCDIR)defs.h $(INCDIR)gen_spc.h $(INCDIR)gen_flags.h
    sc $(SRCDIR)Var/spc.c
    #GST unload include:all.gst


$(OBJDIR)Alias.o:       $(SRCDIR)Mod/Alias.c        $(INCDIR)defs.h

$(OBJDIR)AppIcon.o:     $(SRCDIR)Mod/AppIcon.c      $(INCDIR)defs.h

$(OBJDIR)CmdSh.o:       $(SRCDIR)Mod/CmdSh.c        $(INCDIR)defs.h

$(OBJDIR)GTB.o:         $(SRCDIR)Mod/GTB.c          $(INCDIR)defs.h

$(OBJDIR)Lists.o:       $(SRCDIR)Mod/Lists.c        $(INCDIR)defs.h

$(OBJDIR)Macros.o:      $(SRCDIR)Mod/Macros.c       $(INCDIR)defs.h

$(OBJDIR)Math.o:        $(SRCDIR)Mod/Math.c         $(INCDIR)defs.h

$(OBJDIR)Mem.o:         $(SRCDIR)Mod/Mem.c          $(INCDIR)defs.h

$(OBJDIR)Messages.o:    $(SRCDIR)Mod/Messages.c     $(INCDIR)gen_messages.h

$(OBJDIR)Mikro.o:       $(SRCDIR)Mod/Mikro.c        $(INCDIR)defs.h

$(OBJDIR)Request.o:     $(SRCDIR)Mod/Request.c      $(INCDIR)defs.h

$(OBJDIR)Sec.o:         $(SRCDIR)Mod/Sec.c          $(INCDIR)defs.h

$(OBJDIR)SharedCode.o:  $(SRCDIR)Mod/SharedCode.c   $(INCDIR)defs.h

$(OBJDIR)Tplter.o:      $(SRCDIR)Mod/Tplter.c       $(INCDIR)defs.h

$(OBJDIR)VarAddes.o:    $(SRCDIR)Mod/VarAddes.c     $(INCDIR)defs.h

$(OBJDIR)VarStack.o:    $(SRCDIR)Mod/VarStack.c     $(INCDIR)defs.h


$(OBJDIR)rep_cmd.o:     $(SRCDIR)kalle/rep_cmd.c    $(INCDIR)defs.h

$(OBJDIR)replace.o:     $(SRCDIR)kalle/replace.c    $(INCDIR)defs.h


$(OBJDIR)SLL.o :        $(ROOTDIR)Lib/src/SLL.c

$(OBJDIR)DLL.o :        $(ROOTDIR)Lib/src/DLL.c

#$(OBJDIR)AVL.o:         $(ROOTDIR)Lib/src/AVL.c
$(OBJDIR)AVL.o:         $(ROOTDIR)Lib/BAK/AVL.c

$(OBJDIR)HL.o :         $(ROOTDIR)Lib/src/HL.c

$(OBJDIR)swap.o:        $(SRCDIR)swap.a
	sc  $(SRCDIR)swap.a

##############################
##
##  intermediate files
##
##############################


SRCPAT = $(SRCDIR)\#?.c $(SRCDIR)\#?/\#?.c

protos:
	$(EXTRACT) Prototype $(SRCPAT) > $(INCDIR)prog-protos.h
	# $(EXTRACT) DEFUSERCMD $(SRCPAT) >> $(INCDIR)prog-protos.h

docs: $(DOCDIR)xdme_cmds.guide

$(DOCDIR)xdme_cmds.guide : $(DOCDIR)xdme_cmds_guide_src.head \
			$(DOCDIR)xdme_cmds_guide_src.tail $(SRCS)
	$(EXTRACT) "/**DEFHELP" $(SRCPAT) > $(DOCDIR)xdme_cmds_guide_src.body
	join $(DOCDIR)xdme_cmds_guide_src.head $(DOCDIR)xdme_cmds_guide_src.body \
		$(DOCDIR)xdme_cmds_guide_src.tail as $(DOCDIR)xdme_cmds_guide.src
	$(EXTRACT) "/**DEFLONG" $(SRCPAT) >> $(DOCDIR)xdme_cmds_guide.src
	$(MAKEGUIDE) $(DOCDIR)xdme_cmds_guide.src > $(DOCDIR)xdme_cmds.guide

commands: $(SRCS)
	$(EXTRACT) "DEFUSERCMD" $(SRCPAT) > t:commands.h
	sort t:commands.h to $(INCDIR)commands.h
	-delete t:commands.h quiet

maketags:
	$(TAGS) $(SRCPAT) include/\#?

genflags: $(SRCS)
	$(EXTRACT) "    DEFFLAG" $(SRCPAT) > t:flags.1
	sort  t:flags.1 to t:flags.1
	echo  > $(INCDIR)gen_flags.h "/** MACHINE GENERATED FILE - DO NOT \
	    EDIT! **/*n*n\#define DEFFLAG(date,name,init) unsigned int _  \
	    \#\# name : 1;*n*nstruct genflags {"
	type >> $(INCDIR)gen_flags.h t:flags.1
	echo >> $(INCDIR)gen_flags.h "};*nextern struct genflags genflags;\
	    *n*n\#undef  DEFFLAG*n\#define DEFFLAG(date,name,init)*n"
	rx   >> $(INCDIR)gen_flags.h $(ROOTDIR)Util/Rexx/_MkGenFlags t:flags.1
	-delete t:flags.1 quiet

genmessages: $(SRCS)
	$(EXTRACT) "DEFMESSAGE" $(SRCPAT) > t:gen_messages.1
	sort	t:gen_messages.1 to t:gen_messages.1
	$(UNIQ) t:gen_messages.1 >  $(INCDIR)gen_messages.h
	-delete t:gen_messages.1 quiet

genvtrees: $(SRCS)
	$(EXTRACT) "DEFVARTREE" $(SRCPAT) > t:gen_vtrees.1
	sort	t:gen_vtrees.1 to $(INCDIR)gen_vtrees.h
	-delete t:gen_vtrees.1 quiet

# this is subject of change ...
genuservars: $(INCDIR)gen_spc.h
$(INCDIR)gen_spc.h:     $(SRCDIR)Var/spc.pre
	#$(PARSER) -o $(INCDIR)gen_spc.h -t $(ROOTDIR)Util/Var/SPC.tplt $(SRCDIR)Var/spc.pre
	execute <<
	    stack 10000
	    $(PARSER) $(SRCDIR)Var/spc.pre  -t $(ROOTDIR)Util/Var/SPC.tplt \
		-i SPC_VAR
	    delete    $(INCDIR)gen_spc.h QUIET
	    rename TO $(INCDIR)gen_spc.h       $(ROOTDIR)Util/Var/SPC
<

gendefinitions: $(SRCS)
	$(EXTRACT) "DEFDEFINITION" $(SRCPAT) > t:gen_definitions.1
	$(GENDEF) t:gen_definitions.1 > $(INCDIR)gen_definitions.h
	-delete   t:gen_definitions.1 quiet

gensighandlers: $(SRCS)
	$(EXTRACT) "DEFSIGHANDLER" $(SRCPAT) > t:gen_sighandlers.1
	sort	t:gen_sighandlers.1 to $(INCDIR)gen_sighandlers.h
	-delete t:gen_sighandlers.1 quiet

gensupport: $(SRCS)
	execute <<
	    cd $(SRCDIR)Mod
	    echo `list lformat %s \#?.c`
<

genfiles: genmessages genuservars genflags genvtrees gensighandlers gendefinitions

scan : commands protos maketags docs

dist-bin :
	MakeDist bin $(VERSION)

dist-src :
	MakeDist src $(VERSION)

dist-full : dist.bin dist.src


initial :
	@execute <<
	assign xdme: ""

	stack 20000

	; ---- create binary utils, as far as they are not included
	echo "checking Tools..."
	cd Util/Cag
	if NOT EXISTS cag
	    echo "building CAG ..."
	    sc link to cag cag.c incdir //include incdir //lib/include
	endif
	cd /Extract
	if NOT EXISTS extract
	    echo "building Extracter ..."
	    sc link to extract extract.c
	endif
	cd /CnvConfig
	if NOT EXISTS cnvconfig
	    echo "building ConvertConfig ..."
	    sc link to cnvconfig cnvconfig.c incdir //include incdir //lib/include
	endif
	cd /Var
	if not exists parser
	    echo "building parser..."
	    if NOT exists Obj
		makedir Obj
	    endif
	    smake
	endif
	cd //

	; ---- shall we create Icons ?
	ask "Shall we create the SAS default icons?"
	if WARN
	    copy sc:starter_project/\#? ""
	    rename exe_icon XDME.info
	    ;rename src_icon Src/Mod/GTB.info
	endif

	if NOT exists obj
	    echo "creating obj dir"
	    makedir obj
	endif

	if NOT exists obj_debug
	    echo "creating obj-debug dir"
	    makedir obj_debug
	endif

	if NOT exists Docs/History
	    echo "creating a new history file; sorry I accidently had deleted mine"
	    touch Docs/History
	endif

	; ---- make generated sources as far as they are not included
	smake genfiles
	smake scan

	; ---- done
	echo "*n*n*nThe XDME source tree is set up now, call"
	echo "SMAKE to build the executable*n"
	echo "Sorry if the docs have not been generated,"
	echo "but I have not enough knowledge about them"
<

install :
	@execute <<
	if exists $(DESTBINDIR)XDME
	    echo "Preserving old version of XDME..."
	    copy $(DESTBINDIR)XDME $(DESTBINDIR)XDME.old
	endif
<
	@echo "Installing XDME..."
	@copy XDME $(DESTBINDIR)XDME

install-docs :
	copy docs/xdme_cmds.guide $(DESTDOCDIR)
