|
|
1.1 root 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: $! Command file to build libgcc2.olb. You should only run this once you
6: $! have the current compiler installed, otherwise some of the builtins will
7: $! not be recognized. Once you have built libgcc2.olb, you can merge this
8: $! with gnu_cc:[000000]gcclib.olb
9: $!
1.1.1.3 ! root 10: $! All of the source code is assumed to be in libgcc2.c, and a list of the
! 11: $! modules that we need from there is in libgcc2.list (which is generated
! 12: $! when config-gcc.com is run).
1.1.1.2 root 13: $!
1.1.1.3 ! root 14: $if f$search("gcc-cc1.exe").eqs.""
! 15: $ then
! 16: $ gcc_cc1:=$gnu_cc:[000000]gcc-cc1
! 17: $ if f$extract(0,1,f$trnlnm("GNU_CC_VERSION")).eqs."1" then goto nocompile
! 18: $ else
! 19: $ gcc_cc1:=$sys$disk:[]gcc-cc1
! 20: $ endif
! 21: $!
! 22: $if f$search("gcc-cpp.exe").eqs.""
! 23: $ then
! 24: $ gcc_cpp:=$gnu_cc:[000000]gcc-cpp
! 25: $ if f$extract(0,1,f$trnlnm("GNU_CC_VERSION")).eqs."1" then goto nocompile
! 26: $ Version:='f$trnlnm("GNU_CC_VERSION")'
! 27: $ else
! 28: $ gcc_cpp:=$sys$disk:[]gcc-cpp
! 29: $ open ifile$ version.opt
! 30: $ read ifile$ line
! 31: $ close ifile$
! 32: $ Version=line-"ident="""-"""
! 33: $ endif
! 34: $!
! 35: $gcc_as:=$gnu_cc:[000000]gcc-as
! 36: $cpp_file:=sys$scratch:gcc_'f$getjpi(0,"pid")'.cpp
! 37: $s_file:=sys$scratch:gcc_'f$getjpi(0,"pid")'.s
! 38: $!
! 39: $set symbol/scope=(nolocal,noglobal)
! 40: $!
! 41: $goto compile
! 42: $!
! 43: $nocompile:
! 44: $write sys$error "You must have gcc version 2 in order to build libgcc2."
! 45: $exit 0
1.1.1.2 root 46: $!
47: $compile:
1.1 root 48: $lib/create libgcc2.olb
1.1.1.3 ! root 49: $on error then goto c_err
! 50: $on control_y then goto c_err
! 51: $open ifile$ libgcc2.list
! 52: $loop: read ifile$ line/end=c_done
! 53: $!
! 54: $i=0
! 55: $loop1:
! 56: $flnm=f$element(i," ",line)
! 57: $i=i+1
! 58: $if flnm.eqs."" then goto loop
! 59: $if flnm.eqs." " then goto loop
! 60: $!
! 61: $flnm = "L"+flnm
! 62: $if flnm.eqs."L_exit" then goto loop1
! 63: $write sys$output "$ gcc/debug/define=''flnm' LIBGCC2.C"
! 64: $!
! 65: $objname = flnm
! 66: $if flnm.eqs."L_builtin_New" then objname = "L_builtin_nnew"
! 67: $!
! 68: $! We do this by hand, since the VMS compiler driver does not have a way
! 69: $! of specifying an alternate location for the compiler executables.
! 70: $!
! 71: $ gcc_cpp "-I[]" "-I[.CONFIG]" "-D''flnm'" LIBGCC2.C 'cpp_file'
! 72: $ gcc_cc1 'cpp_file' -dumpbase 'objname' -
! 73: -quiet -mgnu -g "-O1" -mvaxc-alignment -o 's_file'
! 74: $ delete/nolog 'cpp_file';
! 75: $ gcc_as "-vGNU CC V''Version'" 's_file' -o 'objname'.OBJ
! 76: $ delete/nolog 's_file';
! 77: $!
1.1 root 78: $lib libgcc2.olb 'objname'.obj
79: $del 'objname'.obj;/nolog
1.1.1.3 ! root 80: $!
! 81: $goto loop1
! 82: $!
! 83: $goto loop
! 84: $!
! 85: $! In case of error or abort, go here (In order to close file).
! 86: $!
! 87: $c_err: !'f$verify(0)
! 88: $close ifile$
! 89: $ exit %x2c
! 90: $!
! 91: $c_done:
! 92: $close ifile$
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.