|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .pipelines/ | H | 03-May-2022 | - | 331 | 329 |
| build_system_kit/ | H | 03-May-2022 | - | 656 | 453 |
| demos/ | H | 03-May-2022 | - | 4,158 | 2,714 |
| docs/ | H | 03-May-2022 | - | 3,824 | 2,609 |
| playground/ | H | 03-May-2022 | - | 17,602 | 13,497 |
| tests/ | H | 03-May-2022 | - | 1,536 | 1,139 |
| utils/ | H | 03-May-2022 | - | 975 | 762 |
| waflib/ | H | 03-May-2022 | - | 42,164 | 33,427 |
| zip/ | H | 03-May-2022 | - | 47 | 32 |
| ChangeLog | H A D | 28-Mar-2020 | 8.4 KiB | 201 | 179 |
| DEVEL | H A D | 28-Mar-2020 | 1.6 KiB | 42 | 31 |
| README.md | H A D | 28-Mar-2020 | 3.2 KiB | 64 | 48 |
| TODO | H A D | 28-Mar-2020 | 449 | 13 | 11 |
| configure | H A D | 28-Mar-2020 | 1.8 KiB | 120 | 84 |
| waf | H A D | 28-Mar-2020 | 102.3 KiB | 174 | 132 |
| waf-light | H A D | 28-Mar-2020 | 4.1 KiB | 172 | 134 |
| wscript | H A D | 28-Mar-2020 | 12.9 KiB | 423 | 318 |
README.md
1## ABOUT WAF
2
3Waf is a Python-based framework for configuring, compiling and installing applications. Here are perhaps the most important features of Waf:
4
5 * *Automatic build order*: the build order is computed from input and output files, among others
6 * *Automatic dependencies*: tasks to execute are detected by hashing files and commands
7 * *Performance*: tasks are executed in parallel automatically, the startup time is meant to be fast (separation between configuration and build)
8 * *Flexibility*: new commands and tasks can be added very easily through subclassing, bottlenecks for specific builds can be eliminated through dynamic method replacement
9 * *Extensibility*: though many programming languages and compilers are already supported by default, many others are available as extensions
10 * *IDE support*: Eclipse, Visual Studio and Xcode project generators (`waflib/extras/`)
11 * *Documentation*: the application is based on a robust model documented in [The Waf Book](https://waf.io/book/) and in the [API docs](https://waf.io/apidocs/)
12 * *Python compatibility*: cPython 2.5 to 3.x, Jython 2.5, IronPython, and Pypy
13
14Waf is used in particular by innovative companies such as [Avalanche Studios](http://www.avalanchestudios.se) and by open-source projects such as [RTEMS](https://www.rtems.org/). Learn more about Waf by reading [The Waf Book](https://waf.io/book/).
15
16For researchers and build system writers, Waf also provides a framework for creating [custom build systems](https://gitlab.com/ita1024/waf/tree/master/build_system_kit) and [package distribution systems](https://gitlab.com/ita1024/waf/blob/master/playground/distnet/README.rst).
17
18Download the project from our page on [waf.io](https://waf.io/) or from a mirror on [freehackers.org](http://www.freehackers.org/~tnagy/release/), consult the [manual](https://waf.io/book/), the [API documentation](https://waf.io/apidocs/) and the [showcases](https://gitlab.com/ita1024/waf/tree/master/demos) and [experiments](https://gitlab.com/ita1024/waf/tree/master/playground).
19
20## HOW TO CREATE THE WAF SCRIPT
21
22Python >= 2.6 is required to generate the waf script, and the resulting file can then run on Python 2.5.
23Just run:
24```sh
25$ python ./waf-light configure build
26```
27Or, if several python versions are installed:
28```sh
29$ python3 ./waf-light configure build
30```
31
32## CUSTOMIZATION
33
34The Waf tools in waflib/extras are not added to the waf script. To add
35some of them, use the --tools switch. An absolute path can be passed
36if the module does not exist under the 'extras' folder:
37```sh
38$ ./waf-light --tools=swig
39```
40
41To customize the initialization, pass the parameter 'prelude'. Here is for example
42how to create a waf file using the compat15 module:
43```sh
44$ ./waf-light --tools=compat15 --prelude=$'\tfrom waflib.extras import compat15\n'
45```
46
47Although any kind of initialization is possible, using the build system kit
48may be easier (folder build\_system\_kit):
49```sh
50$ ./waf-light --make-waf --tools=compat15,/comp/waf/aba.py --prelude=$'\tfrom waflib.extras import compat15\n\tprint("ok")'
51```
52
53To avoid regenerating the waf file all the time, just set the `WAFDIR` environment variable to the directory containing "waflib".
54
55## HOW TO RUN THE EXAMPLES
56
57Try this:
58```sh
59cp waf demos/c/
60cd demos/c/
61./waf configure build
62```
63
64