|
|
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: $!
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).
13: $!
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
46: $!
47: $compile:
48: $lib/create libgcc2.olb
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: $! Assemble again, preserving lowercase symbol names this time.
77: $ gcc_as "-vGNU CC V''Version'" -h3 's_file' -o 'objname'-c.OBJ
78: $ delete/nolog 's_file';
79: $!
80: $ library libgcc2.olb 'objname'.obj,'objname'-c.obj
81: $ delete/nolog 'objname'.obj;,'objname'-c.obj;
82: $!
83: $goto loop1
84: $!
85: $goto loop
86: $!
87: $! In case of error or abort, go here (In order to close file).
88: $!
89: $c_err: !'f$verify(0)
90: $close ifile$
91: $ exit %x2c
92: $!
93: $c_done:
94: $close ifile$
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.