forked from Imagelibrary/rtems
Compare commits
1 Commits
4.5.1-pre2
...
3.5.17
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f745c6fcbc |
@@ -1,8 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.log
|
||||
config.status
|
||||
configure
|
||||
depcomp
|
||||
343
COPYING
343
COPYING
@@ -1,343 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
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.
|
||||
|
||||
42
Makefile.am
42
Makefile.am
@@ -1,42 +0,0 @@
|
||||
#
|
||||
# top level directory for RTEMS build tree
|
||||
#
|
||||
## The target's toplevel Makefile now is in c/src
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
|
||||
|
||||
SUBDIRS = doc make tools @TARGET_SUBDIRS@
|
||||
|
||||
AUTOMAKE_FILES = automake/subdirs.am automake/local.am automake/lib.am
|
||||
|
||||
ACLOCAL_FILES += aclocal/ar-s.m4 aclocal/bsp-alias.m4 \
|
||||
aclocal/canonical-host.m4 aclocal/canonical-target-name.m4 \
|
||||
aclocal/canonicalize-tools.m4 aclocal/check-bsps.m4 \
|
||||
aclocal/check-bsp-cache.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-gcc28.m4 aclocal/enable-hwapi.m4 \
|
||||
aclocal/enable-inlines.m4 aclocal/enable-itron.m4 \
|
||||
aclocal/enable-libcdir.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/path-ksh.m4 aclocal/path-perl.m4 \
|
||||
aclocal/prog-cc.m4 aclocal/prog-cxx.m4 aclocal/project-root.m4 \
|
||||
aclocal/rtems-top.m4 aclocal/sysv-ipc.m4 aclocal/target.m4 \
|
||||
aclocal/tool-paths.m4 aclocal/tool-prefix.m4
|
||||
|
||||
noinst_SCRIPTS = bootstrap
|
||||
|
||||
EXTRA_DIST = $(AUTOMAKE_FILES) $(ACLOCAL_FILES) README.configure SUPPORT \
|
||||
VERSION LICENSE $(noinst_SCRIPTS)
|
||||
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(ACLOCAL_FILES)
|
||||
|
||||
include $(top_srcdir)/automake/subdirs.am
|
||||
include $(top_srcdir)/automake/host.am
|
||||
4
README
4
README
@@ -2,10 +2,6 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Building RTEMS
|
||||
==============
|
||||
See the file README.configure.
|
||||
|
||||
Directory Overview
|
||||
==================
|
||||
|
||||
|
||||
250
README.configure
250
README.configure
@@ -1,250 +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.
|
||||
|
||||
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-gcc28 (also use enable-libcdir when disabled)
|
||||
--enable-libcdir=<DIRECTORY> (do not use if gcc 2.8 is enabled)
|
||||
--enable-multiprocessing
|
||||
--enable-rtemsbsp="bsp1 bsp2 ..."
|
||||
--enable-tests
|
||||
--enable-rdbg (only valid for i386 and some PowerPC BSPs)
|
||||
|
||||
In addition, the following standard autoconf options are frequently
|
||||
used when configuring RTEMS installations:
|
||||
|
||||
--prefix=INSTALL_DIRECTORY
|
||||
--program-prefix=
|
||||
|
||||
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. The --enable-tests will not 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 are
|
||||
NOT compatible with gcc 2.7.2.2. If using a gcc which supports the
|
||||
-specs option, then the --enable-gcc28 option may be used to enable
|
||||
this feature. You should use the --enable-gcc28 option when using
|
||||
either the egcs source tree, testgcc snapshots, or gcc 2.8.0 or newer.
|
||||
If you --disable-gcc28, then you MUST specify the location of the
|
||||
Standard C Library with the --enable-libcdir option. [NOTE: These
|
||||
options are considered obsolete and may be removed in a future
|
||||
RTEMS release.]
|
||||
|
||||
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 directlty specified. There are two ways of changing this:
|
||||
|
||||
+ use the --enable-rtemsbsp otion 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 target
|
||||
architecture. 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
|
||||
i386-rtems
|
||||
i960-rtems
|
||||
hppa1.1-rtems
|
||||
m68k-rtems
|
||||
mips64orion-rtems
|
||||
no_cpu-rtems
|
||||
powerpc-rtems
|
||||
sparc-rtems
|
||||
bare see notes
|
||||
|
||||
The cross-compiler is set to $(target)-gcc by default. This can be
|
||||
overriden 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.
|
||||
|
||||
2.2 Build with Cygnus one-tree release
|
||||
|
||||
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, solaris and hpux)
|
||||
|
||||
a29k : portsw
|
||||
i386 : i386ex pc386
|
||||
i960 : cvme961
|
||||
hppa1.1 : simhppa
|
||||
m68k : dmv152 efi332 efi68k gen68302 gen68340 gen68360
|
||||
gen68360_040 idp mvme136 mvme147 mvme147s mvme162 ods68302
|
||||
no_cpu : no_bsp
|
||||
mips64orion : p4600 p4650 (p4000 port with either R4600 or R4650)
|
||||
powerpc : papyrus psim helas403
|
||||
sh : gensh1
|
||||
sparc : erc32
|
||||
any : bare
|
||||
|
||||
5. Makefile structure
|
||||
=====================
|
||||
|
||||
The makefiles have been re-organised. Most gnu-based bsps now use three
|
||||
main makefiles:
|
||||
+ custom/default.cfg,
|
||||
+ custom/bsp.cfg and
|
||||
+ ompilers/gcc-target-default.cfg.
|
||||
|
||||
Default.cfg sets the deafult 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. Some targets
|
||||
(a29k, no_cpu, and posix) still use the old structure.
|
||||
|
||||
6. Adding a bsp
|
||||
===============
|
||||
|
||||
The top-level configure.in has to be modified if a new target is added
|
||||
or if a new bsp is to be built by default. The additions required is
|
||||
basically to add which makefiles are to be created by configure and
|
||||
to add the target to the selection statement. To re-generate
|
||||
configure, autoconf-2.12 is needed.
|
||||
|
||||
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.
|
||||
|
||||
8. Pre-requisites
|
||||
=================
|
||||
|
||||
Gawk version 2 or higher.
|
||||
GNU make version 3.72 or higher.
|
||||
Bash.
|
||||
gcc version ???
|
||||
|
||||
TODO
|
||||
====
|
||||
|
||||
The install-if-change script requires bash. On solaris systems, this should
|
||||
be changed to ksh, since ksh is provided with solaris (bash not).
|
||||
|
||||
A fairly rescent version of gawk is needed to build RTEMS. This should be
|
||||
changed so that a plain vanilla awk also works. [NOTE: This dependency
|
||||
should disappear when the "gcc 2.8 -specs" is finished.]
|
||||
|
||||
'make install' should only install necessary files, not the full
|
||||
PROJECT_RELEASE directory as now.
|
||||
|
||||
Posix port on solaris-2.5 fails due to undefined built-in functions
|
||||
(gcc-2.7.2, might be my installation).
|
||||
|
||||
Improve support for 'make CFLAGS=xxx'.
|
||||
|
||||
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@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.5.1-pre2
|
||||
@@ -1,25 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_AR_FOR_TARGET_S,
|
||||
[
|
||||
AC_CACHE_CHECK(whether $AR_FOR_TARGET -s works,
|
||||
rtems_cv_AR_FOR_TARGET_S,
|
||||
[
|
||||
cat > conftest.$ac_ext <<EOF
|
||||
int foo( int b )
|
||||
{ return b; }
|
||||
EOF
|
||||
if AC_TRY_COMMAND($CC_FOR_TARGET -o conftest.o -c conftest.$ac_ext) \
|
||||
&& AC_TRY_COMMAND($AR_FOR_TARGET -sr conftest.a conftest.o) \
|
||||
&& test -s conftest.a ; \
|
||||
then
|
||||
rtems_cv_AR_FOR_TARGET_S="yes"
|
||||
else
|
||||
rtems_cv_AR_FOR_TARGET_S="no"
|
||||
fi
|
||||
rm -f conftest*
|
||||
])
|
||||
])
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,BSP_RETURNED)
|
||||
dnl convert a bsp alias $1 into its bsp directory $2
|
||||
AC_DEFUN(RTEMS_BSP_ALIAS,
|
||||
[
|
||||
# account for "aliased" bsps which share source code
|
||||
case $1 in
|
||||
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2307) $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
|
||||
pc486) $2=pc386 ;; # i386 - PC with i486DX
|
||||
pc586) $2=pc386 ;; # i386 - PC with Pentium
|
||||
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
||||
*) $2=$1;;
|
||||
esac
|
||||
])
|
||||
@@ -1,27 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_CANONICAL_HOST,
|
||||
[dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
RTEMS_HOST=$host_os
|
||||
changequote(,)dnl
|
||||
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
|
||||
changequote([,])dnl
|
||||
AC_SUBST(RTEMS_HOST)
|
||||
])dnl
|
||||
@@ -1,40 +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_SYSTEM
|
||||
AC_MSG_CHECKING(rtems target cpu)
|
||||
changequote(,)dnl
|
||||
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
|
||||
;;
|
||||
*)
|
||||
RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
|
||||
;;
|
||||
esac
|
||||
changequote([,])dnl
|
||||
AC_SUBST(RTEMS_CPU)
|
||||
AC_MSG_RESULT($RTEMS_CPU)
|
||||
])
|
||||
@@ -1,89 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set target tools
|
||||
dnl
|
||||
dnl 98/06/23 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl fixing cache/environment variable handling
|
||||
dnl adding checks for cygwin/egcs '\\'-bug
|
||||
dnl adding checks for ranlib/ar -s problem
|
||||
dnl
|
||||
dnl 98/02/12 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_GCC_PRINT,
|
||||
[
|
||||
$1=`$CC_FOR_TARGET --print-prog-name=$2`
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_PATH_TOOL,
|
||||
[
|
||||
AC_MSG_CHECKING([target's $2])
|
||||
AC_CACHE_VAL(ac_cv_path_$1,:)
|
||||
AC_MSG_RESULT([$ac_cv_path_$1])
|
||||
|
||||
if test -n "$ac_cv_path_$1"; then
|
||||
dnl retrieve the value from the cache
|
||||
$1=$ac_cv_path_$1
|
||||
else
|
||||
dnl the cache was not set
|
||||
if test -z "[$]$1" ; then
|
||||
if test "$rtems_cv_prog_gcc" = "yes"; then
|
||||
# We are using gcc, ask it about its tool
|
||||
# NOTE: Necessary if gcc was configured to use the target's
|
||||
# native tools or uses prefixes for gnutools (e.g. gas instead of as)
|
||||
RTEMS_GCC_PRINT($1,$2)
|
||||
fi
|
||||
else
|
||||
# The user set an environment variable.
|
||||
# Check whether it is an absolute path, otherwise AC_PATH_PROG
|
||||
# will override the environment variable, which isn't what the user
|
||||
# intends
|
||||
AC_MSG_CHECKING([whether environment variable $1 is an absolute path])
|
||||
case "[$]$1" in
|
||||
/*) # valid
|
||||
AC_MSG_RESULT("yes")
|
||||
;;
|
||||
*) # invalid for AC_PATH_PROG
|
||||
AC_MSG_RESULT("no")
|
||||
AC_MSG_ERROR([***]
|
||||
[Environment variable $1 should either]
|
||||
[be unset (preferred) or contain an absolute path])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
AC_PATH_PROG($1,"$program_prefix"$2,$3)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])dnl
|
||||
|
||||
dnl FIXME: What shall be done if these tools are not available?
|
||||
RTEMS_PATH_TOOL(AR_FOR_TARGET,ar,no)
|
||||
RTEMS_PATH_TOOL(AS_FOR_TARGET,as,no)
|
||||
RTEMS_PATH_TOOL(LD_FOR_TARGET,ld,no)
|
||||
RTEMS_PATH_TOOL(NM_FOR_TARGET,nm,no)
|
||||
|
||||
dnl special treatment of ranlib
|
||||
RTEMS_PATH_TOOL(RANLIB_FOR_TARGET,ranlib,no)
|
||||
if test "$RANLIB_FOR_TARGET" = "no"; then
|
||||
# ranlib wasn't found; check if ar -s is available
|
||||
RTEMS_AR_FOR_TARGET_S
|
||||
if test $rtems_cv_AR_FOR_TARGET_S = "yes" ; then
|
||||
dnl override RANLIB_FOR_TARGET's cache
|
||||
ac_cv_path_RANLIB_FOR_TARGET="$AR_FOR_TARGET -s"
|
||||
RANLIB_FOR_TARGET=$ac_cv_path_RANLIB_FOR_TARGET
|
||||
else
|
||||
AC_MSG_ERROR([***]
|
||||
[Can't figure out how to build a library index]
|
||||
[Neither ranlib nor ar -s seem to be available] )
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl NOTE: These may not be available if not using gnutools
|
||||
RTEMS_PATH_TOOL(OBJCOPY_FOR_TARGET,objcopy,no)
|
||||
RTEMS_PATH_TOOL(SIZE_FOR_TARGET,size,no)
|
||||
RTEMS_PATH_TOOL(STRIP_FOR_TARGET,strip,no)
|
||||
])
|
||||
@@ -1,17 +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)
|
||||
])dnl
|
||||
@@ -1,46 +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
|
||||
case $file in
|
||||
shared*);;
|
||||
Makefile*);;
|
||||
READ*);;
|
||||
CVS*);;
|
||||
pxfl*);;
|
||||
ac*);;
|
||||
config*);;
|
||||
# Now account for BSPs with build variants
|
||||
gen68360) rtems_bsp="$rtems_bsp gen68360 gen68360_040";;
|
||||
p4000) rtems_bsp="$rtems_bsp p4600 p4650";;
|
||||
mvme162) rtems_bsp="$rtems_bsp mvme162 mvme162lx";;
|
||||
motorola_powerpc) rtems_bsp="$rtems_bsp mvme2307 mcp750";;
|
||||
pc386) rtems_bsp="$rtems_bsp pc386 pc486 pc586 pc686";;
|
||||
*) $1="[$]$1 $file";;
|
||||
esac;
|
||||
done
|
||||
dnl ;;
|
||||
dnl esac
|
||||
AC_MSG_RESULT([[$]$1 .. done])
|
||||
])dnl
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||
if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_ERROR([no])
|
||||
fi
|
||||
])dnl
|
||||
@@ -1,17 +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])
|
||||
if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_ERROR(no)
|
||||
fi
|
||||
])dnl
|
||||
|
||||
@@ -1,21 +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_FOR_TARGET"; 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
|
||||
])
|
||||
@@ -1,29 +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 BSP 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
|
||||
])
|
||||
@@ -1,31 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
|
||||
[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_CACHE_CHECK([whether BSP supports multiprocessing],
|
||||
rtems_cv_HAS_MP,
|
||||
[dnl
|
||||
RTEMS_BSP_ALIAS(${$1},bspdir)
|
||||
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${bspdir}/shmsupp"; then
|
||||
if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
|
||||
rtems_cv_HAS_MP="yes" ;
|
||||
else
|
||||
rtems_cv_HAS_MP="disabled";
|
||||
fi
|
||||
else
|
||||
rtems_cv_HAS_MP="no";
|
||||
fi])
|
||||
if test "$rtems_cv_HAS_MP" = "yes"; then
|
||||
HAS_MP="yes"
|
||||
else
|
||||
HAS_MP="no"
|
||||
fi
|
||||
AC_SUBST(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,31 +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 newlib],
|
||||
rtems_cv_use_newlib,
|
||||
[
|
||||
rtems_save_CC=$CC
|
||||
CC=$CC_FOR_TARGET
|
||||
|
||||
dnl some versions of newlib provide not_required_by_rtems
|
||||
AC_TRY_LINK(
|
||||
[extern int not_required_by_rtems() ;],
|
||||
[not_required_by_rtems()],
|
||||
rtems_cv_use_newlib="yes")
|
||||
|
||||
dnl older versions of newlib provided rtems_provides_crt0
|
||||
if test -z "$rtems_cv_use_newlib"; then
|
||||
AC_TRY_LINK(
|
||||
[extern int rtems_provides_crt0 ;],
|
||||
[rtems_provides_crt0 = 0],
|
||||
rtems_cv_use_newlib="yes",
|
||||
rtems_cv_use_newlib="no")
|
||||
fi
|
||||
CC=$rtems_save_CC])
|
||||
RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
|
||||
AC_SUBST(RTEMS_USE_NEWLIB)
|
||||
])
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN(RTEMS_CHECK_POSIX_API,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP 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
|
||||
])
|
||||
@@ -1,24 +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" ;
|
||||
else
|
||||
rtems_cv_HAS_RDBG="no";
|
||||
fi
|
||||
])
|
||||
HAS_RDBG="$rtems_cv_HAS_RDBG"
|
||||
AC_SUBST(HAS_RDBG)
|
||||
])
|
||||
@@ -1,21 +0,0 @@
|
||||
AC_DEFUN(RTEMS_ENABLE_BARE,
|
||||
[
|
||||
AC_ARG_ENABLE(bare-cpu-cflags,
|
||||
[ --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,
|
||||
[ --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,
|
||||
[ --enable-cxx enable C++ support,]
|
||||
[ and build the rtems++ library],
|
||||
[case "${enableval}" 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,12 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_GCC28,
|
||||
[
|
||||
AC_ARG_ENABLE(gcc28,
|
||||
[ --enable-gcc28 enable use of gcc 2.8.x features],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_USE_GCC272=no ;;
|
||||
no) RTEMS_USE_GCC272=yes ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for gcc-28 option) ;;
|
||||
esac],[RTEMS_USE_GCC272=no])
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl FIXME: this needs to be reworked
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_HWAPI,
|
||||
[dnl
|
||||
AC_ARG_ENABLE(hwapi, \
|
||||
[ --enable-hwapi enable hardware API library],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_HWAPI=yes ;;
|
||||
no) RTEMS_HAS_HWAPI=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for hwapi option) ;;
|
||||
esac],[RTEMS_HAS_HWAPI=no])
|
||||
AC_SUBST(RTEMS_HAS_HWAPI)dnl
|
||||
])dnl
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_INLINES,
|
||||
[AC_ARG_ENABLE(rtems-inlines,
|
||||
[ --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
|
||||
])
|
||||
@@ -1,35 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_ITRON,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(itron,
|
||||
[ --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])
|
||||
|
||||
changequote(,)dnl
|
||||
case "${target}" 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
|
||||
changequote([,])dnl
|
||||
AC_SUBST(RTEMS_HAS_ITRON_API)
|
||||
])
|
||||
@@ -1,10 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_LIBCDIR,
|
||||
[
|
||||
AC_ARG_ENABLE(libcdir,
|
||||
[ --enable-libcdir=directory set the directory for the C library],
|
||||
[ RTEMS_LIBC_DIR="${enableval}" ; \
|
||||
test -d ${enableval} || AC_MSG_ERROR("$enableval is not a directory" ) ] )
|
||||
AC_SUBST(RTEMS_LIBC_DIR)dnl
|
||||
])
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
|
||||
[
|
||||
AC_ARG_ENABLE(multiprocessing,
|
||||
[ --enable-multiprocessing enable multiprocessing interface],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_MULTIPROCESSING=yes ;;
|
||||
no) RTEMS_HAS_MULTIPROCESSING=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
|
||||
esac],[RTEMS_HAS_MULTIPROCESSING=no])
|
||||
AC_SUBST(RTEMS_HAS_MULTIPROCESSING)dnl
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||
|
||||
AC_ARG_ENABLE(networking,
|
||||
[ --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,35 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_ENABLE_POSIX,
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(posix,
|
||||
[ --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])
|
||||
|
||||
changequote(,)dnl
|
||||
case "${target}" 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
|
||||
changequote([,])dnl
|
||||
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,
|
||||
[ --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,36 +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])dnl
|
||||
AC_ARG_ENABLE(rtemsbsp,
|
||||
[ --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=""])
|
||||
])
|
||||
|
||||
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_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)
|
||||
])
|
||||
@@ -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,
|
||||
[ --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,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_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
|
||||
[
|
||||
rtems_cv_gcc_pipe=no
|
||||
if test "$rtems_cv_prog_gcc" = "yes"; then
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC_FOR_TARGET} --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_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
|
||||
[
|
||||
rtems_cv_gcc_specs=no
|
||||
if test "$rtems_cv_prog_gcc" = "yes"; then
|
||||
touch confspec
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_specs=yes
|
||||
fi
|
||||
fi
|
||||
rm -f confspec conftest*
|
||||
])])
|
||||
@@ -1,27 +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 "${target_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_FOR_TARGET -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)
|
||||
])
|
||||
|
||||
@@ -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,92 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target gcc
|
||||
dnl
|
||||
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl Completely reworked
|
||||
|
||||
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
|
||||
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
|
||||
|
||||
dnl Only accept gcc and cc
|
||||
dnl NOTE: This might be too restrictive for native compilation
|
||||
AC_PATH_PROGS(CC_FOR_TARGET, "$program_prefix"gcc "$program_prefix"cc )
|
||||
test -z "$CC_FOR_TARGET" \
|
||||
&& AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
|
||||
dnl backup
|
||||
rtems_save_CC=$CC
|
||||
rtems_save_CFLAGS=$CFLAGS
|
||||
|
||||
dnl temporarily set CC
|
||||
CC=$CC_FOR_TARGET
|
||||
|
||||
AC_PROG_CC_WORKS
|
||||
AC_PROG_CC_GNU
|
||||
|
||||
if test $ac_cv_prog_gcc = yes; then
|
||||
GCC=yes
|
||||
dnl Check whether -g works, even if CFLAGS is set, in case the package
|
||||
dnl plays around with CFLAGS (such as to build both debugging and
|
||||
dnl normal versions of a library), tasteless as that idea is.
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
ac_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS=
|
||||
AC_PROG_CC_G
|
||||
if test "$ac_test_CFLAGS" = set; then
|
||||
CFLAGS="$ac_save_CFLAGS"
|
||||
elif test $ac_cv_prog_cc_g = yes; then
|
||||
CFLAGS="-g -O2"
|
||||
else
|
||||
CFLAGS="-O2"
|
||||
fi
|
||||
else
|
||||
GCC=
|
||||
test "${CFLAGS+set}" = set || CFLAGS="-g"
|
||||
fi
|
||||
|
||||
rtems_cv_prog_gcc=$ac_cv_prog_gcc
|
||||
rtems_cv_prog_cc_g=$ac_cv_prog_cc_g
|
||||
rtems_cv_prog_cc_works=$ac_cv_prog_cc_works
|
||||
rtems_cv_prog_cc_cross=$ac_cv_prog_cc_cross
|
||||
|
||||
dnl restore initial values
|
||||
CC=$rtems_save_CC
|
||||
CFLAGS=$rtems_save_CFLAGS
|
||||
|
||||
unset ac_cv_prog_gcc
|
||||
unset ac_cv_prog_cc_g
|
||||
unset ac_cv_prog_cc_works
|
||||
unset ac_cv_prog_cc_cross
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
|
||||
[
|
||||
dnl check target cc
|
||||
RTEMS_PROG_CC
|
||||
dnl check if the compiler supports --specs
|
||||
RTEMS_GCC_SPECS
|
||||
dnl check if the target compiler may use --pipe
|
||||
RTEMS_GCC_PIPE
|
||||
dnl check if the compiler supports --specs if gcc28 is requested
|
||||
if test "$RTEMS_USE_GCC272" != "yes" ; then
|
||||
if test "$rtems_cv_gcc_specs" = "no"; then
|
||||
AC_MSG_WARN([*** disabling --enable-gcc28])
|
||||
RTEMS_USE_GCC272=yes
|
||||
fi
|
||||
fi
|
||||
test "$rtems_cv_gcc_pipe" = "yes" && CC_FOR_TARGET="$CC_FOR_TARGET --pipe"
|
||||
|
||||
dnl FIXME: HACK for egcs/cygwin mixing '\\' and '/' in gcc -print-*
|
||||
case $host_os in
|
||||
*cygwin*) GCCSED="| sed 's%\\\\%/%g'" ;;
|
||||
*) ;;
|
||||
esac
|
||||
AC_SUBST(GCCSED)
|
||||
])
|
||||
@@ -1,81 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for target g++
|
||||
dnl
|
||||
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl Completely reworked
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CXX,
|
||||
[
|
||||
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CXX])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
|
||||
|
||||
dnl Only accept g++ and c++
|
||||
dnl NOTE: This might be too restrictive for native compilation
|
||||
AC_PATH_PROGS(CXX_FOR_TARGET, "$program_prefix"g++ "$program_prefix"c++)
|
||||
test -z "$CXX_FOR_TARGET" \
|
||||
&& AC_MSG_ERROR([no acceptable c++ found in \$PATH])
|
||||
|
||||
dnl backup
|
||||
rtems_save_CXX=$CXX
|
||||
rtems_save_CXXFLAGS=$CXXFLAGS
|
||||
|
||||
dnl temporarily set CXX
|
||||
CXX=$CXX_FOR_TARGET
|
||||
|
||||
AC_PROG_CXX_WORKS
|
||||
AC_PROG_CXX_GNU
|
||||
|
||||
if test $ac_cv_prog_gxx = yes; then
|
||||
GXX=yes
|
||||
dnl Check whether -g works, even if CXXFLAGS is set, in case the package
|
||||
dnl plays around with CXXFLAGS (such as to build both debugging and
|
||||
dnl normal versions of a library), tasteless as that idea is.
|
||||
ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
||||
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||
CXXFLAGS=
|
||||
AC_PROG_CXX_G
|
||||
if test "$ac_test_CXXFLAGS" = set; then
|
||||
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||
elif test $ac_cv_prog_cxx_g = yes; then
|
||||
CXXFLAGS="-g -O2"
|
||||
else
|
||||
CXXFLAGS="-O2"
|
||||
fi
|
||||
else
|
||||
GXX=
|
||||
test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
|
||||
fi
|
||||
|
||||
rtems_cv_prog_gxx=$ac_cv_prog_gxx
|
||||
rtems_cv_prog_cxx_g=$ac_cv_prog_cxx_g
|
||||
rtems_cv_prog_cxx_works=$ac_cv_prog_cxx_works
|
||||
rtems_cv_prog_cxx_cross=$ac_cv_prog_cxx_cross
|
||||
|
||||
CXX=$rtems_save_CXX
|
||||
CXXFLAGS=$rtems_save_CXXFLAGS
|
||||
|
||||
dnl restore initial values
|
||||
unset ac_cv_prog_gxx
|
||||
unset ac_cv_prog_cc_g
|
||||
unset ac_cv_prog_cxx_works
|
||||
unset ac_cv_prog_cxx_cross
|
||||
dnl somehow autoconf macros leave this file
|
||||
rm -f conftest.C
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
|
||||
[
|
||||
RTEMS_PROG_CXX
|
||||
if test "$rtems_cv_prog_cc_cross" != "$rtems_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
|
||||
])
|
||||
@@ -1,27 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN(RTEMS_PROJECT_ROOT,
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
if test "$TARGET_SUBDIR" = "." ; then
|
||||
PROJECT_ROOT=$RTEMS_TOPdir/'$(top_builddir)';
|
||||
else
|
||||
PROJECT_ROOT=../$RTEMS_TOPdir/'$(top_builddir)'
|
||||
fi
|
||||
AC_SUBST(PROJECT_ROOT)
|
||||
|
||||
RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
|
||||
AC_SUBST(RTEMS_ROOT)
|
||||
|
||||
PACKHEX="\$(PROJECT_ROOT)/tools/build/packhex"
|
||||
AC_SUBST(PACKHEX)
|
||||
|
||||
PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
|
||||
AC_SUBST(PROJECT_INCLUDE)
|
||||
|
||||
PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
|
||||
AC_SUBST(PROJECT_RELEASE)
|
||||
])
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
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_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
|
||||
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
|
||||
|
||||
AC_ARG_WITH(target-subdir,
|
||||
[ --with-target-subdir=DIR],
|
||||
TARGET_SUBDIR="$withval",
|
||||
TARGET_SUBDIR=".")
|
||||
|
||||
## HACK to allow gnu-make conditionals in automake-Makefiles.
|
||||
ENDIF=endif
|
||||
AC_SUBST(ENDIF)
|
||||
|
||||
RTEMS_TOPdir="$1";
|
||||
AC_SUBST(RTEMS_TOPdir)
|
||||
|
||||
dnl Determine RTEMS Version string from the VERSION file
|
||||
dnl Hopefully, Joel never changes its format ;-
|
||||
AC_MSG_CHECKING([for RTEMS Version])
|
||||
if test -r "${srcdir}/${RTEMS_TOPdir}/VERSION"; then
|
||||
changequote(,)dnl
|
||||
RTEMS_VERSION=`grep Version ${srcdir}/${RTEMS_TOPdir}/VERSION | \
|
||||
sed -e 's%RTEMS[ ]*Version[ ]*\(.*\)[ ]*%\1%g'`
|
||||
changequote([,])dnl
|
||||
else
|
||||
AC_MSG_ERROR(Unable to find ${RTEMS_TOPdir}/VERSION)
|
||||
fi
|
||||
if test -z "$RTEMS_VERSION"; then
|
||||
AC_MSG_ERROR(Unable to determine version)
|
||||
fi
|
||||
AC_MSG_RESULT($RTEMS_VERSION)
|
||||
])dnl
|
||||
@@ -1,133 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check for System V IPC calls used by Unix simulators
|
||||
dnl
|
||||
dnl 98/07/17 Dario Alcocer alcocer@netcom.com
|
||||
dnl Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
dnl Note: $host_os should probably *not* ever be used here to
|
||||
dnl determine if host supports System V IPC calls, since some
|
||||
dnl (e.g. FreeBSD 2.x) are configured by default to include only
|
||||
dnl a subset of the System V IPC calls. Therefore, to make sure
|
||||
dnl all of the required calls are found, test for each call explicitly.
|
||||
dnl
|
||||
dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally
|
||||
dnl modify any existing key sets. See the man pages for semget, shmget,
|
||||
dnl msgget, semctl, shmctl and msgctl for details.
|
||||
|
||||
AC_DEFUN(RTEMS_UNION_SEMUN,
|
||||
[
|
||||
AC_CACHE_CHECK([whether $RTEMS_HOST defines union semun],
|
||||
rtems_cv_HAS_UNION_SEMUN,
|
||||
[AC_TRY_COMPILE([
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/sem.h>],
|
||||
[union semun arg ;],
|
||||
[rtems_cv_HAS_UNION_SEMUN="yes"],
|
||||
[rtems_cv_HAS_UNION_SEMUN="no"])
|
||||
|
||||
if test "$rtems_cv_HAS_UNION_SEMUN" = "yes"; then
|
||||
AC_DEFINE(HAS_UNION_SEMUN)
|
||||
fi])
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_SYSV_SEM,
|
||||
[AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores,
|
||||
rtems_cv_sysv_sem,
|
||||
[
|
||||
AC_TRY_RUN(
|
||||
[
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/sem.h>
|
||||
#if !HAS_UNION_SEMUN
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
ushort *array;
|
||||
} ;
|
||||
#endif
|
||||
int main () {
|
||||
union semun arg ;
|
||||
|
||||
int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
|
||||
if (id == -1)
|
||||
exit(1);
|
||||
arg.val = 0; /* avoid implicit type cast to union */
|
||||
if (semctl(id, 0, IPC_RMID, arg) == -1)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],
|
||||
rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :)
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_SYSV_SHM,
|
||||
[AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory,
|
||||
rtems_cv_sysv_shm,
|
||||
[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
int main () {
|
||||
int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
|
||||
if (id == -1)
|
||||
exit(1);
|
||||
if (shmctl(id, IPC_RMID, 0) == -1)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],
|
||||
rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :)
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_SYSV_MSG,
|
||||
[AC_REQUIRE([AC_PROG_CC])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages,
|
||||
rtems_cv_sysv_msg,
|
||||
[
|
||||
AC_TRY_RUN([
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/msg.h>
|
||||
int main () {
|
||||
int id=msgget(IPC_PRIVATE,IPC_CREAT|0400);
|
||||
if (id == -1)
|
||||
exit(1);
|
||||
if (msgctl(id, IPC_RMID, 0) == -1)
|
||||
exit(1);
|
||||
exit(0);
|
||||
}
|
||||
],
|
||||
rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :)
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_SYSV_UNIX,
|
||||
[AC_REQUIRE([RTEMS_CANONICAL_HOST])
|
||||
if test "$RTEMS_CPU" = "unix" ; then
|
||||
RTEMS_UNION_SEMUN
|
||||
RTEMS_SYSV_SEM
|
||||
if test "$rtems_cv_sysv_sem" != "yes" ; then
|
||||
AC_MSG_ERROR([System V semaphores don't work, required by simulator])
|
||||
fi
|
||||
RTEMS_SYSV_SHM
|
||||
if test "$rtems_cv_sysv_shm" != "yes" ; then
|
||||
AC_MSG_ERROR([System V shared memory doesn't work, required by simulator])
|
||||
fi
|
||||
RTEMS_SYSV_MSG
|
||||
if test "$rtems_cv_sysv_msg" != "yes" ; then
|
||||
AC_MSG_ERROR([System V messages don't work, required by simulator])
|
||||
fi
|
||||
fi
|
||||
])
|
||||
@@ -1,129 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN(RTEMS_CONFIG_SUBDIRS,
|
||||
[
|
||||
define([RTEMS_TGT_SUBDIRS],
|
||||
ifdef([RTEMS_TGT_SUBDIRS], [RTEMS_TGT_SUBDIRS ],)[$1])dnl
|
||||
target_subdirs="RTEMS_TGT_SUBDIRS"
|
||||
AC_SUBST(target_subdirs)
|
||||
])
|
||||
|
||||
dnl This is a subroutine of AC_OUTPUT.
|
||||
dnl It is called after running config.status.
|
||||
dnl AC_OUTPUT_SUBDIRS(DIRECTORY...)
|
||||
AC_DEFUN(RTEMS_OUTPUT_SUBDIRS,
|
||||
[
|
||||
if test "$no_recursion" != yes; then
|
||||
if test $target_alias != $host_alias; then
|
||||
target_subdir="$target_alias"
|
||||
else
|
||||
target_subdir="."
|
||||
fi
|
||||
# Remove --cache-file and --srcdir arguments so they do not pile up.
|
||||
ac_sub_configure_args=
|
||||
ac_prev=
|
||||
for ac_arg in $ac_configure_args; 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=*)
|
||||
;;
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
*) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
test -d $target_subdir || mkdir $target_subdir
|
||||
for ac_config_dir in $1; do
|
||||
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
if test ! -d $srcdir/$ac_config_dir; then
|
||||
continue
|
||||
fi
|
||||
|
||||
echo configuring in $target_subdir/$ac_config_dir
|
||||
|
||||
case "$srcdir" in
|
||||
## .) ;;
|
||||
*)
|
||||
if test -d $target_subdir/$ac_config_dir || mkdir $target_subdir/$ac_config_dir; then :;
|
||||
else
|
||||
AC_MSG_ERROR(can not create `pwd`/$target_subdir/$ac_config_dir)
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
cd $target_subdir/$ac_config_dir
|
||||
|
||||
changequote(, )dnl
|
||||
# A "../" for each directory in /$ac_config_dir.
|
||||
ac_dots=`echo $target_subdir/$ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
|
||||
changequote([, ])dnl
|
||||
|
||||
case "$srcdir" in
|
||||
## .) # No --srcdir option. We are building in place.
|
||||
## ac_sub_srcdir=$srcdir ;;
|
||||
/*) # Absolute path.
|
||||
ac_sub_srcdir=$srcdir/$ac_config_dir ;;
|
||||
*) # Relative path.
|
||||
ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
|
||||
esac
|
||||
|
||||
# Check for guested configure; otherwise get Cygnus style configure.
|
||||
if test -f $ac_sub_srcdir/configure; then
|
||||
ac_sub_configure=$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_config_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.
|
||||
if test "$target_alias" != "$host_alias"; then
|
||||
ac_sub_cache_file=$cache_file
|
||||
else
|
||||
case "$cache_file" in
|
||||
/*) ac_sub_cache_file=$cache_file ;;
|
||||
*) # Relative path.
|
||||
ac_sub_cache_file="$ac_dots$cache_file" ;;
|
||||
esac
|
||||
fi
|
||||
ifdef([AC_PROVIDE_AC_PROG_INSTALL],
|
||||
[ case "$ac_given_INSTALL" in
|
||||
changequote(, )dnl
|
||||
[/$]*) INSTALL="$ac_given_INSTALL" ;;
|
||||
changequote([, ])dnl
|
||||
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
||||
esac
|
||||
])dnl
|
||||
|
||||
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 $ac_config_dir)
|
||||
fi
|
||||
fi
|
||||
|
||||
cd $ac_popdir
|
||||
done
|
||||
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,22 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set program_prefix
|
||||
dnl
|
||||
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
|
||||
dnl Extracted from configure
|
||||
|
||||
AC_DEFUN(RTEMS_TOOL_PREFIX,
|
||||
[AC_REQUIRE([AC_CANONICAL_TARGET])dnl
|
||||
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
|
||||
|
||||
changequote(,)dnl
|
||||
if [ "${program_prefix}" = "NONE" ] ; then
|
||||
if [ "${target}" = "${host}" ] ; then
|
||||
program_prefix=
|
||||
else
|
||||
program_prefix=${target}-
|
||||
fi
|
||||
fi
|
||||
changequote([,])dnl
|
||||
])
|
||||
@@ -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,9 +0,0 @@
|
||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||
|
||||
ifndef make-cxx-exe
|
||||
define make-cxx-exe
|
||||
$(LINK.cc) $(AM_CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDLIBS) -o $@ \
|
||||
$(LINK_OBJS) $(LINK_LIBS)
|
||||
endef
|
||||
@ENDIF@
|
||||
@@ -1,18 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||
|
||||
define make-library
|
||||
$(RM) $@
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
$(RANLIB) $@
|
||||
endef
|
||||
|
||||
$(PROJECT_RELEASE)/lib:
|
||||
@$(mkinstalldirs) $@
|
||||
|
||||
TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib
|
||||
|
||||
.PRECIOUS: $(LIB)
|
||||
@@ -1,80 +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
|
||||
|
||||
## 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)
|
||||
|
||||
LIBSUFFIX_VA = $(LIB_VARIANT).a
|
||||
|
||||
## These are supposed to be set in make/custom/<bsp>.cfg
|
||||
## CFLAGS_OPTIMIZE_V =
|
||||
## CFLAGS_DEBUG_V =
|
||||
## CFLAGS_PROFILE_V =
|
||||
|
||||
CFLAGS__V = $(CFLAGS_OPTIMIZE_V)
|
||||
AM_CFLAGS += $(CFLAGS_$(VARIANT_V)_V)
|
||||
|
||||
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: depend-am
|
||||
.PHONY: depend depend-am
|
||||
|
||||
${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
|
||||
|
||||
distclean-local:
|
||||
$(RM) Depends-o-optimize Depends-o-debug Depends-o-profile
|
||||
|
||||
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
|
||||
122
bootstrap
122
bootstrap
@@ -1,122 +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;
|
||||
}
|
||||
|
||||
if test ! -f $top_srcdir/VERSION; then
|
||||
echo "${progname}:"
|
||||
echo " Installation problem: Can't find file VERSION"
|
||||
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)
|
||||
|
||||
case $top_srcdir in
|
||||
/* ) aclocal_dir=$top_srcdir/aclocal
|
||||
;;
|
||||
*) aclocal_dir=`pwd`/$top_srcdir/aclocal
|
||||
;;
|
||||
esac
|
||||
|
||||
confs=`find . -name 'configure.in' -print`
|
||||
for i in $confs; do
|
||||
dir=`dirname $i`;
|
||||
( test "$quiet" = "true" || echo "$dir";
|
||||
cd $dir;
|
||||
aclocal -I $aclocal_dir;
|
||||
autoconf;
|
||||
test -n "`grep CONFIG_HEADER configure.in`" && autoheader ;
|
||||
test -f Makefile.am && automake $verbose ;
|
||||
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
|
||||
rm -f $i
|
||||
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 '*.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
|
||||
;;
|
||||
esac
|
||||
13
c/.cvsignore
13
c/.cvsignore
@@ -1,13 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -13,14 +13,14 @@ 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
|
||||
(tbennett@divnc.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
|
||||
@@ -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
|
||||
@@ -77,96 +77,7 @@ The following persons/organizations have made contributions:
|
||||
|
||||
+ 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, 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.
|
||||
the Motorola MVME147 board (68030 CPU + 68881 FPU).
|
||||
|
||||
Finally, the RTEMS project would like to thank those who have contributed
|
||||
to the other free software efforts which RTEMS utilizes. The primary RTEMS
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/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 = make . $(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"; \
|
||||
test -d $$i || mkdir $$i; \
|
||||
( cd $$i && \
|
||||
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 README.DOS REQUIRES PROBLEMS TESTED README \
|
||||
UPDATE_HELP
|
||||
|
||||
DIST_SUBDIRS = ${RTEMS_BSP}
|
||||
## -------------------------------------------------------
|
||||
include $(top_srcdir)/../automake/subdirs.am
|
||||
include $(top_srcdir)/../automake/host.am
|
||||
49
c/PROBLEMS
49
c/PROBLEMS
@@ -4,8 +4,10 @@
|
||||
|
||||
This is the list of outstanding problems in this release.
|
||||
|
||||
+ AMD 29k port is based on a non-GNU toolset.
|
||||
|
||||
+ The POSIX threads and real time extensions code in this tree are
|
||||
not completely tested yet. Some of the POSIX tests do run but none
|
||||
of the POSIX code is 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
|
||||
@@ -27,9 +29,14 @@ This is the list of outstanding problems in this release.
|
||||
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.
|
||||
|
||||
+ Not all of the BSP console drivers have been converted to termios.
|
||||
Look at the m68k/gen68360, sparc/erc32, and powerpc/psim BSPs for
|
||||
examples.
|
||||
+ 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:
|
||||
|
||||
@@ -37,37 +44,21 @@ This is the list of outstanding problems in this release.
|
||||
|
||||
+ There are conflicts between the names of native library routines
|
||||
which MUST be used and those in the POSIX support. This must
|
||||
be addressed. The POSIX API cannot be used with this port as a
|
||||
result of this.
|
||||
|
||||
+ Someone suggested writing a mini-system call interface to
|
||||
include with RTEMS which would eliminate name conflicts. This
|
||||
would allow the RTEMS POSIX API to be tested in this configuration.
|
||||
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 biggest problem is that
|
||||
some tests depend on polled IO with no unexpected context switches.
|
||||
These may not be resolvable while maintaining the spirit of the test.
|
||||
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.
|
||||
|
||||
+ Cross-check configure --enable-* flags.
|
||||
+ warn/refuse to configure when --enable-libcdir and
|
||||
--enable-gcc28 are given.
|
||||
+ force --enable-libcdir when --disable-gcc28 is given
|
||||
|
||||
+ make profile does not currently work for a variety of reasons. Few
|
||||
BSPs include profile versions of the libraries in their bsp_specs
|
||||
file. There is no mechanism to sample data for gperf to process.
|
||||
All of this will need to be addressed before "make profile" is truly
|
||||
useful.
|
||||
|
||||
+ Bare BSP does not compile for all configurations yet. This is
|
||||
primarily due to libcpu support code assuming that the BSP has
|
||||
made something available which is not with a bare BSP.
|
||||
|
||||
10
c/README
10
c/README
@@ -5,10 +5,18 @@
|
||||
This is the top level of the RTEMS directory structure. The following
|
||||
is a description of the files and directories in this directory:
|
||||
|
||||
Makefile.in
|
||||
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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
101
c/TESTED
101
c/TESTED
@@ -2,64 +2,36 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS project uses Intel x86 based computers running the RedHat
|
||||
distribution of the Linux operating system internally for development.
|
||||
This release has been tested on the following Languages/CPUs/Targets using
|
||||
RedHat Linux 5.1 as the host environment:
|
||||
This file is current as of the 3.5.17 snapshot.
|
||||
|
||||
CPU CPU
|
||||
FAMILY MODEL TARGET SUITES
|
||||
======== ========= ======================= ===============
|
||||
m66k mfc5200 no BSP (note 9)
|
||||
m68k m68000 efi68k (note 1)
|
||||
m68k m68020 Motorola MVME136 (note 1, 6)
|
||||
m68k m68030 Motorola MVME147 (note 1)
|
||||
m68k m68030 Motorola MVME147s (note 1)
|
||||
m68k m68lc040 Motorola MVME162 (note 1)
|
||||
m68k m68lc040 Motorola MVME162LX (note 1)
|
||||
m68k m68ec040 Motorola IDP (note 1)
|
||||
m68k m68040 Motorola MVME167 (note 1, 6)
|
||||
m68k m68020 DY-4 DMV152 (note 1)
|
||||
m68k m68302 generic 68302 (note 1)
|
||||
m68k m68302 ods 68302 (note 1)
|
||||
m68k m68332 efi332 (note 1)
|
||||
m68k m68360 generic 68360 (note 1, 6)
|
||||
m68k m68360 68360 in companion mode (note 1, 6)
|
||||
i386 i386_fp Force CPU-386 (note 1, 7)
|
||||
i386 i386ex generic i386ex (note 1, 6)
|
||||
i386 i386ex Technologic Systems TS-1325 (note 1, 6)
|
||||
i386 i386+ PC clone (pc386) (note 1, 6)
|
||||
i386 i486 PC clone (pc486) (note 1, 6)
|
||||
i386 Pentium PC clone (pc586) (note 1, 6)
|
||||
i386 i486 DJGPP/PC-AT (note 7)
|
||||
i386 pentium DJGPP/PC-AT (note 7)
|
||||
i960 i960ca Cyclone CVME961 (note 4)
|
||||
i960 i960ha no BSP (note 9)
|
||||
i960 i960rp rxgen960 (note 1)
|
||||
hppa hppa7100 simhppa (note 1)
|
||||
mips idt4600 p4000 (note 1)
|
||||
mips idt4650 p4000 (note 1)
|
||||
powerpc ppc403 helas403 (note 1, 6)
|
||||
powerpc ppc403 Papyrus (note 1)
|
||||
powerpc ppc403 psim (note 5)
|
||||
powerpc ppc603e Radstone PPCn_60x (note 1, 8)
|
||||
powerpc ppc603e DY-4 DMV-177 (note 1)
|
||||
powerpc ppc603e Vista Score603e (note 1)
|
||||
powerpc ppc603e Motorola MVME2307 (note 1)
|
||||
powerpc mpc750 Motorola MCP750 (note 1)
|
||||
powerpc mpc821 no BSP (note 9)
|
||||
powerpc mpc823 no BSP (note 9)
|
||||
powerpc mpc860 eth_comm (custom) (note 1, 6)
|
||||
sh sh7032 generic sh1 (note 1)
|
||||
sh sh7035 generic sh2 (note 1)
|
||||
sparc erc32 generic erc32 ALL TESTS (note 5)
|
||||
a29k a29k port sw (note 2)
|
||||
UNIX NA Solaris 2 (SPARC) (note 2)
|
||||
UNIX NA Solaris 2 (SPARC) (note 2)
|
||||
UNIX NA Linux (i386) ALL TESTS (inlines)
|
||||
UNIX NA Linux (i386) ALL TESTS (macros)
|
||||
UNIX NA HPUX (PA-RISC) (note 2)
|
||||
no_cpu NA no_bsp (note 3)
|
||||
The RTEMS project uses SparcStations running the Solaris 2.3 operating
|
||||
system internally for development. This release has been tested on the
|
||||
following Languages/CPUs/Targets using Solaris 2.3/SPARC as the host
|
||||
environment:
|
||||
|
||||
CPU CPU
|
||||
LANGUAGE FAMILY MODEL TARGET SUITES
|
||||
======== ====== ========= =================== ===============
|
||||
C m68k m68000 efi68k (note 1)
|
||||
C m68k m68020 Motorola MVME136 ALL TESTS
|
||||
C m68k m68020 Motorola MVME147 (note 1)
|
||||
C m68k m68lc040 Motorola MVME162 (note 1)
|
||||
C m68k m68ec040 Motorola IDP (note 1)
|
||||
C m68k m68020 DY-4 DMV152 (note 1)
|
||||
C m68k m68302 generic 68302 (note 1)
|
||||
C m68k m68332 efi332 (note 1)
|
||||
C m68k m68302 generic 68360 (note 1)
|
||||
C i386 i386_fp Force CPU-386 ALL TESTS
|
||||
C i386 i486 DJGPP/PC-AT ALL TESTS
|
||||
C i386 pentium DJGPP/PC-AT ALL TESTS
|
||||
C i960 i960ca Cyclone CVME961 (note 4)
|
||||
C hppa hppa7100 simhppa (note 1)
|
||||
C ppc 403 Papyrus (note 1)
|
||||
C UNIX NA Solaris 2 (SPARC) ALL TESTS (inlines)
|
||||
C UNIX NA Solaris 2 (SPARC) ALL TESTS (macros)
|
||||
C UNIX NA Linux (i386) NOT TESTED
|
||||
C UNIX NA HPUX (PA-RISC) (note 2)
|
||||
C no_cpu NA no_bsp (note 3)
|
||||
|
||||
NOTES:
|
||||
|
||||
@@ -72,23 +44,8 @@ immediately preceding the snapshot.
|
||||
"ALL TESTS" does not include the multiprocessor tests.
|
||||
|
||||
(2) RTEMS Project cannot internally compile or test this target.
|
||||
The HP-UX is not recognized in the configure script.
|
||||
The a29k does not use GNU tools and may suffer from bit rot.
|
||||
|
||||
(3) Target is not intended to be executed. It is only an example.
|
||||
|
||||
(4) The board owned by the RTEMS Project is broken. The BSP is known
|
||||
to compile and link with all appropriate tests successfully.
|
||||
|
||||
(5) This BSP is tested on a CPU software simulator.
|
||||
|
||||
(6) This BSP was tested by an RTEMS volunteer and reported to work.
|
||||
|
||||
(7) The BSP is deprecated. For information on what would be
|
||||
required to update it contact rtems@OARcorp.com.
|
||||
|
||||
(8) The Radstone ppcn_60x BSP was written by Radstone and designed
|
||||
to support any Radstone PowerPC board with only minor modifications.
|
||||
|
||||
(9) This CPU model is supported but there are no BSPs using this CPU
|
||||
model included in the current distribution.
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The following are targets for the GNU tools (egcs, binutils, newlib, and gdb)
|
||||
that are for RTEMS, their object format, and status notes
|
||||
|
||||
hppa:
|
||||
hppa1.1-rtems ELF
|
||||
|
||||
|
||||
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: i960-elf is in post binutils 2.9.1 snapshots.
|
||||
|
||||
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
|
||||
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
|
||||
@@ -22,3 +22,11 @@ unlock-directory
|
||||
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,10 +88,10 @@ 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)
|
||||
#if (defined(sparc) && (sunos < 500))
|
||||
#define stol(p) strtol(p, (char **) NULL, 0) /* Sunos */
|
||||
#else
|
||||
#define stol(p) strtol(p, (char **) NULL, 0)
|
||||
#define stol(p) strtoul(p, (char **) NULL, 0) /* Solaris */
|
||||
#endif
|
||||
|
||||
int unhex(FILE *ifp, char *inm, FILE *ofp, char *onm);
|
||||
@@ -137,10 +119,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 +680,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 +699,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);
|
||||
|
||||
113
c/configure.in
113
c/configure.in
@@ -1,113 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(src)
|
||||
RTEMS_TOP(..)
|
||||
AC_CONFIG_AUX_DIR(..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE(rtems-c,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
dnl These options are used within this file.
|
||||
RTEMS_ENABLE_BARE
|
||||
RTEMS_ENABLE_RTEMSBSP(rtems_bsp)
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
if test -z "$rtems_bsp"; then
|
||||
RTEMS_CHECK_BSPS(rtems_bsp)
|
||||
fi
|
||||
|
||||
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=
|
||||
if test "X${BARE_CPU_CFLAGS}" = "X" ; then
|
||||
AC_MSG_ERROR([--enable-bare-cpu-cflags not specified for bare bsp])
|
||||
fi
|
||||
if test "X${BARE_CPU_MODEL}" = "X" ; then
|
||||
AC_MSG_ERROR([--enable-bare-cpu-model not specified for bare bsp])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
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
|
||||
case $srcdir in
|
||||
/*) rtems_bsp_configure="$srcdir/src/configure";;
|
||||
*) rtems_bsp_configure="../$srcdir/src/configure";;
|
||||
esac
|
||||
|
||||
## Remove --cache-file, --srcdir and --enable-rtemsbsp arguments
|
||||
## so they do not pile up
|
||||
rtems_bsp_configure_args=
|
||||
for ac_arg in $ac_configure_args; 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=*)
|
||||
;;
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
--enable-rtemsbsp*) ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
*) rtems_bsp_configure_args="$rtems_bsp_configure_args $ac_arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
rtems_bsp_configure="$rtems_bsp_configure $rtems_bsp_configure_args"
|
||||
AC_SUBST(rtems_bsp_configure)
|
||||
|
||||
AC_SUBST(RTEMS_BSP_LIST)
|
||||
|
||||
AC_CONFIG_SUBDIRS(make)
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
)
|
||||
|
||||
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
|
||||
@@ -1,14 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
target.cfg
|
||||
@@ -1,16 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
|
||||
|
||||
rtems_makedir = $(prefix)/make
|
||||
|
||||
GENERIC_FILES = target.cfg
|
||||
|
||||
rtems_make_DATA = $(GENERIC_FILES)
|
||||
|
||||
EXTRA_DIST = target.cfg.in
|
||||
|
||||
include $(top_srcdir)/../../automake/host.am
|
||||
@@ -1,53 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
dnl
|
||||
dnl This script configures the configuration files below c/make/
|
||||
dnl
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(target.cfg.in)
|
||||
RTEMS_TOP(../..)
|
||||
AC_CONFIG_AUX_DIR(../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE(rtems-c-make,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENABLE_MULTIPROCESSING
|
||||
RTEMS_ENABLE_POSIX
|
||||
RTEMS_ENABLE_ITRON
|
||||
RTEMS_ENABLE_NETWORKING
|
||||
RTEMS_ENABLE_RDBG
|
||||
RTEMS_ENABLE_INLINES
|
||||
RTEMS_ENABLE_CXX
|
||||
RTEMS_ENABLE_GCC28
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_PROG_CC_FOR_TARGET
|
||||
|
||||
dnl check for g++
|
||||
if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
|
||||
RTEMS_PROG_CXX_FOR_TARGET
|
||||
fi
|
||||
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
AC_SUBST(rtems_cv_prog_cc_cross)
|
||||
AC_SUBST(RTEMS_HAS_POSIX)
|
||||
AC_SUBST(RTEMS_HOST)
|
||||
AC_SUBST(RTEMS_HAS_CPLUSPLUS)
|
||||
AC_SUBST(RTEMS_USE_GCC272)
|
||||
AC_SUBST(RTEMS_CPU)
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
target.cfg
|
||||
)
|
||||
@@ -1,69 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Target specific settings.
|
||||
#
|
||||
|
||||
prefix = @prefix@
|
||||
|
||||
CFLAGS = @CFLAGS@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
DEFS = @DEFS@
|
||||
LDFLAGS =
|
||||
LIBS = @LIBS@
|
||||
|
||||
CC = @CC_FOR_TARGET@
|
||||
AS = @AS_FOR_TARGET@
|
||||
AR = @AR_FOR_TARGET@
|
||||
NM = @NM_FOR_TARGET@
|
||||
LD = @LD_FOR_TARGET@
|
||||
SIZE = @SIZE_FOR_TARGET@
|
||||
STRIP = @STRIP_FOR_TARGET@
|
||||
OBJCOPY = @OBJCOPY_FOR_TARGET@
|
||||
RANLIB = @RANLIB_FOR_TARGET@
|
||||
|
||||
CXX = @CXX_FOR_TARGET@
|
||||
|
||||
export CC
|
||||
export AS
|
||||
export LD
|
||||
export NM
|
||||
export AR
|
||||
export SIZE
|
||||
export OBJCOPY
|
||||
|
||||
export CXX
|
||||
|
||||
RTEMS_CROSS_TARGET=@rtems_cv_prog_cc_cross@
|
||||
|
||||
RTEMS_HOST = @RTEMS_HOST@
|
||||
RTEMS_HAS_MULTIPROCESSING = @RTEMS_HAS_MULTIPROCESSING@
|
||||
RTEMS_HAS_POSIX_API = @RTEMS_HAS_POSIX_API@
|
||||
RTEMS_HAS_ITRON_API = @RTEMS_HAS_ITRON_API@
|
||||
RTEMS_HAS_NETWORKING = @RTEMS_HAS_NETWORKING@
|
||||
RTEMS_HAS_RDBG = @RTEMS_HAS_RDBG@
|
||||
RTEMS_HAS_CPLUSPLUS = @RTEMS_HAS_CPLUSPLUS@
|
||||
RTEMS_USE_MACROS = @RTEMS_USE_MACROS@
|
||||
RTEMS_USE_GCC272 = @RTEMS_USE_GCC272@
|
||||
RTEMS_LIBC_DIR = @RTEMS_LIBC_DIR@
|
||||
RTEMS_CPU = @RTEMS_CPU@
|
||||
|
||||
XCFLAGS=$(CFLAGS_FOR_TARGET)
|
||||
|
||||
export RTEMS_BSP
|
||||
export RTEMS_CUSTOM
|
||||
export PROJECT_ROOT
|
||||
|
||||
# List (possibly empty) of required managers
|
||||
# We require:
|
||||
# region -- used by lib/libcsupport for malloc()
|
||||
# ext -- used by libc for libc reentrancy hooks
|
||||
|
||||
MANAGERS_REQUIRED=region ext sem
|
||||
|
||||
# Create a RTEMS executable based on MANAGERS which was set in
|
||||
# app's Makefile
|
||||
|
||||
MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS) \
|
||||
$(MANAGERS_REQUIRED), $(MANAGER_LIST))
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -1,23 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
|
||||
|
||||
SUBDIRS = @cfg_subdirs@ wrapup tests
|
||||
|
||||
rtems_bspdir = $(prefix)/@RTEMS_BSP@
|
||||
|
||||
# NOTE: The wildcard on the install should pick up everything except
|
||||
# the tests directory. This significantly minimizes the install size.
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(rtems_bspdir)
|
||||
cd $(PROJECT_ROOT); \
|
||||
tar cf - @RTEMS_BSP@/[bilsuM]* | (cd $(DESTDIR)$(prefix); tar xpBf - );
|
||||
|
||||
uninstall-local:
|
||||
rm -rf $(rtems_bspdir)/[bsl]*;
|
||||
|
||||
include $(top_srcdir)/../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../automake/host.am
|
||||
@@ -1,64 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(exec)
|
||||
RTEMS_TOP(../..)
|
||||
AC_CONFIG_AUX_DIR(../..)
|
||||
|
||||
RTEMS_ENABLE_CXX
|
||||
RTEMS_ENABLE_NETWORKING
|
||||
RTEMS_ENABLE_RDBG
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
AM_INIT_AUTOMAKE(rtems-c-src,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
|
||||
RTEMS_CHECK_NETWORKING(RTEMS_BSP)
|
||||
|
||||
## Note: the order of the directories below is essential
|
||||
cfg_subdirs="make"
|
||||
cfg_subdirs="$cfg_subdirs exec"
|
||||
cfg_subdirs="$cfg_subdirs lib"
|
||||
cfg_subdirs="$cfg_subdirs libmisc"
|
||||
|
||||
if test "$RTEMS_CPU" != "unix"; then
|
||||
## HACK: Suppress libchip for unix
|
||||
cfg_subdirs="$cfg_subdirs libchip"
|
||||
fi
|
||||
|
||||
if test "$HAS_NETWORKING" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs libnetworking librpc"
|
||||
if test "$RTEMS_HAS_RDBG" = "yes"; then
|
||||
RTEMS_CHECK_RDBG(RTEMS_BSP)
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "$HAS_RDBG" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs librdbg"
|
||||
fi
|
||||
AM_CONDITIONAL(HAS_NETWORKING, test "$HAS_NETWORKING" = "yes" )
|
||||
AM_CONDITIONAL(HAS_RDBG, test "$HAS_RDBG" = "yes" )
|
||||
|
||||
if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs librtems++";
|
||||
fi
|
||||
|
||||
AC_CONFIG_SUBDIRS($cfg_subdirs)
|
||||
AC_SUBST(cfg_subdirs)
|
||||
AC_CONFIG_SUBDIRS(tests)
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
wrapup/Makefile
|
||||
)
|
||||
@@ -1,13 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -1,19 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
|
||||
|
||||
if HAS_POSIX
|
||||
POSIX_SUBDIRS = posix
|
||||
endif
|
||||
|
||||
if HAS_ITRON
|
||||
ITRON_SUBDIRS = itron
|
||||
endif
|
||||
|
||||
SUBDIRS = score rtems $(POSIX_SUBDIRS) $(ITRON_SUBDIRS) sapi wrapup
|
||||
|
||||
include $(top_srcdir)/../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../automake/local.am
|
||||
@@ -1,111 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(score)
|
||||
RTEMS_TOP(../../..)
|
||||
AC_CONFIG_AUX_DIR(../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE(rtems-c-src-exec,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
RTEMS_ENABLE_MULTIPROCESSING
|
||||
RTEMS_ENABLE_POSIX
|
||||
RTEMS_ENABLE_ITRON
|
||||
RTEMS_ENABLE_INLINES
|
||||
RTEMS_ENABLE_GCC28
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_PROG_CC_FOR_TARGET
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
RTEMS_CHECK_NEWLIB
|
||||
|
||||
# Check if there is custom/*.cfg for this BSP
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
|
||||
RTEMS_CHECK_POSIX_API(RTEMS_BSP)
|
||||
RTEMS_CHECK_ITRON_API(RTEMS_BSP)
|
||||
|
||||
# If RTEMS macros are enabled, then use them. Otherwise, use inlines.
|
||||
if test "$RTEMS_USE_MACROS" = "yes"; then
|
||||
INLINEdir="macros"
|
||||
if test "$HAS_POSIX_API" = "yes"; then
|
||||
# The problem is that there is currently no code in posix/macros :)
|
||||
AC_MSG_ERROR(Macros are not implemented for the POSIX API)
|
||||
fi
|
||||
if test "$HAS_ITRON_API" = "yes"; then
|
||||
# The problem is that there is currently no code in itron/macros :)
|
||||
AC_MSG_ERROR(Macros are not implemented for the ITRON API)
|
||||
fi
|
||||
else
|
||||
INLINEdir="inline"
|
||||
fi
|
||||
AM_CONDITIONAL(INLINE,test "$INLINEdir" = "inline" )
|
||||
AM_CONDITIONAL(MACROS,test "$INLINEdir" = "macros" )
|
||||
AM_CONDITIONAL(HAS_MP,test "$HAS_MP" = "yes" )
|
||||
|
||||
AC_SUBST(RTEMS_VERSION)
|
||||
|
||||
AM_CONDITIONAL(HAS_POSIX,test "$HAS_POSIX_API" = "yes")
|
||||
AM_CONDITIONAL(HAS_ITRON,test "$HAS_ITRON_API" = "yes")
|
||||
|
||||
if test "$HAS_POSIX_API" = "yes"; then
|
||||
cfg_subdirs="posix"
|
||||
fi
|
||||
if test "$HAS_ITRON_API" = "yes"; then
|
||||
cfg_subdirs="$cfg_subdirs itron"
|
||||
fi
|
||||
AC_CONFIG_SUBDIRS($cfg_subdirs)
|
||||
AC_CONFIG_SUBDIRS(score/cpu/$RTEMS_CPU)
|
||||
|
||||
# Explicitly list all Makefiles here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
rtems/Makefile
|
||||
rtems/src/Makefile
|
||||
rtems/include/Makefile
|
||||
rtems/include/rtems/Makefile
|
||||
rtems/include/rtems/rtems/Makefile
|
||||
rtems/optman/Makefile
|
||||
rtems/inline/Makefile
|
||||
rtems/inline/rtems/Makefile
|
||||
rtems/inline/rtems/rtems/Makefile
|
||||
rtems/macros/Makefile
|
||||
rtems/macros/rtems/Makefile
|
||||
rtems/macros/rtems/rtems/Makefile
|
||||
sapi/Makefile
|
||||
sapi/src/Makefile
|
||||
sapi/include/Makefile
|
||||
sapi/include/rtems/Makefile
|
||||
sapi/include/rtems/sptables.h
|
||||
sapi/inline/Makefile
|
||||
sapi/inline/rtems/Makefile
|
||||
sapi/macros/Makefile
|
||||
sapi/macros/rtems/Makefile
|
||||
sapi/optman/Makefile
|
||||
score/Makefile
|
||||
score/cpu/Makefile
|
||||
score/include/Makefile
|
||||
score/include/rtems/Makefile
|
||||
score/include/rtems/score/Makefile
|
||||
score/inline/Makefile
|
||||
score/inline/rtems/Makefile
|
||||
score/inline/rtems/score/Makefile
|
||||
score/macros/Makefile
|
||||
score/macros/rtems/Makefile
|
||||
score/macros/rtems/score/Makefile
|
||||
score/src/Makefile
|
||||
wrapup/Makefile
|
||||
wrapup/rtems/Makefile
|
||||
wrapup/itron/Makefile
|
||||
wrapup/posix/Makefile
|
||||
)
|
||||
@@ -1,13 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
aclocal.m4
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -1,11 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal
|
||||
|
||||
SUBDIRS = include inline src
|
||||
|
||||
include $(top_srcdir)/../../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,71 +0,0 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
dnl
|
||||
dnl $Id$
|
||||
|
||||
AC_PREREQ(2.13)
|
||||
AC_INIT(include/itronsys)
|
||||
RTEMS_TOP(../../../..)
|
||||
AC_CONFIG_AUX_DIR(../../../..)
|
||||
|
||||
RTEMS_CANONICAL_TARGET_CPU
|
||||
|
||||
AM_INIT_AUTOMAKE(rtems-c-src-exec-itron,$RTEMS_VERSION,no)
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
RTEMS_ENABLE_MULTIPROCESSING
|
||||
RTEMS_ENABLE_ITRON
|
||||
RTEMS_ENABLE_INLINES
|
||||
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_CHECK_CPU
|
||||
RTEMS_CANONICAL_HOST
|
||||
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_PROG_CC_FOR_TARGET
|
||||
RTEMS_CANONICALIZE_TOOLS
|
||||
|
||||
# Check if there is custom/*.cfg for this BSP
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
|
||||
RTEMS_CHECK_ITRON_API(RTEMS_BSP)
|
||||
|
||||
# If RTEMS macros are enabled, then use them. Otherwise, use inlines.
|
||||
if test "$RTEMS_USE_MACROS" = "yes"; then
|
||||
INLINEdir="macros"
|
||||
if test "$HAS_ITRON_API" = "yes"; then
|
||||
# The problem is that there is currently no code in itron/macros :)
|
||||
AC_MSG_ERROR(Macros are not implemented for the ITRON API)
|
||||
fi
|
||||
else
|
||||
INLINEdir="inline"
|
||||
fi
|
||||
AM_CONDITIONAL(INLINE,test "$INLINEdir" = "inline" )
|
||||
AM_CONDITIONAL(MACROS,test "$INLINEdir" = "macros" )
|
||||
|
||||
## Needed when using automake for libs/rels
|
||||
RTEMS_CHECK_NEWLIB
|
||||
|
||||
# If RTEMS macros are enabled, then use them. Otherwise, refuse to build
|
||||
if test "$RTEMS_USE_MACROS" = "yes"; then
|
||||
# The problem is that there is currently no code in itron/macros :)
|
||||
AC_MSG_ERROR(Macros are not implemented for the ITRON API)
|
||||
fi
|
||||
|
||||
##
|
||||
## FIXME: We configure and build the macros subdirectory, too.
|
||||
## Should probably use AM_CONDITIONALs to disable them in future
|
||||
# Explicitly list all Makefiles here
|
||||
AC_OUTPUT(
|
||||
Makefile
|
||||
src/Makefile
|
||||
include/Makefile
|
||||
include/itronsys/Makefile
|
||||
include/rtems/Makefile
|
||||
include/rtems/itron/Makefile
|
||||
inline/Makefile
|
||||
inline/rtems/Makefile
|
||||
inline/rtems/itron/Makefile
|
||||
)
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,24 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
H_FILES = itron.h
|
||||
|
||||
noinst_HEADERS = $(H_FILES)
|
||||
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE) \
|
||||
$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/%)
|
||||
|
||||
$(PROJECT_INCLUDE):
|
||||
@$(mkinstalldirs) $@
|
||||
$(PROJECT_INCLUDE)/%.h: %.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
all-local: $(PREINSTALL_FILES)
|
||||
|
||||
SUBDIRS = rtems itronsys
|
||||
|
||||
include $(top_srcdir)/../../../../automake/subdirs.am
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,52 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_h_
|
||||
#define __ITRON_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Include the basic requirements
|
||||
*/
|
||||
|
||||
#include <rtems/system.h> /* basic RTEMS types defined by */
|
||||
/* each port */
|
||||
#include <itronsys/types.h> /* define all the TRON types */
|
||||
/* in terms of the RTEMS base types */
|
||||
#include <itronsys/status.h> /* define all ITRON status codes */
|
||||
|
||||
/*
|
||||
* Now include the per manager include files
|
||||
*/
|
||||
|
||||
#include <itronsys/eventflags.h>
|
||||
#include <itronsys/fmempool.h>
|
||||
#include <itronsys/intr.h>
|
||||
#include <itronsys/mbox.h>
|
||||
#include <itronsys/msgbuffer.h>
|
||||
#include <itronsys/sysmgmt.h> /* network depends on this file */
|
||||
#include <itronsys/network.h>
|
||||
#include <itronsys/port.h>
|
||||
#include <itronsys/semaphore.h>
|
||||
#include <itronsys/task.h>
|
||||
#include <itronsys/time.h>
|
||||
#include <itronsys/vmempool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
Makefile
|
||||
Makefile.in
|
||||
@@ -1,22 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign 1.4
|
||||
|
||||
H_FILES = eventflags.h fmempool.h intr.h mbox.h msgbuffer.h network.h port.h \
|
||||
semaphore.h status.h sysmgmt.h task.h time.h types.h vmempool.h
|
||||
|
||||
noinst_HEADERS = $(H_FILES)
|
||||
|
||||
PREINSTALL_FILES += $(PROJECT_INCLUDE)/itronsys \
|
||||
$(noinst_HEADERS:%=$(PROJECT_INCLUDE)/itronsys/%)
|
||||
|
||||
$(PROJECT_INCLUDE)/itronsys:
|
||||
@$(mkinstalldirs) $@
|
||||
$(PROJECT_INCLUDE)/itronsys/%.h: %.h
|
||||
$(INSTALL_DATA) $< $@
|
||||
|
||||
all-local: $(PREINSTALL_FILES)
|
||||
|
||||
include $(top_srcdir)/../../../../automake/local.am
|
||||
@@ -1,9 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This directory contains the public interface of each manager.
|
||||
Each file in this directory is included from <itron.h>.
|
||||
|
||||
The private header file for each ITRON manager is in
|
||||
../rtems/itron.
|
||||
@@ -1,146 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_EVENTFLAGS_h_
|
||||
#define __ITRON_EVENTFLAGS_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Create Eventflags (cre_flg) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_cflg {
|
||||
VP exinf; /* extended information */
|
||||
ATR flgatr; /* eventflag attribute */
|
||||
UINT iflgptn; /* initial eventflag */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_CFLG;
|
||||
|
||||
/*
|
||||
* flgatr
|
||||
*/
|
||||
|
||||
#define TA_WSGL 0x00 /* multiple tasks are not allowed to wait (Wait
|
||||
Single Task) */
|
||||
#define TA_WMUL 0x08 /* multiple tasks are allowed to wait (Wait
|
||||
Multiple Task) */
|
||||
|
||||
/*
|
||||
* wfmode
|
||||
*/
|
||||
|
||||
#define TWF_ANDW 0x00 /* AND wait */
|
||||
#define TWF_ORW 0x02 /* OR wait */
|
||||
#define TWF_CLR 0x01 /* clear specification */
|
||||
|
||||
/*
|
||||
* Reference Eventflags (ref_flg) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_rflg {
|
||||
VP exinf; /* extended information */
|
||||
BOOL_ID wtsk; /* indicates whether or not there is a waiting task */
|
||||
UINT flgptn; /* eventflag bit pattern */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_RFLG;
|
||||
|
||||
/*
|
||||
* Eventflag Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* cre_flg - Create Eventflag
|
||||
*/
|
||||
|
||||
ER cre_flg(
|
||||
ID flgid,
|
||||
T_CFLG *pk_cflg
|
||||
);
|
||||
|
||||
/*
|
||||
* del_flg - Delete Eventflag
|
||||
*/
|
||||
|
||||
ER del_flg(
|
||||
ID flgid
|
||||
);
|
||||
|
||||
/*
|
||||
* set_flg - Set Eventflag
|
||||
*/
|
||||
|
||||
ER set_flg(
|
||||
ID flgid,
|
||||
UINT setptn
|
||||
);
|
||||
|
||||
/*
|
||||
* clr_flg - Clear Eventflag
|
||||
*/
|
||||
|
||||
ER clr_flg(
|
||||
ID flgid,
|
||||
UINT clrptn
|
||||
);
|
||||
|
||||
/*
|
||||
* wai_flg - Wait on Eventflag
|
||||
*/
|
||||
|
||||
ER wai_flg(
|
||||
UINT *p_flgptn,
|
||||
ID flgid,
|
||||
UINT waiptn,
|
||||
UINT wfmode
|
||||
);
|
||||
|
||||
/*
|
||||
* pol_flg - Wait for Eventflag(Polling)
|
||||
*/
|
||||
|
||||
ER pol_flg(
|
||||
UINT *p_flgptn,
|
||||
ID flgid,
|
||||
UINT waiptn,
|
||||
UINT wfmode
|
||||
);
|
||||
|
||||
/*
|
||||
* twai_flg - Wait on Eventflag with Timeout
|
||||
*/
|
||||
|
||||
ER twai_flg(
|
||||
UINT *p_flgptn,
|
||||
ID flgid,
|
||||
UINT waiptn,
|
||||
UINT wfmode,
|
||||
TMO tmout
|
||||
);
|
||||
|
||||
/*
|
||||
* ref_flg - Reference Eventflag Status
|
||||
*/
|
||||
|
||||
ER ref_flg(
|
||||
T_RFLG *pk_rflg,
|
||||
ID flgid
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_FIXED_MEMORYPOOL_h_
|
||||
#define __ITRON_FIXED_MEMORYPOOL_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Create Fixed Memory Pool (cre_mpf) Structure
|
||||
*/
|
||||
|
||||
/* cre_mpf */
|
||||
typedef struct t_cmpf {
|
||||
VP exinf; /* extended information */
|
||||
ATR mpfatr; /* memorypool attributes */
|
||||
INT mpfcnt; /* block count for entire memorypool */
|
||||
INT blfsz; /* fixed-size memory block size */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_CMPF;
|
||||
|
||||
/*
|
||||
* mpfatr
|
||||
*/
|
||||
|
||||
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */
|
||||
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */
|
||||
|
||||
|
||||
/*
|
||||
* Reference Fixed Memory Pool (ref_mpf) Structure
|
||||
*/
|
||||
|
||||
/* ref_mpf */
|
||||
typedef struct t_rmpf {
|
||||
VP exinf; /* extended information */
|
||||
BOOL_ID wtsk; /* indicates whether or not there are waiting tasks */
|
||||
INT frbcnt; /* free block count */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_RMPF;
|
||||
|
||||
/*
|
||||
* Fixed Memory Pool Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* cre_mpf - Create Fixed-Size Memorypool
|
||||
*/
|
||||
|
||||
ER cre_mpf(
|
||||
ID mpfid,
|
||||
T_CMPF *pk_cmpf
|
||||
);
|
||||
|
||||
/*
|
||||
* del_mpf - Delete Fixed-Size Memorypool
|
||||
*/
|
||||
|
||||
ER del_mpf(
|
||||
ID mpfid
|
||||
);
|
||||
|
||||
/*
|
||||
* get_blf - Get Fixed-Size Memory Block
|
||||
*/
|
||||
|
||||
ER get_blf(
|
||||
VP *p_blf,
|
||||
ID mpfid
|
||||
);
|
||||
|
||||
/*
|
||||
* pget_blf - Poll and Get Fixed-Size Memory Block
|
||||
*/
|
||||
|
||||
ER pget_blf(
|
||||
VP *p_blf,
|
||||
ID mpfid
|
||||
);
|
||||
|
||||
/*
|
||||
* tget_blf - Get Fixed-Size Memory Block with Timeout
|
||||
*/
|
||||
|
||||
ER tget_blf(
|
||||
VP *p_blf,
|
||||
ID mpfid,
|
||||
TMO tmout
|
||||
);
|
||||
|
||||
/*
|
||||
* rel_blf - Release Fixed-Size Memory Block
|
||||
*/
|
||||
|
||||
ER rel_blf(
|
||||
ID mpfid,
|
||||
VP blf
|
||||
);
|
||||
|
||||
/*
|
||||
* ref_mpf - Reference Fixed-Size Memorypool Status
|
||||
*/
|
||||
|
||||
ER ref_mpf(
|
||||
T_RMPF *pk_rmpf,
|
||||
ID mpfid
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,106 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_INTERRUPT_h_
|
||||
#define __ITRON_INTERRUPT_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define Interrupt (def_int) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_dint {
|
||||
ATR intatr; /* interrupt handler attributes */
|
||||
FP inthdr; /* interrupt handler address */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_DINT;
|
||||
|
||||
/*
|
||||
* Interrupt Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* def_int - Define Interrupt Handler
|
||||
*/
|
||||
|
||||
ER def_int(
|
||||
UINT dintno,
|
||||
T_DINT *pk_dint
|
||||
);
|
||||
|
||||
/*
|
||||
* ret_int - Return from Interrupt Handler
|
||||
*/
|
||||
|
||||
void ret_int( void );
|
||||
|
||||
/*
|
||||
* ret_wup - Return and Wakeup Task
|
||||
*/
|
||||
|
||||
void ret_wup(
|
||||
ID tskid
|
||||
);
|
||||
|
||||
/*
|
||||
* loc_cpu - Lock CPU
|
||||
*/
|
||||
|
||||
ER loc_cpu( void );
|
||||
|
||||
/*
|
||||
* unl_cpu - Unlock CPU
|
||||
*/
|
||||
|
||||
ER unl_cpu( void );
|
||||
|
||||
/*
|
||||
* dis_int - Disable Interrupt
|
||||
*/
|
||||
|
||||
ER dis_int(
|
||||
UINT eintno
|
||||
);
|
||||
|
||||
/*
|
||||
* ena_int - Enable Interrupt
|
||||
*/
|
||||
|
||||
ER ena_int(
|
||||
UINT eintno
|
||||
);
|
||||
|
||||
/*
|
||||
* chg_iXX - Change Interrupt Mask(Level or Priority)
|
||||
*/
|
||||
|
||||
ER chg_iXX(
|
||||
UINT iXXXX
|
||||
);
|
||||
|
||||
/*
|
||||
* ref_iXX - Reference Interrupt Mask(Level or Priority)
|
||||
*/
|
||||
|
||||
ER ref_iXX(
|
||||
UINT *p_iXXXX
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_MBOX_h_
|
||||
#define __ITRON_MBOX_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Create Mailbox (cre_mbx) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_cmbx {
|
||||
VP exinf; /* extended information */
|
||||
ATR mbxatr; /* mailbox attributes */
|
||||
/* Following is implementation-dependent function */
|
||||
INT bufcnt; /* maximum number of messages to let pend */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_CMBX;
|
||||
|
||||
/*
|
||||
* mbxatr
|
||||
*/
|
||||
|
||||
#define TA_TFIFO 0x00 /* waiting tasks are handled by FIFO */
|
||||
#define TA_TPRI 0x01 /* waiting tasks are handled by priority */
|
||||
#define TA_MFIFO 0x00 /* messages are handled by FIFO */
|
||||
#define TA_MPRI 0x02 /* messages are handled by priority */
|
||||
|
||||
typedef struct t_msg {
|
||||
/*
|
||||
* A region (header) reserved by the OS may be included first
|
||||
* depending on the implementation.
|
||||
*
|
||||
* NOTE: The first two fields are RTEMS specific.
|
||||
*/
|
||||
|
||||
INT msgpri; /* priority of each message */
|
||||
/* VB msgcont[]; XXX */
|
||||
unsigned8 msgcont[1];
|
||||
} T_MSG;
|
||||
|
||||
/*
|
||||
* Reference Mailbox (ref_mbx) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_rmbx {
|
||||
VP exinf; /* extended information */
|
||||
BOOL_ID wtsk; /* indicates whether or not there is a waiting task */
|
||||
T_MSG *pk_msg; /* message to be sent next */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_RMBX;
|
||||
|
||||
/*
|
||||
* Mailbox Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* cre_mbx - Create Mailbox
|
||||
*/
|
||||
|
||||
ER cre_mbx(
|
||||
ID mbxid,
|
||||
T_CMBX *pk_cmbx
|
||||
);
|
||||
|
||||
/*
|
||||
* del_mbx - Delete Mailbox
|
||||
*/
|
||||
|
||||
ER del_mbx(
|
||||
ID mbxid
|
||||
);
|
||||
|
||||
/*
|
||||
* snd_msg - Send Message to Mailbox
|
||||
*/
|
||||
|
||||
ER snd_msg(
|
||||
ID mbxid,
|
||||
T_MSG *pk_msg
|
||||
);
|
||||
|
||||
/*
|
||||
* rcv_msg - Receive Message from Mailbox
|
||||
*/
|
||||
|
||||
ER rcv_msg(
|
||||
T_MSG **ppk_msg,
|
||||
ID mbxid
|
||||
);
|
||||
|
||||
/*
|
||||
* prcv_msg - Poll and Receive Message from Mailbox
|
||||
*/
|
||||
|
||||
ER prcv_msg(
|
||||
T_MSG **ppk_msg,
|
||||
ID mbxid
|
||||
);
|
||||
|
||||
/*
|
||||
* trcv_msg - Receive Message from Mailbox with Timeout
|
||||
*/
|
||||
|
||||
ER trcv_msg(
|
||||
T_MSG **ppk_msg,
|
||||
ID mbxid,
|
||||
TMO tmout
|
||||
);
|
||||
|
||||
/*
|
||||
* ref_mbx - Reference Mailbox Status
|
||||
*/
|
||||
|
||||
ER ref_mbx(
|
||||
T_RMBX *pk_rmbx,
|
||||
ID mbxid
|
||||
);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
@@ -1,160 +0,0 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.OARcorp.com/rtems/license.html.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __ITRON_MESSAGEBUFFER_h_
|
||||
#define __ITRON_MESSAGEBUFFER_h_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Create Message Buffer (cre_mbf) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_cmbf {
|
||||
VP exinf; /* extended information */
|
||||
ATR mbfatr; /* messagebuffer attributes */
|
||||
INT bufsz; /* messagebuffer size */
|
||||
INT maxmsz; /* maximum size of messages */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_CMBF;
|
||||
|
||||
/*
|
||||
* mbfatr
|
||||
*/
|
||||
|
||||
#define TA_TFIFO 0x00 /* tasks waiting to receive messages are handled
|
||||
by FIFO */
|
||||
#define TA_TPRI 0x01 /* tasks waiting to receive messages are handled
|
||||
by priority */
|
||||
|
||||
/*
|
||||
* mbfid
|
||||
*/
|
||||
|
||||
#define TMBF_OS (-4) /* messagebuffer used for OS error log */
|
||||
#define TMBF_DB (-3) /* messagebuffer used for debugging */
|
||||
|
||||
/*
|
||||
* Reference Message Buffer (ref_mbf) Structure
|
||||
*/
|
||||
|
||||
typedef struct t_rmbf {
|
||||
VP exinf; /* extended information */
|
||||
BOOL_ID wtsk; /* indicates whether or not there is a */
|
||||
/* task waiting to receive a message */
|
||||
BOOL_ID stsk; /* indicates whether or not there is a */
|
||||
/* task waiting to send a message */
|
||||
INT msgsz; /* size of message to be sent next */
|
||||
INT frbufsz; /* size of free buffer */
|
||||
/* additional information may be included depending on the implementation */
|
||||
} T_RMBF;
|
||||
|
||||
/*
|
||||
* Message Buffer Functions
|
||||
*/
|
||||
|
||||
/*
|
||||
* cre_mbf - Create MessageBuffer
|
||||
*/
|
||||
|
||||
ER cre_mbf(
|
||||
ID mbfid,
|
||||
T_CMBF *pk_cmbf
|
||||
);
|
||||
|
||||
/*
|
||||
* del_mbf - Delete MessageBuffer
|
||||
*/
|
||||
|
||||
ER del_mbf(
|
||||
ID mbfid
|
||||
);
|
||||
|
||||
/*
|
||||
* snd_mbf - Send Message to MessageBuffer
|
||||
*/
|
||||
|
||||
ER snd_mbf(
|
||||
ID mbfid,
|
||||
VP msg,
|
||||
INT msgsz
|
||||
);
|
||||
|
||||
/*
|
||||
* psnd_mbf - Poll and Send Message to MessageBuffer
|
||||
*/
|
||||
|
||||
ER psnd_mbf(
|
||||
ID mbfid,
|
||||
VP msg,
|
||||
INT msgsz
|
||||
);
|
||||
|
||||
/*
|
||||
* tsnd_mbf - Send Message to MessageBuffer with Timeout
|
||||
*/
|
||||
|
||||
ER tsnd_mbf(
|
||||
ID mbfid,
|
||||
VP msg,
|
||||
INT msgsz,
|
||||
TMO tmout
|
||||
);
|
||||
|
||||
/*
|
||||
* rcv_mbf - Receive Message from MessageBuffer
|
||||
*/
|
||||
|
||||
ER rcv_mbf(
|
||||
VP msg,
|
||||
INT *p_msgsz,
|
||||
ID mbfid
|
||||
);
|
||||
|
||||
/*
|
||||
* prcv_mbf - Poll and Receive Message from MessageBuffer
|
||||
*/
|
||||
|
||||
ER prcv_mbf(
|
||||
VP msg,
|
||||
INT *p_msgsz,
|
||||
ID mbfid
|
||||
);
|
||||
|
||||
/*
|
||||
* trcv_mbf - Receive Message from MessageBuffer with Timeout
|
||||
*/
|
||||
|
||||
ER trcv_mbf(
|
||||
VP msg,
|
||||
INT *p_msgsz,
|
||||
ID mbfid,
|
||||
TMO tmout
|
||||
);
|
||||
|
||||
/*
|
||||
* ref_mbf - Reference MessageBuffer Status
|
||||
*/
|
||||
|
||||
ER ref_mbf(
|
||||
T_RMBF *pk_rmbf,
|
||||
ID mbfid
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/* end of include file */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user