Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/majn/telegram-purple.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2016-03-03 19:18:27 +0300
committerBen Wiederhake <BenWiederhake.GitHub@gmx.de>2016-03-23 18:32:07 +0300
commite828fc36efb34f262bab5a9b07d1cf60e46fa89e (patch)
tree29b4bfc0ca0275750708aad43979c96fbd592bcf /HACKING.BUILD.md
parent70340d7b551f51c1f8ca845b037b504032dd8846 (diff)
Allow out-of-vcs builds
Diffstat (limited to 'HACKING.BUILD.md')
-rw-r--r--HACKING.BUILD.md4
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: