| 1 | = A multi-project testbeb using waffle |
| 2 | |
| 3 | the multi-proj testbed is [https://bitbucket.org/binet/waffle-multi-proj/overview |
| 4 | over there] |
| 5 | |
| 6 | projects deps |
| 7 | |
| 8 | * `proj-a` has no dep. |
| 9 | * `proj-b` uses `proj-a` |
| 10 | * `proj-c` uses `proj-b` |
| 11 | * `proj-d` uses `proj-c` and `proj-a` |
| 12 | |
| 13 | |
| 14 | ==== `proj-a` |
| 15 | |
| 16 | has `pkg-aaa` which: |
| 17 | |
| 18 | * creates a `libpkg-aaa` library |
| 19 | * installs a header `pkg-aaa/pkg-aaa.h` |
| 20 | |
| 21 | ==== `proj-b` |
| 22 | |
| 23 | has `pkg-bbb` which: |
| 24 | |
| 25 | * uses `pkg-aaa` (to get a function from `libpkg-aaa`) |
| 26 | * creates a `libpkg-bbb` library |
| 27 | * installs a header `pkg-bbb/pkg-bbb.h` |
| 28 | |
| 29 | ==== `proj-c` |
| 30 | |
| 31 | has `pkg-ccc` which: |
| 32 | |
| 33 | * uses `pkg-aaa` and `pkg-bbb` to get the functions from (resp.) `libpkg-aaa` and `libpkg-bbb` |
| 34 | * creates a `libpkg-ccc` library |
| 35 | * installs a header `pkg-ccc/pkg-ccc.h` |
| 36 | |
| 37 | ==== `proj-d` |
| 38 | |
| 39 | dummy. |
| 40 | |
| 41 | |
| 42 | == TODO |
| 43 | * play with a binary in `proj-a/pkg-aaa` which would `dlopen` a library and call some function |
| 44 | * play with a `proj-b/pkg-aaa` overidding `proj-a/pkg-aaa` in `proj-c/pkg-ccc` |
| 45 | |
| 46 | == How to play |
| 47 | |
| 48 | {{{ |
| 49 | $ hg clone ssh://hg@bitbucket.org/binet/waffle-multi-proj |
| 50 | $ cd waffle-multi-proj |
| 51 | $ ./build-projs.sh |
| 52 | }}} |
| 53 | |
| 54 | this will compile and install everything under `$sitedir=${HOME}/tmp/opt/mproj` |
| 55 | |