CFLAGS = /noopt/debug
# LFLAGS = /debug

CC = cc^(CFLAGS)
LINK = LINK^(LFLAGS)

TWMDIR = sara$sara:[decw.twm]

twm : twm.exe

archive :
	$ zoo := $sara$util:zoo
	$ zoo -move all add_window.c add_window.h cursor.c deftwmrc.c events.c events.h
	$ zoo -move all gc.c gc.h gram.c gram.h iconmgr.c iconmgr.h icons.c icons.h
	$ zoo -move all lex.c list.c list.h menus.c menus.h parse.c parse.h resize.c
	$ zoo -move all resize.h screen.h twm.c twm.h util.c util.h version.c version.h
	$ zoo -move all vmscompat.c changes gram.y imakefile lex.l makefile.bak
	$ zoo -move all makefile.orig readme system.twmrc-org vms.txt

unarchive :
	$ zoo := $sara$util:zoo
	$ zoo -extract all
	
twm.exe : objects library
	$ ^(LINK)/exe=twm gram,lex,deftwmrc,add_window,gc,list,twm, -
		parse,menus,events,resize,util,version,iconmgr, -
		cursor,icons,vmscompat,[-.Xmu]libXmu/lib,sys$input/options
	sys$share:vaxcrtl/share
	sys$share:decw$xlibshr/share

objects :  gram.obj lex.obj deftwmrc.obj add_window.obj gc.obj list.obj twm.obj \
	parse.obj menus.obj events.obj resize.obj util.obj version.obj iconmgr.obj \
	cursor.obj icons.obj vmscompat.obj

library : libXmu

clobber : clean
	$ if f$search("twm.exe") .nes. "" then delete/log twm.exe;*

clean :
	$ if f$search("*.lis") .nes. "" then delete/log *.lis;*
	$ if f$search("*.obj") .nes. "" then delete/log *.obj;*

#install:: system.twmrc
#	$(INSTALL) -c $(INSTDATFLAGS) system.twmrc  $(TWMDIR)

# gram.h gram.c: gram.y
# 	yacc $(YFLAGS) gram.y
# 	$(MV) y.tab.c gram.c
# 	$(MV) y.tab.h gram.h

# clean::
# 	$(RM) y.tab.h y.tab.c lex.yy.c gram.h gram.c lex.c deftwmrc.c

# deftwmrc.c:  system.twmrc
# 	$(RM) $@
# 	echo '/* ' >>$@
# 	echo ' * This file is generated automatically from the default' >>$@
# 	echo ' * twm bindings file system.twmrc by the twm Imakefile.' >>$@
# 	echo ' */' >>$@
# 	echo '' >>$@
# 	echo 'char *defTwmrc[] = {' >>$@
# 	sed -e '/^#/d' -e 's/"/\\"/g' -e 's/^/    "/' -e 's/$$/",/' \
# 		system.twmrc >>$@
# 	echo '    (char *) 0 };' >>$@


gram.obj : gram.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) gram

lex.obj : lex.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) lex

add_window.obj : add_window.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) add_window

gc.obj : gc.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) gc

list.obj : list.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) list

twm.obj : twm.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) twm

parse.obj : parse.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) /define=(SYSTEM_INIT_FILE="""^(TWMDIR)system.twmrc""") parse

menus.obj : menus.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) menus

events.obj : events.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) events

resize.obj : resize.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) resize

util.obj : util.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) util

iconmgr.obj : iconmgr.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) iconmgr

cursor.obj : cursor.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) cursor

icons.obj : icons.c
	$ define/user sys sys$library
	$ define/user x11 decw$include
	$ ^(CC) icons

version.obj : version.c
	$ ^(CC) version

deftwmrc.obj : deftwmrc.c
	$ ^(CC) deftwmrc

vmscompat.obj : vmscompat.c
	$ ^(CC) vmscompat

libXmu :
	$ set def [-.Xmu]
	$ make
