aboutsummaryrefslogtreecommitdiffstats
path: root/vms/descrip.mms
diff options
context:
space:
mode:
Diffstat (limited to 'vms/descrip.mms')
-rw-r--r--vms/descrip.mms50
1 files changed, 45 insertions, 5 deletions
diff --git a/vms/descrip.mms b/vms/descrip.mms
index a3abd14b..0357dd2b 100644
--- a/vms/descrip.mms
+++ b/vms/descrip.mms
@@ -16,6 +16,10 @@
# An alternate version which generates some profiling feedback for
# the awk programs it executes. Included with `make all'.
#
+# dgawk.exe :
+# An alternate version which supports debugging.
+# Included with `make all'.
+#
# awkgram.c :
# If you don't have bison but do have VMS POSIX or DEC/Shell,
# change the PARSER and PASERINIT macros to use yacc. If you don't
@@ -25,6 +29,9 @@
# target. If you use bison and it is already defined system-wide,
# comment out the PARSERINIT definition.
#
+# command.c :
+# Similar to awkgram.c; built from command.y with yacc or bison.
+#
# install.help :
# You can make the target 'install.help' to load the VMS help text
# into a help library. Modify the HELPLIB macro if you don't want
@@ -94,6 +101,7 @@ NOOP = continue
# object files
GAWKOBJ = eval.obj,profile.obj
PGAWKOBJ = eval_p.obj,profile_p.obj
+DGAWKOBJ = eval_d.obj,profile.obj,command.obj,debug.obj
AWKOBJ1 = array.obj,awkgram.obj,builtin.obj,dfa.obj,ext.obj,\
field.obj,floatcomp.obj,gawkmisc.obj,getopt.obj,getopt1.obj,io.obj
AWKOBJ2 = main.obj,msg.obj,node.obj,random.obj,re.obj,\
@@ -113,6 +121,8 @@ AWKSRC = array.c,builtin.c,dfa.c,eval.c,eval_p.c,ext.c,field.c,\
msg.c,node.c,profile.c,profile_p.c,random.c,re.c,regcomp.c,\
regex.c,regex_internal.c,regexec.c,replace.c,version.c
+DBGSRC = eval_d.c,debug.c,command.y,cmd.h
+
ALLSRC = $(AWKSRC),awkgram.y,awk.h,custom.h,dfa.h,getopt.h,\
gettext.h,mbsupport.h,protos.h,random.h
@@ -131,7 +141,7 @@ REL=3.1
PATCHLVL=8
# generic target
-all : gawk,pgawk
+all : gawk,pgawk,dgawk
$(NOOP)
# dummy target to allow building "gawk" in addition to explicit "gawk.exe"
@@ -139,14 +149,18 @@ gawk : gawk.exe
$(ECHO) " GAWK "
pgawk : pgawk.exe
$(ECHO) " PGAWK "
+dgawk : dgawk.exe
+ $(ECHO) " DGAWK "
# rules to build gawk
gawk.exe : $(GAWKOBJ) $(AWKOBJS) $(VMSOBJS) gawk.opt
$(LINK) $(LINKFLAGS) gawk.opt/options
-# rules to build pgawk
+# rules to build pgawk and dgawk
pgawk.exe : $(PGAWKOBJ) $(AWKOBJS) $(VMSOBJS) pgawk.opt
$(LINK) $(LINKFLAGS) pgawk.opt/options
+dgawk.exe : $(DGAWKOBJ) $(AWKOBJS) $(VMSOBJS) dgawk.opt
+ $(LINK) $(LINKFLAGS) dgawk.opt/options
gawk.opt : $(MAKEFILE) # create linker options file
open/write opt gawk.opt ! ~ 'cat <<close >gawk.opt'
@@ -176,6 +190,20 @@ pgawk.opt : $(MAKEFILE) # create linker options file
write opt "identification=""V$(REL).$(PATCHLVL)"""
close opt
+dgawk.opt : $(MAKEFILE) # create linker options file
+ open/write opt dgawk.opt
+ write opt "! DGAWK -- GNU awk w/ debugging"
+ @ write opt "$(DGAWKOBJ)"
+ @ write opt "$(AWKOBJ1)"
+ @ write opt "$(AWKOBJ2)"
+ @ write opt "$(VMSOBJS)"
+ @ write opt "psect_attr=environ,noshr !extern [noshare] char **"
+ @ write opt "stack=48 !preallocate more pages (default is 20)"
+ @ write opt "iosegment=128 !ditto (default is 32)"
+ write opt "$(LIBS)"
+ write opt "identification=""V$(REL).$(PATCHLVL)"""
+ close opt
+
vms_misc.obj : $(VMSDIR)vms_misc.c
vms_popen.obj : $(VMSDIR)vms_popen.c
vms_fwrite.obj : $(VMSDIR)vms_fwrite.c
@@ -190,22 +218,33 @@ $(AWKOBJS) : awk.h gettext.h mbsupport.h regex.h dfa.h \
config.h $(VMSDIR)redirect.h
$(GAWKOBJ) : awk.h config.h $(VMSDIR)redirect.h
$(PGAWKOBJ) : awk.h config.h $(VMSDIR)redirect.h
+$(DGAWKOBJ) : awk.h config.h $(VMSDIR)redirect.h
random.obj : random.h
builtin.obj : floatmagic.h random.h
awkgram.obj : awkgram.c awk.h
dfa.obj : dfa.c dfa.h
regex.obj : regex.c regcomp.c regex_internal.c regexec.c regex.h regex_internal.h
+command.obj,debug.obj : cmd.h
# bison or yacc required
awkgram.c : awkgram.y # foo.y :: yacc => y[_]tab.c, bison => foo_tab.c
@- if f$search("ytab.c") .nes."" then delete ytab.c;* !POSIX yacc
@- if f$search("y_tab.c") .nes."" then delete y_tab.c;* !DEC/Shell yacc
- @- if f$search("awk_tab.c").nes."" then delete awk_tab.c;* !bison
+ @- if f$search("awkgram_tab.c").nes."" then delete awkgram_tab.c;* !bison
+ - $(PARSERINIT)
+ $(PARSER) $(YFLAGS) $<
+ @- if f$search("ytab.c") .nes."" then rename/new_vers ytab.c $@
+ @- if f$search("y_tab.c") .nes."" then rename/new_vers y_tab.c $@
+ @- if f$search("awkgram_tab.c").nes."" then rename/new_vers awkgram_tab.c $@
+command.c : command.y
+ @- if f$search("ytab.c") .nes."" then delete ytab.c;*
+ @- if f$search("y_tab.c") .nes."" then delete y_tab.c;*
+ @- if f$search("command_tab.c").nes."" then delete command_tab.c;*
- $(PARSERINIT)
$(PARSER) $(YFLAGS) $<
@- if f$search("ytab.c") .nes."" then rename/new_vers ytab.c $@
@- if f$search("y_tab.c") .nes."" then rename/new_vers y_tab.c $@
- @- if f$search("awk_tab.c").nes."" then rename/new_vers awk_tab.c $@
+ @- if f$search("command_tab.c").nes."" then rename/new_vers command_tab.c $@
config.h : $(VMSDIR)vms-conf.h
copy $< $@
@@ -223,12 +262,13 @@ tidy :
- if f$search("[.*]*.*;-1").nes."" then purge [.*]
clean :
- - delete *.obj;*,gawk.opt;*,pgawk.opt;*
+ - delete *.obj;*,gawk.opt;*,pgawk.opt;*,dgawk.opt;*
spotless : clean tidy
- if f$search("config.h").nes."" then rename config.h config.h-old/New
- if f$search("gawk.exe").nes."" then delete gawk.exe;*
- if f$search("pgawk.exe").nes."" then delete pgawk.exe;*
+ - if f$search("dgawk.exe").nes."" then delete dgawk.exe;*
- if f$search("gawk.dvi").nes."" then delete gawk.dvi;*
- if f$search("[.doc]texindex.exe").nes."" then delete [.doc]texindex.exe;*