home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gawk-2.15.6-src.tgz / tar.out / fsf / gawk / vms / descrip.mms next >
Text File  |  1996-09-28  |  7KB  |  212 lines

  1. # Descrip.MMS -- Makefile for building GNU Awk on VMS with VAXC and MMS.
  2. #
  3. # usage:
  4. #  $ MMS /Description=[.vms]Descrip.MMS gawk
  5. #
  6. # gawk.exe :
  7. #    You'll need to modify this Makefile to use gcc or vaxc v2.x rather
  8. #    than vaxc v3.x.  Change the CFLAGS macro definition (move '#' from
  9. #    beginning of 2nd alternative to beginning of 1st), and also perhaps
  10. #    enable the following ".first" rule and its associated action.  For
  11. #    GNU C, change the LIBS macro definition.
  12. #
  13. # awktab.c :
  14. #    If you don't have bison but do have VMS POSIX or DEC/Shell,
  15. #    change the PARSER and PASERINIT macros to use yacc.  If you don't
  16. #    have either yacc or bison, you'll have to make sure that the
  17. #    distributed version of "awktab.c" has its modification date later
  18. #    than the date of "awk.y", so that MMS won't try to build that
  19. #    target.  If you use bison and it is already defined system-wide,
  20. #    comment out the PARSERINIT definition.
  21. #
  22. # install.help :
  23. #    You can make the target 'install.help' to load the VMS help text
  24. #    into a help library.  Modify the HELPLIB macro if you don't want
  25. #    to put entry into the regular VMS library.  (If you use an alternate
  26. #    help library, it must already exist; this target won't create it.)
  27. #
  28. # gawk.dvi :
  29. #    If you have TeX, you can make the target 'gawk.dvi' to process
  30. #    _The_GAWK_Manual_ from gawk.texi.  You'll need to use a device
  31. #    specific post-processor on gawk.dvi in order to get printable data.
  32. #
  33.  
  34. # location of the VMS-specific files, relative to the 'main' directory
  35. VMSDIR    = [.vms]
  36. MAKEFILE = $(VMSDIR)Descrip.MMS
  37.  
  38. # debugging &c        !'ccflags' is an escape to allow external compile flags
  39. #CCFLAGS = /noOpt/Debug
  40.  
  41. # work within the main directory, even when handling files in [.vms]
  42. #    note: use 2nd variant for either VAX C V2.x or for GNU C
  43. CFLAGS    = /Include=[]/Object=[]/Opt=noInline/Define=("GAWK","HAVE_CONFIG_H") $(CCFLAGS)
  44. #CFLAGS    = /Include=([],$(VMSDIR))/Object=[]/Define=("GAWK","HAVE_CONFIG_H") $(CCFLAGS)
  45.  
  46. # uncomment this for GNU C
  47. #CC    = gcc
  48. # beta VAX/VMS -> Alpha/VMS cross-compiler
  49. #CC    = gemcc/Standard=VAXC/G_Float
  50. # Alpha/VMS
  51. #CC    = cc/Standard=VAXC/G_Float
  52.  
  53. # uncomment these two lines for GNU C _if_ it's not installed system-wide
  54. #.first        !compiler init, needed if there's no system-wide setup
  55. #    set command gnu_cc:[000000]gcc
  56.  
  57. # uncomment these three lines for VAX C V2.x
  58. #.first        !compiler init, find all #include files
  59. #    define/nolog vaxc$library sys$library:,sys$disk:$(VMSDIR)
  60. #    define/nolog c$library [],$(VMSDIR)
  61. #!(it appears that if vaxc$library is defined, then the /Include
  62. #! qualifier is ignored, making a c$library definition essential)
  63.  
  64. # run-time libraries; use the 2nd one for GNU C
  65. LIBS    = sys$share:vaxcrtl.exe/Shareable
  66. #LIBS    = gnu_cc:[000000]gcclib.olb/Library,sys$library:vaxcrtl.olb/Library
  67. #LIBS    =    # DECC$SHR instead of VAXCRTL; for Alpha/VMS (or VMS V6.x?)
  68.  
  69. PARSER    = bison
  70. PARSERINIT = set command gnu_bison:[000000]bison
  71. #PARSER    = yacc
  72. #PARSERINIT = yacc := posix/run/path=posix """/bin/yacc"
  73. #PARSERINIT = yacc := $shell$exe:yacc
  74.  
  75. # this is used for optional target 'install.help'
  76. HELPLIB = sys$help:helplib.hlb
  77. #HELPLIB = sys$help:local.hlb
  78.  
  79. #
  80. ########  nothing below this line should need to be changed  ########
  81. #
  82.  
  83. # ALLOCA
  84. ALLOCA    = alloca.obj
  85.  
  86. # object files
  87. AWKOBJS = main.obj,eval.obj,builtin.obj,msg.obj,iop.obj,io.obj,\
  88.     field.obj,array.obj,node.obj,version.obj,missing.obj,re.obj,\
  89.     getopt.obj,getopt1.obj
  90.  
  91. ALLOBJS = $(AWKOBJS),awktab.obj
  92.  
  93. # GNUOBJS
  94. #    GNU stuff that gawk uses as library routines.
  95. GNUOBJS = regex.obj,dfa.obj,$(ALLOCA)
  96.  
  97. # VMSOBJS
  98. #    VMS specific stuff
  99. VMSCODE = vms_misc.obj,vms_popen.obj,vms_fwrite.obj,vms_args.obj,\
  100.     vms_gawk.obj,vms_cli.obj
  101. VMSCMD    = gawk_cmd.obj            # built from .cld file
  102. VMSOBJS = $(VMSCODE),$(VMSCMD)
  103.  
  104. VMSSRCS = $(VMSDIR)vms_misc.c,$(VMSDIR)vms_popen.c,$(VMSDIR)vms_fwrite.c,\
  105.     $(VMSDIR)vms_args.c,$(VMSDIR)vms_gawk.c,$(VMSDIR)vms_cli.c
  106. VMSHDRS = $(VMSDIR)vms.h,$(VMSDIR)fcntl.h,$(VMSDIR)varargs.h,$(VMSDIR)unixlib.h
  107. VMSOTHR = $(VMSDIR)Descrip.MMS,$(VMSDIR)vmsbuild.com,$(VMSDIR)version.com,\
  108.     $(VMSDIR)gawk.hlp
  109.  
  110. # Release of gawk
  111. REL=2.15
  112. PATCHLVL=6
  113.  
  114. # dummy target to allow building "gawk" in addition to explicit "gawk.exe"
  115. gawk : gawk.exe
  116.     write sys$output " GAWK "
  117.  
  118. # rules to build gawk
  119. gawk.exe : $(ALLOBJS) $(GNUOBJS) $(VMSOBJS) gawk.opt
  120.     $(LINK) $(LINKFLAGS) gawk.opt/options
  121.  
  122. gawk.opt : $(MAKEFILE)            # create linker options file
  123.     open/write opt gawk.opt        ! ~ 'cat <<close >gawk.opt'
  124.     write opt "! GAWK -- Gnu AWK"
  125.       @ write opt "$(ALLOBJS)"
  126.       @ write opt "$(GNUOBJS)"
  127.       @ write opt "$(VMSOBJS)"
  128.       @ write opt "$(LIBS)"
  129.       @ write opt "psect_attr=environ,noshr        !extern [noshare] char **"
  130.       @ write opt "stack=48        !preallocate more pages (default is 20)"
  131.       @ write opt "iosegment=128   !ditto (default is 32)"
  132.     write opt "identification=""V$(REL).$(PATCHLVL)"""
  133.     close opt
  134.  
  135. vms_misc.obj    : $(VMSDIR)vms_misc.c
  136. vms_popen.obj    : $(VMSDIR)vms_popen.c
  137. vms_fwrite.obj    : $(VMSDIR)vms_fwrite.c
  138. vms_args.obj    : $(VMSDIR)vms_args.c
  139. vms_gawk.obj    : $(VMSDIR)vms_gawk.c
  140. vms_cli.obj    : $(VMSDIR)vms_cli.c
  141. $(VMSCODE)    : awk.h config.h $(VMSDIR)vms.h
  142.  
  143. dfa.obj        : awk.h config.h dfa.h
  144. regex.obj    : awk.h config.h regex.h
  145. getopt.obj    : getopt.h
  146. main.obj    : patchlevel.h
  147. awktab.obj    : awk.h awktab.c
  148. $(AWKOBJS)    : awk.h config.h
  149.  
  150. # bison or yacc required
  151. awktab.c    : awk.y        # foo.y :: yacc => y[_]tab.c, bison => foo_tab.c
  152.      @- if f$search("ytab.c")    .nes."" then  delete ytab.c;*     !POSIX yacc
  153.      @- if f$search("y_tab.c")    .nes."" then  delete y_tab.c;*     !DEC/Shell yacc
  154.      @- if f$search("awk_tab.c").nes."" then  delete awk_tab.c;* !bison
  155.       - $(PARSERINIT)
  156.     $(PARSER) $(YFLAGS) $<
  157.      @- if f$search("ytab.c")    .nes."" then  rename/new_vers ytab.c  $@
  158.      @- if f$search("y_tab.c")    .nes."" then  rename/new_vers y_tab.c $@
  159.      @- if f$search("awk_tab.c").nes."" then  rename/new_vers awk_tab.c $@
  160.  
  161. config.h    : [.config]vms-conf.h
  162.     copy $< $@
  163.  
  164. # Alloca - C simulation
  165. alloca.obj    : alloca.c
  166.     $(CC) $(CFLAGS) /define=("STACK_DIRECTION=(-1)","exit=vms_exit") $<
  167.  
  168. $(VMSCMD)    : $(VMSDIR)gawk.cld
  169.     set command $(CLDFLAGS)/object=$@ $<
  170.  
  171. # special target for loading the help text into a VMS help library
  172. install.help    : $(VMS)gawk.hlp
  173.     library/help $(HELPLIB) $< /log
  174.  
  175. # miscellaneous other targets
  176. tidy :
  177.       - if f$search("*.*;-1").nes."" then  purge
  178.       - if f$search("[.*]*.*;-1").nes."" then  purge [.*]
  179.  
  180. clean :
  181.       - delete *.obj;*,gawk.opt;*
  182.  
  183. spotless : clean tidy
  184.       - delete gawk.dvi;*,gawk.exe;*,[.support]texindex.exe;*
  185.  
  186. #
  187. # build gawk.dvi from within the 'support' subdirectory
  188. #
  189. gawk.dvi : [.support]texindex.exe gawk.texi
  190.       @ set default [.support]
  191.       @ write sys$output " Warnings from TeX are expected during the first pass"
  192.     TeX [-]gawk.texi
  193.     mcr []texindex gawk.cp gawk.fn gawk.ky gawk.pg gawk.tp gawk.vr
  194.       @ write sys$output " Second pass"
  195.     TeX [-]gawk.texi
  196.     mcr []texindex gawk.cp gawk.fn gawk.ky gawk.pg gawk.tp gawk.vr
  197.       @ write sys$output " Third (final) pass"
  198.     TeX [-]gawk.texi
  199.      -@ purge
  200.      -@ delete gawk.lis;,.aux;,gawk.%%;,.cps;,.fns;,.kys;,.pgs;,.toc;,.tps;,.vrs;
  201.       @ rename/new_vers gawk.dvi [-]*.*
  202.       @ set default [-]
  203.  
  204. [.support]texindex.exe : [.support]texindex.c
  205.       @ set default [.support]
  206.     $(CC) /noOpt/noList/Define=("lines=tlines") texindex.c
  207.     $(LINK) /noMap texindex.obj,sys$library:vaxcrtl.olb/Lib
  208.      -@ delete texindex.obj;*
  209.       @ set default [-]
  210.  
  211. #eof
  212.