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