1 | | |
2 | | [[PageOutline]] |
3 | | |
4 | | = Useful workflows and makefile targets = |
5 | | |
6 | | This is intended as a short summary of how to do common tasks. See also [wiki:Building/Using#StandardTargets], although that may not be fully up to date. |
7 | | |
8 | | === Build or clean everything === |
9 | | |
10 | | Do these things in the `$(TOP)` directory. |
11 | | |
12 | | * '''Initialisation''': `sh boot; ./configure`, create `build.mk`. See [wiki:Building/Using#Gettingthebuildyouwant the details], and more about [wiki:Building/Hacking controlling the build]. |
13 | | |
14 | | * '''`make`'''. This should make everything: the support utilities, stage1 compiler, libraries, and stage2 compiler. |
15 | | |
16 | | The build system does not track cross-package dependencies, so it's possible that you could recompile one library, but another dependent library isn't recompiled, and you get link errors. |
17 | | |
18 | | * '''`make clean`''', '''`make distclean`''': various levels of cleanery. |
19 | | |
20 | | === Clean and rebuild just the compiler === |
21 | | |
22 | | Do these things in the `$(TOP)/compiler` directory. |
23 | | |
24 | | * `make clean stage=2`, `make boot stage=2`, `make stage=2`. This cleans, boots and builds the stage 2 compiler. You can do the same for the other stages. Note the first command is rarely necessary, and you normally don't need the second one either. |
25 | | |
26 | | === Build libraries === |
27 | | |
28 | | Do these things in `$(TOP)/libraries` directory. |
29 | | |
30 | | * Build all libraries: `make` |
31 | | * Build just the `foo` library: `make make.library.foo`. You need to `make remake.library.foo` if you need clean or reconfigure first, e.g. if you changed the module imports. |
32 | | * Clean all libraries: `make clean` |
33 | | * Clean just the `foo` library: `make clean.library.foo` |
34 | | |
35 | | It's not possible to stop the build system from trying to build a boot library, other than fiddling with SUBDIRS in `libraries/Makefile`. |
36 | | |
37 | | === Testing === |
38 | | |
39 | | * Perform [wiki:TestingPatches validation before committing changes] |
40 | | * Run the [wiki:Building/RunningTests test suite] |
41 | | * Run the [wiki:Building/RunningNoFib nofib suite] |
42 | | |
| 1 | This page is obsolete; please update links to point to [wiki:Building/Hacking], or another appropriate place. |