From e8ec47d2e8cf847c12aa2916b32761852dadfa50 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Thu, 17 May 2012 00:59:25 +0000 Subject: [PATCH] More on scripts (and added a VIM modeline) --- doc/configure.xml | 128 +++++++++++++++++++++++++++++++++------------- 1 file changed, 92 insertions(+), 36 deletions(-) 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 @@ +