build.com 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. $! Set the def dir to proper place for use in batch. Works for interactive too.
  2. $flnm = f$enviroment("PROCEDURE") ! get current procedure name
  3. $set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")'
  4. $!
  5. $! This command procedure compiles and links BISON for VMS.
  6. $! BISON has been tested with VAXC version 2.3 and VMS version 4.5
  7. $! and on VMS 4.5 with GCC 1.12.
  8. $!
  9. $! Bj|rn Larsen blarsen@ifi.uio.no
  10. $! With some contributions by Gabor Karsai,
  11. $! KARSAIG1%VUENGVAX.BITNET@jade.berkeley.edu
  12. $! All merged and cleaned by RMS.
  13. $!
  14. $! Adapted for both VAX-11 "C" and VMS/GCC compilation by
  15. $! David L. Kashtan kashtan.iu.ai.sri.com
  16. $!
  17. $! First we try to sense which C compiler we have available. Sensing logic
  18. $! borrowed from Emacs.
  19. $!
  20. $set noon !do not bomb if an error occurs.
  21. $assign nla0: sys$output
  22. $assign nla0: sys$error !so we do not get an error message about this.
  23. $cc nla0:compiler_check.c
  24. $if $status.eq.%x38090 then goto try_gcc
  25. $ CC :== CC
  26. $ cc_options:="/NOLIST/define=(""index=strchr"",""rindex=strrchr"")"
  27. $ extra_linker_files:="VMSHLP,"
  28. $goto have_compiler
  29. $!
  30. $try_gcc:
  31. $gcc nla0:compiler_check.c
  32. $if $status.eq.%x38090 then goto whoops
  33. $ CC :== GCC
  34. $ cc_options:="/DEBUG"
  35. $ extra_linker_files:="GNU_CC:[000000]GCCLIB/LIB,"
  36. $goto have_compiler
  37. $!
  38. $whoops:
  39. $write sys$output "You must have a C compiler to build BISON. Sorry."
  40. $deassign sys$output
  41. $deassign sys$error
  42. $exit %x38090
  43. $!
  44. $!
  45. $have_compiler:
  46. $deassign sys$output
  47. $deassign sys$error
  48. $set on
  49. $if f$search("compiler_check.obj").nes."" then dele/nolog compiler_check.obj;
  50. $write sys$output "Building BISON with the ''cc' compiler."
  51. $!
  52. $! Do the compilation (compiler type is all set up)
  53. $!
  54. $ Compile:
  55. $ if "''p1'" .eqs. "LINK" then goto Link
  56. $ 'CC' 'cc_options' files.c
  57. $ 'CC' 'cc_options' LR0.C
  58. $ 'CC' 'cc_options' ALLOCATE.C
  59. $ 'CC' 'cc_options' CLOSURE.C
  60. $ 'CC' 'cc_options' CONFLICTS.C
  61. $ 'CC' 'cc_options' DERIVES.C
  62. $ 'CC' 'cc_options' VMSGETARGS.C
  63. $ 'CC' 'cc_options' GRAM.C
  64. $ 'CC' 'cc_options' LALR.C
  65. $ 'CC' 'cc_options' LEX.C
  66. $ 'CC' 'cc_options' MAIN.C
  67. $ 'CC' 'cc_options' NULLABLE.C
  68. $ 'CC' 'cc_options' OUTPUT.C
  69. $ 'CC' 'cc_options' PRINT.C
  70. $ 'CC' 'cc_options' READER.C
  71. $ 'CC' 'cc_options' REDUCE.C
  72. $ 'CC' 'cc_options' SYMTAB.C
  73. $ 'CC' 'cc_options' WARSHALL.C
  74. $ 'CC' 'cc_options' VERSION.C
  75. $ if "''CC'" .eqs. "CC" then macro vmshlp.mar
  76. $ Link:
  77. $ link/exec=bison main,LR0,allocate,closure,conflicts,derives,files,-
  78. vmsgetargs,gram,lalr,lex,nullable,output,print,reader,reduce,symtab,warshall,-
  79. version,'extra_linker_files'sys$library:vaxcrtl/lib
  80. $!
  81. $! Generate bison.hlp (for online help).
  82. $!
  83. $runoff bison.rnh