OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / make-l2.com
1 $! make-l2.com -- VMS build procedure for libgcc2.
2 $
3 $! Change working directory to the location of this command procedure.
4 $ flnm = f$enviroment("PROCEDURE")      !get current procedure name
5 $ set default 'f$parse(flnm,,,"DEVICE")''f$parse(flnm,,,"DIRECTORY")'
6 $!
7 $! Command file to build libgcc2.olb.  You should only run this once you
8 $! have the current compiler installed, otherwise some of the builtins will
9 $! not be recognized.  Once you have built libgcc2.olb, you can merge this
10 $! with gnu_cc:[000000]gcclib.olb
11 $!
12 $! All of the C source code is assumed to be in libgcc2.c, and a list of the
13 $! modules that we need from there is in libgcc2.list (which is generated
14 $! when vmsconfig.com is run).  The C++ source is found in the [.cp.inc]
15 $! directory and managed via libgcc2-cxx.list.
16 $!
17 $ if f$search("gcc-cc1.exe").eqs.""
18 $ then
19 $    gcc_cc1:=$gnu_cc:[000000]gcc-cc1
20 $    if f$extract(0,1,f$trnlnm("GNU_CC_VERSION")).eqs."1" then goto nocompile
21 $ else
22 $    gcc_cc1:=$sys$disk:[]gcc-cc1
23 $ endif
24 $!
25 $ if f$search("gcc-cpp.exe").eqs.""
26 $ then
27 $    gcc_cpp:=$gnu_cc:[000000]gcc-cpp
28 $    if f$extract(0,1,f$trnlnm("GNU_CC_VERSION")).eqs."1" then goto nocompile
29 $    Version:='f$trnlnm("GNU_CC_VERSION")'
30 $ else
31 $    gcc_cpp:=$sys$disk:[]gcc-cpp
32 $    open ifile$ version.opt
33 $    read ifile$ line
34 $    close ifile$
35 $    Version=line - "ident=""" - """
36 $ endif
37 $!
38 $ if f$search("gcc-cc1plus.exe").eqs.""
39 $ then  gcc_cxx = "$gnu_cc:[000000]gcc-cc1plus"
40 $ else  gcc_cxx = "$sys$disk:[]gcc-cc1plus"
41 $ endif
42 $!
43 $gcc_as:=$gnu_cc:[000000]gcc-as
44 $cpp_file:=sys$scratch:gcc_'f$getjpi(0,"pid")'.cpp
45 $ s_file:=sys$scratch:gcc_'f$getjpi(0,"pid")'.s
46 $!
47 $set symbol/scope=(nolocal,noglobal)
48 $!
49 $lib/create libgcc2.olb
50 $on error then goto c_err
51 $on control_y then goto c_err
52 $
53 $if f$trnlnm("IFILE$").nes."" then  close/noLog ifile$
54 $open ifile$ libgcc2.list
55 $loop:
56 $!
57 $read ifile$ line/end=c_done
58 $i=0
59 $loop1:
60 $flnm=f$element(i," ",line)
61 $i=i+1
62 $if flnm.eqs."" then goto loop
63 $if flnm.eqs." " then goto loop
64 $!
65 $flnm = "L"+flnm
66 $if flnm.eqs."L_exit" then goto loop1
67 $write sys$output "$ gcc/debug/define=""''flnm'"" LIBGCC2.C"
68 $!
69 $objname = flnm
70 $if flnm.eqs."L_builtin_New" then objname = "L_builtin_nnew"
71 $!
72 $! We do this by hand, since the VMS compiler driver does not have a way
73 $! of specifying an alternate location for the compiler executables.
74 $!
75 $ if arch .eqs. "alpha"
76 $ then
77 $   gcc_cpp "-D__IEEE_FLOAT" "-I[]" "-I[.config]" "-I[.ginclude]" "-D''flnm'"  libgcc2.c 'cpp_file'
78 $   gcc_cc1 'cpp_file' -dumpbase 'objname' -
79         -quiet -mgas "-O1" -mfloat-ieee -o 's_file'
80 $ else
81 $   gcc_cpp "-I[]" "-I[.config]" "-I[.ginclude]" "-D''flnm'"  libgcc2.c 'cpp_file'
82 $   gcc_cc1 'cpp_file' -dumpbase 'objname' -
83         -quiet -mgnu -g "-O1" -mvaxc-alignment   -o 's_file'
84 $ endif
85 $ delete/nolog 'cpp_file';
86 $   gcc_as 's_file'  -o 'objname'.OBJ
87 $ if arch .eqs. "vax"
88 $ then
89 $! Assemble again, preserving lowercase symbol names this time.
90 $   gcc_as -h3 's_file'  -o 'objname'-c.OBJ
91 $   library libgcc2.olb 'objname'.obj,'objname'-c.obj
92 $   delete/nolog 'objname'.obj;,'objname'-c.obj;
93 $ else
94 $   library libgcc2.olb 'objname'.obj
95 $   delete/nolog 'objname'.obj;
96 $ endif
97 $ delete/nolog 's_file';
98 $!
99 $!
100 $goto loop1
101 $!
102 $! In case of error or abort, go here (In order to close file).
103 $!
104 $c_err: !'f$verify(0)
105 $close ifile$
106 $ exit %x2c
107 $!
108 $c_done:
109 $close ifile$
110 $
111 $
112 $ EXIT
113 $       !gcc-2.8.0: C++ libgcc2 code disabled since it's not adequately tested
114 $
115 $!
116 $ p1 = p1+" "+p2+" "+p3+" "+p4+" "+p5+" "+p6+" "+p7+" "+p8
117 $ p1 = " " + f$edit(p1,"COMPRESS,TRIM,UPCASE") + " "
118 $! (note: substring locations can only be equal when neither string is present)
119 $ if f$locate(" CC1PLUS ",p1).eq.f$locate(" CXX ",p1) then  goto cxx_done
120 $ if f$search("libgcc2-cxx.list").eqs."" then  goto cxx_done
121 $!
122 $ open/read ifile$ libgcc2-cxx.list
123 $cxx_line_loop:
124 $ read ifile$ line/end=cxx_done
125 $ i = 0
126 $cxx_file_loop:
127 $ flnm = f$element(i,",",line)
128 $ i = i + 1
129 $ if flnm.eqs."" .or. flnm.eqs."," then goto cxx_line_loop
130 $ write sys$output "$ gcc/plus/debug ''flnm'.cc"
131 $ objname = flnm
132 $!
133 $ gcc_cpp -+ "-I[]" "-I[.ginclude]" "-I[.cp.inc]" [.cp]'flnm'.cc 'cpp_file'
134 $ gcc_cxx 'cpp_file' -dumpbase 'objname' -fexceptions -
135         -quiet -mgnu -g "-O1" -mvaxc-alignment   -o 's_file'
136 $ delete/nolog 'cpp_file';
137 $ gcc_as "-vGNU CC  V''Version'" 's_file'  -o 'objname'.OBJ
138 $! Assemble again, preserving lowercase symbol names this time.
139 $ gcc_as "-vGNU CC  V''Version'" -h3 's_file'  -o 'objname'-c.OBJ
140 $ delete/nolog 's_file';
141 $
142 $ library libgcc2.olb 'objname'.obj,'objname'-c.obj
143 $ delete/nolog 'objname'.obj;,'objname'-c.obj;
144 $!
145 $ goto cxx_file_loop
146 $!
147 $cxx_done:
148 $ close ifile$
149 $ exit