Commit | Line | Data |
---|---|---|
252b5132 | 1 | $! |
11d73275 | 2 | $! This file configures the bfd library for use with openVMS. |
252b5132 RH |
3 | $! |
4 | $! We do not use the configure script, since we do not have /bin/sh | |
5 | $! to execute it. | |
6 | $! | |
7 | $! Written by Klaus K"ampf (kkaempf@rmi.de) | |
11d73275 | 8 | $! Rewritten by Tristan Gingold (gingold@adacore.com) |
252b5132 | 9 | $! |
82704155 | 10 | $! Copyright (C) 2012-2019 Free Software Foundation, Inc. |
5bf135a7 NC |
11 | $! |
12 | $! This file is free software; you can redistribute it and/or modify | |
13 | $! it under the terms of the GNU General Public License as published by | |
14 | $! the Free Software Foundation; either version 3 of the License, or | |
15 | $! (at your option) any later version. | |
1b786873 | 16 | $! |
5bf135a7 NC |
17 | $! This program is distributed in the hope that it will be useful, |
18 | $! but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | $! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | $! GNU General Public License for more details. | |
1b786873 | 21 | $! |
5bf135a7 NC |
22 | $! You should have received a copy of the GNU General Public License |
23 | $! along with this program; see the file COPYING3. If not see | |
24 | $! <http://www.gnu.org/licenses/>. | |
25 | $! | |
11d73275 TG |
26 | $ arch=F$GETSYI("ARCH_NAME") |
27 | $ arch=F$EDIT(arch,"LOWERCASE") | |
28 | $if arch .eqs. "alpha" then target = "alpha" | |
29 | $if arch .eqs. "ia64" then target = "ia64" | |
252b5132 | 30 | $! |
11d73275 | 31 | $if (arch .eqs. "alpha") .or. (arch .eqs. "ia64") |
252b5132 | 32 | $then |
11d73275 TG |
33 | $! |
34 | $ write sys$output "Configuring BFD for ''target' target" | |
35 | $! | |
252b5132 RH |
36 | $! |
37 | $! copy bfd-in2.h to bfd.h, replacing @ macros | |
38 | $! | |
39 | $ edit/tpu/nojournal/nosection/nodisplay/command=sys$input - | |
40 | []bfd-in2.h /output=[]bfd.h | |
41 | $DECK | |
42 | ! | |
43 | ! Copy file, changing lines with macros (@@) | |
44 | ! | |
45 | ! | |
11d73275 | 46 | set (success,off); |
252b5132 RH |
47 | |
48 | file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); | |
49 | rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); | |
50 | ||
252b5132 RH |
51 | match_pos := SEARCH_QUIETLY('@wordsize@', FORWARD, EXACT, rang); |
52 | IF match_pos <> 0 THEN; | |
53 | POSITION(BEGINNING_OF(match_pos)); | |
54 | ERASE(match_pos); | |
55 | COPY_TEXT('64'); | |
56 | ENDIF; | |
d387240a TG |
57 | match_pos := SEARCH_QUIETLY('@bfd_default_target_size@', FORWARD, EXACT, rang); |
58 | IF match_pos <> 0 THEN; | |
59 | POSITION(BEGINNING_OF(match_pos)); | |
60 | ERASE(match_pos); | |
61 | COPY_TEXT('64'); | |
62 | ENDIF; | |
252b5132 RH |
63 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64BIT_LONG@', FORWARD, EXACT, rang); |
64 | IF match_pos <> 0 THEN; | |
65 | POSITION(BEGINNING_OF(match_pos)); | |
66 | ERASE(match_pos); | |
67 | COPY_TEXT('0'); | |
68 | ENDIF; | |
d387240a TG |
69 | match_pos := SEARCH_QUIETLY('@BFD_HOST_LONG_LONG@', FORWARD, EXACT, rang); |
70 | IF match_pos <> 0 THEN; | |
71 | POSITION(BEGINNING_OF(match_pos)); | |
72 | ERASE(match_pos); | |
545f57c6 | 73 | COPY_TEXT('1'); |
d387240a TG |
74 | ENDIF; |
75 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64BIT_LONG_LONG@', FORWARD, EXACT, rang); | |
76 | IF match_pos <> 0 THEN; | |
77 | POSITION(BEGINNING_OF(match_pos)); | |
78 | ERASE(match_pos); | |
545f57c6 | 79 | COPY_TEXT('1'); |
d387240a | 80 | ENDIF; |
252b5132 RH |
81 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT_DEFINED@', FORWARD, EXACT, rang); |
82 | IF match_pos <> 0 THEN; | |
83 | POSITION(BEGINNING_OF(match_pos)); | |
84 | ERASE(match_pos); | |
787548c8 | 85 | COPY_TEXT('1'); |
252b5132 RH |
86 | ENDIF; |
87 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT@', FORWARD, EXACT, rang); | |
88 | IF match_pos <> 0 THEN; | |
89 | POSITION(BEGINNING_OF(match_pos)); | |
90 | ERASE(match_pos); | |
787548c8 | 91 | COPY_TEXT('__int64'); |
252b5132 RH |
92 | ENDIF; |
93 | match_pos := SEARCH_QUIETLY('@BFD_HOST_U_64_BIT@', FORWARD, EXACT, rang); | |
94 | IF match_pos <> 0 THEN; | |
95 | POSITION(BEGINNING_OF(match_pos)); | |
96 | ERASE(match_pos); | |
787548c8 | 97 | COPY_TEXT('unsigned __int64'); |
252b5132 | 98 | ENDIF; |
d387240a TG |
99 | match_pos := SEARCH_QUIETLY('@BFD_HOSTPTR_T@', FORWARD, EXACT, rang); |
100 | IF match_pos <> 0 THEN; | |
101 | POSITION(BEGINNING_OF(match_pos)); | |
102 | ERASE(match_pos); | |
787548c8 | 103 | COPY_TEXT('unsigned __int64'); |
d387240a TG |
104 | ENDIF; |
105 | match_pos := SEARCH_QUIETLY('@bfd_file_ptr@', FORWARD, EXACT, rang); | |
106 | IF match_pos <> 0 THEN; | |
107 | POSITION(BEGINNING_OF(match_pos)); | |
108 | ERASE(match_pos); | |
109 | COPY_TEXT('bfd_signed_vma'); | |
110 | ENDIF; | |
111 | match_pos := SEARCH_QUIETLY('unsigned @bfd_file_ptr@ ufile_ptr', FORWARD, EXACT, rang); | |
112 | IF match_pos <> 0 THEN; | |
113 | POSITION(BEGINNING_OF(match_pos)); | |
114 | ERASE(match_pos); | |
115 | COPY_TEXT('bfd_vma ufile_ptr'); | |
116 | ENDIF; | |
11d73275 TG |
117 | match_pos := SEARCH_QUIETLY('@supports_plugins@', FORWARD, EXACT, rang); |
118 | IF match_pos <> 0 THEN; | |
119 | POSITION(BEGINNING_OF(match_pos)); | |
120 | ERASE(match_pos); | |
121 | COPY_TEXT('0'); | |
122 | ENDIF; | |
252b5132 RH |
123 | WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); |
124 | QUIT | |
125 | $ EOD | |
126 | $ | |
127 | $else | |
128 | $ | |
129 | $ write sys$output "Configuring for Vax target" | |
130 | $ target = "vax" | |
131 | $! | |
132 | $! copy bfd-in2.h to bfd.h, replacing @ macros | |
133 | $! | |
11d73275 | 134 | $ write sys$output "Generated `bfd.h' from `bfd-in2.h'." |
252b5132 RH |
135 | $ edit/tpu/nojournal/nosection/nodisplay/command=sys$input - |
136 | []bfd-in2.h /output=[]bfd.h | |
137 | $DECK | |
138 | ! | |
139 | ! Copy file, changing lines with macros (@@) | |
140 | ! | |
141 | ! | |
11d73275 | 142 | set (success,off); |
252b5132 RH |
143 | |
144 | file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); | |
145 | rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); | |
146 | ||
252b5132 RH |
147 | match_pos := SEARCH_QUIETLY('@wordsize@', FORWARD, EXACT, rang); |
148 | IF match_pos <> 0 THEN; | |
149 | POSITION(BEGINNING_OF(match_pos)); | |
150 | ERASE(match_pos); | |
151 | COPY_TEXT('32'); | |
152 | ENDIF; | |
153 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64BIT_LONG@', FORWARD, EXACT, rang); | |
154 | IF match_pos <> 0 THEN; | |
155 | POSITION(BEGINNING_OF(match_pos)); | |
156 | ERASE(match_pos); | |
157 | COPY_TEXT('0'); | |
158 | ENDIF; | |
159 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT_DEFINED@', FORWARD, EXACT, rang); | |
160 | IF match_pos <> 0 THEN; | |
161 | POSITION(BEGINNING_OF(match_pos)); | |
162 | ERASE(match_pos); | |
163 | COPY_TEXT('__DECC'); | |
164 | SPLIT_LINE; | |
165 | COPY_TEXT('#include <ints.h>'); | |
166 | ENDIF; | |
167 | match_pos := SEARCH_QUIETLY('@BFD_HOST_64_BIT@', FORWARD, EXACT, rang); | |
168 | IF match_pos <> 0 THEN; | |
169 | POSITION(BEGINNING_OF(match_pos)); | |
170 | ERASE(match_pos); | |
171 | COPY_TEXT('int64'); | |
172 | ENDIF; | |
173 | match_pos := SEARCH_QUIETLY('@BFD_HOST_U_64_BIT@', FORWARD, EXACT, rang); | |
174 | IF match_pos <> 0 THEN; | |
175 | POSITION(BEGINNING_OF(match_pos)); | |
176 | ERASE(match_pos); | |
177 | COPY_TEXT('uint64'); | |
178 | ENDIF; | |
179 | WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); | |
180 | QUIT | |
181 | $ EOD | |
182 | $endif | |
183 | $ | |
252b5132 | 184 | $! |
d387240a TG |
185 | $! create bfdver.h |
186 | $! | |
11d73275 | 187 | $ write sys$output "Generate `bfdver.h' from 'version.h' and `configure.in'." |
d387240a TG |
188 | $ edit/tpu/nojournal/nosection/nodisplay/command=sys$input - |
189 | []version.h /output=[]bfdver.h | |
190 | $DECK | |
191 | ! | |
192 | ! Copy file, changing lines with macros (@@) | |
193 | ! | |
194 | ! | |
11d73275 | 195 | set (success,off); |
d387240a TG |
196 | vfile := CREATE_BUFFER("vfile", "configure.in"); |
197 | rang := CREATE_RANGE(BEGINNING_OF(vfile), END_OF(vfile)); | |
787548c8 | 198 | match_pos := SEARCH_QUIETLY('AC_INIT([bfd], [', FORWARD, EXACT, rang); |
d387240a TG |
199 | IF match_pos <> 0 THEN; |
200 | POSITION(BEGINNING_OF(match_pos)); | |
201 | ERASE(match_pos); | |
787548c8 | 202 | vers := CURRENT_LINE-"])"; |
d387240a TG |
203 | ELSE; |
204 | vers := "unknown"; | |
205 | ENDIF; | |
206 | versnum := vers - "." - "."; | |
207 | ||
208 | file := CREATE_BUFFER("file", GET_INFO(COMMAND_LINE, "file_name")); | |
209 | rang := CREATE_RANGE(BEGINNING_OF(file), END_OF(file)); | |
210 | ||
211 | match_pos := SEARCH_QUIETLY('@bfd_version@', FORWARD, EXACT, rang); | |
212 | IF match_pos <> 0 THEN; | |
213 | POSITION(BEGINNING_OF(match_pos)); | |
214 | ERASE(match_pos); | |
215 | COPY_TEXT(versnum); | |
216 | ENDIF; | |
217 | match_pos := SEARCH_QUIETLY('@bfd_version_string@', FORWARD, EXACT, rang); | |
218 | IF match_pos <> 0 THEN; | |
219 | POSITION(BEGINNING_OF(match_pos)); | |
220 | ERASE(match_pos); | |
221 | COPY_TEXT('"'); | |
222 | COPY_TEXT(vers); | |
223 | COPY_TEXT('"'); | |
224 | ENDIF; | |
225 | match_pos := SEARCH_QUIETLY('@bfd_version_package@', FORWARD, EXACT, rang); | |
226 | IF match_pos <> 0 THEN; | |
227 | POSITION(BEGINNING_OF(match_pos)); | |
228 | ERASE(match_pos); | |
229 | COPY_TEXT('"(GNU Binutils) "'); | |
230 | ENDIF; | |
231 | match_pos := SEARCH_QUIETLY('@report_bugs_to@', FORWARD, EXACT, rang); | |
232 | IF match_pos <> 0 THEN; | |
233 | POSITION(BEGINNING_OF(match_pos)); | |
234 | ERASE(match_pos); | |
235 | COPY_TEXT('"<http://www.sourceware.org/bugzilla/>"'); | |
236 | ENDIF; | |
237 | WRITE_FILE(file, GET_INFO(COMMAND_LINE, "output_file")); | |
238 | QUIT | |
239 | $ EOD | |
d387240a | 240 | $! |
252b5132 | 241 | $! |
083faca9 TG |
242 | $! create bfd_stdint.h |
243 | $! | |
244 | $ write sys$output "Generate `bfd_stdint.h'" | |
245 | $ create []bfd_stdint.h | |
246 | #include <inttypes.h> | |
247 | $! | |
248 | $! | |
252b5132 RH |
249 | $! create targmatch.h |
250 | $! | |
11d73275 | 251 | $ write sys$output "Generate `targmatch.h'" |
252b5132 RH |
252 | $ open/write tfile []targmatch.h |
253 | $ write tfile "{ """ + target + "-*-*vms*""" + "," | |
254 | $ write tfile "#if defined (SELECT_VECS)" | |
255 | $ write tfile "SELECT_VECS" | |
256 | $ write tfile "#else" | |
257 | $ write tfile "UNSUPPORTED_TARGET" | |
258 | $ write tfile "#endif" | |
259 | $ write tfile "}," | |
260 | $ close tfile | |
252b5132 RH |
261 | $! |
262 | $! | |
263 | $! create config.h | |
264 | $! | |
11d73275 | 265 | $ write sys$output "Generate `config.h'" |
252b5132 RH |
266 | $ create []config.h |