diff --git a/doc/configure.xml b/doc/configure.xml
index dcad68b..b2c4d42 100644
--- a/doc/configure.xml
+++ b/doc/configure.xml
@@ -20,10 +20,11 @@
- These are the documentation notes for configure. The configure project is a
- Makefiles generator. It uses project description files to provide simple
- Makefiles. It is intended to keep generated code as simple and portable as
- possible.
+ These are the documentation notes for configure. The configure project
+ generates and maintain software build systems, suitable for use with the most
+ common implementations of the make command. It uses project description files
+ to provide simple Makefiles. It is intended to keep the code generated as
+ simple and portable as possible.
Overview
@@ -35,6 +36,13 @@
potential uses, it sticks to the simplest possible code
generation.
+
+ Although primarily dedicated to the generation of build systems through
+ Makefiles, primarily to compile source code in the C/C++ and assembly
+ languages, configure can be extended for integration with external software
+ and processes such as translations, documentation generation, dynamic
+ bindings...
+
Who should use configure
@@ -64,11 +72,12 @@
Makefiles for software development projects of all sizes. It should be
useful:
- for people learning software development using Makefiles;
- for developers of C/C++ software projects;
- for developers concerned by the readability,
- efficiency, portability or maintenance of their
- Makefiles.
+ for people learning software development using
+ Makefiles;
+ for developers of C/C++ software
+ projects;
+ for developers concerned by the readability, efficiency,
+ portability or maintenance of their Makefiles.
@@ -79,9 +88,14 @@
configure usage
The configure utility may be invoked from the command line this way:
-
- $ configure [-nvS][options...][directory...]
-
+
+ configure
+ -n
+ -v
+ -S
+ options
+ directory
+
The "-n" option just parses the project definition files, without actually
@@ -144,36 +158,77 @@
Target definitions
-
- The following target types are currently supported:
-
- "binary": produces binary files, linked from every object file produced with their source files.
- "library": produces a static and a shared version of
- the target, linked from every object file produced
- with their source files, and respectively appending
- ".a" and ".so" extensions to the target name; the
- shared object are also assigned a version number.
- "object": produces a binary object file from the given source.
- "plugin": produces a shared version of the target,
- linked from every object file produced with their
- source files, and appending the ".so" extension to the target name.
- "script": runs the given script, expecting the target
- file to be generated from the sources defined.
-
-
+
+ Target types
+
+ The following target types are currently supported:
+
+ "binary": produces binary files, linked from every object file produced with their source files.
+ "library": produces a static and a shared version of
+ the target, linked from every object file produced
+ with their source files, and respectively appending
+ ".a" and ".so" extensions to the target name; the
+ shared object are also assigned a version number.
+ "object": produces a binary object file from the given source.
+ "plugin": produces a shared version of the target,
+ linked from every object file produced with their
+ source files, and appending the ".so" extension to the target name.
+ "script": runs the given script, expecting the target
+ file to be generated from the sources defined.
+
+
+
+ Script targets
+
+ Scripts have to be provided by the software project itself, as
+ configure does not provide any pre-installed set of standard
+ scripts. A few sample scripts are, however, distributed along with
+ the source code of the configure project, and introduced here.
+
+
+ These scripts are primarily meant to allow further integration of
+ the build process, as defined by the Makefiles generated, with the
+ requirements of a software project beyond that of compiling code.
+ configure is already known to have been successfully integrated this
+ way with:
+
+ AppBroker: integration with the DeforaOS distributed
+ computing framework (see appbroker.sh)
+ DocBook: markup language for technical documentation,
+ based on either SGML or XML (see docbook.sh)
+ Gettext: internationalization (i18n) and localization
+ (l10n) framework, notably allowing software to be easily translated to
+ other languages (see gettext.sh)
+ Gtk-doc: generates API documentation from comments within
+ software projects, in the format expected by the DevHelp API browser (see
+ gtkdoc.sh)
+ pkg-config: unified interface to define compilation and
+ linking rules to installed software (see pkgconfig.sh)
+
+
+
+
+ Writing scripts
+
+ It is naturally possible to write scripts for integration with configure.
+
+
+
+
Migrating to configure
- You may first create all necessary "project.conf" files with the subdirectories
- definitions. Then for every binary or library built, specify the adequate target
- along with its section.
+ You may first create all necessary "project.conf" files with the
+ subdirectories definitions. Then for every binary or library built, specify
+ the adequate target along with its section.
- When migrating from automake/autoconf, the existing subdirectories are defined
- in the "Makefile.am" files, in the "SUBDIRS" variable. The binary targets are
- defined in the same file, as the "bin_PROGRAMS" variable, each declined to
- "program_SOURCES" for their respective source files.
+ When migrating from automake/autoconf, the existing subdirectories are
+ defined in the "Makefile.am" files, in the "SUBDIRS" variable. The binary
+ targets are defined in the same file, as the "bin_PROGRAMS" variable, each
+ declined to "program_SOURCES" for their respective source files.
@@ -188,3 +243,4 @@
+