annotate README.host @ 947:cf8d8ca2ed1d

* host/rawether.c (tap_init): Set the persistent flag on the tap device if requested by the user. This allows dhcpd and radvd to keep running on the tap device between invocations of the synth target. * doc/syntheth.sgml: Documentation for the persistent option.
author asl
date Tue, 15 Apr 2003 10:31:21 +0000
parents c2d1fd823f09
children 8f5c64d663f7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
1 eCos Host-side Software
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
2 =======================
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
3
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
4 This README file only describes the eCos host-side software. For
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
5 details of the eCos target-side software or the required toolchains,
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
6 please see other documentation. A good starting point is
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
7 http://sources.redhat.com/ecos
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
8
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
9 There are two categories of host-side software. The host subdirectory
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
10 contains generic software, primarily related to the eCos configuration
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
11 technology. All eCos users will need to use some of this technology to
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
12 configure and build eCos, either using pre-built binaries or by
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
13 building the host-side software from source. The generic software
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
14 should be portable to a wide range of host platforms.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
15
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
16 There is also package-specific host-side software. Much of this is I/O
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
17 related. For example the generic USB-slave package contains some
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
18 programs related to testing; a test application is run on a target
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
19 with suitable USB slave-side hardware, and needs to interact with
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
20 another program running on the USB host; the latter is
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
21 package-specific host-side software and can be found in the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
22 subdirectory packages/io/usb/slave. Code like this may have
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
23 significant platform dependencies and may only work on a single
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
24 platform or on a small number of platforms. There may also be
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
25 special requirements, for example it may be necessary to install some
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
26 programs suid root so that they have appropriate access to the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
27 hardware.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
28
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
29
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
30 The host subdirectory includes the following:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
31
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
32 infra/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
33 This is an implementation of the eCos infrastructure that can be
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
34 used on the host-side, and provides assertion, tracing and
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
35 testcase support.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
36
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
37 NOTE: the eCos infrastructure facilities are not especially
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
38 well-suited to host-side development, in particular they are not
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
39 C++-oriented. There are plans to remove the current infrastructure
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
40 completely and replace it with something more suitable. People
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
41 planning new projects should be aware of this, and may wish to
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
42 avoid using the current infrastructure.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
43
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
44 libcdl/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
45 The CDL library lies at the heart of the eCos configuration
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
46 technology.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
47
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
48 tools/configtool/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
49 The sources to the various configuration tools can be found here.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
50
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
51 tools/configtool/common/common/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
52 Contains sources related to makefile generation, shared by the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
53 command line and graphical tools.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
54
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
55 tools/configtool/standalone/common/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
56 Contains the command line ecosconfig tool.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
57
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
58 tools/configtool/standalone/wxwin/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
59 Contains sources for the wxWindows-based, Linux and Windows graphical
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
60 configuration tool. The Windows version can currently only be
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
61 built with Visual C++, not with cygwin g++.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
62
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
63 tools/configtool/common/win32/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
64 tools/configtool/standalone/win32/
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
65 Contains sources for the older, MFC-based, Windows-only graphical
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
66 configuration tool. Again this can currently only be built with
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
67 Visual C++.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
68
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
69 The two graphical configuration tools have their own build procedures,
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
70 described in tools/configtool/standalone/wxwin/ReadMe and
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
71 tools/configtool/standalone/win32/ReadMe respectively.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
72
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
73 Package-specific host-side code lives in the host subdirectory of the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
74 appropriate package, for example packages/io/usb/slave/<version>/host.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
75 Most packages only provide target-side code and hence will not have a
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
76 host subdirectory. Users can install various packages from a variety
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
77 of sources, and where a package does have host-side software the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
78 package documentation should be consulted for further information.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
79
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
80
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
81 Installing on Linux, Other Unix Systems, and Cygwin
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
82 ---------------------------------------------------
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
83
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
84 Both generic host-side software (infra, libcdl and ecosconfig) and
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
85 package-specific software can be built with the conventional
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
86 "configure/make/make install" sequence. However the code does not
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
87 conform fully to GNU coding standards so some operations such as "make
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
88 dist" are not supported. There is limited support for DejaGnu-based
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
89 testing.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
90
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
91 Much of the host-side software has a dependency on Tcl. This is not
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
92 supplied with the sources since many users will already have a
345
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
93 suitable installation, for example it is shipped as standard with all
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
94 major Linux distributions. The generic host-side software should work
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
95 with any release of Tcl from 8.0 onwards. The package-specific
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
96 software requires a more recent version, 8.3 or later. If no suitable
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
97 Tcl installation is available then the configure step will still
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
98 succeed but some of the package-specific software will not be built.
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
99
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
100 There are two main approaches to building the host-side software:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
101
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
102 1) build the generic and the package-specific code in one build tree.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
103 This uses the top-level configure script. The script automatically
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
104 invokes the configure script in the main host subdirectory. In
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
105 addition it searches the packages hierarchy for host subdirectories
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
106 containing their own configure scripts and will invoke those.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
107
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
108 Note: the search for host subdirectories happens during configure
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
109 time, not during the make. If new packages with host-side code are
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
110 added to the repository then it will be necessary to re-run the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
111 toplevel configure script.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
112
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
113 2) build the generic code in one build tree, using the configure
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
114 script in the toplevel's host subdirectory. Then build some or all
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
115 of the package-specific code in separate build trees, using the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
116 configure scripts in each package's host subdirectory.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
117
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
118 The first approach is generally simpler. However some of the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
119 package-specific code requires special installation, for example a
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
120 program may have to be installed suid root so that it has the right
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
121 privileges to access hardware, and hence the "make install" step has
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
122 to be run by the superuser. Also some of the package-specific code is
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
123 rather specialized and may be of no interest to many users. For
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
124 example, the USB testing code is only useful when developing
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
125 USB-based applications. Hence some users may prefer the second
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
126 approach, building just the generic code and a subset of the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
127 package-specific code.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
128
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
129 It is necessary to use a separate build tree rather than build
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
130 directly in the source tree. This is enforced by the configure scripts.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
131
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
132 $ mkdir build
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
133 $ cd build
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
134
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
135 The next step is to run the desired configure script. To build all
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
136 the host-side software this means the toplevel configure script:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
137
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
138 $ <path>/configure <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
139
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
140 Alternatively to build just the generic host-side software, use the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
141 configure script in the host subdirectory.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
142
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
143 $ mkdir host
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
144 $ cd host
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
145 $ <path>/host/configure <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
146
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
147 Or, to build just one package's host-side code:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
148
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
149 $ mkdir -p packages/io/usb/slave/current/host
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
150 $ cd packages/io/usb/slave/current/host
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
151 $ <path>/packages/io/usb/slave/current/host/configure <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
152
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
153 (It is not actually necessary to use the same directory structure in
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
154 the build tree as in the source tree, but doing so can avoid
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
155 confusion).
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
156
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
157 A list of all the command-line options can be obtained by running
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
158 "configure --help". The most important ones are as follows:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
159
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
160 1) --prefix. This can be used to specify the location of the install
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
161 tree, defaulting to /usr/local, so the ecosconfig program ends up
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
162 in /usr/local/bin/ecosconfig and the CDL library ends up in
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
163 /usr/local/lib/libcdl.a. If an alternative location is preferred
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
164 this can be specified with --prefix, for example:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
165
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
166 $ <path>/configure --prefix=/usr/local/ecos <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
167
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
168 2) --enable-debug. By default all assertions and tracing are disabled.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
169 When debugging any of the generic host-side software these should
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
170 be enabled. Some package-specific code may not have any extra
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
171 debug support, in which case --enable-debug would be ignored.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
172
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
173 $ <path>/configure --enable-debug
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
174
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
175 It is also possible to control most of the assertion and tracing
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
176 macros at a finer grain. This is intended mainly for use by the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
177 developers.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
178
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
179 --disable-asserts disable all assertions
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
180 --disable-preconditions disable a subset of the assertions
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
181 --disable-postconditions disable a subset of the assertions
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
182 --disable-invariants disable a subset of the assertions
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
183 --disable-loopinvariants disable a subset of the assertions
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
184 --disable-tracing disable tracing
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
185 --disable-fntracing disable function entry/exit tracing
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
186
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
187 3) --with-tcl=<path>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
188 --with-tcl-version=<number>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
189
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
190 The host-side tools have a dependency on Tcl, which is not supplied
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
191 with the sources because many people will already have a suitable
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
192 installation. Specifically it is necessary to have the header file
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
193 tcl.h and appropriate libraries such that -ltcl will work - this
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
194 can involve either static or shared libraries. Some tools may require
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
195 Tk as well as Tcl.
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
196
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
197 Unfortunately there is considerable variation in Tcl installations.
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
198 In theory all Tcl installations have a file tclConfig.sh which
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
199 defines exactly how to compile and link code that uses Tcl, and Tk
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
200 has a similar file tkConfig.sh. The eCos configure scripts look for
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
201 these files, first in $(prefix)/lib, then in /usr/lib. If the system
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
202 already has a Tcl installation in /usr then the configure script will
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
203 automatically find /usr/lib/tclConfig.sh and it is not necessary
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
204 to pass additional options when configuring the eCos host-side
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
205 software. Alternatively, if for example you have installed a more
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
206 recent version of Tcl/Tk in the same place that you want to install the
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
207 eCos software, e.g. /usr/local, then $(prefix)/lib/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
208 will be read in.
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
209
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
210 It is also possible that a more recent version of Tcl has been installed
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
211 in a different location. For example, you may wish to install the eCos host
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
212 tools in /opt/ecos but use a version of Tcl installed in /usr/local. The
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
213 eCos configure scripts need to be told explicitly where to look for
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
214 the Tcl:
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
215
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
216 $ <path>/configure --with-tcl=/usr/local ...
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
217
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
218 Some systems, for example Debian Linux 3.0, do not install tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
219 in /usr/lib because that makes it more difficult to have several different
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
220 versions of Tcl installed at the same time. Instead tclConfig.sh is found
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
221 in a versioned directory such as /usr/lib/tcl8.3. Since several versions
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
222 may be installed the desired one must be specified explicitly.
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
223
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
224 $ <path>/configure --with-tcl-version=8.3
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
225
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
226 The --with-tcl and --with-tcl-version options are combined to give a search path:
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
227
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
228 <with>/lib/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
229 <with>/lib/tcl<vsn>/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
230 <prefix>/lib/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
231 <prefix>/lib/tcl<vsn>/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
232 /usr/lib/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
233 /usr/lib/tcl<vsn>/tclConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
234
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
235 If tclConfig.sh cannot be found in any of these places then it is assumed
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
236 that Tcl has not been properly installed and the eCos configure script will
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
237 fail. The --with-tcl and --with-tcl-version are also used to give a search
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
238 path for tkConfig.sh
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
239
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
240 <with>/lib/tkConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
241 <with>/lib/tk<vsn>/tkConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
242 <prefix>/lib/tkConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
243 <prefix>/lib/tk<vsn>/tkConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
244 /usr/lib/tkConfig.sh
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
245 /usr/lib/tk<vsn>/tkConfig.sh
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
246
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
247 Again, the configure scripts must be able to find tkConfig.sh
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
248
595
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
249 Once tclConfig.sh and tkConfig.sh have been found and read in, the eCos
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
250 configure scripts should have all the information needed to compile and
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
251 link code that uses Tcl. First the location of key headers such as
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
252 <tcl.h> is needed. A tclConfig.sh file may define TCL_INC_DIR to give
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
253 a specific location, otherwise the header files should be in
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
254 $(TCL_PREFIX)/include. If <tcl.h> cannot be found then the eCos configure
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
255 scripts will fail.
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
256
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
257 Next it is necessary to work out how to link applications with Tcl. This
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
258 information should be provided by a tclConfig.sh variable TCL_LIB_SPEC.
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
259 Unfortunately not all Tcl installations set this, for example the cygwin
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
260 Tcl 8.4 release. If TCL_LIB_SPEC is not defined then instead the
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
261 configure script will look for a library libtcl<vsn>.a, where <vsn> is
c2d1fd823f09 Update autoconf macro for Tcl, and regenerate affected files
bartv
parents: 491
diff changeset
262 specified using --with-tcl-version, then for a library libtcl.a
345
3f4258400ba5 Fix host-side configury problems which can occur if you are not using
bartv
parents: 290
diff changeset
263
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
264 Following the configure step the build tree should be set up
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
265 correctly. All that remains is the actual build and install:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
266
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
267 $ make
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
268 $ make install
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
269
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
270 This should result in an ecosconfig executable, plus appropriate
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
271 libraries and header files. If the install prefix is a system
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
272 location, for example /usr/local/, then "make install" will normally
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
273 require root privileges. Also some of the package-specific software
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
274 has special installation requirements, for example programs that need
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
275 to be installed suid root, and this will also need root privileges.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
276
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
277
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
278 Installing with Visual C++
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
279 --------------------------
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
280
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
281 Under Windows it is possible to build the generic host-side software
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
282 (infra, libcdl and ecosconfig) with Visual C++ but this is deprecated.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
283 Building with g++ under cygwin is preferred.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
284
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
285 It is still necessary to run the configure script and a suitable make
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
286 utility. That requires a shell and a Unix-like environment, as
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
287 provided by cygwin. The Visual C++ compiler cl.exe needs to be on the
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
288 shell's search path, and some environment variables such as INCLUDE
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
289 and LIB may need to be set to point at the Visual C++ installation -
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
290 the details may vary depending on the version of the compiler. Then
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
291 the configure command should be run like this:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
292
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
293 $ CC=cl CXX=cl <path>/host/configure <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
294
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
295 Note that the path should be a cygwin path: cygwin mount points are
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
296 accepted and forward slashes should be used. The various configure
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
297 scripts now detect that Visual C++ should be used, and adapt
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
298 accordingly.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
299
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
300 Depending on what cygwin mount points are set up, /usr/local may or
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
301 may not be an appropriate install location for VC++ applications.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
302 If not, the install location should be specified with --prefix:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
303
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
304 $ CC=cl CXX=cl <path>/configure --prefix=<install-path> <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
305
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
306 It is also necessary to use the right version of Tcl. For a VC++ build
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
307 the cygwin release of Tcl should not be used. Instead a suitable
491
def85e4d96d2 http://dev.scriptics.com/ is now http://www.tcl.tk/
jlarmour
parents: 345
diff changeset
308 prebuilt Tcl package can be obtained from http://www.tcl.tk/.
290
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
309 It is necessary to tell the configure script where this has been
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
310 installed, for example:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
311
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
312 $ CC=cl CXX=cl <path>/configure --prefix=<install-path> \
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
313 --with-tcl=/cygdrive/d/local/scriptics/Tcl/tcl8.1 <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
314
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
315 The library name will be of the form tcl81.lib, and there will not be
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
316 a symbolic link from tcl.lib to the appropriate version. It will be
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
317 necessary to specify the Tcl version explicitly since the default
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
318 version is currently 8.0.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
319
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
320 $ CC=cl CXX=cl <path>/configure --prefix=<install-path> \
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
321 --with-tcl=/d/local/scriptics/Tcl/tcl8.1 --with-tcl-version=81 <args>
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
322
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
323 Following a successful configure, the tools can be built and installed
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
324 in the normal fashion:
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
325
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
326 $ make
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
327 $ make install
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
328
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
329
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
330 More Information
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
331 ================
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
332
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
333 Please see the eCos web site, http://sources.redhat.com/ecos/, for
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
334 further details. This includes the FAQ, a form for reporting problems,
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
335 and details of the various mailing lists
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
336 (http://sources.redhat.com/ecos/intouch.html) At the time of writing
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
337 there are no separate mailing lists for the eCos host-side sources,
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
338 the main mailing list ecos-discuss@sources.redhat.com should be used
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
339 instead.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
340
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
341 //####COPYRIGHTBEGIN####
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
342 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
343 //----------------------------------------------------------------------------
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
344 // Copyright (C) 2002 Bart Veer
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
345 // Copyright (C) 2000, 2001 Red Hat, Inc.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
346 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
347 // This file is part of the eCos host tools.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
348 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
349 // This program is free software; you can redistribute it and/or modify it
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
350 // under the terms of the GNU General Public License as published by the Free
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
351 // Software Foundation; either version 2 of the License, or (at your option)
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
352 // any later version.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
353 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
354 // This program is distributed in the hope that it will be useful, but WITHOUT
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
355 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
356 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
357 // more details.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
358 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
359 // You should have received a copy of the GNU General Public License along with
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
360 // this program; if not, write to the Free Software Foundation, Inc.,
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
361 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
362 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
363 // ----------------------------------------------------------------------------
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
364 //
3ecf91f6663a Update instructions for building the host-side software
bartv
parents:
diff changeset
365 //####COPYRIGHTEND####