mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dd27391ef |
17
.cvsignore
17
.cvsignore
@@ -1,17 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
install.sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
mdate-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
texinfo.tex
|
||||
343
COPYING
343
COPYING
@@ -1,343 +0,0 @@
|
||||
#
|
||||
# $RTEMS$
|
||||
#
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
Appendix: How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
15
INSTALL
15
INSTALL
@@ -2,10 +2,14 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Building RTEMS
|
||||
==============
|
||||
See the file README.configure.
|
||||
NOTE: The string <release> should be replaced with
|
||||
the appropriate release number of RTEMS.
|
||||
|
||||
This file only discusses the installation of .tgz files.
|
||||
For more detailed information on the installation of RTEMS,
|
||||
refer to the Release Notes manual in the file
|
||||
/pub/rtems/releases/<release>/doc/c_or_ada/relnotes.tgz on
|
||||
lancelot.gcs.redstone.army.mil.
|
||||
|
||||
UNCOMPRESSING .tgz FILES
|
||||
===========================
|
||||
@@ -39,7 +43,8 @@ NOTES:
|
||||
(most) UNIX machines, zcat is associated with compress (.Z files).
|
||||
|
||||
(3) If you do not have gzip 1.2.4, it is available from numerous sites
|
||||
including this one. Other sites include ftp.gnu.org and ftp.cdrom.com.
|
||||
including this one. Other sites include prep.ai.mit.edu and
|
||||
gatekeeper.dec.com.
|
||||
|
||||
(4) The GNU archive files included in this distribution are packaged
|
||||
exactly like they are on official GNU ftp sites. When extracting
|
||||
@@ -48,4 +53,4 @@ NOTES:
|
||||
is the name and version of the tool in question. For example,
|
||||
gcc-2.5.8.tgz will extract its contents into the subdirectory
|
||||
gcc-2.5.8.
|
||||
|
||||
|
||||
|
||||
129
LICENSE
129
LICENSE
@@ -3,21 +3,116 @@
|
||||
#
|
||||
LICENSE INFORMATION
|
||||
|
||||
RTEMS is free software; you can redistribute it and/or modify it under
|
||||
terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2, or (at your option) any
|
||||
later version. RTEMS is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details. You should have received
|
||||
a copy of the GNU General Public License along with RTEMS; see
|
||||
file COPYING. If not, write to the Free Software Foundation, 675
|
||||
Mass Ave, Cambridge, MA 02139, USA.
|
||||
For the purposes of this document the Real Time Executive for
|
||||
Missile Systems (RTEMS) is defined to include all source code,
|
||||
documentation, shell utilities developed by On-Line Applications
|
||||
Research Corporation (OAR) under contract of the U.S. Army
|
||||
Missile Command. OAR obtained the copyright for RTEMS and
|
||||
subsequently assigned ownership of said copyright to the
|
||||
U.S. Government. As part of this transfer, OAR waived all
|
||||
claims of ownership for RTEMS. Since OAR no longer makes claims
|
||||
of ownership of RTEMS, OAR in no event shall be held liable
|
||||
for damages including any general, special, incidental or
|
||||
consequential damages arising out of the use or inability
|
||||
to use the RTEMS software or documentation or of the support
|
||||
services provided (including but not limited to loss of data or
|
||||
data being rendered inaccurate or losses sustained by you or
|
||||
third parties or a failure of the program to operate with any
|
||||
other programs), even if advised of the possibility of such damages.
|
||||
|
||||
Simply stated any file containing the U.S. Government
|
||||
copyright notice or relocatables derived from one or more of
|
||||
these files are covered by this agreement.
|
||||
|
||||
RTEMS may be reproduced by or for the U.S. Government pursuant
|
||||
to the copyright license under the clause at DFARS 252.227-7013.
|
||||
The following notice must appear in all copies of RTEMS and its
|
||||
derivatives:
|
||||
|
||||
COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
|
||||
On-Line Applications Research Corporation (OAR).
|
||||
All rights assigned to U.S. Government, 1994.
|
||||
|
||||
This material may be reproduced by or for the U.S. Government
|
||||
pursuant to the copyright license under the clause at DFARS
|
||||
252.227-7013. This notice must appear in all copies of this
|
||||
material and its derivatives.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code and documentation must retain the
|
||||
above copyright notice, this list of conditions and the following
|
||||
disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
Redistributions in binary form must contain or make available the
|
||||
RTEMS source code.
|
||||
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgement:
|
||||
This product includes software developed for the U.S. Government
|
||||
by On-Line Applications Research Corp.
|
||||
|
||||
4. Neither the name of the author nor the U.S. Government may be used to
|
||||
endorse or promote products derived from this software without specific
|
||||
prior written permission.
|
||||
|
||||
|
||||
RTEMS is provided "AS IS" without warranty of any kind, either
|
||||
expressed or implied, including, but not limited to, the implied
|
||||
warranties of merchantability, title and fitness for a
|
||||
particular purpose. The U.S. Government does not warrant that
|
||||
the RTEMS software or documentation will satisfy your requirements
|
||||
or that the software and documentation are without defect or error
|
||||
or that the operation of the software will be uninterrupted.
|
||||
|
||||
The U.S. Government shall in no event shall be held liable for
|
||||
damages including any general, special, incidental or consequential
|
||||
damages arising out of the use or inability to use the RTEMS software
|
||||
or documentation or of the support services provided (including
|
||||
but not limited to loss of data or data being rendered
|
||||
inaccurate or losses sustained by you or third parties or a
|
||||
failure of the program to operate with any other programs), even
|
||||
if the U.S. Government has been advised of the possibility of such damages.
|
||||
|
||||
The U.S. Government reserves the right to revise this material
|
||||
and to make changes from time to time in the content hereof without
|
||||
obligation to notify anyone or any organization of such revision
|
||||
or changes.
|
||||
|
||||
OAR remains the sole organization authorized by contract to
|
||||
distribute or provide support and training for the Real-Time
|
||||
Executive for Multiprocessor Systems (RTEMS).
|
||||
|
||||
In order to promote future research activities within the U.S.
|
||||
Government, we request that potential users of RTEMS notify us
|
||||
as to the systems that RTEMS is being utilized. This will allow
|
||||
us to publicize our Dual-Use / Reuse capabilities in support of
|
||||
the current administration's goals. This can be accomplished by
|
||||
calling the RTEMS phone numbers published in the documentation
|
||||
or by electronic mail to "rtems@redstone.army.mil". Your
|
||||
cooperation is greatly appreciated. Again, thank you for using
|
||||
RTEMS.
|
||||
|
||||
RTEMS
|
||||
U.S. ARMY Missile Command
|
||||
ATTN: AMSMI-RD-GC-S
|
||||
Redstone Arsenal, AL 35898-5254
|
||||
Voice: (205) 842-6906
|
||||
FAX: (205) 842-6917
|
||||
EMAIL: rtems@redstone.army.mil
|
||||
|
||||
|
||||
On-Line Applications Research Corporation.
|
||||
2227 Drake Avenue SW
|
||||
Suite 10-F
|
||||
Huntsville, AL 35805
|
||||
(205) 883-0131
|
||||
|
||||
|
||||
|
||||
|
||||
As a special exception, including RTEMS header files in a file,
|
||||
instantiating RTEMS generics or templates, or linking other files
|
||||
with RTEMS objects to produce an executable application, does not
|
||||
by itself cause the resulting executable application to be covered
|
||||
by the GNU General Public License. This exception does not
|
||||
however invalidate any other reasons why the executable file might be
|
||||
covered by the GNU Public License.
|
||||
|
||||
63
LICENSE.NET
63
LICENSE.NET
@@ -1,63 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS TCP/IP stack is a port of the FreeBSD TCP/IP stack. The following
|
||||
copyright and licensing information applies to this code.
|
||||
|
||||
This code is found under the c/src/libnetworking directory but does not
|
||||
constitute the entire contents of that subdirectory.
|
||||
|
||||
=============================================================================
|
||||
|
||||
Copyright (c) 1980, 1983, 1988, 1993
|
||||
The Regents of the University of California. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgment:
|
||||
This product includes software developed by the University of
|
||||
California, Berkeley and its contributors.
|
||||
4. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-
|
||||
Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies, and that
|
||||
the name of Digital Equipment Corporation not be used in advertising or
|
||||
publicity pertaining to distribution of the document or software without
|
||||
specific, written prior permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||
WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||
CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
=============================================================================
|
||||
@@ -1,44 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS RPC/XDR support is a port of the freely distributed
|
||||
Sun Microsystems implementation. The following copyright and
|
||||
licensing information applies to this code.
|
||||
|
||||
This code is in the c/src/librpc directory.
|
||||
|
||||
=============================================================================
|
||||
|
||||
Copyright (C) 1984, Sun Microsystems, Inc.
|
||||
|
||||
Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
||||
unrestricted use provided that this legend is included on all tape
|
||||
media and as a part of the software program in whole or part. Users
|
||||
may copy or modify Sun RPC without charge, but are not authorized
|
||||
to license or distribute it to anyone else except as part of a product or
|
||||
program developed by the user.
|
||||
|
||||
SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
||||
WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
||||
|
||||
Sun RPC is provided with no support and without any obligation on the
|
||||
part of Sun Microsystems, Inc. to assist in its use, correction,
|
||||
modification or enhancement.
|
||||
|
||||
SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
||||
INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
||||
OR ANY PART THEREOF.
|
||||
|
||||
In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
||||
or profits or other special, indirect and consequential damages, even if
|
||||
Sun has been advised of the possibility of such damages.
|
||||
|
||||
Sun Microsystems, Inc.
|
||||
2550 Garcia Avenue
|
||||
Mountain View, California 94043
|
||||
|
||||
=============================================================================
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The source code in c/src/libnetworking/rtems_webserver is a port
|
||||
of the Go Ahead Software, Inc. WebServer. Their copyright and
|
||||
licensing terms apply. See c/src/libnetworking/rtems_webserver/license.txt
|
||||
for details.
|
||||
41
Makefile.am
41
Makefile.am
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# top level directory for RTEMS build tree
|
||||
#
|
||||
## The target's toplevel Makefile now is in c/src
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I aclocal
|
||||
|
||||
SUBDIRS = make $(build_SUBDIRS) $(host_SUBDIRS) $(target_SUBDIRS)
|
||||
|
||||
AUTOMAKE_FILES = automake/compile.am automake/host.am automake/lib.am \
|
||||
automake/local.am automake/subdirs.am \
|
||||
automake/leaf.am automake/force-preinstall.am
|
||||
|
||||
ACLOCAL_FILES = aclocal/bsp-alias.m4 aclocal/canonical-host.m4 \
|
||||
aclocal/canonical-target-name.m4 aclocal/canonicalize-tools.m4 \
|
||||
aclocal/check-bsp-cache.m4 aclocal/check-bsps.m4 aclocal/check-cpu.m4 \
|
||||
aclocal/check-cxx.m4 aclocal/check-itron.m4 \
|
||||
aclocal/check-multiprocessing.m4 aclocal/check-networking.m4 \
|
||||
aclocal/check-newlib.m4 aclocal/check-posix.m4 aclocal/check-rdbg.m4 \
|
||||
aclocal/enable-bare.m4 aclocal/enable-cxx.m4 \
|
||||
aclocal/enable-inlines.m4 aclocal/enable-itron.m4 \
|
||||
aclocal/enable-multiprocessing.m4 aclocal/enable-networking.m4 \
|
||||
aclocal/enable-posix.m4 aclocal/enable-rdbg.m4 aclocal/enable-rtemsbsp.m4 \
|
||||
aclocal/enable-tests.m4 aclocal/gcc-pipe.m4 aclocal/gcc-specs.m4 \
|
||||
aclocal/i386-gas-code16.m4 aclocal/multilib.m4 aclocal/path-ksh.m4 \
|
||||
aclocal/path-perl.m4 aclocal/prog-cc.m4 aclocal/prog-cxx.m4 \
|
||||
aclocal/project-root.m4 aclocal/rtems-debug.m4 \
|
||||
aclocal/rtems-test-no-pause.m4 aclocal/rtems-top.m4 \
|
||||
aclocal/target.m4 aclocal/tool-paths.m4 aclocal/bspopts.m4 \
|
||||
aclocal/ppc.m4 aclocal/bsp-configure.m4 aclocal/gcc-isystem.m4
|
||||
|
||||
noinst_SCRIPTS = bootstrap
|
||||
|
||||
EXTRA_DIST = $(AUTOMAKE_FILES) $(ACLOCAL_FILES) README.configure SUPPORT \
|
||||
VERSION LICENSE $(noinst_SCRIPTS)
|
||||
|
||||
include $(top_srcdir)/automake/subdirs.am
|
||||
include $(top_srcdir)/automake/host.am
|
||||
6
README
6
README
@@ -2,10 +2,6 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Building RTEMS
|
||||
==============
|
||||
See the file README.configure.
|
||||
|
||||
Directory Overview
|
||||
==================
|
||||
|
||||
@@ -39,7 +35,7 @@ Ada versus C
|
||||
There are two implementations of RTEMS in this source tree --
|
||||
in Ada and in C. These two implementations are functionally
|
||||
and structurally equivalent. The C implementation follows
|
||||
the packaging conventions and hierarchical nature of the Ada
|
||||
the packaging conventions and hiearchical nature of the Ada
|
||||
implementation. In addition, a style has been followed which
|
||||
allows one to easily find the corresponding Ada and C
|
||||
implementations.
|
||||
|
||||
73
README.cdn-X
73
README.cdn-X
@@ -1,73 +0,0 @@
|
||||
Building RTEMS Canadian Cross
|
||||
=============================
|
||||
|
||||
RTEMS now contains experimental and yet incomplete support for building
|
||||
it Canadian Cross.
|
||||
|
||||
1. Introduction
|
||||
---------------
|
||||
If you don't know what Canadian Cross Building means, you probably don't want
|
||||
to apply it and should consider stop reading here.
|
||||
|
||||
Interested readers might want to read Ian Lance Taylor's article at
|
||||
http://www.airs.com/ian/configure for underlaying details and working
|
||||
principles.
|
||||
|
||||
|
||||
2. RTEMS
|
||||
--------
|
||||
Example: Building RTEMS for sparc-rtems under i386-pc-linux-gnu to be hosted
|
||||
on a i386-cygwin platform.
|
||||
|
||||
2.1 Required tools
|
||||
------------------
|
||||
* A i386-pc-linux-gnu cross sparc-rtems toolchain.
|
||||
* A i386-pc-linux-gnu cross i386-cygwin toolchain.
|
||||
* A i386-pc-linux-gnu native toolchain.
|
||||
|
||||
We further on assume these to be installed to these locations:
|
||||
/opt/rtems .. linux cross sparc-rtems toolchain
|
||||
/opt/cygwin .. linux cross i386-cygwin cross-toolchain
|
||||
/usr .. linux native toolchain and further tools.
|
||||
|
||||
2.2 Building sparc-rtems
|
||||
------------------------
|
||||
The first step is to build RTEMS for sparc-rtems under linux.
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
<path>/rtems/configure [options] \
|
||||
--target=sparc-rtems \
|
||||
--prefix=/opt/cygwin
|
||||
make
|
||||
make install
|
||||
|
||||
This will build a standard sparc-rtems RTEMS and install it to the given
|
||||
PREFIX.
|
||||
|
||||
2.3 Building i386-cygwin host support
|
||||
-------------------------------------
|
||||
The next step is to build RTEMS host support for i386-cygwin.
|
||||
This basically means to cross-build the host tools contained in RTEMS.
|
||||
|
||||
mkdir host
|
||||
cd host
|
||||
<path>/rtems/configure [options] \
|
||||
--target=sparc-rtems \
|
||||
--build=`<path>/rtems/config.guess` \
|
||||
--host=i386-cygwin \
|
||||
--prefix=/opt/cygwin
|
||||
make
|
||||
make install
|
||||
|
||||
This will build RTEMS host-tools for i386-cygwin and install them to the given
|
||||
PREFIX.
|
||||
|
||||
|
||||
3. Known issues
|
||||
---------------
|
||||
|
||||
* At present time, building RTEMS Canadian Cross is known to be immature, and
|
||||
to require additional work. Do not expect this to work.
|
||||
|
||||
* The <toplevel>/make/ directory hierarchy is not treated correctly.
|
||||
276
README.configure
276
README.configure
@@ -1,276 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
1. Autoconf support
|
||||
===================
|
||||
|
||||
This version of RTEMS is configured with GNU autoconf. RTEMS can be
|
||||
configured and built either standalone or together with the compiler
|
||||
tools in the Cygnus one-tree structure. Using autoconf also means
|
||||
that RTEMS now can be built in a separate build directory.
|
||||
|
||||
To re-generate auto*tool generated files (configure, Makefile.in etc),
|
||||
autoconf-2.57 and automake-1.7.2 are required.
|
||||
|
||||
2. Installation
|
||||
===============
|
||||
|
||||
2.1 Standalone build
|
||||
|
||||
To configure RTEMS for a specific target, run configure in the build
|
||||
directory. In addition to the standard configure options, the following
|
||||
RTEMS-specific option are supported:
|
||||
|
||||
--disable-rtems-inlines
|
||||
--disable-posix
|
||||
--disable-itron
|
||||
--disable-networking
|
||||
--enable-cxx
|
||||
--enable-bare-cpu-model=<MODEL>
|
||||
--enable-bare-cpu-cflags=<FLAGS>
|
||||
--enable-multiprocessing
|
||||
--enable-rtemsbsp="bsp1 bsp2 ..."
|
||||
--enable-tests
|
||||
--enable-rdbg (only valid for i386 and some PowerPC BSPs)
|
||||
--enable-docs
|
||||
|
||||
In addition, the following standard autoconf options are frequently
|
||||
used when configuring RTEMS installations:
|
||||
|
||||
--prefix=INSTALL_DIRECTORY
|
||||
|
||||
By default, inline routines are used instead of macros where possible.
|
||||
Macros can be selected using the --disable-inlines option. [NOTE:
|
||||
Some APIs may not support macro versions of their inline routines.]
|
||||
|
||||
By default, the RTEMS POSIX 1003.1b interface is built for targets that support
|
||||
it. It can be disabled with the --disable-posix option.
|
||||
|
||||
By default, the RTEMS uITRON interface is built for targets that support
|
||||
it. It can be disabled with the --disable-itron option.
|
||||
|
||||
By default, the RTEMS networking support is built for targets which
|
||||
support it. It can be specifically disabled for those targets
|
||||
with the --disable-networking option.
|
||||
|
||||
By default, the RTEMS remote debugger server support is not built.
|
||||
It can be specifically enabled for the targets that support it.
|
||||
with the --enable-rdbg option. NB : the RTEMS networking support
|
||||
must be enabled to support the remote debugger server.
|
||||
|
||||
By default, the RTEMS support of C++ is disabled. It can be enabled
|
||||
with the --enable-cxx option. If the rtems++ C++ library is installed
|
||||
it will also be build.
|
||||
|
||||
By default, the RTEMS test suites are NOT configured -- only the
|
||||
sample tests are built. --enable-tests will configure
|
||||
the RTEMS test suite. The default speeds up the build
|
||||
and configure process when the tests are not desired.
|
||||
|
||||
By default, RTEMS is built using arguments and build rules which require a
|
||||
gcc supporting the -specs option, ie. a gcc >= 2.8.
|
||||
[The --disable-gcc28 option, which has been present in former releases, has
|
||||
been removed.]
|
||||
|
||||
By default, multiprocessing is is not built. It can be enabled
|
||||
for those BSPs supporting it by the --enable-multiprocessing option.
|
||||
|
||||
By default, all bsps for a target are built. The bare BSP is not built
|
||||
unless directly specified. There are two ways of changing this:
|
||||
|
||||
+ use the --enable-rtemsbsp option which will set the specified
|
||||
bsps as the default bsps, or
|
||||
+ set the RTEMS_BSP variable during make (see below).
|
||||
|
||||
The --enable-rtemsbsp= option configures RTEMS for a specific board
|
||||
within a target architecture. Remember that the target specifies the
|
||||
CPU family while the BSP specifies the precise board you will be using.
|
||||
The following targets are supported:
|
||||
|
||||
(none) will build the host-based version on Linux,
|
||||
Solaris and HPUX.
|
||||
|
||||
a29k-rtems only standalone, uses non-gnu compiler
|
||||
arm-rtems
|
||||
h8300-rtems
|
||||
i386-rtems
|
||||
i960-rtems
|
||||
hppa1.1-rtems
|
||||
m68k-rtems
|
||||
mips-rtems
|
||||
mips64orion-rtems
|
||||
no_cpu-rtems
|
||||
powerpc-rtems
|
||||
sh-rtems
|
||||
sparc-rtems
|
||||
bare see notes
|
||||
|
||||
The cross-compiler is set to $(target)-gcc by default. This can be
|
||||
overridden by:
|
||||
|
||||
+ using the --program-prefix option to configure to specify the
|
||||
string which will prepended to the tool names. Be sure to include
|
||||
a trailing "-". For example, to use a m68k-coff toolset, use the
|
||||
--program-prefix=m68k-coff- option.
|
||||
|
||||
To build, run make in the build directory. To specify which bsps to build,
|
||||
add the RTEMS_BSP="bsp1 bsp2 .." to the make command. Specifying multiple
|
||||
BSPs to build only works from the top level build directory.
|
||||
|
||||
Installation is done under $(prefix)/rtems.
|
||||
|
||||
As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
|
||||
|
||||
(path_to_rtems_src)/configure --target=m68k-rtems
|
||||
|
||||
make RTEMS_BSP="mvme136 dmv152"
|
||||
|
||||
make install RTEMS_BSP="mvme136 dmv152"
|
||||
|
||||
The sample tests are built by 'make all', do a 'make test' to build the full
|
||||
test suite.
|
||||
|
||||
By default, --enable-docs is disabled and documentation is not built.
|
||||
|
||||
2.2 Build with Cygnus one-tree release
|
||||
|
||||
[NOTE: This section does not apply anymore.]
|
||||
|
||||
To build and install RTEMS with the one-tree structure, just copy the rtems
|
||||
directory to the tree. The one-tree configure.in and Makefile.in has to be
|
||||
replaced with the RTEMS-aware versions. The build options are the same as
|
||||
for the standalone build.
|
||||
|
||||
2.3 Target Dependent Notes
|
||||
|
||||
bare:
|
||||
|
||||
1. See the README in the bare bsp source directory. This should
|
||||
contain all info you need.
|
||||
2. The bare bsp source contains a script to show how to build it.
|
||||
3. The configure flags must be used to get the bare bsp to work.
|
||||
The --enable-bare-cpu-model and --enable-bare-cpu-cflags are the
|
||||
only pieces of information. The module is usually a gcc module
|
||||
such as m68302 or mcpu32. The flags are passed directly to gcc.
|
||||
Use "" if more than one option is specified.
|
||||
|
||||
3. To use the installed RTEMS library
|
||||
=====================================
|
||||
|
||||
To use the installed RTEMS bsps to build applications, the application
|
||||
makefile has to include a bsp-specific makefile that will define the
|
||||
RTEMS variables necessary to find include files and libraries. The
|
||||
bsp-specific makefile is installed at
|
||||
|
||||
$(RTEMS_MAKEFILE_PATH)/Makefile.inc
|
||||
|
||||
For the erc32 bsp installed at /usr/local/cross, the environment
|
||||
variable RTEMS_MAKEFILE_PATH would be set as follows to the
|
||||
following:
|
||||
|
||||
/usr/local/cross/sparc-rtems/rtems/erc32/Makefile.inc
|
||||
|
||||
4. Supported target bsps
|
||||
========================
|
||||
|
||||
The following bsps are supported:
|
||||
|
||||
host-based : posix (on Linux, FreeBSD, Cygwin, Solaris, and HPUX)
|
||||
|
||||
arm : arm_bare_bsp armulator edb7312 vegaplus
|
||||
|
||||
c4x : c4xsim
|
||||
|
||||
h8300 : h8sim
|
||||
|
||||
i386 : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
|
||||
NOTE: The "pc386" BSP can be compiled to support a
|
||||
variety of PC configurations including PC-104
|
||||
based solutions.
|
||||
|
||||
i960 : cvme961 i960sim rxgen960
|
||||
|
||||
m68k : dmv152 efi332 efi68k gen68302 gen68340 gen68360
|
||||
gen68360_040 idp mcf5206elite mrm332 mvme136 mvme147
|
||||
mvme147s mvme162 mvme162lx ods68302
|
||||
|
||||
no_cpu : no_bsp (porting example)
|
||||
|
||||
mips : p4600 p4650 (p4000 port with either R4600 or R4650)
|
||||
jmr3904 genmongoosev
|
||||
|
||||
or32: : orp
|
||||
|
||||
powerpc : dmv177 eth_comm gen405 helas403 mcp750 mbx8xx mtx603e
|
||||
mvme230x ppcn_60x psim score603e
|
||||
|
||||
NOTE: The "motorola_powerpc" BSP is a single BSP which
|
||||
can be conditionally compiled to support most Motorola
|
||||
VMEbus, CompactPCI, and MTX boards.)
|
||||
|
||||
sh : gensh1 gensh2 shsim simsh4 gensh4
|
||||
|
||||
sparc : erc32 erc32nfp leon1 leon2
|
||||
|
||||
any : bare
|
||||
|
||||
The following ports are considered deprecated and will be removed in
|
||||
a future release:
|
||||
|
||||
a29k : portsw
|
||||
|
||||
hppa1.1 : simhppa
|
||||
|
||||
mips64orion : (deprecated)
|
||||
p4600 p4650 (p4000 port with either R4600 or R4650)
|
||||
|
||||
NOTE: MIPS support is NOT being dropped. This is a clean up
|
||||
effort and the mips64orion BSPs and CPUs will be
|
||||
supported by the mips port.
|
||||
|
||||
5. Makefile structure
|
||||
=====================
|
||||
|
||||
The makefiles have been re-organized. Most gnu-based bsps now use three
|
||||
main makefiles:
|
||||
+ custom/default.cfg,
|
||||
+ custom/bsp.cfg and
|
||||
+ compilers/gcc-target-default.cfg.
|
||||
|
||||
Default.cfg sets the default values of certain common build options.
|
||||
|
||||
Bsp.cfg set bsp-specific build options and can also override the
|
||||
default settings.
|
||||
|
||||
Gcc-target-default.cfg contains the common gcc definitions.
|
||||
|
||||
6. Adding a bsp
|
||||
===============
|
||||
|
||||
Please refer to the BSP and Device Driver Guide.
|
||||
|
||||
|
||||
7. Tested configurations
|
||||
========================
|
||||
|
||||
All gnu-based bsps have been built on Linux.
|
||||
|
||||
The native (posix) ports have been built and run only on Linux.
|
||||
|
||||
The following configurations have NOT been tested:
|
||||
|
||||
+ Anything on Nextstep, HPUX and Irix.
|
||||
+ The a29k port
|
||||
+ The C4x and OR32 ports (requires specially patched toolchain)
|
||||
|
||||
8. Prerequisites
|
||||
================
|
||||
|
||||
Gawk version 2 or higher.
|
||||
GNU make version 3.72 or higher.
|
||||
Bash.
|
||||
gcc version > 2.8
|
||||
|
||||
NOTE: These prerequisites are probably out of date but autoconf should detect
|
||||
any problems.
|
||||
24
SUPPORT
24
SUPPORT
@@ -2,21 +2,17 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
On-Line Applications Research Corporation (OAR) offers support,
|
||||
customization, and training for RTEMS. Custom RTEMS development services
|
||||
includes porting RTEMS to new processors and the development of custom board
|
||||
support packages and device drivers. In addition, OAR is available
|
||||
to assist in the development of your real-time embedded application.
|
||||
For support and training contact:
|
||||
|
||||
For more information, email Mark Johannes at mark.johannes@OARcorp.com
|
||||
or contact OAR at:
|
||||
|
||||
On-Line Applications Research Corporation
|
||||
4910-L Corporate Drive
|
||||
On-Line Applications Research
|
||||
2227 Drake Avenue SW Suite 10-F
|
||||
Huntsville AL 35805
|
||||
Voice: (205) 722-9985
|
||||
Fax: (205 722-0985
|
||||
(205) 883-0131
|
||||
|
||||
RTEMS maintenance and development is funded solely by RTEMS users.
|
||||
The future of RTEMS depends on its user base.
|
||||
OAR offers support and classes for RTEMS as well as custom
|
||||
development services such as ports to new processors and
|
||||
the development of custom board support packages and device
|
||||
drivers.
|
||||
|
||||
OAR developed RTEMS under contract to the U.S. Army Missile Command.
|
||||
|
||||
|
||||
7
VERSION
7
VERSION
@@ -1,7 +0,0 @@
|
||||
#
|
||||
# This file is automatically generated -- DO NOT EDIT!!!
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
RTEMS Version 4.6.6
|
||||
395
acinclude.m4
395
acinclude.m4
@@ -1,395 +0,0 @@
|
||||
## All directories belong in one of 3 categories.
|
||||
## ${HOST_CONFIGDIRS_LIST} is directories we build using the host tools.
|
||||
## ${TARGET_CONFIGDIRS_LIST} is directories we build using the target tools.
|
||||
## ${BUILD_CONFIGDIRS_LIST} is directories we build using the build tools
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
|
||||
dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
|
||||
dnl An internal macros to have help strings pretty
|
||||
dnl printed with configure --help, without letting autoconf spoil config subdir
|
||||
dnl environments by trying to propagate them
|
||||
dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.
|
||||
|
||||
AC_DEFUN([_RTEMS_ARG_VAR],
|
||||
[
|
||||
m4_expand_once([m4_divert_once([HELP_VAR],
|
||||
[AC_HELP_STRING([$1], [$2], [ ])])],
|
||||
[$0($1)])dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_SUBST_IFNOT],
|
||||
[AS_IF([`echo " [$]$1 " | grep " $2 " > /dev/null`],
|
||||
[],
|
||||
[AC_SUBST([$1],["[$]$1 $2"])])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_TOOLS],
|
||||
[
|
||||
m4_ifdef([_RTEMS_$2_CONFIGDIRS_LIST],
|
||||
[
|
||||
_RTEMS_ARG_VAR([CC_FOR_$2],
|
||||
[c-compiler to be used for $1 subdirs (default: auto-detected)])
|
||||
_RTEMS_ARG_VAR([CFLAGS_FOR_$2],
|
||||
[c-flags to be used for $1 subdirs (default: provided by autoconf)])
|
||||
_RTEMS_ARG_VAR([CXX_FOR_$2],
|
||||
[c++-compiler to be used for $1 subdirs (default: auto-detected)])
|
||||
_RTEMS_ARG_VAR([CXXFLAGS_FOR_$2],
|
||||
[c++-flags to be used for $1 subdirs (default: provided by autoconf)])
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS],
|
||||
[
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
|
||||
if test -z "${build_alias}"; then
|
||||
# build_alias is empty
|
||||
if test -z "${host_alias}"; then
|
||||
# host_alias is empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
else
|
||||
# host_alias is not empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
target_alias="${host_alias}"
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# build_alias is not empty
|
||||
if test -z "${host_alias}"; then
|
||||
# host_alias is empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
else
|
||||
# host_alias is not empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
target_alias="${host_alias}"
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
_RTEMS_BUILD_CONFIG_PREPARE
|
||||
_RTEMS_HOST_CONFIG_PREPARE
|
||||
_RTEMS_TARGET_CONFIG_PREPARE
|
||||
|
||||
build_subdir="."
|
||||
build_SUBDIRS="${build_configdirs}"
|
||||
build_configdirs="${build_configdirs}"
|
||||
|
||||
AS_IF([test $build != $host],
|
||||
[dnl
|
||||
host_subdir="${host_alias-$host}"
|
||||
host_SUBDIRS=`echo "${host_configdirs}" | \
|
||||
sed -e "s%\([[^ ]][[^ ]]*\)%$host_subdir/\1%g"`
|
||||
host_configdirs="${host_configdirs}"
|
||||
],[dnl
|
||||
host_SUBDIRS="${host_configdirs}"
|
||||
host_configdirs="${host_configdirs}"
|
||||
])
|
||||
|
||||
AS_IF([test $build != $target],
|
||||
[dnl
|
||||
target_subdir="${target_alias-$target}"
|
||||
target_SUBDIRS=`echo "${target_configdirs}" | \
|
||||
sed -e "s%\([[^ ]][[^ ]]*\)%$target_subdir/\1%g"`
|
||||
target_configdirs="${target_configdirs}"
|
||||
],[dnl
|
||||
target_SUBDIRS="${target_configdirs}"
|
||||
target_configdirs="${target_configdirs}"
|
||||
])
|
||||
|
||||
AC_SUBST(host_SUBDIRS)
|
||||
AC_SUBST(target_SUBDIRS)
|
||||
AC_SUBST(build_SUBDIRS)
|
||||
])
|
||||
|
||||
AC_CONFIG_COMMANDS_POST([
|
||||
_RTEMS_OUTPUT_SUBDIRS([build],[BUILD])
|
||||
_RTEMS_OUTPUT_SUBDIRS([host],[HOST])
|
||||
_RTEMS_OUTPUT_SUBDIRS([target],[TARGET])
|
||||
])
|
||||
])
|
||||
|
||||
dnl _RTEMS_SRCPATHS(BUILD-DIR-NAME)
|
||||
dnl ----------------------------
|
||||
dnl Inputs:
|
||||
dnl - BUILD-DIR-NAME is `top-build -> build' and `top-src -> src'
|
||||
dnl - `$srcdir' is `top-build -> top-src'
|
||||
dnl
|
||||
dnl Outputs:
|
||||
dnl - `ac_builddir' is `.', for symmetry only.
|
||||
dnl - `ac_top_builddir' is `build -> top_build'.
|
||||
dnl If not empty, has a trailing slash.
|
||||
dnl - `ac_srcdir' is `build -> src'.
|
||||
dnl - `ac_top_srcdir' is `build -> top-src'.
|
||||
dnl
|
||||
dnl and `ac_buildpath' etc., the absolute paths.
|
||||
m4_define([_RTEMS_SRCPATHS],
|
||||
[
|
||||
m4_if([$2],,
|
||||
[dstdir=$1],
|
||||
[case "$2" in
|
||||
"." | "" ) # No subdir was given
|
||||
dstdir=$1;;
|
||||
* ) # A subdir was given
|
||||
dstdir=$2/$1;;
|
||||
esac])
|
||||
ac_builddir=.
|
||||
|
||||
AS_IF([test $dstdir != .],
|
||||
[ # Strip off leading ./
|
||||
ac_builddir_suffix=/`echo $dstdir | sed 's,^\.[[\\/]],,'`
|
||||
ac_srcdir_suffix=/`echo $1 | sed 's,^\.[[\\/]],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_builddir_suffix" | sed 's,/[[^\\/]]*,../,g'`
|
||||
],[
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
])
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[[\\/]]* | ?:[[\\/]]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_srcdir_suffix;
|
||||
ac_top_srcdir=$srcdir;
|
||||
;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_srcdir_suffix;
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir;
|
||||
;;
|
||||
esac
|
||||
dnl Don't blindly perform a `cd $1/$ac_foo && pwd` since $ac_foo can be
|
||||
dnl absolute.
|
||||
|
||||
ac_buildpath=`cd $dstdir && cd $ac_builddir && pwd`
|
||||
ac_top_buildpath=`cd $dstdir && cd $ac_top_builddir && pwd`
|
||||
ac_srcpath=`cd $dstdir && cd $ac_srcdir && pwd`
|
||||
ac_top_srcpath=`cd $dstdir && cd $ac_top_srcdir && pwd`
|
||||
])# _AC_SRCPATHS
|
||||
|
||||
dnl _RTEMS_OUTPUT_SUBDIRS([host|target|build],[HOST|TARGET|BUILD])
|
||||
AC_DEFUN([_RTEMS_OUTPUT_SUBDIRS],[
|
||||
m4_ifdef([_RTEMS_$2_CONFIGDIRS_LIST],
|
||||
[
|
||||
if test "$no_recursion" != yes; then
|
||||
|
||||
if test -n "${$1_SUBDIRS}"; then
|
||||
ac_sub_configure_args="[$]$1args"
|
||||
|
||||
# Always prepend --prefix to ensure using the same prefix
|
||||
# in subdir configurations.
|
||||
ac_sub_configure_args="'--prefix=$prefix' $ac_sub_configure_args"
|
||||
|
||||
# make sure that $1_subdir is not empty
|
||||
test -n "$$1_subdir" || $1_subdir="."
|
||||
|
||||
case "$$1_subdir" in
|
||||
"." ) ;;
|
||||
* )
|
||||
ac_sub_configure_args="$ac_sub_configure_args '--with-target-subdir=$$1_subdir' '--exec-prefix=${prefix}/$$1_subdir'"
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
for ac_dir in $$1_configdirs; do
|
||||
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
test -d $srcdir/$ac_dir || continue
|
||||
|
||||
AC_MSG_NOTICE([configuring in $$1_subdir/$ac_dir])
|
||||
AS_MKDIR_P(["$$1_subdir/$ac_dir"])
|
||||
_RTEMS_SRCPATHS(["$ac_dir"],["$$1_subdir"])
|
||||
|
||||
cd $$1_subdir/$ac_dir
|
||||
|
||||
# Check for guested configure; otherwise get Cygnus style configure.
|
||||
if test -f $ac_srcdir/configure.gnu; then
|
||||
ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'"
|
||||
elif test -f $ac_srcdir/configure; then
|
||||
ac_sub_configure="$SHELL '$ac_srcdir/configure'"
|
||||
elif test -f $ac_srcdir/configure.in; then
|
||||
ac_sub_configure=$ac_configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $ac_dir])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# Make the cache file name correct relative to the subdirectory.
|
||||
case $cache_file in
|
||||
[[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
|
||||
*) # Relative path.
|
||||
ac_sub_cache_file=$ac_top_builddir$cache_file ;;
|
||||
esac
|
||||
|
||||
ac_sub_configure_vars=
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars '--cache-file=$ac_sub_cache_file'"
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars '--srcdir=$ac_srcdir'"
|
||||
|
||||
test -n "[$]CC_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CC=[$]CC_FOR_$2'"
|
||||
test -n "[$]CXX_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CXX=[$]CXX_FOR_$2'"
|
||||
test -n "[$]CFLAGS_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CFLAGS=[$]CFLAGS_FOR_$2'"
|
||||
test -n "[$]CXXFLAGS_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CXXFLAGS=[$]CXXFLAGS_FOR_$2'"
|
||||
|
||||
# The eval makes quoting arguments work.
|
||||
AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args $ac_sub_configure_vars])
|
||||
eval $ac_sub_configure $ac_sub_configure_args $ac_sub_configure_vars ||
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_CONFIGURE_ARGS_PRUNE],
|
||||
[
|
||||
$1_prune()
|
||||
{
|
||||
$1=
|
||||
for ac_arg
|
||||
do
|
||||
if test -n "$ac_prev"; then
|
||||
ac_prev=
|
||||
continue
|
||||
fi
|
||||
case $ac_arg in
|
||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||||
ac_prev=cache_file ;;
|
||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
|
||||
| --c=*)
|
||||
;;
|
||||
--config-cache | -C)
|
||||
;;
|
||||
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
|
||||
-host* | --host* );;
|
||||
-host | --host )
|
||||
ac_prev=host_alias;;
|
||||
-target* | --target* );;
|
||||
-target | --target )
|
||||
ac_prev=target_alias;;
|
||||
-build* | --build* );;
|
||||
-build | --build )
|
||||
ac_prev=build_alias;;
|
||||
|
||||
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
||||
ac_prev=prefix ;;
|
||||
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
||||
;;
|
||||
|
||||
*_alias=* );;
|
||||
|
||||
m4_if([$2],,,[$2])
|
||||
*) $1="$$1 '$ac_arg'" ;;
|
||||
esac
|
||||
done
|
||||
export $1
|
||||
}
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_BUILD_CONFIG_SUBDIRS(build_subdir)
|
||||
# subdirs to be built for the build environment
|
||||
AC_DEFUN([RTEMS_BUILD_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_BUILD_CONFIGDIRS_LIST],[ $1])
|
||||
dnl Always append to build_configdirs
|
||||
AC_SUBST(build_configdirs,"$build_configdirs $1")
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_BUILD_CONFIG_PREPARE],[
|
||||
## # Record the configure arguments in Makefile.
|
||||
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([build],[BUILD])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([buildargs])])
|
||||
eval buildargs_prune $ac_configure_args
|
||||
buildargs="'--host=${build_alias-$build}' '--build=${build_alias-$build}' ${buildargs}"
|
||||
buildargs="${buildargs} '--target=${target_alias-$target}'"
|
||||
],[])
|
||||
AC_SUBST(buildargs)
|
||||
AC_SUBST(build_subdir)
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_HOST_CONFIG_SUBDIRS(host_subdir)
|
||||
# subdirs to be build for the host environment
|
||||
AC_DEFUN([RTEMS_HOST_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_HOST_CONFIGDIRS_LIST],[ $1])dnl
|
||||
|
||||
_RTEMS_SUBST_IFNOT([host_configdirs],[$1])
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_HOST_CONFIG_PREPARE],[
|
||||
m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([host],[HOST])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([hostargs])])
|
||||
eval hostargs_prune $ac_configure_args
|
||||
hostargs="'--host=${host_alias-$host}' '--build=${build_alias-$build}' '--target=${target_alias-$target}' ${hostargs}"
|
||||
],[])
|
||||
AC_SUBST(hostargs)
|
||||
AC_SUBST(host_subdir)
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_TARGET_CONFIG_SUBDIRS(target_subdir)
|
||||
# subdirs to be build for the target environment
|
||||
AC_DEFUN([RTEMS_TARGET_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_TARGET_CONFIGDIRS_LIST],[ $1])
|
||||
|
||||
_RTEMS_SUBST_IFNOT([target_configdirs],[$1])
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_TARGET_CONFIG_PREPARE],[
|
||||
m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([target],[TARGET])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([targetargs])])
|
||||
eval targetargs_prune $ac_configure_args
|
||||
targetargs="'--host=${target_alias-$target}' '--build=${build_alias-$build}' '--target=${target_alias-$target}' ${targetargs}"
|
||||
],[])
|
||||
AC_SUBST(targetargs)
|
||||
AC_SUBST(target_subdir)
|
||||
])
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||
dnl Internal subroutine to RTEMS_BSP_ALIAS
|
||||
AC_DEFUN([_RTEMS_BSP_ALIAS],
|
||||
[# account for "aliased" bsps which share source code
|
||||
case $1 in
|
||||
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
|
||||
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
|
||||
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2100) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mtx603e) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
|
||||
gen68360_040) $2=gen68360 ;; # m68k - 68360 in companion mode
|
||||
p4600) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4600
|
||||
p4650) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4650
|
||||
mbx8*) $2=mbx8xx ;; # MBX821/MBX860 board
|
||||
pc386dx) $2=pc386 ;; # i386 - PC w/o FPU
|
||||
pc486) $2=pc386 ;; # i386 - PC with i486DX
|
||||
pc586) $2=pc386 ;; # i386 - PC with Pentium
|
||||
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
||||
pck6) $2=pc386 ;; # i386 - PC with K6
|
||||
bare*) $2=bare ;; # EXP: bare-aliases
|
||||
sis) $2=erc32 ;; # ERC32 SIS simulator
|
||||
leon2) $2=leon2 ;; # leon with fpu
|
||||
leon3) $2=leon3 ;; # another leon variant
|
||||
simsh7032) $2=shsim ;; # SH7032 simulator
|
||||
simsh7045) $2=shsim ;; # SH7045 simulator
|
||||
*) $2=$1;;
|
||||
esac]
|
||||
)
|
||||
|
||||
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
|
||||
AC_DEFUN([RTEMS_BSP_ALIAS],
|
||||
[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]),
|
||||
m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
|
||||
)
|
||||
@@ -1,18 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl RTEMS_BSP_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
|
||||
dnl
|
||||
dnl Accept --enable-FEATURE=<RTEMS_BSP>:<bsp-value> and
|
||||
dnl --enable-FEATURE=<value> in BSP-configure scripts.
|
||||
dnl
|
||||
dnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the
|
||||
dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
|
||||
dnl and the raw value passed to --enable-FEATURE otherwise.
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_BSP_ARG_ENABLE],
|
||||
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE([$1],[$2],
|
||||
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
|
||||
eval "[enable_]patsubst([$1], -, _)='$enableval'"
|
||||
$3],[$4])
|
||||
])
|
||||
@@ -1,35 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl RTEMS_BSP_CONFIGURE
|
||||
dnl Common macro to be included by all bsp-configure.acs
|
||||
AC_DEFUN([RTEMS_BSP_CONFIGURE],
|
||||
[
|
||||
AC_PREREQ([2.52])
|
||||
AM_MAINTAINER_MODE
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
|
||||
RTEMS_CANONICAL_HOST
|
||||
AM_CONFIG_HEADER([include/bspopts.tmp:include/bspopts.h.in],[
|
||||
echo "/* BSP dependent options file */" >$tmp/config.h
|
||||
echo "/* automatically generated -- DO NOT EDIT!! */" >>$tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
echo "#ifndef __BSP_OPTIONS_h" >>$tmp/config.h
|
||||
echo "#define __BSP_OPTIONS_h" >>$tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
sed -e '/.*PACKAGE.*/d' include/bspopts.tmp >> $tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
echo "#endif" >>$tmp/config.h
|
||||
AS_IF([cmp -s include/bspopts.h $tmp/config.h 2>/dev/null],[
|
||||
AC_MSG_NOTICE([include/bspopts.h is unchanged])
|
||||
rm -f $tmp/config.h],[
|
||||
AC_MSG_NOTICE([creating include/bspopts.h])
|
||||
rm -f include/bspopts.h
|
||||
mv $tmp/config.h include/bspopts.h
|
||||
])
|
||||
])
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_CHECK_MULTIPROCESSING
|
||||
])
|
||||
@@ -1,66 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_BSPOPTS_* - some autoconf voodoo to handle default values and
|
||||
dnl help-strings for per-BSP-environment variables.
|
||||
|
||||
dnl To be used in bsp-configure scripts
|
||||
|
||||
|
||||
dnl Example:
|
||||
dnl
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[bar],[0])
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[baz*],[hello])
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[*],[])
|
||||
dnl RTEMS_BSPOPTS_HELP([foo],[env. variable foo])
|
||||
dnl -> Add "0" as default value of variable "foo" for BSP "bar"
|
||||
dnl -> Add "hello" as default value of variable "foo" for all BSPs starting
|
||||
dnl with "baz" in their name.
|
||||
dnl -> Undefine foo as default clause for all BSP's.
|
||||
dnl
|
||||
dnl All this basically expands to a /bin/shell "case"-statement with
|
||||
dnl accompanying autoconf magic to propagate VAR to bspopts.h.
|
||||
|
||||
|
||||
dnl RTEMS_BSPOPTS_HELP(VAR,HELP-STRING)
|
||||
dnl Set up printing the HELP-STRING for bspopts.h's variable VAR and add
|
||||
dnl appropriate /bin/sh-magic to "configure" to have VAR set up.
|
||||
|
||||
AC_DEFUN([RTEMS_BSPOPTS_HELP],[
|
||||
RTEMS_ARG_VAR([$1],[$2])
|
||||
m4_ifdef([_$1],[
|
||||
case ${RTEMS_BSP} in
|
||||
_$1[]dnl
|
||||
esac],[])
|
||||
if test -n "[$]{$1}"; then[]dnl
|
||||
AC_DEFINE_UNQUOTED([$1],
|
||||
[[$]$1],
|
||||
[$2])dnl
|
||||
fi
|
||||
])
|
||||
|
||||
dnl RTEMS_BSPOPTS_SET(VAR,BSP,DEFAULT)
|
||||
dnl Set up a value DEFAULT to be used as default value for variable VAR for
|
||||
dnl BSP in RTEMS_BSPOPTS_HELP.
|
||||
|
||||
dnl MUST be use in front of exactly _one_ corresponding RTEMS_BSPOPTS_HELP
|
||||
|
||||
AC_DEFUN([RTEMS_BSPOPTS_SET],[dnl
|
||||
m4_append([_$1],
|
||||
[$2 )
|
||||
$1=[$]{$1-$3} ;;
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
|
||||
dnl An internal macros to have RTEMS_BSPOPTS_HELP's help string pretty
|
||||
dnl printed with configure --help.
|
||||
dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.
|
||||
|
||||
AC_DEFUN([RTEMS_ARG_VAR],
|
||||
[
|
||||
m4_expand_once([m4_divert_once([HELP_VAR],
|
||||
[AC_HELP_STRING([$1], [$2], [ ])])],
|
||||
[$0($1)])dnl
|
||||
])
|
||||
@@ -1,25 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICAL_HOST],
|
||||
[dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
RTEMS_HOST=$host_os
|
||||
case "${target}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-*linux*) # unix "simulator" port
|
||||
RTEMS_HOST=Linux
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HOST=FreeBSD
|
||||
;;
|
||||
i[[34567]]86-pc-cygwin*) # Cygwin is just enough unix like :)
|
||||
RTEMS_HOST=Cygwin
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HOST=Solaris
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HOST)
|
||||
])dnl
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl canonicalize target cpu
|
||||
dnl NOTE: Most rtems targets do not fullfil autoconf's
|
||||
dnl target naming conventions "processor-vendor-os"
|
||||
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
|
||||
dnl and we have to fix it for rtems ourselves
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICAL_TARGET_CPU],
|
||||
[
|
||||
AC_CANONICAL_TARGET
|
||||
AC_MSG_CHECKING(rtems target cpu)
|
||||
case "${target}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-*linux*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
i[[34567]]86-pc-cygwin*) # Cygwin is just enough unix like :)
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_CPU=no_cpu
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
tic4x-*rtems*) # gcc changed the name
|
||||
RTEMS_CPU=c4x
|
||||
;;
|
||||
*)
|
||||
RTEMS_CPU=`echo $target | sed 's%^\([[^-]]*\)-\(.*\)$%\1%'`
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_CPU)
|
||||
AC_MSG_RESULT($RTEMS_CPU)
|
||||
])
|
||||
@@ -1,23 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set target tools
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICALIZE_TOOLS],
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
||||
|
||||
dnl FIXME: What shall be done if these tools are not available?
|
||||
RTEMS_CHECK_TOOL(AR,ar,no)
|
||||
RTEMS_CHECK_TOOL(AS,as,no)
|
||||
RTEMS_CHECK_TOOL(LD,ld,no)
|
||||
RTEMS_CHECK_TOOL(NM,nm,no)
|
||||
|
||||
dnl special treatment of ranlib
|
||||
RTEMS_CHECK_TOOL(RANLIB,ranlib,:)
|
||||
|
||||
dnl NOTE: These may not be available if not using gnutools
|
||||
RTEMS_CHECK_TOOL(OBJCOPY,objcopy,no)
|
||||
RTEMS_CHECK_TOOL(SIZE,size,no)
|
||||
RTEMS_CHECK_TOOL(STRIP,strip,:)
|
||||
])
|
||||
@@ -1,39 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
||||
AC_DEFUN([RTEMS_CHECK_BSP_CACHE],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl set RTEMS_BSP
|
||||
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_CPU_MODEL], [rtems_cv_RTEMS_CPU_MODEL],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_CPU_MODEL=$rtems_cv_RTEMS_CPU_MODEL
|
||||
AC_SUBST(RTEMS_CPU_MODEL)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_FAMILY],[rtems_cv_RTEMS_BSP_FAMILY],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_FAMILY=$rtems_cv_RTEMS_BSP_FAMILY
|
||||
AC_SUBST(RTEMS_BSP_FAMILY)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS],[rtems_cv_RTEMS_BSP_CFLAGS],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS=$rtems_cv_RTEMS_BSP_CFLAGS
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_OPTIMIZE_V],[rtems_cv_RTEMS_BSP_CFLAGS_OPTIMIZE_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_OPTIMIZE_V=$rtems_cv_RTEMS_BSP_CFLAGS_OPTIMIZE_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_OPTIMIZE_V)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_DEBUG_V],[rtems_cv_RTEMS_BSP_CFLAGS_DEBUG_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_DEBUG_V=$rtems_cv_RTEMS_BSP_CFLAGS_DEBUG_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_DEBUG_V)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_PROFILE_V],[rtems_cv_RTEMS_BSP_CFLAGS_PROFILE_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_PROFILE_V=$rtems_cv_RTEMS_BSP_CFLAGS_PROFILE_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_PROFILE_V)
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Report all available bsps for a target,
|
||||
dnl check if a bsp-subdirectory is present for all bsps found
|
||||
dnl
|
||||
dnl RTEMS_CHECK_BSPS(bsp_list)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPS],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
||||
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
||||
AC_MSG_CHECKING([for bsps])
|
||||
files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
|
||||
for file in $files; do
|
||||
if test -r $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU/$file/bsp_specs; then
|
||||
case $file in
|
||||
# Now account for BSPs with build variants
|
||||
c4xsim) $1="[$]$1 c4xsim c3xsim";;
|
||||
gen68360) $1="[$]$1 gen68360 gen68360_040";;
|
||||
p4000) $1="[$]$1 p4600 p4650";;
|
||||
mvme162) $1="[$]$1 mvme162 mvme162lx";;
|
||||
mbx8xx) $1="[$]$1 mbx821_001 mbx860_002 mbx860_005b";;
|
||||
motorola_powerpc) $1="[$]$1 mvme2307 mcp750 mtx603e";;
|
||||
pc386) $1="[$]$1 pc386 pc386dx pc486 pc586 pc686 pck6";;
|
||||
erc32) $1="[$]$1 erc32 sis";;
|
||||
leon) $1="[$]$1 leon2 leon3";;
|
||||
sim68000) $1="[$]$1 sim68000 simcpu32";;
|
||||
shsim) $1="[$]$1 simsh7032 simsh7045";;
|
||||
*) $1="[$]$1 $file";;
|
||||
esac;
|
||||
fi
|
||||
done
|
||||
AC_MSG_RESULT([[$]$1 .. done])
|
||||
])dnl
|
||||
@@ -1,18 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl check if RTEMS support a cpu
|
||||
AC_DEFUN([RTEMS_CHECK_CPU],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
||||
|
||||
# Is this a supported CPU?
|
||||
AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
|
||||
# FIXME: Temporary hack
|
||||
if test -d "$srcdir/$RTEMS_TOPdir/cpukit/score/cpu/$RTEMS_CPU"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_ERROR(no)
|
||||
fi
|
||||
])dnl
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_CUSTOM_BSP],[
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||
AS_IF([test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_ERROR([no])])
|
||||
])
|
||||
@@ -1,26 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_CXX],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
|
||||
AC_CACHE_CHECK([whether to build rtems++],
|
||||
rtems_cv_HAS_CPLUSPLUS,
|
||||
[ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
|
||||
if test -n "$CXX"; then
|
||||
rtems_cv_HAS_CPLUSPLUS="yes"
|
||||
else
|
||||
rtems_cv_HAS_CPLUSPLUS="no"
|
||||
fi
|
||||
else
|
||||
rtems_cv_HAS_CPLUSPLUS="no"
|
||||
fi])
|
||||
HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
|
||||
AC_SUBST(HAS_CPLUSPLUS)dnl
|
||||
|
||||
if test "$HAS_CPLUSPLUS" = "yes"; then
|
||||
CPLUS_LD_LIBS='$(PROJECT_RELEASE)/lib/librtems++$(LIB_VARIANT).a'
|
||||
fi
|
||||
AC_SUBST(CPLUS_LD_LIBS)
|
||||
])
|
||||
@@ -1,37 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_ITRON_API],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether CPU supports libitron],
|
||||
rtems_cv_HAS_ITRON_API,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_ITRON_API="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_ITRON_API}" = "yes"; then
|
||||
rtems_cv_HAS_ITRON_API="yes";
|
||||
else
|
||||
rtems_cv_HAS_ITRON_API="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_ITRON_API" = "yes"; then
|
||||
HAS_ITRON_API="yes";
|
||||
else
|
||||
HAS_ITRON_API="no";
|
||||
fi
|
||||
AC_SUBST(HAS_ITRON_API)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_DEFINE_ITRON_API],
|
||||
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
|
||||
if test x"${HAS_ITRON_API}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(RTEMS_ITRON_API,1,[if itron api is supported])
|
||||
fi
|
||||
])
|
||||
@@ -1,42 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_MULTIPROCESSING],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
|
||||
AC_REQUIRE([RTEMS_BSP_ALIAS])dnl
|
||||
|
||||
AC_CACHE_CHECK([if wanting multiprocessing],
|
||||
[rtems_cv_want_multiprocessing],
|
||||
[
|
||||
AS_IF([test x"$multilib" = x"no"],
|
||||
[# no cpukit
|
||||
rtems_cv_want_multiprocessing="$enable_multiprocessing"
|
||||
],[
|
||||
#HACK: Should check for RTEMS_MULTIPROCESSING in cpuopts.h, instead
|
||||
rtems_cv_want_multiprocessing="$enable_multiprocessing"
|
||||
])
|
||||
])
|
||||
|
||||
AS_IF([test "$rtems_cv_want_multiprocessing" = "yes"],
|
||||
[
|
||||
AC_CACHE_CHECK([whether BSP supports multiprocessing],
|
||||
[rtems_cv_HAS_MP],[
|
||||
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
|
||||
rtems_cv_HAS_MP="yes" ;
|
||||
else
|
||||
rtems_cv_HAS_MP="no";
|
||||
fi
|
||||
])
|
||||
if test $rtems_cv_HAS_MP = "no"; then
|
||||
AC_MSG_ERROR([multiprocessing requested but not supported])
|
||||
fi
|
||||
],[rtems_cv_HAS_MP="no";])
|
||||
|
||||
AC_SUBST(HAS_MP,[$rtems_cv_HAS_MP])
|
||||
])
|
||||
@@ -1,29 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_NETWORKING],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP supports networking],
|
||||
rtems_cv_HAS_NETWORKING,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_NETWORKING="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_NETWORKING}" = "yes"; then
|
||||
rtems_cv_HAS_NETWORKING="yes";
|
||||
else
|
||||
rtems_cv_HAS_NETWORKING="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_NETWORKING" = "yes"; then
|
||||
HAS_NETWORKING="yes";
|
||||
else
|
||||
HAS_NETWORKING="no";
|
||||
fi
|
||||
AC_SUBST(HAS_NETWORKING)dnl
|
||||
])
|
||||
@@ -1,30 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_NEWLIB],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_CACHE_CHECK([for RTEMS newlib],
|
||||
rtems_cv_use_newlib,
|
||||
[
|
||||
dnl some versions of newlib provide not_required_by_rtems
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[extern void not_required_by_rtems() ;]],
|
||||
[[not_required_by_rtems()]])],
|
||||
[rtems_cv_use_newlib="yes"],[])
|
||||
|
||||
dnl some versions of newlib provide rtems_provides_crt0()
|
||||
AS_IF([test -z "$rtems_cv_use_newlib"],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[extern void rtems_provides_crt0() ;]],
|
||||
[[rtems_provides_crt0()]])],
|
||||
[rtems_cv_use_newlib="yes"],[rtems_cv_use_newlib="no"])
|
||||
])
|
||||
])
|
||||
RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
|
||||
AC_SUBST(RTEMS_USE_NEWLIB)
|
||||
|
||||
AS_IF([test x"${RTEMS_USE_NEWLIB}" = x"yes"],
|
||||
[ AC_DEFINE_UNQUOTED(RTEMS_NEWLIB,1,[if using newlib])]
|
||||
)
|
||||
])
|
||||
@@ -1,36 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_POSIX_API],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether CPU supports libposix],
|
||||
rtems_cv_HAS_POSIX_API,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_POSIX_API="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
|
||||
rtems_cv_HAS_POSIX_API="yes";
|
||||
else
|
||||
rtems_cv_HAS_POSIX_API="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
|
||||
HAS_POSIX_API="yes";
|
||||
else
|
||||
HAS_POSIX_API="no";
|
||||
fi
|
||||
AC_SUBST(HAS_POSIX_API)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_DEFINE_POSIX_API],
|
||||
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
|
||||
AS_IF(
|
||||
[test x"${HAS_POSIX_API}" = x"yes"],
|
||||
[AC_DEFINE_UNQUOTED(RTEMS_POSIX_API,1,[if posix api is supported])])
|
||||
])
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_RDBG],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
|
||||
AC_CACHE_CHECK([whether BSP supports librdbg],
|
||||
rtems_cv_HAS_RDBG,
|
||||
[
|
||||
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/${$1}";
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes" ;
|
||||
elif test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/any";
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes" ;
|
||||
elif test "${RTEMS_CPU}" = "powerpc";
|
||||
then
|
||||
A=`grep -l RTEMS_PPC_EXCEPTION_PROCESSING_MODEL $srcdir/${RTEMS_TOPdir}/make/custom/* 2>/dev/null`;
|
||||
C=""
|
||||
for i in ${A} ;
|
||||
do
|
||||
B=`basename ${i} .cfg`;
|
||||
C="${C} ${B}";
|
||||
done
|
||||
rtems_cv_HAS_RDBG="no";
|
||||
for j in ${C} ;
|
||||
do
|
||||
if test "${$1}" = "${j}" ;
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes";
|
||||
fi
|
||||
done
|
||||
else
|
||||
rtems_cv_HAS_RDBG="no";
|
||||
fi
|
||||
])
|
||||
HAS_RDBG="$rtems_cv_HAS_RDBG"
|
||||
AC_SUBST(HAS_RDBG)
|
||||
])
|
||||
@@ -1,11 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
|
||||
## the un-prefixed version of PROG-TO-CHECK-FOR.
|
||||
dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
|
||||
AC_DEFUN([RTEMS_CHECK_TOOL],
|
||||
[
|
||||
AS_IF([test "x$build_alias" != "x$host_alias"],
|
||||
[rtems_tool_prefix=${ac_tool_prefix}])
|
||||
AC_CHECK_PROG($1, ${rtems_tool_prefix}$2, ${rtems_tool_prefix}$2, $3, $4)
|
||||
])
|
||||
@@ -1,34 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl
|
||||
dnl Misc utility macros for subdir handling to work around missing abilities
|
||||
dnl in autoconf, automake and structural issues with RTEMS
|
||||
dnl
|
||||
dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus'
|
||||
dnl configure.in.
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl _AC_DOTS(PATH)
|
||||
dnl
|
||||
AC_DEFUN([_AC_DOTS],[
|
||||
# A "../" for each directory in $1.
|
||||
ac_dots=`echo $1 | \
|
||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_ADJUST_SRCDIR],[
|
||||
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
|
||||
|
||||
case "$srcdir" in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
$1=$srcdir ;;
|
||||
[[\\/]]* | ?:[[\\/]]*) # Absolute path.
|
||||
$1=$srcdir/$2 ;;
|
||||
*) # Relative path.
|
||||
$1=$ac_dots$srcdir/$2 ;;
|
||||
esac
|
||||
])
|
||||
@@ -1,21 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_BARE],
|
||||
[
|
||||
AC_ARG_ENABLE(bare-cpu-cflags,
|
||||
[AC_HELP_STRING([--enable-bare-cpu-cflags],
|
||||
[specify a particular cpu cflag (bare bsp specific)])],
|
||||
[case "${enableval}" in
|
||||
no) BARE_CPU_CFLAGS="" ;;
|
||||
*) BARE_CPU_CFLAGS="${enableval}" ;;
|
||||
esac],
|
||||
[BARE_CPU_CFLAGS=""])
|
||||
|
||||
AC_ARG_ENABLE(bare-cpu-model,
|
||||
[AC_HELP_STRING([--enable-bare-cpu-model],
|
||||
[specify a particular cpu model (bare bsp specific)])],
|
||||
[case "${enableval}" in
|
||||
no) BARE_CPU_MODEL="" ;;
|
||||
*) BARE_CPU_MODEL="${enableval}" ;;
|
||||
esac],
|
||||
[BARE_CPU_MODEL=""])
|
||||
])
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_CXX],
|
||||
[
|
||||
AC_ARG_ENABLE(cxx,
|
||||
[AC_HELP_STRING([--enable-cxx],
|
||||
[enable C++ support and build the rtems++ library])],
|
||||
[case "${enable_cxx}" in
|
||||
yes) RTEMS_HAS_CPLUSPLUS=yes ;;
|
||||
no) RTEMS_HAS_CPLUSPLUS=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;;
|
||||
esac], [RTEMS_HAS_CPLUSPLUS=no])
|
||||
])
|
||||
@@ -1,17 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_INLINES],
|
||||
[AC_ARG_ENABLE(rtems-inlines,
|
||||
[AC_HELP_STRING([--enable-rtems-inlines],
|
||||
[enable RTEMS inline functions (default:enabled, disable to use macros)])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_USE_MACROS=no ;;
|
||||
no) RTEMS_USE_MACROS=yes ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for disable-rtems-inlines option) ;;
|
||||
esac],[RTEMS_USE_MACROS=no])
|
||||
AC_SUBST(RTEMS_USE_MACROS)dnl
|
||||
|
||||
AS_IF([test x"${RTEMS_USE_MACROS}" = x"yes"],
|
||||
[AC_DEFINE_UNQUOTED(USE_MACROS,1,[if using macros])],
|
||||
[AC_DEFINE_UNQUOTED(USE_INLINES,1,[if using inlines])])
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_ITRON],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(itron,
|
||||
[AC_HELP_STRING([--enable-itron],[enable itron interface])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_ITRON_API=yes ;;
|
||||
no) RTEMS_HAS_ITRON_API=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-itron option) ;;
|
||||
esac],[RTEMS_HAS_ITRON_API=yes])
|
||||
|
||||
case "${host}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-pc-linux*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HAS_ITRON_API)
|
||||
])
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],
|
||||
[
|
||||
AC_ARG_ENABLE(multiprocessing,
|
||||
[AC_HELP_STRING([--enable-multiprocessing],
|
||||
[enable multiprocessing interface])],
|
||||
[case "${enable_multiprocessing}" in
|
||||
yes) ;;
|
||||
no) ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
|
||||
esac],[enable_multiprocessing=no])
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_NETWORKING],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||
|
||||
AC_ARG_ENABLE(networking,
|
||||
[AC_HELP_STRING([--enable-networking],[enable TCP/IP stack])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_NETWORKING=yes ;;
|
||||
no) RTEMS_HAS_NETWORKING=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
|
||||
esac],[RTEMS_HAS_NETWORKING=yes])
|
||||
AC_SUBST(RTEMS_HAS_NETWORKING)dnl
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_POSIX],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(posix,
|
||||
[AC_HELP_STRING([--enable-posix],[enable posix interface])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_POSIX_API=yes ;;
|
||||
no) RTEMS_HAS_POSIX_API=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
|
||||
esac],[RTEMS_HAS_POSIX_API=yes])
|
||||
|
||||
case "${host}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-pc-linux*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HAS_POSIX_API)
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RDBG],
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||
|
||||
AC_ARG_ENABLE(rdbg,
|
||||
[AC_HELP_STRING([--enable-rdbg],[enable remote debugger])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_RDBG=yes ;;
|
||||
no) RTEMS_HAS_RDBG=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-rdbg option) ;;
|
||||
esac],[RTEMS_HAS_RDBG=no])
|
||||
AC_SUBST(RTEMS_HAS_RDBG)dnl
|
||||
])
|
||||
@@ -1,16 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Override the set of BSPs to be built.
|
||||
dnl used by the toplevel configure script
|
||||
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE(rtemsbsp,
|
||||
[AC_HELP_STRING([--enable-rtemsbsp="bsp1 bsp2 .."],
|
||||
[BSPs to include in build])],
|
||||
[case "${enableval}" in
|
||||
yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp="bsp1 bsp2"]);;
|
||||
*) $1=$enableval;;
|
||||
esac],[$1=""])
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_TESTS],
|
||||
[
|
||||
# If the tests are enabled, then find all the test suite Makefiles
|
||||
AC_MSG_CHECKING([if the test suites are enabled? ])
|
||||
AC_ARG_ENABLE(tests,
|
||||
[AC_HELP_STRING([--enable-tests],[enable tests (default:disabled)])],
|
||||
[case "${enableval}" in
|
||||
yes) tests_enabled=yes ;;
|
||||
no) tests_enabled=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for tests option) ;;
|
||||
esac], [tests_enabled=no])
|
||||
AC_MSG_RESULT([$tests_enabled])
|
||||
])
|
||||
@@ -1,57 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Pass a single BSP via an environment variable
|
||||
dnl used by per BSP configure scripts
|
||||
AC_DEFUN([RTEMS_ENV_RTEMSBSP],
|
||||
[dnl
|
||||
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
||||
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
|
||||
|
||||
AC_ARG_VAR([CPU_CFLAGS],[CFLAGS specifying CPU-dependent features])
|
||||
AC_ARG_VAR([CFLAGS_OPTIMIZE_V],[CFLAGS for building the OPTIMIZE variant])
|
||||
AC_ARG_VAR([CFLAGS_DEBUG_V],[CFLAGS for building the DEBUG variant])
|
||||
AC_ARG_VAR([CFLAGS_PROFILE_V],[CFLAGS for building the PROFILE variant])
|
||||
AC_ARG_VAR([RTEMS_BSP_FAMILY],[RTEMS's BSP directory])
|
||||
AC_ARG_VAR([RTEMS_CPU_MODEL],[RTEMS's cpu model])
|
||||
|
||||
AC_ARG_VAR([RTEMS_BSP],[RTEMS_BSP to build])
|
||||
AC_MSG_CHECKING([for RTEMS_BSP])
|
||||
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
|
||||
[dnl
|
||||
test -n "${RTEMS_BSP}" && rtems_cv_RTEMS_BSP="$RTEMS_BSP";
|
||||
])dnl
|
||||
if test -z "$rtems_cv_RTEMS_BSP"; then
|
||||
AC_MSG_ERROR([Missing RTEMS_BSP])
|
||||
fi
|
||||
RTEMS_BSP="$rtems_cv_RTEMS_BSP"
|
||||
AC_MSG_RESULT(${RTEMS_BSP})
|
||||
AC_SUBST(RTEMS_BSP)
|
||||
|
||||
RTEMS_BSP_SPECS="-specs bsp_specs -qrtems"
|
||||
AC_SUBST(RTEMS_BSP_SPECS)
|
||||
|
||||
GCC_SPECS="-B\$(PROJECT_ROOT)/lib/ -B\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
|
||||
AC_SUBST(GCC_SPECS)
|
||||
|
||||
PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
|
||||
AC_SUBST(PROJECT_INCLUDE)
|
||||
|
||||
PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
|
||||
AC_SUBST(PROJECT_RELEASE)
|
||||
|
||||
RTEMS_ROOT="\$(PROJECT_ROOT)/c/$RTEMS_BSP"
|
||||
AC_SUBST(RTEMS_ROOT)
|
||||
|
||||
RTEMS_ENABLE_BARE
|
||||
AC_SUBST(BARE_CPU_MODEL)
|
||||
AC_SUBST(BARE_CPU_CFLAGS)
|
||||
|
||||
AM_CONDITIONAL([MULTILIB],[false])
|
||||
|
||||
includedir="\${exec_prefix}/${RTEMS_BSP}/lib/include"
|
||||
libdir="\${exec_prefix}/${RTEMS_BSP}/lib"
|
||||
|
||||
bsplibdir="\${exec_prefix}/${RTEMS_BSP}/lib"
|
||||
AC_SUBST(bsplibdir)
|
||||
])
|
||||
@@ -1,25 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the gcc accepts -isystem
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_ISYSTEM],
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
|
||||
[
|
||||
rtems_cv_gcc_isystem=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
cat << EOF > conftest.h
|
||||
int conftest123();
|
||||
EOF
|
||||
cat << EOF > conftest.c
|
||||
#include <conftest.h>
|
||||
int conftest123() {}
|
||||
EOF
|
||||
if test -z "`${CC} -isystem./ -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_isystem=yes
|
||||
fi
|
||||
fi
|
||||
rm -f conftest*
|
||||
])])
|
||||
@@ -1,21 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -pipe
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_PIPE],
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
|
||||
[
|
||||
rtems_cv_gcc_pipe=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC} --pipe -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_pipe=yes
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
])
|
||||
])
|
||||
@@ -1,20 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -specs
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_SPECS],
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
|
||||
[
|
||||
rtems_cv_gcc_specs=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
touch confspec
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_specs=yes
|
||||
fi
|
||||
fi
|
||||
rm -f confspec conftest*
|
||||
])])
|
||||
@@ -1,31 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl check for i386 gas supporting 16 bit mode
|
||||
dnl - binutils 2.9.1.0.7 and higher
|
||||
|
||||
AC_DEFUN([RTEMS_I386_GAS_CODE16],
|
||||
[ if test "${host_cpu}" = "i386"; then
|
||||
AC_CACHE_CHECK([for 16 bit mode assembler support],
|
||||
rtems_cv_prog_gas_code16,
|
||||
[cat > conftest.s << EOF
|
||||
.code16
|
||||
data32
|
||||
addr32
|
||||
lgdt 0
|
||||
EOF
|
||||
if AC_TRY_COMMAND($AS -o conftest.o conftest.s); then
|
||||
rtems_cv_prog_gas_code16=yes
|
||||
else
|
||||
rtems_cv_prog_gas_code16=no
|
||||
fi])
|
||||
RTEMS_GAS_CODE16="$rtems_cv_prog_gas_code16"
|
||||
fi
|
||||
AC_SUBST(RTEMS_GAS_CODE16)
|
||||
if test x"${RTEMS_GAS_CODE16}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(NEW_GAS,1,[if using 16 bit mode assembler support])
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
dnl This provides configure definitions used for multilib support
|
||||
|
||||
dnl parts of these macros are derived from newlib-1.8.2's multilib support
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTILIB],
|
||||
[
|
||||
AC_ARG_ENABLE(multilib,
|
||||
AC_HELP_STRING([--enable-multilib],
|
||||
[build many library versions (default=no)]),
|
||||
[case "${enableval}" in
|
||||
yes) multilib=yes ;;
|
||||
no) multilib=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
|
||||
esac], [multilib=no])dnl
|
||||
|
||||
AM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes")
|
||||
])
|
||||
@@ -1,14 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_KSH],
|
||||
[
|
||||
dnl NOTE: prefer bash over ksh over sh
|
||||
AC_PATH_PROGS(KSH,bash ksh sh)
|
||||
if test -z "$KSH"; then
|
||||
dnl NOTE: This cannot happen -- /bin/sh must always exist
|
||||
AC_MSG_ERROR(
|
||||
[***]
|
||||
[ Cannot determine a usable shell bash/ksh/sh]
|
||||
[ Please contact your system administrator] );
|
||||
fi
|
||||
])
|
||||
@@ -1,12 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_PERL],
|
||||
[
|
||||
AC_PATH_PROG(PERL,perl)
|
||||
if test -z "$PERL" ; then
|
||||
AC_MSG_WARN(
|
||||
[***]
|
||||
[ perl was not found]
|
||||
[ Note: Some tools will not be built.])
|
||||
fi
|
||||
])
|
||||
@@ -1,87 +0,0 @@
|
||||
# $Id$
|
||||
#
|
||||
# Some hacks for handling powerpc-exception subdirectories
|
||||
#
|
||||
# Note: Consider this file a temporary band-aid until a better, more general
|
||||
# subdirectory handling solution is introduced to RTEMS.
|
||||
|
||||
AC_DEFUN([RTEMS_PPC_EXCEPTIONS],
|
||||
[
|
||||
exceptions="$1_exception_processing"
|
||||
AC_SUBST(exceptions)
|
||||
|
||||
AC_CONFIG_COMMANDS_POST(
|
||||
[
|
||||
exceptions_subdirs="$1_exception_processing"
|
||||
updir=/../support
|
||||
|
||||
if test "$no_recursion" != yes; then
|
||||
|
||||
RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args])
|
||||
|
||||
for ac_subdir in : $exceptions_subdirs; do test "x$ac_subdir" = x: && continue
|
||||
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
test -d $srcdir${updir}/$ac_subdir || continue
|
||||
|
||||
AC_MSG_NOTICE([configuring in $ac_subdir])
|
||||
case $srcdir in
|
||||
.) ;;
|
||||
*) AS_MKDIR_P(["./$ac_subdir"])
|
||||
if test -d ./$ac_subdir; then :;
|
||||
else
|
||||
AC_MSG_ERROR([cannot create `pwd`/$ac_subdir])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
cd $ac_subdir
|
||||
|
||||
# A "../" for each directory in /$ac_subdir.
|
||||
ac_dots=`echo $ac_subdir |
|
||||
sed 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g'`
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_sub_srcdir=$srcdir${updir} ;;
|
||||
[[\\/]]* | ?:[[\\/]]* ) # Absolute path.
|
||||
ac_sub_srcdir=$srcdir${updir}/$ac_subdir ;;
|
||||
*) # Relative path.
|
||||
ac_sub_srcdir=$ac_dots$srcdir${updir}/$ac_subdir ;;
|
||||
esac
|
||||
|
||||
# Check for guested configure; otherwise get Cygnus style configure.
|
||||
if test -f $ac_sub_srcdir/configure.gnu; then
|
||||
ac_sub_configure="$SHELL '$ac_sub_srcdir/configure.gnu'"
|
||||
elif test -f $ac_sub_srcdir/configure; then
|
||||
ac_sub_configure="$SHELL '$ac_sub_srcdir/configure'"
|
||||
elif test -f $ac_sub_srcdir/configure.in; then
|
||||
ac_sub_configure=$ac_configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $ac_subdir])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# Make the cache file name correct relative to the subdirectory.
|
||||
case $cache_file in
|
||||
[[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
|
||||
*) # Relative path.
|
||||
ac_sub_cache_file=$ac_dots$cache_file ;;
|
||||
esac
|
||||
|
||||
AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir])
|
||||
# The eval makes quoting arguments work.
|
||||
eval $ac_sub_configure $ac_sub_configure_args \
|
||||
--cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir ||
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
done
|
||||
fi
|
||||
])
|
||||
])
|
||||
@@ -1,48 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target gcc
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CC],
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CC])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
|
||||
_RTEMS_FLAGS([CFLAGS],
|
||||
["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
|
||||
|
||||
RTEMS_CHECK_TOOL(CC,gcc)
|
||||
test -z "$CC" && \
|
||||
AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
|
||||
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
|
||||
[
|
||||
dnl check target cc
|
||||
RTEMS_PROG_CC
|
||||
dnl check if the compiler supports -isystem
|
||||
RTEMS_GCC_ISYSTEM
|
||||
dnl check if the target compiler may use --pipe
|
||||
RTEMS_GCC_PIPE
|
||||
test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe"
|
||||
|
||||
dnl check if the compiler supports --specs
|
||||
RTEMS_GCC_SPECS
|
||||
|
||||
if test "$GCC" = yes; then
|
||||
RTEMS_CFLAGS="$RTEMS_CFLAGS -Wall"
|
||||
m4_if([$1],,[],[RTEMS_CFLAGS="$RTEMS_CFLAGS $1"])
|
||||
fi
|
||||
|
||||
AS_IF([test x"$rtems_cv_gcc_isystem" = x"yes"],[
|
||||
RTEMS_CPPFLAGS="-isystem \$(PROJECT_INCLUDE)"],[
|
||||
RTEMS_CPPFLAGS="-I\$(PROJECT_INCLUDE)"
|
||||
])
|
||||
AC_SUBST(RTEMS_CPPFLAGS)
|
||||
])
|
||||
@@ -1,8 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CCAS],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_SUBST(CCAS,["$CC \$(GCCSPECS)"])
|
||||
AC_SUBST(CCASFLAGS,["-DASM \$(CFLAGS) \$(INCLUDES)"])
|
||||
])
|
||||
@@ -1,35 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target g++
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CXX_FOR_TARGET],
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_CXX])
|
||||
RTEMS_CHECK_TOOL(CXX,g++)
|
||||
if test "$RTEMS_HAS_CPLUSPLUS" = "yes";
|
||||
then
|
||||
_RTEMS_FLAGS([CXXFLAGS],
|
||||
["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
|
||||
|
||||
dnl Only accept g++
|
||||
dnl NOTE: This might be too restrictive
|
||||
test -z "$CXX" \
|
||||
&& AC_MSG_ERROR([no acceptable c++ found in \$PATH])
|
||||
AC_PROG_CXX
|
||||
|
||||
if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then
|
||||
AC_MSG_ERROR([***]
|
||||
[Inconsistency in compiler configuration:]
|
||||
[Target C compiler and target C++ compiler]
|
||||
[must both either be cross compilers or native compilers]
|
||||
[Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
|
||||
fi
|
||||
|
||||
else
|
||||
## Work-around to a bug in automake
|
||||
AM_CONDITIONAL([am__fastdepCXX],[false])
|
||||
fi
|
||||
])
|
||||
@@ -1,26 +0,0 @@
|
||||
## $Id$
|
||||
##
|
||||
## WARNING: All the stuff below is pretty immature.
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_GNAT],
|
||||
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])
|
||||
|
||||
AC_ARG_VAR([GNATMAKE],[GNATMAKE compiler command])
|
||||
AC_ARG_VAR([ADAFLAGS],[ADA compiler flags])
|
||||
|
||||
RTEMS_CHECK_TOOL([GNATMAKE],[gnatmake],[])
|
||||
AS_IF([test -z "$GNATMAKE"],[AC_MSG_ERROR([No GNATMAKE found])])
|
||||
|
||||
AC_MSG_CHECKING([whether $GNATMAKE works])
|
||||
rm -f conftest.*
|
||||
cat >conftest.adb <<EOF
|
||||
procedure conftest is begin null; end conftest;
|
||||
EOF
|
||||
|
||||
AS_IF([$GNATMAKE -c conftest.adb 1>>config.log 2>&1],
|
||||
[HAVE_GNAT=yes],
|
||||
[HAVE_GNAT=no])
|
||||
AC_MSG_RESULT([$HAVE_GNAT])
|
||||
rm -f conftest.*
|
||||
])
|
||||
@@ -1,22 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl PROJECT_TOPdir .. relative path to the top of the build-tree
|
||||
dnl PROJECT_ROOT .. relative path to the top of the temporary
|
||||
dnl installation directory inside the build-tree
|
||||
dnl RTEMS_TOPdir .. relative path of a subpackage's configure.in to the
|
||||
dnl toplevel configure.in of the source-tree
|
||||
dnl RTEMS_ROOT .. path to the top of a bsp's build directory
|
||||
dnl [Applied by custom/*.cfg, depredicated otherwise]
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROJECT_ROOT],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
|
||||
AC_SUBST(PACKHEX)
|
||||
])
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl RTEMS_CONFIGURE_ARGS_QUOTE(dnl RETURN_VAR, [ADDITIONAL_CASES], [VAR_TO_PROCESS]])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_CONFIGURE_ARGS_QUOTE],
|
||||
[
|
||||
$1_prune()
|
||||
{
|
||||
# Remove --cache-file and --srcdir arguments so they do not pile up.
|
||||
$1=
|
||||
ac_prev=
|
||||
for ac_arg
|
||||
do
|
||||
if test -n "$ac_prev"; then
|
||||
ac_prev=
|
||||
continue
|
||||
fi
|
||||
case $ac_arg in
|
||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||||
ac_prev=cache_file ;;
|
||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
|
||||
| --c=*)
|
||||
;;
|
||||
--config-cache | -C)
|
||||
;;
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
m4_if([$2],,,[$2])
|
||||
*) $1="$$1 '$ac_arg'" ;;
|
||||
esac
|
||||
done
|
||||
export $1
|
||||
}
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CONFIGURE_ARGS_QUOTE],[
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_QUOTE([$1],[$2])])
|
||||
eval $1_prune m4_if([$3],,[$ac_configure_args],[[$]$3])
|
||||
])
|
||||
@@ -1,20 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_RPMPREFIX],[
|
||||
AC_ARG_ENABLE([rpmprefix],
|
||||
[ --enable-rpmprefix=<rpmprefix> prefix rpms],
|
||||
[case $enable_rpmprefix in
|
||||
yes ) rpmprefix="rtems-"]RTEMS_API["-";;
|
||||
no ) rpmprefix="%{nil}";;
|
||||
* ) AS_IF([test -z "$enable_rpmprefix"],
|
||||
[rpmprefix="%{nil}"],
|
||||
[rpmprefix="$enable_rpmprefix"]);;
|
||||
esac],
|
||||
[rpmprefix="rtems-"]RTEMS_API["-"])
|
||||
|
||||
AC_ARG_ENABLE([osversions],
|
||||
[ --enable-osversions whether to use version numbers in os-tripples],
|
||||
[case $enable_osversions in
|
||||
yes ) osversion=RTEMS_API;;
|
||||
* ) osversion=;;
|
||||
esac],
|
||||
[osversion=])
|
||||
])
|
||||
@@ -1,31 +0,0 @@
|
||||
AC_DEFUN([_RTEMS_CPU_SUBDIR],
|
||||
[
|
||||
$1 ) if test -d ${srcdir}/ifelse([$2],,[$1],[$2/$1]) ; then
|
||||
AC_CONFIG_SUBDIRS(ifelse([$2],,[$1],[$2/$1]))
|
||||
fi
|
||||
])
|
||||
|
||||
## RTEMS_CPU_SUBDIRS([PREFIX])
|
||||
AC_DEFUN([RTEMS_CPU_SUBDIRS],
|
||||
[
|
||||
## EDIT: If adding a new cpu to RTEMS, add it to the case block below.
|
||||
case $RTEMS_CPU in
|
||||
_RTEMS_CPU_SUBDIR([a29k],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([arm],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([c4x],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([h8300],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([hppa1.1],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([i386],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([i960],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([m68k],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([mips],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([mips64orion],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([no_cpu],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([or32],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([powerpc],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([sh],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([sparc],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([unix],[$1]);;
|
||||
*) AC_MSG_ERROR([Invalid RTEMS_CPU <[$]{RTEMS_CPU}>])
|
||||
esac
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMS_DEBUG],
|
||||
[
|
||||
AC_ARG_ENABLE(rtems-debug,
|
||||
AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
|
||||
[case "${enable_rtems_debug}" in
|
||||
yes) enable_rtems_debug=yes ;;
|
||||
no) enable_rtems_debug=no ;;
|
||||
*) AC_MSG_ERROR([bad value ${enable_rtems_debug} for RTEMS_DEBUG]) ;;
|
||||
esac],[enable_rtems_debug=no])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_DEBUG],
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
|
||||
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
|
||||
[AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])])
|
||||
])
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
## $Id$
|
||||
##
|
||||
## Some hacks to set up RTEMS_*FLAGS
|
||||
## Internal macro, not supposed to be explictly used in configure.ac's
|
||||
|
||||
AC_DEFUN([_RTEMS_FLAGS],[
|
||||
AS_IF([test -n "[$]{$1}"],
|
||||
[RTEMS_$1=[$]{$1}],
|
||||
[RTEMS_$1=$2])
|
||||
AC_SUBST([RTEMS_$1])
|
||||
])
|
||||
@@ -1,18 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE],
|
||||
[AC_ARG_ENABLE(test-no-pause,
|
||||
AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_TEST_NO_PAUSE=yes ;;
|
||||
no) RTEMS_TEST_NO_PAUSE=no ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for RTEMS_TEST_NO_PAUSE]) ;;
|
||||
esac],[RTEMS_TEST_NO_PAUSE=yes])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_TEST_NO_PAUSE],
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
|
||||
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(RTEMS_TEST_NO_PAUSE,1,[if RTEMS_TEST_NO_PAUSE is enabled])
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
m4_define([RTEMS_API],[4.6])
|
||||
|
||||
dnl
|
||||
dnl RTEMS_TOP($1)
|
||||
dnl
|
||||
dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_TOP],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_VERSIONING])
|
||||
AC_CONFIG_AUX_DIR([$1])
|
||||
AC_CHECK_PROGS(MAKE, gmake make)
|
||||
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
|
||||
|
||||
AC_PREFIX_DEFAULT([/opt/rtems-][RTEMS_API])
|
||||
|
||||
## HACK to allow gnu-make conditionals in automake-Makefiles.
|
||||
ENDIF=endif
|
||||
AC_SUBST(ENDIF)
|
||||
|
||||
RTEMS_TOPdir="$1";
|
||||
AC_SUBST(RTEMS_TOPdir)
|
||||
|
||||
## with_target_subdirs is handled implicitly by autoconf
|
||||
test -n "$with_target_subdir" || with_target_subdir="."
|
||||
|
||||
if test "$with_target_subdir" = "." ; then
|
||||
# Native
|
||||
PROJECT_TOPdir=${RTEMS_TOPdir}/'$(top_builddir)'
|
||||
else
|
||||
# Cross
|
||||
dots=`echo $with_target_subdir|\
|
||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||
PROJECT_TOPdir=${dots}${RTEMS_TOPdir}/'$(top_builddir)'
|
||||
fi
|
||||
AC_SUBST(PROJECT_TOPdir)
|
||||
|
||||
PROJECT_ROOT="${RTEMS_TOPdir}/\$(top_builddir)"
|
||||
AC_SUBST(PROJECT_ROOT)
|
||||
|
||||
AC_MSG_CHECKING([for RTEMS Version])
|
||||
AS_IF([test -r "${srcdir}/${RTEMS_TOPdir}/aclocal/version.m4"],
|
||||
[],
|
||||
[AC_MSG_ERROR([Unable to find ${RTEMS_TOPdir}/aclocal/version.m4])])
|
||||
AC_MSG_RESULT([_RTEMS_VERSION])
|
||||
])dnl
|
||||
@@ -1,138 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
## HACK: Work-around to structural issue with RTEMS
|
||||
## The macros below violate most autoconf and canonicalization standards
|
||||
AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS],
|
||||
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
|
||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
|
||||
])
|
||||
|
||||
dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
|
||||
AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS],
|
||||
[AC_CONFIG_COMMANDS([bsp-tools],
|
||||
[
|
||||
# HACK: This is a blantant hack and breaks Canadian crosses
|
||||
build_alias="$build_alias"
|
||||
host_alias="$build_alias"
|
||||
if test "$no_recursion" != yes; then
|
||||
if test x"$build_alias" != x"$host_alias"; then
|
||||
target_subdir="$host_alias"
|
||||
else
|
||||
target_subdir="."
|
||||
fi
|
||||
RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args],
|
||||
[
|
||||
-host* | --host* ) ;;
|
||||
--host ) ac_prev=host_alias;;
|
||||
-target* | --target* ) ;;
|
||||
-target ) ac_prev=target_alias ;;
|
||||
-build* | --build* ) ;;
|
||||
-build ) ac_prev_build_alias ;;
|
||||
*_alias=* ) ;; # HACK: Workaround to autoconf passing *_alias
|
||||
],
|
||||
[rtems_configure_args])
|
||||
|
||||
for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
if test ! -d $srcdir/$rtems_config_dir; then
|
||||
continue
|
||||
fi
|
||||
|
||||
_RTEMS_PUSH_BUILDDIR([$rtems_config_dir])
|
||||
|
||||
_RTEMS_SUB_SRCDIR([$rtems_config_dir])
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# ac_sub_cache_file=./config.cache
|
||||
ac_sub_cache_file=/dev/null
|
||||
_RTEMS_GIVEN_INSTALL
|
||||
|
||||
echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir"
|
||||
# The eval makes quoting arguments work.
|
||||
if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \
|
||||
$ac_sub_configure_args \
|
||||
--srcdir=$ac_sub_srcdir \
|
||||
--with-target-subdir=$target_subdir \
|
||||
--cache-file=$ac_sub_cache_file
|
||||
then :
|
||||
else
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $rtems_config_dir])
|
||||
fi
|
||||
fi
|
||||
|
||||
_RTEMS_POP_BUILDDIR
|
||||
done
|
||||
fi],
|
||||
[
|
||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS"
|
||||
rtems_configure_args="$ac_configure_args"
|
||||
])
|
||||
])
|
||||
|
||||
## FIXME: This is obsolete. Only kept for backward compatibility
|
||||
AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[])
|
||||
|
||||
|
||||
dnl
|
||||
dnl Misc utility macros for subdir handling to work around missing abilities
|
||||
dnl in autoconf, automake and structural issues with RTEMS
|
||||
dnl
|
||||
dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus'
|
||||
dnl configure.in.
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
|
||||
[
|
||||
# _RTEMS_PUSH_BUILDDIR
|
||||
echo configuring in $1
|
||||
case "$srcdir" in
|
||||
.) ;;
|
||||
*) AS_MKDIR_P([$1])
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
cd $1
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_POP_BUILDDIR
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_POP_BUILDDIR],
|
||||
[
|
||||
cd "$ac_popdir"
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_GIVEN_INSTALL
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_GIVEN_INSTALL],
|
||||
[
|
||||
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
||||
case "$ac_given_INSTALL" in
|
||||
[[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;;
|
||||
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
||||
esac
|
||||
])dnl
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_SUB_SRCDIR],[
|
||||
# _RTEMS_SUB_SRCDIR
|
||||
_RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)
|
||||
|
||||
# Check for configure
|
||||
if test -f $ac_sub_srcdir/configure; then
|
||||
ac_sub_configure=$ac_sub_srcdir/configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $1])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
])
|
||||
@@ -1,23 +0,0 @@
|
||||
AC_DEFUN([RTEMS_TOOLPATHS],
|
||||
[
|
||||
# tooldir='$(exec_prefix)/'$target_alias
|
||||
# Temporary work-around until building in source tree is supported
|
||||
AC_REQUIRE([RTEMS_PROJECT_ROOT])
|
||||
|
||||
tooldir='$(PROJECT_ROOT)'
|
||||
AC_SUBST(tooldir)
|
||||
|
||||
project_includedir='$(tooldir)'/include
|
||||
AC_SUBST(project_includedir)
|
||||
|
||||
project_libdir='$(tooldir)/lib$(MULTISUBDIR)'
|
||||
AC_SUBST(project_libdir)
|
||||
|
||||
project_bindir='$(tooldir)/bin'
|
||||
AC_SUBST(project_bindir)
|
||||
|
||||
rtems_bspdir='$(prefix)/${RTEMS_BSP}'
|
||||
AC_SUBST(rtems_bspdir)
|
||||
rtems_makedir='$(prefix)/make'
|
||||
AC_SUBST(rtems_makedir)
|
||||
])
|
||||
@@ -1,2 +0,0 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.6.6]))
|
||||
@@ -1,231 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
## NOTE: This file is rather immature and has to be considered to be
|
||||
## almost experimental.
|
||||
##
|
||||
## Expect frequent changes -- It deserves to be cleaned up :(
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
## The section below is based on make/compilers/gcc-target-default.cfg
|
||||
## used in former versions of RTEMS.
|
||||
|
||||
##
|
||||
## Set up the flags for the toolchains:
|
||||
##
|
||||
## We are considering 3 different building schemes here:
|
||||
## * Using gcc's being able to accept -specs (aka gcc-2.8 building scheme)
|
||||
## * Using gcc's not being able to accept -specs (aka gcc-2.7.2 building
|
||||
## scheme)
|
||||
## * Using third party toolchains (aka non-gcc building scheme)
|
||||
##
|
||||
## Automake conditionals in use:
|
||||
## RTEMS_USE_GCC .. if we are using GCC
|
||||
|
||||
## NOTES:
|
||||
## * The gcc-2.8 building scheme is the nominal building scheme and
|
||||
## is actively supported.
|
||||
## * The non-gcc building scheme requires manually setting up environment
|
||||
## variables and is hardly tested at all
|
||||
|
||||
## CFLAGS_OPTIMIZE_V, CFLAGS_DEBUG_V, CFLAGS_PROFILE_V are the values we
|
||||
## would want the corresponding macros to be set to.
|
||||
##
|
||||
## CFLAGS_OPTIMIZE, CFLAGS_DEBUG, CFLAGS_PROFILE are set by the
|
||||
## 'VARIANT=<OPTIMIZE|DEBUG|PROFILE>' targets to their _V values.
|
||||
|
||||
## XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS
|
||||
## are used to add flags from the shell
|
||||
## cf. make.info ("Implicit rules/variables" for details)
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## All the stuff below is specific to gcc
|
||||
|
||||
## gcc >= 2.8.x
|
||||
GCCSPECS = $(GCC_SPECS) $(RTEMS_BSP_SPECS)
|
||||
else
|
||||
## fall back to the old style compilers/*.cfg
|
||||
## CONFIG.CC is supposed to be provided by <BSP>.cfg
|
||||
include $(CONFIG.CC)
|
||||
endif # RTEMS_USE_GCC
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
CPPFLAGS = @CPPFLAGS@ $(CPU_DEFINES) $(DEFINES) $(XCPPFLAGS)
|
||||
CFLAGS = @RTEMS_CFLAGS@ $(XCFLAGS)
|
||||
## FIXME: This should be correct, but is not supported, yet
|
||||
# CXXFLAGS = @RTEMS_CXXFLAGS@ $(XCXXFLAGS)
|
||||
## Fall back to using RTEMS_CFLAGS for C++
|
||||
CXXFLAGS = @RTEMS_CFLAGS@ $(XCXXFLAGS)
|
||||
ASFLAGS = $(CPU_ASFLAGS) $(CPU_CFLAGS) $(XASFLAGS)
|
||||
|
||||
LINK_LIBS = $(LD_LIBS)
|
||||
|
||||
#
|
||||
# Client compiler and support tools
|
||||
#
|
||||
|
||||
#
|
||||
# How to compile stuff into ${ARCH} subdirectory
|
||||
#
|
||||
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CCAS = $(CC)
|
||||
CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
|
||||
|
||||
# OBSOLETE: Don't use
|
||||
AS = $(CC)
|
||||
ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS)
|
||||
|
||||
${ARCH}/%.o: %.c
|
||||
${COMPILE} -o $@ -c $<
|
||||
|
||||
${ARCH}/%.o: %.cc
|
||||
${CXXCOMPILE} -o $@ -c $<
|
||||
|
||||
${ARCH}/%.o: %.S
|
||||
${CCASCOMPILE} -DASM -o $@ -c $<
|
||||
|
||||
# Dependency files for use by gmake
|
||||
# NOTE: we don't put them into $(ARCH)
|
||||
# so that 'make clean' doesn't blow it away
|
||||
|
||||
DEPEND=Depends-${ARCH}
|
||||
|
||||
# We deliberately don't have anything depend on the
|
||||
# $(DEPEND) file; otherwise it will get rebuilt even
|
||||
# on 'make clean'
|
||||
#
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## HACK: Specific to gcc
|
||||
## FIXME: The approach below is known to be conceptionally broken.
|
||||
depend-gcc: $(C_FILES) $(CC_FILES) $(S_FILES)
|
||||
## Use gcc -M to generate dependencies
|
||||
## Replace foo.o with $(ARCH)/foo.o
|
||||
## Replace $(ARCH) value with string $(ARCH)
|
||||
## so that it will for debug and profile cases
|
||||
$(COMPILE) -M $^ | \
|
||||
sed -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \
|
||||
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp
|
||||
mv $(DEPEND).tmp $(DEPEND)
|
||||
|
||||
# pull in dependencies if they exist
|
||||
ifeq (${DEPEND},$(wildcard ${DEPEND}))
|
||||
include ${DEPEND}
|
||||
@ENDIF@
|
||||
endif
|
||||
depend: depend-am
|
||||
|
||||
# spell out all the LINK_FILE's, rather than using -lbsp, so
|
||||
# that $(LINK_FILES) can be a dependency
|
||||
|
||||
LINK_OBJS = \
|
||||
$(OBJS) \
|
||||
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel)
|
||||
|
||||
LINK_FILES =\
|
||||
$(START_FILE) \
|
||||
$(OBJS) \
|
||||
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel)
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## gcc >= 2.8
|
||||
define make-rel
|
||||
$(LINK) -qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) $^
|
||||
endef
|
||||
else
|
||||
## non-gcc
|
||||
define make-rel
|
||||
$(LINK) $(XLDFLAGS) $^
|
||||
endef
|
||||
endif
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
## translate VARIANT into VARIANT_V
|
||||
VARIANT = OPTIMIZE
|
||||
|
||||
VARIANT_OPTIMIZE_V = OPTIMIZE
|
||||
VARIANT_DEBUG_V = DEBUG
|
||||
VARIANT_PROFILE_V = PROFILE
|
||||
VARIANT_optimize_V = OPTIMIZE
|
||||
VARIANT_debug_V = DEBUG
|
||||
VARIANT_profile_V = PROFILE
|
||||
|
||||
VARIANT_V = $(VARIANT_$(VARIANT)_V)
|
||||
|
||||
## Setup the variant build subdirectory
|
||||
ARCH_OPTIMIZE_V = o-optimize
|
||||
ARCH_DEBUG_V = o-debug
|
||||
ARCH_PROFILE_V = o-profile
|
||||
|
||||
ARCH__V = $(ARCH_OPTIMIZE_V)
|
||||
ARCH = $(ARCH_$(VARIANT_V)_V)
|
||||
|
||||
## Setup the library suffix
|
||||
LIBSUFFIX_OPTIMIZE_V =
|
||||
LIBSUFFIX_DEBUG_V = _g
|
||||
LIBSUFFIX_PROFILE_V = _p
|
||||
LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V)
|
||||
|
||||
LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V)
|
||||
|
||||
## These are supposed to be set in make/custom/<bsp>.cfg
|
||||
CPU_CFLAGS = @CPU_CFLAGS@
|
||||
CFLAGS_OPTIMIZE_V = @CFLAGS_OPTIMIZE_V@
|
||||
CFLAGS_DEBUG_V = @CFLAGS_DEBUG_V@
|
||||
CFLAGS_PROFILE_V = @CFLAGS_PROFILE_V@
|
||||
CFLAGS__V = $(CFLAGS_OPTIMIZE_V)
|
||||
|
||||
## ------------------------------------------------------------------------
|
||||
## Setup hard-coded flags
|
||||
if RTEMS_USE_GCC
|
||||
## gcc >= gcc-2.8
|
||||
RTEMS_CFLAGS_OPTIMIZE_V =
|
||||
RTEMS_CFLAGS_DEBUG_V = -qrtems_debug -Wno-unused
|
||||
RTEMS_CFLAGS_PROFILE_V = -pg
|
||||
|
||||
## non-gcc
|
||||
## We can't guess what flags might be required here.
|
||||
## Pass the values from the environment if you want to apply them.
|
||||
endif
|
||||
RTEMS_CFLAGS__V = $(RTEMS_CFLAGS_OPTIMIZE_V)
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
CC = @CC@ $(GCCSPECS)
|
||||
CXX = @CXX@ $(GCCSPECS)
|
||||
CPP = @CPP@ $(GCCSPECS)
|
||||
|
||||
LD = @LD@
|
||||
OBJCOPY = @OBJCOPY@
|
||||
NM = @NM@
|
||||
SIZE = @SIZE@
|
||||
STRIP = @STRIP@
|
||||
|
||||
##
|
||||
AM_CPPFLAGS = $(RTEMS_CPPFLAGS)
|
||||
AM_CFLAGS =
|
||||
AM_CXXFLAGS =
|
||||
AM_CCASFLAGS = $(CPU_CFLAGS) $(RTEMS_CPPFLAGS) $(RTEMS_CCASFLAGS)
|
||||
|
||||
${ARCH}:
|
||||
mkdir ${ARCH}
|
||||
|
||||
clean-local:
|
||||
$(RM) -r o-optimize o-debug o-profile $(CLEANDIRS)
|
||||
$(RM) Depends-o-optimize.tmp Depends-o-debug.tmp Depends-o-profile.tmp
|
||||
@@ -1,4 +0,0 @@
|
||||
## This file is a temporary band-aid for the ppc-BSPs.
|
||||
## DO NOT use it, it will eventually be removed in future.
|
||||
|
||||
PREINSTALL_FILES = $(TMPINSTALL_FILES)
|
||||
@@ -1,28 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
## NOTE: This is a temporary work-around to keep
|
||||
## RTEMS's non automake standard make targets working.
|
||||
## Once automake is fully integrated these make targets
|
||||
## and this file will probably be removed
|
||||
|
||||
debug:
|
||||
@echo
|
||||
@echo "\"make debug\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=DEBUG"
|
||||
@echo
|
||||
|
||||
.PHONY: debug
|
||||
|
||||
profile:
|
||||
@echo
|
||||
@echo "\"make profile\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=PROFILE"
|
||||
@echo
|
||||
|
||||
preinstall-am: $(PREINSTALL_FILES)
|
||||
preinstall: preinstall-am
|
||||
.PHONY: preinstall preinstall-am
|
||||
|
||||
depend-am:
|
||||
depend: depend-am
|
||||
.PHONY: depend depend-am
|
||||
@@ -1,16 +0,0 @@
|
||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||
|
||||
CXXLINK_APP = $(CXXLINK) $(LDLIBS) $(LINK_OBJS) $(LINK_LIBS)
|
||||
ifndef make-cxx-exe
|
||||
define make-cxx-exe
|
||||
$(CXXLINK_APP)
|
||||
endef
|
||||
@ENDIF@
|
||||
|
||||
LINK_APP = $(LINK) $(LDLIBS) $(LINK_OBJS) $(LINK_LIBS)
|
||||
ifndef make-exe
|
||||
define make-exe
|
||||
$(LINK_APP)
|
||||
endef
|
||||
@ENDIF@
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AR = @AR@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
ARFLAGS = ruv
|
||||
|
||||
define make-library
|
||||
test -d $(ARCH) || mkdir $(ARCH)
|
||||
$(RM) $@
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
$(RANLIB) $@
|
||||
endef
|
||||
|
||||
$(PROJECT_RELEASE)/lib:
|
||||
@$(mkinstalldirs) $@
|
||||
|
||||
TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib
|
||||
|
||||
.PRECIOUS: $(LIB)
|
||||
@@ -1,28 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
debug:
|
||||
@echo
|
||||
@echo "\"make debug\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=DEBUG"
|
||||
@echo
|
||||
|
||||
.PHONY: debug
|
||||
|
||||
profile:
|
||||
@echo
|
||||
@echo "\"make profile\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=PROFILE"
|
||||
@echo
|
||||
|
||||
.PHONY: profile
|
||||
|
||||
preinstall-am: $(PREINSTALL_FILES)
|
||||
preinstall: preinstall-am
|
||||
.PHONY: preinstall preinstall-am
|
||||
|
||||
depend-am: depend-gcc
|
||||
depend: depend-am
|
||||
.PHONY: depend depend-am depend-gcc
|
||||
|
||||
PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
## Borrowed from automake-1.4 and adapted to RTEMS
|
||||
|
||||
## NOTE: This is a temporary work-around to keep
|
||||
## RTEMS's non automake standard make targets working.
|
||||
## Once automake is fully integrated these make targets
|
||||
## and this file will probably be removed
|
||||
|
||||
depend-recursive \
|
||||
preinstall-recursive:
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
## This trick allows "-k" to keep its natural meaning when running a
|
||||
## recursive rule.
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
preinstall: preinstall-recursive
|
||||
.PHONY: preinstall-recursive
|
||||
|
||||
depend: depend-recursive
|
||||
.PHONY: depend-recursive
|
||||
193
bootstrap
193
bootstrap
@@ -1,193 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# helps bootstrapping, when checked out from CVS
|
||||
# requires GNU autoconf and GNU automake
|
||||
#
|
||||
# $Id$
|
||||
|
||||
# this is not meant to be exported outside the source tree
|
||||
|
||||
# NOTE: Inspired by libtool's autogen script
|
||||
|
||||
# to be run from the toplevel directory of RTEMS'
|
||||
# source tree
|
||||
|
||||
progname=`basename $0`
|
||||
top_srcdir=`dirname $0`
|
||||
|
||||
verbose="";
|
||||
quiet="false"
|
||||
mode="generate"
|
||||
|
||||
usage()
|
||||
{
|
||||
echo
|
||||
echo "usage: ${progname} [-h|-q|-v]"
|
||||
echo
|
||||
echo "options:"
|
||||
echo " -h .. display this message and exit";
|
||||
echo " -q .. quiet, don't display directories";
|
||||
echo " -v .. verbose, pass -v to automake when invoking automake"
|
||||
echo " -c .. clean, remove all aclocal/autoconf/automake generated files"
|
||||
echo
|
||||
exit 1;
|
||||
}
|
||||
|
||||
generate_bspdir_acinclude()
|
||||
{
|
||||
cat << EOF > acinclude.m4~
|
||||
# RTEMS_CHECK_BSPDIR(RTEMS_BSP)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPDIR],
|
||||
[
|
||||
RTEMS_BSP_ALIAS(ifelse([\$1],,[\${RTEMS_BSP}],[\$1]),bspdir)
|
||||
case "\$bspdir" in
|
||||
EOF
|
||||
|
||||
for i in */bsp_specs; do
|
||||
d=`dirname $i`
|
||||
cat << EOF >> acinclude.m4~
|
||||
$d )
|
||||
AC_CONFIG_SUBDIRS([$d]);;
|
||||
EOF
|
||||
done
|
||||
cat << EOF >> acinclude.m4~
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid BSP]);;
|
||||
esac
|
||||
])
|
||||
EOF
|
||||
if cmp -s acinclude.m4 acinclude.m4~ 2>/dev/null; then
|
||||
echo "acinclude.m4 is unchanged";
|
||||
else
|
||||
cp acinclude.m4~ acinclude.m4
|
||||
fi
|
||||
rm -f acinclude.m4~
|
||||
}
|
||||
|
||||
if test ! -f $top_srcdir/aclocal/version.m4; then
|
||||
echo "${progname}:"
|
||||
echo " Installation problem: Can't find file aclocal/version.m4"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
-h|--he|--hel|--help)
|
||||
usage ;;
|
||||
-q|--qu|--qui|--quie|--quiet)
|
||||
quiet="true";
|
||||
shift;;
|
||||
-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
|
||||
verbose="-v";
|
||||
shift;;
|
||||
-c|--cl|--cle|--clea|--clean)
|
||||
mode="clean";
|
||||
shift;;
|
||||
-*) echo "unknown option $1" ;
|
||||
usage ;;
|
||||
*) echo "invalid parameter $1" ;
|
||||
usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
case $mode in
|
||||
generate)
|
||||
AUTOCONF=${AUTOCONF-autoconf}
|
||||
if test -z "$AUTOCONF"; then
|
||||
echo "You must have autoconf installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
AUTOHEADER=${AUTOHEADER-autoheader}
|
||||
if test -z "$AUTOHEADER"; then
|
||||
echo "You must have autoconf installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
AUTOMAKE=${AUTOMAKE-automake}
|
||||
if test -z "$AUTOMAKE"; then
|
||||
echo "You must have automake installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ACLOCAL=${ACLOCAL-aclocal}
|
||||
if test -z "$ACLOCAL"; then
|
||||
echo "You must have automake installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $top_srcdir in
|
||||
/* ) aclocal_dir=$top_srcdir
|
||||
;;
|
||||
*) aclocal_dir=`pwd`/$top_srcdir
|
||||
;;
|
||||
esac
|
||||
|
||||
confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print`
|
||||
for i in $confs; do
|
||||
dir=`dirname $i`;
|
||||
configure=`basename $i`;
|
||||
( test "$quiet" = "true" || echo "$dir";
|
||||
cd $dir;
|
||||
test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \
|
||||
generate_bspdir_acinclude;
|
||||
pat="s,\$(RTEMS_TOPdir),${aclocal_dir},g"
|
||||
aclocal_args=`grep '^[ ]*ACLOCAL_AMFLAGS' Makefile.am | \
|
||||
sed -e 's%.*ACLOCAL_AMFLAGS.*\=[ ]*%%g' -e $pat ` ;
|
||||
test "$verbose" = "-v" && echo "${ACLOCAL} $aclocal_args"
|
||||
${ACLOCAL} $aclocal_args;
|
||||
test -n "`grep CONFIG_HEADER ${configure}`" && ${AUTOHEADER} \
|
||||
&& test "$verbose" = "-v" && echo "${AUTOHEADER}";
|
||||
test -n "`grep RTEMS_BSP_CONFIGURE ${configure}`" && ${AUTOHEADER} \
|
||||
&& test "$verbose" = "-v" && echo "${AUTOHEADER}";
|
||||
test -f Makefile.am && ${AUTOMAKE} -a -c $verbose ;
|
||||
${AUTOCONF};
|
||||
test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
|
||||
&& echo timestamp > stamp-h.in
|
||||
)
|
||||
done
|
||||
;;
|
||||
|
||||
clean)
|
||||
test "$quiet" = "true" || echo "removing automake generated Makefile.in files"
|
||||
files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ;
|
||||
for i in $files; do if test -f $i; then
|
||||
rm -f $i
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
test "$quiet" = "true" || echo "removing configure files"
|
||||
files=`find . -name 'configure' -print` ;
|
||||
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
|
||||
for i in $files; do if test -f $i; then
|
||||
# The config.sub shipped with automake <= 1.7.5 does handle c4x/tic4x-* correctly.
|
||||
# rm -f config.sub
|
||||
rm -f $i config.guess depcomp install-sh mdate-sh missing \
|
||||
mkinstalldirs texinfo.tex
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
test "$quiet" = "true" || echo "removing aclocal.m4 files"
|
||||
files=`find . -name 'aclocal.m4' -print` ;
|
||||
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
|
||||
for i in $files; do if test -f $i; then
|
||||
rm -f $i
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
find . -name '*~' -print | xargs rm -f
|
||||
find . -name 'bspopts.h*' -print | xargs rm -f
|
||||
find . -name '*.orig' -print | xargs rm -f
|
||||
find . -name '*.rej' -print | xargs rm -f
|
||||
find . -name 'config.status' -print | xargs rm -f
|
||||
find . -name 'config.log' -print | xargs rm -f
|
||||
find . -name 'config.cache' -print | xargs rm -f
|
||||
find . -name 'Makefile' -print | xargs rm -f
|
||||
find . -name '.deps' -print | xargs rm -rf
|
||||
find . -name '.libs' -print | xargs rm -rf
|
||||
find . -name 'stamp-h.in' | xargs rm -rf
|
||||
find . -name 'autom4te*.cache' | xargs rm -rf
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
14
c/.cvsignore
14
c/.cvsignore
@@ -1,14 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -13,18 +13,18 @@ much better product.
|
||||
|
||||
The following persons/organizations have made contributions:
|
||||
|
||||
+ Dr. Mikhail (Misha) Savitski (mikhail.savitski@styrex.se) of the EISCAT
|
||||
Scientific Association submitted the BSP and other miscellaneous support
|
||||
for the Motorola MVME162 (M68040LC CPU) VMEbus single board computer.
|
||||
+ Dr. Mikhail (Misha) Savitski (mms@eiscathq.irf.se) of the EISCAT Scientific
|
||||
Association submitted the BSP and other miscellaneous support for the
|
||||
Motorola MVME162 (M68040LC CPU) VMEbus single board computer.
|
||||
|
||||
+ Division Inc. of Chapel Hill, NC for sponsoring On-Line Applications
|
||||
Research to port RTEMS to the Hewlett-Packard PA-RISC architecture (V1.1)
|
||||
and the addition of HP-UX as a development host. Tony Bennett
|
||||
(tbennett@chapelhill.hp.com) was assisted in this effort by Joel Sherrill
|
||||
(joel@OARcorp.com). Tony also deserves a big pat on the back for
|
||||
contributing significantly to the overall organization of the development
|
||||
environment and directory structure. RTEMS is much easier to build
|
||||
because of Tony.
|
||||
(tbennett@divnc.com) was assisted in this effort by Joel Sherrill
|
||||
(jsherril@redstone.army.mil). Tony also deserves a big pat on the
|
||||
back for contributing significantly to the overall organization
|
||||
of the development environment and directory structure. RTEMS
|
||||
is much easier to build because of Tony.
|
||||
|
||||
+ Greg Allen of Division Inc. of Chapel Hill, NC for
|
||||
porting RTEMS to HP-UX. This port treats a UNIX computer as simply
|
||||
@@ -47,7 +47,7 @@ The following persons/organizations have made contributions:
|
||||
+ Bryce Cogswell (cogswell@cs.uoregon.edu) submitted the support for MS-DOS
|
||||
as a development environment as well as djgpp/go32 as a target environment.
|
||||
|
||||
+ Andy Bray (andy@chaos.org.uk) of I-CUBED Ltd. in Cambridge U.K.
|
||||
+ Andy Bray (andy@i-cubed.demon.co.uk) of I-CUBED Ltd. in Cambridge U.K.
|
||||
for porting RTEMS to the PowerPC. This effort included support for the
|
||||
IBM 403 as well as the Motorola 601, 603, and 604 variants. A special
|
||||
thanks to Dom Latter (dom@i-cubed.demon.co.uk) for being an RTEMS
|
||||
@@ -75,123 +75,6 @@ The following persons/organizations have made contributions:
|
||||
Laboratory submitted the support for the Motorola MC68360 CPU
|
||||
including the `gen68360' BSP.
|
||||
|
||||
+ Dominique le Campion (Dominique.LECAMPION@enst-bretagne.fr), for
|
||||
Telecom Bretagne and T.N.I. (Brest, France) submitted the BSP for
|
||||
the Motorola MVME147 board (68030 CPU + 68881 FPU) and the MVME147s
|
||||
variant of this board.
|
||||
|
||||
+ Craig Lebakken (lebakken@minn.net) and Derrick Ostertag
|
||||
(ostertag@transition.com) of Transition Networks of Eden Prairie, MN
|
||||
for porting RTEMS to the MIPS and AMD 29K architectures. This submission
|
||||
includes complete support for the R4650 as well as partial support
|
||||
for the R4600.
|
||||
|
||||
+ Erik Ivanenko (ccms@utcc.utoronto.ca) of the University of Toronto
|
||||
for submitting the i386ex bsp.
|
||||
|
||||
+ Jiri Gaisler (jgais@wd.estec.esa.nl) converted RTEMS to using GNU
|
||||
autoconf. This effort is greatly appreciated.
|
||||
|
||||
+ Eric Norum (eric@skatter.usask.ca) of the Saskatchewan Accelerator
|
||||
Laboratory submitted a BSP for the m68360 when operating in companion
|
||||
mode with a m68040 and a port of the Motorola MC68040 Floating Point
|
||||
Support Package (FPSP) to RTEMS.
|
||||
|
||||
+ Eric Norum (eric@skatter.usask.ca) of the Saskatchewan Accelerator
|
||||
Laboratory submitted a port of the KA9Q TCP/IP stack to RTEMS as
|
||||
well as a network device driver for the gen68360 BSP. To address
|
||||
performance issues and licensing concerns, Eric followed this up
|
||||
by replacing the KA9Q TCP/IP stack with a port of the FreeBSD stack.
|
||||
|
||||
+ Chris Johns (cjohns@plessey.com.au) submitted the ods68302 BSP which
|
||||
offers easier configuration than its counterpart gen68302. Chris
|
||||
also submitted the RTEMS++ C++ class library and test code for
|
||||
that library.
|
||||
|
||||
+ Katsutoshi Shibuya (shibuya@mxb.meshnet.or.jp) of BU-Denken Co., Ltd.
|
||||
(Sapporo, Japan) submitted the extended console driver for the
|
||||
MVME162LX BSP and the POSIX tcsetattr() and tcgetattr() routines.
|
||||
This device driver supports four serial ports, cooked IO, and
|
||||
provides a portable base for Zilog 8530 based console drivers.
|
||||
|
||||
+ Eric Norum (eric@skatter.usask.ca) and Katsutoshi Shibuya
|
||||
(shibuya@mxb.meshnet.or.jp) jointly developed the termios support.
|
||||
|
||||
+ Ralf Corsepius (corsepiu@faw.uni-ulm.de) of the Research Institute for
|
||||
Applied Knowledge Processing at the University of Ulm (FAW), Germany,
|
||||
for numerous enhancements to the RTEMS autoconf support as well as
|
||||
for the Hitachi SH port. His contributions are too many to list but
|
||||
also include work on RPMs for RTEMS tools.
|
||||
|
||||
+ Dario Alcocer <alcocer@connectnet.com> submitted a port of the
|
||||
RTEMS port to FreeBSD.
|
||||
|
||||
+ David Fiddes <D.J.Fiddes@hw.ac.uk>, Rod Barman (rodb@ptgrey.com) and
|
||||
Stewart Kingdon (kingdon@ptgrey.com) submitted Motorola ColdFire
|
||||
support. This work was supported in part by Real World Interface, Inc.
|
||||
|
||||
+ Geoffroy Montel (g_montel@yahoo.com), for CNET/DSM (Rennes, France),
|
||||
submitted the BSP for Motorola 68340/68349 based boards.
|
||||
|
||||
+ Thomas Doerfler (td@imd.m.isar.de) of IMD in
|
||||
Puchheim,Germany submitted some improvements to the PPC403
|
||||
support and added the helas403 BSP.
|
||||
|
||||
+ Jay Monkman (jmonkman@frasca.com) of Frasca International, Inc
|
||||
submitted the support for the Motorola MPC860 CPU including the
|
||||
'eth_comm' BSP
|
||||
|
||||
+ Charles Gauthier <Charles.Gauthier@iit.nrc.ca> of the Institute for
|
||||
Information Technology for the National Research Council of Canada
|
||||
submitted the Motorola MVME167 BSP.
|
||||
|
||||
+ Tony Ambardar (tonya@ece.ubc.ca) at the University of British Columbia
|
||||
ported RTEMS to the TS-1325 embedded PC from Technologic Systems
|
||||
(http://www.t-systems.com), and provided patches to enable software
|
||||
floating-point emulation for x86 targets.
|
||||
|
||||
+ Jay Kulpinski (jskulpin@eng01.gdds.com) of General Dynamics Defense
|
||||
Systems (Pittsfield, MA) submitted a board support package for the
|
||||
Motorola MVME230x PowerPC family, borrowing from the PSIM and MPC750
|
||||
BSPs. This includes support for the Raven ASIC, DEC21140 ethernet,
|
||||
16550 serial port, and MK48T59 NVRAM.
|
||||
|
||||
+ Eric Valette <valette@crf.canon.fr> and Emmanuel Raguet <raguet@crf.canon.fr>
|
||||
of Canon CRF - Communication Dept for numerous submissions including
|
||||
remote debugging on the i386 and PowerPC, port of RPC, port of the
|
||||
GoAhead web server, port of RTEMS to the ARM architecture,
|
||||
BSP for the Motorola MCP750 PowerPC board, and numerous improvements
|
||||
to the i386 and PowerPC ports of RTEMS including a new enhanced
|
||||
interrupt management API that reduces interrupt latency while making
|
||||
it easier to support external interrupt controllers.
|
||||
|
||||
+ Mark Bronson <mark@ramix.com> of RAMIX for submitting i960RP
|
||||
support and the rxgen960 board support package.
|
||||
|
||||
+ Joel Sherrill <joel@OARcorp.com> for the BSPs that work with
|
||||
numerous simulators including psim, i960sim, c4xsim, h8sim, armulator,
|
||||
sim68000, and simcpu32. Most of these BSPs work with instruction
|
||||
set simulators in gdb.
|
||||
|
||||
+ Darlene Stewart <Darlene.Stewart@nrc.ca> and Charles Gauthier
|
||||
<Charles.Gauthier@nrc.ca> of the Institute for Information Technology
|
||||
for the National Research Council of Canada submitted the Motorola
|
||||
MBX8XX BSP and consolidated libcpu support for the MPC860 and MPC821
|
||||
into MPC8XX.
|
||||
|
||||
+ John Cotton <jcotton@ualberta.ca> and Charles Gauthier
|
||||
<Charles.Gauthier@nrc.ca> of the Institute for Information
|
||||
Technology for the National Research Council of Canada
|
||||
submitted the RTEMS Cache Manager.
|
||||
|
||||
+ Philip Quaife <philip@qs.co.nz> of Q Solutions ported
|
||||
RTEMS to the Hitachi H8300H. This effort was sponsored by
|
||||
Comnet Technologies Ltd.
|
||||
|
||||
+ Joel Sherrill <joel@OARcorp.com> and Jennifer Averett <jennifer@OARcorp.com>
|
||||
for the Texas Instruments C3x/C4x port and c4xsim BSP that works
|
||||
with the C3x/C4X instruction set simulator in gdb.
|
||||
|
||||
Finally, the RTEMS project would like to thank those who have contributed
|
||||
to the other free software efforts which RTEMS utilizes. The primary RTEMS
|
||||
development environment is from the Free Software Foundation (the GNU
|
||||
|
||||
119
c/ChangeLog
119
c/ChangeLog
@@ -1,119 +0,0 @@
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove references to obsolete files
|
||||
README.DOS REQUIRES PROBLEMS TESTED README UPDATE_HELP.
|
||||
Add TOOL_TARGETS.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-11-07 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TOOL_TARGETS: Updated.
|
||||
* PROBLEMS, README, REQUIRES, TESTED, UPDATE_HELP: Removed
|
||||
since they were obsolete.
|
||||
|
||||
2002-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use mkinstalldirs instead of mkdir.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Fix --enable-rtemsbsp= handling.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Apply RTEMS_CONFIGURE_ARGS_QUOTE.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2002-02-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove make from SUBDIRS.
|
||||
* configure.ac: Remove make from CONFIG_SUBDIRS, cosmetics.
|
||||
|
||||
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
|
||||
* configure.in: Remove.
|
||||
* configure.ac: New file, generated from configure.in by autoupdate.
|
||||
|
||||
2001-05-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Corrected the name of the MRM332 BSP.
|
||||
|
||||
2001-05-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Updated the list of BSPs.
|
||||
* TOOLS_TARGETS: Updated the list of tools and object formats.
|
||||
|
||||
2001-03-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Use ${MAKE} in message at the end of the
|
||||
configure.in.
|
||||
|
||||
2001-02-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Apply _RTEMS_ADJUST_SRCDIR.
|
||||
|
||||
2000-12-14 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added comment on 68en302 now that there is a network driver.
|
||||
|
||||
2000-11-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added jmr3904 entry.
|
||||
|
||||
2000-11-20 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added new sparc variations (erc32, leon, and Tharsys).
|
||||
|
||||
2000-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: catch -enable-rtemsbsp (Allowed by autoconf).
|
||||
Autoconf allows one to pass -enable-*, but this file expected --enable*.
|
||||
|
||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||
|
||||
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
|
||||
|
||||
2000-10-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to GNU-canonicalization.
|
||||
|
||||
2000-10-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Make sure $SHELL inside of Makefiles does not get
|
||||
propagated to the BSP-subdirectories if a user specified CONFIG_SHELL.
|
||||
|
||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* ChangeLog: New file.
|
||||
@@ -1,41 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../aclocal
|
||||
|
||||
## NOTE: This Makefile.am is rather fragile to the value of RTEMS_BSP
|
||||
## Esp. make clean and make distclean have unwanted side-effects
|
||||
## if RTEMS_BSP is not properly set up.
|
||||
|
||||
RTEMS_BSP = $(RTEMS_BSP_LIST)
|
||||
## The '.' in SUBDIRS ensures that local make-targets (xxx-am) will be
|
||||
## triggered before $(RTEMS_BSP_LIST) subdirectories are made.
|
||||
SUBDIRS = . $(RTEMS_BSP)
|
||||
|
||||
## Use @RTEMS_BSP_LIST@ here, using $(RTEMS_BSP_LIST) would trigger
|
||||
## this rule for invalid BSPs
|
||||
@RTEMS_BSP_LIST@: src/configure
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
test -n "${RTEMS_BSP}" && for i in ${RTEMS_BSP}; do \
|
||||
echo "Configuring RTEMS_BSP=$$i"; \
|
||||
$(mkinstalldirs) $$i; \
|
||||
( cd $$i && \
|
||||
CONFIG_SHELL=$(SHELL) RTEMS_BSP=$$i $(rtems_bsp_configure) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) preinstall ) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done
|
||||
|
||||
## Let all RTEMS' make targets depend on ${RTEMS_BSP}
|
||||
all-local: ${RTEMS_BSP}
|
||||
preinstall-am: ${RTEMS_BSP}
|
||||
depend-am: ${RTEMS_BSP}
|
||||
|
||||
## Pull in extra files intro the distribution
|
||||
EXTRA_DIST = ACKNOWLEDGEMENTS
|
||||
EXTRA_DIST += TOOL_TARGETS
|
||||
|
||||
DIST_SUBDIRS = ${RTEMS_BSP}
|
||||
## -------------------------------------------------------
|
||||
include $(top_srcdir)/../automake/subdirs.am
|
||||
include $(top_srcdir)/../automake/host.am
|
||||
66
c/PROBLEMS
Normal file
66
c/PROBLEMS
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This is the list of outstanding problems in this release.
|
||||
|
||||
+ The POSIX threads and real time extensions code in this tree does
|
||||
not work yet and is intentionally not in the normal build path.
|
||||
|
||||
+ The test spfatal is out of date and as a result will NOT execute
|
||||
correctly. The addition of POSIX and consequent ongoing initialization
|
||||
reorganization makes it pointless to fix this until the POSIX support
|
||||
is completely in place.
|
||||
|
||||
+ The m68000 support is nearly complete now. The missing piece
|
||||
inside the executive proper is support for the software interrupt
|
||||
stack. Also, the m68k family has become quite large and an
|
||||
understanding of the compatibility of the peripherals on the various
|
||||
members of the 683xx family would allow someone to designate some
|
||||
of the drivers submitted for the gen683xx BSPs as useful on other
|
||||
members.
|
||||
|
||||
+ The only i960 family member tested is the CA. No support for the
|
||||
floating point support found in other family members is present.
|
||||
This also implies that RTEMS may "think" of something as generic
|
||||
across the i960 family when in fact it is specific to the CA.
|
||||
To make matters worse, the i960 target board owned by the RTEMS Project
|
||||
is now broken and as a result even the i960CA is a "compile only" port.
|
||||
|
||||
+ Some of the BSPs still define RAM_START and RAM_END in the bsp.h file.
|
||||
It is better to define these in the linkcmds file. It is also nice
|
||||
to use the linkcmds file to place overlays for on-board hardware.
|
||||
|
||||
+ The __read() system call in all of the BSPs using single
|
||||
character input/output needs to be smarter. The following
|
||||
issues need to be addressed:
|
||||
|
||||
+ echoing of characters on input
|
||||
+ CR/NL echoing
|
||||
+ backspaces
|
||||
+ tabs
|
||||
|
||||
+ UNIX port notes:
|
||||
|
||||
+ sometimes a stray SIGALRM is reported as spfatal completes.
|
||||
|
||||
+ There are conflicts between the names of native library routines
|
||||
which MUST be used and those in the POSIX support. This must
|
||||
be addressed.
|
||||
|
||||
+ Some of the tests may execute correctly and not produce the exact
|
||||
ordering of lines in the screen file. This appears to be a combination
|
||||
of a number of factors including buffering, processor speed, IO
|
||||
device overhead, and clock interrupt rate.
|
||||
|
||||
+ The compiler configuration files (c/make/gcc-XYZ.cfg) are largely
|
||||
the same when the different targets have the same CPU. It would
|
||||
be desirable to have a gcc-CPU.cfg or gcc-CPU_MODEL.cfg (e.g.
|
||||
gcc-m68k.cfg or gcc-m68020.cfg) and have the file gcc-TARGET.cfg
|
||||
include this and possibly override default settings.
|
||||
|
||||
+ The clock device drivers should really avoid doing the division
|
||||
by 1000 in the clock tick ISR to convert microseconds into
|
||||
milliseconds. This only applies to clock drivers which generate
|
||||
an ISR each millisecond and only call rtems_clock_tick every
|
||||
so many ISRs.
|
||||
45
c/README
Normal file
45
c/README
Normal file
@@ -0,0 +1,45 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This is the top level of the RTEMS directory structure. The following
|
||||
is a description of the files and directories in this directory:
|
||||
|
||||
LICENSE
|
||||
Required legalese.
|
||||
|
||||
Makefile
|
||||
The top-level Make command file used to build the C implementation
|
||||
of RTEMS. [RTEMS assumes the use of GNU make.]
|
||||
|
||||
Modules
|
||||
Example Modules command files used to configure the user's environment
|
||||
for RTEMS. These require the Modules system administration package
|
||||
available from numerous ftp sites.
|
||||
|
||||
README
|
||||
This file.
|
||||
|
||||
REQUIRES
|
||||
A list of the other tools which are assumed to be installed
|
||||
before RTEMS is built.
|
||||
|
||||
SUPPORT
|
||||
Information on third-party support for RTEMS.
|
||||
|
||||
build-tools
|
||||
This directory contains the source for various utilities
|
||||
needed to build RTEMS.
|
||||
|
||||
make
|
||||
Make command files "included" from those in the source distribution.
|
||||
[RTEMS assumes the use of GNU make.]
|
||||
|
||||
patches
|
||||
This directory contains patches for this release of RTEMS.
|
||||
|
||||
src
|
||||
This directory contains the source code for the C
|
||||
implementation of RTEMS as well as the test suites, sample
|
||||
applications, Board Support Packages, Device Drivers, and
|
||||
support libraries.
|
||||
72
c/README.DOS
Normal file
72
c/README.DOS
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
tools
|
||||
-----
|
||||
The RTEMS build procedure was designed with the capabilitiies of a
|
||||
typical UNIX computer in mind. Making this procedure work under MS-DOS
|
||||
is not that difficult but requires that MS-DOS versions of a number
|
||||
of UNIX utilities be acquired and installed. For time being, the
|
||||
best advice which can be offered is:
|
||||
|
||||
"This is a nasty question, since when I first set up the DOS machine
|
||||
(long before I acquired RTEMS) I ftp'd a bunch of different tool
|
||||
sets (all from SimTel), and then picked individual tools from each
|
||||
set that worked best for me. The djgpp tools are probably a good
|
||||
starting point, especially to get a working sed. Next the gnu tools
|
||||
in SimTel/msdos/gnuish, and then others. Sorry I can't give you more
|
||||
specific names. The only real requirement for the tools is that
|
||||
they *must* accept redirection of command line arguments from a file
|
||||
using the '@' notation (i.e., "mkdir @/tmp/args" reads the argument
|
||||
list from file /tmp/args)."
|
||||
|
||||
There is a special version (source and executable) of GNU make 3.71 for
|
||||
MS-DOS which minimizes the amount of memory used by recursive makes
|
||||
available on lancelot.gcs.redstone.army.mil in the file:
|
||||
|
||||
/pub/msdos/gmake371.tgz
|
||||
|
||||
Many of the RTEMS specific utilities used in the build and installation
|
||||
are UNIX shell scripts. On a UNIX host, these are normally interpreted
|
||||
by the Bourne Again Shell (BASH) or the Korn Shell (ksh). Most of these
|
||||
scripts can be successfully executed with the following shell from the
|
||||
MS-DOS archives from Simtel.
|
||||
|
||||
SimTel/msdos/sysutil/ms_sh23b.zip
|
||||
|
||||
Please be sure to use the 16-bit version. The Simtel archives are
|
||||
available from ftp.cdrom.com as well as a number of mirror sites.
|
||||
|
||||
go32
|
||||
----
|
||||
go32 dumps the stack when a program seg-faults, and if this happens while
|
||||
on an alternate stack an infinite loop can ensue. Setting the environment
|
||||
variable GO32="core /tmp/core" will prevent more than 20 lines or
|
||||
so of stack information from being dumped after a crash, and the output
|
||||
will go to a file rather than the screen.
|
||||
|
||||
The go32 debuggers get confused by the relocated stacks used by tasks,
|
||||
and tend to crash when variables are inspected.
|
||||
|
||||
djgcc include files
|
||||
-------------------
|
||||
In general, we use RTEMS include files because these contain the proper
|
||||
declarations for the libc, and in particular, the stdio functions.
|
||||
When calling go32-specific functions it is necessary to include some
|
||||
djgpp include files, as well. Unfortunately, there are some disagreements
|
||||
between RTEMS and djgpp as to how certain functions and types are
|
||||
declared. In these cases, the RTEMS source have been modified to
|
||||
special-case the differences.
|
||||
|
||||
other
|
||||
-----
|
||||
* Pressing F12 will immediately abort the program.
|
||||
See lib/libbsp/i386/go32/console/inch.c.
|
||||
|
||||
* lib/libbsp/i386/go32/timer uses the on-board timer chip by default,
|
||||
which has a resolution of about 1 microsecond. However, if executing
|
||||
on a Pentium processor you can use the on-chip 64-bit cycle counter,
|
||||
which counts at whatever clock rate your processor runs at. To enable
|
||||
this, set RTEMS_CPU_MODEL=pentium in make/custom/go32.cfg.
|
||||
|
||||
13
c/REQUIRES
Normal file
13
c/REQUIRES
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
1. The installation procedure assumes that "gcc" is installed
|
||||
and is in your path for the installation of local tools.
|
||||
|
||||
2. gcc 2.6.3 with crossgcc patches (ftp.cygnus.com:/pub/embedded)
|
||||
|
||||
3. binutils 2.5.2
|
||||
|
||||
4. newlib with RTEMS configurations.
|
||||
|
||||
56
c/TESTED
Normal file
56
c/TESTED
Normal file
@@ -0,0 +1,56 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS Project does not have all of the development computers or
|
||||
target boards included in the RTEMS distribution. Many of the BSPs
|
||||
are user supplied and we try to insure that they compile before each
|
||||
full release. This file describes the range of configurations the
|
||||
RTEMS project can internally test.
|
||||
|
||||
Host Development Systems
|
||||
========================
|
||||
|
||||
All RTEMS development is done on a Sun SPARCStation running Solaris 2.3 and
|
||||
all other host systems are not tested internally.
|
||||
|
||||
Target Systems
|
||||
==============
|
||||
|
||||
The following table describes the testability of each BSP by the RTEMS project:
|
||||
|
||||
CPU CPU
|
||||
FAMILY MODEL TARGET STATUS
|
||||
====== ========= =================== =================
|
||||
m68k m68000 efi68k (note 1)
|
||||
m68k m68020 Motorola MVME136 TESTED INTERNALLY
|
||||
m68k m68lc040 Motorola MVME162 (note 1)
|
||||
m68k m68ec040 Motorola IDP (note 1)
|
||||
m68k m68020 DY-4 DMV152 (note 1)
|
||||
m68k m68302 generic 68302 (note 1)
|
||||
m68k m68332 efi332 (note 1)
|
||||
i386 i386_fp Force CPU-386 TESTED INTERNALLY
|
||||
i386 i486 DJGPP/PC-AT TESTED INTERNALLY
|
||||
i386 pentium DJGPP/PC-AT TESTED INTERNALLY
|
||||
i960 i960ca Cyclone CVME961 (note 4)
|
||||
hppa hppa7100 simhppa (note 2)
|
||||
ppc 403 Papyrus (note 2)
|
||||
UNIX NA Solaris 2 (SPARC) TESTED INTERNALLY (inlines)
|
||||
UNIX NA Solaris 2 (SPARC) TESTED INTERNALLY (macros)
|
||||
UNIX NA Linux (i386) (note 5)
|
||||
UNIX NA HPUX (PA-RISC) (note 2)
|
||||
no_cpu NA no_bsp (note 3)
|
||||
|
||||
|
||||
(1) Target board is not owned by RTEMS Project. The target is known
|
||||
to compile and link with all appropriate tests successfully.
|
||||
If the target does not support multiprocessor configurations, then
|
||||
"ALL TESTS" does not include the multiprocessor tests.
|
||||
|
||||
(2) RTEMS Project cannot internally compile or test this target.
|
||||
|
||||
(3) Target is not intended to be executed. It is only an example.
|
||||
|
||||
(4) The RTEMS Project owns this board but it is broken at the moment.
|
||||
|
||||
(5) The RTEMS Project owns a Linux host but does not regularly test this BSP.
|
||||
@@ -1,65 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The following are targets for the GNU tools (gcc, binutils, newlib, and gdb)
|
||||
that are for RTEMS, their object format, and status notes
|
||||
|
||||
arm:
|
||||
arm-rtems ELF
|
||||
|
||||
c4x:
|
||||
c4x-rtems COFF Requires patches
|
||||
|
||||
hppa:
|
||||
hppa1.1-rtems ELF
|
||||
|
||||
|
||||
h8300:
|
||||
h8300-rtems COFF
|
||||
|
||||
i386:
|
||||
i386-rtems ELF
|
||||
i386-rtemself ELF
|
||||
i386-rtemscoff COFF Obsoleted
|
||||
i386-go32-rtems COFF Obsoleted - no supporting BSP
|
||||
|
||||
i960:
|
||||
i960-rtems COFF Switch to ELF when possible
|
||||
i960-rtemscoff COFF
|
||||
i960-rtemself ELF Not currently in any tools
|
||||
|
||||
NOTE: As of October 2002, i960 has been deprecated in gdb and gcc.
|
||||
|
||||
m68k:
|
||||
m68k-rtems COFF Switch to ELF when possible
|
||||
m68k-rtemscoff COFF
|
||||
m68k-rtemself ELF Not in all tools
|
||||
|
||||
NOTE: m68k-elf is in post egcs 1.1.2 snapshots.
|
||||
|
||||
mips:
|
||||
mips*-rtems ELF Big endian
|
||||
mips*el-rtems ELF Little endian
|
||||
|
||||
NOTE: Little endian configuration is not in all tools and
|
||||
is untested for RTEMS itself.
|
||||
|
||||
powerpc:
|
||||
powerpc-rtems ELF
|
||||
powerpcle-rtems ELF Little endian
|
||||
|
||||
NOTE: Little endian configuration is not in all tools and
|
||||
is untested for RTEMS itself.
|
||||
|
||||
sh:
|
||||
sh-rtems COFF
|
||||
sh-rtemscoff COFF
|
||||
sh-rtemself ELF
|
||||
|
||||
NOTE: ELF is not completely stable for SH yet.
|
||||
|
||||
sparc:
|
||||
sparc-rtems ELF
|
||||
sparc-rtemself ELF
|
||||
sparc-rtemsaout A.OUT
|
||||
52
c/UPDATE_HELP
Normal file
52
c/UPDATE_HELP
Normal file
@@ -0,0 +1,52 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Between RTEMS 3.1.0 and 3.2.0, every RTEMS defined symbol made visible
|
||||
was renamed. This document describes the change and the tools provided
|
||||
to assist you in updating your RTEMS 3.1.0 application.
|
||||
|
||||
[NOTE: This change was not included in snapshots prior to 3.1.15.]
|
||||
|
||||
DESCRIPTION OF NAME CHANGES:
|
||||
============================
|
||||
|
||||
The primary change was the addition of the prefix "rtems_" or "RTEMS_" to
|
||||
EVERY user visible RTEMS provided constant and routine. The primary
|
||||
factor in the decision to make such a sweeping change was conflicts
|
||||
between the the RTEMS and POSIX API's.
|
||||
|
||||
|
||||
TO UPDATE YOUR APPLICATION:
|
||||
===========================
|
||||
|
||||
The update script requires that Perl be installed on your computer.
|
||||
It has only been tested with Perl 5.x.
|
||||
|
||||
After RTEMS has been built, in the directory "$r/<BSP>/update_tools", will
|
||||
be a set of tools to aid in making the application source changes necessary
|
||||
to address (hopefully) all of the name changes in the RTEMS API between
|
||||
releases 3.1.0 and 3.2.0.
|
||||
|
||||
The update shell script is the only executable which is invoked by the
|
||||
user directly. The word-replace Perl script is invoked by the update
|
||||
shell script.
|
||||
|
||||
WARNING: These tools modify the files IN PLACE!!! Backup your
|
||||
source before using these tools.
|
||||
|
||||
To udpate your application, change directories to the top of your application
|
||||
source tree and execute the update script. It should be something similar
|
||||
to the following:
|
||||
|
||||
cd MY_APP
|
||||
$r/<BSP>/update-tools/update
|
||||
|
||||
The update script will ask if you have backed up your source code before
|
||||
beginning the update process. While operating on files, it will print
|
||||
the name of each file and a dot for each change made to the source file.
|
||||
|
||||
NOTE: These scripts do not attempt to address changes in calling
|
||||
sequences. After the script has run, you will need to update
|
||||
calls to rtems_clock_get(), rtems_timer_fire_after(), and
|
||||
rtems_timer_fire_when() by hand.
|
||||
12
c/build-tools/os/msdos/README
Normal file
12
c/build-tools/os/msdos/README
Normal file
@@ -0,0 +1,12 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ifc is an MS-DOS executable which is equivalent to the program
|
||||
install-if-change. It was compiled using Borland C 2.00.
|
||||
|
||||
cklength is a precompiled version of the program cklength.c from
|
||||
the main source tree.
|
||||
|
||||
fixtimer is a program to restore the clock if the program does not
|
||||
exit cleanly.
|
||||
286
c/build-tools/os/msdos/cklength.uue
Normal file
286
c/build-tools/os/msdos/cklength.uue
Normal file
@@ -0,0 +1,286 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
begin 664 cklength
|
||||
M?T5,1@$" 0 " ( ! $,% #0 "T8 T "
|
||||
M!0 H !H %P 8 T $ - "@ H 4 P
|
||||
M -0 !$ ! ! ! 7
|
||||
M2P %TL % $ $ !=, (73 &\ %? < 0
|
||||
M @ %U A=0 (@ !P O=7-R+VQI8B]L9"YS
|
||||
M;RXQ $, !6 20 #P
|
||||
M #@ $4 /0 !P !# &@
|
||||
M A 30 #\ *0 $X !" D
|
||||
M $@ W $8 )@ "
|
||||
M ! %( 4P Z *@ 00
|
||||
M $H 'P $L !5 3P L .P %0 H
|
||||
M-@ #$ P 40
|
||||
M
|
||||
M
|
||||
M G
|
||||
M '0 C ; N
|
||||
M "( -0 E #D R - !X
|
||||
M "T ,P !$ *P
|
||||
M ^ "\ 3 % !'
|
||||
M 0#4 , $ $ Z # "
|
||||
M ! U0 P P 0BT , 0 $*W #
|
||||
M % !"S P !@ 0P4 , < $32
|
||||
M # ( !$^ P "0 1/L , H $3
|
||||
M] # + !% P # A=, , T
|
||||
M (74 # . "%]@ P #P ACP , !
|
||||
M (9" # 1 P $@ ,
|
||||
M !, # 4 P %0
|
||||
M , !8 # 7 P &
|
||||
M , !D ! (8. 2 " !$_0 $0 "P !8
|
||||
M 0P4 =!( < = (8U 2 (@ "&$0 $@
|
||||
M "< 1/L !$ H U (8O 2 / "&0@ $$0
|
||||
M$0 $4 AB8 !( !. (9# 01 1 5P "',@
|
||||
M$0#_\0 %P 1+ 2!( < !B $2> $@2 ' 9P !$8@
|
||||
M "H$@ !P &\ AD8 !0"$ !$ !T (73 1 /_Q B@ "
|
||||
M&*0 $@ ) A@( !( "7 (8% 2
|
||||
MG !$T@ $@ " *( ACT !!$ ! "J (9$ 01 1
|
||||
M M "&E@ )@$0 $0 , AB !( #' (8\ 01
|
||||
M 0 S0 "%U $0#_\0 -8 0[H !0!( < #> (9&
|
||||
M 4 1 1 Y "&E@ )@$0 $0 /$ AC@ !( #W (8
|
||||
M+ 2 _P "&" $@ 04 AD, !"$ !$ $-
|
||||
M (<N 01 1 !$P "&+ $@ 1H 1 H !8!( <
|
||||
M $@ (8_ 01 0 !,P "'+P $$0 $0 3H AC( !(
|
||||
M $_ (<P 01 1 !1@ "&&@ $@ 4P AS$
|
||||
M!!$ !$ %3 (8^ 01 0 !9P "&0@ $0#_\0 6X A?8
|
||||
M !$ __$ &( (87 2 !C@ "&1 $$0 $0 9<
|
||||
M 1,( /!( < &I $3\ 1 * !M@ !%TL $0#_\0
|
||||
M ;T 10 !!$ P '* $2, $@2 ' !SP "&(P $@
|
||||
M =8 0R( !( < 'H $3^ 1 + !]0 !#10 '4
|
||||
M$@ !P ?H AD !!$ ! (& (8= 2 "#0 !$^
|
||||
M $@ "0 A, AA0 !( 9V5T;W!T %]?1%1/4E],25-47U\
|
||||
M7W-T87)T ')E860 871O:0!?7T-43U)?3$E35%]? '-T<G1O; !P<F]G;F%M
|
||||
M90!V9G!R:6YT9@!?96YV:7)O;@!?96YD %=R:71E %)E860 9V5T<&%R;0!?
|
||||
M:6]B %]'3$]"04Q?3T9&4T547U1!0DQ%7P!A8F]R= !A=&5X:70 97AI= !?
|
||||
M:6YI= !V97)B;W-E %]S>7-?;F5R<@!S>7-?97)R;&ES= !F8VQO<V4 55-!
|
||||
M1T4 7T193D%-24, <')O8V5S<P!?7VEO8@!?<WES7V5R<FQI<W0 =W)I=&4
|
||||
M<W1R<F-H<@!?97AI= !E;G9I<F]N &5R<FYO '-T<F-H<@!E<G)O<@!R97!O
|
||||
M<G1?;&EN95]L96YG=&@ ;W!T:6YD &]P96X ;W!T87)G &9G971S &]P=&5R
|
||||
M<@!R97!O<G1?;&EN95]N=6UB97)S %]E9&%T80!?4%)/0T5$55)%7TQ)3DM!
|
||||
M1T5?5$%"3$5? &9O<&5N '-Y<U]N97)R %]?9&]?9VQO8F%L7V1T;W)S %]?
|
||||
M0U1/4E]%3D1?7P!?971E>'0 7VQI8E]V97)S:6]N $]P96X 9F9L=7-H %]?
|
||||
M9&]?9VQO8F%L7V-T;W)S %]?1%1/4E]%3D1?7P!M86EN &QI;F5?;&5N9W1H
|
||||
M '-T<FQE;@!?9FEN:0!F<')I;G1F &QI8F,N<V\N,0 AD, C$P
|
||||
M AS$ !#$P AS !!$P AR\ _$P AD8 U
|
||||
M$P " AD0 !($P AI8 P$P A@( K%0 A@4
|
||||
M L%0 A@@ Y%0 A@L X%0 A@X :%0
|
||||
M AA$ >%0 AA0 !5%0 AA< !'%0 AAH !"%0
|
||||
M AAT !3%0 AB Q%0 AB, !.%0 AB8 B
|
||||
M%0 ABD J%0 ABP \%0 AB\ @%0 AC(
|
||||
M ! %0 AC4 =%0 AC@ W%0 "\$" X .@0*(#H$2<
|
||||
M(Z @@) 0* 20$ !0 !"]@$ 1 !$D!(CX$ 0O(! 0 !P $
|
||||
M "0$ 0DA $94L( *4 J $E 1 "A< (:6$N$,U"+ $ "D! 0 !"
|
||||
MYP$ ! $+H 0 ('#X @! $0 1-0"(^R HK__$H #9(2(^S0 F $
|
||||
M@*(@ * F4$" E@)@!)(0( "2 F $T ) "X"B( 2O__]E *@ 9*2@ "
|
||||
M@ ,$0 1!$ $2B$B/LH2I@ M $ !&?P@ 0 *"$/_PRO__]T 0 $1$
|
||||
M $1 $+!D!(C"(''X B!Z G>._F*@0 !BB$" L! @ - &0 ! $+!DA @
|
||||
M+Q, (: HB $H !- B80@0@ $T 9 - "80B0 B !T")A"!$ (;0 B$(
|
||||
MT"9 !$ (? (B#$(0 AB< (8E "&%0 19 0 !22$ 90 !"KI02H:"
|
||||
MHC__ H ,X"B(&PB@ 1$0 AQ2 F HB!N@*(@/P* "J HB!. H '- $
|
||||
M(/@0O__P%0 10* !. HB!V H 'M $H/00O__J%0 14 0IO0 B# E!
|
||||
M"!$ (: HJ( "+__XM0B(0 3 !%$0@ $ (N2$F&H$+__W14 $70!"#X
|
||||
M@* ")!@/_\0O__7T"0@^("@ B08#__T"0@^- $X/R H (D& __Q"__\_0
|
||||
M).#\@* ")!@/_\0O__+T"2@]!"__\FB$" !@*1@ "* L1 "'%0 AA$
|
||||
M (:0$B$X$P 19(28<A $)VU *@\$ 0F60$" !DA "- "(+R1*B "T 9
|
||||
M"("B( "@ 1(0 A] "8+R1*B "0 #] &0 B HC__(H K 0/__0!""\
|
||||
MD (@ = D(+R1*B "T 9 "("B( 2O__SDA $(''X B!Z G>.]F) 0 !@3
|
||||
M !%0 !"6I(28="JD@ $H !Z80( 1& $P 19(28=A !%E! &* 0
|
||||
M( &H![WX)0 ABT (:0$ 4DA B $ 0DV4$ 5@*(@ * #4! 0 !"
|
||||
M2Y 0 !2B C__$0 AM "(0" I$ (!( *X"DX 2@ +$0 AA, $60%*$X
|
||||
MDA)A^$ 0C64$ 8T 6@^("B( "@ B$0 AM "(/2 HB H !Q, $60
|
||||
M%*$XDA)B )00 !! $(HE@>]^- %H/B HB H $A$ (;0 B#\@*(@ *
|
||||
M D3 !%D!2A.)(28AB4$ 00 !"&Y80 !$0@ (I@3@ 1, $60%*$XDA)B
|
||||
M($ 0A24$ 0I@3@ 1"__\B@!" !0 !"&Y 0 !6P$" @<?@"('H "=X[^0
|
||||
M\B>@2/0GH$SV)Z!0^">@5/HGH%@1 "&0 !"$I 2(2@1' LBX "!$0 "
|
||||
MC@ ( H !*('H$P1 "'\@(@N. 'H$@5 "&-0 AI 6H3@3 !%DA)B*$
|
||||
M0?/4 J$(D!:A.)(0 !! $(!E! $8"F8 "@ :$0 A@2 !*0$B$X$0
|
||||
MAM "(1" ID (-H #!$ (85 "&E!*B6)<N8 *0%J$X$P 19(28C! $'=
|
||||
MU + "A" X1 "&D!(A.!, $62$F(X0 !!UI00 !D0@ '$0 AI 2(3@3
|
||||
M !%0 !!T)(28E 1 "&0 !!W) 2(3@1# @(X " * !41" @(X " *
|
||||
M R IF H !1$ $41 !%$( Y(2(EB2$B)P?___M) 0( ! $&MD!
|
||||
M&9 0( 3 !%?___KI(28GA $'+ 0 (''X B!Z G>._F* 0 !@1 !%
|
||||
MD!(BD$ 0<;23 @*(@ !* F0$ 0$0@ !, $62$F*@?___G)00 ! 0
|
||||
M@ :L! &9(0( ! $&\E! @ + 0 B I@ 9!H !("F !H$@ 1 0 ("F
|
||||
M0!H2@ ($0@ !, $62$F*XE! $'___XF6$ :,( !Q, $62$F+0E!
|
||||
M&Y80 !E___^"F! &H''X B!Z G>._F* 0 !B0$ 0DA &4 0:*4$ :
|
||||
ML! "("F/_\2@ ($1@ !, $62$F+PE! $)80 !E___]PF! &H''X B!
|
||||
MZ G>._F* 0 !B0$ 0DA &4 09.4$ :L! "("F/_\2@ ($1@ !,
|
||||
M $62$F,0E! $)80 !E___]>F! &H''X B!Z G>._F* 0 !B0$ 0DA
|
||||
M&4 0824$ :L! "("F/_\2@ ($1@ !, $62$F,PE! $)80 !E___],
|
||||
MF! &H''X B!Z G>._F!$ $32 B/X@*)@ * F@$B/XT 0 )_" "@
|
||||
M!" $T 0 ("B( 2O__[ 0 (''X B!Z G>._F)WCOZ"!Z G>._F!$
|
||||
M $34 B/L@**__Q* V2$B/LT )@!("B( "@ )E! @ )8"8 22$" D@)@
|
||||
M!- "0 N HB $K___90"H &2DH H #!$ $01 !$HA(C[*$J8 +0! 1
|
||||
MG\( $ "@A#_\,K___= $ !$1 !$0 !!$) 2(PB!Q^ (@>@ (''X B!
|
||||
MZ G>._H(''X B!Z _____P #_____ ! '5S
|
||||
M86=E.B @8VML96YG=&@@(%L@+78@72!;(&%R9R N+BX@72!F:6QE<RXN+B *
|
||||
M(" @(" @(" @(" @+6P@;&5N9W1H(" @+2T@;6%X:6UU;2!L:6YE(&QE;F=T
|
||||
M: H@(" @(" @(" @(" M;B @(" @(" @(" M+2!R97!O<G0@;&EN92!N=6UB
|
||||
M97)S(&9O<B!O9F9E;F1I;F<@;&EN97,*(" @(" @(" @(" @+4X@(" @(" @
|
||||
M(" @+2T@<F5P;W)T(&QI;F4@;G5M8F5R<R!A;F0@;&5N9W1H(&9O<B!O9F9E
|
||||
M;F1I;F<@;&EN97,*(" @(" @(" @(" @+78@(" @(" @(" @+2T@=F5R8F]S
|
||||
M90H*4')I;G0@=&AE(&YA;64@;V8@9FEL97,@=VAI8V@@:&%V92!A="!L96%S
|
||||
M=" Q(&QI;F4@=VAI8V@@97AC965D<R!T:&4*;6%X:6UU;2!L:6YE(&QE;F=T
|
||||
M:"X@(%1H92!D969A=6QT(&UA>&EM=6T@;&EN92!L96YG=&@@:7,@.# N"@
|
||||
M &PZ;DYV *"5D*2!I<R!I;&QE9V%L(&QI;F4@;&5N9W1H"@ E<P
|
||||
M '( 56YA8FQE('1O(&]P96X@9FEL92 H)7,I"@ E
|
||||
M<PH %1/3R!,3TY'.B5D.B E<PH "5D.B E9 H )60*
|
||||
M E<SH@ " H)7,I"@ ("AU;FMN;W=N(&5R<FYO/25D*0H "@
|
||||
M !F871A;"!E<G)O<BP@97AI=&EN9P !E>&ET:6YG &9A=&%L(&5R
|
||||
M<F]R+"!A8F]R=&EN9P # Q,C,T-38W.#DM G)7,G(&ES(&YO="!A
|
||||
M(&YU;6)E<@ E<R!C86X@;VYL>2!B92 E;&0 E<R!M=7-T(&)E
|
||||
M(&)E='=E96X@)6QD(&%N9" E;&0 &]P96XH)R5S)RP@,'@E>"P@,"5O*2!F
|
||||
M86EL960 <F5A9"@E9"P@,'@E>"P@)60I(&9A:6QE9 !W<FET
|
||||
M92@E9"P@,'@E>"P@)60I(&9A:6QE9 (74 $ (; # !$T@
|
||||
M - $3X 0 0#H !0 !"+0 * ")0 8 0-4 "P
|
||||
M ! 5 , A?8 @ .0 4 !P !< 0LP
|
||||
M!P !"MP ( !. D ,
|
||||
M # P,+__\P$ #
|
||||
M \,+__\ $ # !(,+__[0$ # !4,+__Z@$ # !@,+__YP$
|
||||
M # !L,+__Y $ # !X,+__X0$ # "$,+__W@$ # "0,+__
|
||||
MVP$ # "<,+__V $ # "H,+__U0$ # "T,+__T@$ # #
|
||||
M,+__SP$ # #,,+__S $ # #8,+__R0$ # #D,+__Q@$ #
|
||||
M #P,+__PP$ # #\,+__P $ # $(,+__O0$ ! $4"
|
||||
M % $
|
||||
M 0 __$ $ U # ! ! .@ P @ 0-4
|
||||
M , , $(M # $ !"MP P !0
|
||||
M 0LP , 8 $,% # ' !$T@ P "
|
||||
M 1/@ , D $3[ # * !$_0 P
|
||||
M"P 10 , P (73 # - "%U
|
||||
M P #@ A?8 , \ (8\ # 0 "&0@
|
||||
M P $0 , !( # 3
|
||||
M P % , !4 # 6
|
||||
M P %P , !@ # 9
|
||||
M #P ! #_\0 !8 0 __$ B $
|
||||
M /_Q +0 !$U @ " $, 0R( < !2 (8\
|
||||
M ! 0 8 ! #_\0 &L 0T4 < !Z
|
||||
M $ /_Q A ! #_\0 (\ 1-$ ( < "E
|
||||
M $31 ' M "&00 0 $ ,( 0 __$
|
||||
M #) (8. 2 T !$_0 $0 "P -X 0P4 =!(
|
||||
M < #E (8U 2 Z@ "&$0 $@ .\ 1/L
|
||||
M !$ H #] (8O 2 !! "&0@ $$0 $0 0T AB8
|
||||
M !( $6 (9# 01 1 !'P "',@ $0#_\0 20
|
||||
M 1+ 2!( < $J $2> $@2 ' !+P !$8@ "H$@ !P
|
||||
M 3< AD8 !0"$ !$ $\ (73 1 /_Q !4@ "&*0 $@
|
||||
M 5@ A@( !( %? (8% 2 !9 !$T@
|
||||
M$@ " 6H ACT !!$ ! %R (9$ 01 1 !? "&E@
|
||||
M )@$0 $0 8@ AB !( &/ (8\ 01 0 !E0 "
|
||||
M%U $0#_\0 9X 0[H !0!( < &F (9& 4 1 1 !
|
||||
MK "&E@ )@$0 $0 ;D AC@ !( &_ (8+ 2
|
||||
M !QP "&" $@ <T AD, !"$ !$ '5 (<N 01
|
||||
M 1 !VP "&+ $@ >( 1 H !8!( < 'H (8_
|
||||
M 01 0 !^P "'+P $$0 $0 @( AC( !( (' (<
|
||||
MP 01 1 "#@ "&&@ $@ A0 AS$ !!$ !$ (;
|
||||
M (8^ 01 0 "+P "&0@ $0#_\0 C8 A?8 !$ __$
|
||||
M )0 (87 2 "5@ "&1 $$0 $0 E\ 1,( /!(
|
||||
M < )Q $3\ 1 * "?@ !%TL $0#_\0 H4 10
|
||||
M!!$ P *2 $2, $@2 ' "EP "&(P $@ IX 0R(
|
||||
M !( < *P $3^ 1 + "O0 !#10 '4$@ !P L(
|
||||
M AD !!$ ! +. (8= 2 "U0 !$^ $@ "0
|
||||
M ML AA0 !( 9V\S,B]C:VQE;F=T: !C<G1I+G, =F%L=65S+5AA
|
||||
M+F, 8W)T<W1U9F8N8P!?7V1O7V=L;V)A;%]C=&]R<U]A=7@ 9V-C,E]C;VUP
|
||||
M:6QE9"X 9F]R8V5?=&]?9&%T80!C:VQE;F=T:"YC &=C8S)?8V]M<&EL960N
|
||||
M &QI8F=C8S(N8P!C<G1S='5F9BYC %]?9&]?9VQO8F%L7V-T;W)S7V%U> !G
|
||||
M8V,R7V-O;7!I;&5D+@!F;W)C95]T;U]D871A &-R=&XN<P!G971O<'0 7U]$
|
||||
M5$]27TQ)4U1?7P!?<W1A<G0 <F5A9 !A=&]I %]?0U1/4E],25-47U\ <W1R
|
||||
M=&]L '!R;V=N86UE '9F<')I;G1F %]E;G9I<F]N %]E;F0 5W)I=&4 4F5A
|
||||
M9 !G971P87)M %]I;V( 7T=,3T)!3%]/1D93151?5$%"3$5? &%B;W)T &%T
|
||||
M97AI= !E>&ET %]I;FET '9E<F)O<V4 7W-Y<U]N97)R '-Y<U]E<G)L:7-T
|
||||
M &9C;&]S90!54T%'10!?1%E.04U)0P!P<F]C97-S %]?:6]B %]S>7-?97)R
|
||||
M;&ES= !W<FET90!S=')R8VAR %]E>&ET &5N=FER;VX 97)R;F\ <W1R8VAR
|
||||
M &5R<F]R ')E<&]R=%]L:6YE7VQE;F=T: !O<'1I;F0 ;W!E;@!O<'1A<F<
|
||||
M9F=E=', ;W!T97)R ')E<&]R=%]L:6YE7VYU;6)E<G, 7V5D871A %]04D]#
|
||||
M14154D5?3$E.2T%'15]404),15\ 9F]P96X <WES7VYE<G( 7U]D;U]G;&]B
|
||||
M86Q?9'1O<G, 7U]#5$]27T5.1%]? %]E=&5X= !?;&EB7W9E<G-I;VX 3W!E
|
||||
M;@!F9FQU<V@ 7U]D;U]G;&]B86Q?8W1O<G, 7U]$5$]27T5.1%]? &UA:6X
|
||||
M;&EN95]L96YG=&@ <W1R;&5N %]F:6YI &9P<FEN=&8 $ %
|
||||
MFP UD "]D # %$X ((X
|
||||
M $8\ ! *",I4W5N3U,@-2XS($=E;F5R:6,@4V5P=&5M
|
||||
M8F5R(#$Y.3, &%S.B!30S,N,"!E87)L>2!A8V-E<W,@,#$@4V5P(#$Y.3,*
|
||||
M $=#0SH@*$=.52D@,BXV+C, &%S.B!30S,N,"!E87)L>2!A8V-E<W,@,#$@
|
||||
M4V5P(#$Y.3,* $=#0SH@*$=.52D@,BXV+C, &%S.B!30S,N,"!E87)L>2!A
|
||||
M8V-E<W,@,#$@4V5P(#$Y.3,* $=#0SH@*$=.52D@,BXV+C, &%S.B!30S,N
|
||||
M,"!E87)L>2!A8V-E<W,@,#$@4V5P(#$Y.3,* $=#0SH@*$=.52D@,BXV+C,
|
||||
M;&0Z("A31U4I(%-U;D]3+T5,1B H3$LM,2XS*0 0 "D 8?
|
||||
M"V0 1,( (60 1,( +3P /(
|
||||
M 7H <( EX L(
|
||||
M SH !$H !5H !=(
|
||||
M !EH !LX !SX !
|
||||
MX8 !]( "#( ".8
|
||||
M "5( "<( "D8 "G8
|
||||
M "R( #&8 $GH %+(
|
||||
M & %.8 ) %0X -< %3H #0 %
|
||||
M6H #4 %9( #8 %;X #< %>8 #@
|
||||
M %A( #D %CX #H %FH $8 %IX
|
||||
M %T( &T %]( "X &"20 !\L 1,( "YI;G1E
|
||||
M<G +FAA<V@ +F1Y;G-Y;0 N9'EN<W1R "YR96QA+F)S<P N<F5L82YP;'0
|
||||
M+G1E>'0 +FEN:70 +F9I;FD +F-T;W)S "YD=&]R<P N<F]D871A "YG;W0
|
||||
M+F1Y;F%M:6, +G!L= N9&%T80 N8G-S "YS>6UT86( +G-T<G1A8@ N<W1A
|
||||
M8BYI;F1E> N8V]M;65N= N<W1A8@ N<VAS=')T86( +G-T86(N:6YD97AS
|
||||
M='( +G-T86)S='( '9A;'5E<RU882YC "\Q,#DS+V]N,3 Y,U]W<R]U<W(O
|
||||
M<W)C+VQI8B]L:6)C+P!P;W)T+V=E;B]V86QU97,M6&$N8P %AT(#L@5CTR
|
||||
M+C +VYE="]M;W)G86YA+W5S<C$O<G1E;7,M,RXU+C P+V,O8G5I;&0M=&]O
|
||||
M;',O<W)C "]U<W(O8V-S+VQI8B]V86QU97,M6&$N;P ;&EB9V-C,BYC "]U
|
||||
M<W(T+T=.050O9V-C+3(N-BXS+P N+VQI8F=C8S(N8P!G8V,R7V-O;7!I;&5D
|
||||
M+@!I;G0Z=#$]<C$[+3(Q-#<T.#,V-#@[,C$T-S0X,S8T-SL 8VAA<CIT,CUR
|
||||
M,CLP.S$R-SL ;&]N9R!I;G0Z=#,]<C$[+3(Q-#<T.#,V-#@[,C$T-S0X,S8T
|
||||
M-SL =6YS:6=N960@:6YT.G0T/7(Q.S [+3$[ &QO;F<@=6YS:6=N960@:6YT
|
||||
M.G0U/7(Q.S [+3$[ &QO;F<@;&]N9R!I;G0Z=#8]<C$[,#$P,# P,# P,# P
|
||||
M,# P,# P,# P,# [,#<W-S<W-S<W-S<W-S<W-S<W-S<W-SL ;&]N9R!L;VYG
|
||||
M('5N<VEG;F5D(&EN=#IT-SUR,3LP,# P,# P,# P,# P.S Q-S<W-S<W-S<W
|
||||
M-S<W-S<W-S<W-S<W.P!S:&]R="!I;G0Z=#@]<C$[+3,R-S8X.S,R-S8W.P!S
|
||||
M:&]R="!U;G-I9VYE9"!I;G0Z=#D]<C$[,#LV-34S-3L <VEG;F5D(&-H87(Z
|
||||
M=#$P/7(Q.RTQ,C@[,3(W.P!U;G-I9VYE9"!C:&%R.G0Q,3UR,3LP.S(U-3L
|
||||
M9FQO870Z=#$R/7(Q.S0[,#L 9&]U8FQE.G0Q,SUR,3LX.S [ &QO;F<@9&]U
|
||||
M8FQE.G0Q-#UR,3LX.S [ &-O;7!L97@@:6YT.G0Q-3US.')E86PZ,2PP+#,R
|
||||
M.VEM86<Z,2PS,BPS,CL[ &-O;7!L97@@9FQO870Z=#$V/7(Q-CLT.S [ &-O
|
||||
M;7!L97@@9&]U8FQE.G0Q-SUR,3<[.#LP.P!C;VUP;&5X(&QO;F<@9&]U8FQE
|
||||
M.G0Q.#UR,3@[.#LP.P!V;VED.G0Q.3TQ.0!A<F-H7W1Y<&4Z5#(P/65!4D-(
|
||||
M7S,R0DE4.C L05)#2%\V-$))5#HQ+#L <F5G7V-L87-S.E0R,3UE3D]?4D5'
|
||||
M4SHP+$=%3D5204Q?4D5'4SHQ+$907U)%1U,Z,BQ!3$Q?4D5'4SHS+$Q)35]2
|
||||
M14=?0TQ!4U-%4SHT+#L ;6%C:&EN95]M;V1E.E0R,CUE5D])1&UO9&4Z,"Q1
|
||||
M26UO9&4Z,2Q(26UO9&4Z,BQ04TEM;V1E.C,L4TEM;V1E.C0L4$1);6]D93HU
|
||||
M+$1);6]D93HV+%1);6]D93HW+$]);6]D93HX+%%&;6]D93HY+$A&;6]D93HQ
|
||||
M,"Q4449M;V1E.C$Q+%-&;6]D93HQ,BQ$1FUO9&4Z,3,L6$9M;V1E.C$T+%1&
|
||||
M;6]D93HQ-2Q30VUO9&4Z,38L1$-M;V1E.C$W+%A#;6]D93HQ."Q40VUO9&4Z
|
||||
M,3DL0U%);6]D93HR,"Q#2$EM;V1E.C(Q+$-326UO9&4Z,C(L0T1);6]D93HR
|
||||
M,RQ#5$EM;V1E.C(T+$-/26UO9&4Z,C4L0DQ+;6]D93HR-BQ#0VUO9&4Z,C<L
|
||||
M0T-8;6]D93HR."Q#0U].3T]6;6]D93HR.2Q#0UA?3D]/5FUO9&4Z,S L0T-&
|
||||
M4&UO9&4Z,S$L0T-&4$5M;V1E.C,R+$U!6%]-04-(24Y%7TU/1$4Z,S,L.P!M
|
||||
M;V1E7V-L87-S.E0R,SUE34]$15]204Y$3TTZ,"Q-3T1%7TE.5#HQ+$U/1$5?
|
||||
M1DQ/050Z,BQ-3T1%7U!!4E1)04Q?24Y4.C,L34]$15]#0SHT+$U/1$5?0T]-
|
||||
M4$Q%6%])3E0Z-2Q-3T1%7T-/35!,15A?1DQ/050Z-BQ-05A?34]$15]#3$%3
|
||||
M4SHW+#L <'1R9&EF9E]T.G0Q '-I>F5?=#IT- !W8VAA<E]T.G0S %51271Y
|
||||
M<&4Z=#$Q %-)='EP93IT,0!54TET>7!E.G0T $1)='EP93IT-@!51$ET>7!E
|
||||
M.G0W %-&='EP93IT,3( 1$9T>7!E.G0Q,P!W;W)D7W1Y<&4Z=#$ 1$ES=')U
|
||||
M8W0Z5#(T/7,X:&EG:#HQ+# L,S([;&]W.C$L,S(L,S([.P!$275N:6]N.G0R
|
||||
M-3UU.',Z,C0L,"PV-#ML;#HV+# L-C0[.P!F=6YC7W!T<CIT,C8]*C(W/68Q
|
||||
M.0!?7V1O7V=L;V)A;%]D=&]R<SI&,3D
|
||||
M $ ! @ ! -0 #4 $0
|
||||
M 0 ) !0 ( 0#H Z FP #
|
||||
M 0 $ #P L " $#5 U0 5@ ! !H $
|
||||
M $ !< # @ !"+0 BT ")0 0
|
||||
M ? ! ( 0K< *W %0 # $0 0 , *0
|
||||
M 0 " $+, "S #D P \ $ # #, !
|
||||
M!@ !#!0 P4 '- ! Y 0 8 1-(
|
||||
M 32 )@ 0 /P $ & $3X $^
|
||||
M , $ $4 ! !@ !$^P !/L "
|
||||
M ! !, 0 8 1/T 3] @
|
||||
M 0 4P $ " $4 % -+ (
|
||||
M %L ! P "%TP !=, ! ! 0
|
||||
M !@ !@ , A=0 74 (@ $ 0 ( :0
|
||||
M $ ' (7V %]@ $8 $ # &X !
|
||||
M P "&/ !CP % ! !T " , AD(
|
||||
M 9" \ @ >0 ( &0@
|
||||
M 90 $P "D $ $ ($ # !]8 "XP
|
||||
M 0 ") 0 B/ $@
|
||||
M 0 , E0 $ (H0 $; !
|
||||
M )X ! ".@ !^ ! P
|
||||
M "D P EF ,8 $ K@
|
||||
M , )EX "; ! +T #
|
||||
= ";Y &'P 0 !
|
||||
|
||||
end
|
||||
111
c/build-tools/os/msdos/fixtimer.c
Normal file
111
c/build-tools/os/msdos/fixtimer.c
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <dos.h>
|
||||
|
||||
#define IO_RTC 0x70 /* RTC */
|
||||
|
||||
#define RTC_SEC 0x00 /* seconds */
|
||||
#define RTC_MIN 0x02 /* minutes */
|
||||
#define RTC_HRS 0x04 /* hours */
|
||||
#define RTC_WDAY 0x06 /* week day */
|
||||
#define RTC_DAY 0x07 /* day of month */
|
||||
#define RTC_MONTH 0x08 /* month of year */
|
||||
#define RTC_YEAR 0x09 /* month of year */
|
||||
#define RTC_STATUSA 0x0a /* status register A */
|
||||
#define RTCSA_TUP 0x80 /* time update, don't look now */
|
||||
|
||||
#define RTC_STATUSB 0x0b /* status register B */
|
||||
|
||||
#define RTC_DIAG 0x0e /* status register E - bios diagnostic */
|
||||
#define RTCDG_BITS "\020\010clock_battery\007ROM_cksum\006config_unit\005memory_size\004fixed_disk\003invalid_time"
|
||||
|
||||
|
||||
|
||||
/* convert 2 digit BCD number */
|
||||
static int bcd( unsigned int i )
|
||||
{
|
||||
return ((i/16)*10 + (i%16));
|
||||
}
|
||||
|
||||
static unsigned int rtcin( unsigned int what )
|
||||
{
|
||||
outportb( IO_RTC, what );
|
||||
return inportb( IO_RTC+1 );
|
||||
}
|
||||
|
||||
|
||||
void fix_date( void )
|
||||
{
|
||||
int s;
|
||||
struct date date;
|
||||
struct time time;
|
||||
|
||||
/* initialize brain-dead battery powered clock */
|
||||
outportb( IO_RTC, RTC_STATUSA );
|
||||
outportb( IO_RTC+1, 0x26 );
|
||||
outportb( IO_RTC, RTC_STATUSB );
|
||||
outportb( IO_RTC+1, 2 );
|
||||
|
||||
outportb( IO_RTC, RTC_DIAG );
|
||||
s = inportb( IO_RTC+1 );
|
||||
if (s) printf("RTC BIOS diagnostic error %b\n", s, RTCDG_BITS);
|
||||
|
||||
/* check for presence of clock */
|
||||
s = rtcin(RTC_STATUSA);
|
||||
if ( s == 0xff || s == 0 ) {
|
||||
printf( "Real-time clock not found\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
/* ready for a read? */
|
||||
while ((s & RTCSA_TUP) == RTCSA_TUP)
|
||||
s = rtcin(RTC_STATUSA);
|
||||
|
||||
date.da_year = bcd(rtcin(RTC_YEAR)) + 1900; /* year */
|
||||
if ( date.da_year < 1970) date.da_year += 100;
|
||||
date.da_year -= 1980;
|
||||
date.da_mon = bcd(rtcin(RTC_MONTH)); /* month */
|
||||
date.da_day = bcd(rtcin(RTC_DAY)); /* day */
|
||||
|
||||
(void)bcd(rtcin(RTC_WDAY)); /* weekday */
|
||||
|
||||
time.ti_hour = bcd(rtcin(RTC_HRS)); /* hour */
|
||||
time.ti_min = bcd(rtcin(RTC_MIN)); /* minutes */
|
||||
time.ti_sec = bcd(rtcin(RTC_SEC)); /* seconds */
|
||||
time.ti_hund = 0;
|
||||
|
||||
setdate( & date );
|
||||
settime( & time );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void fix_timer( void )
|
||||
{
|
||||
#define PIT_PORT 0x40
|
||||
#define TIMER_CNTR0 (PIT_PORT + 0) /* timer 0 counter port */
|
||||
#define TIMER_MODE (PIT_PORT + 3) /* timer mode port */
|
||||
#define TIMER_SEL0 0x00 /* select counter 0 */
|
||||
#define TIMER_RATEGEN 0x04 /* mode 2, rate generator */
|
||||
#define TIMER_16BIT 0x30 /* r/w counter 16 bits, LSB first */
|
||||
|
||||
/* set timer 0 to generate interrupts every period */
|
||||
outportb( TIMER_MODE, TIMER_SEL0|TIMER_RATEGEN|TIMER_16BIT );
|
||||
outportb( TIMER_CNTR0, 0 ); /* counter low */
|
||||
outportb( TIMER_CNTR0, 0 ); /* counter high */
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
/* Make timer count at correct pace */
|
||||
fix_timer();
|
||||
|
||||
/* Fix the date */
|
||||
fix_date();
|
||||
|
||||
return 0;
|
||||
}
|
||||
162
c/build-tools/os/msdos/fixtimer.uue
Normal file
162
c/build-tools/os/msdos/fixtimer.uue
Normal file
@@ -0,0 +1,162 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
begin 664 fixtimer.exe
|
||||
M35IF 0X 0 @ T __^; 8 (@ $ ^R!R:@$
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M "Z3 $NB1;X ;0PS2&++@( BQXL ([:HY( C :0
|
||||
M (D>C ")+JP QP:6 /__Z#0!Q#Z* (O'B]BY_W\F@3TX-W49)HM5 H#Z/740
|
||||
M@.;?_P:6 (#^674$_P:6 /*NXV%#)C@%==: S8#WV8D.B@"Y 0#3XX/#"(/C
|
||||
M^(D>C@",VBOJBSY\ H'_ )S![\ HD^? *!Q^P$<B@#/GH"<B*Q!-/O1SOO
|
||||
M<AF#/GP" '0'@SYZ @!U#K\ $#OO=P>+_>L#Z2$!B]\#VHD>I ")'J@ H9
|
||||
M*]B.P+1*5\TA7]/G^H[2B^?[,\ NC@;X ;^F!+GL!"O/\ZH._Q:8!.BU NB=
|
||||
M [0 S1J)%I@ B0Z: /\6G 3_-H@ _S:& /\VA #H%P)0Z%H"+HX>^ 'H? .
|
||||
M_Q::!#/ B_"Y+P"0_ ($@-0 1N+X+3<-D'0*N1D D+HO .B+ (OLM$R*1@+-
|
||||
M(;D. )"Z2 #IAP >N US2&)'G0 C 9V +@$-<TAB1YX (P&>@"X!37-(8D>
|
||||
M? ",!GX N 8US2&)'H C :" +@ )8S*CMJZ6 '-(1_#'K@ )<46= #-(1\>
|
||||
MN 0EQ19X ,TA'QZX!27%%GP S2$?'K@&)<46@ #-(1_#QP:6 R\.T0+L"
|
||||
M ,TAP[D> )"Z5@ NCA[X >CI_[@# %#H*?\ %6+[(M&!+$$T^BZ"@#WXHM6
|
||||
M!('B#P #PNL 7<-5B^R*1@3F<.1QM #K %W#58OL@^P(5K *YG"P)N9QL OF
|
||||
M<+ "YG&P#N9PY'&T (OP"_9T#[BR 5!6N)0!4.B<"8/$!K@* %#HM?]9B_"!
|
||||
M_O\ = 0+]G4+N/P!4.A^"5GIJ0#K"K@* %#HE/]9B_"+QB6 #V '3LN D
|
||||
M4.B _UE0Z%__605L!XE&^(%^^+('?02#1OAD@6[XO >X" !0Z%W_65#H//]9
|
||||
MB$;[N < 4.A-_UE0Z"S_68A&^K@& %#H/?]94.@<_UFX! !0Z##_65#H#_]9
|
||||
MB$;]N ( 4.@@_UE0Z/_^68A&_#/ 4.@1_UE0Z/#^68A&_\9&_@"-1OA0Z'H1
|
||||
M68U&_%#HA1%97HOE7<.P-.9#L #F0+ YD##Z/#_Z.S^,\#K ,-5B^Q6BW8$
|
||||
M"_9\%(/^6'8#OE< B388 HJ$&@*8ENL-]]Z#_B-WZL<&& +__XO&HY0 N/__
|
||||
MZP!>7<(" ,-5B^SK"HL>?@+1X_^7I@2A?@+_#GX""\!UZ_\6= +_%G8"_Q9X
|
||||
M O]V!.AZ_5E=PP "Z/!JH#+HP>K /\C@:0 +Z #+D)JQ C,6'UI.+
|
||||
M-HH @\8"N0$ @#Z2 -R$8X&C "+_K%_,L#RKN-V@/%_@^P"N $ \,#P27^
|
||||
M_XO\*_AR8(OGC,".V(S0CL!12?.D,L"JCMV'\H?9B\.+T$/H&0!W!W) Z!(
|
||||
M=_D\('0(/ UT!#P)=>@RP.OD"\!T!T*J"L!U 4.&X#+ ^>,5K$DL(G0/!"(\
|
||||
M7'4'@#PB=0*L20OVP^E^_5D#RBZ.'JP#B1Z$ $,#VXOTB^PKZW+FB^6)+H8
|
||||
MXPZ)=@"#Q0(VK K X/IT\#/ B48 +O\FJ@.+#HH 4>A' 5F+^ O ="0>'@>.
|
||||
M'HP ,_;\\Z0?B_@&_S:. .@I 8/$ HO8!Z.( O =0/I$?TSP+G__XD_@\,"
|
||||
M\JXF. 5U](D'PU6+[(,^?@(@=06X 0#K%8M&!(L>?@+1XXF'I@3_!GX",\#K
|
||||
M %W#58OL5E>+?@2+10:CZ 0[QW4(QP;H! ZQ"+=02+'N@$B7<$H>@$B40&
|
||||
M7UY=PU6+[%97BWX$BT8&*06+-0/WBT8&0(D$B7P"H>8$.\=U!HDVY@3K"(O^
|
||||
M WX&B74"B\8%! #K %]>7<-5B^Q6BT8$,](E__^!X@ 4E#H] !968OP@_[_
|
||||
M=00SP.L8H>8$B40"BT8$0(D$B3;F!*'F! 4$ .L 7EW#58OL5HM&!#/2)?__
|
||||
M@>( %)0Z+< 65F+\(/^_W4$,\#K%8DVZ@2)-N8$BT8$0(D$B\8%! #K %Y=
|
||||
MPU6+[%97BWX$"_]U!#/ ZUJ+QP4+ "7X_XOX@S[J! !U!U?HH?]9ZT*+-N@$
|
||||
MB\8+P'0QBP2+UX/"*#O"<@E75N@-_UE9ZR2+!#O'<@Y6Z-'^6?\$B\8%! #K
|
||||
M$(MT!CLVZ 1USU?H(O]9ZP!?7EW#58OLBT8$B]2!Z@ !.\)S!Z.> #/ ZPO'
|
||||
M!I0 " "X___K %W#58OLBT8$BU8& P:> (/2 (O(@<$ 8/2 O2=0H[S',&
|
||||
MAP:> .L+QP:4 @ N/__ZP!=PU6+[/]V!.B?_UGK %W#58OLBT8$F5)0Z++_
|
||||
MB^7K %W#58OL@^P"5E>+7@2+-XO&B4;^BUX$]T<"0 !T!(O&ZQ^+7@2+?PKK
|
||||
M"XO?1X _"G4#_T;^B\9."\!U[HM&_NL 7UZ+Y5W" @!5B^Q6BW8$5NA3!%D+
|
||||
MP'0%N/__ZTR#?@H!=1"#/ !^"U;HE?^9*48&&58(@60"7_['! BT0(B40*
|
||||
M_W8*_W8(_W8&BD0$F%#HW *#Q B#^O]U"CW__W4%N/__ZP(SP.L 7EW#58OL
|
||||
M@^P$5HMV!%;H[ -9"\!T"+K__[C__^L_N $ 4#/ 4%"*1 284.B8 H/$"(E6
|
||||
M_HE&_(,\ 'X9BU;^BT;\4E!6Z!#_F8O8B\I86BO#&]'K!HM6_HM&_.L 7HOE
|
||||
M7<-5B^RX $2+7@3-(;@ '($T>+1T.L 7<-5B^Q65XM^"HMV!(M$#CO&=0R#
|
||||
M?@@"?P:!__]_=@:X___IJ@"#/NH# '4/N) ".\9U",<&Z@,! .L4@S[H P!U
|
||||
M#;B CO&=0;'!N@# 0"#/ !T#[@! % SP%!05NC&_H/$"/=$ @0 = ?_= CH
|
||||
M"PQ9@60"\__'1 8 (O&!04 B40(B40*@WX( G0_"_]V.\<&= +$"(-^!@!U
|
||||
M&%?H6?U9B48&"\!T!X%, @0 ZP6X___K&XM&!HE$"HE$"(E\!H-^" %U!8%,
|
||||
M @@ ,\#K %]>7<-65[\$ +Z NL0]T0" P!T!5;HG )93X/&$ O_=>Q?7L-5
|
||||
MB^R![(H 5E>+1@A /0( <P4SP.GV (M>!-'C]X? P" =!+_=@C_=@;_=@3H
|
||||
MXP"#Q ;IUP"+7@31XX&GP /__8M&!HF&?/^+1@B)AGC_C;9^_^MM_XYX_XN>
|
||||
M?/__AGS_B@>(AGO_/ IU!,8$#4:*AGO_B 1&C89^_XO6*]"!^H ?#Z-AG[_
|
||||
MB_XK^%>-AG[_4/]V!.A[ (/$!HF&=O\[QW0;@[YV_P!S!;C__^L-BT8(*X9X
|
||||
M_P.&=O\KQ^M/C;9^_X.^>/\ = /IB?^-AG[_B_XK^(O'"\!V+E>-AG[_4/]V
|
||||
M!.@M (/$!HF&=O\[QW07@[YV_P!S!;C__^L)BT8( X9V_RO'ZP6+1@CK %]>
|
||||
MB^5=PU6+[(M>!-'C]X? P (=!"X @!0,\!04/]V!.@H (OEM$"+7@2+3@B+
|
||||
M5@;-(7(/4(M>!-'C@8_ P 06.L&4.@%^>L 7<-5B^R+7@31XX&GP /__;1"
|
||||
MBD8*BUX$BTX(BU8&S2%R NL'4.C;^)GK %W#58OL@^PB5E<&BWX*'@>+7@B#
|
||||
M^R1W6(#[ G)3BT8,BTX."\E]$8!^!@!T"\8%+4?WV??8@]D C7;>XP^1*]+W
|
||||
M\Y'W\X@41N,)Z_$KTO?SB!1&"\!U]8U.WO?9 \[\3HH$+ IS! 0ZZP,"1@2J
|
||||
MXN^P *H'BT8*ZP!?7HOE7<(, %6+[(-^" IU!HM&!)GK!8M&!#/24E#_=@;_
|
||||
M=@BP 5"P85#H7/_K %W#58OL_W8&_W8$_W8(_W8*L !0L&%0Z$#_ZP!=PU6+
|
||||
M[/]V!O]V!/]V"/]V"H-^"@IU!;@! .L",\!0L&%0Z!G_ZP!=P[KL ^L#NO$#
|
||||
MN04 D+1 NP( S2&Y)P"0NO8#M$#-(>EM]E6+[%97BW8$BT0..\9T!;C__^MF
|
||||
M@SP ?"WW1 (( '4,BT0*B]:#P@4[PG46QP0 (M$"HO6@\(%.\)U!HM$"(E$
|
||||
M"C/ ZS2+? 8#/$<I/%>+1 B)1 I0BD0$F%#H$OV#Q 8[QW01]T0" )U"H%,
|
||||
M A N/__ZP0SP.L 7UY=PU6+[+AK#5"XD )0_W8$C48&4.A, NL 7<-5B^R+
|
||||
M7@;_#_]V!HI&!)A0Z 8 B^7K %W#58OL@^P"5HMV!HI&!(A&__\$?3:*1O__
|
||||
M1 J+7 J(1__W1 (( '0;@'[_"G0&@'[_#74/5N@9_UD+P'0&N/__Z>D BD;_
|
||||
MM #IX0#_#/=$ I =0?W1 (" '4+@4P"$ "X___IQ@"!3 ( 8-\!@!T)H,\
|
||||
M '015NC7_ED+P'0&N/__Z:< ZPJX__^+5 8KPHD$Z7W_Z94 @S[J P!U.;B0
|
||||
M CO&=3**1 284.@)^UD+P'4%@60"__VX )0]T0" )T!;@" .L",\!0,\!0
|
||||
M5NC]^H/$".F/_X!^_PIU'_=$ D =1BX 0!0N!X$4(I$!)A0Z.#\@\0&/0$
|
||||
M=1BX 0!0C48$4(I$!)A0Z,C\@\0&/0$ =!'W1 ( G4*@4P"$ "X___K!XI&
|
||||
M_[0 ZP!>B^5=PU6+[%:+=@2XD )05NC!_EE9ZP!>7<-5B^R#[ )65XMV!(M^
|
||||
M!D?W1 (( '0CZP+K $^+QPO =!56BUX(_T8(B@>84.B+_EE9/?__=>+I=0#W
|
||||
M1 ) '0W@WP& '0QBT0&.\=S*H,\ '0-5NBT_5D+P'0$,\#K4T]7_W8(BD0$
|
||||
MF%#H(?R#Q :)1OXK?O[K-^L"ZP!/B\<+P'0L_P1]%8M>"/]&"(H'_T0*BUP*
|
||||
MB$?_M #K#E:+7@C_1@C_-^CZ_5E9/?__=<N+Q^L 7UZ+Y5W"!@#_)IX$58OL
|
||||
MBU8$N00/NR<$_(K&TNC7JHK&(L77JHK"TNC7JHK"(L77JNL 7<(" %6+[('L
|
||||
ME@!65\=&J@ QD:M4.LX5[G__S+ \J[WT4E?PX@%1_Y.K7XB4U%2!HU&KBOX
|
||||
MC4:N4%?_=@C_5@K&1JU0 7ZJC7ZN!UI96\,&_(U^KHF^;/^+OFS_BW8&K K
|
||||
M=!$\)700B 5'_DZM?^_HN?_KZNEU!(FV>/^L/"5TYXF^;/\SR8F.=O^)CFK_
|
||||
MB(YU_\>&</___\>&<O___^L!K#+DB]"+V(#K((#[8'-'BI\W!(O#/1< =@/I
|
||||
M'02+V-'C+O^G& ]C#TL/I ]7#\D/TP\5$!\0+Q"*#V00/Q!#$$<0Z1";$3P1
|
||||
M7!'_$BP3+!,L$W8/@ _IX0. _0!W^(..:O\!ZYN _0!W[(..:O\"ZX^ _0!W
|
||||
MX("^=?\K= 2(EG7_Z7S_@Z9J_]^U!>ER_X..:O\@M07I:/^ _0!W1/>&:O\"
|
||||
M '4A@XYJ_PBU >E1_^F( XM^!(L%@T8$ H#] G,)B89P_[4#Z3?_@/T$=>&)
|
||||
MAG+__L7I*?^ _01ST[4$Z1__DBPPF(#] G<;M0*'AG#_"\!\TM'@B]#1X-'@
|
||||
M \(!AG#_Z?O^@/T$=:6'AG+_"\!\M-'@B]#1X-'@ \(!AG+_Z=W^@XYJ_Q"U
|
||||
M!>G3_H&.:O\ 8.F:O_OM07IP_Z#IFK_[X&.:O^ +4%Z;/^MPCK"K<*ZPNW
|
||||
M$+/I MK&AG7_ ,:&;_\ B)9N_XM^!(L%,]+K$;<*QH9O_P&(EF[_BWX$BP69
|
||||
M1T>)=@;WAFK_$ !T!(L51T>)?@2-OGO_"\!U,PO2=2^#OG+_ '4MB[YL_XN.
|
||||
M</_C&X/Y_W06BX9J_R4( '0$LC#K K(@BL+HMOWB^>GI_8..:O\$4E!7BL>8
|
||||
M4(J&;_]04^B0^18'BY9R_PO2?P/I% 'I(0&(EF[_B78&C;YZ_XM>!/\W0T.)
|
||||
M7@3WAFK_( !T#_\W0T.)7@06!^@7_; ZJA8'Z _]Q@4 QH9O_P"#IFK_^XV.
|
||||
M>O\K^8?/BY9R_SO1?P*+T>F^ (EV!HB6;O^+?@2+!8-&! (6!XV^>_\RY(D%
|
||||
MN0$ Z=@ B78&B)9N_XM^!/>&:O\@ '4,BSV#1@0"'@<+_^L*Q#V#1@0$C, +
|
||||
MQW4%'@>_( 3HVOP[CG+_=@2+CG+_Z9D B78&B)9N_XM^!(N.<O\+R7T#N08
|
||||
M5U&-GGO_4U*X 0 CAFK_4(N&:O^I@ !T"K@" ,=&_@0 ZQ>I %T"K@( ,=&
|
||||
M_@H ZPC'1OX( +@& %#H-_R+1OX!1@06!XV^>__WAFK_" !T$XN6</\+TGX+
|
||||
MZ%O\*]%^!(F6=O^*AG7_"L!T%": /2UT#H.N=O\!@Y9V_P!/)H@%Z#3\B_>+
|
||||
MOFS_BYYP_[@% ".&:O\]!0!U%HJF;O^ _&]U$(.^=O\ ?P;'AG;_ 0#K'Y"
|
||||
M_'AT!8#\6'44@XYJ_T!+2X.N=O\"?0;'AG;_ #CG;_]X9J_P( =0SK!K @
|
||||
MZ.'[2SO9?_;WAFK_0 !T#+ PZ,_[BH9N_^C(^XN6=O\+TGXG*\HKVB:*!#PM
|
||||
M= @\('0$/"MU!R:LZ*C[24N'RN,'L##HG?OB^8?*XQ$KV2:LB 5'_DZM?P/H
|
||||
MD/OB\0O;?@F+R[ @Z'O[XOGIKON)=@:+?@3WAFK_( !U"HL]@T8$ AX'ZP;$
|
||||
M/8-&! 2X4 J1JT#1JHFB07I??N+MGC_B[YL_[ EZ#S[K K =?B ?JU0?0/H
|
||||
M-OL'BT:JZP!?7HOE7<(( %6+[%97BW8$@S[H! !T'(L>Z 2+?P:+'N@$B7<&
|
||||
MB74$B7P&H>@$B40$ZPJ)-N@$B70$B70&7UY=PU6+[(/L E97BW8&BWX$BP0!
|
||||
M!:'F!#O&=0:)/N8$ZPV+! /&B4;^BU[^B7\"5NA-\5E?7HOE7<-6H>H$.P;F
|
||||
M!'42_S;J!.C:\EDSP*/F!*/J!.L[BQ[F!(MW O<$ 0!U(E;H&?%9.S;J!'4*
|
||||
M,\"CY@2CZ@3K!HM$ J/F!%;HH_)9ZPS_-N8$Z)GR68DVY@1>PU6+[(/L E97
|
||||
MBW8$_PR+! /&B4;^BWP"]P4! '44.S;J!'0.BP0!!8M>_HE_ HOWZP56Z +_
|
||||
M68M>_O<' 0!U"?]V_E;H*O]965]>B^5=PU6+[%:+=@0+]G4"ZQ>+Q@7\_XOP
|
||||
M.S;F!'4%Z#S_ZP56Z(__65Y=PU6+[%:T*XMV!(L,BU0"S2%>7<-5B^Q6M"V+
|
||||
M=@2+#(M4 LTA7EW# !4=7)B;RU#("T@0V]P>7)I9VAT("AC
|
||||
M*2 Q.3@X($)O<FQA;F0@26YT;"X 3G5L;"!P;VEN=&5R(&%S<VEG;FUE;G0-
|
||||
M"D1I=FED92!E<G)O<@T*06)N;W)M86P@<')O9W)A;2!T97)M:6YA=&EO;@T*
|
||||
M .P$[ 3L
|
||||
M!
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M 4E1#($))3U,@9&EA9VYO<W1I8R!E<G)O<B E
|
||||
M8@H $ AC;&]C:U]B871T97)Y!U)/35]C:W-U;09C;VYF:6=?=6YI= 5M96UO
|
||||
M<GE?<VEZ901F:7AE9%]D:7-K VEN=F%L:61?=&EM90!296%L+71I;64@8VQO
|
||||
M8VL@;F]T(&9O=6YD"@ $P("! 4&" @(%!4%$_\6!1$"____________
|
||||
M_____P4%_____________________P__(P+_#_____\3__\" @4/ O___Q/_
|
||||
M_________R/_____(_\3_P!Z WH#>@, 0 D" ( "
|
||||
M * @$ "0 @ @(" H ( $," P
|
||||
M + " !" @0 # @ #_ T ( _P
|
||||
M . " /\ #P @ #_ , _P
|
||||
M ! # /\ @ P #_ , ,
|
||||
M_P $ # /\ !0 P #_ 8 ,
|
||||
M _P ' # /\ " P #_
|
||||
MD , _P * # /\ "P P$@ B "( 2@ J#_
|
||||
M______________________________________\ <')I;G0@<V-A;F8@
|
||||
M.B!F;&]A=&EN9R!P;VEN="!F;W)M871S(&YO="!L:6YK960-"@ - "AN=6QL
|
||||
M*0 P,3(S-#4V-S@Y04)#1$5& !04 105%!04% ( % ,$% D%!04%!04%!044
|
||||
M%!04%!04%!04% \7#P@4%!0'%!84%!04%!04%!0-%!04%!04%!04%! *#P\/
|
||||
G" H4% 84$@L.%!01% P4% T4%!04%!04 -(!T@'9 50+60M9"UD+
|
||||
|
||||
end
|
||||
331
c/build-tools/os/msdos/ifc.c
Normal file
331
c/build-tools/os/msdos/ifc.c
Normal file
@@ -0,0 +1,331 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <process.h>
|
||||
|
||||
#include <io.h>
|
||||
|
||||
void * xmalloc( int size )
|
||||
{
|
||||
void * p = (void *)malloc( size );
|
||||
if ( !p ) {
|
||||
fprintf( stderr, "out of memory\n" );
|
||||
exit( 1 );
|
||||
}
|
||||
return p;
|
||||
}
|
||||
void * xrealloc( void * old, int size )
|
||||
{
|
||||
void * p = (void *)realloc( old, size );
|
||||
if ( !p ) {
|
||||
fprintf( stderr, "out of memory\n" );
|
||||
exit( 1 );
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
char ** argv_fix( int * argc, char ** argv )
|
||||
{
|
||||
char ** new = NULL;
|
||||
int max = 20;
|
||||
int cnt = 0;
|
||||
int j;
|
||||
|
||||
for ( j = 1; argv[j]; ++j )
|
||||
if ( argv[j][0] == '@' && access(argv[j]+1,0)==0 )
|
||||
break;
|
||||
if ( argv[j] == NULL )
|
||||
return argv;
|
||||
|
||||
new = (char **)xmalloc( max * sizeof *new );
|
||||
new[cnt++] = *argv++;
|
||||
for ( ; *argv; ++argv ) {
|
||||
if ( cnt >= max )
|
||||
new = (char **)realloc( new, (max*=2) * sizeof *new );
|
||||
|
||||
if ( argv[0][0] != '@' || access(argv[0]+1,0) ) {
|
||||
new[cnt++] = *argv;
|
||||
} else {
|
||||
char line[ 1000 ];
|
||||
FILE * f = fopen( argv[0]+1, "r" );
|
||||
if ( !f ) {
|
||||
perror( argv[0]+1 );
|
||||
exit( 2 );
|
||||
}
|
||||
while ( fgets( line, sizeof line, f ) ) {
|
||||
int len = strlen( line );
|
||||
/* delete trailing newlines */
|
||||
while ( line[len-1] == '\n' || line[len-1] == '\r' )
|
||||
line[--len] = '\0';
|
||||
if ( cnt >= max )
|
||||
new = (char **)xrealloc( new, (max*=2) * sizeof *new );
|
||||
new[cnt] = (char *)xmalloc( len+1 );
|
||||
strcpy( new[cnt], line );
|
||||
++cnt;
|
||||
}
|
||||
fclose( f );
|
||||
}
|
||||
}
|
||||
if ( cnt >= max )
|
||||
new = (char **)xrealloc( new, (max+1) * sizeof *new );
|
||||
new[cnt] = NULL;
|
||||
*argc = cnt;
|
||||
return new;
|
||||
}
|
||||
|
||||
|
||||
const char * USAGE =
|
||||
"usage: $progname [ -cNvmV ] file [ file ... ] dest-directory-or-file\n"
|
||||
" -v -- verbose\n"
|
||||
" -V suffix -- suffix to append to targets (before any . suffix)\n"
|
||||
" eg: -V _g would change 'foo' to 'foo_g' and\n"
|
||||
" 'libfoo.a' to 'libfoo_g.a'\n"
|
||||
" -m mode -- mode for new file(s)\n"
|
||||
" -c -- copy instead of move (always on)\n"
|
||||
" -N -- copy only if source is newer than target\n"
|
||||
;
|
||||
|
||||
void fatal( char * msg )
|
||||
{
|
||||
if ( msg )
|
||||
fprintf( stderr, "%s\n", msg );
|
||||
fprintf( stderr, "%s", USAGE );
|
||||
exit( 1 );
|
||||
}
|
||||
|
||||
char * basename( char * f )
|
||||
{
|
||||
char * b = strrchr( f, '/' );
|
||||
if ( b ) ++b;
|
||||
else b = f;
|
||||
return b;
|
||||
}
|
||||
|
||||
#include <sys/stat.h>
|
||||
int is_dir( char * path )
|
||||
{
|
||||
struct stat buf;
|
||||
if ( stat( path, &buf ) )
|
||||
return 0;
|
||||
return buf.st_mode & S_IFDIR;
|
||||
}
|
||||
int is_file( char * path )
|
||||
{
|
||||
struct stat buf;
|
||||
if ( stat( path, &buf ) )
|
||||
return 0;
|
||||
return buf.st_mode & S_IFREG;
|
||||
}
|
||||
int newer( char * p1, char * p2 )
|
||||
{
|
||||
struct stat buf1;
|
||||
struct stat buf2;
|
||||
if ( stat( p1, &buf1 ) )
|
||||
return 0;
|
||||
if ( stat( p2, &buf2 ) )
|
||||
return 0;
|
||||
return buf1.st_mtime > buf2.st_mtime;
|
||||
}
|
||||
|
||||
int filecopy( char * d, char * s, int preserve_time )
|
||||
{
|
||||
#if 0
|
||||
int status;
|
||||
char * argv[ 5 ];
|
||||
argv[0] = "cp";
|
||||
argv[1] = "-p";
|
||||
argv[2] = s;
|
||||
argv[3] = d;
|
||||
argv[4] = NULL;
|
||||
status = spawnvp( P_WAIT, argv[0], argv );
|
||||
if ( status )
|
||||
perror( "cp" );
|
||||
return status;
|
||||
#else
|
||||
FILE * fs;
|
||||
FILE * fd;
|
||||
char buffer[ 8192 ];
|
||||
int n;
|
||||
struct ftime When;
|
||||
struct stat Stat;
|
||||
|
||||
fs = fopen( s, "rb" );
|
||||
if ( fs == NULL ) {
|
||||
perror( s );
|
||||
return 1;
|
||||
}
|
||||
fd = fopen( d, "wb" );
|
||||
if ( fd == NULL ) {
|
||||
perror( d );
|
||||
fclose( fs );
|
||||
return 2;
|
||||
}
|
||||
|
||||
if ( preserve_time )
|
||||
if ( getftime( fileno(fs), &When ) ) {
|
||||
perror( s );
|
||||
preserve_time = 0;
|
||||
}
|
||||
|
||||
do {
|
||||
n = fread( buffer, 1, sizeof buffer, fs );
|
||||
if ( n > 0 )
|
||||
if ( fwrite( buffer, 1, n, fd ) < 0 ) {
|
||||
perror( d );
|
||||
return 3;
|
||||
}
|
||||
} while ( n > 0 );
|
||||
|
||||
fclose( fs );
|
||||
|
||||
/* Fix time stamp */
|
||||
if ( preserve_time )
|
||||
if ( setftime( fileno(fd), &When ) ) {
|
||||
perror( s );
|
||||
preserve_time = 0;
|
||||
}
|
||||
fclose( fd );
|
||||
|
||||
/* Fix access rights */
|
||||
if ( stat( s, &Stat ) )
|
||||
perror( s );
|
||||
else if ( chmod( d, Stat.st_mode ) )
|
||||
perror( d );
|
||||
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
int main( int argc, char * argv[] )
|
||||
{
|
||||
char * progname;
|
||||
int verbose = 0;
|
||||
int only_if_newer= 0;
|
||||
char * suffix = NULL;
|
||||
char * mode = NULL;
|
||||
char * dest;
|
||||
char ** pp;
|
||||
|
||||
argv = argv_fix( &argc, argv );
|
||||
|
||||
progname = basename( *argv++ );
|
||||
|
||||
/* process the options */
|
||||
while ( argv[0] && argv[0][0] == '-' ) {
|
||||
switch ( argv[0][1] ) {
|
||||
case 'N':
|
||||
++argv;
|
||||
only_if_newer = 1;
|
||||
break;
|
||||
case 'c':
|
||||
++argv;
|
||||
/* We always copy, regardless */
|
||||
break;
|
||||
case 'v':
|
||||
++argv;
|
||||
verbose = 1;
|
||||
break;
|
||||
case 'V':
|
||||
++argv;
|
||||
suffix = *argv;
|
||||
++argv;
|
||||
break;
|
||||
case 'm':
|
||||
++argv;
|
||||
mode = *argv;
|
||||
++argv;
|
||||
break;
|
||||
default:
|
||||
fatal( NULL );
|
||||
}
|
||||
}
|
||||
|
||||
/* Separate source file(s) from dest directory or file */
|
||||
#if 0
|
||||
if ( !argv[0] || !argv[1] )
|
||||
fatal( "missing files or invalid destination" );
|
||||
#else
|
||||
/* We used to require at least one file; not any more */
|
||||
if ( !argv[0] )
|
||||
fatal( "missing files or invalid destination" );
|
||||
if ( !argv[1] )
|
||||
return 0;
|
||||
#endif
|
||||
for ( pp = argv; *pp; ++pp )
|
||||
continue;
|
||||
--pp;
|
||||
dest = *pp;
|
||||
*pp = NULL;
|
||||
|
||||
/* Process the arguments */
|
||||
for (; *argv; ++argv ) {
|
||||
char * f = *argv;
|
||||
char * leaf = basename( f );
|
||||
char target[ 128 ];
|
||||
|
||||
strcpy( target, dest );
|
||||
|
||||
if ( is_dir( target ) ) {
|
||||
strcat( target, "/" );
|
||||
/* if we were given a suffix, then add it as appropriate */
|
||||
if ( suffix ) {
|
||||
char * dot = strchr( leaf, '.' );
|
||||
if ( dot ) {
|
||||
strncat( target, leaf, dot-leaf );
|
||||
strcat( target, suffix );
|
||||
strcat( target, dot );
|
||||
if ( verbose )
|
||||
printf( "%s: %s will be installed as %s",
|
||||
progname, f, strrchr(target,'/')+1 );
|
||||
} else {
|
||||
strcat( target, leaf );
|
||||
strcat( target, suffix );
|
||||
}
|
||||
} else {
|
||||
strcat( target, leaf );
|
||||
}
|
||||
}
|
||||
|
||||
if ( access( f, 0 ) ) {
|
||||
char buf[200];
|
||||
sprintf( buf, "cannot read %s", f );
|
||||
fatal( buf );
|
||||
}
|
||||
|
||||
if ( only_if_newer && is_file( target ) && !newer( f, target ) ) {
|
||||
if ( verbose )
|
||||
printf( "'%s' not newer than '%s'\n", f, target );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( verbose )
|
||||
printf( "rm -f %s\n", target );
|
||||
if ( chmod( target, 0777 ) )
|
||||
if ( verbose )
|
||||
perror( target );
|
||||
if ( unlink( target ) )
|
||||
if ( verbose )
|
||||
perror( target );
|
||||
if ( verbose )
|
||||
printf( "cp -p %s %s\n", f, target );
|
||||
if ( filecopy( target, f, 1 ) )
|
||||
return 1;
|
||||
if ( mode ) {
|
||||
char buf[ 255 ];
|
||||
sprintf( buf, "chmod %s %s\n", mode, target );
|
||||
if ( verbose )
|
||||
printf( "%s\n", buf );
|
||||
system( buf );
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
163
c/build-tools/os/msdos/ifc_exe.uue
Normal file
163
c/build-tools/os/msdos/ifc_exe.uue
Normal file
@@ -0,0 +1,163 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
begin 664 ifc.exe
|
||||
M(VEN8VQU9&4@/'-T9&EO+F@^#0HC:6YC;'5D92 \<W1R:6YG+F@^#0HC:6YC
|
||||
M;'5D92 \<')O8V5S<RYH/@T*#0HC:6YC;'5D92 \:6\N:#X-"@T*=F]I9" J
|
||||
M('AM86QL;V,H(&EN="!S:7IE("D-"GL-"B @("!V;VED("H@<" ]("AV;VED
|
||||
M("HI;6%L;&]C*"!S:7IE("D[#0H@(" @:68@*" A<" I("![#0H)9G!R:6YT
|
||||
M9B@@<W1D97)R+" B;W5T(&]F(&UE;6]R>5QN(B I.PT*"65X:70H(#$@*3L-
|
||||
M"B @("!]#0H@(" @<F5T=7)N(' [#0I]#0IV;VED("H@>')E86QL;V,H('9O
|
||||
M:60@*B!O;&0L(&EN="!S:7IE("D-"GL-"B @("!V;VED("H@<" ]("AV;VED
|
||||
M("HI<F5A;&QO8R@@;VQD+"!S:7IE("D[#0H@(" @:68@*" A<" I("![#0H)
|
||||
M9G!R:6YT9B@@<W1D97)R+" B;W5T(&]F(&UE;6]R>5QN(B I.PT*"65X:70H
|
||||
M(#$@*3L-"B @("!]#0H@(" @<F5T=7)N(' [#0I]#0H-"F-H87(@*BH@87)G
|
||||
M=E]F:7@H(&EN=" J(&%R9V,L(&-H87(@*BH@87)G=B I#0I[#0H@(" @8VAA
|
||||
M<B J*B!N97<@/2!.54Q,.PT*(" @(&EN=" @(" @;6%X(#T@,C [#0H@(" @
|
||||
M:6YT"2 @("!C;G0@/2 P.PT*(" @(&EN= D@(" @:CL-"@T*(" @(&9O<B H
|
||||
M(&H@/2 Q.R!A<F=V6VI=.R K*VH@*0T*"6EF("@@87)G=EMJ75LP72 ]/2 G
|
||||
M0"<@)B8@86-C97-S*&%R9W9;:ETK,2PP*3T]," I#0H)(" @(&)R96%K.PT*
|
||||
M(" @(&EF("@@87)G=EMJ72 ]/2!.54Q,("D-"@ER971U<FX@87)G=CL-"@T*
|
||||
M(" @(&YE=R ]("AC:&%R("HJ*7AM86QL;V,H(&UA>" J('-I>F5O9B J;F5W
|
||||
M("D[#0H@(" @;F5W6V-N="LK72 ]("IA<F=V*RL[#0H@(" @9F]R("@@.R J
|
||||
M87)G=CL@*RMA<F=V("D@('L-"@EI9B H(&-N=" ^/2!M87@@*0T*"2 @("!N
|
||||
M97<@/2 H8VAA<B J*BER96%L;&]C*"!N97<L("AM87@J/3(I("H@<VEZ96]F
|
||||
M("IN97<@*3L-"@D@(" @#0H):68@*"!A<F=V6S!=6S!=("$]("= )R!\?"!A
|
||||
M8V-E<W,H87)G=ELP72LQ+# I("D@('L-"@D@(" @;F5W6V-N="LK72 ]("IA
|
||||
M<F=V.PT*"7T@96QS92R(B I.PT*"2 @("!I
|
||||
M9B H("%F("D@('L-"@D)<&5R<F]R*"!A<F=V6S!=*S$@*3L-"@D)97AI="@@
|
||||
M,B I.PT*"2 @("!]#0H)(" @('=H:6QE("@@9F=E=',H(&QI;F4L('-I>F5O
|
||||
M9B!L:6YE+"!F("D@*2 @>PT*"0EI;G0@;&5N(#T@<W1R;&5N*"!L:6YE("D[
|
||||
M#0H)"2\J(&1E;&5T92!T<F%I;&EN9R!N97=L:6YE<R J+PT*"0EW:&EL92 H
|
||||
M(&QI;F5;;&5N+3%=(#T]("=<;B<@?'P@;&EN95ML96XM,5T@/3T@)UQR)R I
|
||||
M#0H)"2 @("!L:6YE6RTM;&5N72 ]("=<,"<[#0H)"6EF("@@8VYT(#X](&UA
|
||||
M>" I#0H)"2 @("!N97<@/2 H8VAA<B J*BEX<F5A;&QO8R@@;F5W+" H;6%X
|
||||
M*CTR*2 J('-I>F5O9B J;F5W("D[#0H)"6YE=UMC;G1=(#T@*&-H87(@*BEX
|
||||
M;6%L;&]C*"!L96XK,2 I.PT*"0ES=')C<'DH(&YE=UMC;G1=+"!L:6YE("D[
|
||||
M#0H)"2LK8VYT.PT*"2 @("!]#0H)(" @(&9C;&]S92@@9B I.PT*"7T)#0H@
|
||||
M(" @?0T*(" @(&EF("@@8VYT(#X](&UA>" I#0H);F5W(#T@*&-H87(@*BHI
|
||||
M>')E86QL;V,H(&YE=RP@*&UA>"LQ*2 J('-I>F5O9B J;F5W("D[#0H@(" @
|
||||
M;F5W6V-N=%T@/2!.54Q,.PT*(" @("IA<F=C(#T@8VYT.PT*(" @(')E='5R
|
||||
M;B!N97<[#0I]#0H-"@T*8V]N<W0@8VAA<B J(%5304=%(#T@#0HB=7-A9V4Z
|
||||
M("1P<F]G;F%M92!;("UC3G9M5B!=(&9I;&4@6R!F:6QE("XN+B!=(&1E<W0M
|
||||
M9&ER96-T;W)Y+6]R+69I;&5<;B(-"B(@(" @(" @("UV(" @(" @(" @("TM
|
||||
M('9E<F)O<V5<;B(-"B(@(" @(" @("U6('-U9F9I>" @("TM('-U9F9I>"!T
|
||||
M;R!A<'!E;F0@=&\@=&%R9V5T<R H8F5F;W)E(&%N>2 N('-U9F9I>"E<;B(-
|
||||
M"B(@(" @(" @(" @(" @(" @(" @(" @("!E9SH@+58@7V<@=V]U;&0@8VAA
|
||||
M;F=E("=F;V\G('1O("=F;V]?9R<@86YD7&XB#0HB(" @(" @(" @(" @(" @
|
||||
M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" G;&EB9F]O+F$G('1O
|
||||
M("=L:6)F;V]?9RYA)UQN(@T*(B @(" @(" @+6T@;6]D92 @(" @+2T@;6]D
|
||||
M92!F;W(@;F5W(&9I;&4H<RE<;B(-"B(@(" @(" @("UC(" @(" @(" @("TM
|
||||
M(&-O<'D@:6YS=&5A9"!O9B!M;W9E("AA;'=A>7,@;VXI7&XB#0HB(" @(" @
|
||||
M(" M3B @(" @(" @(" M+2!C;W!Y(&]N;'D@:68@<V]U<F-E(&ES(&YE=V5R
|
||||
M('1H86X@=&%R9V5T7&XB#0H[#0H-"G9O:60@9F%T86PH(&-H87(@*B!M<V<@
|
||||
M*0T*>PT*(" @(&EF("@@;7-G("D-"@EF<')I;G1F*"!S=&1E<G(L("(E<UQN
|
||||
M(BP@;7-G("D[#0H@(" @9G!R:6YT9B@@<W1D97)R+" B)7,B+"!54T%'12 I
|
||||
M.PT*(" @(&5X:70H(#$@*3L-"GT-"@T*8VAA<B J(&)A<V5N86UE*"!C:&%R
|
||||
M("H@9B I#0I[#0H@(" @8VAA<B J(&(@/2!S=')R8VAR*"!F+" G+R<@*3L-
|
||||
M"B @("!I9B H(&(@*0DK*V([#0H@(" @96QS90EB(#T@9CL-"B @("!R971U
|
||||
M<FX@8CL-"GT-"@T*(VEN8VQU9&4@/'-Y<R]S=&%T+F@^#0II;G0@:7-?9&ER
|
||||
M*"!C:&%R("H@<&%T:" I#0I[#0H@(" @<W1R=6-T('-T870@8G5F.PT*(" @
|
||||
M(&EF("@@<W1A="@@<&%T:"P@)F)U9B I("D-"@ER971U<FX@,#L-"B @("!R
|
||||
M971U<FX@8G5F+G-T7VUO9&4@)B!37TE&1$E2.PT*?0T*:6YT(&ES7V9I;&4H
|
||||
M(&-H87(@*B!P871H("D-"GL-"B @("!S=')U8W0@<W1A="!B=68[#0H@(" @
|
||||
M:68@*"!S=&%T*"!P871H+" F8G5F("D@*0T*"7)E='5R;B P.PT*(" @(')E
|
||||
M='5R;B!B=68N<W1?;6]D92 F(%-?249214<[#0I]#0II;G0@;F5W97(H(&-H
|
||||
M87(@*B!P,2P@8VAA<B J(' R("D-"GL-"B @("!S=')U8W0@<W1A="!B=68Q
|
||||
M.PT*(" @('-T<G5C="!S=&%T(&)U9C([#0H@(" @:68@*"!S=&%T*"!P,2P@
|
||||
M)F)U9C$@*2 I#0H)<F5T=7)N(# [#0H@(" @:68@*"!S=&%T*"!P,BP@)F)U
|
||||
M9C(@*2 I#0H)<F5T=7)N(# [#0H@(" @<F5T=7)N(&)U9C$N<W1?;71I;64@
|
||||
M/B!B=68R+G-T7VUT:6UE.PT*?0T*#0II;G0@9FEL96-O<'DH(&-H87(@*B!D
|
||||
M+"!C:&%R("H@<RP@:6YT('!R97-E<G9E7W1I;64@*0T*>PT*(VEF(# -"B @
|
||||
M("!I;G0)"7-T871U<SL-"B @("!C:&%R(" @(" @*B!A<F=V6R U(%T[#0H@
|
||||
M(" @87)G=ELP72 ](")C<"([#0H@(" @87)G=ELQ72 ]("(M<"([#0H@(" @
|
||||
M87)G=ELR72 ](',[#0H@(" @87)G=ELS72 ](&0[#0H@(" @87)G=ELT72 ]
|
||||
M($Y53$P[#0H@(" @<W1A='5S(#T@<W!A=VYV<"@@4%]704E4+"!A<F=V6S!=
|
||||
M+"!A<F=V("D[#0H@(" @:68@*"!S=&%T=7,@*0T*"7!E<G)O<B@@(F-P(B I
|
||||
M.PT*(" @(')E='5R;B!S=&%T=7,[#0HC96QS90T*(" @($9)3$4@(" @(" J
|
||||
M(&9S.PT*(" @($9)3$4@(" @(" J(&9D.PT*(" @(&-H87()8G5F9F5R6R X
|
||||
M,3DR(%T[#0H@(" @:6YT"0EN.PT*(" @('-T<G5C="!F=&EM90E7:&5N.PT*
|
||||
M(" @('-T<G5C="!S=&%T"0E3=&%T.PT*#0H@(" @9G,@/2!F;W!E;B@@<RP@
|
||||
M(G)B(B I.PT*(" @(&EF("@@9G,@/3T@3E5,3" I("![#0H)<&5R<F]R*"!S
|
||||
M("D[#0H)<F5T=7)N(#$[#0H@(" @?0T*(" @(&9D(#T@9F]P96XH(&0L(")W
|
||||
M8B(@*3L-"B @("!I9B H(&9D(#T]($Y53$P@*2 @>PT*"7!E<G)O<B@@9" I
|
||||
M.PT*"69C;&]S92@@9G,@*3L-"@ER971U<FX@,CL-"B @("!]#0H-"B @("!I
|
||||
M9B H('!R97-E<G9E7W1I;64@*0T*"6EF("@@9V5T9G1I;64H(&9I;&5N;RAF
|
||||
M<RDL("97:&5N("D@*2 @>PT*"2 @("!P97)R;W(H(',@*3L-"@D@(" @<')E
|
||||
M<V5R=F5?=&EM92 ](# [#0H)?0T*#0H@(" @9&\@>PT*"6X@/2!F<F5A9"@@
|
||||
M8G5F9F5R+" Q+"!S:7IE;V8@8G5F9F5R+"!F<R I.PT*"6EF("@@;B ^(# @
|
||||
M*0T*"2 @("!I9B H(&9W<FET92@@8G5F9F5R+" Q+"!N+"!F9" I(#P@," I
|
||||
M("![#0H)"7!E<G)O<B@@9" I.PT*"0ER971U<FX@,SL-"@D@(" @?0T*(" @
|
||||
M('T@=VAI;&4@*"!N(#X@," I.R @(" -"@T*(" @(&9C;&]S92@@9G,@*3L-
|
||||
M"@T*(" @("\J($9I>"!T:6UE('-T86UP("HO#0H@(" @:68@*"!P<F5S97)V
|
||||
M95]T:6UE("D-"@EI9B H('-E=&9T:6UE*"!F:6QE;F\H9F0I+" F5VAE;B I
|
||||
M("D@('L-"@D@(" @<&5R<F]R*"!S("D[#0H)(" @('!R97-E<G9E7W1I;64@
|
||||
M/2 P.PT*"7T-"B @("!F8VQO<V4H(&9D("D[#0H-"B @(" O*B!&:7@@86-C
|
||||
M97-S(')I9VAT<R J+PT*(" @(&EF("@@<W1A="@@<RP@)E-T870@*2 I#0H)
|
||||
M<&5R<F]R*"!S("D[#0H@(" @96QS92!I9B H(&-H;6]D*"!D+"!3=&%T+G-T
|
||||
M7VUO9&4@*2 I#0H)<&5R<F]R*"!D("D[#0H-"B @("!R971U<FX@,#L-"B-E
|
||||
M;F1I9@T*?0T*#0H-"@T*#0H-"FEN="!M86EN*"!I;G0@87)G8RP@8VAA<B J
|
||||
M(&%R9W9;72 I#0I[#0H@(" @8VAA<B J"7!R;V=N86UE.PT*(" @(&EN= D)
|
||||
M=F5R8F]S92 ](# [#0H@(" @:6YT"0EO;FQY7VEF7VYE=V5R/2 P.PT*(" @
|
||||
M(&-H87(@*@ES=69F:7@@(#T@3E5,3#L-"B @("!C:&%R("H);6]D90D]($Y5
|
||||
M3$P[#0H@(" @8VAA<B J( ED97-T.PT*(" @(&-H87(@*BH)<' [#0H-"B @
|
||||
M("!A<F=V(#T@87)G=E]F:7@H("9A<F=C+"!A<F=V("D[#0H-"B @("!P<F]G
|
||||
M;F%M92 ](&)A<V5N86UE*" J87)G=BLK("D[#0H-"B @(" O*B!P<F]C97-S
|
||||
M('1H92!O<'1I;VYS("HO#0H@(" @=VAI;&4@*"!A<F=V6S!=(" F)B @87)G
|
||||
M=ELP75LP72 ]/2 G+2<@*2 @>PT*"7-W:71C:" H(&%R9W9;,%U;,5T@*2 @
|
||||
M>PT*"2 @("!C87-E("=.)SH-"@D@(" @(" @("LK87)G=CL-"@D);VYL>5]I
|
||||
M9E]N97=E<B ](#$[#0H)"6)R96%K.PT*"2 @("!C87-E("=C)SH-"@D@(" @
|
||||
M(" @("LK87)G=CL-"@D)+RH@5V4@86QW87ES(&-O<'DL(')E9V%R9&QE<W,@
|
||||
M*B\-"@D)8G)E86L[#0H)(" @(&-A<V4@)W8G.@T*"0DK*V%R9W8[#0H)"79E
|
||||
M<F)O<V4@/2 Q.PT*"0EB<F5A:SL-"@D@(" @8V%S92 G5B<Z#0H)"2LK87)G
|
||||
M=CL-"@D)<W5F9FEX(#T@*F%R9W8[#0H)"2LK87)G=CL-"@D)8G)E86L[#0H)
|
||||
M(" @(&-A<V4@)VTG.@T*"0DK*V%R9W8[#0H)"6UO9&4@/2 J87)G=CL-"@D)
|
||||
M*RMA<F=V.PT*"0EB<F5A:SL-"@D@(" @9&5F875L=#H-"@D)9F%T86PH($Y5
|
||||
M3$P@*3L-"@E]#0H@(" @?0T*#0H@(" @+RH@4V5P87)A=&4@<V]U<F-E(&9I
|
||||
M;&4H<RD@9G)O;2!D97-T(&1I<F5C=&]R>2!O<B!F:6QE("HO#0HC:68@, T*
|
||||
M(" @(&EF("@@(6%R9W9;,%T@?'P@(6%R9W9;,5T@*0T*"69A=&%L*" B;6ES
|
||||
M<VEN9R!F:6QE<R!O<B!I;G9A;&ED(&1E<W1I;F%T:6]N(B I.PT*(V5L<V4-
|
||||
M"B @(" O*B!792!U<V5D('1O(')E<75I<F4@870@;&5A<W0@;VYE(&9I;&4[
|
||||
M(&YO="!A;GD@;6]R92 J+PT*(" @(&EF("@@(6%R9W9;,%T@*0T*"69A=&%L
|
||||
M*" B;6ES<VEN9R!F:6QE<R!O<B!I;G9A;&ED(&1E<W1I;F%T:6]N(B I.PT*
|
||||
M(" @(&EF("@@(6%R9W9;,5T@*0T*"7)E='5R;B P.PT*(V5N9&EF#0H@(" @
|
||||
M9F]R("@@<' @/2!A<F=V.R J<' [("LK<' @*0T*"6-O;G1I;G5E.PT*(" @
|
||||
M("TM<' [#0H@(" @9&5S=" ]("IP<#L-"B @(" J<' @/2!.54Q,.PT*#0H@
|
||||
M(" @+RH@4')O8V5S<R!T:&4@87)G=6UE;G1S("HO#0H@(" @9F]R("@[("IA
|
||||
M<F=V.R K*V%R9W8@*2 @>PT*"6-H87(@*B!F(#T@*F%R9W8[#0H)8VAA<B J
|
||||
M(&QE868@/2!B87-E;F%M92@@9B I.PT*"6-H87(@=&%R9V5T6R Q,C@@73L-
|
||||
M"@T*"7-T<F-P>2@@=&%R9V5T+"!D97-T("D[#0H-"@EI9B H(&ES7V1I<B@@
|
||||
M=&%R9V5T("D@*2 @>PT*"2 @("!S=')C870H('1A<F=E="P@(B\B("D[#0H)
|
||||
M(" @("\J(&EF('=E('=E<F4@9VEV96X@82!S=69F:7@L('1H96X@861D(&ET
|
||||
M(&%S(&%P<')O<')I871E("HO#0H)(" @(&EF("@@<W5F9FEX("D@('L-"@D)
|
||||
M8VAA<B J(&1O=" ]('-T<F-H<B@@;&5A9BP@)RXG("D[#0H)"6EF("@@9&]T
|
||||
M("D@('L-"@D)(" @('-T<FYC870H('1A<F=E="P@;&5A9BP@9&]T+6QE868@
|
||||
M*3L-"@D)(" @('-T<F-A="@@=&%R9V5T+"!S=69F:7@@*3L-"@D)(" @('-T
|
||||
M<F-A="@@=&%R9V5T+"!D;W0@*3L-"@D)(" @(&EF("@@=F5R8F]S92 I#0H)
|
||||
M"0EP<FEN=&8H("(E<SH@)7,@=VEL;"!B92!I;G-T86QL960@87,@)7,B+ T*
|
||||
M"0D)(" @(" @('!R;V=N86UE+"!F+"!S=')R8VAR*'1A<F=E="PG+R<I*S$@
|
||||
M*3L-"@D)?2!E;'-E('L-"@D)(" @('-T<F-A="@@=&%R9V5T+"!L96%F("D[
|
||||
M#0H)"2 @("!S=')C870H('1A<F=E="P@<W5F9FEX("D[#0H)"7T-"@D@(" @
|
||||
M?2!E;'-E('L-"@D)<W1R8V%T*"!T87)G970L(&QE868@*3L-"@D@(" @?0T*
|
||||
M"7T-"@T*"6EF("@@86-C97-S*"!F+" P("D@*2 @>PT*"2 @("!C:&%R(&)U
|
||||
M9ELR,#!=.PT*"2 @("!S<')I;G1F*"!B=68L(")C86YN;W0@<F5A9" E<R(L
|
||||
M(&8@*3L-"@D@(" @9F%T86PH(&)U9B I.PT*"7T-"@T*"6EF("@@;VYL>5]I
|
||||
M9E]N97=E<B F)B!I<U]F:6QE*"!T87)G970@*2 F)B A;F5W97(H(&8L('1A
|
||||
M<F=E=" I("D@('L-"@D@(" @:68@*"!V97)B;W-E("D-"@D)<')I;G1F*" B
|
||||
M)R5S)R!N;W0@;F5W97(@=&AA;B G)7,G7&XB+"!F+"!T87)G970@*3L-"@D@
|
||||
M(" @8V]N=&EN=64[#0H)?0T*#0H):68@*"!V97)B;W-E("D-"@D@(" @<')I
|
||||
M;G1F*" B<FT@+68@)7-<;B(L('1A<F=E=" I.PT*"6EF("@@8VAM;V0H('1A
|
||||
M<F=E="P@,#<W-R I("D-"@D@(" @:68@*"!V97)B;W-E("D-"@D)<&5R<F]R
|
||||
M*"!T87)G970@*3L-"@EI9B H('5N;&EN:R@@=&%R9V5T("D@*0T*"2 @("!I
|
||||
M9B H('9E<F)O<V4@*0T*"0EP97)R;W(H('1A<F=E=" I.PT*"6EF("@@=F5R
|
||||
M8F]S92 I#0H)(" @('!R:6YT9B@@(F-P("UP("5S("5S7&XB+"!F+"!T87)G
|
||||
M970@*3L-"@EI9B H(&9I;&5C;W!Y*"!T87)G970L(&8L(#$@*2 I#0H)(" @
|
||||
M(')E='5R;B Q.PT*"6EF("@@;6]D92 I("![#0H)(" @(&-H87(@8G5F6R R
|
||||
M-34@73L-"@D@(" @<W!R:6YT9B@@8G5F+" B8VAM;V0@)7,@)7-<;B(L(&UO
|
||||
M9&4L('1A<F=E=" I.PT*"2 @("!I9B H('9E<F)O<V4@*0T*"0EP<FEN=&8H
|
||||
M("(E<UQN(BP@8G5F("D[#0H)(" @('-Y<W1E;2@@8G5F("D[#0H)?0T*(" @
|
||||
:('T-"@T*(" @(')E='5R;B P.PT*?0T*#0IE
|
||||
|
||||
end
|
||||
32
c/build-tools/scripts/README
Normal file
32
c/build-tools/scripts/README
Normal file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Misc. support tools for RTEMS workspaces.
|
||||
More will be added later as they are converted from Teamware
|
||||
to CVS.
|
||||
|
||||
install-if-change
|
||||
Smart install script that also can append suffixes as it
|
||||
installs (suffixes used for debug and profile variants).
|
||||
Requires bash or ksh.
|
||||
|
||||
rcs-clean
|
||||
deletes all files from the current directory that can be
|
||||
re-created from RCS. Careful to not delete locked files.
|
||||
May be used by 'gmake clobber'
|
||||
|
||||
lock-directory
|
||||
unlock-directory
|
||||
traverse a directory structure making it unwritable.
|
||||
Useful to keep people from accidentally overwriting
|
||||
"released" trees if they get confused about which
|
||||
module they have loaded.
|
||||
|
||||
rtems-glom
|
||||
glom together all the rtems libraries in order to simplify
|
||||
the link line used by applications.
|
||||
Produces rtems.rel.
|
||||
Not used by the RTEMS src tree at all.
|
||||
Strictly optional.
|
||||
|
||||
@@ -34,25 +34,6 @@ maximum line length. The default maximum line length is 80.\n\
|
||||
#include <string.h>
|
||||
#include <memory.h>
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef HAVE_STRERROR
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
|
||||
#define strerror( _err ) \
|
||||
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
|
||||
|
||||
#else /* HAVE_STRERROR */
|
||||
char *strerror ();
|
||||
#endif
|
||||
#else /* VMS */
|
||||
char *strerror (int,...);
|
||||
#endif
|
||||
|
||||
|
||||
#define BUFFER_SIZE 512
|
||||
|
||||
@@ -86,6 +67,7 @@ int line_length = 80; /* maximum allowable line length */
|
||||
|
||||
extern char *optarg; /* getopt(3) control vars */
|
||||
extern int optind, opterr;
|
||||
extern int errno;
|
||||
|
||||
char *progname; /* for error() */
|
||||
|
||||
@@ -101,10 +83,8 @@ long getparm(char *s, long min, long max, char *msg);
|
||||
#define stol(p) strtol(p, (char **) NULL, 0)
|
||||
int Open(), Read(), Write();
|
||||
|
||||
int main(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
int
|
||||
main(int argc, char **argv, char **env)
|
||||
{
|
||||
register int c;
|
||||
int showusage = FALSE; /* usage error? */
|
||||
@@ -249,6 +229,8 @@ error(int error_flag, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
register char *format;
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
int local_errno;
|
||||
|
||||
extern int errno;
|
||||
@@ -266,7 +248,12 @@ error(int error_flag, ...)
|
||||
va_end(arglist);
|
||||
|
||||
if (local_errno)
|
||||
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
|
||||
if ((local_errno > 0) && (local_errno < sys_nerr))
|
||||
(void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]);
|
||||
else
|
||||
(void) fprintf(stderr, " (unknown errno=%d)\n", local_errno);
|
||||
else
|
||||
(void) fprintf(stderr, "\n");
|
||||
|
||||
(void) fflush(stderr);
|
||||
|
||||
@@ -29,25 +29,6 @@ Strip the white space from the end of every line on the list of files.\n\
|
||||
#include <string.h>
|
||||
#include <memory.h>
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef HAVE_STRERROR
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
|
||||
#define strerror( _err ) \
|
||||
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
|
||||
|
||||
#else /* HAVE_STRERROR */
|
||||
char *strerror ();
|
||||
#endif
|
||||
#else /* VMS */
|
||||
char *strerror (int,...);
|
||||
#endif
|
||||
|
||||
|
||||
#define BUFFER_SIZE 2048
|
||||
#define MAX_PATH 2048
|
||||
@@ -79,6 +60,7 @@ int test_only = FALSE; /* test only */
|
||||
|
||||
extern char *optarg; /* getopt(3) control vars */
|
||||
extern int optind, opterr;
|
||||
extern int errno;
|
||||
|
||||
char *progname; /* for error() */
|
||||
|
||||
@@ -94,10 +76,8 @@ long getparm(char *s, long min, long max, char *msg);
|
||||
#define stol(p) strtol(p, (char **) NULL, 0)
|
||||
int Open(), Read(), Write();
|
||||
|
||||
int main(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
int
|
||||
main(int argc, char **argv, char **env)
|
||||
{
|
||||
register int c;
|
||||
int showusage = FALSE; /* usage error? */
|
||||
@@ -197,7 +177,7 @@ process(char *arg)
|
||||
if ( buffer[ length ] != '\n' )
|
||||
error(ERR_ERRNO|ERR_FATAL, "Line %d too long in %s\n", line_number, arg);
|
||||
|
||||
while ( isspace( (int) buffer[ length ] ) )
|
||||
while ( isspace( buffer[ length ] ) )
|
||||
buffer[ length-- ] = '\0';
|
||||
|
||||
if ( test_only ) {
|
||||
@@ -236,6 +216,8 @@ error(int error_flag, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
register char *format;
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
int local_errno;
|
||||
|
||||
extern int errno;
|
||||
@@ -253,9 +235,12 @@ error(int error_flag, ...)
|
||||
va_end(arglist);
|
||||
|
||||
if (local_errno)
|
||||
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
|
||||
if ((local_errno > 0) && (local_errno < sys_nerr))
|
||||
(void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]);
|
||||
else
|
||||
(void) fprintf(stderr, " (unknown errno=%d)\n", local_errno);
|
||||
else
|
||||
(void) fprintf(stderr, "\n");
|
||||
(void) fprintf(stderr, "\n");
|
||||
|
||||
(void) fflush(stderr);
|
||||
|
||||
@@ -8,13 +8,7 @@
|
||||
* is not robust enough to detect hex-record formatting
|
||||
* errors.
|
||||
*
|
||||
* Published: May 1993 Embedded Systems Programming magazine
|
||||
* "Creating Faster Hex Files"
|
||||
*
|
||||
* URL: ESP magazine: http://www.embedded.com
|
||||
* Source Code: ftp://ftp.mfi.com/pub/espmag/1993/pakhex.zip
|
||||
*
|
||||
* Author: Mark Gringrich
|
||||
* Published: 5/93 Embedded Systems magazine
|
||||
*
|
||||
* Compiler: Microsoft C 6.0
|
||||
* cl /F 1000 packhex.c
|
||||
@@ -43,23 +37,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef HAVE_STRERROR
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
|
||||
#define strerror( _err ) \
|
||||
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
|
||||
|
||||
#else /* HAVE_STRERROR */
|
||||
char *strerror ();
|
||||
#endif
|
||||
#else /* VMS */
|
||||
char *strerror (int,...);
|
||||
#endif
|
||||
|
||||
#if defined(__unix__) && !defined(EXIT_FAILURE)
|
||||
#define EXIT_FAILURE -1
|
||||
#define EXIT_SUCCESS 0
|
||||
@@ -99,7 +76,7 @@ typedef struct /* Functions and constant returning Hex-record vital stats. */
|
||||
|
||||
/*--------------------------- function prototypes ----------------------------*/
|
||||
|
||||
Rec_vitals * identify_first_data_record( char *, int );
|
||||
Rec_vitals * identify_first_data_record( char * );
|
||||
Ulong get_ndigit_hex( char *, int );
|
||||
|
||||
|
||||
@@ -411,24 +388,18 @@ Rec_vitals *formats[] =
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
int main(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
void main( void )
|
||||
{
|
||||
|
||||
char inbuff[ MAX_LINE_SIZE ], outbuff[ MAX_LINE_SIZE ];
|
||||
char *in_dptr, *out_dptr;
|
||||
int d_total, d_count, d_excess, n;
|
||||
int length;
|
||||
Ulong in_rec_addr, out_rec_addr = 0;
|
||||
Rec_vitals *rptr;
|
||||
|
||||
|
||||
/* Sift through file until first hex record is identified. */
|
||||
|
||||
rptr = identify_first_data_record( inbuff, MAX_LINE_SIZE );
|
||||
if ( rptr == NULL )
|
||||
if ( ( rptr = identify_first_data_record( inbuff ) ) == NULL )
|
||||
{
|
||||
fputs( "No hex records found.\n", stderr );
|
||||
exit( EXIT_FAILURE );
|
||||
@@ -437,7 +408,8 @@ int main(
|
||||
|
||||
/* Attempt data-record splicing until end-of-file is reached. */
|
||||
d_total = 0;
|
||||
for (;;) {
|
||||
do
|
||||
{
|
||||
if ( rptr->is_data_record( inbuff ) == YES )
|
||||
{ /* Input record is a data record. */
|
||||
d_count = rptr->get_data_count( inbuff );
|
||||
@@ -483,21 +455,10 @@ int main(
|
||||
}
|
||||
puts( inbuff );
|
||||
}
|
||||
|
||||
inbuff[ MAX_LINE_SIZE - 1 ] = '\0';
|
||||
if ( !fgets( inbuff, MAX_LINE_SIZE, stdin ) )
|
||||
break;
|
||||
if ( inbuff[ MAX_LINE_SIZE - 1 ] ) {
|
||||
fprintf( stderr, "Input line too long" );
|
||||
exit( 1 );
|
||||
}
|
||||
length = strlen(inbuff);
|
||||
inbuff[length - 1] = '\0';
|
||||
|
||||
}
|
||||
} while ( gets( inbuff ) != NULL );
|
||||
|
||||
|
||||
return ( EXIT_SUCCESS );
|
||||
exit( EXIT_SUCCESS );
|
||||
|
||||
}
|
||||
|
||||
@@ -516,25 +477,12 @@ int main(
|
||||
*
|
||||
*******************************************************************************/
|
||||
|
||||
Rec_vitals * identify_first_data_record( char * buff_ptr, int max_length )
|
||||
Rec_vitals * identify_first_data_record( char * buff_ptr )
|
||||
{
|
||||
Rec_vitals ** ptr;
|
||||
int length;
|
||||
|
||||
|
||||
|
||||
for ( ;; ) {
|
||||
|
||||
buff_ptr[ max_length - 1 ] = '\0';
|
||||
if ( !fgets( buff_ptr, max_length, stdin ) )
|
||||
break;
|
||||
if ( buff_ptr[ max_length - 1 ] ) {
|
||||
fprintf( stderr, "Input line too long" );
|
||||
exit( 1 );
|
||||
}
|
||||
length = strlen(buff_ptr);
|
||||
buff_ptr[length - 1] = '\0';
|
||||
|
||||
while ( gets( buff_ptr ) != NULL )
|
||||
{
|
||||
for ( ptr = formats ; *ptr != ( Rec_vitals * ) NULL ; ptr++ )
|
||||
if ( ( *ptr )->is_data_record( buff_ptr ) == YES )
|
||||
return( *ptr ); /* Successful return. */
|
||||
@@ -37,25 +37,6 @@ usage: unhex [-va] [ -o file ] [ file [file ... ] ]\n\
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef HAVE_STRERROR
|
||||
extern int sys_nerr;
|
||||
extern char *sys_errlist[];
|
||||
|
||||
#define strerror( _err ) \
|
||||
((_err) < sys_nerr) ? sys_errlist [(_err)] : "unknown error"
|
||||
|
||||
#else /* HAVE_STRERROR */
|
||||
char *strerror ();
|
||||
#endif
|
||||
#else /* VMS */
|
||||
char *strerror (int,...);
|
||||
#endif
|
||||
|
||||
|
||||
#define OK 0
|
||||
#define FAILURE (-1)
|
||||
@@ -97,6 +78,7 @@ u32 FFfill = 0L; /* how far to fill w 0xFF's */
|
||||
|
||||
extern char *optarg; /* getopt(3) control vars */
|
||||
extern int optind;
|
||||
extern int errno;
|
||||
|
||||
char *progname; /* for error() */
|
||||
|
||||
@@ -106,12 +88,8 @@ void error(int errn, ...);
|
||||
#define ERR_ABORT (ERR_ERRNO / 4) /* error is fatal; abort */
|
||||
#define ERR_MASK (ERR_ERRNO | ERR_FATAL | ERR_ABORT) /* all */
|
||||
|
||||
#ifdef HAVE_STRTOUL
|
||||
#define stol(p) strtoul(p, (char **) NULL, 0)
|
||||
#else
|
||||
#define stol(p) strtol(p, (char **) NULL, 0)
|
||||
#endif
|
||||
|
||||
|
||||
int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm);
|
||||
int convert_Intel_records(FILE *ifp, char *inm, FILE *ofp, char *onm);
|
||||
int convert_S_records(FILE *ifp, char *inm, FILE *ofp, char *onm);
|
||||
@@ -137,10 +115,10 @@ char *MISCSUM = "Checksum mismatch";
|
||||
char *BADTYPE = "Unrecognized record type";
|
||||
char *MISTYPE = "Incompatible record types";
|
||||
|
||||
int main(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
register int c;
|
||||
bool showusage = FALSE; /* usage error? */
|
||||
@@ -698,6 +676,8 @@ error(int error_flag, ...)
|
||||
{
|
||||
va_list arglist;
|
||||
register char *format;
|
||||
extern char *sys_errlist[];
|
||||
extern int sys_nerr;
|
||||
int local_errno;
|
||||
|
||||
extern int errno;
|
||||
@@ -715,9 +695,12 @@ error(int error_flag, ...)
|
||||
va_end(arglist);
|
||||
|
||||
if (local_errno)
|
||||
(void) fprintf(stderr, " (%s)\n", strerror(local_errno));
|
||||
if ((local_errno > 0) && (local_errno < sys_nerr))
|
||||
(void) fprintf(stderr, " (%s)\n", sys_errlist[local_errno]);
|
||||
else
|
||||
(void) fprintf(stderr, " (unknown errno=%d)\n", local_errno);
|
||||
else
|
||||
(void) fprintf(stderr, "\n");
|
||||
(void) fprintf(stderr, "\n");
|
||||
|
||||
(void) fflush(stderr);
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
## Process this file with autoconf to produce a configure script.
|
||||
##
|
||||
## $Id$
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([rtems-c],[_RTEMS_VERSION],[rtems-bugs@rtems.com])
|
||||
AC_CONFIG_SRCDIR([src])
|
||||
RTEMS_TOP(..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.7.2])
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
## These options are used within this file.
|
||||
RTEMS_ENABLE_BARE
|
||||
RTEMS_ENABLE_RTEMSBSP(rtems_bsp)
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
AS_IF([test -z "$rtems_bsp"],
|
||||
[RTEMS_CHECK_BSPS(rtems_bsp)])
|
||||
|
||||
for i in $rtems_bsp; do
|
||||
|
||||
# make sure there is a make/custom file for the bsp
|
||||
RTEMS_CHECK_CUSTOM_BSP(i)
|
||||
|
||||
RTEMS_BSP_ALIAS($i,bspdir)
|
||||
|
||||
# Is there code where there should be for this BSP?
|
||||
# The bare bsp is a special case as it is not under the RTEMS_CPU path
|
||||
case $bspdir in
|
||||
bare)
|
||||
bspcpudir=
|
||||
;;
|
||||
*)
|
||||
bspcpudir=$RTEMS_CPU/
|
||||
;;
|
||||
esac
|
||||
|
||||
if test -d "$srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$bspcpudir$bspdir"; then
|
||||
RTEMS_BSP_LIST="$RTEMS_BSP_LIST $i"
|
||||
else
|
||||
AC_MSG_ERROR([unable to find libbsp directory ($bspdir) for $i])
|
||||
fi
|
||||
done
|
||||
|
||||
#
|
||||
# Compose the configuration arguments to be passed to c/src/configure
|
||||
#
|
||||
##
|
||||
## Partially borrowed from autoconf-2.13
|
||||
##
|
||||
|
||||
## Adjust paths
|
||||
_RTEMS_ADJUST_SRCDIR([rtems_bsp_configure],[src])
|
||||
rtems_bsp_configure="$rtems_bsp_configure/configure"
|
||||
RTEMS_CONFIGURE_ARGS_QUOTE([rtems_bsp_configure_args],
|
||||
[-enable-rtemsbsp=* | --enable-rtemsbsp=* ) ;;])
|
||||
|
||||
rtems_bsp_configure="$rtems_bsp_configure $rtems_bsp_configure_args"
|
||||
AC_SUBST(rtems_bsp_configure)
|
||||
|
||||
AC_SUBST(RTEMS_BSP_LIST)
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
echo
|
||||
echo target architecture: $target_cpu.
|
||||
echo available BSPs: $rtems_bsp.
|
||||
echo \'${MAKE} all\' will build the following BSPs: $RTEMS_BSP_LIST.
|
||||
echo other BSPs can be built with \'${MAKE} RTEMS_BSP=\"bsp1 bsp2 ...\"\'
|
||||
echo
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user