File COPYING deleted (index d60c31a..0000000) |
1 |
|
GNU GENERAL PUBLIC LICENSE |
|
2 |
|
Version 2, June 1991 |
|
3 |
|
|
|
4 |
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
|
5 |
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
6 |
|
Everyone is permitted to copy and distribute verbatim copies |
|
7 |
|
of this license document, but changing it is not allowed. |
|
8 |
|
|
|
9 |
|
Preamble |
|
10 |
|
|
|
11 |
|
The licenses for most software are designed to take away your |
|
12 |
|
freedom to share and change it. By contrast, the GNU General Public |
|
13 |
|
License is intended to guarantee your freedom to share and change free |
|
14 |
|
software--to make sure the software is free for all its users. This |
|
15 |
|
General Public License applies to most of the Free Software |
|
16 |
|
Foundation's software and to any other program whose authors commit to |
|
17 |
|
using it. (Some other Free Software Foundation software is covered by |
|
18 |
|
the GNU Library General Public License instead.) You can apply it to |
|
19 |
|
your programs, too. |
|
20 |
|
|
|
21 |
|
When we speak of free software, we are referring to freedom, not |
|
22 |
|
price. Our General Public Licenses are designed to make sure that you |
|
23 |
|
have the freedom to distribute copies of free software (and charge for |
|
24 |
|
this service if you wish), that you receive source code or can get it |
|
25 |
|
if you want it, that you can change the software or use pieces of it |
|
26 |
|
in new free programs; and that you know you can do these things. |
|
27 |
|
|
|
28 |
|
To protect your rights, we need to make restrictions that forbid |
|
29 |
|
anyone to deny you these rights or to ask you to surrender the rights. |
|
30 |
|
These restrictions translate to certain responsibilities for you if you |
|
31 |
|
distribute copies of the software, or if you modify it. |
|
32 |
|
|
|
33 |
|
For example, if you distribute copies of such a program, whether |
|
34 |
|
gratis or for a fee, you must give the recipients all the rights that |
|
35 |
|
you have. You must make sure that they, too, receive or can get the |
|
36 |
|
source code. And you must show them these terms so they know their |
|
37 |
|
rights. |
|
38 |
|
|
|
39 |
|
We protect your rights with two steps: (1) copyright the software, and |
|
40 |
|
(2) offer you this license which gives you legal permission to copy, |
|
41 |
|
distribute and/or modify the software. |
|
42 |
|
|
|
43 |
|
Also, for each author's protection and ours, we want to make certain |
|
44 |
|
that everyone understands that there is no warranty for this free |
|
45 |
|
software. If the software is modified by someone else and passed on, we |
|
46 |
|
want its recipients to know that what they have is not the original, so |
|
47 |
|
that any problems introduced by others will not reflect on the original |
|
48 |
|
authors' reputations. |
|
49 |
|
|
|
50 |
|
Finally, any free program is threatened constantly by software |
|
51 |
|
patents. We wish to avoid the danger that redistributors of a free |
|
52 |
|
program will individually obtain patent licenses, in effect making the |
|
53 |
|
program proprietary. To prevent this, we have made it clear that any |
|
54 |
|
patent must be licensed for everyone's free use or not licensed at all. |
|
55 |
|
|
|
56 |
|
The precise terms and conditions for copying, distribution and |
|
57 |
|
modification follow. |
|
58 |
|
|
|
59 |
|
GNU GENERAL PUBLIC LICENSE |
|
60 |
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
|
61 |
|
|
|
62 |
|
0. This License applies to any program or other work which contains |
|
63 |
|
a notice placed by the copyright holder saying it may be distributed |
|
64 |
|
under the terms of this General Public License. The "Program", below, |
|
65 |
|
refers to any such program or work, and a "work based on the Program" |
|
66 |
|
means either the Program or any derivative work under copyright law: |
|
67 |
|
that is to say, a work containing the Program or a portion of it, |
|
68 |
|
either verbatim or with modifications and/or translated into another |
|
69 |
|
language. (Hereinafter, translation is included without limitation in |
|
70 |
|
the term "modification".) Each licensee is addressed as "you". |
|
71 |
|
|
|
72 |
|
Activities other than copying, distribution and modification are not |
|
73 |
|
covered by this License; they are outside its scope. The act of |
|
74 |
|
running the Program is not restricted, and the output from the Program |
|
75 |
|
is covered only if its contents constitute a work based on the |
|
76 |
|
Program (independent of having been made by running the Program). |
|
77 |
|
Whether that is true depends on what the Program does. |
|
78 |
|
|
|
79 |
|
1. You may copy and distribute verbatim copies of the Program's |
|
80 |
|
source code as you receive it, in any medium, provided that you |
|
81 |
|
conspicuously and appropriately publish on each copy an appropriate |
|
82 |
|
copyright notice and disclaimer of warranty; keep intact all the |
|
83 |
|
notices that refer to this License and to the absence of any warranty; |
|
84 |
|
and give any other recipients of the Program a copy of this License |
|
85 |
|
along with the Program. |
|
86 |
|
|
|
87 |
|
You may charge a fee for the physical act of transferring a copy, and |
|
88 |
|
you may at your option offer warranty protection in exchange for a fee. |
|
89 |
|
|
|
90 |
|
2. You may modify your copy or copies of the Program or any portion |
|
91 |
|
of it, thus forming a work based on the Program, and copy and |
|
92 |
|
distribute such modifications or work under the terms of Section 1 |
|
93 |
|
above, provided that you also meet all of these conditions: |
|
94 |
|
|
|
95 |
|
a) You must cause the modified files to carry prominent notices |
|
96 |
|
stating that you changed the files and the date of any change. |
|
97 |
|
|
|
98 |
|
b) You must cause any work that you distribute or publish, that in |
|
99 |
|
whole or in part contains or is derived from the Program or any |
|
100 |
|
part thereof, to be licensed as a whole at no charge to all third |
|
101 |
|
parties under the terms of this License. |
|
102 |
|
|
|
103 |
|
c) If the modified program normally reads commands interactively |
|
104 |
|
when run, you must cause it, when started running for such |
|
105 |
|
interactive use in the most ordinary way, to print or display an |
|
106 |
|
announcement including an appropriate copyright notice and a |
|
107 |
|
notice that there is no warranty (or else, saying that you provide |
|
108 |
|
a warranty) and that users may redistribute the program under |
|
109 |
|
these conditions, and telling the user how to view a copy of this |
|
110 |
|
License. (Exception: if the Program itself is interactive but |
|
111 |
|
does not normally print such an announcement, your work based on |
|
112 |
|
the Program is not required to print an announcement.) |
|
113 |
|
|
|
114 |
|
These requirements apply to the modified work as a whole. If |
|
115 |
|
identifiable sections of that work are not derived from the Program, |
|
116 |
|
and can be reasonably considered independent and separate works in |
|
117 |
|
themselves, then this License, and its terms, do not apply to those |
|
118 |
|
sections when you distribute them as separate works. But when you |
|
119 |
|
distribute the same sections as part of a whole which is a work based |
|
120 |
|
on the Program, the distribution of the whole must be on the terms of |
|
121 |
|
this License, whose permissions for other licensees extend to the |
|
122 |
|
entire whole, and thus to each and every part regardless of who wrote it. |
|
123 |
|
|
|
124 |
|
Thus, it is not the intent of this section to claim rights or contest |
|
125 |
|
your rights to work written entirely by you; rather, the intent is to |
|
126 |
|
exercise the right to control the distribution of derivative or |
|
127 |
|
collective works based on the Program. |
|
128 |
|
|
|
129 |
|
In addition, mere aggregation of another work not based on the Program |
|
130 |
|
with the Program (or with a work based on the Program) on a volume of |
|
131 |
|
a storage or distribution medium does not bring the other work under |
|
132 |
|
the scope of this License. |
|
133 |
|
|
|
134 |
|
3. You may copy and distribute the Program (or a work based on it, |
|
135 |
|
under Section 2) in object code or executable form under the terms of |
|
136 |
|
Sections 1 and 2 above provided that you also do one of the following: |
|
137 |
|
|
|
138 |
|
a) Accompany it with the complete corresponding machine-readable |
|
139 |
|
source code, which must be distributed under the terms of Sections |
|
140 |
|
1 and 2 above on a medium customarily used for software interchange; or, |
|
141 |
|
|
|
142 |
|
b) Accompany it with a written offer, valid for at least three |
|
143 |
|
years, to give any third party, for a charge no more than your |
|
144 |
|
cost of physically performing source distribution, a complete |
|
145 |
|
machine-readable copy of the corresponding source code, to be |
|
146 |
|
distributed under the terms of Sections 1 and 2 above on a medium |
|
147 |
|
customarily used for software interchange; or, |
|
148 |
|
|
|
149 |
|
c) Accompany it with the information you received as to the offer |
|
150 |
|
to distribute corresponding source code. (This alternative is |
|
151 |
|
allowed only for noncommercial distribution and only if you |
|
152 |
|
received the program in object code or executable form with such |
|
153 |
|
an offer, in accord with Subsection b above.) |
|
154 |
|
|
|
155 |
|
The source code for a work means the preferred form of the work for |
|
156 |
|
making modifications to it. For an executable work, complete source |
|
157 |
|
code means all the source code for all modules it contains, plus any |
|
158 |
|
associated interface definition files, plus the scripts used to |
|
159 |
|
control compilation and installation of the executable. However, as a |
|
160 |
|
special exception, the source code distributed need not include |
|
161 |
|
anything that is normally distributed (in either source or binary |
|
162 |
|
form) with the major components (compiler, kernel, and so on) of the |
|
163 |
|
operating system on which the executable runs, unless that component |
|
164 |
|
itself accompanies the executable. |
|
165 |
|
|
|
166 |
|
If distribution of executable or object code is made by offering |
|
167 |
|
access to copy from a designated place, then offering equivalent |
|
168 |
|
access to copy the source code from the same place counts as |
|
169 |
|
distribution of the source code, even though third parties are not |
|
170 |
|
compelled to copy the source along with the object code. |
|
171 |
|
|
|
172 |
|
4. You may not copy, modify, sublicense, or distribute the Program |
|
173 |
|
except as expressly provided under this License. Any attempt |
|
174 |
|
otherwise to copy, modify, sublicense or distribute the Program is |
|
175 |
|
void, and will automatically terminate your rights under this License. |
|
176 |
|
However, parties who have received copies, or rights, from you under |
|
177 |
|
this License will not have their licenses terminated so long as such |
|
178 |
|
parties remain in full compliance. |
|
179 |
|
|
|
180 |
|
5. You are not required to accept this License, since you have not |
|
181 |
|
signed it. However, nothing else grants you permission to modify or |
|
182 |
|
distribute the Program or its derivative works. These actions are |
|
183 |
|
prohibited by law if you do not accept this License. Therefore, by |
|
184 |
|
modifying or distributing the Program (or any work based on the |
|
185 |
|
Program), you indicate your acceptance of this License to do so, and |
|
186 |
|
all its terms and conditions for copying, distributing or modifying |
|
187 |
|
the Program or works based on it. |
|
188 |
|
|
|
189 |
|
6. Each time you redistribute the Program (or any work based on the |
|
190 |
|
Program), the recipient automatically receives a license from the |
|
191 |
|
original licensor to copy, distribute or modify the Program subject to |
|
192 |
|
these terms and conditions. You may not impose any further |
|
193 |
|
restrictions on the recipients' exercise of the rights granted herein. |
|
194 |
|
You are not responsible for enforcing compliance by third parties to |
|
195 |
|
this License. |
|
196 |
|
|
|
197 |
|
7. If, as a consequence of a court judgment or allegation of patent |
|
198 |
|
infringement or for any other reason (not limited to patent issues), |
|
199 |
|
conditions are imposed on you (whether by court order, agreement or |
|
200 |
|
otherwise) that contradict the conditions of this License, they do not |
|
201 |
|
excuse you from the conditions of this License. If you cannot |
|
202 |
|
distribute so as to satisfy simultaneously your obligations under this |
|
203 |
|
License and any other pertinent obligations, then as a consequence you |
|
204 |
|
may not distribute the Program at all. For example, if a patent |
|
205 |
|
license would not permit royalty-free redistribution of the Program by |
|
206 |
|
all those who receive copies directly or indirectly through you, then |
|
207 |
|
the only way you could satisfy both it and this License would be to |
|
208 |
|
refrain entirely from distribution of the Program. |
|
209 |
|
|
|
210 |
|
If any portion of this section is held invalid or unenforceable under |
|
211 |
|
any particular circumstance, the balance of the section is intended to |
|
212 |
|
apply and the section as a whole is intended to apply in other |
|
213 |
|
circumstances. |
|
214 |
|
|
|
215 |
|
It is not the purpose of this section to induce you to infringe any |
|
216 |
|
patents or other property right claims or to contest validity of any |
|
217 |
|
such claims; this section has the sole purpose of protecting the |
|
218 |
|
integrity of the free software distribution system, which is |
|
219 |
|
implemented by public license practices. Many people have made |
|
220 |
|
generous contributions to the wide range of software distributed |
|
221 |
|
through that system in reliance on consistent application of that |
|
222 |
|
system; it is up to the author/donor to decide if he or she is willing |
|
223 |
|
to distribute software through any other system and a licensee cannot |
|
224 |
|
impose that choice. |
|
225 |
|
|
|
226 |
|
This section is intended to make thoroughly clear what is believed to |
|
227 |
|
be a consequence of the rest of this License. |
|
228 |
|
|
|
229 |
|
8. If the distribution and/or use of the Program is restricted in |
|
230 |
|
certain countries either by patents or by copyrighted interfaces, the |
|
231 |
|
original copyright holder who places the Program under this License |
|
232 |
|
may add an explicit geographical distribution limitation excluding |
|
233 |
|
those countries, so that distribution is permitted only in or among |
|
234 |
|
countries not thus excluded. In such case, this License incorporates |
|
235 |
|
the limitation as if written in the body of this License. |
|
236 |
|
|
|
237 |
|
9. The Free Software Foundation may publish revised and/or new versions |
|
238 |
|
of the General Public License from time to time. Such new versions will |
|
239 |
|
be similar in spirit to the present version, but may differ in detail to |
|
240 |
|
address new problems or concerns. |
|
241 |
|
|
|
242 |
|
Each version is given a distinguishing version number. If the Program |
|
243 |
|
specifies a version number of this License which applies to it and "any |
|
244 |
|
later version", you have the option of following the terms and conditions |
|
245 |
|
either of that version or of any later version published by the Free |
|
246 |
|
Software Foundation. If the Program does not specify a version number of |
|
247 |
|
this License, you may choose any version ever published by the Free Software |
|
248 |
|
Foundation. |
|
249 |
|
|
|
250 |
|
10. If you wish to incorporate parts of the Program into other free |
|
251 |
|
programs whose distribution conditions are different, write to the author |
|
252 |
|
to ask for permission. For software which is copyrighted by the Free |
|
253 |
|
Software Foundation, write to the Free Software Foundation; we sometimes |
|
254 |
|
make exceptions for this. Our decision will be guided by the two goals |
|
255 |
|
of preserving the free status of all derivatives of our free software and |
|
256 |
|
of promoting the sharing and reuse of software generally. |
|
257 |
|
|
|
258 |
|
NO WARRANTY |
|
259 |
|
|
|
260 |
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
|
261 |
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
|
262 |
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
|
263 |
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
|
264 |
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
265 |
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
|
266 |
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
|
267 |
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
|
268 |
|
REPAIR OR CORRECTION. |
|
269 |
|
|
|
270 |
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|
271 |
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
|
272 |
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
|
273 |
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
|
274 |
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
|
275 |
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
|
276 |
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
|
277 |
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
|
278 |
|
POSSIBILITY OF SUCH DAMAGES. |
|
279 |
|
|
|
280 |
|
END OF TERMS AND CONDITIONS |
|
281 |
|
|
|
282 |
|
How to Apply These Terms to Your New Programs |
|
283 |
|
|
|
284 |
|
If you develop a new program, and you want it to be of the greatest |
|
285 |
|
possible use to the public, the best way to achieve this is to make it |
|
286 |
|
free software which everyone can redistribute and change under these terms. |
|
287 |
|
|
|
288 |
|
To do so, attach the following notices to the program. It is safest |
|
289 |
|
to attach them to the start of each source file to most effectively |
|
290 |
|
convey the exclusion of warranty; and each file should have at least |
|
291 |
|
the "copyright" line and a pointer to where the full notice is found. |
|
292 |
|
|
|
293 |
|
<one line to give the program's name and a brief idea of what it does.> |
|
294 |
|
Copyright (C) <year> <name of author> |
|
295 |
|
|
|
296 |
|
This program is free software; you can redistribute it and/or modify |
|
297 |
|
it under the terms of the GNU General Public License as published by |
|
298 |
|
the Free Software Foundation; either version 2 of the License, or |
|
299 |
|
(at your option) any later version. |
|
300 |
|
|
|
301 |
|
This program is distributed in the hope that it will be useful, |
|
302 |
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
303 |
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
304 |
|
GNU General Public License for more details. |
|
305 |
|
|
|
306 |
|
You should have received a copy of the GNU General Public License |
|
307 |
|
along with this program; if not, write to the Free Software |
|
308 |
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
309 |
|
|
|
310 |
|
|
|
311 |
|
Also add information on how to contact you by electronic and paper mail. |
|
312 |
|
|
|
313 |
|
If the program is interactive, make it output a short notice like this |
|
314 |
|
when it starts in an interactive mode: |
|
315 |
|
|
|
316 |
|
Gnomovision version 69, Copyright (C) year name of author |
|
317 |
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
|
318 |
|
This is free software, and you are welcome to redistribute it |
|
319 |
|
under certain conditions; type `show c' for details. |
|
320 |
|
|
|
321 |
|
The hypothetical commands `show w' and `show c' should show the appropriate |
|
322 |
|
parts of the General Public License. Of course, the commands you use may |
|
323 |
|
be called something other than `show w' and `show c'; they could even be |
|
324 |
|
mouse-clicks or menu items--whatever suits your program. |
|
325 |
|
|
|
326 |
|
You should also get your employer (if you work as a programmer) or your |
|
327 |
|
school, if any, to sign a "copyright disclaimer" for the program, if |
|
328 |
|
necessary. Here is a sample; alter the names: |
|
329 |
|
|
|
330 |
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
|
331 |
|
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
|
332 |
|
|
|
333 |
|
<signature of Ty Coon>, 1 April 1989 |
|
334 |
|
Ty Coon, President of Vice |
|
335 |
|
|
|
336 |
|
This General Public License does not permit incorporating your program into |
|
337 |
|
proprietary programs. If your program is a subroutine library, you may |
|
338 |
|
consider it more useful to permit linking proprietary applications with the |
|
339 |
|
library. If this is what you want to do, use the GNU Library General |
|
340 |
|
Public License instead of this License. |
|
File INSTALL deleted (index 9d3feae..0000000) |
1 |
|
Please see the doc/ directory for more specific installation instructions. |
|
2 |
|
|
|
3 |
|
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software |
|
4 |
|
Foundation, Inc. |
|
5 |
|
|
|
6 |
|
This file is free documentation; the Free Software Foundation gives |
|
7 |
|
unlimited permission to copy, distribute and modify it. |
|
8 |
|
|
|
9 |
|
Basic Installation |
|
10 |
|
================== |
|
11 |
|
|
|
12 |
|
These are generic installation instructions. |
|
13 |
|
|
|
14 |
|
The `configure' shell script attempts to guess correct values for |
|
15 |
|
various system-dependent variables used during compilation. It uses |
|
16 |
|
those values to create a `Makefile' in each directory of the package. |
|
17 |
|
It may also create one or more `.h' files containing system-dependent |
|
18 |
|
definitions. Finally, it creates a shell script `config.status' that |
|
19 |
|
you can run in the future to recreate the current configuration, and a |
|
20 |
|
file `config.log' containing compiler output (useful mainly for |
|
21 |
|
debugging `configure'). |
|
22 |
|
|
|
23 |
|
It can also use an optional file (typically called `config.cache' |
|
24 |
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves |
|
25 |
|
the results of its tests to speed up reconfiguring. (Caching is |
|
26 |
|
disabled by default to prevent problems with accidental use of stale |
|
27 |
|
cache files.) |
|
28 |
|
|
|
29 |
|
If you need to do unusual things to compile the package, please try |
|
30 |
|
to figure out how `configure' could check whether to do them, and mail |
|
31 |
|
diffs or instructions to the address given in the `README' so they can |
|
32 |
|
be considered for the next release. If you are using the cache, and at |
|
33 |
|
some point `config.cache' contains results you don't want to keep, you |
|
34 |
|
may remove or edit it. |
|
35 |
|
|
|
36 |
|
The file `configure.ac' (or `configure.in') is used to create |
|
37 |
|
`configure' by a program called `autoconf'. You only need |
|
38 |
|
`configure.ac' if you want to change it or regenerate `configure' using |
|
39 |
|
a newer version of `autoconf'. |
|
40 |
|
|
|
41 |
|
The simplest way to compile this package is: |
|
42 |
|
|
|
43 |
|
1. `cd' to the directory containing the package's source code and type |
|
44 |
|
`./configure' to configure the package for your system. If you're |
|
45 |
|
using `csh' on an old version of System V, you might need to type |
|
46 |
|
`sh ./configure' instead to prevent `csh' from trying to execute |
|
47 |
|
`configure' itself. |
|
48 |
|
|
|
49 |
|
Running `configure' takes awhile. While running, it prints some |
|
50 |
|
messages telling which features it is checking for. |
|
51 |
|
|
|
52 |
|
2. Type `make' to compile the package. |
|
53 |
|
|
|
54 |
|
3. Optionally, type `make check' to run any self-tests that come with |
|
55 |
|
the package. |
|
56 |
|
|
|
57 |
|
4. Type `make install' to install the programs and any data files and |
|
58 |
|
documentation. |
|
59 |
|
|
|
60 |
|
5. You can remove the program binaries and object files from the |
|
61 |
|
source code directory by typing `make clean'. To also remove the |
|
62 |
|
files that `configure' created (so you can compile the package for |
|
63 |
|
a different kind of computer), type `make distclean'. There is |
|
64 |
|
also a `make maintainer-clean' target, but that is intended mainly |
|
65 |
|
for the package's developers. If you use it, you may have to get |
|
66 |
|
all sorts of other programs in order to regenerate files that came |
|
67 |
|
with the distribution. |
|
68 |
|
|
|
69 |
|
Compilers and Options |
|
70 |
|
===================== |
|
71 |
|
|
|
72 |
|
Some systems require unusual options for compilation or linking that |
|
73 |
|
the `configure' script does not know about. Run `./configure --help' |
|
74 |
|
for details on some of the pertinent environment variables. |
|
75 |
|
|
|
76 |
|
You can give `configure' initial values for configuration parameters |
|
77 |
|
by setting variables in the command line or in the environment. Here |
|
78 |
|
is an example: |
|
79 |
|
|
|
80 |
|
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix |
|
81 |
|
|
|
82 |
|
*Note Defining Variables::, for more details. |
|
83 |
|
|
|
84 |
|
Compiling For Multiple Architectures |
|
85 |
|
==================================== |
|
86 |
|
|
|
87 |
|
You can compile the package for more than one kind of computer at the |
|
88 |
|
same time, by placing the object files for each architecture in their |
|
89 |
|
own directory. To do this, you must use a version of `make' that |
|
90 |
|
supports the `VPATH' variable, such as GNU `make'. `cd' to the |
|
91 |
|
directory where you want the object files and executables to go and run |
|
92 |
|
the `configure' script. `configure' automatically checks for the |
|
93 |
|
source code in the directory that `configure' is in and in `..'. |
|
94 |
|
|
|
95 |
|
If you have to use a `make' that does not support the `VPATH' |
|
96 |
|
variable, you have to compile the package for one architecture at a |
|
97 |
|
time in the source code directory. After you have installed the |
|
98 |
|
package for one architecture, use `make distclean' before reconfiguring |
|
99 |
|
for another architecture. |
|
100 |
|
|
|
101 |
|
Installation Names |
|
102 |
|
================== |
|
103 |
|
|
|
104 |
|
By default, `make install' will install the package's files in |
|
105 |
|
`/usr/local/bin', `/usr/local/man', etc. You can specify an |
|
106 |
|
installation prefix other than `/usr/local' by giving `configure' the |
|
107 |
|
option `--prefix=PATH'. |
|
108 |
|
|
|
109 |
|
You can specify separate installation prefixes for |
|
110 |
|
architecture-specific files and architecture-independent files. If you |
|
111 |
|
give `configure' the option `--exec-prefix=PATH', the package will use |
|
112 |
|
PATH as the prefix for installing programs and libraries. |
|
113 |
|
Documentation and other data files will still use the regular prefix. |
|
114 |
|
|
|
115 |
|
In addition, if you use an unusual directory layout you can give |
|
116 |
|
options like `--bindir=PATH' to specify different values for particular |
|
117 |
|
kinds of files. Run `configure --help' for a list of the directories |
|
118 |
|
you can set and what kinds of files go in them. |
|
119 |
|
|
|
120 |
|
If the package supports it, you can cause programs to be installed |
|
121 |
|
with an extra prefix or suffix on their names by giving `configure' the |
|
122 |
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. |
|
123 |
|
|
|
124 |
|
Optional Features |
|
125 |
|
================= |
|
126 |
|
|
|
127 |
|
Some packages pay attention to `--enable-FEATURE' options to |
|
128 |
|
`configure', where FEATURE indicates an optional part of the package. |
|
129 |
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE |
|
130 |
|
is something like `gnu-as' or `x' (for the X Window System). The |
|
131 |
|
`README' should mention any `--enable-' and `--with-' options that the |
|
132 |
|
package recognizes. |
|
133 |
|
|
|
134 |
|
For packages that use the X Window System, `configure' can usually |
|
135 |
|
find the X include and library files automatically, but if it doesn't, |
|
136 |
|
you can use the `configure' options `--x-includes=DIR' and |
|
137 |
|
`--x-libraries=DIR' to specify their locations. |
|
138 |
|
|
|
139 |
|
Specifying the System Type |
|
140 |
|
========================== |
|
141 |
|
|
|
142 |
|
There may be some features `configure' cannot figure out |
|
143 |
|
automatically, but needs to determine by the type of machine the package |
|
144 |
|
will run on. Usually, assuming the package is built to be run on the |
|
145 |
|
_same_ architectures, `configure' can figure that out, but if it prints |
|
146 |
|
a message saying it cannot guess the machine type, give it the |
|
147 |
|
`--build=TYPE' option. TYPE can either be a short name for the system |
|
148 |
|
type, such as `sun4', or a canonical name which has the form: |
|
149 |
|
|
|
150 |
|
CPU-COMPANY-SYSTEM |
|
151 |
|
|
|
152 |
|
where SYSTEM can have one of these forms: |
|
153 |
|
|
|
154 |
|
OS KERNEL-OS |
|
155 |
|
|
|
156 |
|
See the file `config.sub' for the possible values of each field. If |
|
157 |
|
`config.sub' isn't included in this package, then this package doesn't |
|
158 |
|
need to know the machine type. |
|
159 |
|
|
|
160 |
|
If you are _building_ compiler tools for cross-compiling, you should |
|
161 |
|
use the `--target=TYPE' option to select the type of system they will |
|
162 |
|
produce code for. |
|
163 |
|
|
|
164 |
|
If you want to _use_ a cross compiler, that generates code for a |
|
165 |
|
platform different from the build platform, you should specify the |
|
166 |
|
"host" platform (i.e., that on which the generated programs will |
|
167 |
|
eventually be run) with `--host=TYPE'. |
|
168 |
|
|
|
169 |
|
Sharing Defaults |
|
170 |
|
================ |
|
171 |
|
|
|
172 |
|
If you want to set default values for `configure' scripts to share, |
|
173 |
|
you can create a site shell script called `config.site' that gives |
|
174 |
|
default values for variables like `CC', `cache_file', and `prefix'. |
|
175 |
|
`configure' looks for `PREFIX/share/config.site' if it exists, then |
|
176 |
|
`PREFIX/etc/config.site' if it exists. Or, you can set the |
|
177 |
|
`CONFIG_SITE' environment variable to the location of the site script. |
|
178 |
|
A warning: not all `configure' scripts look for a site script. |
|
179 |
|
|
|
180 |
|
Defining Variables |
|
181 |
|
================== |
|
182 |
|
|
|
183 |
|
Variables not defined in a site shell script can be set in the |
|
184 |
|
environment passed to `configure'. However, some packages may run |
|
185 |
|
configure again during the build, and the customized values of these |
|
186 |
|
variables may be lost. In order to avoid this problem, you should set |
|
187 |
|
them in the `configure' command line, using `VAR=value'. For example: |
|
188 |
|
|
|
189 |
|
./configure CC=/usr/local2/bin/gcc |
|
190 |
|
|
|
191 |
|
will cause the specified gcc to be used as the C compiler (unless it is |
|
192 |
|
overridden in the site shell script). |
|
193 |
|
|
|
194 |
|
`configure' Invocation |
|
195 |
|
====================== |
|
196 |
|
|
|
197 |
|
`configure' recognizes the following options to control how it |
|
198 |
|
operates. |
|
199 |
|
|
|
200 |
|
`--help' |
|
201 |
|
`-h' |
|
202 |
|
Print a summary of the options to `configure', and exit. |
|
203 |
|
|
|
204 |
|
`--version' |
|
205 |
|
`-V' |
|
206 |
|
Print the version of Autoconf used to generate the `configure' |
|
207 |
|
script, and exit. |
|
208 |
|
|
|
209 |
|
`--cache-file=FILE' |
|
210 |
|
Enable the cache: use and save the results of the tests in FILE, |
|
211 |
|
traditionally `config.cache'. FILE defaults to `/dev/null' to |
|
212 |
|
disable caching. |
|
213 |
|
|
|
214 |
|
`--config-cache' |
|
215 |
|
`-C' |
|
216 |
|
Alias for `--cache-file=config.cache'. |
|
217 |
|
|
|
218 |
|
`--quiet' |
|
219 |
|
`--silent' |
|
220 |
|
`-q' |
|
221 |
|
Do not print messages saying which checks are being made. To |
|
222 |
|
suppress all normal output, redirect it to `/dev/null' (any error |
|
223 |
|
messages will still be shown). |
|
224 |
|
|
|
225 |
|
`--srcdir=DIR' |
|
226 |
|
Look for the package's source code in directory DIR. Usually |
|
227 |
|
`configure' can determine that directory automatically. |
|
228 |
|
|
|
229 |
|
`configure' also accepts some other, not widely useful, options. Run |
|
230 |
|
`configure --help' for more details. |
|
231 |
|
|
|
File config.guess deleted (index d56c46d..0000000) |
1 |
|
#! /bin/sh |
|
2 |
|
# Attempt to guess a canonical system name. |
|
3 |
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
|
4 |
|
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. |
|
5 |
|
|
|
6 |
|
timestamp='2003-08-18' |
|
7 |
|
|
|
8 |
|
# This file is free software; you can redistribute it and/or modify it |
|
9 |
|
# under the terms of the GNU General Public License as published by |
|
10 |
|
# the Free Software Foundation; either version 2 of the License, or |
|
11 |
|
# (at your option) any later version. |
|
12 |
|
# |
|
13 |
|
# This program is distributed in the hope that it will be useful, but |
|
14 |
|
# WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
|
16 |
|
# General Public License for more details. |
|
17 |
|
# |
|
18 |
|
# You should have received a copy of the GNU General Public License |
|
19 |
|
# along with this program; if not, write to the Free Software |
|
20 |
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
21 |
|
# |
|
22 |
|
# As a special exception to the GNU General Public License, if you |
|
23 |
|
# distribute this file as part of a program that contains a |
|
24 |
|
# configuration script generated by Autoconf, you may include it under |
|
25 |
|
# the same distribution terms that you use for the rest of that program. |
|
26 |
|
|
|
27 |
|
# Originally written by Per Bothner <per@bothner.com>. |
|
28 |
|
# Please send patches to <config-patches@gnu.org>. Submit a context |
|
29 |
|
# diff and a properly formatted ChangeLog entry. |
|
30 |
|
# |
|
31 |
|
# This script attempts to guess a canonical system name similar to |
|
32 |
|
# config.sub. If it succeeds, it prints the system name on stdout, and |
|
33 |
|
# exits with 0. Otherwise, it exits with 1. |
|
34 |
|
# |
|
35 |
|
# The plan is that this can be called by configure scripts if you |
|
36 |
|
# don't specify an explicit build system type. |
|
37 |
|
|
|
38 |
|
me=`echo "$0" | sed -e 's,.*/,,'` |
|
39 |
|
|
|
40 |
|
usage="\ |
|
41 |
|
Usage: $0 [OPTION] |
|
42 |
|
|
|
43 |
|
Output the configuration name of the system \`$me' is run on. |
|
44 |
|
|
|
45 |
|
Operation modes: |
|
46 |
|
-h, --help print this help, then exit |
|
47 |
|
-t, --time-stamp print date of last modification, then exit |
|
48 |
|
-v, --version print version number, then exit |
|
49 |
|
|
|
50 |
|
Report bugs and patches to <config-patches@gnu.org>." |
|
51 |
|
|
|
52 |
|
version="\ |
|
53 |
|
GNU config.guess ($timestamp) |
|
54 |
|
|
|
55 |
|
Originally written by Per Bothner. |
|
56 |
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 |
|
57 |
|
Free Software Foundation, Inc. |
|
58 |
|
|
|
59 |
|
This is free software; see the source for copying conditions. There is NO |
|
60 |
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
|
61 |
|
|
|
62 |
|
help=" |
|
63 |
|
Try \`$me --help' for more information." |
|
64 |
|
|
|
65 |
|
# Parse command line |
|
66 |
|
while test $# -gt 0 ; do |
|
67 |
|
case $1 in |
|
68 |
|
--time-stamp | --time* | -t ) |
|
69 |
|
echo "$timestamp" ; exit 0 ;; |
|
70 |
|
--version | -v ) |
|
71 |
|
echo "$version" ; exit 0 ;; |
|
72 |
|
--help | --h* | -h ) |
|
73 |
|
echo "$usage"; exit 0 ;; |
|
74 |
|
-- ) # Stop option processing |
|
75 |
|
shift; break ;; |
|
76 |
|
- ) # Use stdin as input. |
|
77 |
|
break ;; |
|
78 |
|
-* ) |
|
79 |
|
echo "$me: invalid option $1$help" >&2 |
|
80 |
|
exit 1 ;; |
|
81 |
|
* ) |
|
82 |
|
break ;; |
|
83 |
|
esac |
|
84 |
|
done |
|
85 |
|
|
|
86 |
|
if test $# != 0; then |
|
87 |
|
echo "$me: too many arguments$help" >&2 |
|
88 |
|
exit 1 |
|
89 |
|
fi |
|
90 |
|
|
|
91 |
|
trap 'exit 1' 1 2 15 |
|
92 |
|
|
|
93 |
|
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a |
|
94 |
|
# compiler to aid in system detection is discouraged as it requires |
|
95 |
|
# temporary files to be created and, as you can see below, it is a |
|
96 |
|
# headache to deal with in a portable fashion. |
|
97 |
|
|
|
98 |
|
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still |
|
99 |
|
# use `HOST_CC' if defined, but it is deprecated. |
|
100 |
|
|
|
101 |
|
# Portable tmp directory creation inspired by the Autoconf team. |
|
102 |
|
|
|
103 |
|
set_cc_for_build=' |
|
104 |
|
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; |
|
105 |
|
trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; |
|
106 |
|
: ${TMPDIR=/tmp} ; |
|
107 |
|
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || |
|
108 |
|
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || |
|
109 |
|
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || |
|
110 |
|
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; |
|
111 |
|
dummy=$tmp/dummy ; |
|
112 |
|
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; |
|
113 |
|
case $CC_FOR_BUILD,$HOST_CC,$CC in |
|
114 |
|
,,) echo "int x;" > $dummy.c ; |
|
115 |
|
for c in cc gcc c89 c99 ; do |
|
116 |
|
if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then |
|
117 |
|
CC_FOR_BUILD="$c"; break ; |
|
118 |
|
fi ; |
|
119 |
|
done ; |
|
120 |
|
if test x"$CC_FOR_BUILD" = x ; then |
|
121 |
|
CC_FOR_BUILD=no_compiler_found ; |
|
122 |
|
fi |
|
123 |
|
;; |
|
124 |
|
,,*) CC_FOR_BUILD=$CC ;; |
|
125 |
|
,*,*) CC_FOR_BUILD=$HOST_CC ;; |
|
126 |
|
esac ;' |
|
127 |
|
|
|
128 |
|
# This is needed to find uname on a Pyramid OSx when run in the BSD universe. |
|
129 |
|
# (ghazi@noc.rutgers.edu 1994-08-24) |
|
130 |
|
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then |
|
131 |
|
PATH=$PATH:/.attbin ; export PATH |
|
132 |
|
fi |
|
133 |
|
|
|
134 |
|
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown |
|
135 |
|
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown |
|
136 |
|
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown |
|
137 |
|
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown |
|
138 |
|
|
|
139 |
|
# Note: order is significant - the case branches are not exclusive. |
|
140 |
|
|
|
141 |
|
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in |
|
142 |
|
*:NetBSD:*:*) |
|
143 |
|
# NetBSD (nbsd) targets should (where applicable) match one or |
|
144 |
|
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, |
|
145 |
|
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently |
|
146 |
|
# switched to ELF, *-*-netbsd* would select the old |
|
147 |
|
# object file format. This provides both forward |
|
148 |
|
# compatibility and a consistent mechanism for selecting the |
|
149 |
|
# object file format. |
|
150 |
|
# |
|
151 |
|
# Note: NetBSD doesn't particularly care about the vendor |
|
152 |
|
# portion of the name. We always set it to "unknown". |
|
153 |
|
sysctl="sysctl -n hw.machine_arch" |
|
154 |
|
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ |
|
155 |
|
/usr/sbin/$sysctl 2>/dev/null || echo unknown)` |
|
156 |
|
case "${UNAME_MACHINE_ARCH}" in |
|
157 |
|
armeb) machine=armeb-unknown ;; |
|
158 |
|
arm*) machine=arm-unknown ;; |
|
159 |
|
sh3el) machine=shl-unknown ;; |
|
160 |
|
sh3eb) machine=sh-unknown ;; |
|
161 |
|
*) machine=${UNAME_MACHINE_ARCH}-unknown ;; |
|
162 |
|
esac |
|
163 |
|
# The Operating System including object format, if it has switched |
|
164 |
|
# to ELF recently, or will in the future. |
|
165 |
|
case "${UNAME_MACHINE_ARCH}" in |
|
166 |
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax) |
|
167 |
|
eval $set_cc_for_build |
|
168 |
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ |
|
169 |
|
| grep __ELF__ >/dev/null |
|
170 |
|
then |
|
171 |
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). |
|
172 |
|
# Return netbsd for either. FIX? |
|
173 |
|
os=netbsd |
|
174 |
|
else |
|
175 |
|
os=netbsdelf |
|
176 |
|
fi |
|
177 |
|
;; |
|
178 |
|
*) |
|
179 |
|
os=netbsd |
|
180 |
|
;; |
|
181 |
|
esac |
|
182 |
|
# The OS release |
|
183 |
|
# Debian GNU/NetBSD machines have a different userland, and |
|
184 |
|
# thus, need a distinct triplet. However, they do not need |
|
185 |
|
# kernel version information, so it can be replaced with a |
|
186 |
|
# suitable tag, in the style of linux-gnu. |
|
187 |
|
case "${UNAME_VERSION}" in |
|
188 |
|
Debian*) |
|
189 |
|
release='-gnu' |
|
190 |
|
;; |
|
191 |
|
*) |
|
192 |
|
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` |
|
193 |
|
;; |
|
194 |
|
esac |
|
195 |
|
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: |
|
196 |
|
# contains redundant information, the shorter form: |
|
197 |
|
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. |
|
198 |
|
echo "${machine}-${os}${release}" |
|
199 |
|
exit 0 ;; |
|
200 |
|
amiga:OpenBSD:*:*) |
|
201 |
|
echo m68k-unknown-openbsd${UNAME_RELEASE} |
|
202 |
|
exit 0 ;; |
|
203 |
|
arc:OpenBSD:*:*) |
|
204 |
|
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
|
205 |
|
exit 0 ;; |
|
206 |
|
hp300:OpenBSD:*:*) |
|
207 |
|
echo m68k-unknown-openbsd${UNAME_RELEASE} |
|
208 |
|
exit 0 ;; |
|
209 |
|
mac68k:OpenBSD:*:*) |
|
210 |
|
echo m68k-unknown-openbsd${UNAME_RELEASE} |
|
211 |
|
exit 0 ;; |
|
212 |
|
macppc:OpenBSD:*:*) |
|
213 |
|
echo powerpc-unknown-openbsd${UNAME_RELEASE} |
|
214 |
|
exit 0 ;; |
|
215 |
|
mvme68k:OpenBSD:*:*) |
|
216 |
|
echo m68k-unknown-openbsd${UNAME_RELEASE} |
|
217 |
|
exit 0 ;; |
|
218 |
|
mvme88k:OpenBSD:*:*) |
|
219 |
|
echo m88k-unknown-openbsd${UNAME_RELEASE} |
|
220 |
|
exit 0 ;; |
|
221 |
|
mvmeppc:OpenBSD:*:*) |
|
222 |
|
echo powerpc-unknown-openbsd${UNAME_RELEASE} |
|
223 |
|
exit 0 ;; |
|
224 |
|
pmax:OpenBSD:*:*) |
|
225 |
|
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
|
226 |
|
exit 0 ;; |
|
227 |
|
sgi:OpenBSD:*:*) |
|
228 |
|
echo mipseb-unknown-openbsd${UNAME_RELEASE} |
|
229 |
|
exit 0 ;; |
|
230 |
|
sun3:OpenBSD:*:*) |
|
231 |
|
echo m68k-unknown-openbsd${UNAME_RELEASE} |
|
232 |
|
exit 0 ;; |
|
233 |
|
wgrisc:OpenBSD:*:*) |
|
234 |
|
echo mipsel-unknown-openbsd${UNAME_RELEASE} |
|
235 |
|
exit 0 ;; |
|
236 |
|
*:OpenBSD:*:*) |
|
237 |
|
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} |
|
238 |
|
exit 0 ;; |
|
239 |
|
alpha:OSF1:*:*) |
|
240 |
|
if test $UNAME_RELEASE = "V4.0"; then |
|
241 |
|
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` |
|
242 |
|
fi |
|
243 |
|
# According to Compaq, /usr/sbin/psrinfo has been available on |
|
244 |
|
# OSF/1 and Tru64 systems produced since 1995. I hope that |
|
245 |
|
# covers most systems running today. This code pipes the CPU |
|
246 |
|
# types through head -n 1, so we only detect the type of CPU 0. |
|
247 |
|
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` |
|
248 |
|
case "$ALPHA_CPU_TYPE" in |
|
249 |
|
"EV4 (21064)") |
|
250 |
|
UNAME_MACHINE="alpha" ;; |
|
251 |
|
"EV4.5 (21064)") |
|
252 |
|
UNAME_MACHINE="alpha" ;; |
|
253 |
|
"LCA4 (21066/21068)") |
|
254 |
|
UNAME_MACHINE="alpha" ;; |
|
255 |
|
"EV5 (21164)") |
|
256 |
|
UNAME_MACHINE="alphaev5" ;; |
|
257 |
|
"EV5.6 (21164A)") |
|
258 |
|
UNAME_MACHINE="alphaev56" ;; |
|
259 |
|
"EV5.6 (21164PC)") |
|
260 |
|
UNAME_MACHINE="alphapca56" ;; |
|
261 |
|
"EV5.7 (21164PC)") |
|
262 |
|
UNAME_MACHINE="alphapca57" ;; |
|
263 |
|
"EV6 (21264)") |
|
264 |
|
UNAME_MACHINE="alphaev6" ;; |
|
265 |
|
"EV6.7 (21264A)") |
|
266 |
|
UNAME_MACHINE="alphaev67" ;; |
|
267 |
|
"EV6.8CB (21264C)") |
|
268 |
|
UNAME_MACHINE="alphaev68" ;; |
|
269 |
|
"EV6.8AL (21264B)") |
|
270 |
|
UNAME_MACHINE="alphaev68" ;; |
|
271 |
|
"EV6.8CX (21264D)") |
|
272 |
|
UNAME_MACHINE="alphaev68" ;; |
|
273 |
|
"EV6.9A (21264/EV69A)") |
|
274 |
|
UNAME_MACHINE="alphaev69" ;; |
|
275 |
|
"EV7 (21364)") |
|
276 |
|
UNAME_MACHINE="alphaev7" ;; |
|
277 |
|
"EV7.9 (21364A)") |
|
278 |
|
UNAME_MACHINE="alphaev79" ;; |
|
279 |
|
esac |
|
280 |
|
# A Vn.n version is a released version. |
|
281 |
|
# A Tn.n version is a released field test version. |
|
282 |
|
# A Xn.n version is an unreleased experimental baselevel. |
|
283 |
|
# 1.2 uses "1.2" for uname -r. |
|
284 |
|
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
|
285 |
|
exit 0 ;; |
|
286 |
|
Alpha*:OpenVMS:*:*) |
|
287 |
|
echo alpha-hp-vms |
|
288 |
|
exit 0 ;; |
|
289 |
|
Alpha\ *:Windows_NT*:*) |
|
290 |
|
# How do we know it's Interix rather than the generic POSIX subsystem? |
|
291 |
|
# Should we change UNAME_MACHINE based on the output of uname instead |
|
292 |
|
# of the specific Alpha model? |
|
293 |
|
echo alpha-pc-interix |
|
294 |
|
exit 0 ;; |
|
295 |
|
21064:Windows_NT:50:3) |
|
296 |
|
echo alpha-dec-winnt3.5 |
|
297 |
|
exit 0 ;; |
|
298 |
|
Amiga*:UNIX_System_V:4.0:*) |
|
299 |
|
echo m68k-unknown-sysv4 |
|
300 |
|
exit 0;; |
|
301 |
|
*:[Aa]miga[Oo][Ss]:*:*) |
|
302 |
|
echo ${UNAME_MACHINE}-unknown-amigaos |
|
303 |
|
exit 0 ;; |
|
304 |
|
*:[Mm]orph[Oo][Ss]:*:*) |
|
305 |
|
echo ${UNAME_MACHINE}-unknown-morphos |
|
306 |
|
exit 0 ;; |
|
307 |
|
*:OS/390:*:*) |
|
308 |
|
echo i370-ibm-openedition |
|
309 |
|
exit 0 ;; |
|
310 |
|
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) |
|
311 |
|
echo arm-acorn-riscix${UNAME_RELEASE} |
|
312 |
|
exit 0;; |
|
313 |
|
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) |
|
314 |
|
echo hppa1.1-hitachi-hiuxmpp |
|
315 |
|
exit 0;; |
|
316 |
|
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) |
|
317 |
|
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. |
|
318 |
|
if test "`(/bin/universe) 2>/dev/null`" = att ; then |
|
319 |
|
echo pyramid-pyramid-sysv3 |
|
320 |
|
else |
|
321 |
|
echo pyramid-pyramid-bsd |
|
322 |
|
fi |
|
323 |
|
exit 0 ;; |
|
324 |
|
NILE*:*:*:dcosx) |
|
325 |
|
echo pyramid-pyramid-svr4 |
|
326 |
|
exit 0 ;; |
|
327 |
|
DRS?6000:unix:4.0:6*) |
|
328 |
|
echo sparc-icl-nx6 |
|
329 |
|
exit 0 ;; |
|
330 |
|
DRS?6000:UNIX_SV:4.2*:7*) |
|
331 |
|
case `/usr/bin/uname -p` in |
|
332 |
|
sparc) echo sparc-icl-nx7 && exit 0 ;; |
|
333 |
|
esac ;; |
|
334 |
|
sun4H:SunOS:5.*:*) |
|
335 |
|
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
|
336 |
|
exit 0 ;; |
|
337 |
|
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) |
|
338 |
|
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
|
339 |
|
exit 0 ;; |
|
340 |
|
i86pc:SunOS:5.*:*) |
|
341 |
|
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
|
342 |
|
exit 0 ;; |
|
343 |
|
sun4*:SunOS:6*:*) |
|
344 |
|
# According to config.sub, this is the proper way to canonicalize |
|
345 |
|
# SunOS6. Hard to guess exactly what SunOS6 will be like, but |
|
346 |
|
# it's likely to be more like Solaris than SunOS4. |
|
347 |
|
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
|
348 |
|
exit 0 ;; |
|
349 |
|
sun4*:SunOS:*:*) |
|
350 |
|
case "`/usr/bin/arch -k`" in |
|
351 |
|
Series*|S4*) |
|
352 |
|
UNAME_RELEASE=`uname -v` |
|
353 |
|
;; |
|
354 |
|
esac |
|
355 |
|
# Japanese Language versions have a version number like `4.1.3-JL'. |
|
356 |
|
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` |
|
357 |
|
exit 0 ;; |
|
358 |
|
sun3*:SunOS:*:*) |
|
359 |
|
echo m68k-sun-sunos${UNAME_RELEASE} |
|
360 |
|
exit 0 ;; |
|
361 |
|
sun*:*:4.2BSD:*) |
|
362 |
|
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` |
|
363 |
|
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 |
|
364 |
|
case "`/bin/arch`" in |
|
365 |
|
sun3) |
|
366 |
|
echo m68k-sun-sunos${UNAME_RELEASE} |
|
367 |
|
;; |
|
368 |
|
sun4) |
|
369 |
|
echo sparc-sun-sunos${UNAME_RELEASE} |
|
370 |
|
;; |
|
371 |
|
esac |
|
372 |
|
exit 0 ;; |
|
373 |
|
aushp:SunOS:*:*) |
|
374 |
|
echo sparc-auspex-sunos${UNAME_RELEASE} |
|
375 |
|
exit 0 ;; |
|
376 |
|
# The situation for MiNT is a little confusing. The machine name |
|
377 |
|
# can be virtually everything (everything which is not |
|
378 |
|
# "atarist" or "atariste" at least should have a processor |
|
379 |
|
# > m68000). The system name ranges from "MiNT" over "FreeMiNT" |
|
380 |
|
# to the lowercase version "mint" (or "freemint"). Finally |
|
381 |
|
# the system name "TOS" denotes a system which is actually not |
|
382 |
|
# MiNT. But MiNT is downward compatible to TOS, so this should |
|
383 |
|
# be no problem. |
|
384 |
|
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) |
|
385 |
|
echo m68k-atari-mint${UNAME_RELEASE} |
|
386 |
|
exit 0 ;; |
|
387 |
|
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) |
|
388 |
|
echo m68k-atari-mint${UNAME_RELEASE} |
|
389 |
|
exit 0 ;; |
|
390 |
|
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) |
|
391 |
|
echo m68k-atari-mint${UNAME_RELEASE} |
|
392 |
|
exit 0 ;; |
|
393 |
|
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) |
|
394 |
|
echo m68k-milan-mint${UNAME_RELEASE} |
|
395 |
|
exit 0 ;; |
|
396 |
|
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) |
|
397 |
|
echo m68k-hades-mint${UNAME_RELEASE} |
|
398 |
|
exit 0 ;; |
|
399 |
|
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) |
|
400 |
|
echo m68k-unknown-mint${UNAME_RELEASE} |
|
401 |
|
exit 0 ;; |
|
402 |
|
powerpc:machten:*:*) |
|
403 |
|
echo powerpc-apple-machten${UNAME_RELEASE} |
|
404 |
|
exit 0 ;; |
|
405 |
|
RISC*:Mach:*:*) |
|
406 |
|
echo mips-dec-mach_bsd4.3 |
|
407 |
|
exit 0 ;; |
|
408 |
|
RISC*:ULTRIX:*:*) |
|
409 |
|
echo mips-dec-ultrix${UNAME_RELEASE} |
|
410 |
|
exit 0 ;; |
|
411 |
|
VAX*:ULTRIX*:*:*) |
|
412 |
|
echo vax-dec-ultrix${UNAME_RELEASE} |
|
413 |
|
exit 0 ;; |
|
414 |
|
2020:CLIX:*:* | 2430:CLIX:*:*) |
|
415 |
|
echo clipper-intergraph-clix${UNAME_RELEASE} |
|
416 |
|
exit 0 ;; |
|
417 |
|
mips:*:*:UMIPS | mips:*:*:RISCos) |
|
418 |
|
eval $set_cc_for_build |
|
419 |
|
sed 's/^ //' << EOF >$dummy.c |
|
420 |
|
#ifdef __cplusplus |
|
421 |
|
#include <stdio.h> /* for printf() prototype */ |
|
422 |
|
int main (int argc, char *argv[]) { |
|
423 |
|
#else |
|
424 |
|
int main (argc, argv) int argc; char *argv[]; { |
|
425 |
|
#endif |
|
426 |
|
#if defined (host_mips) && defined (MIPSEB) |
|
427 |
|
#if defined (SYSTYPE_SYSV) |
|
428 |
|
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); |
|
429 |
|
#endif |
|
430 |
|
#if defined (SYSTYPE_SVR4) |
|
431 |
|
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); |
|
432 |
|
#endif |
|
433 |
|
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) |
|
434 |
|
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); |
|
435 |
|
#endif |
|
436 |
|
#endif |
|
437 |
|
exit (-1); |
|
438 |
|
} |
|
439 |
|
EOF |
|
440 |
|
$CC_FOR_BUILD -o $dummy $dummy.c \ |
|
441 |
|
&& $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ |
|
442 |
|
&& exit 0 |
|
443 |
|
echo mips-mips-riscos${UNAME_RELEASE} |
|
444 |
|
exit 0 ;; |
|
445 |
|
Motorola:PowerMAX_OS:*:*) |
|
446 |
|
echo powerpc-motorola-powermax |
|
447 |
|
exit 0 ;; |
|
448 |
|
Motorola:*:4.3:PL8-*) |
|
449 |
|
echo powerpc-harris-powermax |
|
450 |
|
exit 0 ;; |
|
451 |
|
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) |
|
452 |
|
echo powerpc-harris-powermax |
|
453 |
|
exit 0 ;; |
|
454 |
|
Night_Hawk:Power_UNIX:*:*) |
|
455 |
|
echo powerpc-harris-powerunix |
|
456 |
|
exit 0 ;; |
|
457 |
|
m88k:CX/UX:7*:*) |
|
458 |
|
echo m88k-harris-cxux7 |
|
459 |
|
exit 0 ;; |
|
460 |
|
m88k:*:4*:R4*) |
|
461 |
|
echo m88k-motorola-sysv4 |
|
462 |
|
exit 0 ;; |
|
463 |
|
m88k:*:3*:R3*) |
|
464 |
|
echo m88k-motorola-sysv3 |
|
465 |
|
exit 0 ;; |
|
466 |
|
AViiON:dgux:*:*) |
|
467 |
|
# DG/UX returns AViiON for all architectures |
|
468 |
|
UNAME_PROCESSOR=`/usr/bin/uname -p` |
|
469 |
|
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] |
|
470 |
|
then |
|
471 |
|
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ |
|
472 |
|
[ ${TARGET_BINARY_INTERFACE}x = x ] |
|
473 |
|
then |
|
474 |
|
echo m88k-dg-dgux${UNAME_RELEASE} |
|
475 |
|
else |
|
476 |
|
echo m88k-dg-dguxbcs${UNAME_RELEASE} |
|
477 |
|
fi |
|
478 |
|
else |
|
479 |
|
echo i586-dg-dgux${UNAME_RELEASE} |
|
480 |
|
fi |
|
481 |
|
exit 0 ;; |
|
482 |
|
M88*:DolphinOS:*:*) # DolphinOS (SVR3) |
|
483 |
|
echo m88k-dolphin-sysv3 |
|
484 |
|
exit 0 ;; |
|
485 |
|
M88*:*:R3*:*) |
|
486 |
|
# Delta 88k system running SVR3 |
|
487 |
|
echo m88k-motorola-sysv3 |
|
488 |
|
exit 0 ;; |
|
489 |
|
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) |
|
490 |
|
echo m88k-tektronix-sysv3 |
|
491 |
|
exit 0 ;; |
|
492 |
|
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) |
|
493 |
|
echo m68k-tektronix-bsd |
|
494 |
|
exit 0 ;; |
|
495 |
|
*:IRIX*:*:*) |
|
496 |
|
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` |
|
497 |
|
exit 0 ;; |
|
498 |
|
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. |
|
499 |
|
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id |
|
500 |
|
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' |
|
501 |
|
i*86:AIX:*:*) |
|
502 |
|
echo i386-ibm-aix |
|
503 |
|
exit 0 ;; |
|
504 |
|
ia64:AIX:*:*) |
|
505 |
|
if [ -x /usr/bin/oslevel ] ; then |
|
506 |
|
IBM_REV=`/usr/bin/oslevel` |
|
507 |
|
else |
|
508 |
|
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} |
|
509 |
|
fi |
|
510 |
|
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} |
|
511 |
|
exit 0 ;; |
|
512 |
|
*:AIX:2:3) |
|
513 |
|
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then |
|
514 |
|
eval $set_cc_for_build |
|
515 |
|
sed 's/^ //' << EOF >$dummy.c |
|
516 |
|
#include <sys/systemcfg.h> |
|
517 |
|
|
|
518 |
|
main() |
|
519 |
|
{ |
|
520 |
|
if (!__power_pc()) |
|
521 |
|
exit(1); |
|
522 |
|
puts("powerpc-ibm-aix3.2.5"); |
|
523 |
|
exit(0); |
|
524 |
|
} |
|
525 |
|
EOF |
|
526 |
|
$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 |
|
527 |
|
echo rs6000-ibm-aix3.2.5 |
|
528 |
|
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then |
|
529 |
|
echo rs6000-ibm-aix3.2.4 |
|
530 |
|
else |
|
531 |
|
echo rs6000-ibm-aix3.2 |
|
532 |
|
fi |
|
533 |
|
exit 0 ;; |
|
534 |
|
*:AIX:*:[45]) |
|
535 |
|
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` |
|
536 |
|
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then |
|
537 |
|
IBM_ARCH=rs6000 |
|
538 |
|
else |
|
539 |
|
IBM_ARCH=powerpc |
|
540 |
|
fi |
|
541 |
|
if [ -x /usr/bin/oslevel ] ; then |
|
542 |
|
IBM_REV=`/usr/bin/oslevel` |
|
543 |
|
else |
|
544 |
|
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} |
|
545 |
|
fi |
|
546 |
|
echo ${IBM_ARCH}-ibm-aix${IBM_REV} |
|
547 |
|
exit 0 ;; |
|
548 |
|
*:AIX:*:*) |
|
549 |
|
echo rs6000-ibm-aix |
|
550 |
|
exit 0 ;; |
|
551 |
|
ibmrt:4.4BSD:*|romp-ibm:BSD:*) |
|
552 |
|
echo romp-ibm-bsd4.4 |
|
553 |
|
exit 0 ;; |
|
554 |
|
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and |
|
555 |
|
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to |
|
556 |
|
exit 0 ;; # report: romp-ibm BSD 4.3 |
|
557 |
|
*:BOSX:*:*) |
|
558 |
|
echo rs6000-bull-bosx |
|
559 |
|
exit 0 ;; |
|
560 |
|
DPX/2?00:B.O.S.:*:*) |
|
561 |
|
echo m68k-bull-sysv3 |
|
562 |
|
exit 0 ;; |
|
563 |
|
9000/[34]??:4.3bsd:1.*:*) |
|
564 |
|
echo m68k-hp-bsd |
|
565 |
|
exit 0 ;; |
|
566 |
|
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) |
|
567 |
|
echo m68k-hp-bsd4.4 |
|
568 |
|
exit 0 ;; |
|
569 |
|
9000/[34678]??:HP-UX:*:*) |
|
570 |
|
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` |
|
571 |
|
case "${UNAME_MACHINE}" in |
|
572 |
|
9000/31? ) HP_ARCH=m68000 ;; |
|
573 |
|
9000/[34]?? ) HP_ARCH=m68k ;; |
|
574 |
|
9000/[678][0-9][0-9]) |
|
575 |
|
if [ -x /usr/bin/getconf ]; then |
|
576 |
|
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` |
|
577 |
|
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` |
|
578 |
|
case "${sc_cpu_version}" in |
|
579 |
|
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 |
|
580 |
|
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 |
|
581 |
|
532) # CPU_PA_RISC2_0 |
|
582 |
|
case "${sc_kernel_bits}" in |
|
583 |
|
32) HP_ARCH="hppa2.0n" ;; |
|
584 |
|
64) HP_ARCH="hppa2.0w" ;; |
|
585 |
|
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 |
|
586 |
|
esac ;; |
|
587 |
|
esac |
|
588 |
|
fi |
|
589 |
|
if [ "${HP_ARCH}" = "" ]; then |
|
590 |
|
eval $set_cc_for_build |
|
591 |
|
sed 's/^ //' << EOF >$dummy.c |
|
592 |
|
|
|
593 |
|
#define _HPUX_SOURCE |
|
594 |
|
#include <stdlib.h> |
|
595 |
|
#include <unistd.h> |
|
596 |
|
|
|
597 |
|
int main () |
|
598 |
|
{ |
|
599 |
|
#if defined(_SC_KERNEL_BITS) |
|
600 |
|
long bits = sysconf(_SC_KERNEL_BITS); |
|
601 |
|
#endif |
|
602 |
|
long cpu = sysconf (_SC_CPU_VERSION); |
|
603 |
|
|
|
604 |
|
switch (cpu) |
|
605 |
|
{ |
|
606 |
|
case CPU_PA_RISC1_0: puts ("hppa1.0"); break; |
|
607 |
|
case CPU_PA_RISC1_1: puts ("hppa1.1"); break; |
|
608 |
|
case CPU_PA_RISC2_0: |
|
609 |
|
#if defined(_SC_KERNEL_BITS) |
|
610 |
|
switch (bits) |
|
611 |
|
{ |
|
612 |
|
case 64: puts ("hppa2.0w"); break; |
|
613 |
|
case 32: puts ("hppa2.0n"); break; |
|
614 |
|
default: puts ("hppa2.0"); break; |
|
615 |
|
} break; |
|
616 |
|
#else /* !defined(_SC_KERNEL_BITS) */ |
|
617 |
|
puts ("hppa2.0"); break; |
|
618 |
|
#endif |
|
619 |
|
default: puts ("hppa1.0"); break; |
|
620 |
|
} |
|
621 |
|
exit (0); |
|
622 |
|
} |
|
623 |
|
EOF |
|
624 |
|
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` |
|
625 |
|
test -z "$HP_ARCH" && HP_ARCH=hppa |
|
626 |
|
fi ;; |
|
627 |
|
esac |
|
628 |
|
if [ ${HP_ARCH} = "hppa2.0w" ] |
|
629 |
|
then |
|
630 |
|
# avoid double evaluation of $set_cc_for_build |
|
631 |
|
test -n "$CC_FOR_BUILD" || eval $set_cc_for_build |
|
632 |
|
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null |
|
633 |
|
then |
|
634 |
|
HP_ARCH="hppa2.0w" |
|
635 |
|
else |
|
636 |
|
HP_ARCH="hppa64" |
|
637 |
|
fi |
|
638 |
|
fi |
|
639 |
|
echo ${HP_ARCH}-hp-hpux${HPUX_REV} |
|
640 |
|
exit 0 ;; |
|
641 |
|
ia64:HP-UX:*:*) |
|
642 |
|
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` |
|
643 |
|
echo ia64-hp-hpux${HPUX_REV} |
|
644 |
|
exit 0 ;; |
|
645 |
|
3050*:HI-UX:*:*) |
|
646 |
|
eval $set_cc_for_build |
|
647 |
|
sed 's/^ //' << EOF >$dummy.c |
|
648 |
|
#include <unistd.h> |
|
649 |
|
int |
|
650 |
|
main () |
|
651 |
|
{ |
|
652 |
|
long cpu = sysconf (_SC_CPU_VERSION); |
|
653 |
|
/* The order matters, because CPU_IS_HP_MC68K erroneously returns |
|
654 |
|
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct |
|
655 |
|
results, however. */ |
|
656 |
|
if (CPU_IS_PA_RISC (cpu)) |
|
657 |
|
{ |
|
658 |
|
switch (cpu) |
|
659 |
|
{ |
|
660 |
|
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; |
|
661 |
|
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; |
|
662 |
|
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; |
|
663 |
|
default: puts ("hppa-hitachi-hiuxwe2"); break; |
|
664 |
|
} |
|
665 |
|
} |
|
666 |
|
else if (CPU_IS_HP_MC68K (cpu)) |
|
667 |
|
puts ("m68k-hitachi-hiuxwe2"); |
|
668 |
|
else puts ("unknown-hitachi-hiuxwe2"); |
|
669 |
|
exit (0); |
|
670 |
|
} |
|
671 |
|
EOF |
|
672 |
|
$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0 |
|
673 |
|
echo unknown-hitachi-hiuxwe2 |
|
674 |
|
exit 0 ;; |
|
675 |
|
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) |
|
676 |
|
echo hppa1.1-hp-bsd |
|
677 |
|
exit 0 ;; |
|
678 |
|
9000/8??:4.3bsd:*:*) |
|
679 |
|
echo hppa1.0-hp-bsd |
|
680 |
|
exit 0 ;; |
|
681 |
|
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) |
|
682 |
|
echo hppa1.0-hp-mpeix |
|
683 |
|
exit 0 ;; |
|
684 |
|
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) |
|
685 |
|
echo hppa1.1-hp-osf |
|
686 |
|
exit 0 ;; |
|
687 |
|
hp8??:OSF1:*:*) |
|
688 |
|
echo hppa1.0-hp-osf |
|
689 |
|
exit 0 ;; |
|
690 |
|
i*86:OSF1:*:*) |
|
691 |
|
if [ -x /usr/sbin/sysversion ] ; then |
|
692 |
|
echo ${UNAME_MACHINE}-unknown-osf1mk |
|
693 |
|
else |
|
694 |
|
echo ${UNAME_MACHINE}-unknown-osf1 |
|
695 |
|
fi |
|
696 |
|
exit 0 ;; |
|
697 |
|
parisc*:Lites*:*:*) |
|
698 |
|
echo hppa1.1-hp-lites |
|
699 |
|
exit 0 ;; |
|
700 |
|
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) |
|
701 |
|
echo c1-convex-bsd |
|
702 |
|
exit 0 ;; |
|
703 |
|
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) |
|
704 |
|
if getsysinfo -f scalar_acc |
|
705 |
|
then echo c32-convex-bsd |
|
706 |
|
else echo c2-convex-bsd |
|
707 |
|
fi |
|
708 |
|
exit 0 ;; |
|
709 |
|
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) |
|
710 |
|
echo c34-convex-bsd |
|
711 |
|
exit 0 ;; |
|
712 |
|
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) |
|
713 |
|
echo c38-convex-bsd |
|
714 |
|
exit 0 ;; |
|
715 |
|
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) |
|
716 |
|
echo c4-convex-bsd |
|
717 |
|
exit 0 ;; |
|
718 |
|
CRAY*Y-MP:*:*:*) |
|
719 |
|
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
|
720 |
|
exit 0 ;; |
|
721 |
|
CRAY*[A-Z]90:*:*:*) |
|
722 |
|
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ |
|
723 |
|
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ |
|
724 |
|
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ |
|
725 |
|
-e 's/\.[^.]*$/.X/' |
|
726 |
|
exit 0 ;; |
|
727 |
|
CRAY*TS:*:*:*) |
|
728 |
|
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
|
729 |
|
exit 0 ;; |
|
730 |
|
CRAY*T3E:*:*:*) |
|
731 |
|
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
|
732 |
|
exit 0 ;; |
|
733 |
|
CRAY*SV1:*:*:*) |
|
734 |
|
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
|
735 |
|
exit 0 ;; |
|
736 |
|
*:UNICOS/mp:*:*) |
|
737 |
|
echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' |
|
738 |
|
exit 0 ;; |
|
739 |
|
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) |
|
740 |
|
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` |
|
741 |
|
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` |
|
742 |
|
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` |
|
743 |
|
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" |
|
744 |
|
exit 0 ;; |
|
745 |
|
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) |
|
746 |
|
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} |
|
747 |
|
exit 0 ;; |
|
748 |
|
sparc*:BSD/OS:*:*) |
|
749 |
|
echo sparc-unknown-bsdi${UNAME_RELEASE} |
|
750 |
|
exit 0 ;; |
|
751 |
|
*:BSD/OS:*:*) |
|
752 |
|
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} |
|
753 |
|
exit 0 ;; |
|
754 |
|
*:FreeBSD:*:*|*:GNU/FreeBSD:*:*) |
|
755 |
|
# Determine whether the default compiler uses glibc. |
|
756 |
|
eval $set_cc_for_build |
|
757 |
|
sed 's/^ //' << EOF >$dummy.c |
|
758 |
|
#include <features.h> |
|
759 |
|
#if __GLIBC__ >= 2 |
|
760 |
|
LIBC=gnu |
|
761 |
|
#else |
|
762 |
|
LIBC= |
|
763 |
|
#endif |
|
764 |
|
EOF |
|
765 |
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` |
|
766 |
|
# GNU/FreeBSD systems have a "k" prefix to indicate we are using |
|
767 |
|
# FreeBSD's kernel, but not the complete OS. |
|
768 |
|
case ${LIBC} in gnu) kernel_only='k' ;; esac |
|
769 |
|
echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} |
|
770 |
|
exit 0 ;; |
|
771 |
|
i*:CYGWIN*:*) |
|
772 |
|
echo ${UNAME_MACHINE}-pc-cygwin |
|
773 |
|
exit 0 ;; |
|
774 |
|
i*:MINGW*:*) |
|
775 |
|
echo ${UNAME_MACHINE}-pc-mingw32 |
|
776 |
|
exit 0 ;; |
|
777 |
|
i*:PW*:*) |
|
778 |
|
echo ${UNAME_MACHINE}-pc-pw32 |
|
779 |
|
exit 0 ;; |
|
780 |
|
x86:Interix*:[34]*) |
|
781 |
|
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' |
|
782 |
|
exit 0 ;; |
|
783 |
|
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) |
|
784 |
|
echo i${UNAME_MACHINE}-pc-mks |
|
785 |
|
exit 0 ;; |
|
786 |
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*) |
|
787 |
|
# How do we know it's Interix rather than the generic POSIX subsystem? |
|
788 |
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we |
|
789 |
|
# UNAME_MACHINE based on the output of uname instead of i386? |
|
790 |
|
echo i586-pc-interix |
|
791 |
|
exit 0 ;; |
|
792 |
|
i*:UWIN*:*) |
|
793 |
|
echo ${UNAME_MACHINE}-pc-uwin |
|
794 |
|
exit 0 ;; |
|
795 |
|
p*:CYGWIN*:*) |
|
796 |
|
echo powerpcle-unknown-cygwin |
|
797 |
|
exit 0 ;; |
|
798 |
|
prep*:SunOS:5.*:*) |
|
799 |
|
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` |
|
800 |
|
exit 0 ;; |
|
801 |
|
*:GNU:*:*) |
|
802 |
|
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` |
|
803 |
|
exit 0 ;; |
|
804 |
|
i*86:Minix:*:*) |
|
805 |
|
echo ${UNAME_MACHINE}-pc-minix |
|
806 |
|
exit 0 ;; |
|
807 |
|
arm*:Linux:*:*) |
|
808 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
809 |
|
exit 0 ;; |
|
810 |
|
cris:Linux:*:*) |
|
811 |
|
echo cris-axis-linux-gnu |
|
812 |
|
exit 0 ;; |
|
813 |
|
ia64:Linux:*:*) |
|
814 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
815 |
|
exit 0 ;; |
|
816 |
|
m68*:Linux:*:*) |
|
817 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
818 |
|
exit 0 ;; |
|
819 |
|
mips:Linux:*:*) |
|
820 |
|
eval $set_cc_for_build |
|
821 |
|
sed 's/^ //' << EOF >$dummy.c |
|
822 |
|
#undef CPU |
|
823 |
|
#undef mips |
|
824 |
|
#undef mipsel |
|
825 |
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
|
826 |
|
CPU=mipsel |
|
827 |
|
#else |
|
828 |
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
|
829 |
|
CPU=mips |
|
830 |
|
#else |
|
831 |
|
CPU= |
|
832 |
|
#endif |
|
833 |
|
#endif |
|
834 |
|
EOF |
|
835 |
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` |
|
836 |
|
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 |
|
837 |
|
;; |
|
838 |
|
mips64:Linux:*:*) |
|
839 |
|
eval $set_cc_for_build |
|
840 |
|
sed 's/^ //' << EOF >$dummy.c |
|
841 |
|
#undef CPU |
|
842 |
|
#undef mips64 |
|
843 |
|
#undef mips64el |
|
844 |
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) |
|
845 |
|
CPU=mips64el |
|
846 |
|
#else |
|
847 |
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) |
|
848 |
|
CPU=mips64 |
|
849 |
|
#else |
|
850 |
|
CPU= |
|
851 |
|
#endif |
|
852 |
|
#endif |
|
853 |
|
EOF |
|
854 |
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` |
|
855 |
|
test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0 |
|
856 |
|
;; |
|
857 |
|
ppc:Linux:*:*) |
|
858 |
|
echo powerpc-unknown-linux-gnu |
|
859 |
|
exit 0 ;; |
|
860 |
|
ppc64:Linux:*:*) |
|
861 |
|
echo powerpc64-unknown-linux-gnu |
|
862 |
|
exit 0 ;; |
|
863 |
|
alpha:Linux:*:*) |
|
864 |
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in |
|
865 |
|
EV5) UNAME_MACHINE=alphaev5 ;; |
|
866 |
|
EV56) UNAME_MACHINE=alphaev56 ;; |
|
867 |
|
PCA56) UNAME_MACHINE=alphapca56 ;; |
|
868 |
|
PCA57) UNAME_MACHINE=alphapca56 ;; |
|
869 |
|
EV6) UNAME_MACHINE=alphaev6 ;; |
|
870 |
|
EV67) UNAME_MACHINE=alphaev67 ;; |
|
871 |
|
EV68*) UNAME_MACHINE=alphaev68 ;; |
|
872 |
|
esac |
|
873 |
|
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null |
|
874 |
|
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi |
|
875 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} |
|
876 |
|
exit 0 ;; |
|
877 |
|
parisc:Linux:*:* | hppa:Linux:*:*) |
|
878 |
|
# Look for CPU level |
|
879 |
|
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in |
|
880 |
|
PA7*) echo hppa1.1-unknown-linux-gnu ;; |
|
881 |
|
PA8*) echo hppa2.0-unknown-linux-gnu ;; |
|
882 |
|
*) echo hppa-unknown-linux-gnu ;; |
|
883 |
|
esac |
|
884 |
|
exit 0 ;; |
|
885 |
|
parisc64:Linux:*:* | hppa64:Linux:*:*) |
|
886 |
|
echo hppa64-unknown-linux-gnu |
|
887 |
|
exit 0 ;; |
|
888 |
|
s390:Linux:*:* | s390x:Linux:*:*) |
|
889 |
|
echo ${UNAME_MACHINE}-ibm-linux |
|
890 |
|
exit 0 ;; |
|
891 |
|
sh64*:Linux:*:*) |
|
892 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
893 |
|
exit 0 ;; |
|
894 |
|
sh*:Linux:*:*) |
|
895 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
896 |
|
exit 0 ;; |
|
897 |
|
sparc:Linux:*:* | sparc64:Linux:*:*) |
|
898 |
|
echo ${UNAME_MACHINE}-unknown-linux-gnu |
|
899 |
|
exit 0 ;; |
|
900 |
|
x86_64:Linux:*:*) |
|
901 |
|
echo x86_64-unknown-linux-gnu |
|
902 |
|
exit 0 ;; |
|
903 |
|
i*86:Linux:*:*) |
|
904 |
|
# The BFD linker knows what the default object file format is, so |
|
905 |
|
# first see if it will tell us. cd to the root directory to prevent |
|
906 |
|
# problems with other programs or directories called `ld' in the path. |
|
907 |
|
# Set LC_ALL=C to ensure ld outputs messages in English. |
|
908 |
|
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ |
|
909 |
|
| sed -ne '/supported targets:/!d |
|
910 |
|
s/[ ][ ]*/ /g |
|
911 |
|
s/.*supported targets: *// |
|
912 |
|
s/ .*// |
|
913 |
|
p'` |
|
914 |
|
case "$ld_supported_targets" in |
|
915 |
|
elf32-i386) |
|
916 |
|
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" |
|
917 |
|
;; |
|
918 |
|
a.out-i386-linux) |
|
919 |
|
echo "${UNAME_MACHINE}-pc-linux-gnuaout" |
|
920 |
|
exit 0 ;; |
|
921 |
|
coff-i386) |
|
922 |
|
echo "${UNAME_MACHINE}-pc-linux-gnucoff" |
|
923 |
|
exit 0 ;; |
|
924 |
|
"") |
|
925 |
|
# Either a pre-BFD a.out linker (linux-gnuoldld) or |
|
926 |
|
# one that does not give us useful --help. |
|
927 |
|
echo "${UNAME_MACHINE}-pc-linux-gnuoldld" |
|
928 |
|
exit 0 ;; |
|
929 |
|
esac |
|
930 |
|
# Determine whether the default compiler is a.out or elf |
|
931 |
|
eval $set_cc_for_build |
|
932 |
|
sed 's/^ //' << EOF >$dummy.c |
|
933 |
|
#include <features.h> |
|
934 |
|
#ifdef __ELF__ |
|
935 |
|
# ifdef __GLIBC__ |
|
936 |
|
# if __GLIBC__ >= 2 |
|
937 |
|
LIBC=gnu |
|
938 |
|
# else |
|
939 |
|
LIBC=gnulibc1 |
|
940 |
|
# endif |
|
941 |
|
# else |
|
942 |
|
LIBC=gnulibc1 |
|
943 |
|
# endif |
|
944 |
|
#else |
|
945 |
|
#ifdef __INTEL_COMPILER |
|
946 |
|
LIBC=gnu |
|
947 |
|
#else |
|
948 |
|
LIBC=gnuaout |
|
949 |
|
#endif |
|
950 |
|
#endif |
|
951 |
|
#ifdef __dietlibc__ |
|
952 |
|
LIBC=dietlibc |
|
953 |
|
#endif |
|
954 |
|
EOF |
|
955 |
|
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` |
|
956 |
|
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 |
|
957 |
|
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 |
|
958 |
|
;; |
|
959 |
|
i*86:DYNIX/ptx:4*:*) |
|
960 |
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. |
|
961 |
|
# earlier versions are messed up and put the nodename in both |
|
962 |
|
# sysname and nodename. |
|
963 |
|
echo i386-sequent-sysv4 |
|
964 |
|
exit 0 ;; |
|
965 |
|
i*86:UNIX_SV:4.2MP:2.*) |
|
966 |
|
# Unixware is an offshoot of SVR4, but it has its own version |
|
967 |
|
# number series starting with 2... |
|
968 |
|
# I am not positive that other SVR4 systems won't match this, |
|
969 |
|
# I just have to hope. -- rms. |
|
970 |
|
# Use sysv4.2uw... so that sysv4* matches it. |
|
971 |
|
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} |
|
972 |
|
exit 0 ;; |
|
973 |
|
i*86:OS/2:*:*) |
|
974 |
|
# If we were able to find `uname', then EMX Unix compatibility |
|
975 |
|
# is probably installed. |
|
976 |
|
echo ${UNAME_MACHINE}-pc-os2-emx |
|
977 |
|
exit 0 ;; |
|
978 |
|
i*86:XTS-300:*:STOP) |
|
979 |
|
echo ${UNAME_MACHINE}-unknown-stop |
|
980 |
|
exit 0 ;; |
|
981 |
|
i*86:atheos:*:*) |
|
982 |
|
echo ${UNAME_MACHINE}-unknown-atheos |
|
983 |
|
exit 0 ;; |
|
984 |
|
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) |
|
985 |
|
echo i386-unknown-lynxos${UNAME_RELEASE} |
|
986 |
|
exit 0 ;; |
|
987 |
|
i*86:*DOS:*:*) |
|
988 |
|
echo ${UNAME_MACHINE}-pc-msdosdjgpp |
|
989 |
|
exit 0 ;; |
|
990 |
|
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) |
|
991 |
|
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` |
|
992 |
|
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then |
|
993 |
|
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} |
|
994 |
|
else |
|
995 |
|
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} |
|
996 |
|
fi |
|
997 |
|
exit 0 ;; |
|
998 |
|
i*86:*:5:[78]*) |
|
999 |
|
case `/bin/uname -X | grep "^Machine"` in |
|
1000 |
|
*486*) UNAME_MACHINE=i486 ;; |
|
1001 |
|
*Pentium) UNAME_MACHINE=i586 ;; |
|
1002 |
|
*Pent*|*Celeron) UNAME_MACHINE=i686 ;; |
|
1003 |
|
esac |
|
1004 |
|
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} |
|
1005 |
|
exit 0 ;; |
|
1006 |
|
i*86:*:3.2:*) |
|
1007 |
|
if test -f /usr/options/cb.name; then |
|
1008 |
|
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` |
|
1009 |
|
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL |
|
1010 |
|
elif /bin/uname -X 2>/dev/null >/dev/null ; then |
|
1011 |
|
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` |
|
1012 |
|
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 |
|
1013 |
|
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ |
|
1014 |
|
&& UNAME_MACHINE=i586 |
|
1015 |
|
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ |
|
1016 |
|
&& UNAME_MACHINE=i686 |
|
1017 |
|
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ |
|
1018 |
|
&& UNAME_MACHINE=i686 |
|
1019 |
|
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL |
|
1020 |
|
else |
|
1021 |
|
echo ${UNAME_MACHINE}-pc-sysv32 |
|
1022 |
|
fi |
|
1023 |
|
exit 0 ;; |
|
1024 |
|
pc:*:*:*) |
|
1025 |
|
# Left here for compatibility: |
|
1026 |
|
# uname -m prints for DJGPP always 'pc', but it prints nothing about |
|
1027 |
|
# the processor, so we play safe by assuming i386. |
|
1028 |
|
echo i386-pc-msdosdjgpp |
|
1029 |
|
exit 0 ;; |
|
1030 |
|
Intel:Mach:3*:*) |
|
1031 |
|
echo i386-pc-mach3 |
|
1032 |
|
exit 0 ;; |
|
1033 |
|
paragon:*:*:*) |
|
1034 |
|
echo i860-intel-osf1 |
|
1035 |
|
exit 0 ;; |
|
1036 |
|
i860:*:4.*:*) # i860-SVR4 |
|
1037 |
|
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then |
|
1038 |
|
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 |
|
1039 |
|
else # Add other i860-SVR4 vendors below as they are discovered. |
|
1040 |
|
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 |
|
1041 |
|
fi |
|
1042 |
|
exit 0 ;; |
|
1043 |
|
mini*:CTIX:SYS*5:*) |
|
1044 |
|
# "miniframe" |
|
1045 |
|
echo m68010-convergent-sysv |
|
1046 |
|
exit 0 ;; |
|
1047 |
|
mc68k:UNIX:SYSTEM5:3.51m) |
|
1048 |
|
echo m68k-convergent-sysv |
|
1049 |
|
exit 0 ;; |
|
1050 |
|
M680?0:D-NIX:5.3:*) |
|
1051 |
|
echo m68k-diab-dnix |
|
1052 |
|
exit 0 ;; |
|
1053 |
|
M68*:*:R3V[567]*:*) |
|
1054 |
|
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; |
|
1055 |
|
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0) |
|
1056 |
|
OS_REL='' |
|
1057 |
|
test -r /etc/.relid \ |
|
1058 |
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` |
|
1059 |
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
|
1060 |
|
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0 |
|
1061 |
|
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ |
|
1062 |
|
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; |
|
1063 |
|
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) |
|
1064 |
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \ |
|
1065 |
|
&& echo i486-ncr-sysv4 && exit 0 ;; |
|
1066 |
|
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) |
|
1067 |
|
echo m68k-unknown-lynxos${UNAME_RELEASE} |
|
1068 |
|
exit 0 ;; |
|
1069 |
|
mc68030:UNIX_System_V:4.*:*) |
|
1070 |
|
echo m68k-atari-sysv4 |
|
1071 |
|
exit 0 ;; |
|
1072 |
|
TSUNAMI:LynxOS:2.*:*) |
|
1073 |
|
echo sparc-unknown-lynxos${UNAME_RELEASE} |
|
1074 |
|
exit 0 ;; |
|
1075 |
|
rs6000:LynxOS:2.*:*) |
|
1076 |
|
echo rs6000-unknown-lynxos${UNAME_RELEASE} |
|
1077 |
|
exit 0 ;; |
|
1078 |
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) |
|
1079 |
|
echo powerpc-unknown-lynxos${UNAME_RELEASE} |
|
1080 |
|
exit 0 ;; |
|
1081 |
|
SM[BE]S:UNIX_SV:*:*) |
|
1082 |
|
echo mips-dde-sysv${UNAME_RELEASE} |
|
1083 |
|
exit 0 ;; |
|
1084 |
|
RM*:ReliantUNIX-*:*:*) |
|
1085 |
|
echo mips-sni-sysv4 |
|
1086 |
|
exit 0 ;; |
|
1087 |
|
RM*:SINIX-*:*:*) |
|
1088 |
|
echo mips-sni-sysv4 |
|
1089 |
|
exit 0 ;; |
|
1090 |
|
*:SINIX-*:*:*) |
|
1091 |
|
if uname -p 2>/dev/null >/dev/null ; then |
|
1092 |
|
UNAME_MACHINE=`(uname -p) 2>/dev/null` |
|
1093 |
|
echo ${UNAME_MACHINE}-sni-sysv4 |
|
1094 |
|
else |
|
1095 |
|
echo ns32k-sni-sysv |
|
1096 |
|
fi |
|
1097 |
|
exit 0 ;; |
|
1098 |
|
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort |
|
1099 |
|
# says <Richard.M.Bartel@ccMail.Census.GOV> |
|
1100 |
|
echo i586-unisys-sysv4 |
|
1101 |
|
exit 0 ;; |
|
1102 |
|
*:UNIX_System_V:4*:FTX*) |
|
1103 |
|
# From Gerald Hewes <hewes@openmarket.com>. |
|
1104 |
|
# How about differentiating between stratus architectures? -djm |
|
1105 |
|
echo hppa1.1-stratus-sysv4 |
|
1106 |
|
exit 0 ;; |
|
1107 |
|
*:*:*:FTX*) |
|
1108 |
|
# From seanf@swdc.stratus.com. |
|
1109 |
|
echo i860-stratus-sysv4 |
|
1110 |
|
exit 0 ;; |
|
1111 |
|
*:VOS:*:*) |
|
1112 |
|
# From Paul.Green@stratus.com. |
|
1113 |
|
echo hppa1.1-stratus-vos |
|
1114 |
|
exit 0 ;; |
|
1115 |
|
mc68*:A/UX:*:*) |
|
1116 |
|
echo m68k-apple-aux${UNAME_RELEASE} |
|
1117 |
|
exit 0 ;; |
|
1118 |
|
news*:NEWS-OS:6*:*) |
|
1119 |
|
echo mips-sony-newsos6 |
|
1120 |
|
exit 0 ;; |
|
1121 |
|
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) |
|
1122 |
|
if [ -d /usr/nec ]; then |
|
1123 |
|
echo mips-nec-sysv${UNAME_RELEASE} |
|
1124 |
|
else |
|
1125 |
|
echo mips-unknown-sysv${UNAME_RELEASE} |
|
1126 |
|
fi |
|
1127 |
|
exit 0 ;; |
|
1128 |
|
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. |
|
1129 |
|
echo powerpc-be-beos |
|
1130 |
|
exit 0 ;; |
|
1131 |
|
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. |
|
1132 |
|
echo powerpc-apple-beos |
|
1133 |
|
exit 0 ;; |
|
1134 |
|
BePC:BeOS:*:*) # BeOS running on Intel PC compatible. |
|
1135 |
|
echo i586-pc-beos |
|
1136 |
|
exit 0 ;; |
|
1137 |
|
SX-4:SUPER-UX:*:*) |
|
1138 |
|
echo sx4-nec-superux${UNAME_RELEASE} |
|
1139 |
|
exit 0 ;; |
|
1140 |
|
SX-5:SUPER-UX:*:*) |
|
1141 |
|
echo sx5-nec-superux${UNAME_RELEASE} |
|
1142 |
|
exit 0 ;; |
|
1143 |
|
SX-6:SUPER-UX:*:*) |
|
1144 |
|
echo sx6-nec-superux${UNAME_RELEASE} |
|
1145 |
|
exit 0 ;; |
|
1146 |
|
Power*:Rhapsody:*:*) |
|
1147 |
|
echo powerpc-apple-rhapsody${UNAME_RELEASE} |
|
1148 |
|
exit 0 ;; |
|
1149 |
|
*:Rhapsody:*:*) |
|
1150 |
|
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} |
|
1151 |
|
exit 0 ;; |
|
1152 |
|
*:Darwin:*:*) |
|
1153 |
|
case `uname -p` in |
|
1154 |
|
*86) UNAME_PROCESSOR=i686 ;; |
|
1155 |
|
powerpc) UNAME_PROCESSOR=powerpc ;; |
|
1156 |
|
esac |
|
1157 |
|
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} |
|
1158 |
|
exit 0 ;; |
|
1159 |
|
*:procnto*:*:* | *:QNX:[0123456789]*:*) |
|
1160 |
|
UNAME_PROCESSOR=`uname -p` |
|
1161 |
|
if test "$UNAME_PROCESSOR" = "x86"; then |
|
1162 |
|
UNAME_PROCESSOR=i386 |
|
1163 |
|
UNAME_MACHINE=pc |
|
1164 |
|
fi |
|
1165 |
|
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} |
|
1166 |
|
exit 0 ;; |
|
1167 |
|
*:QNX:*:4*) |
|
1168 |
|
echo i386-pc-qnx |
|
1169 |
|
exit 0 ;; |
|
1170 |
|
NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) |
|
1171 |
|
echo nsr-tandem-nsk${UNAME_RELEASE} |
|
1172 |
|
exit 0 ;; |
|
1173 |
|
*:NonStop-UX:*:*) |
|
1174 |
|
echo mips-compaq-nonstopux |
|
1175 |
|
exit 0 ;; |
|
1176 |
|
BS2000:POSIX*:*:*) |
|
1177 |
|
echo bs2000-siemens-sysv |
|
1178 |
|
exit 0 ;; |
|
1179 |
|
DS/*:UNIX_System_V:*:*) |
|
1180 |
|
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} |
|
1181 |
|
exit 0 ;; |
|
1182 |
|
*:Plan9:*:*) |
|
1183 |
|
# "uname -m" is not consistent, so use $cputype instead. 386 |
|
1184 |
|
# is converted to i386 for consistency with other x86 |
|
1185 |
|
# operating systems. |
|
1186 |
|
if test "$cputype" = "386"; then |
|
1187 |
|
UNAME_MACHINE=i386 |
|
1188 |
|
else |
|
1189 |
|
UNAME_MACHINE="$cputype" |
|
1190 |
|
fi |
|
1191 |
|
echo ${UNAME_MACHINE}-unknown-plan9 |
|
1192 |
|
exit 0 ;; |
|
1193 |
|
*:TOPS-10:*:*) |
|
1194 |
|
echo pdp10-unknown-tops10 |
|
1195 |
|
exit 0 ;; |
|
1196 |
|
*:TENEX:*:*) |
|
1197 |
|
echo pdp10-unknown-tenex |
|
1198 |
|
exit 0 ;; |
|
1199 |
|
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) |
|
1200 |
|
echo pdp10-dec-tops20 |
|
1201 |
|
exit 0 ;; |
|
1202 |
|
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) |
|
1203 |
|
echo pdp10-xkl-tops20 |
|
1204 |
|
exit 0 ;; |
|
1205 |
|
*:TOPS-20:*:*) |
|
1206 |
|
echo pdp10-unknown-tops20 |
|
1207 |
|
exit 0 ;; |
|
1208 |
|
*:ITS:*:*) |
|
1209 |
|
echo pdp10-unknown-its |
|
1210 |
|
exit 0 ;; |
|
1211 |
|
SEI:*:*:SEIUX) |
|
1212 |
|
echo mips-sei-seiux${UNAME_RELEASE} |
|
1213 |
|
exit 0 ;; |
|
1214 |
|
esac |
|
1215 |
|
|
|
1216 |
|
#echo '(No uname command or uname output not recognized.)' 1>&2 |
|
1217 |
|
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 |
|
1218 |
|
|
|
1219 |
|
eval $set_cc_for_build |
|
1220 |
|
cat >$dummy.c <<EOF |
|
1221 |
|
#ifdef _SEQUENT_ |
|
1222 |
|
# include <sys/types.h> |
|
1223 |
|
# include <sys/utsname.h> |
|
1224 |
|
#endif |
|
1225 |
|
main () |
|
1226 |
|
{ |
|
1227 |
|
#if defined (sony) |
|
1228 |
|
#if defined (MIPSEB) |
|
1229 |
|
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, |
|
1230 |
|
I don't know.... */ |
|
1231 |
|
printf ("mips-sony-bsd\n"); exit (0); |
|
1232 |
|
#else |
|
1233 |
|
#include <sys/param.h> |
|
1234 |
|
printf ("m68k-sony-newsos%s\n", |
|
1235 |
|
#ifdef NEWSOS4 |
|
1236 |
|
"4" |
|
1237 |
|
#else |
|
1238 |
|
"" |
|
1239 |
|
#endif |
|
1240 |
|
); exit (0); |
|
1241 |
|
#endif |
|
1242 |
|
#endif |
|
1243 |
|
|
|
1244 |
|
#if defined (__arm) && defined (__acorn) && defined (__unix) |
|
1245 |
|
printf ("arm-acorn-riscix"); exit (0); |
|
1246 |
|
#endif |
|
1247 |
|
|
|
1248 |
|
#if defined (hp300) && !defined (hpux) |
|
1249 |
|
printf ("m68k-hp-bsd\n"); exit (0); |
|
1250 |
|
#endif |
|
1251 |
|
|
|
1252 |
|
#if defined (NeXT) |
|
1253 |
|
#if !defined (__ARCHITECTURE__) |
|
1254 |
|
#define __ARCHITECTURE__ "m68k" |
|
1255 |
|
#endif |
|
1256 |
|
int version; |
|
1257 |
|
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; |
|
1258 |
|
if (version < 4) |
|
1259 |
|
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); |
|
1260 |
|
else |
|
1261 |
|
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); |
|
1262 |
|
exit (0); |
|
1263 |
|
#endif |
|
1264 |
|
|
|
1265 |
|
#if defined (MULTIMAX) || defined (n16) |
|
1266 |
|
#if defined (UMAXV) |
|
1267 |
|
printf ("ns32k-encore-sysv\n"); exit (0); |
|
1268 |
|
#else |
|
1269 |
|
#if defined (CMU) |
|
1270 |
|
printf ("ns32k-encore-mach\n"); exit (0); |
|
1271 |
|
#else |
|
1272 |
|
printf ("ns32k-encore-bsd\n"); exit (0); |
|
1273 |
|
#endif |
|
1274 |
|
#endif |
|
1275 |
|
#endif |
|
1276 |
|
|
|
1277 |
|
#if defined (__386BSD__) |
|
1278 |
|
printf ("i386-pc-bsd\n"); exit (0); |
|
1279 |
|
#endif |
|
1280 |
|
|
|
1281 |
|
#if defined (sequent) |
|
1282 |
|
#if defined (i386) |
|
1283 |
|
printf ("i386-sequent-dynix\n"); exit (0); |
|
1284 |
|
#endif |
|
1285 |
|
#if defined (ns32000) |
|
1286 |
|
printf ("ns32k-sequent-dynix\n"); exit (0); |
|
1287 |
|
#endif |
|
1288 |
|
#endif |
|
1289 |
|
|
|
1290 |
|
#if defined (_SEQUENT_) |
|
1291 |
|
struct utsname un; |
|
1292 |
|
|
|
1293 |
|
uname(&un); |
|
1294 |
|
|
|
1295 |
|
if (strncmp(un.version, "V2", 2) == 0) { |
|
1296 |
|
printf ("i386-sequent-ptx2\n"); exit (0); |
|
1297 |
|
} |
|
1298 |
|
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ |
|
1299 |
|
printf ("i386-sequent-ptx1\n"); exit (0); |
|
1300 |
|
} |
|
1301 |
|
printf ("i386-sequent-ptx\n"); exit (0); |
|
1302 |
|
|
|
1303 |
|
#endif |
|
1304 |
|
|
|
1305 |
|
#if defined (vax) |
|
1306 |
|
# if !defined (ultrix) |
|
1307 |
|
# include <sys/param.h> |
|
1308 |
|
# if defined (BSD) |
|
1309 |
|
# if BSD == 43 |
|
1310 |
|
printf ("vax-dec-bsd4.3\n"); exit (0); |
|
1311 |
|
# else |
|
1312 |
|
# if BSD == 199006 |
|
1313 |
|
printf ("vax-dec-bsd4.3reno\n"); exit (0); |
|
1314 |
|
# else |
|
1315 |
|
printf ("vax-dec-bsd\n"); exit (0); |
|
1316 |
|
# endif |
|
1317 |
|
# endif |
|
1318 |
|
# else |
|
1319 |
|
printf ("vax-dec-bsd\n"); exit (0); |
|
1320 |
|
# endif |
|
1321 |
|
# else |
|
1322 |
|
printf ("vax-dec-ultrix\n"); exit (0); |
|
1323 |
|
# endif |
|
1324 |
|
#endif |
|
1325 |
|
|
|
1326 |
|
#if defined (alliant) && defined (i860) |
|
1327 |
|
printf ("i860-alliant-bsd\n"); exit (0); |
|
1328 |
|
#endif |
|
1329 |
|
|
|
1330 |
|
exit (1); |
|
1331 |
|
} |
|
1332 |
|
EOF |
|
1333 |
|
|
|
1334 |
|
$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0 |
|
1335 |
|
|
|
1336 |
|
# Apollos put the system type in the environment. |
|
1337 |
|
|
|
1338 |
|
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } |
|
1339 |
|
|
|
1340 |
|
# Convex versions that predate uname can use getsysinfo(1) |
|
1341 |
|
|
|
1342 |
|
if [ -x /usr/convex/getsysinfo ] |
|
1343 |
|
then |
|
1344 |
|
case `getsysinfo -f cpu_type` in |
|
1345 |
|
c1*) |
|
1346 |
|
echo c1-convex-bsd |
|
1347 |
|
exit 0 ;; |
|
1348 |
|
c2*) |
|
1349 |
|
if getsysinfo -f scalar_acc |
|
1350 |
|
then echo c32-convex-bsd |
|
1351 |
|
else echo c2-convex-bsd |
|
1352 |
|
fi |
|
1353 |
|
exit 0 ;; |
|
1354 |
|
c34*) |
|
1355 |
|
echo c34-convex-bsd |
|
1356 |
|
exit 0 ;; |
|
1357 |
|
c38*) |
|
1358 |
|
echo c38-convex-bsd |
|
1359 |
|
exit 0 ;; |
|
1360 |
|
c4*) |
|
1361 |
|
echo c4-convex-bsd |
|
1362 |
|
exit 0 ;; |
|
1363 |
|
esac |
|
1364 |
|
fi |
|
1365 |
|
|
|
1366 |
|
cat >&2 <<EOF |
|
1367 |
|
$0: unable to guess system type |
|
1368 |
|
|
|
1369 |
|
This script, last modified $timestamp, has failed to recognize |
|
1370 |
|
the operating system you are using. It is advised that you |
|
1371 |
|
download the most up to date version of the config scripts from |
|
1372 |
|
|
|
1373 |
|
ftp://ftp.gnu.org/pub/gnu/config/ |
|
1374 |
|
|
|
1375 |
|
If the version you run ($0) is already up to date, please |
|
1376 |
|
send the following data and any information you think might be |
|
1377 |
|
pertinent to <config-patches@gnu.org> in order to provide the needed |
|
1378 |
|
information to handle your system. |
|
1379 |
|
|
|
1380 |
|
config.guess timestamp = $timestamp |
|
1381 |
|
|
|
1382 |
|
uname -m = `(uname -m) 2>/dev/null || echo unknown` |
|
1383 |
|
uname -r = `(uname -r) 2>/dev/null || echo unknown` |
|
1384 |
|
uname -s = `(uname -s) 2>/dev/null || echo unknown` |
|
1385 |
|
uname -v = `(uname -v) 2>/dev/null || echo unknown` |
|
1386 |
|
|
|
1387 |
|
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` |
|
1388 |
|
/bin/uname -X = `(/bin/uname -X) 2>/dev/null` |
|
1389 |
|
|
|
1390 |
|
hostinfo = `(hostinfo) 2>/dev/null` |
|
1391 |
|
/bin/universe = `(/bin/universe) 2>/dev/null` |
|
1392 |
|
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` |
|
1393 |
|
/bin/arch = `(/bin/arch) 2>/dev/null` |
|
1394 |
|
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` |
|
1395 |
|
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` |
|
1396 |
|
|
|
1397 |
|
UNAME_MACHINE = ${UNAME_MACHINE} |
|
1398 |
|
UNAME_RELEASE = ${UNAME_RELEASE} |
|
1399 |
|
UNAME_SYSTEM = ${UNAME_SYSTEM} |
|
1400 |
|
UNAME_VERSION = ${UNAME_VERSION} |
|
1401 |
|
EOF |
|
1402 |
|
|
|
1403 |
|
exit 1 |
|
1404 |
|
|
|
1405 |
|
# Local variables: |
|
1406 |
|
# eval: (add-hook 'write-file-hooks 'time-stamp) |
|
1407 |
|
# time-stamp-start: "timestamp='" |
|
1408 |
|
# time-stamp-format: "%:y-%02m-%02d" |
|
1409 |
|
# time-stamp-end: "'" |
|
1410 |
|
# End: |
|
File config.sub deleted (index 6890099..0000000) |
1 |
|
#! /bin/sh |
|
2 |
|
# Configuration validation subroutine script. |
|
3 |
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
|
4 |
|
# 2000, 2001, 2002, 2003 Free Software Foundation, Inc. |
|
5 |
|
|
|
6 |
|
timestamp='2003-08-18' |
|
7 |
|
|
|
8 |
|
# This file is (in principle) common to ALL GNU software. |
|
9 |
|
# The presence of a machine in this file suggests that SOME GNU software |
|
10 |
|
# can handle that machine. It does not imply ALL GNU software can. |
|
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 2 of the License, or |
|
15 |
|
# (at your option) any later version. |
|
16 |
|
# |
|
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. |
|
21 |
|
# |
|
22 |
|
# You should have received a copy of the GNU General Public License |
|
23 |
|
# along with this program; if not, write to the Free Software |
|
24 |
|
# Foundation, Inc., 59 Temple Place - Suite 330, |
|
25 |
|
# Boston, MA 02111-1307, USA. |
|
26 |
|
|
|
27 |
|
# As a special exception to the GNU General Public License, if you |
|
28 |
|
# distribute this file as part of a program that contains a |
|
29 |
|
# configuration script generated by Autoconf, you may include it under |
|
30 |
|
# the same distribution terms that you use for the rest of that program. |
|
31 |
|
|
|
32 |
|
# Please send patches to <config-patches@gnu.org>. Submit a context |
|
33 |
|
# diff and a properly formatted ChangeLog entry. |
|
34 |
|
# |
|
35 |
|
# Configuration subroutine to validate and canonicalize a configuration type. |
|
36 |
|
# Supply the specified configuration type as an argument. |
|
37 |
|
# If it is invalid, we print an error message on stderr and exit with code 1. |
|
38 |
|
# Otherwise, we print the canonical config type on stdout and succeed. |
|
39 |
|
|
|
40 |
|
# This file is supposed to be the same for all GNU packages |
|
41 |
|
# and recognize all the CPU types, system types and aliases |
|
42 |
|
# that are meaningful with *any* GNU software. |
|
43 |
|
# Each package is responsible for reporting which valid configurations |
|
44 |
|
# it does not support. The user should be able to distinguish |
|
45 |
|
# a failure to support a valid configuration from a meaningless |
|
46 |
|
# configuration. |
|
47 |
|
|
|
48 |
|
# The goal of this file is to map all the various variations of a given |
|
49 |
|
# machine specification into a single specification in the form: |
|
50 |
|
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM |
|
51 |
|
# or in some cases, the newer four-part form: |
|
52 |
|
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM |
|
53 |
|
# It is wrong to echo any other type of specification. |
|
54 |
|
|
|
55 |
|
me=`echo "$0" | sed -e 's,.*/,,'` |
|
56 |
|
|
|
57 |
|
usage="\ |
|
58 |
|
Usage: $0 [OPTION] CPU-MFR-OPSYS |
|
59 |
|
$0 [OPTION] ALIAS |
|
60 |
|
|
|
61 |
|
Canonicalize a configuration name. |
|
62 |
|
|
|
63 |
|
Operation modes: |
|
64 |
|
-h, --help print this help, then exit |
|
65 |
|
-t, --time-stamp print date of last modification, then exit |
|
66 |
|
-v, --version print version number, then exit |
|
67 |
|
|
|
68 |
|
Report bugs and patches to <config-patches@gnu.org>." |
|
69 |
|
|
|
70 |
|
version="\ |
|
71 |
|
GNU config.sub ($timestamp) |
|
72 |
|
|
|
73 |
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 |
|
74 |
|
Free Software Foundation, Inc. |
|
75 |
|
|
|
76 |
|
This is free software; see the source for copying conditions. There is NO |
|
77 |
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." |
|
78 |
|
|
|
79 |
|
help=" |
|
80 |
|
Try \`$me --help' for more information." |
|
81 |
|
|
|
82 |
|
# Parse command line |
|
83 |
|
while test $# -gt 0 ; do |
|
84 |
|
case $1 in |
|
85 |
|
--time-stamp | --time* | -t ) |
|
86 |
|
echo "$timestamp" ; exit 0 ;; |
|
87 |
|
--version | -v ) |
|
88 |
|
echo "$version" ; exit 0 ;; |
|
89 |
|
--help | --h* | -h ) |
|
90 |
|
echo "$usage"; exit 0 ;; |
|
91 |
|
-- ) # Stop option processing |
|
92 |
|
shift; break ;; |
|
93 |
|
- ) # Use stdin as input. |
|
94 |
|
break ;; |
|
95 |
|
-* ) |
|
96 |
|
echo "$me: invalid option $1$help" |
|
97 |
|
exit 1 ;; |
|
98 |
|
|
|
99 |
|
*local*) |
|
100 |
|
# First pass through any local machine types. |
|
101 |
|
echo $1 |
|
102 |
|
exit 0;; |
|
103 |
|
|
|
104 |
|
* ) |
|
105 |
|
break ;; |
|
106 |
|
esac |
|
107 |
|
done |
|
108 |
|
|
|
109 |
|
case $# in |
|
110 |
|
0) echo "$me: missing argument$help" >&2 |
|
111 |
|
exit 1;; |
|
112 |
|
1) ;; |
|
113 |
|
*) echo "$me: too many arguments$help" >&2 |
|
114 |
|
exit 1;; |
|
115 |
|
esac |
|
116 |
|
|
|
117 |
|
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). |
|
118 |
|
# Here we must recognize all the valid KERNEL-OS combinations. |
|
119 |
|
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` |
|
120 |
|
case $maybe_os in |
|
121 |
|
nto-qnx* | linux-gnu* | linux-dietlibc | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) |
|
122 |
|
os=-$maybe_os |
|
123 |
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` |
|
124 |
|
;; |
|
125 |
|
*) |
|
126 |
|
basic_machine=`echo $1 | sed 's/-[^-]*$//'` |
|
127 |
|
if [ $basic_machine != $1 ] |
|
128 |
|
then os=`echo $1 | sed 's/.*-/-/'` |
|
129 |
|
else os=; fi |
|
130 |
|
;; |
|
131 |
|
esac |
|
132 |
|
|
|
133 |
|
### Let's recognize common machines as not being operating systems so |
|
134 |
|
### that things like config.sub decstation-3100 work. We also |
|
135 |
|
### recognize some manufacturers as not being operating systems, so we |
|
136 |
|
### can provide default operating systems below. |
|
137 |
|
case $os in |
|
138 |
|
-sun*os*) |
|
139 |
|
# Prevent following clause from handling this invalid input. |
|
140 |
|
;; |
|
141 |
|
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ |
|
142 |
|
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ |
|
143 |
|
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ |
|
144 |
|
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ |
|
145 |
|
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ |
|
146 |
|
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ |
|
147 |
|
-apple | -axis) |
|
148 |
|
os= |
|
149 |
|
basic_machine=$1 |
|
150 |
|
;; |
|
151 |
|
-sim | -cisco | -oki | -wec | -winbond) |
|
152 |
|
os= |
|
153 |
|
basic_machine=$1 |
|
154 |
|
;; |
|
155 |
|
-scout) |
|
156 |
|
;; |
|
157 |
|
-wrs) |
|
158 |
|
os=-vxworks |
|
159 |
|
basic_machine=$1 |
|
160 |
|
;; |
|
161 |
|
-chorusos*) |
|
162 |
|
os=-chorusos |
|
163 |
|
basic_machine=$1 |
|
164 |
|
;; |
|
165 |
|
-chorusrdb) |
|
166 |
|
os=-chorusrdb |
|
167 |
|
basic_machine=$1 |
|
168 |
|
;; |
|
169 |
|
-hiux*) |
|
170 |
|
os=-hiuxwe2 |
|
171 |
|
;; |
|
172 |
|
-sco5) |
|
173 |
|
os=-sco3.2v5 |
|
174 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
175 |
|
;; |
|
176 |
|
-sco4) |
|
177 |
|
os=-sco3.2v4 |
|
178 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
179 |
|
;; |
|
180 |
|
-sco3.2.[4-9]*) |
|
181 |
|
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` |
|
182 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
183 |
|
;; |
|
184 |
|
-sco3.2v[4-9]*) |
|
185 |
|
# Don't forget version if it is 3.2v4 or newer. |
|
186 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
187 |
|
;; |
|
188 |
|
-sco*) |
|
189 |
|
os=-sco3.2v2 |
|
190 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
191 |
|
;; |
|
192 |
|
-udk*) |
|
193 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
194 |
|
;; |
|
195 |
|
-isc) |
|
196 |
|
os=-isc2.2 |
|
197 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
198 |
|
;; |
|
199 |
|
-clix*) |
|
200 |
|
basic_machine=clipper-intergraph |
|
201 |
|
;; |
|
202 |
|
-isc*) |
|
203 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` |
|
204 |
|
;; |
|
205 |
|
-lynx*) |
|
206 |
|
os=-lynxos |
|
207 |
|
;; |
|
208 |
|
-ptx*) |
|
209 |
|
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` |
|
210 |
|
;; |
|
211 |
|
-windowsnt*) |
|
212 |
|
os=`echo $os | sed -e 's/windowsnt/winnt/'` |
|
213 |
|
;; |
|
214 |
|
-psos*) |
|
215 |
|
os=-psos |
|
216 |
|
;; |
|
217 |
|
-mint | -mint[0-9]*) |
|
218 |
|
basic_machine=m68k-atari |
|
219 |
|
os=-mint |
|
220 |
|
;; |
|
221 |
|
esac |
|
222 |
|
|
|
223 |
|
# Decode aliases for certain CPU-COMPANY combinations. |
|
224 |
|
case $basic_machine in |
|
225 |
|
# Recognize the basic CPU types without company name. |
|
226 |
|
# Some are omitted here because they have special meanings below. |
|
227 |
|
1750a | 580 \ |
|
228 |
|
| a29k \ |
|
229 |
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ |
|
230 |
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ |
|
231 |
|
| am33_2.0 \ |
|
232 |
|
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ |
|
233 |
|
| c4x | clipper \ |
|
234 |
|
| d10v | d30v | dlx | dsp16xx \ |
|
235 |
|
| fr30 | frv \ |
|
236 |
|
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ |
|
237 |
|
| i370 | i860 | i960 | ia64 \ |
|
238 |
|
| ip2k | iq2000 \ |
|
239 |
|
| m32r | m68000 | m68k | m88k | mcore \ |
|
240 |
|
| mips | mipsbe | mipseb | mipsel | mipsle \ |
|
241 |
|
| mips16 \ |
|
242 |
|
| mips64 | mips64el \ |
|
243 |
|
| mips64vr | mips64vrel \ |
|
244 |
|
| mips64orion | mips64orionel \ |
|
245 |
|
| mips64vr4100 | mips64vr4100el \ |
|
246 |
|
| mips64vr4300 | mips64vr4300el \ |
|
247 |
|
| mips64vr5000 | mips64vr5000el \ |
|
248 |
|
| mipsisa32 | mipsisa32el \ |
|
249 |
|
| mipsisa32r2 | mipsisa32r2el \ |
|
250 |
|
| mipsisa64 | mipsisa64el \ |
|
251 |
|
| mipsisa64sb1 | mipsisa64sb1el \ |
|
252 |
|
| mipsisa64sr71k | mipsisa64sr71kel \ |
|
253 |
|
| mipstx39 | mipstx39el \ |
|
254 |
|
| mn10200 | mn10300 \ |
|
255 |
|
| msp430 \ |
|
256 |
|
| ns16k | ns32k \ |
|
257 |
|
| openrisc | or32 \ |
|
258 |
|
| pdp10 | pdp11 | pj | pjl \ |
|
259 |
|
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ |
|
260 |
|
| pyramid \ |
|
261 |
|
| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ |
|
262 |
|
| sh64 | sh64le \ |
|
263 |
|
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ |
|
264 |
|
| strongarm \ |
|
265 |
|
| tahoe | thumb | tic4x | tic80 | tron \ |
|
266 |
|
| v850 | v850e \ |
|
267 |
|
| we32k \ |
|
268 |
|
| x86 | xscale | xstormy16 | xtensa \ |
|
269 |
|
| z8k) |
|
270 |
|
basic_machine=$basic_machine-unknown |
|
271 |
|
;; |
|
272 |
|
m6811 | m68hc11 | m6812 | m68hc12) |
|
273 |
|
# Motorola 68HC11/12. |
|
274 |
|
basic_machine=$basic_machine-unknown |
|
275 |
|
os=-none |
|
276 |
|
;; |
|
277 |
|
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) |
|
278 |
|
;; |
|
279 |
|
|
|
280 |
|
# We use `pc' rather than `unknown' |
|
281 |
|
# because (1) that's what they normally are, and |
|
282 |
|
# (2) the word "unknown" tends to confuse beginning users. |
|
283 |
|
i*86 | x86_64) |
|
284 |
|
basic_machine=$basic_machine-pc |
|
285 |
|
;; |
|
286 |
|
# Object if more than one company name word. |
|
287 |
|
*-*-*) |
|
288 |
|
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 |
|
289 |
|
exit 1 |
|
290 |
|
;; |
|
291 |
|
# Recognize the basic CPU types with company name. |
|
292 |
|
580-* \ |
|
293 |
|
| a29k-* \ |
|
294 |
|
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ |
|
295 |
|
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ |
|
296 |
|
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ |
|
297 |
|
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \ |
|
298 |
|
| avr-* \ |
|
299 |
|
| bs2000-* \ |
|
300 |
|
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ |
|
301 |
|
| clipper-* | cydra-* \ |
|
302 |
|
| d10v-* | d30v-* | dlx-* \ |
|
303 |
|
| elxsi-* \ |
|
304 |
|
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ |
|
305 |
|
| h8300-* | h8500-* \ |
|
306 |
|
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ |
|
307 |
|
| i*86-* | i860-* | i960-* | ia64-* \ |
|
308 |
|
| ip2k-* | iq2000-* \ |
|
309 |
|
| m32r-* \ |
|
310 |
|
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ |
|
311 |
|
| m88110-* | m88k-* | mcore-* \ |
|
312 |
|
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ |
|
313 |
|
| mips16-* \ |
|
314 |
|
| mips64-* | mips64el-* \ |
|
315 |
|
| mips64vr-* | mips64vrel-* \ |
|
316 |
|
| mips64orion-* | mips64orionel-* \ |
|
317 |
|
| mips64vr4100-* | mips64vr4100el-* \ |
|
318 |
|
| mips64vr4300-* | mips64vr4300el-* \ |
|
319 |
|
| mips64vr5000-* | mips64vr5000el-* \ |
|
320 |
|
| mipsisa32-* | mipsisa32el-* \ |
|
321 |
|
| mipsisa32r2-* | mipsisa32r2el-* \ |
|
322 |
|
| mipsisa64-* | mipsisa64el-* \ |
|
323 |
|
| mipsisa64sb1-* | mipsisa64sb1el-* \ |
|
324 |
|
| mipsisa64sr71k-* | mipsisa64sr71kel-* \ |
|
325 |
|
| mipstx39-* | mipstx39el-* \ |
|
326 |
|
| msp430-* \ |
|
327 |
|
| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \ |
|
328 |
|
| orion-* \ |
|
329 |
|
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ |
|
330 |
|
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ |
|
331 |
|
| pyramid-* \ |
|
332 |
|
| romp-* | rs6000-* \ |
|
333 |
|
| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \ |
|
334 |
|
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ |
|
335 |
|
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ |
|
336 |
|
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ |
|
337 |
|
| tahoe-* | thumb-* \ |
|
338 |
|
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ |
|
339 |
|
| tron-* \ |
|
340 |
|
| v850-* | v850e-* | vax-* \ |
|
341 |
|
| we32k-* \ |
|
342 |
|
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ |
|
343 |
|
| xtensa-* \ |
|
344 |
|
| ymp-* \ |
|
345 |
|
| z8k-*) |
|
346 |
|
;; |
|
347 |
|
# Recognize the various machine names and aliases which stand |
|
348 |
|
# for a CPU type and a company and sometimes even an OS. |
|
349 |
|
386bsd) |
|
350 |
|
basic_machine=i386-unknown |
|
351 |
|
os=-bsd |
|
352 |
|
;; |
|
353 |
|
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) |
|
354 |
|
basic_machine=m68000-att |
|
355 |
|
;; |
|
356 |
|
3b*) |
|
357 |
|
basic_machine=we32k-att |
|
358 |
|
;; |
|
359 |
|
a29khif) |
|
360 |
|
basic_machine=a29k-amd |
|
361 |
|
os=-udi |
|
362 |
|
;; |
|
363 |
|
adobe68k) |
|
364 |
|
basic_machine=m68010-adobe |
|
365 |
|
os=-scout |
|
366 |
|
;; |
|
367 |
|
alliant | fx80) |
|
368 |
|
basic_machine=fx80-alliant |
|
369 |
|
;; |
|
370 |
|
altos | altos3068) |
|
371 |
|
basic_machine=m68k-altos |
|
372 |
|
;; |
|
373 |
|
am29k) |
|
374 |
|
basic_machine=a29k-none |
|
375 |
|
os=-bsd |
|
376 |
|
;; |
|
377 |
|
amd64) |
|
378 |
|
basic_machine=x86_64-pc |
|
379 |
|
;; |
|
380 |
|
amdahl) |
|
381 |
|
basic_machine=580-amdahl |
|
382 |
|
os=-sysv |
|
383 |
|
;; |
|
384 |
|
amiga | amiga-*) |
|
385 |
|
basic_machine=m68k-unknown |
|
386 |
|
;; |
|
387 |
|
amigaos | amigados) |
|
388 |
|
basic_machine=m68k-unknown |
|
389 |
|
os=-amigaos |
|
390 |
|
;; |
|
391 |
|
amigaunix | amix) |
|
392 |
|
basic_machine=m68k-unknown |
|
393 |
|
os=-sysv4 |
|
394 |
|
;; |
|
395 |
|
apollo68) |
|
396 |
|
basic_machine=m68k-apollo |
|
397 |
|
os=-sysv |
|
398 |
|
;; |
|
399 |
|
apollo68bsd) |
|
400 |
|
basic_machine=m68k-apollo |
|
401 |
|
os=-bsd |
|
402 |
|
;; |
|
403 |
|
aux) |
|
404 |
|
basic_machine=m68k-apple |
|
405 |
|
os=-aux |
|
406 |
|
;; |
|
407 |
|
balance) |
|
408 |
|
basic_machine=ns32k-sequent |
|
409 |
|
os=-dynix |
|
410 |
|
;; |
|
411 |
|
c90) |
|
412 |
|
basic_machine=c90-cray |
|
413 |
|
os=-unicos |
|
414 |
|
;; |
|
415 |
|
convex-c1) |
|
416 |
|
basic_machine=c1-convex |
|
417 |
|
os=-bsd |
|
418 |
|
;; |
|
419 |
|
convex-c2) |
|
420 |
|
basic_machine=c2-convex |
|
421 |
|
os=-bsd |
|
422 |
|
;; |
|
423 |
|
convex-c32) |
|
424 |
|
basic_machine=c32-convex |
|
425 |
|
os=-bsd |
|
426 |
|
;; |
|
427 |
|
convex-c34) |
|
428 |
|
basic_machine=c34-convex |
|
429 |
|
os=-bsd |
|
430 |
|
;; |
|
431 |
|
convex-c38) |
|
432 |
|
basic_machine=c38-convex |
|
433 |
|
os=-bsd |
|
434 |
|
;; |
|
435 |
|
cray | j90) |
|
436 |
|
basic_machine=j90-cray |
|
437 |
|
os=-unicos |
|
438 |
|
;; |
|
439 |
|
crds | unos) |
|
440 |
|
basic_machine=m68k-crds |
|
441 |
|
;; |
|
442 |
|
cris | cris-* | etrax*) |
|
443 |
|
basic_machine=cris-axis |
|
444 |
|
;; |
|
445 |
|
da30 | da30-*) |
|
446 |
|
basic_machine=m68k-da30 |
|
447 |
|
;; |
|
448 |
|
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) |
|
449 |
|
basic_machine=mips-dec |
|
450 |
|
;; |
|
451 |
|
decsystem10* | dec10*) |
|
452 |
|
basic_machine=pdp10-dec |
|
453 |
|
os=-tops10 |
|
454 |
|
;; |
|
455 |
|
decsystem20* | dec20*) |
|
456 |
|
basic_machine=pdp10-dec |
|
457 |
|
os=-tops20 |
|
458 |
|
;; |
|
459 |
|
delta | 3300 | motorola-3300 | motorola-delta \ |
|
460 |
|
| 3300-motorola | delta-motorola) |
|
461 |
|
basic_machine=m68k-motorola |
|
462 |
|
;; |
|
463 |
|
delta88) |
|
464 |
|
basic_machine=m88k-motorola |
|
465 |
|
os=-sysv3 |
|
466 |
|
;; |
|
467 |
|
dpx20 | dpx20-*) |
|
468 |
|
basic_machine=rs6000-bull |
|
469 |
|
os=-bosx |
|
470 |
|
;; |
|
471 |
|
dpx2* | dpx2*-bull) |
|
472 |
|
basic_machine=m68k-bull |
|
473 |
|
os=-sysv3 |
|
474 |
|
;; |
|
475 |
|
ebmon29k) |
|
476 |
|
basic_machine=a29k-amd |
|
477 |
|
os=-ebmon |
|
478 |
|
;; |
|
479 |
|
elxsi) |
|
480 |
|
basic_machine=elxsi-elxsi |
|
481 |
|
os=-bsd |
|
482 |
|
;; |
|
483 |
|
encore | umax | mmax) |
|
484 |
|
basic_machine=ns32k-encore |
|
485 |
|
;; |
|
486 |
|
es1800 | OSE68k | ose68k | ose | OSE) |
|
487 |
|
basic_machine=m68k-ericsson |
|
488 |
|
os=-ose |
|
489 |
|
;; |
|
490 |
|
fx2800) |
|
491 |
|
basic_machine=i860-alliant |
|
492 |
|
;; |
|
493 |
|
genix) |
|
494 |
|
basic_machine=ns32k-ns |
|
495 |
|
;; |
|
496 |
|
gmicro) |
|
497 |
|
basic_machine=tron-gmicro |
|
498 |
|
os=-sysv |
|
499 |
|
;; |
|
500 |
|
go32) |
|
501 |
|
basic_machine=i386-pc |
|
502 |
|
os=-go32 |
|
503 |
|
;; |
|
504 |
|
h3050r* | hiux*) |
|
505 |
|
basic_machine=hppa1.1-hitachi |
|
506 |
|
os=-hiuxwe2 |
|
507 |
|
;; |
|
508 |
|
h8300hms) |
|
509 |
|
basic_machine=h8300-hitachi |
|
510 |
|
os=-hms |
|
511 |
|
;; |
|
512 |
|
h8300xray) |
|
513 |
|
basic_machine=h8300-hitachi |
|
514 |
|
os=-xray |
|
515 |
|
;; |
|
516 |
|
h8500hms) |
|
517 |
|
basic_machine=h8500-hitachi |
|
518 |
|
os=-hms |
|
519 |
|
;; |
|
520 |
|
harris) |
|
521 |
|
basic_machine=m88k-harris |
|
522 |
|
os=-sysv3 |
|
523 |
|
;; |
|
524 |
|
hp300-*) |
|
525 |
|
basic_machine=m68k-hp |
|
526 |
|
;; |
|
527 |
|
hp300bsd) |
|
528 |
|
basic_machine=m68k-hp |
|
529 |
|
os=-bsd |
|
530 |
|
;; |
|
531 |
|
hp300hpux) |
|
532 |
|
basic_machine=m68k-hp |
|
533 |
|
os=-hpux |
|
534 |
|
;; |
|
535 |
|
hp3k9[0-9][0-9] | hp9[0-9][0-9]) |
|
536 |
|
basic_machine=hppa1.0-hp |
|
537 |
|
;; |
|
538 |
|
hp9k2[0-9][0-9] | hp9k31[0-9]) |
|
539 |
|
basic_machine=m68000-hp |
|
540 |
|
;; |
|
541 |
|
hp9k3[2-9][0-9]) |
|
542 |
|
basic_machine=m68k-hp |
|
543 |
|
;; |
|
544 |
|
hp9k6[0-9][0-9] | hp6[0-9][0-9]) |
|
545 |
|
basic_machine=hppa1.0-hp |
|
546 |
|
;; |
|
547 |
|
hp9k7[0-79][0-9] | hp7[0-79][0-9]) |
|
548 |
|
basic_machine=hppa1.1-hp |
|
549 |
|
;; |
|
550 |
|
hp9k78[0-9] | hp78[0-9]) |
|
551 |
|
# FIXME: really hppa2.0-hp |
|
552 |
|
basic_machine=hppa1.1-hp |
|
553 |
|
;; |
|
554 |
|
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) |
|
555 |
|
# FIXME: really hppa2.0-hp |
|
556 |
|
basic_machine=hppa1.1-hp |
|
557 |
|
;; |
|
558 |
|
hp9k8[0-9][13679] | hp8[0-9][13679]) |
|
559 |
|
basic_machine=hppa1.1-hp |
|
560 |
|
;; |
|
561 |
|
hp9k8[0-9][0-9] | hp8[0-9][0-9]) |
|
562 |
|
basic_machine=hppa1.0-hp |
|
563 |
|
;; |
|
564 |
|
hppa-next) |
|
565 |
|
os=-nextstep3 |
|
566 |
|
;; |
|
567 |
|
hppaosf) |
|
568 |
|
basic_machine=hppa1.1-hp |
|
569 |
|
os=-osf |
|
570 |
|
;; |
|
571 |
|
hppro) |
|
572 |
|
basic_machine=hppa1.1-hp |
|
573 |
|
os=-proelf |
|
574 |
|
;; |
|
575 |
|
i370-ibm* | ibm*) |
|
576 |
|
basic_machine=i370-ibm |
|
577 |
|
;; |
|
578 |
|
# I'm not sure what "Sysv32" means. Should this be sysv3.2? |
|
579 |
|
i*86v32) |
|
580 |
|
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
|
581 |
|
os=-sysv32 |
|
582 |
|
;; |
|
583 |
|
i*86v4*) |
|
584 |
|
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
|
585 |
|
os=-sysv4 |
|
586 |
|
;; |
|
587 |
|
i*86v) |
|
588 |
|
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
|
589 |
|
os=-sysv |
|
590 |
|
;; |
|
591 |
|
i*86sol2) |
|
592 |
|
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` |
|
593 |
|
os=-solaris2 |
|
594 |
|
;; |
|
595 |
|
i386mach) |
|
596 |
|
basic_machine=i386-mach |
|
597 |
|
os=-mach |
|
598 |
|
;; |
|
599 |
|
i386-vsta | vsta) |
|
600 |
|
basic_machine=i386-unknown |
|
601 |
|
os=-vsta |
|
602 |
|
;; |
|
603 |
|
iris | iris4d) |
|
604 |
|
basic_machine=mips-sgi |
|
605 |
|
case $os in |
|
606 |
|
-irix*) |
|
607 |
|
;; |
|
608 |
|
*) |
|
609 |
|
os=-irix4 |
|
610 |
|
;; |
|
611 |
|
esac |
|
612 |
|
;; |
|
613 |
|
isi68 | isi) |
|
614 |
|
basic_machine=m68k-isi |
|
615 |
|
os=-sysv |
|
616 |
|
;; |
|
617 |
|
m88k-omron*) |
|
618 |
|
basic_machine=m88k-omron |
|
619 |
|
;; |
|
620 |
|
magnum | m3230) |
|
621 |
|
basic_machine=mips-mips |
|
622 |
|
os=-sysv |
|
623 |
|
;; |
|
624 |
|
merlin) |
|
625 |
|
basic_machine=ns32k-utek |
|
626 |
|
os=-sysv |
|
627 |
|
;; |
|
628 |
|
mingw32) |
|
629 |
|
basic_machine=i386-pc |
|
630 |
|
os=-mingw32 |
|
631 |
|
;; |
|
632 |
|
miniframe) |
|
633 |
|
basic_machine=m68000-convergent |
|
634 |
|
;; |
|
635 |
|
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) |
|
636 |
|
basic_machine=m68k-atari |
|
637 |
|
os=-mint |
|
638 |
|
;; |
|
639 |
|
mips3*-*) |
|
640 |
|
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` |
|
641 |
|
;; |
|
642 |
|
mips3*) |
|
643 |
|
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown |
|
644 |
|
;; |
|
645 |
|
mmix*) |
|
646 |
|
basic_machine=mmix-knuth |
|
647 |
|
os=-mmixware |
|
648 |
|
;; |
|
649 |
|
monitor) |
|
650 |
|
basic_machine=m68k-rom68k |
|
651 |
|
os=-coff |
|
652 |
|
;; |
|
653 |
|
morphos) |
|
654 |
|
basic_machine=powerpc-unknown |
|
655 |
|
os=-morphos |
|
656 |
|
;; |
|
657 |
|
msdos) |
|
658 |
|
basic_machine=i386-pc |
|
659 |
|
os=-msdos |
|
660 |
|
;; |
|
661 |
|
mvs) |
|
662 |
|
basic_machine=i370-ibm |
|
663 |
|
os=-mvs |
|
664 |
|
;; |
|
665 |
|
ncr3000) |
|
666 |
|
basic_machine=i486-ncr |
|
667 |
|
os=-sysv4 |
|
668 |
|
;; |
|
669 |
|
netbsd386) |
|
670 |
|
basic_machine=i386-unknown |
|
671 |
|
os=-netbsd |
|
672 |
|
;; |
|
673 |
|
netwinder) |
|
674 |
|
basic_machine=armv4l-rebel |
|
675 |
|
os=-linux |
|
676 |
|
;; |
|
677 |
|
news | news700 | news800 | news900) |
|
678 |
|
basic_machine=m68k-sony |
|
679 |
|
os=-newsos |
|
680 |
|
;; |
|
681 |
|
news1000) |
|
682 |
|
basic_machine=m68030-sony |
|
683 |
|
os=-newsos |
|
684 |
|
;; |
|
685 |
|
news-3600 | risc-news) |
|
686 |
|
basic_machine=mips-sony |
|
687 |
|
os=-newsos |
|
688 |
|
;; |
|
689 |
|
necv70) |
|
690 |
|
basic_machine=v70-nec |
|
691 |
|
os=-sysv |
|
692 |
|
;; |
|
693 |
|
next | m*-next ) |
|
694 |
|
basic_machine=m68k-next |
|
695 |
|
case $os in |
|
696 |
|
-nextstep* ) |
|
697 |
|
;; |
|
698 |
|
-ns2*) |
|
699 |
|
os=-nextstep2 |
|
700 |
|
;; |
|
701 |
|
*) |
|
702 |
|
os=-nextstep3 |
|
703 |
|
;; |
|
704 |
|
esac |
|
705 |
|
;; |
|
706 |
|
nh3000) |
|
707 |
|
basic_machine=m68k-harris |
|
708 |
|
os=-cxux |
|
709 |
|
;; |
|
710 |
|
nh[45]000) |
|
711 |
|
basic_machine=m88k-harris |
|
712 |
|
os=-cxux |
|
713 |
|
;; |
|
714 |
|
nindy960) |
|
715 |
|
basic_machine=i960-intel |
|
716 |
|
os=-nindy |
|
717 |
|
;; |
|
718 |
|
mon960) |
|
719 |
|
basic_machine=i960-intel |
|
720 |
|
os=-mon960 |
|
721 |
|
;; |
|
722 |
|
nonstopux) |
|
723 |
|
basic_machine=mips-compaq |
|
724 |
|
os=-nonstopux |
|
725 |
|
;; |
|
726 |
|
np1) |
|
727 |
|
basic_machine=np1-gould |
|
728 |
|
;; |
|
729 |
|
nv1) |
|
730 |
|
basic_machine=nv1-cray |
|
731 |
|
os=-unicosmp |
|
732 |
|
;; |
|
733 |
|
nsr-tandem) |
|
734 |
|
basic_machine=nsr-tandem |
|
735 |
|
;; |
|
736 |
|
op50n-* | op60c-*) |
|
737 |
|
basic_machine=hppa1.1-oki |
|
738 |
|
os=-proelf |
|
739 |
|
;; |
|
740 |
|
or32 | or32-*) |
|
741 |
|
basic_machine=or32-unknown |
|
742 |
|
os=-coff |
|
743 |
|
;; |
|
744 |
|
OSE68000 | ose68000) |
|
745 |
|
basic_machine=m68000-ericsson |
|
746 |
|
os=-ose |
|
747 |
|
;; |
|
748 |
|
os68k) |
|
749 |
|
basic_machine=m68k-none |
|
750 |
|
os=-os68k |
|
751 |
|
;; |
|
752 |
|
pa-hitachi) |
|
753 |
|
basic_machine=hppa1.1-hitachi |
|
754 |
|
os=-hiuxwe2 |
|
755 |
|
;; |
|
756 |
|
paragon) |
|
757 |
|
basic_machine=i860-intel |
|
758 |
|
os=-osf |
|
759 |
|
;; |
|
760 |
|
pbd) |
|
761 |
|
basic_machine=sparc-tti |
|
762 |
|
;; |
|
763 |
|
pbb) |
|
764 |
|
basic_machine=m68k-tti |
|
765 |
|
;; |
|
766 |
|
pc532 | pc532-*) |
|
767 |
|
basic_machine=ns32k-pc532 |
|
768 |
|
;; |
|
769 |
|
pentium | p5 | k5 | k6 | nexgen | viac3) |
|
770 |
|
basic_machine=i586-pc |
|
771 |
|
;; |
|
772 |
|
pentiumpro | p6 | 6x86 | athlon | athlon_*) |
|
773 |
|
basic_machine=i686-pc |
|
774 |
|
;; |
|
775 |
|
pentiumii | pentium2 | pentiumiii | pentium3) |
|
776 |
|
basic_machine=i686-pc |
|
777 |
|
;; |
|
778 |
|
pentium4) |
|
779 |
|
basic_machine=i786-pc |
|
780 |
|
;; |
|
781 |
|
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) |
|
782 |
|
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
783 |
|
;; |
|
784 |
|
pentiumpro-* | p6-* | 6x86-* | athlon-*) |
|
785 |
|
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
786 |
|
;; |
|
787 |
|
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) |
|
788 |
|
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
789 |
|
;; |
|
790 |
|
pentium4-*) |
|
791 |
|
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
792 |
|
;; |
|
793 |
|
pn) |
|
794 |
|
basic_machine=pn-gould |
|
795 |
|
;; |
|
796 |
|
power) basic_machine=power-ibm |
|
797 |
|
;; |
|
798 |
|
ppc) basic_machine=powerpc-unknown |
|
799 |
|
;; |
|
800 |
|
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
801 |
|
;; |
|
802 |
|
ppcle | powerpclittle | ppc-le | powerpc-little) |
|
803 |
|
basic_machine=powerpcle-unknown |
|
804 |
|
;; |
|
805 |
|
ppcle-* | powerpclittle-*) |
|
806 |
|
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
807 |
|
;; |
|
808 |
|
ppc64) basic_machine=powerpc64-unknown |
|
809 |
|
;; |
|
810 |
|
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
811 |
|
;; |
|
812 |
|
ppc64le | powerpc64little | ppc64-le | powerpc64-little) |
|
813 |
|
basic_machine=powerpc64le-unknown |
|
814 |
|
;; |
|
815 |
|
ppc64le-* | powerpc64little-*) |
|
816 |
|
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` |
|
817 |
|
;; |
|
818 |
|
ps2) |
|
819 |
|
basic_machine=i386-ibm |
|
820 |
|
;; |
|
821 |
|
pw32) |
|
822 |
|
basic_machine=i586-unknown |
|
823 |
|
os=-pw32 |
|
824 |
|
;; |
|
825 |
|
rom68k) |
|
826 |
|
basic_machine=m68k-rom68k |
|
827 |
|
os=-coff |
|
828 |
|
;; |
|
829 |
|
rm[46]00) |
|
830 |
|
basic_machine=mips-siemens |
|
831 |
|
;; |
|
832 |
|
rtpc | rtpc-*) |
|
833 |
|
basic_machine=romp-ibm |
|
834 |
|
;; |
|
835 |
|
s390 | s390-*) |
|
836 |
|
basic_machine=s390-ibm |
|
837 |
|
;; |
|
838 |
|
s390x | s390x-*) |
|
839 |
|
basic_machine=s390x-ibm |
|
840 |
|
;; |
|
841 |
|
sa29200) |
|
842 |
|
basic_machine=a29k-amd |
|
843 |
|
os=-udi |
|
844 |
|
;; |
|
845 |
|
sb1) |
|
846 |
|
basic_machine=mipsisa64sb1-unknown |
|
847 |
|
;; |
|
848 |
|
sb1el) |
|
849 |
|
basic_machine=mipsisa64sb1el-unknown |
|
850 |
|
;; |
|
851 |
|
sei) |
|
852 |
|
basic_machine=mips-sei |
|
853 |
|
os=-seiux |
|
854 |
|
;; |
|
855 |
|
sequent) |
|
856 |
|
basic_machine=i386-sequent |
|
857 |
|
;; |
|
858 |
|
sh) |
|
859 |
|
basic_machine=sh-hitachi |
|
860 |
|
os=-hms |
|
861 |
|
;; |
|
862 |
|
sh64) |
|
863 |
|
basic_machine=sh64-unknown |
|
864 |
|
;; |
|
865 |
|
sparclite-wrs | simso-wrs) |
|
866 |
|
basic_machine=sparclite-wrs |
|
867 |
|
os=-vxworks |
|
868 |
|
;; |
|
869 |
|
sps7) |
|
870 |
|
basic_machine=m68k-bull |
|
871 |
|
os=-sysv2 |
|
872 |
|
;; |
|
873 |
|
spur) |
|
874 |
|
basic_machine=spur-unknown |
|
875 |
|
;; |
|
876 |
|
st2000) |
|
877 |
|
basic_machine=m68k-tandem |
|
878 |
|
;; |
|
879 |
|
stratus) |
|
880 |
|
basic_machine=i860-stratus |
|
881 |
|
os=-sysv4 |
|
882 |
|
;; |
|
883 |
|
sun2) |
|
884 |
|
basic_machine=m68000-sun |
|
885 |
|
;; |
|
886 |
|
sun2os3) |
|
887 |
|
basic_machine=m68000-sun |
|
888 |
|
os=-sunos3 |
|
889 |
|
;; |
|
890 |
|
sun2os4) |
|
891 |
|
basic_machine=m68000-sun |
|
892 |
|
os=-sunos4 |
|
893 |
|
;; |
|
894 |
|
sun3os3) |
|
895 |
|
basic_machine=m68k-sun |
|
896 |
|
os=-sunos3 |
|
897 |
|
;; |
|
898 |
|
sun3os4) |
|
899 |
|
basic_machine=m68k-sun |
|
900 |
|
os=-sunos4 |
|
901 |
|
;; |
|
902 |
|
sun4os3) |
|
903 |
|
basic_machine=sparc-sun |
|
904 |
|
os=-sunos3 |
|
905 |
|
;; |
|
906 |
|
sun4os4) |
|
907 |
|
basic_machine=sparc-sun |
|
908 |
|
os=-sunos4 |
|
909 |
|
;; |
|
910 |
|
sun4sol2) |
|
911 |
|
basic_machine=sparc-sun |
|
912 |
|
os=-solaris2 |
|
913 |
|
;; |
|
914 |
|
sun3 | sun3-*) |
|
915 |
|
basic_machine=m68k-sun |
|
916 |
|
;; |
|
917 |
|
sun4) |
|
918 |
|
basic_machine=sparc-sun |
|
919 |
|
;; |
|
920 |
|
sun386 | sun386i | roadrunner) |
|
921 |
|
basic_machine=i386-sun |
|
922 |
|
;; |
|
923 |
|
sv1) |
|
924 |
|
basic_machine=sv1-cray |
|
925 |
|
os=-unicos |
|
926 |
|
;; |
|
927 |
|
symmetry) |
|
928 |
|
basic_machine=i386-sequent |
|
929 |
|
os=-dynix |
|
930 |
|
;; |
|
931 |
|
t3e) |
|
932 |
|
basic_machine=alphaev5-cray |
|
933 |
|
os=-unicos |
|
934 |
|
;; |
|
935 |
|
t90) |
|
936 |
|
basic_machine=t90-cray |
|
937 |
|
os=-unicos |
|
938 |
|
;; |
|
939 |
|
tic54x | c54x*) |
|
940 |
|
basic_machine=tic54x-unknown |
|
941 |
|
os=-coff |
|
942 |
|
;; |
|
943 |
|
tic55x | c55x*) |
|
944 |
|
basic_machine=tic55x-unknown |
|
945 |
|
os=-coff |
|
946 |
|
;; |
|
947 |
|
tic6x | c6x*) |
|
948 |
|
basic_machine=tic6x-unknown |
|
949 |
|
os=-coff |
|
950 |
|
;; |
|
951 |
|
tx39) |
|
952 |
|
basic_machine=mipstx39-unknown |
|
953 |
|
;; |
|
954 |
|
tx39el) |
|
955 |
|
basic_machine=mipstx39el-unknown |
|
956 |
|
;; |
|
957 |
|
toad1) |
|
958 |
|
basic_machine=pdp10-xkl |
|
959 |
|
os=-tops20 |
|
960 |
|
;; |
|
961 |
|
tower | tower-32) |
|
962 |
|
basic_machine=m68k-ncr |
|
963 |
|
;; |
|
964 |
|
udi29k) |
|
965 |
|
basic_machine=a29k-amd |
|
966 |
|
os=-udi |
|
967 |
|
;; |
|
968 |
|
ultra3) |
|
969 |
|
basic_machine=a29k-nyu |
|
970 |
|
os=-sym1 |
|
971 |
|
;; |
|
972 |
|
v810 | necv810) |
|
973 |
|
basic_machine=v810-nec |
|
974 |
|
os=-none |
|
975 |
|
;; |
|
976 |
|
vaxv) |
|
977 |
|
basic_machine=vax-dec |
|
978 |
|
os=-sysv |
|
979 |
|
;; |
|
980 |
|
vms) |
|
981 |
|
basic_machine=vax-dec |
|
982 |
|
os=-vms |
|
983 |
|
;; |
|
984 |
|
vpp*|vx|vx-*) |
|
985 |
|
basic_machine=f301-fujitsu |
|
986 |
|
;; |
|
987 |
|
vxworks960) |
|
988 |
|
basic_machine=i960-wrs |
|
989 |
|
os=-vxworks |
|
990 |
|
;; |
|
991 |
|
vxworks68) |
|
992 |
|
basic_machine=m68k-wrs |
|
993 |
|
os=-vxworks |
|
994 |
|
;; |
|
995 |
|
vxworks29k) |
|
996 |
|
basic_machine=a29k-wrs |
|
997 |
|
os=-vxworks |
|
998 |
|
;; |
|
999 |
|
w65*) |
|
1000 |
|
basic_machine=w65-wdc |
|
1001 |
|
os=-none |
|
1002 |
|
;; |
|
1003 |
|
w89k-*) |
|
1004 |
|
basic_machine=hppa1.1-winbond |
|
1005 |
|
os=-proelf |
|
1006 |
|
;; |
|
1007 |
|
xps | xps100) |
|
1008 |
|
basic_machine=xps100-honeywell |
|
1009 |
|
;; |
|
1010 |
|
ymp) |
|
1011 |
|
basic_machine=ymp-cray |
|
1012 |
|
os=-unicos |
|
1013 |
|
;; |
|
1014 |
|
z8k-*-coff) |
|
1015 |
|
basic_machine=z8k-unknown |
|
1016 |
|
os=-sim |
|
1017 |
|
;; |
|
1018 |
|
none) |
|
1019 |
|
basic_machine=none-none |
|
1020 |
|
os=-none |
|
1021 |
|
;; |
|
1022 |
|
|
|
1023 |
|
# Here we handle the default manufacturer of certain CPU types. It is in |
|
1024 |
|
# some cases the only manufacturer, in others, it is the most popular. |
|
1025 |
|
w89k) |
|
1026 |
|
basic_machine=hppa1.1-winbond |
|
1027 |
|
;; |
|
1028 |
|
op50n) |
|
1029 |
|
basic_machine=hppa1.1-oki |
|
1030 |
|
;; |
|
1031 |
|
op60c) |
|
1032 |
|
basic_machine=hppa1.1-oki |
|
1033 |
|
;; |
|
1034 |
|
romp) |
|
1035 |
|
basic_machine=romp-ibm |
|
1036 |
|
;; |
|
1037 |
|
rs6000) |
|
1038 |
|
basic_machine=rs6000-ibm |
|
1039 |
|
;; |
|
1040 |
|
vax) |
|
1041 |
|
basic_machine=vax-dec |
|
1042 |
|
;; |
|
1043 |
|
pdp10) |
|
1044 |
|
# there are many clones, so DEC is not a safe bet |
|
1045 |
|
basic_machine=pdp10-unknown |
|
1046 |
|
;; |
|
1047 |
|
pdp11) |
|
1048 |
|
basic_machine=pdp11-dec |
|
1049 |
|
;; |
|
1050 |
|
we32k) |
|
1051 |
|
basic_machine=we32k-att |
|
1052 |
|
;; |
|
1053 |
|
sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele) |
|
1054 |
|
basic_machine=sh-unknown |
|
1055 |
|
;; |
|
1056 |
|
sh64) |
|
1057 |
|
basic_machine=sh64-unknown |
|
1058 |
|
;; |
|
1059 |
|
sparc | sparcv9 | sparcv9b) |
|
1060 |
|
basic_machine=sparc-sun |
|
1061 |
|
;; |
|
1062 |
|
cydra) |
|
1063 |
|
basic_machine=cydra-cydrome |
|
1064 |
|
;; |
|
1065 |
|
orion) |
|
1066 |
|
basic_machine=orion-highlevel |
|
1067 |
|
;; |
|
1068 |
|
orion105) |
|
1069 |
|
basic_machine=clipper-highlevel |
|
1070 |
|
;; |
|
1071 |
|
mac | mpw | mac-mpw) |
|
1072 |
|
basic_machine=m68k-apple |
|
1073 |
|
;; |
|
1074 |
|
pmac | pmac-mpw) |
|
1075 |
|
basic_machine=powerpc-apple |
|
1076 |
|
;; |
|
1077 |
|
*-unknown) |
|
1078 |
|
# Make sure to match an already-canonicalized machine name. |
|
1079 |
|
;; |
|
1080 |
|
*) |
|
1081 |
|
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 |
|
1082 |
|
exit 1 |
|
1083 |
|
;; |
|
1084 |
|
esac |
|
1085 |
|
|
|
1086 |
|
# Here we canonicalize certain aliases for manufacturers. |
|
1087 |
|
case $basic_machine in |
|
1088 |
|
*-digital*) |
|
1089 |
|
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` |
|
1090 |
|
;; |
|
1091 |
|
*-commodore*) |
|
1092 |
|
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` |
|
1093 |
|
;; |
|
1094 |
|
*) |
|
1095 |
|
;; |
|
1096 |
|
esac |
|
1097 |
|
|
|
1098 |
|
# Decode manufacturer-specific aliases for certain operating systems. |
|
1099 |
|
|
|
1100 |
|
if [ x"$os" != x"" ] |
|
1101 |
|
then |
|
1102 |
|
case $os in |
|
1103 |
|
# First match some system type aliases |
|
1104 |
|
# that might get confused with valid system types. |
|
1105 |
|
# -solaris* is a basic system type, with this one exception. |
|
1106 |
|
-solaris1 | -solaris1.*) |
|
1107 |
|
os=`echo $os | sed -e 's|solaris1|sunos4|'` |
|
1108 |
|
;; |
|
1109 |
|
-solaris) |
|
1110 |
|
os=-solaris2 |
|
1111 |
|
;; |
|
1112 |
|
-svr4*) |
|
1113 |
|
os=-sysv4 |
|
1114 |
|
;; |
|
1115 |
|
-unixware*) |
|
1116 |
|
os=-sysv4.2uw |
|
1117 |
|
;; |
|
1118 |
|
-gnu/linux*) |
|
1119 |
|
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` |
|
1120 |
|
;; |
|
1121 |
|
# First accept the basic system types. |
|
1122 |
|
# The portable systems comes first. |
|
1123 |
|
# Each alternative MUST END IN A *, to match a version number. |
|
1124 |
|
# -sysv* is not here because it comes later, after sysvr4. |
|
1125 |
|
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ |
|
1126 |
|
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ |
|
1127 |
|
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ |
|
1128 |
|
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ |
|
1129 |
|
| -aos* \ |
|
1130 |
|
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ |
|
1131 |
|
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ |
|
1132 |
|
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \ |
|
1133 |
|
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ |
|
1134 |
|
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ |
|
1135 |
|
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ |
|
1136 |
|
| -chorusos* | -chorusrdb* \ |
|
1137 |
|
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ |
|
1138 |
|
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ |
|
1139 |
|
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ |
|
1140 |
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ |
|
1141 |
|
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ |
|
1142 |
|
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ |
|
1143 |
|
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ |
|
1144 |
|
| -powermax* | -dnix* | -nx6 | -nx7 | -sei*) |
|
1145 |
|
# Remember, each alternative MUST END IN *, to match a version number. |
|
1146 |
|
;; |
|
1147 |
|
-qnx*) |
|
1148 |
|
case $basic_machine in |
|
1149 |
|
x86-* | i*86-*) |
|
1150 |
|
;; |
|
1151 |
|
*) |
|
1152 |
|
os=-nto$os |
|
1153 |
|
;; |
|
1154 |
|
esac |
|
1155 |
|
;; |
|
1156 |
|
-nto-qnx*) |
|
1157 |
|
;; |
|
1158 |
|
-nto*) |
|
1159 |
|
os=`echo $os | sed -e 's|nto|nto-qnx|'` |
|
1160 |
|
;; |
|
1161 |
|
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ |
|
1162 |
|
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \ |
|
1163 |
|
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) |
|
1164 |
|
;; |
|
1165 |
|
-mac*) |
|
1166 |
|
os=`echo $os | sed -e 's|mac|macos|'` |
|
1167 |
|
;; |
|
1168 |
|
-linux-dietlibc) |
|
1169 |
|
os=-linux-dietlibc |
|
1170 |
|
;; |
|
1171 |
|
-linux*) |
|
1172 |
|
os=`echo $os | sed -e 's|linux|linux-gnu|'` |
|
1173 |
|
;; |
|
1174 |
|
-sunos5*) |
|
1175 |
|
os=`echo $os | sed -e 's|sunos5|solaris2|'` |
|
1176 |
|
;; |
|
1177 |
|
-sunos6*) |
|
1178 |
|
os=`echo $os | sed -e 's|sunos6|solaris3|'` |
|
1179 |
|
;; |
|
1180 |
|
-opened*) |
|
1181 |
|
os=-openedition |
|
1182 |
|
;; |
|
1183 |
|
-wince*) |
|
1184 |
|
os=-wince |
|
1185 |
|
;; |
|
1186 |
|
-osfrose*) |
|
1187 |
|
os=-osfrose |
|
1188 |
|
;; |
|
1189 |
|
-osf*) |
|
1190 |
|
os=-osf |
|
1191 |
|
;; |
|
1192 |
|
-utek*) |
|
1193 |
|
os=-bsd |
|
1194 |
|
;; |
|
1195 |
|
-dynix*) |
|
1196 |
|
os=-bsd |
|
1197 |
|
;; |
|
1198 |
|
-acis*) |
|
1199 |
|
os=-aos |
|
1200 |
|
;; |
|
1201 |
|
-atheos*) |
|
1202 |
|
os=-atheos |
|
1203 |
|
;; |
|
1204 |
|
-386bsd) |
|
1205 |
|
os=-bsd |
|
1206 |
|
;; |
|
1207 |
|
-ctix* | -uts*) |
|
1208 |
|
os=-sysv |
|
1209 |
|
;; |
|
1210 |
|
-nova*) |
|
1211 |
|
os=-rtmk-nova |
|
1212 |
|
;; |
|
1213 |
|
-ns2 ) |
|
1214 |
|
os=-nextstep2 |
|
1215 |
|
;; |
|
1216 |
|
-nsk*) |
|
1217 |
|
os=-nsk |
|
1218 |
|
;; |
|
1219 |
|
# Preserve the version number of sinix5. |
|
1220 |
|
-sinix5.*) |
|
1221 |
|
os=`echo $os | sed -e 's|sinix|sysv|'` |
|
1222 |
|
;; |
|
1223 |
|
-sinix*) |
|
1224 |
|
os=-sysv4 |
|
1225 |
|
;; |
|
1226 |
|
-triton*) |
|
1227 |
|
os=-sysv3 |
|
1228 |
|
;; |
|
1229 |
|
-oss*) |
|
1230 |
|
os=-sysv3 |
|
1231 |
|
;; |
|
1232 |
|
-svr4) |
|
1233 |
|
os=-sysv4 |
|
1234 |
|
;; |
|
1235 |
|
-svr3) |
|
1236 |
|
os=-sysv3 |
|
1237 |
|
;; |
|
1238 |
|
-sysvr4) |
|
1239 |
|
os=-sysv4 |
|
1240 |
|
;; |
|
1241 |
|
# This must come after -sysvr4. |
|
1242 |
|
-sysv*) |
|
1243 |
|
;; |
|
1244 |
|
-ose*) |
|
1245 |
|
os=-ose |
|
1246 |
|
;; |
|
1247 |
|
-es1800*) |
|
1248 |
|
os=-ose |
|
1249 |
|
;; |
|
1250 |
|
-xenix) |
|
1251 |
|
os=-xenix |
|
1252 |
|
;; |
|
1253 |
|
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) |
|
1254 |
|
os=-mint |
|
1255 |
|
;; |
|
1256 |
|
-aros*) |
|
1257 |
|
os=-aros |
|
1258 |
|
;; |
|
1259 |
|
-kaos*) |
|
1260 |
|
os=-kaos |
|
1261 |
|
;; |
|
1262 |
|
-none) |
|
1263 |
|
;; |
|
1264 |
|
*) |
|
1265 |
|
# Get rid of the `-' at the beginning of $os. |
|
1266 |
|
os=`echo $os | sed 's/[^-]*-//'` |
|
1267 |
|
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 |
|
1268 |
|
exit 1 |
|
1269 |
|
;; |
|
1270 |
|
esac |
|
1271 |
|
else |
|
1272 |
|
|
|
1273 |
|
# Here we handle the default operating systems that come with various machines. |
|
1274 |
|
# The value should be what the vendor currently ships out the door with their |
|
1275 |
|
# machine or put another way, the most popular os provided with the machine. |
|
1276 |
|
|
|
1277 |
|
# Note that if you're going to try to match "-MANUFACTURER" here (say, |
|
1278 |
|
# "-sun"), then you have to tell the case statement up towards the top |
|
1279 |
|
# that MANUFACTURER isn't an operating system. Otherwise, code above |
|
1280 |
|
# will signal an error saying that MANUFACTURER isn't an operating |
|
1281 |
|
# system, and we'll never get to this point. |
|
1282 |
|
|
|
1283 |
|
case $basic_machine in |
|
1284 |
|
*-acorn) |
|
1285 |
|
os=-riscix1.2 |
|
1286 |
|
;; |
|
1287 |
|
arm*-rebel) |
|
1288 |
|
os=-linux |
|
1289 |
|
;; |
|
1290 |
|
arm*-semi) |
|
1291 |
|
os=-aout |
|
1292 |
|
;; |
|
1293 |
|
c4x-* | tic4x-*) |
|
1294 |
|
os=-coff |
|
1295 |
|
;; |
|
1296 |
|
# This must come before the *-dec entry. |
|
1297 |
|
pdp10-*) |
|
1298 |
|
os=-tops20 |
|
1299 |
|
;; |
|
1300 |
|
pdp11-*) |
|
1301 |
|
os=-none |
|
1302 |
|
;; |
|
1303 |
|
*-dec | vax-*) |
|
1304 |
|
os=-ultrix4.2 |
|
1305 |
|
;; |
|
1306 |
|
m68*-apollo) |
|
1307 |
|
os=-domain |
|
1308 |
|
;; |
|
1309 |
|
i386-sun) |
|
1310 |
|
os=-sunos4.0.2 |
|
1311 |
|
;; |
|
1312 |
|
m68000-sun) |
|
1313 |
|
os=-sunos3 |
|
1314 |
|
# This also exists in the configure program, but was not the |
|
1315 |
|
# default. |
|
1316 |
|
# os=-sunos4 |
|
1317 |
|
;; |
|
1318 |
|
m68*-cisco) |
|
1319 |
|
os=-aout |
|
1320 |
|
;; |
|
1321 |
|
mips*-cisco) |
|
1322 |
|
os=-elf |
|
1323 |
|
;; |
|
1324 |
|
mips*-*) |
|
1325 |
|
os=-elf |
|
1326 |
|
;; |
|
1327 |
|
or32-*) |
|
1328 |
|
os=-coff |
|
1329 |
|
;; |
|
1330 |
|
*-tti) # must be before sparc entry or we get the wrong os. |
|
1331 |
|
os=-sysv3 |
|
1332 |
|
;; |
|
1333 |
|
sparc-* | *-sun) |
|
1334 |
|
os=-sunos4.1.1 |
|
1335 |
|
;; |
|
1336 |
|
*-be) |
|
1337 |
|
os=-beos |
|
1338 |
|
;; |
|
1339 |
|
*-ibm) |
|
1340 |
|
os=-aix |
|
1341 |
|
;; |
|
1342 |
|
*-wec) |
|
1343 |
|
os=-proelf |
|
1344 |
|
;; |
|
1345 |
|
*-winbond) |
|
1346 |
|
os=-proelf |
|
1347 |
|
;; |
|
1348 |
|
*-oki) |
|
1349 |
|
os=-proelf |
|
1350 |
|
;; |
|
1351 |
|
*-hp) |
|
1352 |
|
os=-hpux |
|
1353 |
|
;; |
|
1354 |
|
*-hitachi) |
|
1355 |
|
os=-hiux |
|
1356 |
|
;; |
|
1357 |
|
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) |
|
1358 |
|
os=-sysv |
|
1359 |
|
;; |
|
1360 |
|
*-cbm) |
|
1361 |
|
os=-amigaos |
|
1362 |
|
;; |
|
1363 |
|
*-dg) |
|
1364 |
|
os=-dgux |
|
1365 |
|
;; |
|
1366 |
|
*-dolphin) |
|
1367 |
|
os=-sysv3 |
|
1368 |
|
;; |
|
1369 |
|
m68k-ccur) |
|
1370 |
|
os=-rtu |
|
1371 |
|
;; |
|
1372 |
|
m88k-omron*) |
|
1373 |
|
os=-luna |
|
1374 |
|
;; |
|
1375 |
|
*-next ) |
|
1376 |
|
os=-nextstep |
|
1377 |
|
;; |
|
1378 |
|
*-sequent) |
|
1379 |
|
os=-ptx |
|
1380 |
|
;; |
|
1381 |
|
*-crds) |
|
1382 |
|
os=-unos |
|
1383 |
|
;; |
|
1384 |
|
*-ns) |
|
1385 |
|
os=-genix |
|
1386 |
|
;; |
|
1387 |
|
i370-*) |
|
1388 |
|
os=-mvs |
|
1389 |
|
;; |
|
1390 |
|
*-next) |
|
1391 |
|
os=-nextstep3 |
|
1392 |
|
;; |
|
1393 |
|
*-gould) |
|
1394 |
|
os=-sysv |
|
1395 |
|
;; |
|
1396 |
|
*-highlevel) |
|
1397 |
|
os=-bsd |
|
1398 |
|
;; |
|
1399 |
|
*-encore) |
|
1400 |
|
os=-bsd |
|
1401 |
|
;; |
|
1402 |
|
*-sgi) |
|
1403 |
|
os=-irix |
|
1404 |
|
;; |
|
1405 |
|
*-siemens) |
|
1406 |
|
os=-sysv4 |
|
1407 |
|
;; |
|
1408 |
|
*-masscomp) |
|
1409 |
|
os=-rtu |
|
1410 |
|
;; |
|
1411 |
|
f30[01]-fujitsu | f700-fujitsu) |
|
1412 |
|
os=-uxpv |
|
1413 |
|
;; |
|
1414 |
|
*-rom68k) |
|
1415 |
|
os=-coff |
|
1416 |
|
;; |
|
1417 |
|
*-*bug) |
|
1418 |
|
os=-coff |
|
1419 |
|
;; |
|
1420 |
|
*-apple) |
|
1421 |
|
os=-macos |
|
1422 |
|
;; |
|
1423 |
|
*-atari*) |
|
1424 |
|
os=-mint |
|
1425 |
|
;; |
|
1426 |
|
*) |
|
1427 |
|
os=-none |
|
1428 |
|
;; |
|
1429 |
|
esac |
|
1430 |
|
fi |
|
1431 |
|
|
|
1432 |
|
# Here we handle the case where we know the os, and the CPU type, but not the |
|
1433 |
|
# manufacturer. We pick the logical manufacturer. |
|
1434 |
|
vendor=unknown |
|
1435 |
|
case $basic_machine in |
|
1436 |
|
*-unknown) |
|
1437 |
|
case $os in |
|
1438 |
|
-riscix*) |
|
1439 |
|
vendor=acorn |
|
1440 |
|
;; |
|
1441 |
|
-sunos*) |
|
1442 |
|
vendor=sun |
|
1443 |
|
;; |
|
1444 |
|
-aix*) |
|
1445 |
|
vendor=ibm |
|
1446 |
|
;; |
|
1447 |
|
-beos*) |
|
1448 |
|
vendor=be |
|
1449 |
|
;; |
|
1450 |
|
-hpux*) |
|
1451 |
|
vendor=hp |
|
1452 |
|
;; |
|
1453 |
|
-mpeix*) |
|
1454 |
|
vendor=hp |
|
1455 |
|
;; |
|
1456 |
|
-hiux*) |
|
1457 |
|
vendor=hitachi |
|
1458 |
|
;; |
|
1459 |
|
-unos*) |
|
1460 |
|
vendor=crds |
|
1461 |
|
;; |
|
1462 |
|
-dgux*) |
|
1463 |
|
vendor=dg |
|
1464 |
|
;; |
|
1465 |
|
-luna*) |
|
1466 |
|
vendor=omron |
|
1467 |
|
;; |
|
1468 |
|
-genix*) |
|
1469 |
|
vendor=ns |
|
1470 |
|
;; |
|
1471 |
|
-mvs* | -opened*) |
|
1472 |
|
vendor=ibm |
|
1473 |
|
;; |
|
1474 |
|
-ptx*) |
|
1475 |
|
vendor=sequent |
|
1476 |
|
;; |
|
1477 |
|
-vxsim* | -vxworks* | -windiss*) |
|
1478 |
|
vendor=wrs |
|
1479 |
|
;; |
|
1480 |
|
-aux*) |
|
1481 |
|
vendor=apple |
|
1482 |
|
;; |
|
1483 |
|
-hms*) |
|
1484 |
|
vendor=hitachi |
|
1485 |
|
;; |
|
1486 |
|
-mpw* | -macos*) |
|
1487 |
|
vendor=apple |
|
1488 |
|
;; |
|
1489 |
|
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) |
|
1490 |
|
vendor=atari |
|
1491 |
|
;; |
|
1492 |
|
-vos*) |
|
1493 |
|
vendor=stratus |
|
1494 |
|
;; |
|
1495 |
|
esac |
|
1496 |
|
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` |
|
1497 |
|
;; |
|
1498 |
|
esac |
|
1499 |
|
|
|
1500 |
|
echo $basic_machine$os |
|
1501 |
|
exit 0 |
|
1502 |
|
|
|
1503 |
|
# Local variables: |
|
1504 |
|
# eval: (add-hook 'write-file-hooks 'time-stamp) |
|
1505 |
|
# time-stamp-start: "timestamp='" |
|
1506 |
|
# time-stamp-format: "%:y-%02m-%02d" |
|
1507 |
|
# time-stamp-end: "'" |
|
1508 |
|
# End: |
|
File depcomp deleted (index edb5d38..0000000) |
1 |
|
#! /bin/sh |
|
2 |
|
|
|
3 |
|
# depcomp - compile a program generating dependencies as side-effects |
|
4 |
|
# Copyright 1999, 2000, 2003 Free Software Foundation, Inc. |
|
5 |
|
|
|
6 |
|
# This program is free software; you can redistribute it and/or modify |
|
7 |
|
# it under the terms of the GNU General Public License as published by |
|
8 |
|
# the Free Software Foundation; either version 2, or (at your option) |
|
9 |
|
# any later version. |
|
10 |
|
|
|
11 |
|
# This program is distributed in the hope that it will be useful, |
|
12 |
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
|
# GNU General Public License for more details. |
|
15 |
|
|
|
16 |
|
# You should have received a copy of the GNU General Public License |
|
17 |
|
# along with this program; if not, write to the Free Software |
|
18 |
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
|
19 |
|
# 02111-1307, USA. |
|
20 |
|
|
|
21 |
|
# As a special exception to the GNU General Public License, if you |
|
22 |
|
# distribute this file as part of a program that contains a |
|
23 |
|
# configuration script generated by Autoconf, you may include it under |
|
24 |
|
# the same distribution terms that you use for the rest of that program. |
|
25 |
|
|
|
26 |
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. |
|
27 |
|
|
|
28 |
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then |
|
29 |
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2 |
|
30 |
|
exit 1 |
|
31 |
|
fi |
|
32 |
|
# `libtool' can also be set to `yes' or `no'. |
|
33 |
|
|
|
34 |
|
if test -z "$depfile"; then |
|
35 |
|
base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` |
|
36 |
|
dir=`echo "$object" | sed 's,/.*$,/,'` |
|
37 |
|
if test "$dir" = "$object"; then |
|
38 |
|
dir= |
|
39 |
|
fi |
|
40 |
|
# FIXME: should be _deps on DOS. |
|
41 |
|
depfile="$dir.deps/$base" |
|
42 |
|
fi |
|
43 |
|
|
|
44 |
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} |
|
45 |
|
|
|
46 |
|
rm -f "$tmpdepfile" |
|
47 |
|
|
|
48 |
|
# Some modes work just like other modes, but use different flags. We |
|
49 |
|
# parameterize here, but still list the modes in the big case below, |
|
50 |
|
# to make depend.m4 easier to write. Note that we *cannot* use a case |
|
51 |
|
# here, because this file can only contain one case statement. |
|
52 |
|
if test "$depmode" = hp; then |
|
53 |
|
# HP compiler uses -M and no extra arg. |
|
54 |
|
gccflag=-M |
|
55 |
|
depmode=gcc |
|
56 |
|
fi |
|
57 |
|
|
|
58 |
|
if test "$depmode" = dashXmstdout; then |
|
59 |
|
# This is just like dashmstdout with a different argument. |
|
60 |
|
dashmflag=-xM |
|
61 |
|
depmode=dashmstdout |
|
62 |
|
fi |
|
63 |
|
|
|
64 |
|
case "$depmode" in |
|
65 |
|
gcc3) |
|
66 |
|
## gcc 3 implements dependency tracking that does exactly what |
|
67 |
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like |
|
68 |
|
## it if -MD -MP comes after the -MF stuff. Hmm. |
|
69 |
|
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile" |
|
70 |
|
stat=$? |
|
71 |
|
if test $stat -eq 0; then : |
|
72 |
|
else |
|
73 |
|
rm -f "$tmpdepfile" |
|
74 |
|
exit $stat |
|
75 |
|
fi |
|
76 |
|
mv "$tmpdepfile" "$depfile" |
|
77 |
|
;; |
|
78 |
|
|
|
79 |
|
gcc) |
|
80 |
|
## There are various ways to get dependency output from gcc. Here's |
|
81 |
|
## why we pick this rather obscure method: |
|
82 |
|
## - Don't want to use -MD because we'd like the dependencies to end |
|
83 |
|
## up in a subdir. Having to rename by hand is ugly. |
|
84 |
|
## (We might end up doing this anyway to support other compilers.) |
|
85 |
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like |
|
86 |
|
## -MM, not -M (despite what the docs say). |
|
87 |
|
## - Using -M directly means running the compiler twice (even worse |
|
88 |
|
## than renaming). |
|
89 |
|
if test -z "$gccflag"; then |
|
90 |
|
gccflag=-MD, |
|
91 |
|
fi |
|
92 |
|
"$@" -Wp,"$gccflag$tmpdepfile" |
|
93 |
|
stat=$? |
|
94 |
|
if test $stat -eq 0; then : |
|
95 |
|
else |
|
96 |
|
rm -f "$tmpdepfile" |
|
97 |
|
exit $stat |
|
98 |
|
fi |
|
99 |
|
rm -f "$depfile" |
|
100 |
|
echo "$object : \\" > "$depfile" |
|
101 |
|
alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz |
|
102 |
|
## The second -e expression handles DOS-style file names with drive letters. |
|
103 |
|
sed -e 's/^[^:]*: / /' \ |
|
104 |
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" |
|
105 |
|
## This next piece of magic avoids the `deleted header file' problem. |
|
106 |
|
## The problem is that when a header file which appears in a .P file |
|
107 |
|
## is deleted, the dependency causes make to die (because there is |
|
108 |
|
## typically no way to rebuild the header). We avoid this by adding |
|
109 |
|
## dummy dependencies for each header file. Too bad gcc doesn't do |
|
110 |
|
## this for us directly. |
|
111 |
|
tr ' ' ' |
|
112 |
|
' < "$tmpdepfile" | |
|
113 |
|
## Some versions of gcc put a space before the `:'. On the theory |
|
114 |
|
## that the space means something, we add a space to the output as |
|
115 |
|
## well. |
|
116 |
|
## Some versions of the HPUX 10.20 sed can't process this invocation |
|
117 |
|
## correctly. Breaking it into two sed invocations is a workaround. |
|
118 |
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|
119 |
|
rm -f "$tmpdepfile" |
|
120 |
|
;; |
|
121 |
|
|
|
122 |
|
hp) |
|
123 |
|
# This case exists only to let depend.m4 do its work. It works by |
|
124 |
|
# looking at the text of this script. This case will never be run, |
|
125 |
|
# since it is checked for above. |
|
126 |
|
exit 1 |
|
127 |
|
;; |
|
128 |
|
|
|
129 |
|
sgi) |
|
130 |
|
if test "$libtool" = yes; then |
|
131 |
|
"$@" "-Wp,-MDupdate,$tmpdepfile" |
|
132 |
|
else |
|
133 |
|
"$@" -MDupdate "$tmpdepfile" |
|
134 |
|
fi |
|
135 |
|
stat=$? |
|
136 |
|
if test $stat -eq 0; then : |
|
137 |
|
else |
|
138 |
|
rm -f "$tmpdepfile" |
|
139 |
|
exit $stat |
|
140 |
|
fi |
|
141 |
|
rm -f "$depfile" |
|
142 |
|
|
|
143 |
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files |
|
144 |
|
echo "$object : \\" > "$depfile" |
|
145 |
|
|
|
146 |
|
# Clip off the initial element (the dependent). Don't try to be |
|
147 |
|
# clever and replace this with sed code, as IRIX sed won't handle |
|
148 |
|
# lines with more than a fixed number of characters (4096 in |
|
149 |
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; |
|
150 |
|
# the IRIX cc adds comments like `#:fec' to the end of the |
|
151 |
|
# dependency line. |
|
152 |
|
tr ' ' ' |
|
153 |
|
' < "$tmpdepfile" \ |
|
154 |
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ |
|
155 |
|
tr ' |
|
156 |
|
' ' ' >> $depfile |
|
157 |
|
echo >> $depfile |
|
158 |
|
|
|
159 |
|
# The second pass generates a dummy entry for each header file. |
|
160 |
|
tr ' ' ' |
|
161 |
|
' < "$tmpdepfile" \ |
|
162 |
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ |
|
163 |
|
>> $depfile |
|
164 |
|
else |
|
165 |
|
# The sourcefile does not contain any dependencies, so just |
|
166 |
|
# store a dummy comment line, to avoid errors with the Makefile |
|
167 |
|
# "include basename.Plo" scheme. |
|
168 |
|
echo "#dummy" > "$depfile" |
|
169 |
|
fi |
|
170 |
|
rm -f "$tmpdepfile" |
|
171 |
|
;; |
|
172 |
|
|
|
173 |
|
aix) |
|
174 |
|
# The C for AIX Compiler uses -M and outputs the dependencies |
|
175 |
|
# in a .u file. In older versions, this file always lives in the |
|
176 |
|
# current directory. Also, the AIX compiler puts `$object:' at the |
|
177 |
|
# start of each line; $object doesn't have directory information. |
|
178 |
|
# Version 6 uses the directory in both cases. |
|
179 |
|
stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` |
|
180 |
|
tmpdepfile="$stripped.u" |
|
181 |
|
if test "$libtool" = yes; then |
|
182 |
|
"$@" -Wc,-M |
|
183 |
|
else |
|
184 |
|
"$@" -M |
|
185 |
|
fi |
|
186 |
|
stat=$? |
|
187 |
|
|
|
188 |
|
if test -f "$tmpdepfile"; then : |
|
189 |
|
else |
|
190 |
|
stripped=`echo "$stripped" | sed 's,^.*/,,'` |
|
191 |
|
tmpdepfile="$stripped.u" |
|
192 |
|
fi |
|
193 |
|
|
|
194 |
|
if test $stat -eq 0; then : |
|
195 |
|
else |
|
196 |
|
rm -f "$tmpdepfile" |
|
197 |
|
exit $stat |
|
198 |
|
fi |
|
199 |
|
|
|
200 |
|
if test -f "$tmpdepfile"; then |
|
201 |
|
outname="$stripped.o" |
|
202 |
|
# Each line is of the form `foo.o: dependent.h'. |
|
203 |
|
# Do two passes, one to just change these to |
|
204 |
|
# `$object: dependent.h' and one to simply `dependent.h:'. |
|
205 |
|
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" |
|
206 |
|
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" |
|
207 |
|
else |
|
208 |
|
# The sourcefile does not contain any dependencies, so just |
|
209 |
|
# store a dummy comment line, to avoid errors with the Makefile |
|
210 |
|
# "include basename.Plo" scheme. |
|
211 |
|
echo "#dummy" > "$depfile" |
|
212 |
|
fi |
|
213 |
|
rm -f "$tmpdepfile" |
|
214 |
|
;; |
|
215 |
|
|
|
216 |
|
icc) |
|
217 |
|
# Intel's C compiler understands `-MD -MF file'. However on |
|
218 |
|
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c |
|
219 |
|
# ICC 7.0 will fill foo.d with something like |
|
220 |
|
# foo.o: sub/foo.c |
|
221 |
|
# foo.o: sub/foo.h |
|
222 |
|
# which is wrong. We want: |
|
223 |
|
# sub/foo.o: sub/foo.c |
|
224 |
|
# sub/foo.o: sub/foo.h |
|
225 |
|
# sub/foo.c: |
|
226 |
|
# sub/foo.h: |
|
227 |
|
# ICC 7.1 will output |
|
228 |
|
# foo.o: sub/foo.c sub/foo.h |
|
229 |
|
# and will wrap long lines using \ : |
|
230 |
|
# foo.o: sub/foo.c ... \ |
|
231 |
|
# sub/foo.h ... \ |
|
232 |
|
# ... |
|
233 |
|
|
|
234 |
|
"$@" -MD -MF "$tmpdepfile" |
|
235 |
|
stat=$? |
|
236 |
|
if test $stat -eq 0; then : |
|
237 |
|
else |
|
238 |
|
rm -f "$tmpdepfile" |
|
239 |
|
exit $stat |
|
240 |
|
fi |
|
241 |
|
rm -f "$depfile" |
|
242 |
|
# Each line is of the form `foo.o: dependent.h', |
|
243 |
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. |
|
244 |
|
# Do two passes, one to just change these to |
|
245 |
|
# `$object: dependent.h' and one to simply `dependent.h:'. |
|
246 |
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" |
|
247 |
|
# Some versions of the HPUX 10.20 sed can't process this invocation |
|
248 |
|
# correctly. Breaking it into two sed invocations is a workaround. |
|
249 |
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | |
|
250 |
|
sed -e 's/$/ :/' >> "$depfile" |
|
251 |
|
rm -f "$tmpdepfile" |
|
252 |
|
;; |
|
253 |
|
|
|
254 |
|
tru64) |
|
255 |
|
# The Tru64 compiler uses -MD to generate dependencies as a side |
|
256 |
|
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. |
|
257 |
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put |
|
258 |
|
# dependencies in `foo.d' instead, so we check for that too. |
|
259 |
|
# Subdirectories are respected. |
|
260 |
|
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` |
|
261 |
|
test "x$dir" = "x$object" && dir= |
|
262 |
|
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` |
|
263 |
|
|
|
264 |
|
if test "$libtool" = yes; then |
|
265 |
|
tmpdepfile1="$dir.libs/$base.lo.d" |
|
266 |
|
tmpdepfile2="$dir.libs/$base.d" |
|
267 |
|
"$@" -Wc,-MD |
|
268 |
|
else |
|
269 |
|
tmpdepfile1="$dir$base.o.d" |
|
270 |
|
tmpdepfile2="$dir$base.d" |
|
271 |
|
"$@" -MD |
|
272 |
|
fi |
|
273 |
|
|
|
274 |
|
stat=$? |
|
275 |
|
if test $stat -eq 0; then : |
|
276 |
|
else |
|
277 |
|
rm -f "$tmpdepfile1" "$tmpdepfile2" |
|
278 |
|
exit $stat |
|
279 |
|
fi |
|
280 |
|
|
|
281 |
|
if test -f "$tmpdepfile1"; then |
|
282 |
|
tmpdepfile="$tmpdepfile1" |
|
283 |
|
else |
|
284 |
|
tmpdepfile="$tmpdepfile2" |
|
285 |
|
fi |
|
286 |
|
if test -f "$tmpdepfile"; then |
|
287 |
|
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" |
|
288 |
|
# That's a tab and a space in the []. |
|
289 |
|
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" |
|
290 |
|
else |
|
291 |
|
echo "#dummy" > "$depfile" |
|
292 |
|
fi |
|
293 |
|
rm -f "$tmpdepfile" |
|
294 |
|
;; |
|
295 |
|
|
|
296 |
|
#nosideeffect) |
|
297 |
|
# This comment above is used by automake to tell side-effect |
|
298 |
|
# dependency tracking mechanisms from slower ones. |
|
299 |
|
|
|
300 |
|
dashmstdout) |
|
301 |
|
# Important note: in order to support this mode, a compiler *must* |
|
302 |
|
# always write the preprocessed file to stdout, regardless of -o. |
|
303 |
|
"$@" || exit $? |
|
304 |
|
|
|
305 |
|
# Remove the call to Libtool. |
|
306 |
|
if test "$libtool" = yes; then |
|
307 |
|
while test $1 != '--mode=compile'; do |
|
308 |
|
shift |
|
309 |
|
done |
|
310 |
|
shift |
|
311 |
|
fi |
|
312 |
|
|
|
313 |
|
# Remove `-o $object'. |
|
314 |
|
IFS=" " |
|
315 |
|
for arg |
|
316 |
|
do |
|
317 |
|
case $arg in |
|
318 |
|
-o) |
|
319 |
|
shift |
|
320 |
|
;; |
|
321 |
|
$object) |
|
322 |
|
shift |
|
323 |
|
;; |
|
324 |
|
*) |
|
325 |
|
set fnord "$@" "$arg" |
|
326 |
|
shift # fnord |
|
327 |
|
shift # $arg |
|
328 |
|
;; |
|
329 |
|
esac |
|
330 |
|
done |
|
331 |
|
|
|
332 |
|
test -z "$dashmflag" && dashmflag=-M |
|
333 |
|
# Require at least two characters before searching for `:' |
|
334 |
|
# in the target name. This is to cope with DOS-style filenames: |
|
335 |
|
# a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. |
|
336 |
|
"$@" $dashmflag | |
|
337 |
|
sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" |
|
338 |
|
rm -f "$depfile" |
|
339 |
|
cat < "$tmpdepfile" > "$depfile" |
|
340 |
|
tr ' ' ' |
|
341 |
|
' < "$tmpdepfile" | \ |
|
342 |
|
## Some versions of the HPUX 10.20 sed can't process this invocation |
|
343 |
|
## correctly. Breaking it into two sed invocations is a workaround. |
|
344 |
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|
345 |
|
rm -f "$tmpdepfile" |
|
346 |
|
;; |
|
347 |
|
|
|
348 |
|
dashXmstdout) |
|
349 |
|
# This case only exists to satisfy depend.m4. It is never actually |
|
350 |
|
# run, as this mode is specially recognized in the preamble. |
|
351 |
|
exit 1 |
|
352 |
|
;; |
|
353 |
|
|
|
354 |
|
makedepend) |
|
355 |
|
"$@" || exit $? |
|
356 |
|
# Remove any Libtool call |
|
357 |
|
if test "$libtool" = yes; then |
|
358 |
|
while test $1 != '--mode=compile'; do |
|
359 |
|
shift |
|
360 |
|
done |
|
361 |
|
shift |
|
362 |
|
fi |
|
363 |
|
# X makedepend |
|
364 |
|
shift |
|
365 |
|
cleared=no |
|
366 |
|
for arg in "$@"; do |
|
367 |
|
case $cleared in |
|
368 |
|
no) |
|
369 |
|
set ""; shift |
|
370 |
|
cleared=yes ;; |
|
371 |
|
esac |
|
372 |
|
case "$arg" in |
|
373 |
|
-D*|-I*) |
|
374 |
|
set fnord "$@" "$arg"; shift ;; |
|
375 |
|
# Strip any option that makedepend may not understand. Remove |
|
376 |
|
# the object too, otherwise makedepend will parse it as a source file. |
|
377 |
|
-*|$object) |
|
378 |
|
;; |
|
379 |
|
*) |
|
380 |
|
set fnord "$@" "$arg"; shift ;; |
|
381 |
|
esac |
|
382 |
|
done |
|
383 |
|
obj_suffix="`echo $object | sed 's/^.*\././'`" |
|
384 |
|
touch "$tmpdepfile" |
|
385 |
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" |
|
386 |
|
rm -f "$depfile" |
|
387 |
|
cat < "$tmpdepfile" > "$depfile" |
|
388 |
|
sed '1,2d' "$tmpdepfile" | tr ' ' ' |
|
389 |
|
' | \ |
|
390 |
|
## Some versions of the HPUX 10.20 sed can't process this invocation |
|
391 |
|
## correctly. Breaking it into two sed invocations is a workaround. |
|
392 |
|
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" |
|
393 |
|
rm -f "$tmpdepfile" "$tmpdepfile".bak |
|
394 |
|
;; |
|
395 |
|
|
|
396 |
|
cpp) |
|
397 |
|
# Important note: in order to support this mode, a compiler *must* |
|
398 |
|
# always write the preprocessed file to stdout. |
|
399 |
|
"$@" || exit $? |
|
400 |
|
|
|
401 |
|
# Remove the call to Libtool. |
|
402 |
|
if test "$libtool" = yes; then |
|
403 |
|
while test $1 != '--mode=compile'; do |
|
404 |
|
shift |
|
405 |
|
done |
|
406 |
|
shift |
|
407 |
|
fi |
|
408 |
|
|
|
409 |
|
# Remove `-o $object'. |
|
410 |
|
IFS=" " |
|
411 |
|
for arg |
|
412 |
|
do |
|
413 |
|
case $arg in |
|
414 |
|
-o) |
|
415 |
|
shift |
|
416 |
|
;; |
|
417 |
|
$object) |
|
418 |
|
shift |
|
419 |
|
;; |
|
420 |
|
*) |
|
421 |
|
set fnord "$@" "$arg" |
|
422 |
|
shift # fnord |
|
423 |
|
shift # $arg |
|
424 |
|
;; |
|
425 |
|
esac |
|
426 |
|
done |
|
427 |
|
|
|
428 |
|
"$@" -E | |
|
429 |
|
sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | |
|
430 |
|
sed '$ s: \\$::' > "$tmpdepfile" |
|
431 |
|
rm -f "$depfile" |
|
432 |
|
echo "$object : \\" > "$depfile" |
|
433 |
|
cat < "$tmpdepfile" >> "$depfile" |
|
434 |
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" |
|
435 |
|
rm -f "$tmpdepfile" |
|
436 |
|
;; |
|
437 |
|
|
|
438 |
|
msvisualcpp) |
|
439 |
|
# Important note: in order to support this mode, a compiler *must* |
|
440 |
|
# always write the preprocessed file to stdout, regardless of -o, |
|
441 |
|
# because we must use -o when running libtool. |
|
442 |
|
"$@" || exit $? |
|
443 |
|
IFS=" " |
|
444 |
|
for arg |
|
445 |
|
do |
|
446 |
|
case "$arg" in |
|
447 |
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") |
|
448 |
|
set fnord "$@" |
|
449 |
|
shift |
|
450 |
|
shift |
|
451 |
|
;; |
|
452 |
|
*) |
|
453 |
|
set fnord "$@" "$arg" |
|
454 |
|
shift |
|
455 |
|
shift |
|
456 |
|
;; |
|
457 |
|
esac |
|
458 |
|
done |
|
459 |
|
"$@" -E | |
|
460 |
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" |
|
461 |
|
rm -f "$depfile" |
|
462 |
|
echo "$object : \\" > "$depfile" |
|
463 |
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" |
|
464 |
|
echo " " >> "$depfile" |
|
465 |
|
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" |
|
466 |
|
rm -f "$tmpdepfile" |
|
467 |
|
;; |
|
468 |
|
|
|
469 |
|
none) |
|
470 |
|
exec "$@" |
|
471 |
|
;; |
|
472 |
|
|
|
473 |
|
*) |
|
474 |
|
echo "Unknown depmode $depmode" 1>&2 |
|
475 |
|
exit 1 |
|
476 |
|
;; |
|
477 |
|
esac |
|
478 |
|
|
|
479 |
|
exit 0 |
|
File grammar.y changed (mode: 100644) (index edde71a..a196771) |
9 |
9 |
#include <string.h> |
#include <string.h> |
10 |
10 |
#include "misc.h" |
#include "misc.h" |
11 |
11 |
|
|
|
12 |
|
#define YYMAXDEPTH 25000 |
|
13 |
|
|
|
14 |
|
int yyerrorline (int errorlevel, int line, char *s) |
|
15 |
|
{ |
|
16 |
|
if (showerrorlevel[errorlevel]) { |
|
17 |
|
haderrors++; |
|
18 |
|
printf ("%s:%d: %s\n", curfile, line, s); |
|
19 |
|
return 0; |
|
20 |
|
} |
|
21 |
|
else |
|
22 |
|
ignorederrors++; |
|
23 |
|
} |
|
24 |
|
|
|
25 |
|
int yyerrorex (int errorlevel, char *s) |
|
26 |
|
{ |
|
27 |
|
if (showerrorlevel[errorlevel]) { |
|
28 |
|
haderrors++; |
|
29 |
|
printf ("%s:%d: %s\n", curfile, lineno, s); |
|
30 |
|
return 0; |
|
31 |
|
} |
|
32 |
|
else |
|
33 |
|
ignorederrors++; |
|
34 |
|
} |
|
35 |
|
|
12 |
36 |
int yyerror (char *s) /* Called by yyparse on error */ |
int yyerror (char *s) /* Called by yyparse on error */ |
13 |
37 |
{ |
{ |
14 |
|
haderrors++; |
|
15 |
|
printf ("%s:%d: %s\n", curfile, lineno, s); |
|
16 |
|
return 0; |
|
|
38 |
|
yyerrorex(0, s); |
17 |
39 |
} |
} |
18 |
40 |
|
|
19 |
41 |
int main(int argc, char **argv) |
int main(int argc, char **argv) |
|
... |
... |
int main(int argc, char **argv) |
31 |
53 |
} |
} |
32 |
54 |
if (!haderrors && didparse) { |
if (!haderrors && didparse) { |
33 |
55 |
printf("Parse successful: %8d lines: %s\n", totlines, "<total>"); |
printf("Parse successful: %8d lines: %s\n", totlines, "<total>"); |
|
56 |
|
if (ignorederrors) |
|
57 |
|
printf("%d errors ignored", ignorederrors); |
|
58 |
|
|
34 |
59 |
return 0; |
return 0; |
35 |
60 |
} |
} |
36 |
61 |
else { |
else { |
|
... |
... |
int main(int argc, char **argv) |
38 |
63 |
printf("Parse failed: %d error%s total\n", haderrors, haderrors == 1 ? "" : "s"); |
printf("Parse failed: %d error%s total\n", haderrors, haderrors == 1 ? "" : "s"); |
39 |
64 |
else |
else |
40 |
65 |
printf("Parse failed\n"); |
printf("Parse failed\n"); |
|
66 |
|
if (ignorederrors) |
|
67 |
|
printf("%d errors ignored", ignorederrors); |
41 |
68 |
return 1; |
return 1; |
42 |
69 |
} |
} |
43 |
70 |
} |
} |
|
... |
... |
int main(int argc, char **argv) |
112 |
139 |
|
|
113 |
140 |
%right EQUALS |
%right EQUALS |
114 |
141 |
%left AND OR |
%left AND OR |
115 |
|
%left NOT |
|
116 |
142 |
%left LESS GREATER EQCOMP NEQ LEQ GEQ |
%left LESS GREATER EQCOMP NEQ LEQ GEQ |
|
143 |
|
%left NOT |
117 |
144 |
%left MINUS PLUS |
%left MINUS PLUS |
118 |
145 |
%left TIMES DIV |
%left TIMES DIV |
119 |
146 |
|
|
120 |
147 |
%% |
%% |
121 |
148 |
|
|
122 |
|
program: topscope |
|
123 |
|
| program topscope |
|
|
149 |
|
program: topscopes globdefs topscopes funcdefns |
|
150 |
|
; |
|
151 |
|
|
|
152 |
|
topscopes: topscope |
|
153 |
|
| topscopes topscope |
|
154 |
|
; |
|
155 |
|
|
|
156 |
|
topscope: typedefs |
|
157 |
|
| funcdecls |
124 |
158 |
; |
; |
125 |
159 |
|
|
126 |
|
topscope: typedefs |
|
127 |
|
| globdefs |
|
128 |
|
| funcdecls |
|
129 |
|
| funcdefn |
|
|
160 |
|
funcdefns: /* empty */ |
|
161 |
|
| funcdefns funcdefn |
130 |
162 |
; |
; |
131 |
163 |
|
|
132 |
164 |
globdefs: /* empty */ |
globdefs: /* empty */ |
133 |
|
| GLOBALS vardecls ENDGLOBALS |
|
|
165 |
|
| GLOBALS NEWLINE vardecls ENDGLOBALS endglobalsmarker |
|
166 |
|
| GLOBALS vardecls ENDGLOBALS endglobalsmarker {yyerrorline(0, lineno - 1, "Missing linebreak before global declaration");} |
|
167 |
|
; |
|
168 |
|
|
|
169 |
|
endglobalsmarker: /* empty */ {afterendglobals = 1} |
134 |
170 |
; |
; |
135 |
171 |
|
|
136 |
172 |
vardecls: /* empty */ |
vardecls: /* empty */ |
|
... |
... |
expr: intexpr { $$.ty = gInteger; } |
162 |
198 |
| realexpr { $$.ty = gReal; } |
| realexpr { $$.ty = gReal; } |
163 |
199 |
| stringexpr { $$.ty = gString; } |
| stringexpr { $$.ty = gString; } |
164 |
200 |
| boolexpr { $$.ty = gBoolean; } |
| boolexpr { $$.ty = gBoolean; } |
165 |
|
| FUNCTION rid { if (lookup(&functions, $2.str) == NULL) |
|
166 |
|
yyerror("Undefined function."); |
|
|
201 |
|
| FUNCTION rid { if (lookup(&functions, $2.str) == NULL) { |
|
202 |
|
char ebuf[1024]; |
|
203 |
|
sprintf(ebuf, "Undefined function %s", $2.str); |
|
204 |
|
yyerrorex(3, ebuf); |
|
205 |
|
} |
167 |
206 |
$$.ty = gCode; |
$$.ty = gCode; |
168 |
207 |
} |
} |
169 |
208 |
| TNULL { $$.ty = gNull; } |
| TNULL { $$.ty = gNull; } |
|
... |
... |
expr: intexpr { $$.ty = gInteger; } |
173 |
212 |
| expr GREATER expr { checkcomparison($1.ty, $3.ty); $$.ty = gBoolean; } |
| expr GREATER expr { checkcomparison($1.ty, $3.ty); $$.ty = gBoolean; } |
174 |
213 |
| expr EQCOMP expr { checkeqtest($1.ty, $3.ty); $$.ty = gBoolean; } |
| expr EQCOMP expr { checkeqtest($1.ty, $3.ty); $$.ty = gBoolean; } |
175 |
214 |
| expr NEQ expr { checkeqtest($1.ty, $3.ty); $$.ty = gBoolean; } |
| expr NEQ expr { checkeqtest($1.ty, $3.ty); $$.ty = gBoolean; } |
176 |
|
| expr AND expr { canconvert($1.ty, gBoolean); canconvert($3.ty, gBoolean); $$.ty = gBoolean; } |
|
177 |
|
| expr OR expr { canconvert($1.ty, gBoolean); canconvert($3.ty, gBoolean); $$.ty = gBoolean; } |
|
178 |
|
| NOT expr { canconvert($2.ty, gBoolean); $$.ty = gBoolean; } |
|
|
215 |
|
| expr AND expr { canconvert($1.ty, gBoolean, 0); canconvert($3.ty, gBoolean, 0); $$.ty = gBoolean; } |
|
216 |
|
| expr OR expr { canconvert($1.ty, gBoolean, 0); canconvert($3.ty, gBoolean, 0); $$.ty = gBoolean; } |
|
217 |
|
| NOT expr { canconvert($2.ty, gBoolean, 0); $$.ty = gBoolean; } |
179 |
218 |
| expr TIMES expr { $$.ty = binop($1.ty, $3.ty); } |
| expr TIMES expr { $$.ty = binop($1.ty, $3.ty); } |
180 |
219 |
| expr DIV expr { $$.ty = binop($1.ty, $3.ty); } |
| expr DIV expr { $$.ty = binop($1.ty, $3.ty); } |
181 |
220 |
| expr MINUS expr { $$.ty = binop($1.ty, $3.ty); } |
| expr MINUS expr { $$.ty = binop($1.ty, $3.ty); } |
|
... |
... |
expr: intexpr { $$.ty = gInteger; } |
186 |
225 |
$$.ty = binop($1.ty, $3.ty); } |
$$.ty = binop($1.ty, $3.ty); } |
187 |
226 |
| MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; } |
| MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; } |
188 |
227 |
| LPAREN expr RPAREN { $$.ty = $2.ty; } |
| LPAREN expr RPAREN { $$.ty = $2.ty; } |
189 |
|
| funccall { $$.ty = $1.ty; } |
|
|
228 |
|
| funccall { $$.ty = $1.ty } |
190 |
229 |
| rid LBRACKET expr RBRACKET { |
| rid LBRACKET expr RBRACKET { |
191 |
230 |
const struct typeandname *tan = getVariable($1.str); |
const struct typeandname *tan = getVariable($1.str); |
192 |
|
if (!tan->isarray) { |
|
193 |
|
char ebuf[1024]; |
|
194 |
|
sprintf(ebuf, "%s not an array", $1.str); |
|
195 |
|
yyerror(ebuf); |
|
196 |
|
$$.ty = tan->ty; |
|
197 |
|
} |
|
198 |
|
else { |
|
199 |
|
canconvert($3.ty, gInteger); |
|
200 |
|
$$.ty = tan->ty; |
|
|
231 |
|
if (tan->ty != gAny) { |
|
232 |
|
if (!tan->isarray) { |
|
233 |
|
char ebuf[1024]; |
|
234 |
|
sprintf(ebuf, "%s not an array", $1.str); |
|
235 |
|
yyerrorex(3, ebuf); |
|
236 |
|
} |
|
237 |
|
else { |
|
238 |
|
canconvert($3.ty, gInteger, 0); |
|
239 |
|
} |
201 |
240 |
} |
} |
|
241 |
|
$$.ty = tan->ty; |
202 |
242 |
} |
} |
203 |
243 |
| rid { |
| rid { |
204 |
|
$$.ty = getVariable($1.str)->ty; |
|
|
244 |
|
const struct typeandname *tan = getVariable($1.str); |
|
245 |
|
if (tan->lineno == lineno && tan->fn == fno) { |
|
246 |
|
char ebuf[1024]; |
|
247 |
|
sprintf(ebuf, "Use of variable %s before its declaration", $1.str); |
|
248 |
|
yyerrorex(3, ebuf); |
|
249 |
|
} else if (islinebreak && tan->lineno == lineno - 1 && tan->fn == fno) { |
|
250 |
|
char ebuf[1024]; |
|
251 |
|
sprintf(ebuf, "Use of variable %s before its declaration", $1.str); |
|
252 |
|
yyerrorline(3, lineno - 1, ebuf); |
|
253 |
|
} else if (tan->isarray) { |
|
254 |
|
char ebuf[1024]; |
|
255 |
|
sprintf(ebuf, "Index missing for array variable %s", $1.str); |
|
256 |
|
yyerrorex(3, ebuf); |
|
257 |
|
} |
|
258 |
|
$$.ty = tan->ty; |
205 |
259 |
} |
} |
206 |
|
; |
|
207 |
|
|
|
208 |
|
funccall: rid LPAREN exprlist RPAREN { |
|
|
260 |
|
| expr EQUALS expr {yyerrorex(0, "Single = in expression, should probably be =="); checkeqtest($1.ty, $3.ty); $$.ty = gBoolean;} |
|
261 |
|
| LPAREN expr {yyerrorex(0, "Mssing ')'"); $$.ty = $2.ty;} |
|
262 |
|
|
|
263 |
|
// incomplete expressions |
|
264 |
|
| expr LEQ { checkcomparisonsimple($1.ty); yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
265 |
|
| expr GEQ { checkcomparisonsimple($1.ty); yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
266 |
|
| expr LESS { checkcomparisonsimple($1.ty); yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
267 |
|
| expr GREATER { checkcomparisonsimple($1.ty); yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
268 |
|
| expr EQCOMP { yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
269 |
|
| expr NEQ { yyerrorex(3, "Missing expression for comparison"); $$.ty = gBoolean; } |
|
270 |
|
| expr AND { canconvert($1.ty, gBoolean, 0); yyerrorex(3, "Missing expression for logical and"); $$.ty = gBoolean; } |
|
271 |
|
| expr OR { canconvert($1.ty, gBoolean, 0); yyerrorex(3, "Missing expression for logical or"); $$.ty = gBoolean; } |
|
272 |
|
| NOT { yyerrorex(3, "Missing expression for logical negation"); $$.ty = gBoolean; } |
|
273 |
|
; |
|
274 |
|
|
|
275 |
|
funccall: rid LPAREN exprlistcompl RPAREN { |
209 |
276 |
struct funcdecl *fd = lookup(&functions, $1.str); |
struct funcdecl *fd = lookup(&functions, $1.str); |
210 |
277 |
if (fd == NULL) { |
if (fd == NULL) { |
211 |
278 |
char ebuf[1024]; |
char ebuf[1024]; |
212 |
279 |
sprintf(ebuf, "Undeclared function %s", $1.str); |
sprintf(ebuf, "Undeclared function %s", $1.str); |
213 |
|
yyerror(ebuf); |
|
|
280 |
|
yyerrorex(3, ebuf); |
214 |
281 |
$$.ty = gNull; |
$$.ty = gNull; |
|
282 |
|
} else { |
|
283 |
|
if (inconstant && !(fd->isconst)) { |
|
284 |
|
char ebuf[1024]; |
|
285 |
|
sprintf(ebuf, "Call to non-constant function %s in constant function", $1.str); |
|
286 |
|
yyerrorex(3, ebuf); |
|
287 |
|
} |
|
288 |
|
checkParameters(fd->p, $3.pl); |
|
289 |
|
$$.ty = fd->ret; |
215 |
290 |
} |
} |
216 |
|
else { |
|
|
291 |
|
} |
|
292 |
|
| rid LPAREN exprlistcompl NEWLINE{ |
|
293 |
|
yyerrorex(0, "Missing ')'"); |
|
294 |
|
struct funcdecl *fd = lookup(&functions, $1.str); |
|
295 |
|
if (fd == NULL) { |
|
296 |
|
char ebuf[1024]; |
|
297 |
|
sprintf(ebuf, "Undeclared function %s", $1.str); |
|
298 |
|
yyerrorex(3, ebuf); |
|
299 |
|
$$.ty = gNull; |
|
300 |
|
} else if (inconstant && !(fd->isconst)) { |
|
301 |
|
char ebuf[1024]; |
|
302 |
|
sprintf(ebuf, "Call to non-constant function %s in constant function", $1.str); |
|
303 |
|
yyerrorex(3, ebuf); |
|
304 |
|
$$.ty = gNull; |
|
305 |
|
} else { |
217 |
306 |
checkParameters(fd->p, $3.pl); |
checkParameters(fd->p, $3.pl); |
218 |
307 |
$$.ty = fd->ret; |
$$.ty = fd->ret; |
219 |
|
} |
|
|
308 |
|
} |
220 |
309 |
} |
} |
221 |
310 |
; |
; |
222 |
311 |
|
|
223 |
|
exprlist: /* empty */ { $$.pl = newparamlist(); } |
|
224 |
|
| expr { $$.pl = newparamlist(); addParam($$.pl, newtypeandname($1.ty, "")); } |
|
225 |
|
| expr COMMA exprlist { $$.pl = $3.pl; addParam($$.pl, newtypeandname($1.ty, "")); } |
|
|
312 |
|
exprlistcompl: /* empty */ { $$.pl = newparamlist(); } |
|
313 |
|
| exprlist { $$.pl = $1.pl; } |
|
314 |
|
; |
|
315 |
|
|
|
316 |
|
exprlist: expr { $$.pl = newparamlist(); addParam($$.pl, newtypeandname($1.ty, "")); } |
|
317 |
|
| expr COMMA exprlist { $$.pl = $3.pl; addParam($$.pl, newtypeandname($1.ty, "")); } |
226 |
318 |
; |
; |
227 |
319 |
|
|
228 |
320 |
|
|
|
... |
... |
intexpr: INTLIT { $$.ty = gInteger; } |
246 |
338 |
|
|
247 |
339 |
funcdecl: nativefuncdecl { $$.fd = $1.fd; } |
funcdecl: nativefuncdecl { $$.fd = $1.fd; } |
248 |
340 |
| CONSTANT nativefuncdecl { $$.fd = $2.fd; } |
| CONSTANT nativefuncdecl { $$.fd = $2.fd; } |
|
341 |
|
| funcdefncore { $$.fd = $1.fd; } |
249 |
342 |
; |
; |
250 |
343 |
|
|
251 |
344 |
nativefuncdecl: NATIVE rid TAKES optparam_list RETURNS opttype |
nativefuncdecl: NATIVE rid TAKES optparam_list RETURNS opttype |
252 |
|
{ |
|
253 |
|
$$.fd = newfuncdecl(); |
|
|
345 |
|
{ |
|
346 |
|
if (lookup(&locals, $2.str) || lookup(¶ms, $2.str) || lookup(&globals, $2.str)) { |
|
347 |
|
char buf[1024]; |
|
348 |
|
sprintf(buf, "%s already defined as variable", $2.str); |
|
349 |
|
yyerrorex(3, buf); |
|
350 |
|
} else if (lookup(&types, $2.str)) { |
|
351 |
|
char buf[1024]; |
|
352 |
|
sprintf(buf, "%s already defined as type", $2.str); |
|
353 |
|
yyerrorex(3, buf); |
|
354 |
|
} |
|
355 |
|
$$.fd = newfuncdecl(); |
254 |
356 |
$$.fd->name = strdup($2.str); |
$$.fd->name = strdup($2.str); |
255 |
357 |
$$.fd->p = $4.pl; |
$$.fd->p = $4.pl; |
256 |
358 |
$$.fd->ret = $6.ty; |
$$.fd->ret = $6.ty; |
|
359 |
|
//printf("***** %s = %s\n", $2.str, $$.fd->ret->typename); |
|
360 |
|
$$.fd->isconst = isconstant; |
257 |
361 |
put(&functions, $$.fd->name, $$.fd); |
put(&functions, $$.fd->name, $$.fd); |
258 |
362 |
//showfuncdecl($$.fd); |
//showfuncdecl($$.fd); |
259 |
363 |
} |
} |
260 |
364 |
; |
; |
261 |
365 |
|
|
262 |
|
funcdefn: funcbegin localblock codeblock funcend |
|
|
366 |
|
funcdefn: NEWLINE |
|
367 |
|
| funcdefncore |
|
368 |
|
| statement { yyerrorex(0, "Statement outside of function"); } |
263 |
369 |
; |
; |
264 |
370 |
|
|
265 |
|
funcend: ENDFUNCTION { clear(¶ms); clear(&locals); curtab = &globals; } |
|
|
371 |
|
funcdefncore: funcbegin localblock codeblock funcend { if(retval != gNothing) { if ($3.ty == gAny || $3.ty == gNone) yyerrorline(1, lineno - 1, "Missing return"); else canconvertreturn($3.ty, retval, -1); } } |
|
372 |
|
| funcbegin localblock codeblock {yyerrorex(0, "Missing endfunction"); clear(¶ms); clear(&locals); curtab = &globals;} |
266 |
373 |
; |
; |
267 |
374 |
|
|
268 |
|
funcbegin: FUNCTION rid TAKES optparam_list RETURNS opttype { |
|
269 |
|
struct typeandname *tan; |
|
|
375 |
|
funcend: ENDFUNCTION { clear(¶ms); clear(&locals); curtab = &globals; inblock = 0; inconstant = 0; } |
|
376 |
|
; |
|
377 |
|
|
|
378 |
|
returnorreturns: RETURNS |
|
379 |
|
| RETURN {yyerrorex(3,"Expected \"returns\" instead of \"return\"");} |
|
380 |
|
; |
|
381 |
|
|
|
382 |
|
funcbegin: FUNCTION rid TAKES optparam_list returnorreturns opttype { |
|
383 |
|
if (lookup(&locals, $2.str) || lookup(¶ms, $2.str) || lookup(&globals, $2.str)) { |
|
384 |
|
char buf[1024]; |
|
385 |
|
sprintf(buf, "%s already defined as variable", $2.str); |
|
386 |
|
yyerrorex(3, buf); |
|
387 |
|
} else if (lookup(&types, $2.str)) { |
|
388 |
|
char buf[1024]; |
|
389 |
|
sprintf(buf, "%s already defined as type", $2.str); |
|
390 |
|
yyerrorex(3, buf); |
|
391 |
|
} |
|
392 |
|
inconstant = 0; |
270 |
393 |
curtab = &locals; |
curtab = &locals; |
271 |
|
$$.fd = newfuncdecl(); |
|
|
394 |
|
$$.fd = newfuncdecl(); |
272 |
395 |
$$.fd->name = strdup($2.str); |
$$.fd->name = strdup($2.str); |
273 |
396 |
$$.fd->p = $4.pl; |
$$.fd->p = $4.pl; |
274 |
397 |
$$.fd->ret = $6.ty; |
$$.fd->ret = $6.ty; |
|
398 |
|
$$.fd->isconst = 0; |
275 |
399 |
put(&functions, $$.fd->name, $$.fd); |
put(&functions, $$.fd->name, $$.fd); |
276 |
|
tan = $4.pl->head; |
|
277 |
|
for (;tan; tan=tan->next) |
|
|
400 |
|
struct typeandname *tan = $4.pl->head; |
|
401 |
|
for (;tan; tan=tan->next) { |
|
402 |
|
tan->lineno = lineno; |
|
403 |
|
tan->fn = fno; |
278 |
404 |
put(¶ms, strdup(tan->name), newtypeandname(tan->ty, tan->name)); |
put(¶ms, strdup(tan->name), newtypeandname(tan->ty, tan->name)); |
|
405 |
|
if (lookup(&functions, tan->name)) { |
|
406 |
|
char buf[1024]; |
|
407 |
|
sprintf(buf, "%s already defined as function", tan->name); |
|
408 |
|
yyerrorex(3, buf); |
|
409 |
|
} else if (lookup(&types, tan->name)) { |
|
410 |
|
char buf[1024]; |
|
411 |
|
sprintf(buf, "%s already defined as type", tan->name); |
|
412 |
|
yyerrorex(3, buf); |
|
413 |
|
} |
|
414 |
|
} |
279 |
415 |
retval = $$.fd->ret; |
retval = $$.fd->ret; |
|
416 |
|
inblock = 1; |
|
417 |
|
inloop = 0; |
280 |
418 |
//showfuncdecl($$.fd); |
//showfuncdecl($$.fd); |
281 |
419 |
} |
} |
282 |
|
; |
|
283 |
|
|
|
284 |
|
codeblock: /* empty */ |
|
285 |
|
| statement codeblock |
|
286 |
|
; |
|
287 |
|
|
|
288 |
|
statement: NEWLINE |
|
289 |
|
| CALL funccall |
|
290 |
|
| IF expr THEN codeblock elsifseq elseseq ENDIF { canconvert($2.ty, gBoolean); } |
|
291 |
|
| SET rid EQUALS expr NEWLINE { canconvert($4.ty, getVariable($2.str)->ty); if (getVariable($2.str)->isconst) { char ebuf[1024]; |
|
292 |
|
sprintf(ebuf, "Cannot assign to constant %s\n", $2.str); |
|
293 |
|
yyerror(ebuf); |
|
294 |
|
} |
|
|
420 |
|
| CONSTANT FUNCTION rid TAKES optparam_list returnorreturns opttype { |
|
421 |
|
if (lookup(&locals, $3.str) || lookup(¶ms, $3.str) || lookup(&globals, $3.str)) { |
|
422 |
|
char buf[1024]; |
|
423 |
|
sprintf(buf, "%s already defined as variable", $3.str); |
|
424 |
|
yyerrorex(3, buf); |
|
425 |
|
} else if (lookup(&types, $3.str)) { |
|
426 |
|
char buf[1024]; |
|
427 |
|
sprintf(buf, "%s already defined as type", $3.str); |
|
428 |
|
yyerrorex(3, buf); |
|
429 |
|
} |
|
430 |
|
inconstant = 1; |
|
431 |
|
curtab = &locals; |
|
432 |
|
$$.fd = newfuncdecl(); |
|
433 |
|
$$.fd->name = strdup($3.str); |
|
434 |
|
$$.fd->p = $5.pl; |
|
435 |
|
$$.fd->ret = $7.ty; |
|
436 |
|
$$.fd->isconst = 1; |
|
437 |
|
put(&functions, $$.fd->name, $$.fd); |
|
438 |
|
struct typeandname *tan = $5.pl->head; |
|
439 |
|
for (;tan; tan=tan->next) { |
|
440 |
|
tan->lineno = lineno; |
|
441 |
|
tan->fn = fno; |
|
442 |
|
put(¶ms, strdup(tan->name), newtypeandname(tan->ty, tan->name)); |
|
443 |
|
if (lookup(&functions, tan->name)) { |
|
444 |
|
char buf[1024]; |
|
445 |
|
sprintf(buf, "%s already defined as function", tan->name); |
|
446 |
|
yyerrorex(3, buf); |
|
447 |
|
} else if (lookup(&types, tan->name)) { |
|
448 |
|
char buf[1024]; |
|
449 |
|
sprintf(buf, "%s already defined as type", tan->name); |
|
450 |
|
yyerrorex(3, buf); |
|
451 |
|
} |
|
452 |
|
} |
|
453 |
|
retval = $$.fd->ret; |
|
454 |
|
inblock = 1; |
|
455 |
|
inloop = 0; |
|
456 |
|
//showfuncdecl($$.fd); |
295 |
457 |
} |
} |
296 |
|
| SET rid LBRACKET expr RBRACKET EQUALS expr { |
|
297 |
|
canconvert($4.ty, gInteger); |
|
298 |
|
canconvert($7.ty, getVariable($2.str)->ty); } |
|
299 |
|
| LOOP loopbody ENDLOOP |
|
300 |
|
| RETURN expr { canconvert($2.ty, retval); } |
|
301 |
|
| RETURN { if (retval != gNothing) yyerror("Cannot return value from function that returns nothing"); } |
|
302 |
|
| DEBUG statement |
|
303 |
|
| error |
|
304 |
|
; |
|
305 |
|
|
|
306 |
|
loopbody: /* empty */ |
|
307 |
|
| loopstatement loopbody |
|
308 |
|
; |
|
309 |
|
|
|
310 |
|
loopstatement: statement |
|
311 |
|
| EXITWHEN expr { canconvert($2.ty, gBoolean); } |
|
312 |
|
; |
|
313 |
|
|
|
314 |
|
elseseq: /* empty */ |
|
315 |
|
| ELSE codeblock |
|
316 |
458 |
; |
; |
317 |
459 |
|
|
318 |
|
elsifseq: /* empty */ |
|
319 |
|
| ELSEIF expr THEN codeblock elsifseq { canconvert($2.ty, gBoolean); } |
|
|
460 |
|
codeblock: /* empty */ {$$.ty = gAny;} |
|
461 |
|
| statement codeblock { if($2.ty == gAny) $$.ty = $1.ty; else $$.ty = $2.ty;} |
|
462 |
|
; |
|
463 |
|
|
|
464 |
|
statement: NEWLINE {$$.ty = gAny;} |
|
465 |
|
| CALL funccall NEWLINE{ $$.ty = gNone;} |
|
466 |
|
| IF expr THEN NEWLINE codeblock elsifseq elseseq ENDIF NEWLINE { canconvert($2.ty, gBoolean, -1); $$.ty = combinetype($6.ty!=gAny?combinetype($5.ty, $6.ty):$5.ty, $7.ty);} |
|
467 |
|
| SET rid EQUALS expr NEWLINE { if (getVariable($2.str)->isarray) { |
|
468 |
|
char ebuf[1024]; |
|
469 |
|
sprintf(ebuf, "Index missing for array variable %s", $2.str); |
|
470 |
|
yyerrorline(3, lineno - 1, ebuf); |
|
471 |
|
} |
|
472 |
|
canconvert($4.ty, getVariable($2.str)->ty, -1); |
|
473 |
|
$$.ty = gNone; |
|
474 |
|
if (getVariable($2.str)->isconst) { |
|
475 |
|
char ebuf[1024]; |
|
476 |
|
sprintf(ebuf, "Cannot assign to constant %s", $2.str); |
|
477 |
|
yyerrorline(3, lineno - 1, ebuf); |
|
478 |
|
} |
|
479 |
|
if (inconstant) |
|
480 |
|
validateGlobalAssignment($2.str); |
|
481 |
|
} |
|
482 |
|
| SET rid LBRACKET expr RBRACKET EQUALS expr NEWLINE{ |
|
483 |
|
const struct typeandname *tan = getVariable($2.str); |
|
484 |
|
if (tan->ty != gAny) { |
|
485 |
|
canconvert($4.ty, gInteger, -1); $$.ty = gNone; |
|
486 |
|
if (!tan->isarray) { |
|
487 |
|
char ebuf[1024]; |
|
488 |
|
sprintf(ebuf, "%s is not an array", $2.str); |
|
489 |
|
yyerrorline(3, lineno - 1, ebuf); |
|
490 |
|
} |
|
491 |
|
canconvert($7.ty, tan->ty, -1); |
|
492 |
|
if (inconstant) |
|
493 |
|
validateGlobalAssignment($2.str); |
|
494 |
|
} |
|
495 |
|
} |
|
496 |
|
| loopstart NEWLINE codeblock loopend NEWLINE {$$.ty = $3.ty;} |
|
497 |
|
| loopstart NEWLINE codeblock {$$.ty = $3.ty; yyerrorex(0, "Missing endloop");} |
|
498 |
|
| EXITWHEN expr NEWLINE { canconvert($2.ty, gBoolean, -1); if (!inloop) yyerrorline(0, lineno - 1, "Exitwhen outside of loop"); $$.ty = gNone;} |
|
499 |
|
| RETURN expr NEWLINE { $$.ty = $2.ty; if(retval == gNothing) yyerrorline(1, lineno - 1, "Cannot return value from function that returns nothing");} |
|
500 |
|
| RETURN NEWLINE { if (retval != gNothing) yyerrorline(1, lineno - 1, "Return nothing in function that should return value"); $$.ty = gNone;} |
|
501 |
|
| DEBUG statement {$$.ty = gNone;} |
|
502 |
|
| IF expr THEN NEWLINE codeblock elsifseq elseseq {canconvert($2.ty, gBoolean, 0); $$.ty = combinetype($6.ty!=gAny?combinetype($5.ty, $6.ty):$5.ty, $7.ty); yyerrorex(0, "Missing endif");} |
|
503 |
|
| IF expr NEWLINE{canconvert($2.ty, gBoolean, -1); $$.ty = gAny; yyerrorex(0, "Missing then or non valid expression");} |
|
504 |
|
| SET funccall NEWLINE{$$.ty = gNone; yyerrorline(0, lineno - 1, "Call expected instead of set");} |
|
505 |
|
| lvardecl {yyerrorex(0, "Local declaration after first statement");} |
|
506 |
|
| error {$$.ty = gNone; } |
|
507 |
|
; |
|
508 |
|
|
|
509 |
|
loopstart: LOOP {inloop++;} |
|
510 |
|
; |
|
511 |
|
|
|
512 |
|
loopend: ENDLOOP {inloop--;} |
|
513 |
|
; |
|
514 |
|
|
|
515 |
|
elseseq: /* empty */ {$$.ty = gNone;} |
|
516 |
|
| ELSE NEWLINE codeblock {$$.ty = $3.ty;} |
|
517 |
|
; |
|
518 |
|
|
|
519 |
|
elsifseq: /* empty */ {$$.ty = gAny;} |
|
520 |
|
| ELSEIF expr THEN NEWLINE codeblock elsifseq { canconvert($2.ty, gBoolean, -1); $$.ty = $6.ty!=gAny?combinetype($5.ty, $6.ty):$5.ty;} |
320 |
521 |
; |
; |
321 |
522 |
|
|
322 |
523 |
optparam_list: param_list { $$.pl = $1.pl; } |
optparam_list: param_list { $$.pl = $1.pl; } |
|
... |
... |
rid: ID |
336 |
537 |
; |
; |
337 |
538 |
|
|
338 |
539 |
vartypedecl: type rid { |
vartypedecl: type rid { |
|
540 |
|
if (lookup(&functions, $2.str)) { |
|
541 |
|
char buf[1024]; |
|
542 |
|
sprintf(buf, "Symbol %s already defined as function", $2.str); |
|
543 |
|
yyerrorex(3, buf); |
|
544 |
|
} else if (lookup(&types, $2.str)) { |
|
545 |
|
char buf[1024]; |
|
546 |
|
sprintf(buf, "Symbol %s already defined as type", $2.str); |
|
547 |
|
yyerrorex(3, buf); |
|
548 |
|
} |
339 |
549 |
struct typeandname *tan = newtypeandname($1.ty, $2.str); |
struct typeandname *tan = newtypeandname($1.ty, $2.str); |
340 |
|
put(curtab, $2.str, tan); |
|
341 |
|
$$.ty = tan->ty; } |
|
342 |
|
| CONSTANT type rid { |
|
|
550 |
|
$$.str = $2.str; |
|
551 |
|
struct typeandname *existing = lookup(&locals, $2.str); |
|
552 |
|
if (!existing) { |
|
553 |
|
existing = lookup(¶ms, $2.str); |
|
554 |
|
if (!existing) |
|
555 |
|
existing = lookup(&globals, $2.str); |
|
556 |
|
} |
|
557 |
|
if (existing) { |
|
558 |
|
tan->lineno = existing->lineno; |
|
559 |
|
tan->fn = existing->fn; |
|
560 |
|
} else { |
|
561 |
|
tan->lineno = lineno; |
|
562 |
|
tan->fn = fno; |
|
563 |
|
} |
|
564 |
|
put(curtab, $2.str, tan); } |
|
565 |
|
| CONSTANT type rid { |
|
566 |
|
if (afterendglobals) { |
|
567 |
|
yyerrorex(3, "Local constants are not allowed"); |
|
568 |
|
} |
|
569 |
|
if (lookup(&functions, $3.str)) { |
|
570 |
|
char buf[1024]; |
|
571 |
|
sprintf(buf, "Symbol %s already defined as function", $3.str); |
|
572 |
|
yyerrorex(3, buf); |
|
573 |
|
} else if (lookup(&types, $3.str)) { |
|
574 |
|
char buf[1024]; |
|
575 |
|
sprintf(buf, "Symbol %s already defined as type", $3.str); |
|
576 |
|
yyerrorex(3, buf); |
|
577 |
|
} |
343 |
578 |
struct typeandname *tan = newtypeandname($2.ty, $3.str); |
struct typeandname *tan = newtypeandname($2.ty, $3.str); |
|
579 |
|
$$.str = $3.str; |
344 |
580 |
tan->isconst = 1; |
tan->isconst = 1; |
345 |
|
put(curtab, $3.str, tan); |
|
346 |
|
$$.ty = tan->ty; } |
|
|
581 |
|
struct typeandname *existing = lookup(&locals, $3.str); |
|
582 |
|
if (!existing) { |
|
583 |
|
existing = lookup(¶ms, $3.str); |
|
584 |
|
if (!existing) |
|
585 |
|
existing = lookup(&globals, $3.str); |
|
586 |
|
} |
|
587 |
|
if (existing) { |
|
588 |
|
tan->lineno = existing->lineno; |
|
589 |
|
tan->fn = existing->fn; |
|
590 |
|
} else { |
|
591 |
|
tan->lineno = lineno; |
|
592 |
|
tan->fn = fno; |
|
593 |
|
} |
|
594 |
|
put(curtab, $3.str, tan); } |
347 |
595 |
| type ARRAY rid { |
| type ARRAY rid { |
|
596 |
|
if (lookup(&functions, $3.str)) { |
|
597 |
|
char buf[1024]; |
|
598 |
|
sprintf(buf, "Symbol %s already defined as function", $3.str); |
|
599 |
|
yyerrorex(3, buf); |
|
600 |
|
} else if (lookup(&types, $3.str)) { |
|
601 |
|
char buf[1024]; |
|
602 |
|
sprintf(buf, "Symbol %s already defined as type", $3.str); |
|
603 |
|
yyerrorex(3, buf); |
|
604 |
|
} |
|
605 |
|
if (getPrimitiveAncestor($1.ty) == gCode) |
|
606 |
|
yyerrorex(3, "Code arrays are not allowed"); |
348 |
607 |
struct typeandname *tan = newtypeandname($1.ty, $3.str); |
struct typeandname *tan = newtypeandname($1.ty, $3.str); |
|
608 |
|
$$.str = $3.str; |
349 |
609 |
tan->isarray = 1; |
tan->isarray = 1; |
350 |
|
put(curtab, $3.str, tan); |
|
351 |
|
$$.ty = tan->ty; } |
|
|
610 |
|
struct typeandname *existing = lookup(&locals, $3.str); |
|
611 |
|
if (!existing) { |
|
612 |
|
char buf[1024]; |
|
613 |
|
existing = lookup(¶ms, $3.str); |
|
614 |
|
if (afterendglobals && existing) { |
|
615 |
|
sprintf(buf, "Symbol %s already defined as function parameter", $3.str); |
|
616 |
|
yyerrorex(3, buf); |
|
617 |
|
} |
|
618 |
|
if (!existing) { |
|
619 |
|
existing = lookup(&globals, $3.str); |
|
620 |
|
if (afterendglobals && existing) { |
|
621 |
|
sprintf(buf, "Symbol %s already defined as global variable", $3.str); |
|
622 |
|
yyerrorex(3, buf); |
|
623 |
|
} |
|
624 |
|
} |
|
625 |
|
} |
|
626 |
|
if (existing) { |
|
627 |
|
tan->lineno = existing->lineno; |
|
628 |
|
tan->fn = existing->fn; |
|
629 |
|
} else { |
|
630 |
|
tan->lineno = lineno; |
|
631 |
|
tan->fn = fno; |
|
632 |
|
} |
|
633 |
|
put(curtab, $3.str, tan); } |
|
634 |
|
|
|
635 |
|
// using "type" as variable name |
|
636 |
|
| type TYPE { |
|
637 |
|
yyerrorex(3, "Invalid variable name \"type\""); |
|
638 |
|
struct typeandname *tan = newtypeandname($1.ty, "type"); |
|
639 |
|
$$.str = "type"; |
|
640 |
|
struct typeandname *existing = lookup(&locals, "type"); |
|
641 |
|
if (!existing) { |
|
642 |
|
existing = lookup(¶ms, "type"); |
|
643 |
|
if (!existing) |
|
644 |
|
existing = lookup(&globals, "type"); |
|
645 |
|
} |
|
646 |
|
if (existing) { |
|
647 |
|
tan->lineno = existing->lineno; |
|
648 |
|
tan->fn = existing->fn; |
|
649 |
|
} else { |
|
650 |
|
tan->lineno = lineno; |
|
651 |
|
tan->fn = fno; |
|
652 |
|
} |
|
653 |
|
put(curtab, "type", tan); } |
|
654 |
|
| CONSTANT type TYPE { |
|
655 |
|
if (afterendglobals) { |
|
656 |
|
yyerrorex(3, "Local constants are not allowed"); |
|
657 |
|
} |
|
658 |
|
yyerrorex(3, "Invalid variable name \"type\""); |
|
659 |
|
struct typeandname *tan = newtypeandname($2.ty, "type"); |
|
660 |
|
$$.str = "type"; |
|
661 |
|
tan->isconst = 1; |
|
662 |
|
struct typeandname *existing = lookup(&locals, "type"); |
|
663 |
|
if (!existing) { |
|
664 |
|
existing = lookup(¶ms, "type"); |
|
665 |
|
if (!existing) |
|
666 |
|
existing = lookup(&globals, "type"); |
|
667 |
|
} |
|
668 |
|
if (existing) { |
|
669 |
|
tan->lineno = existing->lineno; |
|
670 |
|
tan->fn = existing->fn; |
|
671 |
|
} else { |
|
672 |
|
tan->lineno = lineno; |
|
673 |
|
tan->fn = fno; |
|
674 |
|
} |
|
675 |
|
put(curtab, "type", tan); } |
|
676 |
|
| type ARRAY TYPE { |
|
677 |
|
yyerrorex(3, "Invalid variable name \"type\""); |
|
678 |
|
struct typeandname *tan = newtypeandname($1.ty, "type"); |
|
679 |
|
$$.str = "type"; |
|
680 |
|
tan->isarray = 1; |
|
681 |
|
struct typeandname *existing = lookup(&locals, "type"); |
|
682 |
|
if (!existing) { |
|
683 |
|
existing = lookup(¶ms, "type"); |
|
684 |
|
if (!existing) |
|
685 |
|
existing = lookup(&globals, "type"); |
|
686 |
|
} |
|
687 |
|
if (existing) { |
|
688 |
|
tan->lineno = existing->lineno; |
|
689 |
|
tan->fn = existing->fn; |
|
690 |
|
} else { |
|
691 |
|
tan->lineno = lineno; |
|
692 |
|
tan->fn = fno; |
|
693 |
|
} |
|
694 |
|
put(curtab, "type", tan); } |
352 |
695 |
; |
; |
353 |
696 |
|
|
354 |
697 |
localblock: /* empty */ |
localblock: /* empty */ |
355 |
698 |
| lvardecl localblock |
| lvardecl localblock |
|
699 |
|
| NEWLINE localblock |
356 |
700 |
; |
; |
357 |
701 |
|
|
358 |
702 |
lvardecl: LOCAL vardecl { } |
lvardecl: LOCAL vardecl { } |
359 |
|
| NEWLINE |
|
360 |
|
; |
|
361 |
|
|
|
362 |
|
vardecl: vartypedecl { $$.ty = gNothing; } |
|
363 |
|
| vartypedecl EQUALS expr { |
|
364 |
|
canconvert($3.ty, $1.ty); |
|
365 |
|
$$.ty = gNothing; |
|
366 |
|
} |
|
|
703 |
|
| CONSTANT LOCAL vardecl { yyerrorex(3, "Local variables can not be declared constant"); } |
|
704 |
|
| typedef { yyerrorex(3,"Types can not be extended inside functions"); } |
|
705 |
|
; |
|
706 |
|
|
|
707 |
|
vardecl: vartypedecl NEWLINE { |
|
708 |
|
const struct typeandname *tan = getVariable($1.str); |
|
709 |
|
if (tan->isconst) { |
|
710 |
|
yyerrorline(3, lineno - 1, "Constants must be initialized"); |
|
711 |
|
} |
|
712 |
|
$$.ty = gNothing; |
|
713 |
|
} |
|
714 |
|
| vartypedecl EQUALS expr NEWLINE { |
|
715 |
|
const struct typeandname *tan = getVariable($1.str); |
|
716 |
|
if (tan->isarray) { |
|
717 |
|
yyerrorex(3, "Arrays cannot be directly initialized"); |
|
718 |
|
} |
|
719 |
|
canconvert($3.ty, tan->ty, -1); |
|
720 |
|
$$.ty = gNothing; |
|
721 |
|
} |
367 |
722 |
| error |
| error |
368 |
723 |
; |
; |
369 |
724 |
|
|
370 |
725 |
typedef: TYPE rid EXTENDS type { |
typedef: TYPE rid EXTENDS type { |
371 |
726 |
if (lookup(&types, $2.str)) { |
if (lookup(&types, $2.str)) { |
372 |
727 |
char buf[1024]; |
char buf[1024]; |
373 |
|
sprintf(buf, "Multiply defined type: %s", $2.str); |
|
374 |
|
yyerror(buf); |
|
|
728 |
|
sprintf(buf, "Multiply defined type %s", $2.str); |
|
729 |
|
yyerrorex(3, buf); |
|
730 |
|
} else if (lookup(&functions, $2.str)) { |
|
731 |
|
char buf[1024]; |
|
732 |
|
sprintf(buf, "%s already defined as function", $2.str); |
|
733 |
|
yyerrorex(3, buf); |
375 |
734 |
} |
} |
376 |
735 |
else |
else |
377 |
736 |
put(&types, $2.str, newtypenode($2.str, $4.ty)); |
put(&types, $2.str, newtypenode($2.str, $4.ty)); |
|
... |
... |
type: primtype { $$.ty = $1.ty; } |
385 |
744 |
| rid { |
| rid { |
386 |
745 |
if (lookup(&types, $1.str) == NULL) { |
if (lookup(&types, $1.str) == NULL) { |
387 |
746 |
char buf[1024]; |
char buf[1024]; |
388 |
|
sprintf(buf, "Undefined type: %s", $1.str); |
|
389 |
|
yyerror(buf); |
|
|
747 |
|
sprintf(buf, "Undefined type %s", $1.str); |
|
748 |
|
yyerrorex(3, buf); |
390 |
749 |
$$.ty = gNull; |
$$.ty = gNull; |
391 |
750 |
} |
} |
392 |
751 |
else |
else |
File misc.c changed (mode: 100644) (index 450dca9..bb24b4a) |
11 |
11 |
#include "grammar.tab.h" |
#include "grammar.tab.h" |
12 |
12 |
#include "misc.h" |
#include "misc.h" |
13 |
13 |
|
|
14 |
|
#define VERSIONSTR "0.91" |
|
|
14 |
|
#define VERSIONSTR "1.0f" |
|
15 |
|
#define ERRORLEVELNUM 4 |
15 |
16 |
|
|
|
17 |
|
int fno; |
16 |
18 |
int lineno; |
int lineno; |
17 |
19 |
int haderrors; |
int haderrors; |
|
20 |
|
int ignorederrors; |
18 |
21 |
int totlines; |
int totlines; |
|
22 |
|
int islinebreak; |
|
23 |
|
int isconstant; |
|
24 |
|
int inconstant; |
|
25 |
|
int inblock; |
|
26 |
|
int strict; |
19 |
27 |
int didparse; |
int didparse; |
|
28 |
|
int inloop; |
|
29 |
|
int afterendglobals; |
|
30 |
|
int *showerrorlevel; |
20 |
31 |
|
|
21 |
32 |
int hashfunc(const char *name); |
int hashfunc(const char *name); |
22 |
33 |
struct hashtable functions, globals, locals, params, types; |
struct hashtable functions, globals, locals, params, types; |
23 |
34 |
struct hashtable *curtab; |
struct hashtable *curtab; |
24 |
|
struct typenode *retval; |
|
|
35 |
|
struct typenode *retval, *retcheck; |
25 |
36 |
char *curfile; |
char *curfile; |
26 |
|
struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull; |
|
|
37 |
|
struct typenode *gInteger, *gReal, *gBoolean, *gString, *gCode, *gHandle, *gNothing, *gNull, *gAny, *gNone; |
27 |
38 |
|
|
28 |
39 |
void addPrimitiveType(const char *name, struct typenode **toSave) |
void addPrimitiveType(const char *name, struct typenode **toSave) |
29 |
40 |
{ |
{ |
|
... |
... |
void addPrimitiveType(const char *name, struct typenode **toSave) |
32 |
43 |
|
|
33 |
44 |
void init(int argc, char **argv) |
void init(int argc, char **argv) |
34 |
45 |
{ |
{ |
|
46 |
|
int i; |
35 |
47 |
addPrimitiveType("handle", &gHandle); |
addPrimitiveType("handle", &gHandle); |
36 |
48 |
addPrimitiveType("integer", &gInteger); |
addPrimitiveType("integer", &gInteger); |
37 |
49 |
addPrimitiveType("real", &gReal); |
addPrimitiveType("real", &gReal); |
|
... |
... |
void init(int argc, char **argv) |
40 |
52 |
addPrimitiveType("code", &gCode); |
addPrimitiveType("code", &gCode); |
41 |
53 |
gNothing = newtypenode("nothing", NULL); |
gNothing = newtypenode("nothing", NULL); |
42 |
54 |
gNull = newtypenode("null", NULL); |
gNull = newtypenode("null", NULL); |
|
55 |
|
gAny = newtypenode("any", NULL); |
|
56 |
|
gNone = newtypenode("none", NULL); |
43 |
57 |
curtab = &globals; |
curtab = &globals; |
|
58 |
|
fno = 0; |
|
59 |
|
strict = 0; |
|
60 |
|
haderrors = 0; |
|
61 |
|
ignorederrors = 0; |
|
62 |
|
islinebreak = 1; |
|
63 |
|
inblock = 0; |
|
64 |
|
isconstant = 0; |
|
65 |
|
inconstant = 0; |
|
66 |
|
showerrorlevel = malloc(ERRORLEVELNUM*sizeof(int)); |
|
67 |
|
for(i=0;i<ERRORLEVELNUM;i++) |
|
68 |
|
showerrorlevel[i] = 1; |
44 |
69 |
if (lookup(&functions, "ConvertRace") != NULL) { |
if (lookup(&functions, "ConvertRace") != NULL) { |
45 |
70 |
printf("Major error!!\n"); |
printf("Major error!!\n"); |
46 |
71 |
exit(0); |
exit(0); |
|
... |
... |
struct typenode *getFunctionType(const char *funcname) |
53 |
78 |
struct funcdecl *result; |
struct funcdecl *result; |
54 |
79 |
result = lookup(&functions, funcname); |
result = lookup(&functions, funcname); |
55 |
80 |
if (result) return result->ret; |
if (result) return result->ret; |
56 |
|
sprintf(ebuf, "Undeclared function: %s\n", funcname); |
|
57 |
|
yyerror(ebuf); |
|
|
81 |
|
sprintf(ebuf, "Undeclared function: %s", funcname); |
|
82 |
|
yyerrorline(3, islinebreak ? lineno - 1 : lineno, ebuf); |
58 |
83 |
} |
} |
59 |
84 |
|
|
60 |
85 |
const struct typeandname *getVariable(const char *varname) |
const struct typeandname *getVariable(const char *varname) |
|
... |
... |
const struct typeandname *getVariable(const char *varname) |
67 |
92 |
if (result) return result; |
if (result) return result; |
68 |
93 |
result = lookup(&globals, varname); |
result = lookup(&globals, varname); |
69 |
94 |
if (result) return result; |
if (result) return result; |
70 |
|
sprintf(ebuf, "Undeclared variable: %s\n", varname); |
|
71 |
|
yyerror(ebuf); |
|
72 |
|
// Assume it's an int |
|
73 |
|
put(curtab, varname, newtypeandname(gInteger, varname)); |
|
|
95 |
|
sprintf(ebuf, "Undeclared variable %s", varname); |
|
96 |
|
yyerrorline(2, islinebreak ? lineno - 1 : lineno, ebuf); |
|
97 |
|
// Store it as unidentified variable |
|
98 |
|
put(curtab, varname, newtypeandname(gAny, varname)); |
74 |
99 |
return getVariable(varname); |
return getVariable(varname); |
75 |
100 |
} |
} |
76 |
101 |
|
|
|
102 |
|
void validateGlobalAssignment(const char *varname) { |
|
103 |
|
char ebuf[1024]; |
|
104 |
|
struct typeandname *result; |
|
105 |
|
result = lookup(&globals, varname); |
|
106 |
|
if (result) { |
|
107 |
|
sprintf(ebuf, "Assignment to global variable %s in constant function", varname); |
|
108 |
|
yyerrorline(2, lineno - 1, ebuf); |
|
109 |
|
} |
|
110 |
|
} |
|
111 |
|
|
77 |
112 |
struct typeandname *newtypeandname(const struct typenode *ty, const char *name) |
struct typeandname *newtypeandname(const struct typenode *ty, const char *name) |
78 |
113 |
{ |
{ |
79 |
114 |
struct typeandname *tan = calloc(sizeof(struct typeandname), 1); |
struct typeandname *tan = calloc(sizeof(struct typeandname), 1); |
|
... |
... |
void put(struct hashtable *h, const char *name, void *val) |
197 |
232 |
if (lookup(h, name) != NULL) { |
if (lookup(h, name) != NULL) { |
198 |
233 |
char ebuf[1024]; |
char ebuf[1024]; |
199 |
234 |
sprintf(ebuf, "Symbol %s multiply defined", name); |
sprintf(ebuf, "Symbol %s multiply defined", name); |
200 |
|
yyerror(ebuf); |
|
|
235 |
|
yyerrorline(3, islinebreak ? lineno - 1 : lineno, ebuf); |
201 |
236 |
return; |
return; |
202 |
237 |
} |
} |
203 |
238 |
hf = hashfunc(name); |
hf = hashfunc(name); |
|
... |
... |
struct typenode *binop(const struct typenode *a, const struct typenode *b) |
230 |
265 |
b = getPrimitiveAncestor(b); |
b = getPrimitiveAncestor(b); |
231 |
266 |
if (a == gInteger && b == gInteger) |
if (a == gInteger && b == gInteger) |
232 |
267 |
return gInteger; |
return gInteger; |
|
268 |
|
if (a == gAny) |
|
269 |
|
return b; |
|
270 |
|
if (b == gAny) |
|
271 |
|
return a; |
233 |
272 |
if ((a != gInteger && a != gReal) || (b != gInteger && b != gReal)) { |
if ((a != gInteger && a != gReal) || (b != gInteger && b != gReal)) { |
234 |
|
yyerror("Bad types for binary operator"); |
|
|
273 |
|
yyerrorline(3, islinebreak ? lineno - 1 : lineno, "Bad types for binary operator"); |
235 |
274 |
} |
} |
236 |
275 |
return gReal; |
return gReal; |
237 |
276 |
} |
} |
238 |
277 |
|
|
239 |
|
int canconvert(const struct typenode *ufrom, const struct typenode *uto) |
|
|
278 |
|
int canconvert(const struct typenode *ufrom, const struct typenode *uto, const int linemod) |
240 |
279 |
{ |
{ |
241 |
280 |
const struct typenode *from = ufrom, *to = uto; |
const struct typenode *from = ufrom, *to = uto; |
242 |
281 |
char ebuf[1024]; |
char ebuf[1024]; |
243 |
|
#if 0 |
|
244 |
|
if (lineno > 2400 && lineno < 2500) { |
|
245 |
|
yydebug = 1; |
|
246 |
|
fprintf(stderr, "LINE: %d\n", lineno); |
|
|
282 |
|
|
|
283 |
|
if (from == NULL || to == NULL) return 0; |
|
284 |
|
if (from == gAny || to == gAny) return 1; |
|
285 |
|
if (isDerivedFrom(from, to)) |
|
286 |
|
return 1; |
|
287 |
|
//bug allows downcasting erroneously |
|
288 |
|
//if (isDerivedFrom(to, from)) |
|
289 |
|
// return 1; |
|
290 |
|
if (from->typename == NULL || to->typename == NULL) return 0; |
|
291 |
|
if (from == gNone || to == gNone) return 0; |
|
292 |
|
from = getPrimitiveAncestor(from); |
|
293 |
|
to = getPrimitiveAncestor(to); |
|
294 |
|
if ((from == gNull) && (to != gInteger) && (to != gReal) && (to != gBoolean)) |
|
295 |
|
return 1; |
|
296 |
|
if (strict) { |
|
297 |
|
if (ufrom == gInteger && (to == gReal || to == gInteger)) |
|
298 |
|
return 1; |
|
299 |
|
if (ufrom == to && (ufrom == gBoolean || ufrom == gString || ufrom == gReal || ufrom == gInteger || ufrom == gCode)) |
|
300 |
|
return 1; |
|
301 |
|
} else { |
|
302 |
|
if (from == gInteger && (to == gReal || to == gInteger)) |
|
303 |
|
return 1; |
|
304 |
|
if (from == to && (from == gBoolean || from == gString || from == gReal || from == gInteger || from == gCode)) |
|
305 |
|
return 1; |
247 |
306 |
} |
} |
248 |
|
else |
|
249 |
|
yydebug = 0; |
|
250 |
|
#endif |
|
|
307 |
|
|
|
308 |
|
sprintf(ebuf, "Cannot convert %s to %s", ufrom->typename, uto->typename); |
|
309 |
|
yyerrorline(3, lineno + linemod, ebuf); |
|
310 |
|
} |
|
311 |
|
|
|
312 |
|
int canconvertreturn(const struct typenode *ufrom, const struct typenode *uto, const int linemod) |
|
313 |
|
{ |
|
314 |
|
const struct typenode *from = ufrom, *to = uto; |
|
315 |
|
char ebuf[1024]; |
251 |
316 |
if (from == NULL || to == NULL) return 0; |
if (from == NULL || to == NULL) return 0; |
|
317 |
|
if (from == gAny || to == gAny) return 1; |
252 |
318 |
if (isDerivedFrom(from, to)) |
if (isDerivedFrom(from, to)) |
253 |
319 |
return 1; |
return 1; |
254 |
320 |
/* Blizzard bug: allows downcasting erroneously */ |
/* Blizzard bug: allows downcasting erroneously */ |
255 |
321 |
/* TODO: get Blizzard to fix this in Blizzard.j and the language */ |
/* TODO: get Blizzard to fix this in Blizzard.j and the language */ |
256 |
|
if (isDerivedFrom(to, from)) |
|
257 |
|
return 1; |
|
|
322 |
|
// if (isDerivedFrom(to, from)) |
|
323 |
|
// return 1; |
258 |
324 |
if (from->typename == NULL || to->typename == NULL) return 0; |
if (from->typename == NULL || to->typename == NULL) return 0; |
|
325 |
|
if (from == gNone || to == gNone) return 0; |
259 |
326 |
from = getPrimitiveAncestor(from); |
from = getPrimitiveAncestor(from); |
260 |
327 |
to = getPrimitiveAncestor(to); |
to = getPrimitiveAncestor(to); |
261 |
|
if (from == gNull && (to == gHandle || to == gString || to == gCode)) |
|
|
328 |
|
|
|
329 |
|
// can't return integer when it expects a real (added 9.5.2005) |
|
330 |
|
if ((to == gReal) && (from == gInteger)) { |
|
331 |
|
sprintf(ebuf, "Cannot convert returned value from %s to %s", from->typename, to->typename); |
|
332 |
|
yyerrorline(1, lineno + linemod, ebuf); |
|
333 |
|
return 0; |
|
334 |
|
} |
|
335 |
|
|
|
336 |
|
// can't return null when it expects integer, real or boolean (added 9.5.2005) |
|
337 |
|
if ((from == gNull) && (to != gInteger) && (to != gReal) && (to != gBoolean)) |
262 |
338 |
return 1; |
return 1; |
263 |
|
if ((from == gInteger || from == gReal) && |
|
264 |
|
(to == gInteger || to == gReal)) |
|
|
339 |
|
|
|
340 |
|
if (strict) { |
|
341 |
|
if (isDerivedFrom(uto, ufrom)) |
|
342 |
|
return 1; |
|
343 |
|
} else if (from == to) |
265 |
344 |
return 1; |
return 1; |
266 |
|
sprintf(ebuf, "Cannot convert %s to %s", ufrom->typename, uto->typename); |
|
267 |
|
yyerror(ebuf); |
|
|
345 |
|
|
|
346 |
|
sprintf(ebuf, "Cannot convert returned value from %s to %s", ufrom->typename, uto->typename); |
|
347 |
|
yyerrorline(1, lineno + linemod, ebuf); |
|
348 |
|
} |
|
349 |
|
|
|
350 |
|
struct typenode *combinetype(struct typenode *n1, struct typenode *n2) { |
|
351 |
|
if ((n1 == gNone) || (n2 == gNone)) return gNone; |
|
352 |
|
if (n1 == n2) return n1; |
|
353 |
|
if (n1 == gNull) |
|
354 |
|
return n2; |
|
355 |
|
if (n2 == gNull) |
|
356 |
|
return n1; |
|
357 |
|
n1 = getPrimitiveAncestor(n1); |
|
358 |
|
n2 = getPrimitiveAncestor(n2); |
|
359 |
|
if (n1 == n2) return n1; |
|
360 |
|
if (n1 == gNull) |
|
361 |
|
return n2; |
|
362 |
|
if (n2 == gNull) |
|
363 |
|
return n1; |
|
364 |
|
if ((n1 == gInteger) && (n2 == gReal)) |
|
365 |
|
return gReal; |
|
366 |
|
if ((n1 == gReal) && (n2 == gInteger)) |
|
367 |
|
return gInteger; |
|
368 |
|
// printf("Cannot convert %s to %s", n1->typename, n2->typename); |
|
369 |
|
return gNone; |
268 |
370 |
} |
} |
269 |
371 |
|
|
270 |
372 |
void checkParameters(const struct paramlist *func, const struct paramlist *inp) |
void checkParameters(const struct paramlist *func, const struct paramlist *inp) |
|
... |
... |
void checkParameters(const struct paramlist *func, const struct paramlist *inp) |
275 |
377 |
for (;;) { |
for (;;) { |
276 |
378 |
if (fi == NULL && pi == NULL) |
if (fi == NULL && pi == NULL) |
277 |
379 |
return; |
return; |
278 |
|
if (fi == NULL && pi != NULL) |
|
279 |
|
yyerror("Too many arguments passed to function"); |
|
280 |
|
if (fi != NULL && pi == NULL) |
|
281 |
|
yyerror("Not enough arguments passed to function"); |
|
282 |
|
canconvert(pi->ty, fi->ty); |
|
|
380 |
|
if (fi == NULL && pi != NULL) { |
|
381 |
|
yyerrorex(3, "Too many arguments passed to function"); |
|
382 |
|
return; |
|
383 |
|
} |
|
384 |
|
if (fi != NULL && pi == NULL) { |
|
385 |
|
yyerrorex(3, "Not enough arguments passed to function"); |
|
386 |
|
return; |
|
387 |
|
} |
|
388 |
|
canconvert(pi->ty, fi->ty, 0); |
283 |
389 |
pi = pi->next; |
pi = pi->next; |
284 |
390 |
fi = fi->next; |
fi = fi->next; |
285 |
391 |
} |
} |
|
... |
... |
void checkParameters(const struct paramlist *func, const struct paramlist *inp) |
288 |
394 |
void isnumeric(const struct typenode *ty) |
void isnumeric(const struct typenode *ty) |
289 |
395 |
{ |
{ |
290 |
396 |
ty = getPrimitiveAncestor(ty); |
ty = getPrimitiveAncestor(ty); |
291 |
|
if (!(ty == gInteger || ty == gReal)) |
|
292 |
|
yyerror("Cannot be converted to numeric type"); |
|
|
397 |
|
if (!(ty == gInteger || ty == gReal || ty == gAny)) |
|
398 |
|
yyerrorline(3, islinebreak ? lineno - 1 : lineno, "Cannot be converted to numeric type"); |
|
399 |
|
} |
|
400 |
|
|
|
401 |
|
void checkcomparisonsimple(const struct typenode *a) { |
|
402 |
|
const struct typenode *pa; |
|
403 |
|
pa = getPrimitiveAncestor(a); |
|
404 |
|
if (pa == gString || pa == gHandle || pa == gCode || pa == gBoolean) { |
|
405 |
|
yyerrorex(3, "Comparing the order/size of 2 variables only works on reals and integers"); |
|
406 |
|
return; |
|
407 |
|
} |
|
408 |
|
if (pa == gNull) |
|
409 |
|
yyerrorex(3, "Comparing null is not allowed"); |
293 |
410 |
} |
} |
294 |
411 |
|
|
295 |
412 |
void checkcomparison(const struct typenode *a, const struct typenode *b) |
void checkcomparison(const struct typenode *a, const struct typenode *b) |
|
... |
... |
void checkcomparison(const struct typenode *a, const struct typenode *b) |
297 |
414 |
const struct typenode *pa, *pb; |
const struct typenode *pa, *pb; |
298 |
415 |
pa = getPrimitiveAncestor(a); |
pa = getPrimitiveAncestor(a); |
299 |
416 |
pb = getPrimitiveAncestor(b); |
pb = getPrimitiveAncestor(b); |
300 |
|
if (((pa == gString || pa == gHandle || pa == gCode) && pb == gNull) || |
|
301 |
|
(pa == gNull && (pb == gString || pb == gCode || pb == gHandle)) || |
|
302 |
|
(pa == gNull && pb == gNull)) |
|
303 |
|
return; |
|
304 |
|
if ((pa == gReal || pa == gInteger) && |
|
305 |
|
(pb == gReal || pb == gInteger)) |
|
|
417 |
|
if (pa == gString || pa == gHandle || pa == gCode || pa == gBoolean || pb == gString || pb == gCode || pb == gHandle || pb == gBoolean) { |
|
418 |
|
yyerrorex(3, "Comparing the order/size of 2 variables only works on reals and integers"); |
306 |
419 |
return; |
return; |
307 |
|
if (a != b) { |
|
308 |
|
yyerror("Objects being compared are not the same type."); |
|
309 |
420 |
} |
} |
|
421 |
|
if (pa == gNull && pb == gNull) |
|
422 |
|
yyerrorex(3, "Comparing null is not allowed"); |
310 |
423 |
} |
} |
311 |
424 |
|
|
312 |
425 |
void checkeqtest(const struct typenode *a, const struct typenode *b) |
void checkeqtest(const struct typenode *a, const struct typenode *b) |
313 |
426 |
{ |
{ |
314 |
|
checkcomparison(a, b); |
|
|
427 |
|
const struct typenode *pa, *pb; |
|
428 |
|
pa = getPrimitiveAncestor(a); |
|
429 |
|
pb = getPrimitiveAncestor(b); |
|
430 |
|
if ((pa == gInteger || pa == gReal) && (pb == gInteger || pb == gReal)) |
|
431 |
|
return; |
|
432 |
|
if (pa == gNull || pb == gNull) |
|
433 |
|
return; |
|
434 |
|
if (pa != pb) { |
|
435 |
|
yyerrorex(3, "Comparing two variables of different primitive types (except real and integer) is not allowed"); |
|
436 |
|
return; |
|
437 |
|
} |
315 |
438 |
} |
} |
316 |
439 |
|
|
317 |
440 |
void dofile(FILE *fp, const char *name) |
void dofile(FILE *fp, const char *name) |
318 |
441 |
{ |
{ |
319 |
442 |
void *cur; |
void *cur; |
320 |
|
int olderrs; |
|
321 |
443 |
lineno = 1; |
lineno = 1; |
322 |
|
olderrs = haderrors; |
|
323 |
|
cur = (void *) yy_create_buffer(fp, BUFSIZE); |
|
|
444 |
|
islinebreak = 1; |
|
445 |
|
isconstant = 0; |
|
446 |
|
inconstant = 0; |
|
447 |
|
inblock = 0; |
|
448 |
|
afterendglobals = 0; |
|
449 |
|
int olderrs = haderrors; |
|
450 |
|
cur = yy_create_buffer(fp, BUFSIZE); |
324 |
451 |
yy_switch_to_buffer(cur); |
yy_switch_to_buffer(cur); |
325 |
|
curfile = (char *) name; |
|
|
452 |
|
curfile = name; |
326 |
453 |
while (yyparse()) |
while (yyparse()) |
327 |
454 |
; |
; |
328 |
455 |
if (olderrs == haderrors) |
if (olderrs == haderrors) |
329 |
456 |
printf("Parse successful: %8d lines: %s\n", lineno, curfile); |
printf("Parse successful: %8d lines: %s\n", lineno, curfile); |
330 |
457 |
else |
else |
331 |
458 |
printf("%s failed with %d error%s\n", curfile, haderrors - olderrs,(haderrors == olderrs + 1) ? "" : "s"); |
printf("%s failed with %d error%s\n", curfile, haderrors - olderrs,(haderrors == olderrs + 1) ? "" : "s"); |
332 |
|
totlines += lineno; |
|
|
459 |
|
totlines += lineno; |
|
460 |
|
fno++; |
333 |
461 |
} |
} |
334 |
462 |
|
|
335 |
463 |
void printversion() |
void printversion() |
336 |
464 |
{ |
{ |
337 |
|
printf("pjass version %s by Rudi Cilibrasi\n", VERSIONSTR); |
|
|
465 |
|
printf("Pjass version %s by Rudi Cilibrasi, modified by AIAndy and PitzerMike\n", VERSIONSTR); |
338 |
466 |
} |
} |
339 |
467 |
|
|
340 |
468 |
void doparse(int argc, char **argv) |
void doparse(int argc, char **argv) |
341 |
469 |
{ |
{ |
342 |
|
FILE *fp; |
|
343 |
470 |
int i; |
int i; |
344 |
471 |
for (i = 1; i < argc; ++i) { |
for (i = 1; i < argc; ++i) { |
345 |
472 |
if (argv[i][0] == '-' && argv[i][1] == 0) { |
if (argv[i][0] == '-' && argv[i][1] == 0) { |
|
... |
... |
printf( |
359 |
486 |
"pjass accepts some options:\n" |
"pjass accepts some options:\n" |
360 |
487 |
"pjass -h Display this help\n" |
"pjass -h Display this help\n" |
361 |
488 |
"pjass -v Display version information and exit\n" |
"pjass -v Display version information and exit\n" |
|
489 |
|
"pjass -e1 Ignores error level 1\n" |
|
490 |
|
"pjass +e2 Undo Ignore of error level 2\n" |
|
491 |
|
"pjass +s Enable strict downcast evaluation\n" |
|
492 |
|
"pjass -s Disable strict downcast evaluation\n" |
362 |
493 |
"pjass - Read from standard input (may appear in a list)\n" |
"pjass - Read from standard input (may appear in a list)\n" |
363 |
494 |
); |
); |
364 |
495 |
exit(0); |
exit(0); |
|
... |
... |
printf( |
369 |
500 |
exit(0); |
exit(0); |
370 |
501 |
continue; |
continue; |
371 |
502 |
} |
} |
|
503 |
|
if (strcmp(argv[i], "+s") == 0) { |
|
504 |
|
strict = 1; |
|
505 |
|
continue; |
|
506 |
|
} |
|
507 |
|
if (strcmp(argv[i], "-s") == 0) { |
|
508 |
|
strict = 0; |
|
509 |
|
continue; |
|
510 |
|
} |
|
511 |
|
if (argv[i][0] == '-' && argv[i][1] == 'e' && argv[i][2] >= '0' && argv[i][2] < ('0' + ERRORLEVELNUM)) { |
|
512 |
|
showerrorlevel[argv[i][2]-'0'] = 0; |
|
513 |
|
continue; |
|
514 |
|
} |
|
515 |
|
if (argv[i][0] == '+' && argv[i][1] == 'e' && argv[i][2] >= '0' && argv[i][2] < ('0' + ERRORLEVELNUM)) { |
|
516 |
|
showerrorlevel[argv[i][2]-'0'] = 1; |
|
517 |
|
continue; |
|
518 |
|
} |
|
519 |
|
FILE *fp; |
372 |
520 |
fp = fopen(argv[i], "rb"); |
fp = fopen(argv[i], "rb"); |
373 |
521 |
if (fp == NULL) { |
if (fp == NULL) { |
374 |
522 |
printf("Error: Cannot open %s\n", argv[i]); |
printf("Error: Cannot open %s\n", argv[i]); |
File missing deleted (index fc54c64..0000000) |
1 |
|
#! /bin/sh |
|
2 |
|
# Common stub for a few missing GNU programs while installing. |
|
3 |
|
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003 Free Software Foundation, Inc. |
|
4 |
|
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. |
|
5 |
|
|
|
6 |
|
# This program is free software; you can redistribute it and/or modify |
|
7 |
|
# it under the terms of the GNU General Public License as published by |
|
8 |
|
# the Free Software Foundation; either version 2, or (at your option) |
|
9 |
|
# any later version. |
|
10 |
|
|
|
11 |
|
# This program is distributed in the hope that it will be useful, |
|
12 |
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
|
# GNU General Public License for more details. |
|
15 |
|
|
|
16 |
|
# You should have received a copy of the GNU General Public License |
|
17 |
|
# along with this program; if not, write to the Free Software |
|
18 |
|
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
|
19 |
|
# 02111-1307, USA. |
|
20 |
|
|
|
21 |
|
# As a special exception to the GNU General Public License, if you |
|
22 |
|
# distribute this file as part of a program that contains a |
|
23 |
|
# configuration script generated by Autoconf, you may include it under |
|
24 |
|
# the same distribution terms that you use for the rest of that program. |
|
25 |
|
|
|
26 |
|
if test $# -eq 0; then |
|
27 |
|
echo 1>&2 "Try \`$0 --help' for more information" |
|
28 |
|
exit 1 |
|
29 |
|
fi |
|
30 |
|
|
|
31 |
|
run=: |
|
32 |
|
|
|
33 |
|
# In the cases where this matters, `missing' is being run in the |
|
34 |
|
# srcdir already. |
|
35 |
|
if test -f configure.ac; then |
|
36 |
|
configure_ac=configure.ac |
|
37 |
|
else |
|
38 |
|
configure_ac=configure.in |
|
39 |
|
fi |
|
40 |
|
|
|
41 |
|
case "$1" in |
|
42 |
|
--run) |
|
43 |
|
# Try to run requested program, and just exit if it succeeds. |
|
44 |
|
run= |
|
45 |
|
shift |
|
46 |
|
"$@" && exit 0 |
|
47 |
|
;; |
|
48 |
|
esac |
|
49 |
|
|
|
50 |
|
# If it does not exist, or fails to run (possibly an outdated version), |
|
51 |
|
# try to emulate it. |
|
52 |
|
case "$1" in |
|
53 |
|
|
|
54 |
|
-h|--h|--he|--hel|--help) |
|
55 |
|
echo "\ |
|
56 |
|
$0 [OPTION]... PROGRAM [ARGUMENT]... |
|
57 |
|
|
|
58 |
|
Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an |
|
59 |
|
error status if there is no known handling for PROGRAM. |
|
60 |
|
|
|
61 |
|
Options: |
|
62 |
|
-h, --help display this help and exit |
|
63 |
|
-v, --version output version information and exit |
|
64 |
|
--run try to run the given command, and emulate it if it fails |
|
65 |
|
|
|
66 |
|
Supported PROGRAM values: |
|
67 |
|
aclocal touch file \`aclocal.m4' |
|
68 |
|
autoconf touch file \`configure' |
|
69 |
|
autoheader touch file \`config.h.in' |
|
70 |
|
automake touch all \`Makefile.in' files |
|
71 |
|
bison create \`y.tab.[ch]', if possible, from existing .[ch] |
|
72 |
|
flex create \`lex.yy.c', if possible, from existing .c |
|
73 |
|
help2man touch the output file |
|
74 |
|
lex create \`lex.yy.c', if possible, from existing .c |
|
75 |
|
makeinfo touch the output file |
|
76 |
|
tar try tar, gnutar, gtar, then tar without non-portable flags |
|
77 |
|
yacc create \`y.tab.[ch]', if possible, from existing .[ch]" |
|
78 |
|
;; |
|
79 |
|
|
|
80 |
|
-v|--v|--ve|--ver|--vers|--versi|--versio|--version) |
|
81 |
|
echo "missing 0.4 - GNU automake" |
|
82 |
|
;; |
|
83 |
|
|
|
84 |
|
-*) |
|
85 |
|
echo 1>&2 "$0: Unknown \`$1' option" |
|
86 |
|
echo 1>&2 "Try \`$0 --help' for more information" |
|
87 |
|
exit 1 |
|
88 |
|
;; |
|
89 |
|
|
|
90 |
|
aclocal*) |
|
91 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
92 |
|
# We have it, but it failed. |
|
93 |
|
exit 1 |
|
94 |
|
fi |
|
95 |
|
|
|
96 |
|
echo 1>&2 "\ |
|
97 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
98 |
|
you modified \`acinclude.m4' or \`${configure_ac}'. You might want |
|
99 |
|
to install the \`Automake' and \`Perl' packages. Grab them from |
|
100 |
|
any GNU archive site." |
|
101 |
|
touch aclocal.m4 |
|
102 |
|
;; |
|
103 |
|
|
|
104 |
|
autoconf) |
|
105 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
106 |
|
# We have it, but it failed. |
|
107 |
|
exit 1 |
|
108 |
|
fi |
|
109 |
|
|
|
110 |
|
echo 1>&2 "\ |
|
111 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
112 |
|
you modified \`${configure_ac}'. You might want to install the |
|
113 |
|
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU |
|
114 |
|
archive site." |
|
115 |
|
touch configure |
|
116 |
|
;; |
|
117 |
|
|
|
118 |
|
autoheader) |
|
119 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
120 |
|
# We have it, but it failed. |
|
121 |
|
exit 1 |
|
122 |
|
fi |
|
123 |
|
|
|
124 |
|
echo 1>&2 "\ |
|
125 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
126 |
|
you modified \`acconfig.h' or \`${configure_ac}'. You might want |
|
127 |
|
to install the \`Autoconf' and \`GNU m4' packages. Grab them |
|
128 |
|
from any GNU archive site." |
|
129 |
|
files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` |
|
130 |
|
test -z "$files" && files="config.h" |
|
131 |
|
touch_files= |
|
132 |
|
for f in $files; do |
|
133 |
|
case "$f" in |
|
134 |
|
*:*) touch_files="$touch_files "`echo "$f" | |
|
135 |
|
sed -e 's/^[^:]*://' -e 's/:.*//'`;; |
|
136 |
|
*) touch_files="$touch_files $f.in";; |
|
137 |
|
esac |
|
138 |
|
done |
|
139 |
|
touch $touch_files |
|
140 |
|
;; |
|
141 |
|
|
|
142 |
|
automake*) |
|
143 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
144 |
|
# We have it, but it failed. |
|
145 |
|
exit 1 |
|
146 |
|
fi |
|
147 |
|
|
|
148 |
|
echo 1>&2 "\ |
|
149 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
150 |
|
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. |
|
151 |
|
You might want to install the \`Automake' and \`Perl' packages. |
|
152 |
|
Grab them from any GNU archive site." |
|
153 |
|
find . -type f -name Makefile.am -print | |
|
154 |
|
sed 's/\.am$/.in/' | |
|
155 |
|
while read f; do touch "$f"; done |
|
156 |
|
;; |
|
157 |
|
|
|
158 |
|
autom4te) |
|
159 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
160 |
|
# We have it, but it failed. |
|
161 |
|
exit 1 |
|
162 |
|
fi |
|
163 |
|
|
|
164 |
|
echo 1>&2 "\ |
|
165 |
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your |
|
166 |
|
system. You might have modified some files without having the |
|
167 |
|
proper tools for further handling them. |
|
168 |
|
You can get \`$1' as part of \`Autoconf' from any GNU |
|
169 |
|
archive site." |
|
170 |
|
|
|
171 |
|
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` |
|
172 |
|
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` |
|
173 |
|
if test -f "$file"; then |
|
174 |
|
touch $file |
|
175 |
|
else |
|
176 |
|
test -z "$file" || exec >$file |
|
177 |
|
echo "#! /bin/sh" |
|
178 |
|
echo "# Created by GNU Automake missing as a replacement of" |
|
179 |
|
echo "# $ $@" |
|
180 |
|
echo "exit 0" |
|
181 |
|
chmod +x $file |
|
182 |
|
exit 1 |
|
183 |
|
fi |
|
184 |
|
;; |
|
185 |
|
|
|
186 |
|
bison|yacc) |
|
187 |
|
echo 1>&2 "\ |
|
188 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
189 |
|
you modified a \`.y' file. You may need the \`Bison' package |
|
190 |
|
in order for those modifications to take effect. You can get |
|
191 |
|
\`Bison' from any GNU archive site." |
|
192 |
|
rm -f y.tab.c y.tab.h |
|
193 |
|
if [ $# -ne 1 ]; then |
|
194 |
|
eval LASTARG="\${$#}" |
|
195 |
|
case "$LASTARG" in |
|
196 |
|
*.y) |
|
197 |
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` |
|
198 |
|
if [ -f "$SRCFILE" ]; then |
|
199 |
|
cp "$SRCFILE" y.tab.c |
|
200 |
|
fi |
|
201 |
|
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` |
|
202 |
|
if [ -f "$SRCFILE" ]; then |
|
203 |
|
cp "$SRCFILE" y.tab.h |
|
204 |
|
fi |
|
205 |
|
;; |
|
206 |
|
esac |
|
207 |
|
fi |
|
208 |
|
if [ ! -f y.tab.h ]; then |
|
209 |
|
echo >y.tab.h |
|
210 |
|
fi |
|
211 |
|
if [ ! -f y.tab.c ]; then |
|
212 |
|
echo 'main() { return 0; }' >y.tab.c |
|
213 |
|
fi |
|
214 |
|
;; |
|
215 |
|
|
|
216 |
|
lex|flex) |
|
217 |
|
echo 1>&2 "\ |
|
218 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
219 |
|
you modified a \`.l' file. You may need the \`Flex' package |
|
220 |
|
in order for those modifications to take effect. You can get |
|
221 |
|
\`Flex' from any GNU archive site." |
|
222 |
|
rm -f lex.yy.c |
|
223 |
|
if [ $# -ne 1 ]; then |
|
224 |
|
eval LASTARG="\${$#}" |
|
225 |
|
case "$LASTARG" in |
|
226 |
|
*.l) |
|
227 |
|
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` |
|
228 |
|
if [ -f "$SRCFILE" ]; then |
|
229 |
|
cp "$SRCFILE" lex.yy.c |
|
230 |
|
fi |
|
231 |
|
;; |
|
232 |
|
esac |
|
233 |
|
fi |
|
234 |
|
if [ ! -f lex.yy.c ]; then |
|
235 |
|
echo 'main() { return 0; }' >lex.yy.c |
|
236 |
|
fi |
|
237 |
|
;; |
|
238 |
|
|
|
239 |
|
help2man) |
|
240 |
|
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then |
|
241 |
|
# We have it, but it failed. |
|
242 |
|
exit 1 |
|
243 |
|
fi |
|
244 |
|
|
|
245 |
|
echo 1>&2 "\ |
|
246 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
247 |
|
you modified a dependency of a manual page. You may need the |
|
248 |
|
\`Help2man' package in order for those modifications to take |
|
249 |
|
effect. You can get \`Help2man' from any GNU archive site." |
|
250 |
|
|
|
251 |
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` |
|
252 |
|
if test -z "$file"; then |
|
253 |
|
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` |
|
254 |
|
fi |
|
255 |
|
if [ -f "$file" ]; then |
|
256 |
|
touch $file |
|
257 |
|
else |
|
258 |
|
test -z "$file" || exec >$file |
|
259 |
|
echo ".ab help2man is required to generate this page" |
|
260 |
|
exit 1 |
|
261 |
|
fi |
|
262 |
|
;; |
|
263 |
|
|
|
264 |
|
makeinfo) |
|
265 |
|
if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then |
|
266 |
|
# We have makeinfo, but it failed. |
|
267 |
|
exit 1 |
|
268 |
|
fi |
|
269 |
|
|
|
270 |
|
echo 1>&2 "\ |
|
271 |
|
WARNING: \`$1' is missing on your system. You should only need it if |
|
272 |
|
you modified a \`.texi' or \`.texinfo' file, or any other file |
|
273 |
|
indirectly affecting the aspect of the manual. The spurious |
|
274 |
|
call might also be the consequence of using a buggy \`make' (AIX, |
|
275 |
|
DU, IRIX). You might want to install the \`Texinfo' package or |
|
276 |
|
the \`GNU make' package. Grab either from any GNU archive site." |
|
277 |
|
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` |
|
278 |
|
if test -z "$file"; then |
|
279 |
|
file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` |
|
280 |
|
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` |
|
281 |
|
fi |
|
282 |
|
touch $file |
|
283 |
|
;; |
|
284 |
|
|
|
285 |
|
tar) |
|
286 |
|
shift |
|
287 |
|
if test -n "$run"; then |
|
288 |
|
echo 1>&2 "ERROR: \`tar' requires --run" |
|
289 |
|
exit 1 |
|
290 |
|
fi |
|
291 |
|
|
|
292 |
|
# We have already tried tar in the generic part. |
|
293 |
|
# Look for gnutar/gtar before invocation to avoid ugly error |
|
294 |
|
# messages. |
|
295 |
|
if (gnutar --version > /dev/null 2>&1); then |
|
296 |
|
gnutar "$@" && exit 0 |
|
297 |
|
fi |
|
298 |
|
if (gtar --version > /dev/null 2>&1); then |
|
299 |
|
gtar "$@" && exit 0 |
|
300 |
|
fi |
|
301 |
|
firstarg="$1" |
|
302 |
|
if shift; then |
|
303 |
|
case "$firstarg" in |
|
304 |
|
*o*) |
|
305 |
|
firstarg=`echo "$firstarg" | sed s/o//` |
|
306 |
|
tar "$firstarg" "$@" && exit 0 |
|
307 |
|
;; |
|
308 |
|
esac |
|
309 |
|
case "$firstarg" in |
|
310 |
|
*h*) |
|
311 |
|
firstarg=`echo "$firstarg" | sed s/h//` |
|
312 |
|
tar "$firstarg" "$@" && exit 0 |
|
313 |
|
;; |
|
314 |
|
esac |
|
315 |
|
fi |
|
316 |
|
|
|
317 |
|
echo 1>&2 "\ |
|
318 |
|
WARNING: I can't seem to be able to run \`tar' with the given arguments. |
|
319 |
|
You may want to install GNU tar or Free paxutils, or check the |
|
320 |
|
command line arguments." |
|
321 |
|
exit 1 |
|
322 |
|
;; |
|
323 |
|
|
|
324 |
|
*) |
|
325 |
|
echo 1>&2 "\ |
|
326 |
|
WARNING: \`$1' is needed, and you do not seem to have it handy on your |
|
327 |
|
system. You might have modified some files without having the |
|
328 |
|
proper tools for further handling them. Check the \`README' file, |
|
329 |
|
it often tells you about the needed prerequisites for installing |
|
330 |
|
this package. You may also peek at any GNU archive site, in case |
|
331 |
|
some other package would contain this missing \`$1' program." |
|
332 |
|
exit 1 |
|
333 |
|
;; |
|
334 |
|
esac |
|
335 |
|
|
|
336 |
|
exit 0 |
|