Initial release
This commit is contained in:
parent
fdebf2797e
commit
3f5cec00d1
109
configure.txt
Normal file
109
configure.txt
Normal file
@ -0,0 +1,109 @@
|
||||
configure documentation
|
||||
-----------------------
|
||||
|
||||
|
||||
These are the documentation notes for configure. The configure project is a
|
||||
Makefile files generator. It uses project description files to propose simple
|
||||
Makefiles. It is intended to keep generated code as simple as possible.
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
Table of contents
|
||||
-----------------
|
||||
|
||||
I. Overview of configure
|
||||
1.1 What is configure
|
||||
1.2 Who should use configure
|
||||
1.3 Who should not use configure
|
||||
1.4 Why use configure
|
||||
|
||||
II. Using configure
|
||||
2.1 configure usage
|
||||
2.2 Project configuration
|
||||
2.3 Migrating to configure
|
||||
|
||||
III. Getting further
|
||||
3.1 Current caveats
|
||||
3.2 Planned improvements
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
I. Overview of configure
|
||||
|
||||
1.1 What is configure
|
||||
configure generates Makefile files needed in an entire project. Instead of
|
||||
trying every little trick to let it work in a number of potential uses, it
|
||||
sticks to the simplest possible code generation. Consequently, it will mostly
|
||||
be useful for projects running on standard-compliant platforms.
|
||||
|
||||
1.2 Who should use configure
|
||||
Every software developper could gain using configure. However, due to its
|
||||
intentional simplicity, it may not be appropriate to use along with code
|
||||
compilation on some non-portable platforms.
|
||||
Of course an advanced user, trying to modify a given project Makefile on his
|
||||
platform, inside a project using configure as its Makefile files generator may
|
||||
have to use configure too.
|
||||
|
||||
1.3 Who should not use configure
|
||||
|
||||
configure will certainly not be appropriate alone for cross-plaform projects,
|
||||
and maybe not for big projects. However one should be able to keep its
|
||||
configuration files inside a project without creating any trouble for potential
|
||||
other Makefile files generators.
|
||||
|
||||
1.4 Why use configure
|
||||
configure has been created to be efficient at writing simple and compliant
|
||||
Makefiles for small to big software development projects. It should be useful:
|
||||
- for people learning software development using Makefiles
|
||||
- for developpers of some small to big projects
|
||||
- for developpers concerned by the readability and efficiency of their Makefiles
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
II. Using configure
|
||||
|
||||
2.1 configure usage
|
||||
The configure utility may be invoked from the command line this way:
|
||||
$ configure [directory]
|
||||
|
||||
It then processes the current directory, or the one given at the command line,
|
||||
according to the project configuration files.
|
||||
|
||||
2.2 Project configuration
|
||||
The configuration is done in every project directory. This file must be called
|
||||
"project.conf". It is organized in sections, and string variables. Section names
|
||||
are written on their own line, between brackets (eg "[section]"). Variables are
|
||||
given on their own line too, like this:
|
||||
variable=value
|
||||
Configuration files may be commented, commentary lines being prepended with a
|
||||
hash sign "#".
|
||||
Recognized variables are the following:
|
||||
- in the default section (has an empty name, eg "[]" in the file)
|
||||
* subdirs: subdirectories to look for too
|
||||
* cflags_force: CFLAGS to force globally
|
||||
* cflags: optional global CFLAGS
|
||||
* ldflags_force: LDFLAGS to force globally
|
||||
* ldflags: optional global LDFLAGS
|
||||
* targets: targets to handle in the Makefile
|
||||
- in sections named like the target they define:
|
||||
* type (mandatory): type of the target (eg "binary", "library", ...)
|
||||
* cflags: additional CFLAGS for this target
|
||||
* ldflags: additional LDFLAGS for this target
|
||||
* sources: source files to compile
|
||||
|
||||
2.3 Migrating to configure
|
||||
|
||||
-------------------------------------------------
|
||||
|
||||
|
||||
III. Getting further
|
||||
|
||||
3.1 Current caveats
|
||||
- configure is not user-proof when necessary development files are not available
|
||||
(relies on appropriate third-party programs error messages, eg
|
||||
"project-config" or "pkgconfig")
|
||||
|
||||
3.2 Planned improvements
|
Loading…
Reference in New Issue
Block a user