Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / bsd / atf / dist / INSTALL
blob4d2140a01c02150f5d87757ce43f9bd409a2efbd
1    Installation instructions
3    By Julio Merino, The NetBSD Foundation
5                                     Contents
7     1. Introduction
9     2. Dependencies
11     3. Regenerating the build system
13     4. General build procedure
15     5. Configuration flags
17     6. Post-installation steps
19                                   Introduction
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.
26    For the impatient:
28  $ ./configure
29  $ make
30  Gain root privileges
31  # make install
32  Drop root privileges
33  $ make installcheck
35    Or alternatively, install as a regular user into your home directory:
37  $ ./configure --prefix ~/local
38  $ make
39  $ make install
40  $ make installcheck
42                                   Dependencies
44    To build and use ATF successfully you need:
46      * A standards-compliant C/C++ complier. For example, GNU GCC 2.95 will
47        not work.
49      * A POSIX shell interpreter.
51      * A make(1) utility.
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
57    slightly older ones:
59      * GNU autoconf 2.65
61      * GNU automake 1.11.1
63      * GNU libtool 2.2.6b
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:
68      * links
70      * The Simple DocBook DTD 1.1
72      * tidy
74      * xsltproc
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,
83    simply run:
85  $ ./autogen.sh
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
97        later section.
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.)
116                               Configuration flags
118    The most common, standard flags given to 'configure' are:
120      * --prefix=directory
122        Possible values: Any path
124        Default: /usr/local
126        Specifies where the program (binaries and all associated files) will
127        be installed.
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.
139      * --help
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'
145    script:
147      * ATF_BUILD_CC
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.
156      * ATF_BUILD_CFLAGS
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.
165      * ATF_BUILD_CPP
167        Possible values: empty, a absolute or relative path to a C/C++
168        preprocessor.
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.
175      * ATF_BUILD_CPPFLAGS
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.
184      * ATF_BUILD_CXX
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.
193      * ATF_BUILD_CXXFLAGS
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.
202      * ATF_CONFSUBDIR
204        Possible values: empty, a relative path.
206        Default: atf.
208        Specifies the subdirectory of the configuration directory (given by
209        the --sysconfdir argument) under which ATF will search for its
210        configuration files.
212      * ATF_M4
214        Possible values: empty, absolute path to a M4 macro processor.
216        Default: empty.
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.
222      * ATF_SHELL
224        Possible values: empty, absolute path to a POSIX shell interpreter.
226        Default: empty.
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
231        interpreter for you.
233      * ATF_WORKDIR
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.
243      * LINKS
245        Possible values: absolute path.
247        Default: links.
249        Specifies the program name or the absolute path of the 'links'
250        application. Required when --enable-doc-build is used; otherwise
251        ignored.
253      * TIDY
255        Possible values: absolute path.
257        Default: tidy.
259        Specifies the program name or the absolute path of the 'tidy' tool.
260        Required when --enable-doc-build is used; otherwise ignored.
262      * XMLCATALOG
264        Possible values: absolute path.
266        Default: xmlcatalog.
268        Specifies the program name or the absolute path of the 'xmlcatalog'
269        tool. Required when --enable-doc-build is used; otherwise ignored.
271      * XML_CATALOG_FILE
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.
281      * XMLLINT
283        Possible values: absolute path.
285        Default: xmllint.
287        Specifies the program name or the absolute path of the 'xmllint' tool.
288        Required when --enable-doc-build is used; otherwise ignored.
290      * XSLTPROC
292        Possible values: absolute path.
294        Default: xsltproc.
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:
301      * --enable-developer
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
310        compilation.
312      * --enable-doc-build
314        Possible values: yes, no
316        Default: 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
328        Default: 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
334        stable enough.
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.