84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
|
$! Set the def dir to proper place for use in batch. Works for interactive too.
|
||
|
$flnm = f$enviroment("PROCEDURE") ! get current procedure name
|
||
|
$set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")'
|
||
|
$!
|
||
|
$! This command procedure compiles and links BISON for VMS.
|
||
|
$! BISON has been tested with VAXC version 2.3 and VMS version 4.5
|
||
|
$! and on VMS 4.5 with GCC 1.12.
|
||
|
$!
|
||
|
$! Bj|rn Larsen blarsen@ifi.uio.no
|
||
|
$! With some contributions by Gabor Karsai,
|
||
|
$! KARSAIG1%VUENGVAX.BITNET@jade.berkeley.edu
|
||
|
$! All merged and cleaned by RMS.
|
||
|
$!
|
||
|
$! Adapted for both VAX-11 "C" and VMS/GCC compilation by
|
||
|
$! David L. Kashtan kashtan.iu.ai.sri.com
|
||
|
$!
|
||
|
$! First we try to sense which C compiler we have available. Sensing logic
|
||
|
$! borrowed from Emacs.
|
||
|
$!
|
||
|
$set noon !do not bomb if an error occurs.
|
||
|
$assign nla0: sys$output
|
||
|
$assign nla0: sys$error !so we do not get an error message about this.
|
||
|
$cc nla0:compiler_check.c
|
||
|
$if $status.eq.%x38090 then goto try_gcc
|
||
|
$ CC :== CC
|
||
|
$ cc_options:="/NOLIST/define=(""index=strchr"",""rindex=strrchr"")"
|
||
|
$ extra_linker_files:="VMSHLP,"
|
||
|
$goto have_compiler
|
||
|
$!
|
||
|
$try_gcc:
|
||
|
$gcc nla0:compiler_check.c
|
||
|
$if $status.eq.%x38090 then goto whoops
|
||
|
$ CC :== GCC
|
||
|
$ cc_options:="/DEBUG"
|
||
|
$ extra_linker_files:="GNU_CC:[000000]GCCLIB/LIB,"
|
||
|
$goto have_compiler
|
||
|
$!
|
||
|
$whoops:
|
||
|
$write sys$output "You must have a C compiler to build BISON. Sorry."
|
||
|
$deassign sys$output
|
||
|
$deassign sys$error
|
||
|
$exit %x38090
|
||
|
$!
|
||
|
$!
|
||
|
$have_compiler:
|
||
|
$deassign sys$output
|
||
|
$deassign sys$error
|
||
|
$set on
|
||
|
$if f$search("compiler_check.obj").nes."" then dele/nolog compiler_check.obj;
|
||
|
$write sys$output "Building BISON with the ''cc' compiler."
|
||
|
$!
|
||
|
$! Do the compilation (compiler type is all set up)
|
||
|
$!
|
||
|
$ Compile:
|
||
|
$ if "''p1'" .eqs. "LINK" then goto Link
|
||
|
$ 'CC' 'cc_options' files.c
|
||
|
$ 'CC' 'cc_options' LR0.C
|
||
|
$ 'CC' 'cc_options' ALLOCATE.C
|
||
|
$ 'CC' 'cc_options' CLOSURE.C
|
||
|
$ 'CC' 'cc_options' CONFLICTS.C
|
||
|
$ 'CC' 'cc_options' DERIVES.C
|
||
|
$ 'CC' 'cc_options' VMSGETARGS.C
|
||
|
$ 'CC' 'cc_options' GRAM.C
|
||
|
$ 'CC' 'cc_options' LALR.C
|
||
|
$ 'CC' 'cc_options' LEX.C
|
||
|
$ 'CC' 'cc_options' MAIN.C
|
||
|
$ 'CC' 'cc_options' NULLABLE.C
|
||
|
$ 'CC' 'cc_options' OUTPUT.C
|
||
|
$ 'CC' 'cc_options' PRINT.C
|
||
|
$ 'CC' 'cc_options' READER.C
|
||
|
$ 'CC' 'cc_options' REDUCE.C
|
||
|
$ 'CC' 'cc_options' SYMTAB.C
|
||
|
$ 'CC' 'cc_options' WARSHALL.C
|
||
|
$ 'CC' 'cc_options' VERSION.C
|
||
|
$ if "''CC'" .eqs. "CC" then macro vmshlp.mar
|
||
|
$ Link:
|
||
|
$ link/exec=bison main,LR0,allocate,closure,conflicts,derives,files,-
|
||
|
vmsgetargs,gram,lalr,lex,nullable,output,print,reader,reduce,symtab,warshall,-
|
||
|
version,'extra_linker_files'sys$library:vaxcrtl/lib
|
||
|
$!
|
||
|
$! Generate bison.hlp (for online help).
|
||
|
$!
|
||
|
$runoff bison.rnh
|