Mercurial > nand-ecoscentric
diff host/README @ 76:435cced73e2f ecos-v1_3_1-release
eCos v1.3.1 merged from eCos master repository on 2000-03-27-23:22:51-BST
| author | jlarmour |
|---|---|
| date | Tue, 28 Mar 2000 14:10:45 +0000 |
| parents | |
| children | 518f42066aba |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/host/README @@ -0,0 +1,274 @@ + eCos Host-side Software + ======================= + +This directory contains the eCos host-side sources. This includes +libcdl, the CDL library which underlies the whole eCos configuration +system, and both the command-line and graphical configuration tools. + +The eCos host-side software is free software, released under the GNU +General Public License. See the file COPYING for further details. + + +Contents +======== + +The host-side sources include the following: + +infra/ + This is an implementation of the eCos infrastructure that can be + used on the host-side, and provides assertion, tracing and + testcase support. + + NOTE: the eCos infrastructure facilities are not especially + well-suited to host-side development, in particular they are not + C++-oriented. There are plans to remove the current infrastructure + completely and replace it with something more suitable. People + planning new projects should be aware of this, and may wish to + avoid using the current infrastructure. + +libcdl/ + The CDL library lies at the heart of the eCos configuration system. + +tools/configtool/ + The sources to the various configuration tools can be found here. + In particular the command line ecosconfig tool lives in + tools/configtool/standalone/common; the sources related to + makefile generation currently live in + tools/configtool/common/common, and the graphical configuration + tool is spread over various directories including + tools/configtool/common/win32 and tools/configtool/standalone/win32 + +There are various other sub-directories related to the admin tool, +testing support, and so on. + +It should be noted that the eCos host-side software is still +undergoing rapid development, and the sources are subject to change +and reorganization at any time. + +Much of the code is cross-platform. The obvious exception is the +graphical configuration tool which, at the time of writing, can only +be built for Windows hosts and requires Visual C++. It should be +possible to build the underlying libraries and the command-line +configuration tool using gcc/g++ on any Unix platform. A Unix version +of the graphical configuration tool is planned but not yet available. + +More Information +================ + +Please see the eCos web site, http://sourceware.cygnus.com/ecos/, for +further details. This includes the FAQ, a form for reporting problems, +and details of the various mailing lists +(http://sourceware.cygnus.com/ecos/intouch.html) +At the time of writing there are no separate mailing lists for the +eCos host-side sources, the main mailing list +ecos-discuss@sourceware.cygnus.com should be used instead. + + +Installation +============ + +Test builds of the eCos host-side generally happen on the following +platforms: Red Hat Linux 6.1 and later; Windows NT using cygwin 1.0 or +later; and Windows NT using VC++ 6.0. The graphical configuration tool +can only be built with VC++ and involves a Developer Studio project, +see tools/configtool/standalone/win32/Configtool.dsw. The other +software can be built using the conventional "configure/make/make +install" steps. It should be noted that the eCos host-side software is +not fully auto-confiscated, and some facilities like "make dist" will +not work. Also, the existing DejaGnu-based testing facilities are +minimal, only intended as a starting point, and may not work on all +platforms. + +The eCos host-side software has a dependency on Tcl. This is not +supplied with the sources, because many users will already have a +suitable installation. Any release of Tcl from 8.0 onwards should be +usable. There are some configure command-line options related to the +Tcl installation, as described below. + +The instructions for installing under Linux are given first. +Installation on other platforms is very similar, so only the +differences will be noted. + +Installing on Linux +=================== + +It is strongly recommended that a separate build tree is used, as +opposed to building directly in the source tree. The latter has not +been tested and, given some of the build steps, may not work very +well. + + $ mkdir build + $ cd build + +The next step is to run the toplevel configure script. It might be +possible to configure and build individual directories within the +host-side hierarchy, but again this has not been tested. + + $ <path>/configure <args> + +A list of the all the command-line options can be obtained by running +"configure --help". The most important ones are as follows: + +1) --prefix. This can be used to specify the location of the install + tree, defaulting to /usr/local, so the ecosconfig program ends up + in /usr/local/bin/ecosconfig and the CDL library ends up in + /usr/local/lib/libcdl.a. If an alternative location is preferred + this can be specified with --prefix, for example: + + $ <path>/configure --prefix=/usr/local/ecos <args> + +2) --enable-debug. By default all assertions and tracing are disabled. + When debugging any of the host-side software these must be enabled. + + $ <path>/configure --enable-debug + + It is also possible to control most of the assertion and tracing + macros at a finer grain. This is likely to be useful only to the + main developers: + + --disable-asserts disable all assertions + --disable-preconditions disable a subset of the assertions + --disable-postconditions disable a subset of the assertions + --disable-invariants disable a subset of the assertions + --disable-loopinvariants disable a subset of the assertions + --disable-tracing disable tracing + --disable-fntracing disable function entry/exit tracing + +3) --with-tcl=<path> and --with-tcl-version=<number> + The host-side tools have a dependency on Tcl, which is not supplied + with the sources because many people will already have a suitable + installation. Specifically it is necessary to have the header file + tcl.h and appropriate libraries such that -ltcl will work - this + can involve either static or shared libraries. + + By default the configure script will assume that there is a + suitable Tcl installation in the install location, so if there is + no --prefix argument then it will look for /usr/local/include/tcl.h + and it will add -L/usr/local/lib to the library search path. If + Tcl is installed elsewhere then this can be specified with a + --with-tcl option. For example, if the default installation in + /usr should be used then the following configure option is + appropriate: + + $ <path>/configure --with-tcl=/usr <args> + + It is possible to have multiple versions of Tcl installed, for + example libtcl8.0.a, libtcl8.1.a, and so on. Typically linking with + -ltcl will result in the latest version being used. It is possible + to specify a different version using --with-tcl-version, e.g.: + + $ <path>configure --with-tcl=/usr/local/scriptics --with-tcl-version=8.1 <args> + +Following the configure step the build tree should be set up +correctly. All that remains is the actual build and install: + + $ make + $ make install + +This should result in an ecosconfig executable, plus appropriate +libraries and header files. + + +Installing on cygwin +==================== + +Installing under cygwin requires essentially the same steps as +under Linux. It is more likely that a suitable --prefix option will +have to be used, and that the location of the Tcl installation needs +to be specified with --with-tcl. However appropriate use of cygwin +mount points may avoid some of these problems. If the full path to +the configure script contains spaces, then the short form of the path +should be used when invoking configure. + +One issue to be aware of is the naming convention for the Tcl library. +On a Unix system this will typically be called libtcl8.0.a (adjusted +according to the version number), with a symbolic link from libtcl.a +to the most recent version. Under cygwin the equivalent library is +called libtcl80.a, and symbolic links are not used. For a standard +cygwin 1.0 installation the configure script knows how to pick up the +appropriate library, but if a more recent version of Tcl has been +installed then due care has to be taken with the --with-tcl-version +option. + + +Installing on NT with VC++ +========================== + +It is possible to build both the graphical configuration tool and the +ecosconfig command line tool using a Developer Studio project, +tools/ecosconfig/standalone/win32/Configtool.dsw + +It is also possible to build the command line tool and the various +libraries using the configure script. At the time of writing the +graphical configuration tool cannot yet be built that way. This still +requires a cygwin installation because it needs the bash shell and GNU +make. First, it is necessary to tell the configure script to use a +compiler other than gcc: + + $ mkdir build + $ cd build + $ CC=cl CXX=cl <path>/configure <args> + +The configure script will do the right thing if VC++ is specified in +this way. + +It is likely that /usr/local will be an inappropriate install location +for VC++ applications, so an alternative prefix needs to be specified: + + $ CC=cl CXX=cl <path>/configure --prefix=<install-path> <args> + +Note that the install path should be a cygwin path, i.e. cygwin mount +points are accepted and forward slashes should be used. + +It is also necessary to use the right version of Tcl. For a VC++ build +the cygwin release of Tcl should not be used. Instead a suitable +prebuilt Tcl package can be obtained from http://www.scriptics.com/. +It is necessary to tell the configure script where this has been +installed, for example: + + $ CC=cl CXX=cl <path>/configure --prefix=<install-path> \ + --with-tcl=/d/local/scriptics/Tcl/tcl8.1 <args> + +The library name will be of the form tcl81.lib, and there will not be +a symbolic link from tcl.lib to the appropriate version. Typically it +will be necessary to specify the Tcl version explicitly: + + $ CC=cl CXX=cl <path>/configure --prefix=<install-path> \ + --with-tcl=/d/local/scriptics/Tcl/tcl8.1 --with-tcl-version=81 <args> + +Following a successful configure, the tools can be built and installed +in the normal fashion: + + $ make + $ make install + +This assumes that the cl.exe executable is on the shell's search path, +and that appropriate environment variables such as INCLUDE and LIB are +set up correctly. The VC++ documentation should be consulted for +further information. + + +//####COPYRIGHTBEGIN#### +// +// ---------------------------------------------------------------------------- +// Copyright (C) 2000 Red Hat, Inc. +// +// This file is part of the eCos host tools. +// +// This program is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2 of the License, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, but WITHOUT +// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +// more details. +// +// You should have received a copy of the GNU General Public License along with +// this program; if not, write to the Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +// +// ---------------------------------------------------------------------------- +// +//####COPYRIGHTEND####
