1 Installation instructions
3 By Julio Merino, The NetBSD Foundation
11 3. Regenerating the build system
13 4. General build procedure
15 5. Configuration flags
17 6. Post-installation steps
21 ATF uses the GNU Automake, GNU Autoconf and GNU Libtool utilities as its
22 build system. These are used only when compiling the application from the
23 source code package. If you want to install ATF from a binary package, you
24 do not need to read this document.
35 Or alternatively, install as a regular user into your home directory:
37 $ ./configure --prefix ~/local
44 To build and use ATF successfully you need:
46 * A standards-compliant C/C++ complier. For example, GNU GCC 2.95 will
49 * A POSIX shell interpreter.
53 If you are building ATF from the code on the repository, you will also
54 need the following tools. The versions listed here are the ones used to
55 build the files bundled in the last formal release, but these are not
56 strictly required. Newer ones will most likely work and, maybe, some
65 If you are building the XML documentation (which is a requisite to be able
66 to generate a distfile), you will also need the following tools:
70 * The Simple DocBook DTD 1.1
76 * xmlcatalog and xmllint
78 Regenerating the build system
80 If you are building ATF from code extracted from the repository, you must
81 first regenerate the files used by the build system. You will also need to
82 do this if you modify one of configure.ac or Makefile.am.m4. To do this,
87 For formal releases, no extra steps are needed.
89 General build procedure
91 To build and install the source package, you must follow these steps:
93 1. Configure the sources to adapt to your operating system. This is done
94 using the 'configure' script located on the sources' top directory,
95 and it is usually invoked without arguments unless you want to change
96 the installation prefix. More details on this procedure are given on a
99 2. Build the sources to generate the binaries and scripts. Simply run
100 'make' on the sources' top directory after configuring them. No
101 problems should arise.
103 3. Install the program by running 'make install'. You may need to become
104 root to issue this step.
106 4. Issue any manual installation steps that may be required. These are
107 described later in their own section.
109 5. Check that the installed programs work by running 'make installcheck'.
110 You do not need to be root to do this, even though some checks will
111 not be run otherwise. (Be aware that on, some systems, GNU Libtool
112 will break these checks. If you get some failures, try reconfiguring
113 the project providing the '--disable-fast-install' flag to 'configure'
114 and then rebuild and recheck.)
118 The most common, standard flags given to 'configure' are:
122 Possible values: Any path
126 Specifies where the program (binaries and all associated files) will
129 * --sysconfdir=directory
131 Possible values: Any path
133 Default: /usr/local/etc
135 Specifies where the installed programs will look for configuration
136 files. '/atf' will be appended to the given path unless ATF_CONFSUBDIR
137 is redefined as explained later on.
141 Shows information about all available flags and exits immediately,
142 without running any configuration tasks.
144 The following environment variables are specific to ATF's 'configure'
149 Possible values: empty, a absolute or relative path to a C compiler.
151 Default: the value of CC as detected by the configure script.
153 Specifies the C compiler that ATF will use at run time whenever the
154 build-time-specific checks are used.
158 Possible values: empty, a list of valid C compiler flags.
160 Default: the value of CFLAGS as detected by the configure script.
162 Specifies the C compiler flags that ATF will use at run time whenever
163 the build-time-specific checks are used.
167 Possible values: empty, a absolute or relative path to a C/C++
170 Default: the value of CPP as detected by the configure script.
172 Specifies the C/C++ preprocessor that ATF will use at run time
173 whenever the build-time-specific checks are used.
177 Possible values: empty, a list of valid C/C++ preprocessor flags.
179 Default: the value of CPPFLAGS as detected by the configure script.
181 Specifies the C/C++ preprocessor flags that ATF will use at run time
182 whenever the build-time-specific checks are used.
186 Possible values: empty, a absolute or relative path to a C++ compiler.
188 Default: the value of CXX as detected by the configure script.
190 Specifies the C++ compiler that ATF will use at run time whenever the
191 build-time-specific checks are used.
195 Possible values: empty, a list of valid C++ compiler flags.
197 Default: the value of CXXFLAGS as detected by the configure script.
199 Specifies the C++ compiler flags that ATF will use at run time
200 whenever the build-time-specific checks are used.
204 Possible values: empty, a relative path.
208 Specifies the subdirectory of the configuration directory (given by
209 the --sysconfdir argument) under which ATF will search for its
214 Possible values: empty, absolute path to a M4 macro processor.
218 Specifies the M4 macro processor that ATF will use at run time to
219 generate GNU Automake files. If empty, the configure script will try
220 to find a suitable M4 implementation for you.
224 Possible values: empty, absolute path to a POSIX shell interpreter.
228 Specifies the POSIX shell interpreter that ATF will use at run time to
229 execute its scripts and the test programs written using the atf-sh
230 library. If empty, the configure script will try to find a suitable
235 Possible values: empty, an absolute path.
237 Default: /tmp or /var/tmp, depending on availability.
239 Specifies the directory that ATF will use to place its temporary files
240 and work directories for test cases. This is just a default and can be
241 overriden at run time.
245 Possible values: absolute path.
249 Specifies the program name or the absolute path of the 'links'
250 application. Required when --enable-doc-build is used; otherwise
255 Possible values: absolute path.
259 Specifies the program name or the absolute path of the 'tidy' tool.
260 Required when --enable-doc-build is used; otherwise ignored.
264 Possible values: absolute path.
268 Specifies the program name or the absolute path of the 'xmlcatalog'
269 tool. Required when --enable-doc-build is used; otherwise ignored.
273 Possible values: absolute path.
275 Default: /etc/xml/catalog
277 Specifies the path to the system-wide XML catalog used to lookup the
278 required DTDs. The build will NOT perform any network access to load
279 them. Required when --enable-doc-build is used; otherwise ignored.
283 Possible values: absolute path.
287 Specifies the program name or the absolute path of the 'xmllint' tool.
288 Required when --enable-doc-build is used; otherwise ignored.
292 Possible values: absolute path.
296 Specifies the program name or the absolute path of the 'xsltproc'
297 tool. Required when --enable-doc-build is used; otherwise ignored.
299 The following flags are specific to ATF's 'configure' script:
303 Possible values: yes, no
305 Default: Depends on the version number. Stable versions define this to
306 'no' while all others have it set to 'yes'.
308 Enables several features useful for development, such as the inclusion
309 of debugging symbols in all objects or the enabling of warnings during
314 Possible values: yes, no
318 Enables the building of the XML documentation. This must be enabled in
319 order to be able to generate a distribution file (aka run 'make
320 dist'). Disabled by default because the toolchain required to enable
321 this feature is pretty big, and not everyone needs it: the
322 distribution files come with up-to-date, pregenerated documentation.
324 * --enable-unstable-shared
326 Possible values: yes, no
330 Forces the building of shared libraries in addition to static ones.
331 The build of shared libraries is currently disabled because their ABIs
332 and APIs are unstable and subject to change. This flag is provided for
333 development purposes only and will be removed once the libraries are
336 Post-installation steps
338 After installing ATF, you have to register the DTDs it provides into the
339 system-wide XML catalog. See the comments at the top of the files in
340 ${datadir}/share/xml/atf to see the correct public identifiers. This
341 directory will typically be /usr/local/share/xml/atf or
342 /usr/share/xml/atf. Failure to do so will lead to further errors when
343 processing the XML files generated by atf-report.