diff options
author | Ben Wiederhake <BenWiederhake.GitHub@gmx.de> | 2016-03-03 19:18:27 +0300 |
---|---|---|
committer | Ben Wiederhake <BenWiederhake.GitHub@gmx.de> | 2016-03-23 18:32:07 +0300 |
commit | e828fc36efb34f262bab5a9b07d1cf60e46fa89e (patch) | |
tree | 29b4bfc0ca0275750708aad43979c96fbd592bcf /HACKING.BUILD.md | |
parent | 70340d7b551f51c1f8ca845b037b504032dd8846 (diff) |
Allow out-of-vcs builds
Diffstat (limited to 'HACKING.BUILD.md')
-rw-r--r-- | HACKING.BUILD.md | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/HACKING.BUILD.md b/HACKING.BUILD.md index 8847484..f09f127 100644 --- a/HACKING.BUILD.md +++ b/HACKING.BUILD.md @@ -11,6 +11,7 @@ This list was previously maintained as [issue #242](https://github.com/majn/tele 1. Any changes due to `make -C tgl` must cause all necessary rebuilds in telegram-purple during the same invocation of make. ("Too often" is acceptable as long as `make && make` isn't violated.) 1. If `tgl/Makefile.in` is missing, explain that we need submodules, and stop. 1. `make -j12` must work fine +1. Must support out-of-CVS builds. ## While ensuring that: @@ -20,12 +21,13 @@ This list was previously maintained as [issue #242](https://github.com/majn/tele ## Approach: -- `commit.h` is a regular file which depends on a .PHONY target `commit`. Building `commit.h` *only* touches `commit.h` if necessary. (=> 1 & 2) +- `commit.h` is a regular file which depends on a .PHONY target `commit`. Building `commit.h` *only* touches `commit.h` if necessary and possible. (=> 1, 2, half of 8) - Have a target `tgl/Makefile` which depends on `Makefile`. (=> 3) - The central target `${PRPL_LIBNAME}` shall depend on the .PHONY `submade`, which depends on `tgl/Makefile`, and essentially executes `make -C tgl`. (=> 4, time constraint of 5) - All objects of telegram-purple depend on `tgl/libs/libtgl.a`. Rationale: if `tgl/libs/libtgl.a` stays the same, then nothing in tgl changed. If `tgl/libs/libtgl.a` changes, then due to lots of black preprocessor magic within tgl, it can't be safely determined which, if any, objects of telegram-purple can be re-used. Also, if tgl got recompiled (~ 1 minute), then tgp can be recompiled, too (~ 5 seconds). (=> dependency constraint of 5) - Let `tgl/Makefile` depend on `tgl/Makefile.in`, and put the warning into the rule for the latter. (=> 6) - The above already implies a dependency DAG that is completely known to make; except at one point: let `tgl/libs/libtgl.a` depend on `submade`, without any own code. Now make ensure thread-safety on it's own. (=> 7) +- Bundle commit.h into the origtar (=> other half of 8) ## Side effects: |