forked from Imagelibrary/rtems
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a6b6f0c130 |
17
.cvsignore
17
.cvsignore
@@ -1,17 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
install.sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
mdate-sh
|
||||
missing
|
||||
mkinstalldirs
|
||||
texinfo.tex
|
||||
3
INSTALL
3
INSTALL
@@ -39,7 +39,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
|
||||
|
||||
63
LICENSE.NET
63
LICENSE.NET
@@ -1,63 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS TCP/IP stack is a port of the FreeBSD TCP/IP stack. The following
|
||||
copyright and licensing information applies to this code.
|
||||
|
||||
This code is found under the c/src/libnetworking directory but does not
|
||||
constitute the entire contents of that subdirectory.
|
||||
|
||||
=============================================================================
|
||||
|
||||
Copyright (c) 1980, 1983, 1988, 1993
|
||||
The Regents of the University of California. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. All advertising materials mentioning features or use of this software
|
||||
must display the following acknowledgment:
|
||||
This product includes software developed by the University of
|
||||
California, Berkeley and its contributors.
|
||||
4. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
-
|
||||
Portions Copyright (c) 1993 by Digital Equipment Corporation.
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies, and that
|
||||
the name of Digital Equipment Corporation not be used in advertising or
|
||||
publicity pertaining to distribution of the document or software without
|
||||
specific, written prior permission.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
|
||||
WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
|
||||
CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
||||
DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
||||
ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
SOFTWARE.
|
||||
|
||||
=============================================================================
|
||||
@@ -1,44 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The RTEMS RPC/XDR support is a port of the freely distributed
|
||||
Sun Microsystems implementation. The following copyright and
|
||||
licensing information applies to this code.
|
||||
|
||||
This code is in the c/src/librpc directory.
|
||||
|
||||
=============================================================================
|
||||
|
||||
Copyright (C) 1984, Sun Microsystems, Inc.
|
||||
|
||||
Sun RPC is a product of Sun Microsystems, Inc. and is provided for
|
||||
unrestricted use provided that this legend is included on all tape
|
||||
media and as a part of the software program in whole or part. Users
|
||||
may copy or modify Sun RPC without charge, but are not authorized
|
||||
to license or distribute it to anyone else except as part of a product or
|
||||
program developed by the user.
|
||||
|
||||
SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
|
||||
WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
|
||||
|
||||
Sun RPC is provided with no support and without any obligation on the
|
||||
part of Sun Microsystems, Inc. to assist in its use, correction,
|
||||
modification or enhancement.
|
||||
|
||||
SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
|
||||
INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
|
||||
OR ANY PART THEREOF.
|
||||
|
||||
In no event will Sun Microsystems, Inc. be liable for any lost revenue
|
||||
or profits or other special, indirect and consequential damages, even if
|
||||
Sun has been advised of the possibility of such damages.
|
||||
|
||||
Sun Microsystems, Inc.
|
||||
2550 Garcia Avenue
|
||||
Mountain View, California 94043
|
||||
|
||||
=============================================================================
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The source code in c/src/libnetworking/rtems_webserver is a port
|
||||
of the Go Ahead Software, Inc. WebServer. Their copyright and
|
||||
licensing terms apply. See c/src/libnetworking/rtems_webserver/license.txt
|
||||
for details.
|
||||
41
Makefile.am
41
Makefile.am
@@ -1,41 +0,0 @@
|
||||
#
|
||||
# top level directory for RTEMS build tree
|
||||
#
|
||||
## The target's toplevel Makefile now is in c/src
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I aclocal
|
||||
|
||||
SUBDIRS = make $(build_SUBDIRS) $(host_SUBDIRS) $(target_SUBDIRS)
|
||||
|
||||
AUTOMAKE_FILES = automake/compile.am automake/host.am automake/lib.am \
|
||||
automake/local.am automake/subdirs.am \
|
||||
automake/leaf.am automake/force-preinstall.am
|
||||
|
||||
ACLOCAL_FILES = aclocal/bsp-alias.m4 aclocal/canonical-host.m4 \
|
||||
aclocal/canonical-target-name.m4 aclocal/canonicalize-tools.m4 \
|
||||
aclocal/check-bsp-cache.m4 aclocal/check-bsps.m4 aclocal/check-cpu.m4 \
|
||||
aclocal/check-cxx.m4 aclocal/check-itron.m4 \
|
||||
aclocal/check-multiprocessing.m4 aclocal/check-networking.m4 \
|
||||
aclocal/check-newlib.m4 aclocal/check-posix.m4 aclocal/check-rdbg.m4 \
|
||||
aclocal/enable-bare.m4 aclocal/enable-cxx.m4 \
|
||||
aclocal/enable-inlines.m4 aclocal/enable-itron.m4 \
|
||||
aclocal/enable-multiprocessing.m4 aclocal/enable-networking.m4 \
|
||||
aclocal/enable-posix.m4 aclocal/enable-rdbg.m4 aclocal/enable-rtemsbsp.m4 \
|
||||
aclocal/enable-tests.m4 aclocal/gcc-pipe.m4 aclocal/gcc-specs.m4 \
|
||||
aclocal/i386-gas-code16.m4 aclocal/multilib.m4 aclocal/path-ksh.m4 \
|
||||
aclocal/path-perl.m4 aclocal/prog-cc.m4 aclocal/prog-cxx.m4 \
|
||||
aclocal/project-root.m4 aclocal/rtems-debug.m4 \
|
||||
aclocal/rtems-test-no-pause.m4 aclocal/rtems-top.m4 \
|
||||
aclocal/target.m4 aclocal/tool-paths.m4 aclocal/bspopts.m4 \
|
||||
aclocal/ppc.m4 aclocal/bsp-configure.m4 aclocal/gcc-isystem.m4
|
||||
|
||||
noinst_SCRIPTS = bootstrap
|
||||
|
||||
EXTRA_DIST = $(AUTOMAKE_FILES) $(ACLOCAL_FILES) README.configure SUPPORT \
|
||||
VERSION LICENSE $(noinst_SCRIPTS)
|
||||
|
||||
include $(top_srcdir)/automake/subdirs.am
|
||||
include $(top_srcdir)/automake/host.am
|
||||
76
Makefile.in
Normal file
76
Makefile.in
Normal file
@@ -0,0 +1,76 @@
|
||||
#
|
||||
# top level directory for RTEMS build tree
|
||||
#
|
||||
# Modified by Jiri to implement autoconf and cygnus one-tree build
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
includedir = @includedir@
|
||||
target = @target@
|
||||
manext = 1
|
||||
mandir = @mandir@/man$(manext)
|
||||
program_prefix = @program_prefix@
|
||||
|
||||
export bindir
|
||||
|
||||
RTEMS_ROOT = @top_srcdir@
|
||||
PROJECT_ROOT = @PROJECT_ROOT@
|
||||
|
||||
VPATH=@srcdir@
|
||||
|
||||
ifeq ($(RTEMS_BSP),)
|
||||
RTEMS_BSP = @RTEMS_BSP_LIST@
|
||||
endif
|
||||
|
||||
include $(RTEMS_ROOT)/make/main.cfg
|
||||
|
||||
MTARGETS = pre_install_src all install $(TARGET_VARIANTS) $(TARGET_VARIANTS:%=%_all) \
|
||||
$(TARGET_VARIANTS:%=%_install) $(TARGET_VARIANTS:%=%_tests) \
|
||||
clean_wrapup distclean clean_dirs clean_tools tests clean depend
|
||||
|
||||
EXIT_CMD = exit 1
|
||||
|
||||
# Don't pass flags from previous make - especially NOT CFLAGS
|
||||
# NOTE: Previous versions overrode MAKEFLAGS, but this also disables
|
||||
# a lot of useful features
|
||||
# override MAKEFLAGS=
|
||||
|
||||
$(MTARGETS):
|
||||
BASEDIR=`pwd`; \
|
||||
for bsp in $(RTEMS_BSP) xxx; \
|
||||
do if [ $$bsp != xxx ] ; then \
|
||||
cd $$BASEDIR; \
|
||||
cmd="cd c; $(MAKE) RTEMS_BSP=$$bsp $(FLAGS_TO_PASS) \
|
||||
$@" ; \
|
||||
eval $$cmd || $(EXIT_CMD); \
|
||||
fi; done;
|
||||
|
||||
## Configuration stuff
|
||||
|
||||
ACLOCAL = aclocal -I aclocal
|
||||
AUTOCONF = autoconf
|
||||
|
||||
ACLOCAL_FILES := $(wildcard $(srcdir)/aclocal/*.m4)
|
||||
ACLOCAL_M4 = aclocal.m4
|
||||
|
||||
$(ACLOCAL_M4): configure.in $(ACLOCAL_FILES)
|
||||
-cd $(RTEMS_ROOT) && $(ACLOCAL)
|
||||
|
||||
Makefile: Makefile.in config.status
|
||||
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||
|
||||
config.status: $(RTEMS_ROOT)/configure
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(RTEMS_ROOT)/configure: $(RTEMS_ROOT)/configure.in $(ACLOCAL_M4)
|
||||
-cd $(RTEMS_ROOT) && $(AUTOCONF)
|
||||
|
||||
.PRECIOUS: $(ACLOCAL_M4) configure Makefile config.status
|
||||
|
||||
2
README
2
README
@@ -39,7 +39,7 @@ Ada versus C
|
||||
There are two implementations of RTEMS in this source tree --
|
||||
in Ada and in C. These two implementations are functionally
|
||||
and structurally equivalent. The C implementation follows
|
||||
the packaging conventions and hierarchical nature of the Ada
|
||||
the packaging conventions and hiearchical nature of the Ada
|
||||
implementation. In addition, a style has been followed which
|
||||
allows one to easily find the corresponding Ada and C
|
||||
implementations.
|
||||
|
||||
73
README.cdn-X
73
README.cdn-X
@@ -1,73 +0,0 @@
|
||||
Building RTEMS Canadian Cross
|
||||
=============================
|
||||
|
||||
RTEMS now contains experimental and yet incomplete support for building
|
||||
it Canadian Cross.
|
||||
|
||||
1. Introduction
|
||||
---------------
|
||||
If you don't know what Canadian Cross Building means, you probably don't want
|
||||
to apply it and should consider stop reading here.
|
||||
|
||||
Interested readers might want to read Ian Lance Taylor's article at
|
||||
http://www.airs.com/ian/configure for underlaying details and working
|
||||
principles.
|
||||
|
||||
|
||||
2. RTEMS
|
||||
--------
|
||||
Example: Building RTEMS for sparc-rtems under i386-pc-linux-gnu to be hosted
|
||||
on a i386-cygwin platform.
|
||||
|
||||
2.1 Required tools
|
||||
------------------
|
||||
* A i386-pc-linux-gnu cross sparc-rtems toolchain.
|
||||
* A i386-pc-linux-gnu cross i386-cygwin toolchain.
|
||||
* A i386-pc-linux-gnu native toolchain.
|
||||
|
||||
We further on assume these to be installed to these locations:
|
||||
/opt/rtems .. linux cross sparc-rtems toolchain
|
||||
/opt/cygwin .. linux cross i386-cygwin cross-toolchain
|
||||
/usr .. linux native toolchain and further tools.
|
||||
|
||||
2.2 Building sparc-rtems
|
||||
------------------------
|
||||
The first step is to build RTEMS for sparc-rtems under linux.
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
<path>/rtems/configure [options] \
|
||||
--target=sparc-rtems \
|
||||
--prefix=/opt/cygwin
|
||||
make
|
||||
make install
|
||||
|
||||
This will build a standard sparc-rtems RTEMS and install it to the given
|
||||
PREFIX.
|
||||
|
||||
2.3 Building i386-cygwin host support
|
||||
-------------------------------------
|
||||
The next step is to build RTEMS host support for i386-cygwin.
|
||||
This basically means to cross-build the host tools contained in RTEMS.
|
||||
|
||||
mkdir host
|
||||
cd host
|
||||
<path>/rtems/configure [options] \
|
||||
--target=sparc-rtems \
|
||||
--build=`<path>/rtems/config.guess` \
|
||||
--host=i386-cygwin \
|
||||
--prefix=/opt/cygwin
|
||||
make
|
||||
make install
|
||||
|
||||
This will build RTEMS host-tools for i386-cygwin and install them to the given
|
||||
PREFIX.
|
||||
|
||||
|
||||
3. Known issues
|
||||
---------------
|
||||
|
||||
* At present time, building RTEMS Canadian Cross is known to be immature, and
|
||||
to require additional work. Do not expect this to work.
|
||||
|
||||
* The <toplevel>/make/ directory hierarchy is not treated correctly.
|
||||
205
README.configure
205
README.configure
@@ -10,9 +10,6 @@ configured and built either standalone or together with the compiler
|
||||
tools in the Cygnus one-tree structure. Using autoconf also means
|
||||
that RTEMS now can be built in a separate build directory.
|
||||
|
||||
To re-generate auto*tool generated files (configure, Makefile.in etc),
|
||||
autoconf-2.57 and automake-1.7.2 are required.
|
||||
|
||||
2. Installation
|
||||
===============
|
||||
|
||||
@@ -24,90 +21,72 @@ RTEMS-specific option are supported:
|
||||
|
||||
--disable-rtems-inlines
|
||||
--disable-posix
|
||||
--disable-itron
|
||||
--disable-tests
|
||||
--disable-networking
|
||||
--enable-cxx
|
||||
--enable-bare-cpu-model=<MODEL>
|
||||
--enable-bare-cpu-cflags=<FLAGS>
|
||||
--enable-multiprocessing
|
||||
--enable-gcc28 (also use enable-libcdir when disabled)
|
||||
--enable-gmake-print-directory
|
||||
--enable-libcdir=<DIRECTORY> (do not use if gcc 2.8 is enabled)
|
||||
--enable-rtemsbsp="bsp1 bsp2 ..."
|
||||
--enable-tests
|
||||
--enable-rdbg (only valid for i386 and some PowerPC BSPs)
|
||||
--enable-docs
|
||||
|
||||
In addition, the following standard autoconf options are frequently
|
||||
used when configuring RTEMS installations:
|
||||
|
||||
--prefix=INSTALL_DIRECTORY
|
||||
--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
|
||||
By default, the RTEMS posix interface is built for targets that support
|
||||
it. It can be disabled with the --disable-posix option.
|
||||
|
||||
By default, the RTEMS uITRON interface is built for targets that support
|
||||
it. It can be disabled with the --disable-itron option.
|
||||
|
||||
By default, the RTEMS networking support is built for targets which
|
||||
support it. It can be specifically disabled for those targets
|
||||
with the --disable-networking option.
|
||||
|
||||
By default, the RTEMS remote debugger server support is not built.
|
||||
It can be specifically enabled for the targets that support it.
|
||||
with the --enable-rdbg option. NB : the RTEMS networking support
|
||||
must be enabled to support the remote debugger server.
|
||||
|
||||
By default, the RTEMS support of C++ is disabled. It can be enabled
|
||||
with the --enable-cxx option. If the rtems++ C++ library is installed
|
||||
it will also be build.
|
||||
|
||||
By default, the RTEMS test suites are NOT configured -- only the
|
||||
sample tests are built. --enable-tests will configure
|
||||
the RTEMS test suite. The default speeds up the build
|
||||
and configure process when the tests are not desired.
|
||||
By default, the RTEMS test suites are configured. The --disable-tests
|
||||
will not configure the RTEMS test suite. This is used only to speed-up
|
||||
configuration in case building the tests are not necessary.
|
||||
|
||||
By default, RTEMS is built using arguments and build rules which require a
|
||||
gcc supporting the -specs option, ie. a gcc >= 2.8.
|
||||
[The --disable-gcc28 option, which has been present in former releases, has
|
||||
been removed.]
|
||||
|
||||
By default, multiprocessing is is not built. It can be enabled
|
||||
for those BSPs supporting it by the --enable-multiprocessing option.
|
||||
By default, RTEMS is built using arguments and build rules which are
|
||||
compatible with gcc 2.7.2.2. This requires that the user specify
|
||||
the location of the Standard C Library with the --enable-libcdir
|
||||
option. 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.
|
||||
|
||||
By default, all bsps for a target are built. The bare BSP is not built
|
||||
unless directly specified. There are two ways of changing this:
|
||||
unless directlty specified. There are two ways of changing this:
|
||||
|
||||
+ use the --enable-rtemsbsp option which will set the specified
|
||||
+ 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 board
|
||||
within a target architecture. Remember that the target specifies the
|
||||
CPU family while the BSP specifies the precise board you will be using.
|
||||
The following targets are supported:
|
||||
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
|
||||
arm-rtems
|
||||
h8300-rtems
|
||||
i386-rtems
|
||||
i386-go32-rtems see notes
|
||||
i960-rtems
|
||||
hppa1.1-rtems
|
||||
m68k-rtems
|
||||
mips-rtems
|
||||
mips64orion-rtems
|
||||
no_cpu-rtems
|
||||
powerpc-rtems
|
||||
sh-rtems
|
||||
sparc-rtems
|
||||
bare see notes
|
||||
|
||||
|
||||
The cross-compiler is set to $(target)-gcc by default. This can be
|
||||
overridden by:
|
||||
overriden by:
|
||||
|
||||
+ using the --program-prefix option to configure to specify the
|
||||
string which will prepended to the tool names. Be sure to include
|
||||
@@ -131,12 +110,8 @@ As an example, to build and install the mvme136 and dmv152 bsps for m68k do:
|
||||
The sample tests are built by 'make all', do a 'make test' to build the full
|
||||
test suite.
|
||||
|
||||
By default, --enable-docs is disabled and documentation is not built.
|
||||
|
||||
2.2 Build with Cygnus one-tree release
|
||||
|
||||
[NOTE: This section does not apply anymore.]
|
||||
|
||||
To build and install RTEMS with the one-tree structure, just copy the rtems
|
||||
directory to the tree. The one-tree configure.in and Makefile.in has to be
|
||||
replaced with the RTEMS-aware versions. The build options are the same as
|
||||
@@ -144,6 +119,33 @@ for the standalone build.
|
||||
|
||||
2.3 Target Dependent Notes
|
||||
|
||||
i386-go32-rtems:
|
||||
|
||||
1. This is based on djgpp v1.xx. It needs to be updated to v2.xx.
|
||||
2. This cannot be built one-tree style since RTEMS requires some
|
||||
files which must be obtained from the binary distribution of the
|
||||
djgpp library. DJGPP can be obtained from
|
||||
http://www.delorie.com/djgpp/dl/ofc.
|
||||
3. You will need to manually install a number of files from the
|
||||
binary distribution of the DJGPP library doing something
|
||||
like the following:
|
||||
|
||||
# unzip the djgpp distribution
|
||||
cd include
|
||||
cp dpmi.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
|
||||
cp go32.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
|
||||
cp dos.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
|
||||
cp pc.h INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/include
|
||||
|
||||
cd ../lib
|
||||
cp crt* INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2
|
||||
cp libpc* INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2
|
||||
|
||||
# Make sure about destination on the next lines. It keeps the newlib
|
||||
# libc.a and the binary djgpp libc.a from conflicting.
|
||||
cp libc.a INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/libcgo32.a
|
||||
cp libc_p.a INSTALL_POINT/lib/gcc-lib/i386-go32-rtems/2.7.2/libcgo32_p.a
|
||||
|
||||
bare:
|
||||
|
||||
1. See the README in the bare bsp source directory. This should
|
||||
@@ -176,101 +178,82 @@ following:
|
||||
|
||||
The following bsps are supported:
|
||||
|
||||
host-based : posix (on Linux, FreeBSD, Cygwin, Solaris, and HPUX)
|
||||
|
||||
arm : arm_bare_bsp armulator edb7312 vegaplus
|
||||
|
||||
c4x : c4xsim
|
||||
|
||||
h8300 : h8sim
|
||||
|
||||
i386 : i386ex pc386 pc386dx pc486 pc586 pc686 pck6 ts_386ex
|
||||
NOTE: The "pc386" BSP can be compiled to support a
|
||||
variety of PC configurations including PC-104
|
||||
based solutions.
|
||||
|
||||
i960 : cvme961 i960sim rxgen960
|
||||
|
||||
m68k : dmv152 efi332 efi68k gen68302 gen68340 gen68360
|
||||
gen68360_040 idp mcf5206elite mrm332 mvme136 mvme147
|
||||
mvme147s mvme162 mvme162lx ods68302
|
||||
|
||||
no_cpu : no_bsp (porting example)
|
||||
|
||||
mips : p4600 p4650 (p4000 port with either R4600 or R4650)
|
||||
jmr3904 genmongoosev
|
||||
|
||||
or32: : orp
|
||||
|
||||
powerpc : dmv177 eth_comm gen405 helas403 mcp750 mbx8xx mtx603e
|
||||
mvme230x ppcn_60x psim score603e
|
||||
|
||||
NOTE: The "motorola_powerpc" BSP is a single BSP which
|
||||
can be conditionally compiled to support most Motorola
|
||||
VMEbus, CompactPCI, and MTX boards.)
|
||||
|
||||
sh : gensh1 gensh2 shsim simsh4 gensh4
|
||||
|
||||
sparc : erc32 erc32nfp leon1 leon2
|
||||
|
||||
any : bare
|
||||
|
||||
The following ports are considered deprecated and will be removed in
|
||||
a future release:
|
||||
host-based : posix (on linux, solaris and hpux)
|
||||
|
||||
a29k : portsw
|
||||
|
||||
i386 : force386 i386ex pc386
|
||||
i386-go32 : go32 go32_p5
|
||||
i960 : cvme961
|
||||
hppa1.1 : simhppa
|
||||
|
||||
mips64orion : (deprecated)
|
||||
p4600 p4650 (p4000 port with either R4600 or R4650)
|
||||
|
||||
NOTE: MIPS support is NOT being dropped. This is a clean up
|
||||
effort and the mips64orion BSPs and CPUs will be
|
||||
supported by the mips port.
|
||||
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-organized. Most gnu-based bsps now use three
|
||||
The makefiles have been re-organised. Most gnu-based bsps now use three
|
||||
main makefiles:
|
||||
+ custom/default.cfg,
|
||||
+ custom/bsp.cfg and
|
||||
+ compilers/gcc-target-default.cfg.
|
||||
+ ompilers/gcc-target-default.cfg.
|
||||
|
||||
Default.cfg sets the default values of certain common build options.
|
||||
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.
|
||||
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
|
||||
===============
|
||||
|
||||
Please refer to the BSP and Device Driver Guide.
|
||||
|
||||
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
|
||||
+ The C4x and OR32 ports (requires specially patched toolchain)
|
||||
+ The a29k port.
|
||||
|
||||
8. Prerequisites
|
||||
================
|
||||
8. Pre-requisites
|
||||
=================
|
||||
|
||||
Gawk version 2 or higher.
|
||||
GNU make version 3.72 or higher.
|
||||
Bash.
|
||||
gcc version > 2.8
|
||||
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'.
|
||||
|
||||
NOTE: These prerequisites are probably out of date but autoconf should detect
|
||||
any problems.
|
||||
|
||||
15
SUPPORT
15
SUPPORT
@@ -2,13 +2,14 @@
|
||||
# $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
|
||||
RTEMS was developed by On-Line Applications Research Corporation (OAR)
|
||||
for the U.S. Army Missile Command. 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 more information, email Mark Johannes at mark.johannes@OARcorp.com
|
||||
For more information, email Mark Johannes at mark@OARcorp.com
|
||||
or contact OAR at:
|
||||
|
||||
On-Line Applications Research Corporation
|
||||
@@ -17,6 +18,8 @@ Huntsville AL 35805
|
||||
Voice: (205) 722-9985
|
||||
Fax: (205 722-0985
|
||||
|
||||
RTEMS maintenance and development is funded solely by RTEMS users.
|
||||
The future of RTEMS depends on its user base.
|
||||
In the past, RTEMS maintainance and enhancements were primarily funded
|
||||
by the development contracts sponsored by the U.S. Army. Now RTEMS
|
||||
is funded solely by RTEMS users. The future of RTEMS depends on
|
||||
its user base.
|
||||
|
||||
|
||||
4
VERSION
4
VERSION
@@ -1,7 +1,5 @@
|
||||
#
|
||||
# This file is automatically generated -- DO NOT EDIT!!!
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
RTEMS Version 4.6.5
|
||||
RTEMS Version 4.0.0
|
||||
|
||||
395
acinclude.m4
395
acinclude.m4
@@ -1,395 +0,0 @@
|
||||
## All directories belong in one of 3 categories.
|
||||
## ${HOST_CONFIGDIRS_LIST} is directories we build using the host tools.
|
||||
## ${TARGET_CONFIGDIRS_LIST} is directories we build using the target tools.
|
||||
## ${BUILD_CONFIGDIRS_LIST} is directories we build using the build tools
|
||||
|
||||
AC_PREREQ(2.57)
|
||||
|
||||
dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
|
||||
dnl An internal macros to have help strings pretty
|
||||
dnl printed with configure --help, without letting autoconf spoil config subdir
|
||||
dnl environments by trying to propagate them
|
||||
dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.
|
||||
|
||||
AC_DEFUN([_RTEMS_ARG_VAR],
|
||||
[
|
||||
m4_expand_once([m4_divert_once([HELP_VAR],
|
||||
[AC_HELP_STRING([$1], [$2], [ ])])],
|
||||
[$0($1)])dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_SUBST_IFNOT],
|
||||
[AS_IF([`echo " [$]$1 " | grep " $2 " > /dev/null`],
|
||||
[],
|
||||
[AC_SUBST([$1],["[$]$1 $2"])])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_TOOLS],
|
||||
[
|
||||
m4_ifdef([_RTEMS_$2_CONFIGDIRS_LIST],
|
||||
[
|
||||
_RTEMS_ARG_VAR([CC_FOR_$2],
|
||||
[c-compiler to be used for $1 subdirs (default: auto-detected)])
|
||||
_RTEMS_ARG_VAR([CFLAGS_FOR_$2],
|
||||
[c-flags to be used for $1 subdirs (default: provided by autoconf)])
|
||||
_RTEMS_ARG_VAR([CXX_FOR_$2],
|
||||
[c++-compiler to be used for $1 subdirs (default: auto-detected)])
|
||||
_RTEMS_ARG_VAR([CXXFLAGS_FOR_$2],
|
||||
[c++-flags to be used for $1 subdirs (default: provided by autoconf)])
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS],
|
||||
[
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
|
||||
if test -z "${build_alias}"; then
|
||||
# build_alias is empty
|
||||
if test -z "${host_alias}"; then
|
||||
# host_alias is empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
else
|
||||
# host_alias is not empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
target_alias="${host_alias}"
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# build_alias is not empty
|
||||
if test -z "${host_alias}"; then
|
||||
# host_alias is empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
else
|
||||
# host_alias is not empty
|
||||
if test -z "${target_alias}"; then
|
||||
: target_alias is empty
|
||||
target_alias="${host_alias}"
|
||||
else
|
||||
: target_alias is not empty
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
_RTEMS_BUILD_CONFIG_PREPARE
|
||||
_RTEMS_HOST_CONFIG_PREPARE
|
||||
_RTEMS_TARGET_CONFIG_PREPARE
|
||||
|
||||
build_subdir="."
|
||||
build_SUBDIRS="${build_configdirs}"
|
||||
build_configdirs="${build_configdirs}"
|
||||
|
||||
AS_IF([test $build != $host],
|
||||
[dnl
|
||||
host_subdir="${host_alias-$host}"
|
||||
host_SUBDIRS=`echo "${host_configdirs}" | \
|
||||
sed -e "s%\([[^ ]][[^ ]]*\)%$host_subdir/\1%g"`
|
||||
host_configdirs="${host_configdirs}"
|
||||
],[dnl
|
||||
host_SUBDIRS="${host_configdirs}"
|
||||
host_configdirs="${host_configdirs}"
|
||||
])
|
||||
|
||||
AS_IF([test $build != $target],
|
||||
[dnl
|
||||
target_subdir="${target_alias-$target}"
|
||||
target_SUBDIRS=`echo "${target_configdirs}" | \
|
||||
sed -e "s%\([[^ ]][[^ ]]*\)%$target_subdir/\1%g"`
|
||||
target_configdirs="${target_configdirs}"
|
||||
],[dnl
|
||||
target_SUBDIRS="${target_configdirs}"
|
||||
target_configdirs="${target_configdirs}"
|
||||
])
|
||||
|
||||
AC_SUBST(host_SUBDIRS)
|
||||
AC_SUBST(target_SUBDIRS)
|
||||
AC_SUBST(build_SUBDIRS)
|
||||
])
|
||||
|
||||
AC_CONFIG_COMMANDS_POST([
|
||||
_RTEMS_OUTPUT_SUBDIRS([build],[BUILD])
|
||||
_RTEMS_OUTPUT_SUBDIRS([host],[HOST])
|
||||
_RTEMS_OUTPUT_SUBDIRS([target],[TARGET])
|
||||
])
|
||||
])
|
||||
|
||||
dnl _RTEMS_SRCPATHS(BUILD-DIR-NAME)
|
||||
dnl ----------------------------
|
||||
dnl Inputs:
|
||||
dnl - BUILD-DIR-NAME is `top-build -> build' and `top-src -> src'
|
||||
dnl - `$srcdir' is `top-build -> top-src'
|
||||
dnl
|
||||
dnl Outputs:
|
||||
dnl - `ac_builddir' is `.', for symmetry only.
|
||||
dnl - `ac_top_builddir' is `build -> top_build'.
|
||||
dnl If not empty, has a trailing slash.
|
||||
dnl - `ac_srcdir' is `build -> src'.
|
||||
dnl - `ac_top_srcdir' is `build -> top-src'.
|
||||
dnl
|
||||
dnl and `ac_buildpath' etc., the absolute paths.
|
||||
m4_define([_RTEMS_SRCPATHS],
|
||||
[
|
||||
m4_if([$2],,
|
||||
[dstdir=$1],
|
||||
[case "$2" in
|
||||
"." | "" ) # No subdir was given
|
||||
dstdir=$1;;
|
||||
* ) # A subdir was given
|
||||
dstdir=$2/$1;;
|
||||
esac])
|
||||
ac_builddir=.
|
||||
|
||||
AS_IF([test $dstdir != .],
|
||||
[ # Strip off leading ./
|
||||
ac_builddir_suffix=/`echo $dstdir | sed 's,^\.[[\\/]],,'`
|
||||
ac_srcdir_suffix=/`echo $1 | sed 's,^\.[[\\/]],,'`
|
||||
# A "../" for each directory in $ac_dir_suffix.
|
||||
ac_top_builddir=`echo "$ac_builddir_suffix" | sed 's,/[[^\\/]]*,../,g'`
|
||||
],[
|
||||
ac_dir_suffix= ac_top_builddir=
|
||||
])
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_srcdir=.
|
||||
if test -z "$ac_top_builddir"; then
|
||||
ac_top_srcdir=.
|
||||
else
|
||||
ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
|
||||
fi ;;
|
||||
[[\\/]]* | ?:[[\\/]]* ) # Absolute path.
|
||||
ac_srcdir=$srcdir$ac_srcdir_suffix;
|
||||
ac_top_srcdir=$srcdir;
|
||||
;;
|
||||
*) # Relative path.
|
||||
ac_srcdir=$ac_top_builddir$srcdir$ac_srcdir_suffix;
|
||||
ac_top_srcdir=$ac_top_builddir$srcdir;
|
||||
;;
|
||||
esac
|
||||
dnl Don't blindly perform a `cd $1/$ac_foo && pwd` since $ac_foo can be
|
||||
dnl absolute.
|
||||
|
||||
ac_buildpath=`cd $dstdir && cd $ac_builddir && pwd`
|
||||
ac_top_buildpath=`cd $dstdir && cd $ac_top_builddir && pwd`
|
||||
ac_srcpath=`cd $dstdir && cd $ac_srcdir && pwd`
|
||||
ac_top_srcpath=`cd $dstdir && cd $ac_top_srcdir && pwd`
|
||||
])# _AC_SRCPATHS
|
||||
|
||||
dnl _RTEMS_OUTPUT_SUBDIRS([host|target|build],[HOST|TARGET|BUILD])
|
||||
AC_DEFUN([_RTEMS_OUTPUT_SUBDIRS],[
|
||||
m4_ifdef([_RTEMS_$2_CONFIGDIRS_LIST],
|
||||
[
|
||||
if test "$no_recursion" != yes; then
|
||||
|
||||
if test -n "${$1_SUBDIRS}"; then
|
||||
ac_sub_configure_args="[$]$1args"
|
||||
|
||||
# Always prepend --prefix to ensure using the same prefix
|
||||
# in subdir configurations.
|
||||
ac_sub_configure_args="'--prefix=$prefix' $ac_sub_configure_args"
|
||||
|
||||
# make sure that $1_subdir is not empty
|
||||
test -n "$$1_subdir" || $1_subdir="."
|
||||
|
||||
case "$$1_subdir" in
|
||||
"." ) ;;
|
||||
* )
|
||||
ac_sub_configure_args="$ac_sub_configure_args '--with-target-subdir=$$1_subdir' '--exec-prefix=${prefix}/$$1_subdir'"
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
for ac_dir in $$1_configdirs; do
|
||||
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
test -d $srcdir/$ac_dir || continue
|
||||
|
||||
AC_MSG_NOTICE([configuring in $$1_subdir/$ac_dir])
|
||||
AS_MKDIR_P(["$$1_subdir/$ac_dir"])
|
||||
_RTEMS_SRCPATHS(["$ac_dir"],["$$1_subdir"])
|
||||
|
||||
cd $$1_subdir/$ac_dir
|
||||
|
||||
# Check for guested configure; otherwise get Cygnus style configure.
|
||||
if test -f $ac_srcdir/configure.gnu; then
|
||||
ac_sub_configure="$SHELL '$ac_srcdir/configure.gnu'"
|
||||
elif test -f $ac_srcdir/configure; then
|
||||
ac_sub_configure="$SHELL '$ac_srcdir/configure'"
|
||||
elif test -f $ac_srcdir/configure.in; then
|
||||
ac_sub_configure=$ac_configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $ac_dir])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# Make the cache file name correct relative to the subdirectory.
|
||||
case $cache_file in
|
||||
[[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
|
||||
*) # Relative path.
|
||||
ac_sub_cache_file=$ac_top_builddir$cache_file ;;
|
||||
esac
|
||||
|
||||
ac_sub_configure_vars=
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars '--cache-file=$ac_sub_cache_file'"
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars '--srcdir=$ac_srcdir'"
|
||||
|
||||
test -n "[$]CC_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CC=[$]CC_FOR_$2'"
|
||||
test -n "[$]CXX_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CXX=[$]CXX_FOR_$2'"
|
||||
test -n "[$]CFLAGS_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CFLAGS=[$]CFLAGS_FOR_$2'"
|
||||
test -n "[$]CXXFLAGS_FOR_$2" && \
|
||||
ac_sub_configure_vars="$ac_sub_configure_vars 'CXXFLAGS=[$]CXXFLAGS_FOR_$2'"
|
||||
|
||||
# The eval makes quoting arguments work.
|
||||
AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args $ac_sub_configure_vars])
|
||||
eval $ac_sub_configure $ac_sub_configure_args $ac_sub_configure_vars ||
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_dir])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
done
|
||||
fi
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_CONFIGURE_ARGS_PRUNE],
|
||||
[
|
||||
$1_prune()
|
||||
{
|
||||
$1=
|
||||
for ac_arg
|
||||
do
|
||||
if test -n "$ac_prev"; then
|
||||
ac_prev=
|
||||
continue
|
||||
fi
|
||||
case $ac_arg in
|
||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||||
ac_prev=cache_file ;;
|
||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
|
||||
| --c=*)
|
||||
;;
|
||||
--config-cache | -C)
|
||||
;;
|
||||
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
|
||||
-host* | --host* );;
|
||||
-host | --host )
|
||||
ac_prev=host_alias;;
|
||||
-target* | --target* );;
|
||||
-target | --target )
|
||||
ac_prev=target_alias;;
|
||||
-build* | --build* );;
|
||||
-build | --build )
|
||||
ac_prev=build_alias;;
|
||||
|
||||
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
|
||||
ac_prev=prefix ;;
|
||||
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
|
||||
;;
|
||||
|
||||
*_alias=* );;
|
||||
|
||||
m4_if([$2],,,[$2])
|
||||
*) $1="$$1 '$ac_arg'" ;;
|
||||
esac
|
||||
done
|
||||
export $1
|
||||
}
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_BUILD_CONFIG_SUBDIRS(build_subdir)
|
||||
# subdirs to be built for the build environment
|
||||
AC_DEFUN([RTEMS_BUILD_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_BUILD_CONFIGDIRS_LIST],[ $1])
|
||||
dnl Always append to build_configdirs
|
||||
AC_SUBST(build_configdirs,"$build_configdirs $1")
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_BUILD_CONFIG_PREPARE],[
|
||||
## # Record the configure arguments in Makefile.
|
||||
m4_ifdef([_RTEMS_BUILD_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([build],[BUILD])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([buildargs])])
|
||||
eval buildargs_prune $ac_configure_args
|
||||
buildargs="'--host=${build_alias-$build}' '--build=${build_alias-$build}' ${buildargs}"
|
||||
buildargs="${buildargs} '--target=${target_alias-$target}'"
|
||||
],[])
|
||||
AC_SUBST(buildargs)
|
||||
AC_SUBST(build_subdir)
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_HOST_CONFIG_SUBDIRS(host_subdir)
|
||||
# subdirs to be build for the host environment
|
||||
AC_DEFUN([RTEMS_HOST_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_HOST_CONFIGDIRS_LIST],[ $1])dnl
|
||||
|
||||
_RTEMS_SUBST_IFNOT([host_configdirs],[$1])
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_HOST_CONFIG_PREPARE],[
|
||||
m4_ifdef([_RTEMS_HOST_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([host],[HOST])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([hostargs])])
|
||||
eval hostargs_prune $ac_configure_args
|
||||
hostargs="'--host=${host_alias-$host}' '--build=${build_alias-$build}' '--target=${target_alias-$target}' ${hostargs}"
|
||||
],[])
|
||||
AC_SUBST(hostargs)
|
||||
AC_SUBST(host_subdir)
|
||||
])
|
||||
|
||||
## PUBLIC: RTEMS_TARGET_CONFIG_SUBDIRS(target_subdir)
|
||||
# subdirs to be build for the target environment
|
||||
AC_DEFUN([RTEMS_TARGET_CONFIG_SUBDIRS],[
|
||||
m4_append([_RTEMS_TARGET_CONFIGDIRS_LIST],[ $1])
|
||||
|
||||
_RTEMS_SUBST_IFNOT([target_configdirs],[$1])
|
||||
|
||||
m4_divert_text([DEFAULTS],
|
||||
[ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"])
|
||||
m4_expand_once([_RTEMS_COMMANDS_POST_CONFIG_SUBDIRS])
|
||||
])
|
||||
|
||||
AC_DEFUN([_RTEMS_TARGET_CONFIG_PREPARE],[
|
||||
m4_ifdef([_RTEMS_TARGET_CONFIGDIRS_LIST],
|
||||
[
|
||||
m4_expand_once([_RTEMS_TOOLS([target],[TARGET])])
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_PRUNE([targetargs])])
|
||||
eval targetargs_prune $ac_configure_args
|
||||
targetargs="'--host=${target_alias-$target}' '--build=${build_alias-$build}' '--target=${target_alias-$target}' ${targetargs}"
|
||||
],[])
|
||||
AC_SUBST(targetargs)
|
||||
AC_SUBST(target_subdir)
|
||||
])
|
||||
614
aclocal.m4
vendored
Normal file
614
aclocal.m4
vendored
Normal file
@@ -0,0 +1,614 @@
|
||||
dnl aclocal.m4 generated automatically by aclocal 1.2
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl macro to detect mkdir
|
||||
AC_DEFUN(RTEMS_PATH_MKDIR,
|
||||
[AC_PATH_PROG(MKDIR,mkdir)
|
||||
])
|
||||
|
||||
dnl macro to check for mkdir -p
|
||||
AC_DEFUN(RTEMS_PROG_MKDIR_P,
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PATH_MKDIR])
|
||||
AC_MSG_CHECKING([for working $MKDIR -p])
|
||||
AC_CACHE_VAL(rtems_cv_prog_mkdir_p,
|
||||
[rm -rf conftestdata
|
||||
if $MKDIR -p conftestdata 2>/dev/null ;then
|
||||
rtems_cv_prog_MKDIR_P="yes"
|
||||
else
|
||||
rtems_cv_prog_MKDIR_P="no"
|
||||
fi])dnl
|
||||
rm -rf conftestdata
|
||||
AC_MSG_RESULT($rtems_cv_prog_MKDIR_P)
|
||||
])
|
||||
|
||||
dnl macro to check for mkdir -m 0755
|
||||
AC_DEFUN(RTEMS_PROG_MKDIR_M,
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PATH_MKDIR])
|
||||
AC_MSG_CHECKING([for working $MKDIR -m 0755])
|
||||
AC_CACHE_VAL(rtems_cv_prog_MKDIR_P,
|
||||
[rm -rf conftestdata
|
||||
if $MKDIR -m 0775 conftestdata 2>/dev/null; then
|
||||
rtems_cv_prog_MKDIR_M="yes"
|
||||
else
|
||||
rtems_cv_prog_MKDIR_M="no"
|
||||
fi])dnl
|
||||
rm -rf conftestdata
|
||||
AC_MSG_RESULT($rtems_cv_prog_MKDIR_M)
|
||||
])
|
||||
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl canonicalize target name
|
||||
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_MSG_CHECKING(rtems target cpu)
|
||||
changequote(<<, >>)dnl
|
||||
target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
|
||||
changequote([, ])dnl
|
||||
AC_MSG_RESULT($target_cpu)
|
||||
])
|
||||
|
||||
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
|
||||
|
||||
if [[ "${program_prefix}" = "NONE" ]] ; then
|
||||
if [[ "${target}" = "${host}" ]] ; then
|
||||
program_prefix=
|
||||
else
|
||||
program_prefix=${target}-
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
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_REQUIRE([RTEMS_TOOL_PREFIX])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
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -specs
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
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*
|
||||
])])
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -pipe
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
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
|
||||
case "$host_os" in
|
||||
cygwin32*)
|
||||
;;
|
||||
*)
|
||||
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*
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
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_REQUIRE([RTEMS_TOOL_PREFIX])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
|
||||
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,
|
||||
[ case $host_os in
|
||||
*cygwin32*)
|
||||
dnl FIXME: Hack for cygwin/egcs reporting mixed '\\' and '/'
|
||||
dnl Should be removed once cygwin/egcs reports '/' only
|
||||
$1=`$CC_FOR_TARGET --print-prog-name=$2 | sed -e 's%\\\\%/%g' `
|
||||
;;
|
||||
*)
|
||||
$1=`$CC_FOR_TARGET --print-prog-name=$2`
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
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 ether]
|
||||
[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]
|
||||
[Nether 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)
|
||||
])
|
||||
|
||||
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*
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
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
|
||||
)
|
||||
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Detect the Cygwin32 environment (unix under Win32)
|
||||
dnl
|
||||
dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk)
|
||||
dnl Hacked from automake-1.3
|
||||
|
||||
# Check to see if we're running under Cygwin32, without using
|
||||
# AC_CANONICAL_*. If so, set output variable CYGWIN32 to "yes".
|
||||
# Otherwise set it to "no".
|
||||
|
||||
dnl RTEMS_CYGWIN32()
|
||||
AC_DEFUN(RTEMS_CYGWIN32,
|
||||
[AC_CACHE_CHECK(for Cygwin32 environment, rtems_cv_cygwin32,
|
||||
[AC_TRY_COMPILE(,[return __CYGWIN32__;],
|
||||
rtems_cv_cygwin32=yes, rtems_cv_cygwin32=no)
|
||||
rm -f conftest*])
|
||||
CYGWIN32=
|
||||
test "$rtems_cv_cygwin32" = yes && CYGWIN32=yes])
|
||||
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set the EXE extension
|
||||
dnl
|
||||
dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk)
|
||||
dnl Hacked from automake-1.3
|
||||
|
||||
# Check to see if we're running under Win32, without using
|
||||
# AC_CANONICAL_*. If so, set output variable EXEEXT to ".exe".
|
||||
# Otherwise set it to "".
|
||||
|
||||
dnl RTEMS_EXEEXT()
|
||||
dnl This knows we add .exe if we're building in the Cygwin32
|
||||
dnl environment. But if we're not, then it compiles a test program
|
||||
dnl to see if there is a suffix for executables.
|
||||
AC_DEFUN(RTEMS_EXEEXT,
|
||||
[AC_REQUIRE([RTEMS_CYGWIN32])
|
||||
AC_MSG_CHECKING([for executable suffix])
|
||||
AC_CACHE_VAL(rtems_cv_exeext,
|
||||
[if test "$CYGWIN32" = yes; then
|
||||
rtems_cv_exeext=.exe
|
||||
else
|
||||
cat > rtems_c_test.c << 'EOF'
|
||||
int main() {
|
||||
/* Nothing needed here */
|
||||
}
|
||||
EOF
|
||||
${CC-cc} -o rtems_c_test $CFLAGS $CPPFLAGS $LDFLAGS rtems_c_test.c $LIBS 1>&5
|
||||
rtems_cv_exeext=`echo rtems_c_test.* | grep -v rtems_c_test.c | sed -e s/rtems_c_test//`
|
||||
rm -f rtems_c_test*])
|
||||
test x"${rtems_cv_exeext}" = x && rtems_cv_exeext=no
|
||||
fi
|
||||
EXEEXT=""
|
||||
test x"${rtems_cv_exeext}" != xno && EXEEXT=${rtems_cv_exeext}
|
||||
AC_MSG_RESULT(${rtems_cv_exeext})
|
||||
AC_SUBST(EXEEXT)])
|
||||
|
||||
|
||||
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_SYSV_SEM,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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>
|
||||
int main () {
|
||||
#if !defined(sun)
|
||||
union semun arg ;
|
||||
#else
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
ushort *array;
|
||||
} arg;
|
||||
#endif
|
||||
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([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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", :)
|
||||
])
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_CHECK_MAKEFILE(path)
|
||||
dnl Search for Makefile.in's within the directory starting
|
||||
dnl at path and append an entry for Makefile to global variable
|
||||
dnl "makefiles" (from configure.in) for each Makefile.in found
|
||||
dnl
|
||||
AC_DEFUN(RTEMS_CHECK_MAKEFILE,
|
||||
[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_CHECK_FILES_IN(path,file,var)
|
||||
dnl path .. path relative to srcdir, where to start searching for files
|
||||
dnl file .. name of the files to search for
|
||||
dnl var .. shell variable to append files found
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_FILES_IN,
|
||||
[
|
||||
AC_MSG_CHECKING(for $2.in in $1)
|
||||
if test -d $srcdir/$1; then
|
||||
rtems_av_save_dir=`pwd`;
|
||||
cd $srcdir;
|
||||
rtems_av_tmp=`find $1 -name "$2.in" -print | sed "s/$2\.in/%/" | sort | sed "s/%/$2/"`
|
||||
$3="$$3 $rtems_av_tmp";
|
||||
cd $rtems_av_save_dir;
|
||||
AC_MSG_RESULT(done)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
25
aclocal/ar-s.m4
Normal file
25
aclocal/ar-s.m4
Normal file
@@ -0,0 +1,25 @@
|
||||
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,41 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||
dnl Internal subroutine to RTEMS_BSP_ALIAS
|
||||
AC_DEFUN([_RTEMS_BSP_ALIAS],
|
||||
[# account for "aliased" bsps which share source code
|
||||
case $1 in
|
||||
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
|
||||
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
|
||||
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2100) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mtx603e) $2=motorola_powerpc ;; # Motorola PPC board variant
|
||||
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
|
||||
gen68360_040) $2=gen68360 ;; # m68k - 68360 in companion mode
|
||||
p4600) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4600
|
||||
p4650) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4650
|
||||
mbx8*) $2=mbx8xx ;; # MBX821/MBX860 board
|
||||
pc386dx) $2=pc386 ;; # i386 - PC w/o FPU
|
||||
pc486) $2=pc386 ;; # i386 - PC with i486DX
|
||||
pc586) $2=pc386 ;; # i386 - PC with Pentium
|
||||
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
|
||||
pck6) $2=pc386 ;; # i386 - PC with K6
|
||||
bare*) $2=bare ;; # EXP: bare-aliases
|
||||
sis) $2=erc32 ;; # ERC32 SIS simulator
|
||||
leon2) $2=leon2 ;; # leon with fpu
|
||||
leon3) $2=leon3 ;; # another leon variant
|
||||
simsh7032) $2=shsim ;; # SH7032 simulator
|
||||
simsh7045) $2=shsim ;; # SH7045 simulator
|
||||
*) $2=$1;;
|
||||
esac]
|
||||
)
|
||||
|
||||
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
|
||||
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
|
||||
AC_DEFUN([RTEMS_BSP_ALIAS],
|
||||
[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]),
|
||||
m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))]
|
||||
)
|
||||
@@ -1,18 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl RTEMS_BSP_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])
|
||||
dnl
|
||||
dnl Accept --enable-FEATURE=<RTEMS_BSP>:<bsp-value> and
|
||||
dnl --enable-FEATURE=<value> in BSP-configure scripts.
|
||||
dnl
|
||||
dnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the
|
||||
dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP),
|
||||
dnl and the raw value passed to --enable-FEATURE otherwise.
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_BSP_ARG_ENABLE],
|
||||
[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE([$1],[$2],
|
||||
[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"`
|
||||
eval "[enable_]patsubst([$1], -, _)='$enableval'"
|
||||
$3],[$4])
|
||||
])
|
||||
@@ -1,35 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl RTEMS_BSP_CONFIGURE
|
||||
dnl Common macro to be included by all bsp-configure.acs
|
||||
AC_DEFUN([RTEMS_BSP_CONFIGURE],
|
||||
[
|
||||
AC_PREREQ([2.52])
|
||||
AM_MAINTAINER_MODE
|
||||
RTEMS_ENV_RTEMSBSP
|
||||
|
||||
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
|
||||
|
||||
RTEMS_CANONICAL_HOST
|
||||
AM_CONFIG_HEADER([include/bspopts.tmp:include/bspopts.h.in],[
|
||||
echo "/* BSP dependent options file */" >$tmp/config.h
|
||||
echo "/* automatically generated -- DO NOT EDIT!! */" >>$tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
echo "#ifndef __BSP_OPTIONS_h" >>$tmp/config.h
|
||||
echo "#define __BSP_OPTIONS_h" >>$tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
sed -e '/.*PACKAGE.*/d' include/bspopts.tmp >> $tmp/config.h
|
||||
echo >>$tmp/config.h
|
||||
echo "#endif" >>$tmp/config.h
|
||||
AS_IF([cmp -s include/bspopts.h $tmp/config.h 2>/dev/null],[
|
||||
AC_MSG_NOTICE([include/bspopts.h is unchanged])
|
||||
rm -f $tmp/config.h],[
|
||||
AC_MSG_NOTICE([creating include/bspopts.h])
|
||||
rm -f include/bspopts.h
|
||||
mv $tmp/config.h include/bspopts.h
|
||||
])
|
||||
])
|
||||
RTEMS_PROJECT_ROOT
|
||||
|
||||
RTEMS_CHECK_MULTIPROCESSING
|
||||
])
|
||||
@@ -1,66 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_BSPOPTS_* - some autoconf voodoo to handle default values and
|
||||
dnl help-strings for per-BSP-environment variables.
|
||||
|
||||
dnl To be used in bsp-configure scripts
|
||||
|
||||
|
||||
dnl Example:
|
||||
dnl
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[bar],[0])
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[baz*],[hello])
|
||||
dnl RTEMS_BSPOPTS_SET([foo],[*],[])
|
||||
dnl RTEMS_BSPOPTS_HELP([foo],[env. variable foo])
|
||||
dnl -> Add "0" as default value of variable "foo" for BSP "bar"
|
||||
dnl -> Add "hello" as default value of variable "foo" for all BSPs starting
|
||||
dnl with "baz" in their name.
|
||||
dnl -> Undefine foo as default clause for all BSP's.
|
||||
dnl
|
||||
dnl All this basically expands to a /bin/shell "case"-statement with
|
||||
dnl accompanying autoconf magic to propagate VAR to bspopts.h.
|
||||
|
||||
|
||||
dnl RTEMS_BSPOPTS_HELP(VAR,HELP-STRING)
|
||||
dnl Set up printing the HELP-STRING for bspopts.h's variable VAR and add
|
||||
dnl appropriate /bin/sh-magic to "configure" to have VAR set up.
|
||||
|
||||
AC_DEFUN([RTEMS_BSPOPTS_HELP],[
|
||||
RTEMS_ARG_VAR([$1],[$2])
|
||||
m4_ifdef([_$1],[
|
||||
case ${RTEMS_BSP} in
|
||||
_$1[]dnl
|
||||
esac],[])
|
||||
if test -n "[$]{$1}"; then[]dnl
|
||||
AC_DEFINE_UNQUOTED([$1],
|
||||
[[$]$1],
|
||||
[$2])dnl
|
||||
fi
|
||||
])
|
||||
|
||||
dnl RTEMS_BSPOPTS_SET(VAR,BSP,DEFAULT)
|
||||
dnl Set up a value DEFAULT to be used as default value for variable VAR for
|
||||
dnl BSP in RTEMS_BSPOPTS_HELP.
|
||||
|
||||
dnl MUST be use in front of exactly _one_ corresponding RTEMS_BSPOPTS_HELP
|
||||
|
||||
AC_DEFUN([RTEMS_BSPOPTS_SET],[dnl
|
||||
m4_append([_$1],
|
||||
[$2 )
|
||||
$1=[$]{$1-$3} ;;
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
|
||||
dnl An internal macros to have RTEMS_BSPOPTS_HELP's help string pretty
|
||||
dnl printed with configure --help.
|
||||
dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.
|
||||
|
||||
AC_DEFUN([RTEMS_ARG_VAR],
|
||||
[
|
||||
m4_expand_once([m4_divert_once([HELP_VAR],
|
||||
[AC_HELP_STRING([$1], [$2], [ ])])],
|
||||
[$0($1)])dnl
|
||||
])
|
||||
@@ -1,25 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICAL_HOST],
|
||||
[dnl
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
RTEMS_HOST=$host_os
|
||||
case "${target}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-*linux*) # unix "simulator" port
|
||||
RTEMS_HOST=Linux
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HOST=FreeBSD
|
||||
;;
|
||||
i[[34567]]86-pc-cygwin*) # Cygwin is just enough unix like :)
|
||||
RTEMS_HOST=Cygwin
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HOST=Solaris
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HOST)
|
||||
])dnl
|
||||
@@ -2,40 +2,16 @@ dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl canonicalize target cpu
|
||||
dnl canonicalize target name
|
||||
dnl NOTE: Most rtems targets do not fullfil autoconf's
|
||||
dnl target naming conventions "processor-vendor-os"
|
||||
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
|
||||
dnl and we have to fix it for rtems ourselves
|
||||
|
||||
AC_DEFUN([RTEMS_CANONICAL_TARGET_CPU],
|
||||
[
|
||||
AC_CANONICAL_TARGET
|
||||
AC_MSG_CHECKING(rtems target cpu)
|
||||
case "${target}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-*linux*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
i[[34567]]86-pc-cygwin*) # Cygwin is just enough unix like :)
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_CPU=no_cpu
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_CPU=unix
|
||||
;;
|
||||
tic4x-*rtems*) # gcc changed the name
|
||||
RTEMS_CPU=c4x
|
||||
;;
|
||||
*)
|
||||
RTEMS_CPU=`echo $target | sed 's%^\([[^-]]*\)-\(.*\)$%\1%'`
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_CPU)
|
||||
AC_MSG_RESULT($RTEMS_CPU)
|
||||
AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
|
||||
[AC_MSG_CHECKING(rtems target cpu)
|
||||
changequote(<<, >>)dnl
|
||||
target_cpu=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
|
||||
changequote([, ])dnl
|
||||
AC_MSG_RESULT($target_cpu)
|
||||
])
|
||||
|
||||
@@ -3,21 +3,94 @@ 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_CANONICALIZE_TOOLS],
|
||||
AC_DEFUN(RTEMS_GCC_PRINT,
|
||||
[ case $host_os in
|
||||
*cygwin32*)
|
||||
dnl FIXME: Hack for cygwin/egcs reporting mixed '\\' and '/'
|
||||
dnl Should be removed once cygwin/egcs reports '/' only
|
||||
$1=`$CC_FOR_TARGET --print-prog-name=$2 | sed -e 's%\\\\%/%g' `
|
||||
;;
|
||||
*)
|
||||
$1=`$CC_FOR_TARGET --print-prog-name=$2`
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
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 ether]
|
||||
[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_CHECK_TOOL(AR,ar,no)
|
||||
RTEMS_CHECK_TOOL(AS,as,no)
|
||||
RTEMS_CHECK_TOOL(LD,ld,no)
|
||||
RTEMS_CHECK_TOOL(NM,nm,no)
|
||||
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_CHECK_TOOL(RANLIB,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]
|
||||
[Nether ranlib nor ar -s seem to be available] )
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl NOTE: These may not be available if not using gnutools
|
||||
RTEMS_CHECK_TOOL(OBJCOPY,objcopy,no)
|
||||
RTEMS_CHECK_TOOL(SIZE,size,no)
|
||||
RTEMS_CHECK_TOOL(STRIP,strip,:)
|
||||
RTEMS_PATH_TOOL(OBJCOPY_FOR_TARGET,objcopy,no)
|
||||
RTEMS_PATH_TOOL(SIZE_FOR_TARGET,size,no)
|
||||
])
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
|
||||
AC_DEFUN([RTEMS_CHECK_BSP_CACHE],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl set RTEMS_BSP
|
||||
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_CPU_MODEL], [rtems_cv_RTEMS_CPU_MODEL],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_CPU_MODEL=$rtems_cv_RTEMS_CPU_MODEL
|
||||
AC_SUBST(RTEMS_CPU_MODEL)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_FAMILY],[rtems_cv_RTEMS_BSP_FAMILY],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_FAMILY=$rtems_cv_RTEMS_BSP_FAMILY
|
||||
AC_SUBST(RTEMS_BSP_FAMILY)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS],[rtems_cv_RTEMS_BSP_CFLAGS],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS=$rtems_cv_RTEMS_BSP_CFLAGS
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_OPTIMIZE_V],[rtems_cv_RTEMS_BSP_CFLAGS_OPTIMIZE_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_OPTIMIZE_V=$rtems_cv_RTEMS_BSP_CFLAGS_OPTIMIZE_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_OPTIMIZE_V)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_DEBUG_V],[rtems_cv_RTEMS_BSP_CFLAGS_DEBUG_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_DEBUG_V=$rtems_cv_RTEMS_BSP_CFLAGS_DEBUG_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_DEBUG_V)
|
||||
|
||||
AC_CACHE_CHECK([for RTEMS_BSP_CFLAGS_PROFILE_V],[rtems_cv_RTEMS_BSP_CFLAGS_PROFILE_V],
|
||||
[. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache])
|
||||
RTEMS_BSP_CFLAGS_PROFILE_V=$rtems_cv_RTEMS_BSP_CFLAGS_PROFILE_V
|
||||
AC_SUBST(RTEMS_BSP_CFLAGS_PROFILE_V)
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Report all available bsps for a target,
|
||||
dnl check if a bsp-subdirectory is present for all bsps found
|
||||
dnl
|
||||
dnl RTEMS_CHECK_BSPS(bsp_list)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPS],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
|
||||
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
|
||||
AC_MSG_CHECKING([for bsps])
|
||||
files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
|
||||
for file in $files; do
|
||||
if test -r $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU/$file/bsp_specs; then
|
||||
case $file in
|
||||
# Now account for BSPs with build variants
|
||||
c4xsim) $1="[$]$1 c4xsim c3xsim";;
|
||||
gen68360) $1="[$]$1 gen68360 gen68360_040";;
|
||||
p4000) $1="[$]$1 p4600 p4650";;
|
||||
mvme162) $1="[$]$1 mvme162 mvme162lx";;
|
||||
mbx8xx) $1="[$]$1 mbx821_001 mbx860_002 mbx860_005b";;
|
||||
motorola_powerpc) $1="[$]$1 mvme2307 mcp750 mtx603e";;
|
||||
pc386) $1="[$]$1 pc386 pc386dx pc486 pc586 pc686 pck6";;
|
||||
erc32) $1="[$]$1 erc32 sis";;
|
||||
leon) $1="[$]$1 leon2 leon3";;
|
||||
sim68000) $1="[$]$1 sim68000 simcpu32";;
|
||||
shsim) $1="[$]$1 simsh7032 simsh7045";;
|
||||
*) $1="[$]$1 $file";;
|
||||
esac;
|
||||
fi
|
||||
done
|
||||
AC_MSG_RESULT([[$]$1 .. done])
|
||||
])dnl
|
||||
@@ -1,18 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl check if RTEMS support a cpu
|
||||
AC_DEFUN([RTEMS_CHECK_CPU],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
|
||||
|
||||
# Is this a supported CPU?
|
||||
AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
|
||||
# FIXME: Temporary hack
|
||||
if test -d "$srcdir/$RTEMS_TOPdir/cpukit/score/cpu/$RTEMS_CPU"; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_ERROR(no)
|
||||
fi
|
||||
])dnl
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_CUSTOM_BSP],[
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
|
||||
AS_IF([test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_ERROR([no])])
|
||||
])
|
||||
@@ -1,26 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_CXX],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
|
||||
AC_CACHE_CHECK([whether to build rtems++],
|
||||
rtems_cv_HAS_CPLUSPLUS,
|
||||
[ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
|
||||
if test -n "$CXX"; then
|
||||
rtems_cv_HAS_CPLUSPLUS="yes"
|
||||
else
|
||||
rtems_cv_HAS_CPLUSPLUS="no"
|
||||
fi
|
||||
else
|
||||
rtems_cv_HAS_CPLUSPLUS="no"
|
||||
fi])
|
||||
HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
|
||||
AC_SUBST(HAS_CPLUSPLUS)dnl
|
||||
|
||||
if test "$HAS_CPLUSPLUS" = "yes"; then
|
||||
CPLUS_LD_LIBS='$(PROJECT_RELEASE)/lib/librtems++$(LIB_VARIANT).a'
|
||||
fi
|
||||
AC_SUBST(CPLUS_LD_LIBS)
|
||||
])
|
||||
24
aclocal/check-files-in.m4
Normal file
24
aclocal/check-files-in.m4
Normal file
@@ -0,0 +1,24 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_CHECK_FILES_IN(path,file,var)
|
||||
dnl path .. path relative to srcdir, where to start searching for files
|
||||
dnl file .. name of the files to search for
|
||||
dnl var .. shell variable to append files found
|
||||
|
||||
AC_DEFUN(RTEMS_CHECK_FILES_IN,
|
||||
[
|
||||
AC_MSG_CHECKING(for $2.in in $1)
|
||||
if test -d $srcdir/$1; then
|
||||
rtems_av_save_dir=`pwd`;
|
||||
cd $srcdir;
|
||||
rtems_av_tmp=`find $1 -name "$2.in" -print | sed "s/$2\.in/%/" | sort | sed "s/%/$2/"`
|
||||
$3="$$3 $rtems_av_tmp";
|
||||
cd $rtems_av_save_dir;
|
||||
AC_MSG_RESULT(done)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_ITRON_API],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether CPU supports libitron],
|
||||
rtems_cv_HAS_ITRON_API,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_ITRON_API="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_ITRON_API}" = "yes"; then
|
||||
rtems_cv_HAS_ITRON_API="yes";
|
||||
else
|
||||
rtems_cv_HAS_ITRON_API="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_ITRON_API" = "yes"; then
|
||||
HAS_ITRON_API="yes";
|
||||
else
|
||||
HAS_ITRON_API="no";
|
||||
fi
|
||||
AC_SUBST(HAS_ITRON_API)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_DEFINE_ITRON_API],
|
||||
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
|
||||
if test x"${HAS_ITRON_API}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(RTEMS_ITRON_API,1,[if itron api is supported])
|
||||
fi
|
||||
])
|
||||
12
aclocal/check-makefile.m4
Normal file
12
aclocal/check-makefile.m4
Normal file
@@ -0,0 +1,12 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl RTEMS_CHECK_MAKEFILE(path)
|
||||
dnl Search for Makefile.in's within the directory starting
|
||||
dnl at path and append an entry for Makefile to global variable
|
||||
dnl "makefiles" (from configure.in) for each Makefile.in found
|
||||
dnl
|
||||
AC_DEFUN(RTEMS_CHECK_MAKEFILE,
|
||||
[RTEMS_CHECK_FILES_IN($1,Makefile,makefiles)
|
||||
])
|
||||
@@ -1,42 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_MULTIPROCESSING],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
|
||||
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
|
||||
AC_REQUIRE([RTEMS_BSP_ALIAS])dnl
|
||||
|
||||
AC_CACHE_CHECK([if wanting multiprocessing],
|
||||
[rtems_cv_want_multiprocessing],
|
||||
[
|
||||
AS_IF([test x"$multilib" = x"no"],
|
||||
[# no cpukit
|
||||
rtems_cv_want_multiprocessing="$enable_multiprocessing"
|
||||
],[
|
||||
#HACK: Should check for RTEMS_MULTIPROCESSING in cpuopts.h, instead
|
||||
rtems_cv_want_multiprocessing="$enable_multiprocessing"
|
||||
])
|
||||
])
|
||||
|
||||
AS_IF([test "$rtems_cv_want_multiprocessing" = "yes"],
|
||||
[
|
||||
AC_CACHE_CHECK([whether BSP supports multiprocessing],
|
||||
[rtems_cv_HAS_MP],[
|
||||
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
|
||||
rtems_cv_HAS_MP="yes" ;
|
||||
else
|
||||
rtems_cv_HAS_MP="no";
|
||||
fi
|
||||
])
|
||||
if test $rtems_cv_HAS_MP = "no"; then
|
||||
AC_MSG_ERROR([multiprocessing requested but not supported])
|
||||
fi
|
||||
],[rtems_cv_HAS_MP="no";])
|
||||
|
||||
AC_SUBST(HAS_MP,[$rtems_cv_HAS_MP])
|
||||
])
|
||||
@@ -1,29 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_NETWORKING],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether BSP supports networking],
|
||||
rtems_cv_HAS_NETWORKING,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_NETWORKING="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_NETWORKING}" = "yes"; then
|
||||
rtems_cv_HAS_NETWORKING="yes";
|
||||
else
|
||||
rtems_cv_HAS_NETWORKING="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_NETWORKING" = "yes"; then
|
||||
HAS_NETWORKING="yes";
|
||||
else
|
||||
HAS_NETWORKING="no";
|
||||
fi
|
||||
AC_SUBST(HAS_NETWORKING)dnl
|
||||
])
|
||||
@@ -1,30 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_NEWLIB],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
|
||||
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_CACHE_CHECK([for RTEMS newlib],
|
||||
rtems_cv_use_newlib,
|
||||
[
|
||||
dnl some versions of newlib provide not_required_by_rtems
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[extern void not_required_by_rtems() ;]],
|
||||
[[not_required_by_rtems()]])],
|
||||
[rtems_cv_use_newlib="yes"],[])
|
||||
|
||||
dnl some versions of newlib provide rtems_provides_crt0()
|
||||
AS_IF([test -z "$rtems_cv_use_newlib"],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[extern void rtems_provides_crt0() ;]],
|
||||
[[rtems_provides_crt0()]])],
|
||||
[rtems_cv_use_newlib="yes"],[rtems_cv_use_newlib="no"])
|
||||
])
|
||||
])
|
||||
RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
|
||||
AC_SUBST(RTEMS_USE_NEWLIB)
|
||||
|
||||
AS_IF([test x"${RTEMS_USE_NEWLIB}" = x"yes"],
|
||||
[ AC_DEFINE_UNQUOTED(RTEMS_NEWLIB,1,[if using newlib])]
|
||||
)
|
||||
])
|
||||
@@ -1,36 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_POSIX_API],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
|
||||
|
||||
AC_CACHE_CHECK([whether CPU supports libposix],
|
||||
rtems_cv_HAS_POSIX_API,
|
||||
[dnl
|
||||
case "$RTEMS_CPU" in
|
||||
unix*)
|
||||
rtems_cv_HAS_POSIX_API="no"
|
||||
;;
|
||||
*)
|
||||
if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
|
||||
rtems_cv_HAS_POSIX_API="yes";
|
||||
else
|
||||
rtems_cv_HAS_POSIX_API="disabled";
|
||||
fi
|
||||
;;
|
||||
esac])
|
||||
if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
|
||||
HAS_POSIX_API="yes";
|
||||
else
|
||||
HAS_POSIX_API="no";
|
||||
fi
|
||||
AC_SUBST(HAS_POSIX_API)dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_DEFINE_POSIX_API],
|
||||
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
|
||||
AS_IF(
|
||||
[test x"${HAS_POSIX_API}" = x"yes"],
|
||||
[AC_DEFINE_UNQUOTED(RTEMS_POSIX_API,1,[if posix api is supported])])
|
||||
])
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl $Id$
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_CHECK_RDBG],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
|
||||
AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
|
||||
AC_CACHE_CHECK([whether BSP supports librdbg],
|
||||
rtems_cv_HAS_RDBG,
|
||||
[
|
||||
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/${$1}";
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes" ;
|
||||
elif test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/any";
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes" ;
|
||||
elif test "${RTEMS_CPU}" = "powerpc";
|
||||
then
|
||||
A=`grep -l RTEMS_PPC_EXCEPTION_PROCESSING_MODEL $srcdir/${RTEMS_TOPdir}/make/custom/* 2>/dev/null`;
|
||||
C=""
|
||||
for i in ${A} ;
|
||||
do
|
||||
B=`basename ${i} .cfg`;
|
||||
C="${C} ${B}";
|
||||
done
|
||||
rtems_cv_HAS_RDBG="no";
|
||||
for j in ${C} ;
|
||||
do
|
||||
if test "${$1}" = "${j}" ;
|
||||
then
|
||||
rtems_cv_HAS_RDBG="yes";
|
||||
fi
|
||||
done
|
||||
else
|
||||
rtems_cv_HAS_RDBG="no";
|
||||
fi
|
||||
])
|
||||
HAS_RDBG="$rtems_cv_HAS_RDBG"
|
||||
AC_SUBST(HAS_RDBG)
|
||||
])
|
||||
@@ -1,11 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
## Check for a cross tool, similar to AC_CHECK_TOOL, but do not fall back to
|
||||
## the un-prefixed version of PROG-TO-CHECK-FOR.
|
||||
dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])
|
||||
AC_DEFUN([RTEMS_CHECK_TOOL],
|
||||
[
|
||||
AS_IF([test "x$build_alias" != "x$host_alias"],
|
||||
[rtems_tool_prefix=${ac_tool_prefix}])
|
||||
AC_CHECK_PROG($1, ${rtems_tool_prefix}$2, ${rtems_tool_prefix}$2, $3, $4)
|
||||
])
|
||||
@@ -1,34 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl
|
||||
dnl Misc utility macros for subdir handling to work around missing abilities
|
||||
dnl in autoconf, automake and structural issues with RTEMS
|
||||
dnl
|
||||
dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus'
|
||||
dnl configure.in.
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl _AC_DOTS(PATH)
|
||||
dnl
|
||||
AC_DEFUN([_AC_DOTS],[
|
||||
# A "../" for each directory in $1.
|
||||
ac_dots=`echo $1 | \
|
||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_ADJUST_SRCDIR(REVAR,CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_ADJUST_SRCDIR],[
|
||||
_AC_DOTS(ifelse([$3], ,[$2],[$3/$2]))
|
||||
|
||||
case "$srcdir" in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
$1=$srcdir ;;
|
||||
[[\\/]]* | ?:[[\\/]]*) # Absolute path.
|
||||
$1=$srcdir/$2 ;;
|
||||
*) # Relative path.
|
||||
$1=$ac_dots$srcdir/$2 ;;
|
||||
esac
|
||||
])
|
||||
21
aclocal/cygwin.m4
Normal file
21
aclocal/cygwin.m4
Normal file
@@ -0,0 +1,21 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Detect the Cygwin32 environment (unix under Win32)
|
||||
dnl
|
||||
dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk)
|
||||
dnl Hacked from automake-1.3
|
||||
|
||||
# Check to see if we're running under Cygwin32, without using
|
||||
# AC_CANONICAL_*. If so, set output variable CYGWIN32 to "yes".
|
||||
# Otherwise set it to "no".
|
||||
|
||||
dnl RTEMS_CYGWIN32()
|
||||
AC_DEFUN(RTEMS_CYGWIN32,
|
||||
[AC_CACHE_CHECK(for Cygwin32 environment, rtems_cv_cygwin32,
|
||||
[AC_TRY_COMPILE(,[return __CYGWIN32__;],
|
||||
rtems_cv_cygwin32=yes, rtems_cv_cygwin32=no)
|
||||
rm -f conftest*])
|
||||
CYGWIN32=
|
||||
test "$rtems_cv_cygwin32" = yes && CYGWIN32=yes])
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_BARE],
|
||||
[
|
||||
AC_ARG_ENABLE(bare-cpu-cflags,
|
||||
[AC_HELP_STRING([--enable-bare-cpu-cflags],
|
||||
[specify a particular cpu cflag (bare bsp specific)])],
|
||||
[case "${enableval}" in
|
||||
no) BARE_CPU_CFLAGS="" ;;
|
||||
*) BARE_CPU_CFLAGS="${enableval}" ;;
|
||||
esac],
|
||||
[BARE_CPU_CFLAGS=""])
|
||||
|
||||
AC_ARG_ENABLE(bare-cpu-model,
|
||||
[AC_HELP_STRING([--enable-bare-cpu-model],
|
||||
[specify a particular cpu model (bare bsp specific)])],
|
||||
[case "${enableval}" in
|
||||
no) BARE_CPU_MODEL="" ;;
|
||||
*) BARE_CPU_MODEL="${enableval}" ;;
|
||||
esac],
|
||||
[BARE_CPU_MODEL=""])
|
||||
])
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_CXX],
|
||||
[
|
||||
AC_ARG_ENABLE(cxx,
|
||||
[AC_HELP_STRING([--enable-cxx],
|
||||
[enable C++ support and build the rtems++ library])],
|
||||
[case "${enable_cxx}" in
|
||||
yes) RTEMS_HAS_CPLUSPLUS=yes ;;
|
||||
no) RTEMS_HAS_CPLUSPLUS=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;;
|
||||
esac], [RTEMS_HAS_CPLUSPLUS=no])
|
||||
])
|
||||
@@ -1,17 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_INLINES],
|
||||
[AC_ARG_ENABLE(rtems-inlines,
|
||||
[AC_HELP_STRING([--enable-rtems-inlines],
|
||||
[enable RTEMS inline functions (default:enabled, disable to use macros)])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_USE_MACROS=no ;;
|
||||
no) RTEMS_USE_MACROS=yes ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for disable-rtems-inlines option) ;;
|
||||
esac],[RTEMS_USE_MACROS=no])
|
||||
AC_SUBST(RTEMS_USE_MACROS)dnl
|
||||
|
||||
AS_IF([test x"${RTEMS_USE_MACROS}" = x"yes"],
|
||||
[AC_DEFINE_UNQUOTED(USE_MACROS,1,[if using macros])],
|
||||
[AC_DEFINE_UNQUOTED(USE_INLINES,1,[if using inlines])])
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_ITRON],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(itron,
|
||||
[AC_HELP_STRING([--enable-itron],[enable itron interface])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_ITRON_API=yes ;;
|
||||
no) RTEMS_HAS_ITRON_API=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-itron option) ;;
|
||||
esac],[RTEMS_HAS_ITRON_API=yes])
|
||||
|
||||
case "${host}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-pc-linux*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HAS_ITRON_API=no
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HAS_ITRON_API)
|
||||
])
|
||||
@@ -1,13 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],
|
||||
[
|
||||
AC_ARG_ENABLE(multiprocessing,
|
||||
[AC_HELP_STRING([--enable-multiprocessing],
|
||||
[enable multiprocessing interface])],
|
||||
[case "${enable_multiprocessing}" in
|
||||
yes) ;;
|
||||
no) ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
|
||||
esac],[enable_multiprocessing=no])
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_NETWORKING],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
|
||||
|
||||
AC_ARG_ENABLE(networking,
|
||||
[AC_HELP_STRING([--enable-networking],[enable TCP/IP stack])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_NETWORKING=yes ;;
|
||||
no) RTEMS_HAS_NETWORKING=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
|
||||
esac],[RTEMS_HAS_NETWORKING=yes])
|
||||
AC_SUBST(RTEMS_HAS_NETWORKING)dnl
|
||||
])
|
||||
@@ -1,33 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_POSIX],
|
||||
[
|
||||
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
|
||||
|
||||
AC_ARG_ENABLE(posix,
|
||||
[AC_HELP_STRING([--enable-posix],[enable posix interface])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_POSIX_API=yes ;;
|
||||
no) RTEMS_HAS_POSIX_API=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
|
||||
esac],[RTEMS_HAS_POSIX_API=yes])
|
||||
|
||||
case "${host}" in
|
||||
# hpux unix port should go here
|
||||
i[[34567]]86-pc-linux*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
i[[34567]]86-*freebsd*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
no_cpu-*rtems*)
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
sparc-sun-solaris*) # unix "simulator" port
|
||||
RTEMS_HAS_POSIX_API=no
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
AC_SUBST(RTEMS_HAS_POSIX_API)
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RDBG],
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
|
||||
|
||||
AC_ARG_ENABLE(rdbg,
|
||||
[AC_HELP_STRING([--enable-rdbg],[enable remote debugger])],
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_HAS_RDBG=yes ;;
|
||||
no) RTEMS_HAS_RDBG=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for enable-rdbg option) ;;
|
||||
esac],[RTEMS_HAS_RDBG=no])
|
||||
AC_SUBST(RTEMS_HAS_RDBG)dnl
|
||||
])
|
||||
@@ -1,16 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Override the set of BSPs to be built.
|
||||
dnl used by the toplevel configure script
|
||||
dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
|
||||
AC_ARG_ENABLE(rtemsbsp,
|
||||
[AC_HELP_STRING([--enable-rtemsbsp="bsp1 bsp2 .."],
|
||||
[BSPs to include in build])],
|
||||
[case "${enableval}" in
|
||||
yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp="bsp1 bsp2"]);;
|
||||
*) $1=$enableval;;
|
||||
esac],[$1=""])
|
||||
])
|
||||
@@ -1,15 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_TESTS],
|
||||
[
|
||||
# If the tests are enabled, then find all the test suite Makefiles
|
||||
AC_MSG_CHECKING([if the test suites are enabled? ])
|
||||
AC_ARG_ENABLE(tests,
|
||||
[AC_HELP_STRING([--enable-tests],[enable tests (default:disabled)])],
|
||||
[case "${enableval}" in
|
||||
yes) tests_enabled=yes ;;
|
||||
no) tests_enabled=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for tests option) ;;
|
||||
esac], [tests_enabled=no])
|
||||
AC_MSG_RESULT([$tests_enabled])
|
||||
])
|
||||
@@ -1,57 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
dnl Pass a single BSP via an environment variable
|
||||
dnl used by per BSP configure scripts
|
||||
AC_DEFUN([RTEMS_ENV_RTEMSBSP],
|
||||
[dnl
|
||||
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
|
||||
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
|
||||
AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
|
||||
|
||||
AC_ARG_VAR([CPU_CFLAGS],[CFLAGS specifying CPU-dependent features])
|
||||
AC_ARG_VAR([CFLAGS_OPTIMIZE_V],[CFLAGS for building the OPTIMIZE variant])
|
||||
AC_ARG_VAR([CFLAGS_DEBUG_V],[CFLAGS for building the DEBUG variant])
|
||||
AC_ARG_VAR([CFLAGS_PROFILE_V],[CFLAGS for building the PROFILE variant])
|
||||
AC_ARG_VAR([RTEMS_BSP_FAMILY],[RTEMS's BSP directory])
|
||||
AC_ARG_VAR([RTEMS_CPU_MODEL],[RTEMS's cpu model])
|
||||
|
||||
AC_ARG_VAR([RTEMS_BSP],[RTEMS_BSP to build])
|
||||
AC_MSG_CHECKING([for RTEMS_BSP])
|
||||
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
|
||||
[dnl
|
||||
test -n "${RTEMS_BSP}" && rtems_cv_RTEMS_BSP="$RTEMS_BSP";
|
||||
])dnl
|
||||
if test -z "$rtems_cv_RTEMS_BSP"; then
|
||||
AC_MSG_ERROR([Missing RTEMS_BSP])
|
||||
fi
|
||||
RTEMS_BSP="$rtems_cv_RTEMS_BSP"
|
||||
AC_MSG_RESULT(${RTEMS_BSP})
|
||||
AC_SUBST(RTEMS_BSP)
|
||||
|
||||
RTEMS_BSP_SPECS="-specs bsp_specs -qrtems"
|
||||
AC_SUBST(RTEMS_BSP_SPECS)
|
||||
|
||||
GCC_SPECS="-B\$(PROJECT_ROOT)/lib/ -B\$(PROJECT_ROOT)/$RTEMS_BSP/lib/"
|
||||
AC_SUBST(GCC_SPECS)
|
||||
|
||||
PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
|
||||
AC_SUBST(PROJECT_INCLUDE)
|
||||
|
||||
PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
|
||||
AC_SUBST(PROJECT_RELEASE)
|
||||
|
||||
RTEMS_ROOT="\$(PROJECT_ROOT)/c/$RTEMS_BSP"
|
||||
AC_SUBST(RTEMS_ROOT)
|
||||
|
||||
RTEMS_ENABLE_BARE
|
||||
AC_SUBST(BARE_CPU_MODEL)
|
||||
AC_SUBST(BARE_CPU_CFLAGS)
|
||||
|
||||
AM_CONDITIONAL([MULTILIB],[false])
|
||||
|
||||
includedir="\${exec_prefix}/${RTEMS_BSP}/lib/include"
|
||||
libdir="\${exec_prefix}/${RTEMS_BSP}/lib"
|
||||
|
||||
bsplibdir="\${exec_prefix}/${RTEMS_BSP}/lib"
|
||||
AC_SUBST(bsplibdir)
|
||||
])
|
||||
38
aclocal/exeext.m4
Normal file
38
aclocal/exeext.m4
Normal file
@@ -0,0 +1,38 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Set the EXE extension
|
||||
dnl
|
||||
dnl 98/06/16 David Fiddes (D.J.Fiddes@hw.ac.uk)
|
||||
dnl Hacked from automake-1.3
|
||||
|
||||
# Check to see if we're running under Win32, without using
|
||||
# AC_CANONICAL_*. If so, set output variable EXEEXT to ".exe".
|
||||
# Otherwise set it to "".
|
||||
|
||||
dnl RTEMS_EXEEXT()
|
||||
dnl This knows we add .exe if we're building in the Cygwin32
|
||||
dnl environment. But if we're not, then it compiles a test program
|
||||
dnl to see if there is a suffix for executables.
|
||||
AC_DEFUN(RTEMS_EXEEXT,
|
||||
[AC_REQUIRE([RTEMS_CYGWIN32])
|
||||
AC_MSG_CHECKING([for executable suffix])
|
||||
AC_CACHE_VAL(rtems_cv_exeext,
|
||||
[if test "$CYGWIN32" = yes; then
|
||||
rtems_cv_exeext=.exe
|
||||
else
|
||||
cat > rtems_c_test.c << 'EOF'
|
||||
int main() {
|
||||
/* Nothing needed here */
|
||||
}
|
||||
EOF
|
||||
${CC-cc} -o rtems_c_test $CFLAGS $CPPFLAGS $LDFLAGS rtems_c_test.c $LIBS 1>&5
|
||||
rtems_cv_exeext=`echo rtems_c_test.* | grep -v rtems_c_test.c | sed -e s/rtems_c_test//`
|
||||
rm -f rtems_c_test*])
|
||||
test x"${rtems_cv_exeext}" = x && rtems_cv_exeext=no
|
||||
fi
|
||||
EXEEXT=""
|
||||
test x"${rtems_cv_exeext}" != xno && EXEEXT=${rtems_cv_exeext}
|
||||
AC_MSG_RESULT(${rtems_cv_exeext})
|
||||
AC_SUBST(EXEEXT)])
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the gcc accepts -isystem
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_ISYSTEM],
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,
|
||||
[
|
||||
rtems_cv_gcc_isystem=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
cat << EOF > conftest.h
|
||||
int conftest123();
|
||||
EOF
|
||||
cat << EOF > conftest.c
|
||||
#include <conftest.h>
|
||||
int conftest123() {}
|
||||
EOF
|
||||
if test -z "`${CC} -isystem./ -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_isystem=yes
|
||||
fi
|
||||
fi
|
||||
rm -f conftest*
|
||||
])])
|
||||
@@ -3,19 +3,27 @@ dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -pipe
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_PIPE],
|
||||
AC_DEFUN(RTEMS_GCC_PIPE,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
|
||||
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts --pipe,rtems_cv_gcc_pipe,
|
||||
[
|
||||
rtems_cv_gcc_pipe=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
if test "$rtems_cv_prog_gcc" = "yes"; then
|
||||
case "$host_os" in
|
||||
cygwin32*)
|
||||
;;
|
||||
*)
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC} --pipe -c conftest.c 2>&1`";then
|
||||
if test -z "`${CC_FOR_TARGET} --pipe -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_pipe=yes
|
||||
fi
|
||||
rm -f conftest*
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
])
|
||||
])
|
||||
|
||||
@@ -3,16 +3,18 @@ dnl $Id$
|
||||
dnl
|
||||
dnl Check whether the target compiler accepts -specs
|
||||
dnl
|
||||
dnl 98/02/11 Ralf Corsepius corsepiu@faw.uni-ulm.de
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_GCC_SPECS],
|
||||
AC_DEFUN(RTEMS_GCC_SPECS,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
|
||||
AC_CACHE_CHECK(whether $CC_FOR_TARGET accepts -specs,rtems_cv_gcc_specs,
|
||||
[
|
||||
rtems_cv_gcc_specs=no
|
||||
if test x"$GCC" = x"yes"; then
|
||||
if test "$rtems_cv_prog_gcc" = "yes"; then
|
||||
touch confspec
|
||||
echo 'void f(){}' >conftest.c
|
||||
if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then
|
||||
if test -z "`${CC_FOR_TARGET} -specs confspec -c conftest.c 2>&1`";then
|
||||
rtems_cv_gcc_specs=yes
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -5,8 +5,8 @@ dnl
|
||||
dnl check for i386 gas supporting 16 bit mode
|
||||
dnl - binutils 2.9.1.0.7 and higher
|
||||
|
||||
AC_DEFUN([RTEMS_I386_GAS_CODE16],
|
||||
[ if test "${host_cpu}" = "i386"; then
|
||||
AC_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
|
||||
@@ -15,17 +15,12 @@ AC_DEFUN([RTEMS_I386_GAS_CODE16],
|
||||
addr32
|
||||
lgdt 0
|
||||
EOF
|
||||
if AC_TRY_COMMAND($AS -o conftest.o conftest.s); then
|
||||
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)
|
||||
if test x"${RTEMS_GAS_CODE16}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(NEW_GAS,1,[if using 16 bit mode assembler support])
|
||||
fi
|
||||
])
|
||||
)
|
||||
|
||||
|
||||
41
aclocal/mkdir.m4
Normal file
41
aclocal/mkdir.m4
Normal file
@@ -0,0 +1,41 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl macro to detect mkdir
|
||||
AC_DEFUN(RTEMS_PATH_MKDIR,
|
||||
[AC_PATH_PROG(MKDIR,mkdir)
|
||||
])
|
||||
|
||||
dnl macro to check for mkdir -p
|
||||
AC_DEFUN(RTEMS_PROG_MKDIR_P,
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PATH_MKDIR])
|
||||
AC_MSG_CHECKING([for working $MKDIR -p])
|
||||
AC_CACHE_VAL(rtems_cv_prog_mkdir_p,
|
||||
[rm -rf conftestdata
|
||||
if $MKDIR -p conftestdata 2>/dev/null ;then
|
||||
rtems_cv_prog_MKDIR_P="yes"
|
||||
else
|
||||
rtems_cv_prog_MKDIR_P="no"
|
||||
fi])dnl
|
||||
rm -rf conftestdata
|
||||
AC_MSG_RESULT($rtems_cv_prog_MKDIR_P)
|
||||
])
|
||||
|
||||
dnl macro to check for mkdir -m 0755
|
||||
AC_DEFUN(RTEMS_PROG_MKDIR_M,
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PATH_MKDIR])
|
||||
AC_MSG_CHECKING([for working $MKDIR -m 0755])
|
||||
AC_CACHE_VAL(rtems_cv_prog_MKDIR_P,
|
||||
[rm -rf conftestdata
|
||||
if $MKDIR -m 0775 conftestdata 2>/dev/null; then
|
||||
rtems_cv_prog_MKDIR_M="yes"
|
||||
else
|
||||
rtems_cv_prog_MKDIR_M="no"
|
||||
fi])dnl
|
||||
rm -rf conftestdata
|
||||
AC_MSG_RESULT($rtems_cv_prog_MKDIR_M)
|
||||
])
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
dnl This provides configure definitions used for multilib support
|
||||
|
||||
dnl parts of these macros are derived from newlib-1.8.2's multilib support
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_MULTILIB],
|
||||
[
|
||||
AC_ARG_ENABLE(multilib,
|
||||
AC_HELP_STRING([--enable-multilib],
|
||||
[build many library versions (default=no)]),
|
||||
[case "${enableval}" in
|
||||
yes) multilib=yes ;;
|
||||
no) multilib=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
|
||||
esac], [multilib=no])dnl
|
||||
|
||||
AM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes")
|
||||
])
|
||||
@@ -1,14 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_KSH],
|
||||
[
|
||||
dnl NOTE: prefer bash over ksh over sh
|
||||
AC_PATH_PROGS(KSH,bash ksh sh)
|
||||
if test -z "$KSH"; then
|
||||
dnl NOTE: This cannot happen -- /bin/sh must always exist
|
||||
AC_MSG_ERROR(
|
||||
[***]
|
||||
[ Cannot determine a usable shell bash/ksh/sh]
|
||||
[ Please contact your system administrator] );
|
||||
fi
|
||||
])
|
||||
@@ -1,12 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PATH_PERL],
|
||||
[
|
||||
AC_PATH_PROG(PERL,perl)
|
||||
if test -z "$PERL" ; then
|
||||
AC_MSG_WARN(
|
||||
[***]
|
||||
[ perl was not found]
|
||||
[ Note: Some tools will not be built.])
|
||||
fi
|
||||
])
|
||||
@@ -1,87 +0,0 @@
|
||||
# $Id$
|
||||
#
|
||||
# Some hacks for handling powerpc-exception subdirectories
|
||||
#
|
||||
# Note: Consider this file a temporary band-aid until a better, more general
|
||||
# subdirectory handling solution is introduced to RTEMS.
|
||||
|
||||
AC_DEFUN([RTEMS_PPC_EXCEPTIONS],
|
||||
[
|
||||
exceptions="$1_exception_processing"
|
||||
AC_SUBST(exceptions)
|
||||
|
||||
AC_CONFIG_COMMANDS_POST(
|
||||
[
|
||||
exceptions_subdirs="$1_exception_processing"
|
||||
updir=/../support
|
||||
|
||||
if test "$no_recursion" != yes; then
|
||||
|
||||
RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args])
|
||||
|
||||
for ac_subdir in : $exceptions_subdirs; do test "x$ac_subdir" = x: && continue
|
||||
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
test -d $srcdir${updir}/$ac_subdir || continue
|
||||
|
||||
AC_MSG_NOTICE([configuring in $ac_subdir])
|
||||
case $srcdir in
|
||||
.) ;;
|
||||
*) AS_MKDIR_P(["./$ac_subdir"])
|
||||
if test -d ./$ac_subdir; then :;
|
||||
else
|
||||
AC_MSG_ERROR([cannot create `pwd`/$ac_subdir])
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
cd $ac_subdir
|
||||
|
||||
# A "../" for each directory in /$ac_subdir.
|
||||
ac_dots=`echo $ac_subdir |
|
||||
sed 's,^\./,,;s,[[^/]]$,&/,;s,[[^/]]*/,../,g'`
|
||||
|
||||
case $srcdir in
|
||||
.) # No --srcdir option. We are building in place.
|
||||
ac_sub_srcdir=$srcdir${updir} ;;
|
||||
[[\\/]]* | ?:[[\\/]]* ) # Absolute path.
|
||||
ac_sub_srcdir=$srcdir${updir}/$ac_subdir ;;
|
||||
*) # Relative path.
|
||||
ac_sub_srcdir=$ac_dots$srcdir${updir}/$ac_subdir ;;
|
||||
esac
|
||||
|
||||
# Check for guested configure; otherwise get Cygnus style configure.
|
||||
if test -f $ac_sub_srcdir/configure.gnu; then
|
||||
ac_sub_configure="$SHELL '$ac_sub_srcdir/configure.gnu'"
|
||||
elif test -f $ac_sub_srcdir/configure; then
|
||||
ac_sub_configure="$SHELL '$ac_sub_srcdir/configure'"
|
||||
elif test -f $ac_sub_srcdir/configure.in; then
|
||||
ac_sub_configure=$ac_configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $ac_subdir])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# Make the cache file name correct relative to the subdirectory.
|
||||
case $cache_file in
|
||||
[[\\/]]* | ?:[[\\/]]* ) ac_sub_cache_file=$cache_file ;;
|
||||
*) # Relative path.
|
||||
ac_sub_cache_file=$ac_dots$cache_file ;;
|
||||
esac
|
||||
|
||||
AC_MSG_NOTICE([running $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir])
|
||||
# The eval makes quoting arguments work.
|
||||
eval $ac_sub_configure $ac_sub_configure_args \
|
||||
--cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir ||
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $ac_subdir])
|
||||
fi
|
||||
|
||||
cd "$ac_popdir"
|
||||
done
|
||||
fi
|
||||
])
|
||||
])
|
||||
@@ -3,46 +3,63 @@ 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_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
|
||||
|
||||
_RTEMS_FLAGS([CFLAGS],
|
||||
["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
|
||||
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])
|
||||
|
||||
RTEMS_CHECK_TOOL(CC,gcc)
|
||||
test -z "$CC" && \
|
||||
AC_MSG_ERROR([no acceptable cc found in \$PATH])
|
||||
AC_PROG_CC
|
||||
AC_PROG_CPP
|
||||
dnl backup
|
||||
rtems_save_CC=$CC
|
||||
rtems_save_CFLAGS=$CFLAGS
|
||||
|
||||
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")
|
||||
])
|
||||
dnl temporarily set CC
|
||||
CC=$CC_FOR_TARGET
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],
|
||||
[
|
||||
dnl check target cc
|
||||
RTEMS_PROG_CC
|
||||
dnl check if the compiler supports -isystem
|
||||
RTEMS_GCC_ISYSTEM
|
||||
dnl check if the target compiler may use --pipe
|
||||
RTEMS_GCC_PIPE
|
||||
test "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe"
|
||||
AC_PROG_CC_WORKS
|
||||
AC_PROG_CC_GNU
|
||||
|
||||
dnl check if the compiler supports --specs
|
||||
RTEMS_GCC_SPECS
|
||||
|
||||
if test "$GCC" = yes; then
|
||||
RTEMS_CFLAGS="$RTEMS_CFLAGS -Wall"
|
||||
m4_if([$1],,[],[RTEMS_CFLAGS="$RTEMS_CFLAGS $1"])
|
||||
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
|
||||
|
||||
AS_IF([test x"$rtems_cv_gcc_isystem" = x"yes"],[
|
||||
RTEMS_CPPFLAGS="-isystem \$(PROJECT_INCLUDE)"],[
|
||||
RTEMS_CPPFLAGS="-I\$(PROJECT_INCLUDE)"
|
||||
])
|
||||
AC_SUBST(RTEMS_CPPFLAGS)
|
||||
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
|
||||
])
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_CCAS],
|
||||
[
|
||||
AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_SUBST(CCAS,["$CC \$(GCCSPECS)"])
|
||||
AC_SUBST(CCASFLAGS,["-DASM \$(CFLAGS) \$(INCLUDES)"])
|
||||
])
|
||||
@@ -3,33 +3,63 @@ 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_FOR_TARGET],
|
||||
AC_DEFUN(RTEMS_PROG_CXX,
|
||||
[
|
||||
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
|
||||
AC_REQUIRE([RTEMS_ENABLE_CXX])
|
||||
RTEMS_CHECK_TOOL(CXX,g++)
|
||||
if test "$RTEMS_HAS_CPLUSPLUS" = "yes";
|
||||
then
|
||||
_RTEMS_FLAGS([CXXFLAGS],
|
||||
["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])
|
||||
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
|
||||
AC_BEFORE([$0], [AC_PROG_CXX])dnl
|
||||
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
|
||||
|
||||
dnl Only accept g++
|
||||
dnl NOTE: This might be too restrictive
|
||||
test -z "$CXX" \
|
||||
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])
|
||||
AC_PROG_CXX
|
||||
|
||||
if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then
|
||||
AC_MSG_ERROR([***]
|
||||
[Inconsistency in compiler configuration:]
|
||||
[Target C compiler and target C++ compiler]
|
||||
[must both either be cross compilers or native compilers]
|
||||
[Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
|
||||
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
|
||||
## Work-around to a bug in automake
|
||||
AM_CONDITIONAL([am__fastdepCXX],[false])
|
||||
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
|
||||
])
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
## $Id$
|
||||
##
|
||||
## WARNING: All the stuff below is pretty immature.
|
||||
|
||||
AC_DEFUN([RTEMS_PROG_GNAT],
|
||||
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
|
||||
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])
|
||||
|
||||
AC_ARG_VAR([GNATMAKE],[GNATMAKE compiler command])
|
||||
AC_ARG_VAR([ADAFLAGS],[ADA compiler flags])
|
||||
|
||||
RTEMS_CHECK_TOOL([GNATMAKE],[gnatmake],[])
|
||||
AS_IF([test -z "$GNATMAKE"],[AC_MSG_ERROR([No GNATMAKE found])])
|
||||
|
||||
AC_MSG_CHECKING([whether $GNATMAKE works])
|
||||
rm -f conftest.*
|
||||
cat >conftest.adb <<EOF
|
||||
procedure conftest is begin null; end conftest;
|
||||
EOF
|
||||
|
||||
AS_IF([$GNATMAKE -c conftest.adb 1>>config.log 2>&1],
|
||||
[HAVE_GNAT=yes],
|
||||
[HAVE_GNAT=no])
|
||||
AC_MSG_RESULT([$HAVE_GNAT])
|
||||
rm -f conftest.*
|
||||
])
|
||||
@@ -1,22 +0,0 @@
|
||||
dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl PROJECT_TOPdir .. relative path to the top of the build-tree
|
||||
dnl PROJECT_ROOT .. relative path to the top of the temporary
|
||||
dnl installation directory inside the build-tree
|
||||
dnl RTEMS_TOPdir .. relative path of a subpackage's configure.in to the
|
||||
dnl toplevel configure.in of the source-tree
|
||||
dnl RTEMS_ROOT .. path to the top of a bsp's build directory
|
||||
dnl [Applied by custom/*.cfg, depredicated otherwise]
|
||||
dnl
|
||||
|
||||
AC_DEFUN([RTEMS_PROJECT_ROOT],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_TOP])
|
||||
|
||||
PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
|
||||
AC_SUBST(PACKHEX)
|
||||
])
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
dnl RTEMS_CONFIGURE_ARGS_QUOTE(dnl RETURN_VAR, [ADDITIONAL_CASES], [VAR_TO_PROCESS]])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_CONFIGURE_ARGS_QUOTE],
|
||||
[
|
||||
$1_prune()
|
||||
{
|
||||
# Remove --cache-file and --srcdir arguments so they do not pile up.
|
||||
$1=
|
||||
ac_prev=
|
||||
for ac_arg
|
||||
do
|
||||
if test -n "$ac_prev"; then
|
||||
ac_prev=
|
||||
continue
|
||||
fi
|
||||
case $ac_arg in
|
||||
-cache-file | --cache-file | --cache-fil | --cache-fi \
|
||||
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
|
||||
ac_prev=cache_file ;;
|
||||
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
|
||||
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
|
||||
| --c=*)
|
||||
;;
|
||||
--config-cache | -C)
|
||||
;;
|
||||
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
|
||||
ac_prev=srcdir ;;
|
||||
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
||||
;;
|
||||
m4_if([$2],,,[$2])
|
||||
*) $1="$$1 '$ac_arg'" ;;
|
||||
esac
|
||||
done
|
||||
export $1
|
||||
}
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CONFIGURE_ARGS_QUOTE],[
|
||||
m4_expand_once([_RTEMS_CONFIGURE_ARGS_QUOTE([$1],[$2])])
|
||||
eval $1_prune m4_if([$3],,[$ac_configure_args],[[$]$3])
|
||||
])
|
||||
@@ -1,20 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_RPMPREFIX],[
|
||||
AC_ARG_ENABLE([rpmprefix],
|
||||
[ --enable-rpmprefix=<rpmprefix> prefix rpms],
|
||||
[case $enable_rpmprefix in
|
||||
yes ) rpmprefix="rtems-"]RTEMS_API["-";;
|
||||
no ) rpmprefix="%{nil}";;
|
||||
* ) AS_IF([test -z "$enable_rpmprefix"],
|
||||
[rpmprefix="%{nil}"],
|
||||
[rpmprefix="$enable_rpmprefix"]);;
|
||||
esac],
|
||||
[rpmprefix="rtems-"]RTEMS_API["-"])
|
||||
|
||||
AC_ARG_ENABLE([osversions],
|
||||
[ --enable-osversions whether to use version numbers in os-tripples],
|
||||
[case $enable_osversions in
|
||||
yes ) osversion=RTEMS_API;;
|
||||
* ) osversion=;;
|
||||
esac],
|
||||
[osversion=])
|
||||
])
|
||||
@@ -1,31 +0,0 @@
|
||||
AC_DEFUN([_RTEMS_CPU_SUBDIR],
|
||||
[
|
||||
$1 ) if test -d ${srcdir}/ifelse([$2],,[$1],[$2/$1]) ; then
|
||||
AC_CONFIG_SUBDIRS(ifelse([$2],,[$1],[$2/$1]))
|
||||
fi
|
||||
])
|
||||
|
||||
## RTEMS_CPU_SUBDIRS([PREFIX])
|
||||
AC_DEFUN([RTEMS_CPU_SUBDIRS],
|
||||
[
|
||||
## EDIT: If adding a new cpu to RTEMS, add it to the case block below.
|
||||
case $RTEMS_CPU in
|
||||
_RTEMS_CPU_SUBDIR([a29k],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([arm],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([c4x],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([h8300],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([hppa1.1],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([i386],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([i960],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([m68k],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([mips],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([mips64orion],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([no_cpu],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([or32],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([powerpc],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([sh],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([sparc],[$1]);;
|
||||
_RTEMS_CPU_SUBDIR([unix],[$1]);;
|
||||
*) AC_MSG_ERROR([Invalid RTEMS_CPU <[$]{RTEMS_CPU}>])
|
||||
esac
|
||||
])
|
||||
@@ -1,19 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMS_DEBUG],
|
||||
[
|
||||
AC_ARG_ENABLE(rtems-debug,
|
||||
AC_HELP_STRING([--enable-rtems-debug],[enable RTEMS_DEBUG]),
|
||||
[case "${enable_rtems_debug}" in
|
||||
yes) enable_rtems_debug=yes ;;
|
||||
no) enable_rtems_debug=no ;;
|
||||
*) AC_MSG_ERROR([bad value ${enable_rtems_debug} for RTEMS_DEBUG]) ;;
|
||||
esac],[enable_rtems_debug=no])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_DEBUG],
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
|
||||
AS_IF([test x"${enable_rtems_debug}" = x"yes"]
|
||||
[AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])])
|
||||
])
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
## $Id$
|
||||
##
|
||||
## Some hacks to set up RTEMS_*FLAGS
|
||||
## Internal macro, not supposed to be explictly used in configure.ac's
|
||||
|
||||
AC_DEFUN([_RTEMS_FLAGS],[
|
||||
AS_IF([test -n "[$]{$1}"],
|
||||
[RTEMS_$1=[$]{$1}],
|
||||
[RTEMS_$1=$2])
|
||||
AC_SUBST([RTEMS_$1])
|
||||
])
|
||||
@@ -1,18 +0,0 @@
|
||||
AC_DEFUN([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE],
|
||||
[AC_ARG_ENABLE(test-no-pause,
|
||||
AC_HELP_STRING([--disable-test-no-pause],[disable RTEMS_TEST_NO_PAUSE]),
|
||||
[case "${enableval}" in
|
||||
yes) RTEMS_TEST_NO_PAUSE=yes ;;
|
||||
no) RTEMS_TEST_NO_PAUSE=no ;;
|
||||
*) AC_MSG_ERROR([bad value ${enableval} for RTEMS_TEST_NO_PAUSE]) ;;
|
||||
esac],[RTEMS_TEST_NO_PAUSE=yes])
|
||||
])
|
||||
|
||||
AC_DEFUN([RTEMS_CHECK_RTEMS_TEST_NO_PAUSE],
|
||||
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
|
||||
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
|
||||
then
|
||||
AC_DEFINE_UNQUOTED(RTEMS_TEST_NO_PAUSE,1,[if RTEMS_TEST_NO_PAUSE is enabled])
|
||||
fi
|
||||
])
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
m4_define([RTEMS_API],[4.6])
|
||||
|
||||
dnl
|
||||
dnl RTEMS_TOP($1)
|
||||
dnl
|
||||
dnl $1 .. relative path from this configure.in to the toplevel configure.in
|
||||
dnl
|
||||
AC_DEFUN([RTEMS_TOP],
|
||||
[dnl
|
||||
AC_REQUIRE([RTEMS_VERSIONING])
|
||||
AC_CONFIG_AUX_DIR([$1])
|
||||
AC_CHECK_PROGS(MAKE, gmake make)
|
||||
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
|
||||
|
||||
AC_PREFIX_DEFAULT([/opt/rtems-][RTEMS_API])
|
||||
|
||||
## HACK to allow gnu-make conditionals in automake-Makefiles.
|
||||
ENDIF=endif
|
||||
AC_SUBST(ENDIF)
|
||||
|
||||
RTEMS_TOPdir="$1";
|
||||
AC_SUBST(RTEMS_TOPdir)
|
||||
|
||||
## with_target_subdirs is handled implicitly by autoconf
|
||||
test -n "$with_target_subdir" || with_target_subdir="."
|
||||
|
||||
if test "$with_target_subdir" = "." ; then
|
||||
# Native
|
||||
PROJECT_TOPdir=${RTEMS_TOPdir}/'$(top_builddir)'
|
||||
else
|
||||
# Cross
|
||||
dots=`echo $with_target_subdir|\
|
||||
sed -e 's%^\./%%' -e 's%[[^/]]$%&/%' -e 's%[[^/]]*/%../%g'`
|
||||
PROJECT_TOPdir=${dots}${RTEMS_TOPdir}/'$(top_builddir)'
|
||||
fi
|
||||
AC_SUBST(PROJECT_TOPdir)
|
||||
|
||||
PROJECT_ROOT="${RTEMS_TOPdir}/\$(top_builddir)"
|
||||
AC_SUBST(PROJECT_ROOT)
|
||||
|
||||
AC_MSG_CHECKING([for RTEMS Version])
|
||||
AS_IF([test -r "${srcdir}/${RTEMS_TOPdir}/aclocal/version.m4"],
|
||||
[],
|
||||
[AC_MSG_ERROR([Unable to find ${RTEMS_TOPdir}/aclocal/version.m4])])
|
||||
AC_MSG_RESULT([_RTEMS_VERSION])
|
||||
])dnl
|
||||
96
aclocal/sysv-ipc.m4
Normal file
96
aclocal/sysv-ipc.m4
Normal file
@@ -0,0 +1,96 @@
|
||||
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_SYSV_SEM,
|
||||
[AC_REQUIRE([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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>
|
||||
int main () {
|
||||
#if !defined(sun)
|
||||
union semun arg ;
|
||||
#else
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
ushort *array;
|
||||
} arg;
|
||||
#endif
|
||||
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([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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([RTEMS_PROG_CC])
|
||||
AC_REQUIRE([AC_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", :)
|
||||
])
|
||||
])
|
||||
@@ -1,138 +0,0 @@
|
||||
dnl $Id$
|
||||
|
||||
## HACK: Work-around to structural issue with RTEMS
|
||||
## The macros below violate most autoconf and canonicalization standards
|
||||
AC_DEFUN([RTEMS_CONFIG_BUILD_SUBDIRS],
|
||||
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
|
||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
|
||||
])
|
||||
|
||||
dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
|
||||
AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS],
|
||||
[AC_CONFIG_COMMANDS([bsp-tools],
|
||||
[
|
||||
# HACK: This is a blantant hack and breaks Canadian crosses
|
||||
build_alias="$build_alias"
|
||||
host_alias="$build_alias"
|
||||
if test "$no_recursion" != yes; then
|
||||
if test x"$build_alias" != x"$host_alias"; then
|
||||
target_subdir="$host_alias"
|
||||
else
|
||||
target_subdir="."
|
||||
fi
|
||||
RTEMS_CONFIGURE_ARGS_QUOTE([ac_sub_configure_args],
|
||||
[
|
||||
-host* | --host* ) ;;
|
||||
--host ) ac_prev=host_alias;;
|
||||
-target* | --target* ) ;;
|
||||
-target ) ac_prev=target_alias ;;
|
||||
-build* | --build* ) ;;
|
||||
-build ) ac_prev_build_alias ;;
|
||||
*_alias=* ) ;; # HACK: Workaround to autoconf passing *_alias
|
||||
],
|
||||
[rtems_configure_args])
|
||||
|
||||
for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do
|
||||
# Do not complain, so a configure script can configure whichever
|
||||
# parts of a large source tree are present.
|
||||
if test ! -d $srcdir/$rtems_config_dir; then
|
||||
continue
|
||||
fi
|
||||
|
||||
_RTEMS_PUSH_BUILDDIR([$rtems_config_dir])
|
||||
|
||||
_RTEMS_SUB_SRCDIR([$rtems_config_dir])
|
||||
|
||||
# The recursion is here.
|
||||
if test -n "$ac_sub_configure"; then
|
||||
# ac_sub_cache_file=./config.cache
|
||||
ac_sub_cache_file=/dev/null
|
||||
_RTEMS_GIVEN_INSTALL
|
||||
|
||||
echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir"
|
||||
# The eval makes quoting arguments work.
|
||||
if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \
|
||||
$ac_sub_configure_args \
|
||||
--srcdir=$ac_sub_srcdir \
|
||||
--with-target-subdir=$target_subdir \
|
||||
--cache-file=$ac_sub_cache_file
|
||||
then :
|
||||
else
|
||||
AC_MSG_ERROR([$ac_sub_configure failed for $rtems_config_dir])
|
||||
fi
|
||||
fi
|
||||
|
||||
_RTEMS_POP_BUILDDIR
|
||||
done
|
||||
fi],
|
||||
[
|
||||
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS"
|
||||
rtems_configure_args="$ac_configure_args"
|
||||
])
|
||||
])
|
||||
|
||||
## FIXME: This is obsolete. Only kept for backward compatibility
|
||||
AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[])
|
||||
|
||||
|
||||
dnl
|
||||
dnl Misc utility macros for subdir handling to work around missing abilities
|
||||
dnl in autoconf, automake and structural issues with RTEMS
|
||||
dnl
|
||||
dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus'
|
||||
dnl configure.in.
|
||||
dnl
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_PUSH_BUILDDIR],
|
||||
[
|
||||
# _RTEMS_PUSH_BUILDDIR
|
||||
echo configuring in $1
|
||||
case "$srcdir" in
|
||||
.) ;;
|
||||
*) AS_MKDIR_P([$1])
|
||||
;;
|
||||
esac
|
||||
|
||||
ac_popdir=`pwd`
|
||||
cd $1
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_POP_BUILDDIR
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_POP_BUILDDIR],
|
||||
[
|
||||
cd "$ac_popdir"
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_GIVEN_INSTALL
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_GIVEN_INSTALL],
|
||||
[
|
||||
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[
|
||||
case "$ac_given_INSTALL" in
|
||||
[[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;;
|
||||
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
|
||||
esac
|
||||
])dnl
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
|
||||
dnl
|
||||
AC_DEFUN([_RTEMS_SUB_SRCDIR],[
|
||||
# _RTEMS_SUB_SRCDIR
|
||||
_RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)
|
||||
|
||||
# Check for configure
|
||||
if test -f $ac_sub_srcdir/configure; then
|
||||
ac_sub_configure=$ac_sub_srcdir/configure
|
||||
else
|
||||
AC_MSG_WARN([no configuration information is in $1])
|
||||
ac_sub_configure=
|
||||
fi
|
||||
])
|
||||
@@ -1,23 +0,0 @@
|
||||
AC_DEFUN([RTEMS_TOOLPATHS],
|
||||
[
|
||||
# tooldir='$(exec_prefix)/'$target_alias
|
||||
# Temporary work-around until building in source tree is supported
|
||||
AC_REQUIRE([RTEMS_PROJECT_ROOT])
|
||||
|
||||
tooldir='$(PROJECT_ROOT)'
|
||||
AC_SUBST(tooldir)
|
||||
|
||||
project_includedir='$(tooldir)'/include
|
||||
AC_SUBST(project_includedir)
|
||||
|
||||
project_libdir='$(tooldir)/lib$(MULTISUBDIR)'
|
||||
AC_SUBST(project_libdir)
|
||||
|
||||
project_bindir='$(tooldir)/bin'
|
||||
AC_SUBST(project_bindir)
|
||||
|
||||
rtems_bspdir='$(prefix)/${RTEMS_BSP}'
|
||||
AC_SUBST(rtems_bspdir)
|
||||
rtems_makedir='$(prefix)/make'
|
||||
AC_SUBST(rtems_makedir)
|
||||
])
|
||||
20
aclocal/tool-prefix.m4
Normal file
20
aclocal/tool-prefix.m4
Normal file
@@ -0,0 +1,20 @@
|
||||
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
|
||||
|
||||
if [[ "${program_prefix}" = "NONE" ]] ; then
|
||||
if [[ "${target}" = "${host}" ]] ; then
|
||||
program_prefix=
|
||||
else
|
||||
program_prefix=${target}-
|
||||
fi
|
||||
fi
|
||||
])
|
||||
@@ -1,2 +0,0 @@
|
||||
AC_DEFUN([RTEMS_VERSIONING],
|
||||
m4_define([_RTEMS_VERSION],[4.6.5]))
|
||||
@@ -1,231 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
## NOTE: This file is rather immature and has to be considered to be
|
||||
## almost experimental.
|
||||
##
|
||||
## Expect frequent changes -- It deserves to be cleaned up :(
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
## The section below is based on make/compilers/gcc-target-default.cfg
|
||||
## used in former versions of RTEMS.
|
||||
|
||||
##
|
||||
## Set up the flags for the toolchains:
|
||||
##
|
||||
## We are considering 3 different building schemes here:
|
||||
## * Using gcc's being able to accept -specs (aka gcc-2.8 building scheme)
|
||||
## * Using gcc's not being able to accept -specs (aka gcc-2.7.2 building
|
||||
## scheme)
|
||||
## * Using third party toolchains (aka non-gcc building scheme)
|
||||
##
|
||||
## Automake conditionals in use:
|
||||
## RTEMS_USE_GCC .. if we are using GCC
|
||||
|
||||
## NOTES:
|
||||
## * The gcc-2.8 building scheme is the nominal building scheme and
|
||||
## is actively supported.
|
||||
## * The non-gcc building scheme requires manually setting up environment
|
||||
## variables and is hardly tested at all
|
||||
|
||||
## CFLAGS_OPTIMIZE_V, CFLAGS_DEBUG_V, CFLAGS_PROFILE_V are the values we
|
||||
## would want the corresponding macros to be set to.
|
||||
##
|
||||
## CFLAGS_OPTIMIZE, CFLAGS_DEBUG, CFLAGS_PROFILE are set by the
|
||||
## 'VARIANT=<OPTIMIZE|DEBUG|PROFILE>' targets to their _V values.
|
||||
|
||||
## XCPPFLAGS, XCFLAGS, XCXXFLAGS, XASFLAGS
|
||||
## are used to add flags from the shell
|
||||
## cf. make.info ("Implicit rules/variables" for details)
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## All the stuff below is specific to gcc
|
||||
|
||||
## gcc >= 2.8.x
|
||||
GCCSPECS = $(GCC_SPECS) $(RTEMS_BSP_SPECS)
|
||||
else
|
||||
## fall back to the old style compilers/*.cfg
|
||||
## CONFIG.CC is supposed to be provided by <BSP>.cfg
|
||||
include $(CONFIG.CC)
|
||||
endif # RTEMS_USE_GCC
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
CPPFLAGS = @CPPFLAGS@ $(CPU_DEFINES) $(DEFINES) $(XCPPFLAGS)
|
||||
CFLAGS = @RTEMS_CFLAGS@ $(XCFLAGS)
|
||||
## FIXME: This should be correct, but is not supported, yet
|
||||
# CXXFLAGS = @RTEMS_CXXFLAGS@ $(XCXXFLAGS)
|
||||
## Fall back to using RTEMS_CFLAGS for C++
|
||||
CXXFLAGS = @RTEMS_CFLAGS@ $(XCXXFLAGS)
|
||||
ASFLAGS = $(CPU_ASFLAGS) $(CPU_CFLAGS) $(XASFLAGS)
|
||||
|
||||
LINK_LIBS = $(LD_LIBS)
|
||||
|
||||
#
|
||||
# Client compiler and support tools
|
||||
#
|
||||
|
||||
#
|
||||
# How to compile stuff into ${ARCH} subdirectory
|
||||
#
|
||||
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||
CXXLD = $(CXX)
|
||||
CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
|
||||
CCAS = $(CC)
|
||||
CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
|
||||
|
||||
# OBSOLETE: Don't use
|
||||
AS = $(CC)
|
||||
ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS)
|
||||
|
||||
${ARCH}/%.o: %.c
|
||||
${COMPILE} -o $@ -c $<
|
||||
|
||||
${ARCH}/%.o: %.cc
|
||||
${CXXCOMPILE} -o $@ -c $<
|
||||
|
||||
${ARCH}/%.o: %.S
|
||||
${CCASCOMPILE} -DASM -o $@ -c $<
|
||||
|
||||
# Dependency files for use by gmake
|
||||
# NOTE: we don't put them into $(ARCH)
|
||||
# so that 'make clean' doesn't blow it away
|
||||
|
||||
DEPEND=Depends-${ARCH}
|
||||
|
||||
# We deliberately don't have anything depend on the
|
||||
# $(DEPEND) file; otherwise it will get rebuilt even
|
||||
# on 'make clean'
|
||||
#
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## HACK: Specific to gcc
|
||||
## FIXME: The approach below is known to be conceptionally broken.
|
||||
depend-gcc: $(C_FILES) $(CC_FILES) $(S_FILES)
|
||||
## Use gcc -M to generate dependencies
|
||||
## Replace foo.o with $(ARCH)/foo.o
|
||||
## Replace $(ARCH) value with string $(ARCH)
|
||||
## so that it will for debug and profile cases
|
||||
$(COMPILE) -M $^ | \
|
||||
sed -e 's?^\(.*\)\.o[ ]*:?$$(ARCH)/\1.o:?' \
|
||||
-e 's?$(ARCH)/?$$(ARCH)/?' >$(DEPEND).tmp
|
||||
mv $(DEPEND).tmp $(DEPEND)
|
||||
|
||||
# pull in dependencies if they exist
|
||||
ifeq (${DEPEND},$(wildcard ${DEPEND}))
|
||||
include ${DEPEND}
|
||||
@ENDIF@
|
||||
endif
|
||||
depend: depend-am
|
||||
|
||||
# spell out all the LINK_FILE's, rather than using -lbsp, so
|
||||
# that $(LINK_FILES) can be a dependency
|
||||
|
||||
LINK_OBJS = \
|
||||
$(OBJS) \
|
||||
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel)
|
||||
|
||||
LINK_FILES =\
|
||||
$(START_FILE) \
|
||||
$(OBJS) \
|
||||
$(MANAGERS_NOT_WANTED:%=$(PROJECT_RELEASE)/lib/no-%$(LIB_VARIANT).rel)
|
||||
|
||||
if RTEMS_USE_GCC
|
||||
## gcc >= 2.8
|
||||
define make-rel
|
||||
$(LINK) -qnolinkcmds -nostdlib -Wl,-r $(XLDFLAGS) $^
|
||||
endef
|
||||
else
|
||||
## non-gcc
|
||||
define make-rel
|
||||
$(LINK) $(XLDFLAGS) $^
|
||||
endef
|
||||
endif
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
## translate VARIANT into VARIANT_V
|
||||
VARIANT = OPTIMIZE
|
||||
|
||||
VARIANT_OPTIMIZE_V = OPTIMIZE
|
||||
VARIANT_DEBUG_V = DEBUG
|
||||
VARIANT_PROFILE_V = PROFILE
|
||||
VARIANT_optimize_V = OPTIMIZE
|
||||
VARIANT_debug_V = DEBUG
|
||||
VARIANT_profile_V = PROFILE
|
||||
|
||||
VARIANT_V = $(VARIANT_$(VARIANT)_V)
|
||||
|
||||
## Setup the variant build subdirectory
|
||||
ARCH_OPTIMIZE_V = o-optimize
|
||||
ARCH_DEBUG_V = o-debug
|
||||
ARCH_PROFILE_V = o-profile
|
||||
|
||||
ARCH__V = $(ARCH_OPTIMIZE_V)
|
||||
ARCH = $(ARCH_$(VARIANT_V)_V)
|
||||
|
||||
## Setup the library suffix
|
||||
LIBSUFFIX_OPTIMIZE_V =
|
||||
LIBSUFFIX_DEBUG_V = _g
|
||||
LIBSUFFIX_PROFILE_V = _p
|
||||
LIBSUFFIX__V = $(LIBSUFFIX_OPTIMIZE_V)
|
||||
|
||||
LIB_VARIANT = $(LIBSUFFIX_$(VARIANT_V)_V)
|
||||
|
||||
## These are supposed to be set in make/custom/<bsp>.cfg
|
||||
CPU_CFLAGS = @CPU_CFLAGS@
|
||||
CFLAGS_OPTIMIZE_V = @CFLAGS_OPTIMIZE_V@
|
||||
CFLAGS_DEBUG_V = @CFLAGS_DEBUG_V@
|
||||
CFLAGS_PROFILE_V = @CFLAGS_PROFILE_V@
|
||||
CFLAGS__V = $(CFLAGS_OPTIMIZE_V)
|
||||
|
||||
## ------------------------------------------------------------------------
|
||||
## Setup hard-coded flags
|
||||
if RTEMS_USE_GCC
|
||||
## gcc >= gcc-2.8
|
||||
RTEMS_CFLAGS_OPTIMIZE_V =
|
||||
RTEMS_CFLAGS_DEBUG_V = -qrtems_debug -Wno-unused
|
||||
RTEMS_CFLAGS_PROFILE_V = -pg
|
||||
|
||||
## non-gcc
|
||||
## We can't guess what flags might be required here.
|
||||
## Pass the values from the environment if you want to apply them.
|
||||
endif
|
||||
RTEMS_CFLAGS__V = $(RTEMS_CFLAGS_OPTIMIZE_V)
|
||||
|
||||
## -------------------------------------------------------------------------
|
||||
|
||||
CC = @CC@ $(GCCSPECS)
|
||||
CXX = @CXX@ $(GCCSPECS)
|
||||
CPP = @CPP@ $(GCCSPECS)
|
||||
|
||||
LD = @LD@
|
||||
OBJCOPY = @OBJCOPY@
|
||||
NM = @NM@
|
||||
SIZE = @SIZE@
|
||||
STRIP = @STRIP@
|
||||
|
||||
##
|
||||
AM_CPPFLAGS = $(RTEMS_CPPFLAGS)
|
||||
AM_CFLAGS =
|
||||
AM_CXXFLAGS =
|
||||
AM_CCASFLAGS = $(CPU_CFLAGS) $(RTEMS_CPPFLAGS) $(RTEMS_CCASFLAGS)
|
||||
|
||||
${ARCH}:
|
||||
mkdir ${ARCH}
|
||||
|
||||
clean-local:
|
||||
$(RM) -r o-optimize o-debug o-profile $(CLEANDIRS)
|
||||
$(RM) Depends-o-optimize.tmp Depends-o-debug.tmp Depends-o-profile.tmp
|
||||
@@ -1,4 +0,0 @@
|
||||
## This file is a temporary band-aid for the ppc-BSPs.
|
||||
## DO NOT use it, it will eventually be removed in future.
|
||||
|
||||
PREINSTALL_FILES = $(TMPINSTALL_FILES)
|
||||
@@ -1,28 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
## NOTE: This is a temporary work-around to keep
|
||||
## RTEMS's non automake standard make targets working.
|
||||
## Once automake is fully integrated these make targets
|
||||
## and this file will probably be removed
|
||||
|
||||
debug:
|
||||
@echo
|
||||
@echo "\"make debug\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=DEBUG"
|
||||
@echo
|
||||
|
||||
.PHONY: debug
|
||||
|
||||
profile:
|
||||
@echo
|
||||
@echo "\"make profile\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=PROFILE"
|
||||
@echo
|
||||
|
||||
preinstall-am: $(PREINSTALL_FILES)
|
||||
preinstall: preinstall-am
|
||||
.PHONY: preinstall preinstall-am
|
||||
|
||||
depend-am:
|
||||
depend: depend-am
|
||||
.PHONY: depend depend-am
|
||||
@@ -1,16 +0,0 @@
|
||||
include $(RTEMS_ROOT)/make/leaf.cfg
|
||||
|
||||
CXXLINK_APP = $(CXXLINK) $(LDLIBS) $(LINK_OBJS) $(LINK_LIBS)
|
||||
ifndef make-cxx-exe
|
||||
define make-cxx-exe
|
||||
$(CXXLINK_APP)
|
||||
endef
|
||||
@ENDIF@
|
||||
|
||||
LINK_APP = $(LINK) $(LDLIBS) $(LINK_OBJS) $(LINK_LIBS)
|
||||
ifndef make-exe
|
||||
define make-exe
|
||||
$(LINK_APP)
|
||||
endef
|
||||
@ENDIF@
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
AR = @AR@
|
||||
RANLIB = @RANLIB@
|
||||
|
||||
ARFLAGS = ruv
|
||||
|
||||
define make-library
|
||||
test -d $(ARCH) || mkdir $(ARCH)
|
||||
$(RM) $@
|
||||
$(AR) $(ARFLAGS) $@ $^
|
||||
$(RANLIB) $@
|
||||
endef
|
||||
|
||||
$(PROJECT_RELEASE)/lib:
|
||||
@$(mkinstalldirs) $@
|
||||
|
||||
TMPINSTALL_FILES = $(PROJECT_RELEASE)/lib
|
||||
|
||||
.PRECIOUS: $(LIB)
|
||||
@@ -1,28 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
debug:
|
||||
@echo
|
||||
@echo "\"make debug\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=DEBUG"
|
||||
@echo
|
||||
|
||||
.PHONY: debug
|
||||
|
||||
profile:
|
||||
@echo
|
||||
@echo "\"make profile\" is obsolete, instead use:"
|
||||
@echo " make VARIANT=PROFILE"
|
||||
@echo
|
||||
|
||||
.PHONY: profile
|
||||
|
||||
preinstall-am: $(PREINSTALL_FILES)
|
||||
preinstall: preinstall-am
|
||||
.PHONY: preinstall preinstall-am
|
||||
|
||||
depend-am: depend-gcc
|
||||
depend: depend-am
|
||||
.PHONY: depend depend-am depend-gcc
|
||||
|
||||
PROJECT_TOOLS = $(PROJECT_RELEASE)/build-tools
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
## $Id$
|
||||
|
||||
## Borrowed from automake-1.4 and adapted to RTEMS
|
||||
|
||||
## NOTE: This is a temporary work-around to keep
|
||||
## RTEMS's non automake standard make targets working.
|
||||
## Once automake is fully integrated these make targets
|
||||
## and this file will probably be removed
|
||||
|
||||
depend-recursive \
|
||||
preinstall-recursive:
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
dot_seen=no; \
|
||||
target=`echo $@ | sed s/-recursive//`; \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
echo "Making $$target in $$subdir"; \
|
||||
if test "$$subdir" = "."; then \
|
||||
dot_seen=yes; \
|
||||
local_target="$$target-am"; \
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
## This trick allows "-k" to keep its natural meaning when running a
|
||||
## recursive rule.
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
|
||||
fi; test -z "$$fail"
|
||||
|
||||
preinstall: preinstall-recursive
|
||||
.PHONY: preinstall-recursive
|
||||
|
||||
depend: depend-recursive
|
||||
.PHONY: depend-recursive
|
||||
193
bootstrap
193
bootstrap
@@ -1,193 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# helps bootstrapping, when checked out from CVS
|
||||
# requires GNU autoconf and GNU automake
|
||||
#
|
||||
# $Id$
|
||||
|
||||
# this is not meant to be exported outside the source tree
|
||||
|
||||
# NOTE: Inspired by libtool's autogen script
|
||||
|
||||
# to be run from the toplevel directory of RTEMS'
|
||||
# source tree
|
||||
|
||||
progname=`basename $0`
|
||||
top_srcdir=`dirname $0`
|
||||
|
||||
verbose="";
|
||||
quiet="false"
|
||||
mode="generate"
|
||||
|
||||
usage()
|
||||
{
|
||||
echo
|
||||
echo "usage: ${progname} [-h|-q|-v]"
|
||||
echo
|
||||
echo "options:"
|
||||
echo " -h .. display this message and exit";
|
||||
echo " -q .. quiet, don't display directories";
|
||||
echo " -v .. verbose, pass -v to automake when invoking automake"
|
||||
echo " -c .. clean, remove all aclocal/autoconf/automake generated files"
|
||||
echo
|
||||
exit 1;
|
||||
}
|
||||
|
||||
generate_bspdir_acinclude()
|
||||
{
|
||||
cat << EOF > acinclude.m4~
|
||||
# RTEMS_CHECK_BSPDIR(RTEMS_BSP)
|
||||
AC_DEFUN([RTEMS_CHECK_BSPDIR],
|
||||
[
|
||||
RTEMS_BSP_ALIAS(ifelse([\$1],,[\${RTEMS_BSP}],[\$1]),bspdir)
|
||||
case "\$bspdir" in
|
||||
EOF
|
||||
|
||||
for i in */bsp_specs; do
|
||||
d=`dirname $i`
|
||||
cat << EOF >> acinclude.m4~
|
||||
$d )
|
||||
AC_CONFIG_SUBDIRS([$d]);;
|
||||
EOF
|
||||
done
|
||||
cat << EOF >> acinclude.m4~
|
||||
*)
|
||||
AC_MSG_ERROR([Invalid BSP]);;
|
||||
esac
|
||||
])
|
||||
EOF
|
||||
if cmp -s acinclude.m4 acinclude.m4~ 2>/dev/null; then
|
||||
echo "acinclude.m4 is unchanged";
|
||||
else
|
||||
cp acinclude.m4~ acinclude.m4
|
||||
fi
|
||||
rm -f acinclude.m4~
|
||||
}
|
||||
|
||||
if test ! -f $top_srcdir/aclocal/version.m4; then
|
||||
echo "${progname}:"
|
||||
echo " Installation problem: Can't find file aclocal/version.m4"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
while test $# -gt 0; do
|
||||
case $1 in
|
||||
-h|--he|--hel|--help)
|
||||
usage ;;
|
||||
-q|--qu|--qui|--quie|--quiet)
|
||||
quiet="true";
|
||||
shift;;
|
||||
-v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
|
||||
verbose="-v";
|
||||
shift;;
|
||||
-c|--cl|--cle|--clea|--clean)
|
||||
mode="clean";
|
||||
shift;;
|
||||
-*) echo "unknown option $1" ;
|
||||
usage ;;
|
||||
*) echo "invalid parameter $1" ;
|
||||
usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
case $mode in
|
||||
generate)
|
||||
AUTOCONF=${AUTOCONF-autoconf}
|
||||
if test -z "$AUTOCONF"; then
|
||||
echo "You must have autoconf installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
AUTOHEADER=${AUTOHEADER-autoheader}
|
||||
if test -z "$AUTOHEADER"; then
|
||||
echo "You must have autoconf installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
AUTOMAKE=${AUTOMAKE-automake}
|
||||
if test -z "$AUTOMAKE"; then
|
||||
echo "You must have automake installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ACLOCAL=${ACLOCAL-aclocal}
|
||||
if test -z "$ACLOCAL"; then
|
||||
echo "You must have automake installed to run $program"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case $top_srcdir in
|
||||
/* ) aclocal_dir=$top_srcdir
|
||||
;;
|
||||
*) aclocal_dir=`pwd`/$top_srcdir
|
||||
;;
|
||||
esac
|
||||
|
||||
confs=`find . \( -name 'configure.in' -o -name 'configure.ac' \) -print`
|
||||
for i in $confs; do
|
||||
dir=`dirname $i`;
|
||||
configure=`basename $i`;
|
||||
( test "$quiet" = "true" || echo "$dir";
|
||||
cd $dir;
|
||||
test -n "`grep RTEMS_CHECK_BSPDIR ${configure}`" && \
|
||||
generate_bspdir_acinclude;
|
||||
pat="s,\$(RTEMS_TOPdir),${aclocal_dir},g"
|
||||
aclocal_args=`grep '^[ ]*ACLOCAL_AMFLAGS' Makefile.am | \
|
||||
sed -e 's%.*ACLOCAL_AMFLAGS.*\=[ ]*%%g' -e $pat ` ;
|
||||
test "$verbose" = "-v" && echo "${ACLOCAL} $aclocal_args"
|
||||
${ACLOCAL} $aclocal_args;
|
||||
test -n "`grep CONFIG_HEADER ${configure}`" && ${AUTOHEADER} \
|
||||
&& test "$verbose" = "-v" && echo "${AUTOHEADER}";
|
||||
test -n "`grep RTEMS_BSP_CONFIGURE ${configure}`" && ${AUTOHEADER} \
|
||||
&& test "$verbose" = "-v" && echo "${AUTOHEADER}";
|
||||
test -f Makefile.am && ${AUTOMAKE} -a -c $verbose ;
|
||||
${AUTOCONF};
|
||||
test -f Makefile.am && test -n "`grep 'stamp-h\.in' Makefile.in`" \
|
||||
&& echo timestamp > stamp-h.in
|
||||
)
|
||||
done
|
||||
;;
|
||||
|
||||
clean)
|
||||
test "$quiet" = "true" || echo "removing automake generated Makefile.in files"
|
||||
files=`find . -name 'Makefile.am' -print | sed -e 's%\.am%\.in%g'` ;
|
||||
for i in $files; do if test -f $i; then
|
||||
rm -f $i
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
test "$quiet" = "true" || echo "removing configure files"
|
||||
files=`find . -name 'configure' -print` ;
|
||||
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
|
||||
for i in $files; do if test -f $i; then
|
||||
# The config.sub shipped with automake <= 1.7.5 does handle c4x/tic4x-* correctly.
|
||||
# rm -f config.sub
|
||||
rm -f $i config.guess depcomp install-sh mdate-sh missing \
|
||||
mkinstalldirs texinfo.tex
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
test "$quiet" = "true" || echo "removing aclocal.m4 files"
|
||||
files=`find . -name 'aclocal.m4' -print` ;
|
||||
test "$verbose" = "-v" && test -n "$files" && echo "$files" ;
|
||||
for i in $files; do if test -f $i; then
|
||||
rm -f $i
|
||||
test "$verbose" = "-v" && echo "$i"
|
||||
fi; done
|
||||
|
||||
find . -name '*~' -print | xargs rm -f
|
||||
find . -name 'bspopts.h*' -print | xargs rm -f
|
||||
find . -name '*.orig' -print | xargs rm -f
|
||||
find . -name '*.rej' -print | xargs rm -f
|
||||
find . -name 'config.status' -print | xargs rm -f
|
||||
find . -name 'config.log' -print | xargs rm -f
|
||||
find . -name 'config.cache' -print | xargs rm -f
|
||||
find . -name 'Makefile' -print | xargs rm -f
|
||||
find . -name '.deps' -print | xargs rm -rf
|
||||
find . -name '.libs' -print | xargs rm -rf
|
||||
find . -name 'stamp-h.in' | xargs rm -rf
|
||||
find . -name 'autom4te*.cache' | xargs rm -rf
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
14
c/.cvsignore
14
c/.cvsignore
@@ -1,14 +0,0 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
@@ -120,8 +120,7 @@ The following persons/organizations have made contributions:
|
||||
+ 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.
|
||||
for the Hitachi SH port.
|
||||
|
||||
+ Dario Alcocer <alcocer@connectnet.com> submitted a port of the
|
||||
RTEMS port to FreeBSD.
|
||||
@@ -137,61 +136,6 @@ The following persons/organizations have made contributions:
|
||||
Puchheim,Germany submitted some improvements to the PPC403
|
||||
support and added the helas403 BSP.
|
||||
|
||||
+ Jay Monkman (jmonkman@frasca.com) of Frasca International, Inc
|
||||
submitted the support for the Motorola MPC860 CPU including the
|
||||
'eth_comm' BSP
|
||||
|
||||
+ Charles Gauthier <Charles.Gauthier@iit.nrc.ca> of the Institute for
|
||||
Information Technology for the National Research Council of Canada
|
||||
submitted the Motorola MVME167 BSP.
|
||||
|
||||
+ Tony Ambardar (tonya@ece.ubc.ca) at the University of British Columbia
|
||||
ported RTEMS to the TS-1325 embedded PC from Technologic Systems
|
||||
(http://www.t-systems.com), and provided patches to enable software
|
||||
floating-point emulation for x86 targets.
|
||||
|
||||
+ Jay Kulpinski (jskulpin@eng01.gdds.com) of General Dynamics Defense
|
||||
Systems (Pittsfield, MA) submitted a board support package for the
|
||||
Motorola MVME230x PowerPC family, borrowing from the PSIM and MPC750
|
||||
BSPs. This includes support for the Raven ASIC, DEC21140 ethernet,
|
||||
16550 serial port, and MK48T59 NVRAM.
|
||||
|
||||
+ Eric Valette <valette@crf.canon.fr> and Emmanuel Raguet <raguet@crf.canon.fr>
|
||||
of Canon CRF - Communication Dept for numerous submissions including
|
||||
remote debugging on the i386 and PowerPC, port of RPC, port of the
|
||||
GoAhead web server, port of RTEMS to the ARM architecture,
|
||||
BSP for the Motorola MCP750 PowerPC board, and numerous improvements
|
||||
to the i386 and PowerPC ports of RTEMS including a new enhanced
|
||||
interrupt management API that reduces interrupt latency while making
|
||||
it easier to support external interrupt controllers.
|
||||
|
||||
+ Mark Bronson <mark@ramix.com> of RAMIX for submitting i960RP
|
||||
support and the rxgen960 board support package.
|
||||
|
||||
+ Joel Sherrill <joel@OARcorp.com> for the BSPs that work with
|
||||
numerous simulators including psim, i960sim, c4xsim, h8sim, armulator,
|
||||
sim68000, and simcpu32. Most of these BSPs work with instruction
|
||||
set simulators in gdb.
|
||||
|
||||
+ Darlene Stewart <Darlene.Stewart@nrc.ca> and Charles Gauthier
|
||||
<Charles.Gauthier@nrc.ca> of the Institute for Information Technology
|
||||
for the National Research Council of Canada submitted the Motorola
|
||||
MBX8XX BSP and consolidated libcpu support for the MPC860 and MPC821
|
||||
into MPC8XX.
|
||||
|
||||
+ John Cotton <jcotton@ualberta.ca> and Charles Gauthier
|
||||
<Charles.Gauthier@nrc.ca> of the Institute for Information
|
||||
Technology for the National Research Council of Canada
|
||||
submitted the RTEMS Cache Manager.
|
||||
|
||||
+ Philip Quaife <philip@qs.co.nz> of Q Solutions ported
|
||||
RTEMS to the Hitachi H8300H. This effort was sponsored by
|
||||
Comnet Technologies Ltd.
|
||||
|
||||
+ Joel Sherrill <joel@OARcorp.com> and Jennifer Averett <jennifer@OARcorp.com>
|
||||
for the Texas Instruments C3x/C4x port and c4xsim BSP that works
|
||||
with the C3x/C4X instruction set simulator in gdb.
|
||||
|
||||
Finally, the RTEMS project would like to thank those who have contributed
|
||||
to the other free software efforts which RTEMS utilizes. The primary RTEMS
|
||||
development environment is from the Free Software Foundation (the GNU
|
||||
|
||||
119
c/ChangeLog
119
c/ChangeLog
@@ -1,119 +0,0 @@
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove references to obsolete files
|
||||
README.DOS REQUIRES PROBLEMS TESTED README UPDATE_HELP.
|
||||
Add TOOL_TARGETS.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-11-07 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TOOL_TARGETS: Updated.
|
||||
* PROBLEMS, README, REQUIRES, TESTED, UPDATE_HELP: Removed
|
||||
since they were obsolete.
|
||||
|
||||
2002-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use mkinstalldirs instead of mkdir.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Fix --enable-rtemsbsp= handling.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Apply RTEMS_CONFIGURE_ARGS_QUOTE.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2002-02-05 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove make from SUBDIRS.
|
||||
* configure.ac: Remove make from CONFIG_SUBDIRS, cosmetics.
|
||||
|
||||
2001-10-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add autom4te.cache for autoconf > 2.52.
|
||||
* configure.in: Remove.
|
||||
* configure.ac: New file, generated from configure.in by autoupdate.
|
||||
|
||||
2001-05-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Corrected the name of the MRM332 BSP.
|
||||
|
||||
2001-05-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Updated the list of BSPs.
|
||||
* TOOLS_TARGETS: Updated the list of tools and object formats.
|
||||
|
||||
2001-03-08 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Use ${MAKE} in message at the end of the
|
||||
configure.in.
|
||||
|
||||
2001-02-03 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: Apply _RTEMS_ADJUST_SRCDIR.
|
||||
|
||||
2000-12-14 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added comment on 68en302 now that there is a network driver.
|
||||
|
||||
2000-11-25 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added jmr3904 entry.
|
||||
|
||||
2000-11-20 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* TESTED: Added new sparc variations (erc32, leon, and Tharsys).
|
||||
|
||||
2000-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.in: catch -enable-rtemsbsp (Allowed by autoconf).
|
||||
Autoconf allows one to pass -enable-*, but this file expected --enable*.
|
||||
|
||||
2000-11-09 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS.
|
||||
|
||||
2000-11-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal.
|
||||
|
||||
2000-10-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Switch to GNU-canonicalization.
|
||||
|
||||
2000-10-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Make sure $SHELL inside of Makefiles does not get
|
||||
propagated to the BSP-subdirectories if a user specified CONFIG_SHELL.
|
||||
|
||||
2000-08-10 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* ChangeLog: New file.
|
||||
@@ -1,41 +0,0 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
ACLOCAL_AMFLAGS = -I ../aclocal
|
||||
|
||||
## NOTE: This Makefile.am is rather fragile to the value of RTEMS_BSP
|
||||
## Esp. make clean and make distclean have unwanted side-effects
|
||||
## if RTEMS_BSP is not properly set up.
|
||||
|
||||
RTEMS_BSP = $(RTEMS_BSP_LIST)
|
||||
## The '.' in SUBDIRS ensures that local make-targets (xxx-am) will be
|
||||
## triggered before $(RTEMS_BSP_LIST) subdirectories are made.
|
||||
SUBDIRS = . $(RTEMS_BSP)
|
||||
|
||||
## Use @RTEMS_BSP_LIST@ here, using $(RTEMS_BSP_LIST) would trigger
|
||||
## this rule for invalid BSPs
|
||||
@RTEMS_BSP_LIST@: src/configure
|
||||
@set fnord $(MAKEFLAGS); amf=$$2; \
|
||||
test -n "${RTEMS_BSP}" && for i in ${RTEMS_BSP}; do \
|
||||
echo "Configuring RTEMS_BSP=$$i"; \
|
||||
$(mkinstalldirs) $$i; \
|
||||
( cd $$i && \
|
||||
CONFIG_SHELL=$(SHELL) RTEMS_BSP=$$i $(rtems_bsp_configure) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) preinstall ) \
|
||||
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
|
||||
done
|
||||
|
||||
## Let all RTEMS' make targets depend on ${RTEMS_BSP}
|
||||
all-local: ${RTEMS_BSP}
|
||||
preinstall-am: ${RTEMS_BSP}
|
||||
depend-am: ${RTEMS_BSP}
|
||||
|
||||
## Pull in extra files intro the distribution
|
||||
EXTRA_DIST = ACKNOWLEDGEMENTS
|
||||
EXTRA_DIST += TOOL_TARGETS
|
||||
|
||||
DIST_SUBDIRS = ${RTEMS_BSP}
|
||||
## -------------------------------------------------------
|
||||
include $(top_srcdir)/../automake/subdirs.am
|
||||
include $(top_srcdir)/../automake/host.am
|
||||
133
c/Makefile.in
Normal file
133
c/Makefile.in
Normal file
@@ -0,0 +1,133 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# top level directory for RTEMS build tree
|
||||
# This Makefile is *not* a good example of a directory Makefile.
|
||||
#
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
prefix = @prefix@
|
||||
exec_prefix = @exec_prefix@
|
||||
bindir = @bindir@
|
||||
libdir = @libdir@
|
||||
includedir = @includedir@
|
||||
target = @target@
|
||||
manext = 1
|
||||
mandir = @mandir@/man$(manext)
|
||||
program_prefix = @program_prefix@
|
||||
VPATH = @srcdir@
|
||||
RTEMS_ROOT = @top_srcdir@
|
||||
PROJECT_ROOT = @PROJECT_ROOT@
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
||||
include $(RTEMS_ROOT)/make/directory.cfg
|
||||
|
||||
SUB_DIRS=build-tools src
|
||||
|
||||
# We only make the install point for the networking header files if needed.
|
||||
LIBNETWORKING_yes_V = lib/include/networking lib/include/networking/sys \
|
||||
lib/include/networking/machine lib/include/networking/rtems \
|
||||
lib/include/networking/vm lib/include/networking/net \
|
||||
lib/include/networking/netinet lib/include/networking/arpa \
|
||||
lib/include/networking/nfs
|
||||
LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
|
||||
|
||||
# We only make the rtems++ install point if it is enabled.
|
||||
LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++
|
||||
LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
|
||||
|
||||
# directories to be created in install point
|
||||
CREATE_DIRS = \
|
||||
lib lib/include lib/include/sys lib/include/rtems \
|
||||
lib/include/rtems/score lib/include/rtems/rtems lib/include/rtems/posix \
|
||||
lib/include/libc lib/include/libc/sys \
|
||||
lib/include/motorola lib/include/zilog \
|
||||
$(LIBNETWORKING) \
|
||||
$(LIBRTEMSCPLUSPLUS) \
|
||||
bin samples \
|
||||
tests tests/screens tests/screens/sptests \
|
||||
tests/screens/psxtests tests/screens/mptests \
|
||||
tests/screens/mptests/node1 tests/screens/mptests/node2 \
|
||||
build-tools update-tools
|
||||
|
||||
# Make all/install must include 'env'
|
||||
# if something is added to TARGET_VARIANTS, then account for it here
|
||||
make_src_makefiles: Makefile.in Makefile
|
||||
-find . -name Makefile \
|
||||
-exec grep -l "^preinstall" {} \; > make_src_makefiles.tmp
|
||||
-grep tools make_src_makefiles.tmp > make_src_makefiles
|
||||
-grep -v tools make_src_makefiles.tmp >> make_src_makefiles
|
||||
-rm make_src_makefiles.tmp
|
||||
|
||||
|
||||
pre_install_src: env make_src_makefiles
|
||||
cd build-tools/scripts; $(MAKE)
|
||||
@echo "Order of preinstall directories"
|
||||
cat make_src_makefiles
|
||||
@echo
|
||||
CURRDIR=`pwd`; \
|
||||
for i in `cat make_src_makefiles` ; do \
|
||||
DIR=`dirname $$i`; \
|
||||
cd $$DIR; \
|
||||
$(MAKE) preinstall; \
|
||||
cd $$CURRDIR; \
|
||||
done
|
||||
all: pre_install_src env
|
||||
debug: pre_install_src env
|
||||
profile: pre_install_src env
|
||||
|
||||
install: all install_files
|
||||
debug_install: env debug install_files
|
||||
profile_install: env profile install_files
|
||||
|
||||
debug_all: debug
|
||||
profile_all: profile
|
||||
|
||||
# top level clean/clobber will delete the install points
|
||||
clean_WRAPUP = $(MAKE) clean_wrapup
|
||||
clobber_WRAPUP = $(MAKE) clean_wrapup
|
||||
|
||||
clean_wrapup: clean_tools clean_dirs clean_modules
|
||||
|
||||
.PHONY: dirs clean_wrapup clean_dirs clean_tools clean_modules env install
|
||||
|
||||
dirs:
|
||||
-$(MKDIR) ${CREATE_DIRS:%=$(PROJECT_ROOT)/$(RTEMS_BSP)/%}
|
||||
if test -d $(PROJECT_ROOT)/c/src/lib/libhwapi; then \
|
||||
(cd $(PROJECT_ROOT)/c/src/lib/libhwapi ; $(MAKE) mkdirs) \
|
||||
fi
|
||||
|
||||
distclean: clobber
|
||||
|
||||
clean_dirs:
|
||||
$(RM) -r $(PROJECT_RELEASE)
|
||||
|
||||
clean_tools:
|
||||
cd build-tools; $(MAKE) clean
|
||||
|
||||
$(PROJECT_ROOT)/$(RTEMS_BSP)/Makefile.inc: $(PROJECT_ROOT)/make/Templates/Makefile.inc
|
||||
echo "RTEMS_BSP = $(RTEMS_BSP)" > $@
|
||||
$(CAT) $< >> $@
|
||||
|
||||
# NOTE: The wildcard on the install should pick up everything except
|
||||
# the tests directory. This significantly minimizes the install size.
|
||||
|
||||
install_files: $(PROJECT_ROOT)/$(RTEMS_BSP)/Makefile.inc
|
||||
-$(MKDIR) $(prefix)/
|
||||
-$(MKDIR) $(prefix)/rtems
|
||||
-$(RM) -rf $(prefix)/rtems/$(RTEMS_BSP)
|
||||
cd ../; tar cf - $(RTEMS_BSP)/[bilsuM]* | \
|
||||
(cd $(prefix)/rtems; tar xpBf - )
|
||||
cd ../make; $(MAKE) RTEMS_BSP=$(RTEMS_BSP) install
|
||||
|
||||
tests:
|
||||
cd src/tests; $(MAKE) all
|
||||
|
||||
debug_tests: debug
|
||||
cd src/tests; $(MAKE) debug
|
||||
|
||||
profile_tests: profile
|
||||
cd src/tests; $(MAKE) profile
|
||||
|
||||
env: $(SRCS) dirs
|
||||
73
c/PROBLEMS
Normal file
73
c/PROBLEMS
Normal file
@@ -0,0 +1,73 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This is the list of outstanding problems in this release.
|
||||
|
||||
+ AMD 29k port is based on a non-GNU toolset.
|
||||
|
||||
+ The test spfatal is out of date and as a result will NOT execute
|
||||
correctly. The addition of POSIX and consequent ongoing initialization
|
||||
reorganization makes it pointless to fix this until the POSIX support
|
||||
is completely in place.
|
||||
|
||||
+ The m68k family has become quite large and an understanding of the
|
||||
compatibility of the peripherals on the various members of the 683xx
|
||||
family would allow someone to designate some of the drivers submitted
|
||||
for the gen683xx BSPs as useful on other members.
|
||||
|
||||
+ The only supported i960 family member is the CA. No support for the
|
||||
floating point support found in other family members is present.
|
||||
This also implies that RTEMS may "think" of something as generic
|
||||
across the i960 family when in fact it is specific to the CA.
|
||||
To make matters worse, the i960 target board owned by the RTEMS Project
|
||||
is now broken and as a result even the i960CA is a "compile only" port.
|
||||
|
||||
+ Some of the BSPs still define RAM_START and RAM_END in the bsp.h file.
|
||||
It is better to define these in the linkcmds file. It is also nice
|
||||
to use the linkcmds file to place overlays for on-board hardware.
|
||||
|
||||
+ 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.
|
||||
|
||||
+ UNIX port notes:
|
||||
|
||||
+ sometimes a stray SIGALRM is reported as spfatal completes.
|
||||
|
||||
+ There are conflicts between the names of native library routines
|
||||
which MUST be used and those in the POSIX support. This must
|
||||
be addressed. 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.
|
||||
|
||||
+ 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.
|
||||
|
||||
+ 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.
|
||||
37
c/README
Normal file
37
c/README
Normal file
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
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
|
||||
The top-level Make command file used to build the C implementation
|
||||
of RTEMS. [RTEMS assumes the use of GNU make.]
|
||||
|
||||
README
|
||||
This file.
|
||||
|
||||
REQUIRES
|
||||
A list of the other tools which are assumed to be installed
|
||||
before RTEMS is built.
|
||||
|
||||
SUPPORT
|
||||
Information on third-party support for RTEMS.
|
||||
|
||||
build-tools
|
||||
This directory contains the source for various utilities
|
||||
needed to build RTEMS.
|
||||
|
||||
make
|
||||
Make command files "included" from those in the source distribution.
|
||||
[RTEMS assumes the use of GNU make.]
|
||||
|
||||
patches
|
||||
This directory contains patches for this release of RTEMS.
|
||||
|
||||
src
|
||||
This directory contains the source code for the C
|
||||
implementation of RTEMS as well as the test suites, sample
|
||||
applications, Board Support Packages, Device Drivers, and
|
||||
support libraries.
|
||||
72
c/README.DOS
Normal file
72
c/README.DOS
Normal file
@@ -0,0 +1,72 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
tools
|
||||
-----
|
||||
The RTEMS build procedure was designed with the capabilitiies of a
|
||||
typical UNIX computer in mind. Making this procedure work under MS-DOS
|
||||
is not that difficult but requires that MS-DOS versions of a number
|
||||
of UNIX utilities be acquired and installed. For time being, the
|
||||
best advice which can be offered is:
|
||||
|
||||
"This is a nasty question, since when I first set up the DOS machine
|
||||
(long before I acquired RTEMS) I ftp'd a bunch of different tool
|
||||
sets (all from SimTel), and then picked individual tools from each
|
||||
set that worked best for me. The djgpp tools are probably a good
|
||||
starting point, especially to get a working sed. Next the gnu tools
|
||||
in SimTel/msdos/gnuish, and then others. Sorry I can't give you more
|
||||
specific names. The only real requirement for the tools is that
|
||||
they *must* accept redirection of command line arguments from a file
|
||||
using the '@' notation (i.e., "mkdir @/tmp/args" reads the argument
|
||||
list from file /tmp/args)."
|
||||
|
||||
There is a special version (source and executable) of GNU make 3.71 for
|
||||
MS-DOS which minimizes the amount of memory used by recursive makes
|
||||
available on lancelot.gcs.redstone.army.mil in the file:
|
||||
|
||||
/pub/msdos/gmake371.tgz
|
||||
|
||||
Many of the RTEMS specific utilities used in the build and installation
|
||||
are UNIX shell scripts. On a UNIX host, these are normally interpreted
|
||||
by the Bourne Again Shell (BASH) or the Korn Shell (ksh). Most of these
|
||||
scripts can be successfully executed with the following shell from the
|
||||
MS-DOS archives from Simtel.
|
||||
|
||||
SimTel/msdos/sysutil/ms_sh23b.zip
|
||||
|
||||
Please be sure to use the 16-bit version. The Simtel archives are
|
||||
available from ftp.cdrom.com as well as a number of mirror sites.
|
||||
|
||||
go32
|
||||
----
|
||||
go32 dumps the stack when a program seg-faults, and if this happens while
|
||||
on an alternate stack an infinite loop can ensue. Setting the environment
|
||||
variable GO32="core /tmp/core" will prevent more than 20 lines or
|
||||
so of stack information from being dumped after a crash, and the output
|
||||
will go to a file rather than the screen.
|
||||
|
||||
The go32 debuggers get confused by the relocated stacks used by tasks,
|
||||
and tend to crash when variables are inspected.
|
||||
|
||||
djgcc include files
|
||||
-------------------
|
||||
In general, we use RTEMS include files because these contain the proper
|
||||
declarations for the libc, and in particular, the stdio functions.
|
||||
When calling go32-specific functions it is necessary to include some
|
||||
djgpp include files, as well. Unfortunately, there are some disagreements
|
||||
between RTEMS and djgpp as to how certain functions and types are
|
||||
declared. In these cases, the RTEMS source have been modified to
|
||||
special-case the differences.
|
||||
|
||||
other
|
||||
-----
|
||||
* Pressing F12 will immediately abort the program.
|
||||
See lib/libbsp/i386/go32/console/inch.c.
|
||||
|
||||
* lib/libbsp/i386/go32/timer uses the on-board timer chip by default,
|
||||
which has a resolution of about 1 microsecond. However, if executing
|
||||
on a Pentium processor you can use the on-chip 64-bit cycle counter,
|
||||
which counts at whatever clock rate your processor runs at. To enable
|
||||
this, set RTEMS_CPU_MODEL=pentium in make/custom/go32.cfg.
|
||||
|
||||
13
c/REQUIRES
Normal file
13
c/REQUIRES
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
1. The installation procedure assumes that "gcc" is installed
|
||||
and is in your path for the installation of local tools.
|
||||
|
||||
2. gcc 2.7.2 with crossgcc patches (ftp.cygnus.com:/pub/embedded/crossgcc)
|
||||
|
||||
3. binutils 2.6 with crossgcc patches.
|
||||
|
||||
4. newlib with RTEMS configurations.
|
||||
|
||||
74
c/TESTED
Normal file
74
c/TESTED
Normal file
@@ -0,0 +1,74 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
This file is current for the 4.0.0 release.
|
||||
|
||||
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 4.2 as the host environment:
|
||||
|
||||
CPU CPU
|
||||
FAMILY MODEL TARGET SUITES
|
||||
======== ========= ======================= ===============
|
||||
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 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 ix86 bare PC (pc386) (note 1, 6)
|
||||
i386 i486 DJGPP/PC-AT (note 7)
|
||||
i386 pentium DJGPP/PC-AT (note 7)
|
||||
i960 i960ca Cyclone CVME961 (note 4)
|
||||
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)
|
||||
sh sh7032 generic sh1 (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)
|
||||
|
||||
NOTES:
|
||||
|
||||
"NOT TESTED" indicates that this was not tested in the testing cycle
|
||||
immediately preceding the snapshot.
|
||||
|
||||
(1) Target board is not owned by RTEMS Project. The target is known
|
||||
to compile and link with all appropriate tests successfully.
|
||||
If the target does not support multiprocessor configurations, then
|
||||
"ALL TESTS" does not include the multiprocessor tests.
|
||||
|
||||
(2) RTEMS Project cannot internally compile or test this target.
|
||||
As of 4.0.0, 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.
|
||||
@@ -1,65 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
The following are targets for the GNU tools (gcc, binutils, newlib, and gdb)
|
||||
that are for RTEMS, their object format, and status notes
|
||||
|
||||
arm:
|
||||
arm-rtems ELF
|
||||
|
||||
c4x:
|
||||
c4x-rtems COFF Requires patches
|
||||
|
||||
hppa:
|
||||
hppa1.1-rtems ELF
|
||||
|
||||
|
||||
h8300:
|
||||
h8300-rtems COFF
|
||||
|
||||
i386:
|
||||
i386-rtems ELF
|
||||
i386-rtemself ELF
|
||||
i386-rtemscoff COFF Obsoleted
|
||||
i386-go32-rtems COFF Obsoleted - no supporting BSP
|
||||
|
||||
i960:
|
||||
i960-rtems COFF Switch to ELF when possible
|
||||
i960-rtemscoff COFF
|
||||
i960-rtemself ELF Not currently in any tools
|
||||
|
||||
NOTE: As of October 2002, i960 has been deprecated in gdb and gcc.
|
||||
|
||||
m68k:
|
||||
m68k-rtems COFF Switch to ELF when possible
|
||||
m68k-rtemscoff COFF
|
||||
m68k-rtemself ELF Not in all tools
|
||||
|
||||
NOTE: m68k-elf is in post egcs 1.1.2 snapshots.
|
||||
|
||||
mips:
|
||||
mips*-rtems ELF Big endian
|
||||
mips*el-rtems ELF Little endian
|
||||
|
||||
NOTE: Little endian configuration is not in all tools and
|
||||
is untested for RTEMS itself.
|
||||
|
||||
powerpc:
|
||||
powerpc-rtems ELF
|
||||
powerpcle-rtems ELF Little endian
|
||||
|
||||
NOTE: Little endian configuration is not in all tools and
|
||||
is untested for RTEMS itself.
|
||||
|
||||
sh:
|
||||
sh-rtems COFF
|
||||
sh-rtemscoff COFF
|
||||
sh-rtemself ELF
|
||||
|
||||
NOTE: ELF is not completely stable for SH yet.
|
||||
|
||||
sparc:
|
||||
sparc-rtems ELF
|
||||
sparc-rtemself ELF
|
||||
sparc-rtemsaout A.OUT
|
||||
52
c/UPDATE_HELP
Normal file
52
c/UPDATE_HELP
Normal file
@@ -0,0 +1,52 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Between RTEMS 3.1.0 and 3.2.0, every RTEMS defined symbol made visible
|
||||
was renamed. This document describes the change and the tools provided
|
||||
to assist you in updating your RTEMS 3.1.0 application.
|
||||
|
||||
[NOTE: This change was not included in snapshots prior to 3.1.15.]
|
||||
|
||||
DESCRIPTION OF NAME CHANGES:
|
||||
============================
|
||||
|
||||
The primary change was the addition of the prefix "rtems_" or "RTEMS_" to
|
||||
EVERY user visible RTEMS provided constant and routine. The primary
|
||||
factor in the decision to make such a sweeping change was conflicts
|
||||
between the the RTEMS and POSIX API's.
|
||||
|
||||
|
||||
TO UPDATE YOUR APPLICATION:
|
||||
===========================
|
||||
|
||||
The update script requires that Perl be installed on your computer.
|
||||
It has only been tested with Perl 5.x.
|
||||
|
||||
After RTEMS has been built, in the directory "$r/<BSP>/update_tools", will
|
||||
be a set of tools to aid in making the application source changes necessary
|
||||
to address (hopefully) all of the name changes in the RTEMS API between
|
||||
releases 3.1.0 and 3.2.0.
|
||||
|
||||
The update shell script is the only executable which is invoked by the
|
||||
user directly. The word-replace Perl script is invoked by the update
|
||||
shell script.
|
||||
|
||||
WARNING: These tools modify the files IN PLACE!!! Backup your
|
||||
source before using these tools.
|
||||
|
||||
To udpate your application, change directories to the top of your application
|
||||
source tree and execute the update script. It should be something similar
|
||||
to the following:
|
||||
|
||||
cd MY_APP
|
||||
$r/<BSP>/update-tools/update
|
||||
|
||||
The update script will ask if you have backed up your source code before
|
||||
beginning the update process. While operating on files, it will print
|
||||
the name of each file and a dot for each change made to the source file.
|
||||
|
||||
NOTE: These scripts do not attempt to address changes in calling
|
||||
sequences. After the script has run, you will need to update
|
||||
calls to rtems_clock_get(), rtems_timer_fire_after(), and
|
||||
rtems_timer_fire_when() by hand.
|
||||
14
c/build-tools/Makefile.in
Normal file
14
c/build-tools/Makefile.in
Normal file
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
RTEMS_ROOT = @top_srcdir@
|
||||
PROJECT_ROOT = @PROJECT_ROOT@
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
||||
include $(RTEMS_ROOT)/make/directory.cfg
|
||||
|
||||
SUB_DIRS=os scripts src
|
||||
14
c/build-tools/os/Makefile.in
Normal file
14
c/build-tools/os/Makefile.in
Normal file
@@ -0,0 +1,14 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
@SET_MAKE@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
RTEMS_ROOT = @top_srcdir@
|
||||
PROJECT_ROOT = @PROJECT_ROOT@
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
|
||||
include $(RTEMS_ROOT)/make/directory.cfg
|
||||
|
||||
SUB_DIRS=$(wildcard $(RTEMS_HOST))
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user