Browse code

* new build and root setting . See dox/settings/dispense_style/DISPENSE_STYLE.md

Nat! authored on 31-07-2017 14:53:24 • Nat! committed on 01-08-2017 16:54:56
Showing 17 changed files
... ...
@@ -18,7 +18,8 @@ Setting Name            |  Description
18 18
 `repositories`          | Repositories to clone, specify the URLs
19 19
 `embedded_repositories` | Repositories to embed, specify the URLs
20 20
 `tarballs`              | Tarballs to install (currently filesystem only)
21
-
21
+`version`               | mulle-bootstrap version that was used for init
22
+`dispense_style`        | either "configuration-sdk", "configuration" or "none"
22 23
 
23 24
 > None of these settings are required, they are used to control the
24 25
 > **mulle_bootstrap** build processs
... ...
@@ -47,6 +48,7 @@ Setting Name                     |  Description                               |
47 48
                                  | relative to dependencies                   | `/usr/local`
48 49
 `dispense_other_product`         | if the build should dispense other files   | NO
49 50
 `sdks`                           | SDKs to build                              | config setting
51
+`dispense_style`                 | either "configuration-sdk", "configuration" or "none" | "none"
50 52
 `xcode_proper_skip_install`      | assume SKIP_INSTALL is set correctly in    |
51 53
                                  | Xcode project                              | NO
52 54
 `xcode_public_headers`           | Substitute for PUBLIC_HEADERS_FOLDER_PATH  |
53 55
new file mode 100644
... ...
@@ -0,0 +1,7 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   dependencies -> lib
5
+   dependencies -> include
6
+   dependencies -> Frameworks
7
+}
0 8
\ No newline at end of file
1 9
new file mode 100644
... ...
@@ -0,0 +1,48 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="241pt" height="116pt"
8
+ viewBox="0.00 0.00 241.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-112 237,-112 237,4 -4,4"/>
12
+<!-- dependencies -->
13
+<g id="node1" class="node"><title>dependencies</title>
14
+<polygon fill="none" stroke="black" points="146.555,-108 143.555,-112 122.555,-112 119.555,-108 55.4452,-108 55.4452,-72 146.555,-72 146.555,-108"/>
15
+<text text-anchor="middle" x="101" y="-84.4" font-family="Times,serif" font-size="14.00">dependencies</text>
16
+</g>
17
+<!-- lib -->
18
+<g id="node2" class="node"><title>lib</title>
19
+<polygon fill="none" stroke="black" points="54,-36 51,-40 30,-40 27,-36 0,-36 0,-0 54,-0 54,-36"/>
20
+<text text-anchor="middle" x="27" y="-12.4" font-family="Times,serif" font-size="14.00">lib</text>
21
+</g>
22
+<!-- dependencies&#45;&gt;lib -->
23
+<g id="edge1" class="edge"><title>dependencies&#45;&gt;lib</title>
24
+<path fill="none" stroke="black" d="M82.7079,-71.6966C73.5674,-63.0503 62.3599,-52.4486 52.4,-43.027"/>
25
+<polygon fill="black" stroke="black" points="54.7516,-40.4337 45.0817,-36.1043 49.9412,-45.519 54.7516,-40.4337"/>
26
+</g>
27
+<!-- include -->
28
+<g id="node3" class="node"><title>include</title>
29
+<polygon fill="none" stroke="black" points="129.405,-36 126.405,-40 105.405,-40 102.405,-36 72.5954,-36 72.5954,-0 129.405,-0 129.405,-36"/>
30
+<text text-anchor="middle" x="101" y="-12.4" font-family="Times,serif" font-size="14.00">include</text>
31
+</g>
32
+<!-- dependencies&#45;&gt;include -->
33
+<g id="edge2" class="edge"><title>dependencies&#45;&gt;include</title>
34
+<path fill="none" stroke="black" d="M101,-71.6966C101,-63.9827 101,-54.7125 101,-46.1124"/>
35
+<polygon fill="black" stroke="black" points="104.5,-46.1043 101,-36.1043 97.5001,-46.1044 104.5,-46.1043"/>
36
+</g>
37
+<!-- Frameworks -->
38
+<g id="node4" class="node"><title>Frameworks</title>
39
+<polygon fill="none" stroke="black" points="233.49,-36 230.49,-40 209.49,-40 206.49,-36 148.51,-36 148.51,-0 233.49,-0 233.49,-36"/>
40
+<text text-anchor="middle" x="191" y="-12.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
41
+</g>
42
+<!-- dependencies&#45;&gt;Frameworks -->
43
+<g id="edge3" class="edge"><title>dependencies&#45;&gt;Frameworks</title>
44
+<path fill="none" stroke="black" d="M123.247,-71.6966C134.582,-62.8807 148.53,-52.0321 160.819,-42.4742"/>
45
+<polygon fill="black" stroke="black" points="163.264,-45.0065 169.009,-36.1043 158.966,-39.481 163.264,-45.0065"/>
46
+</g>
47
+</g>
48
+</svg>
0 49
new file mode 100644
... ...
@@ -0,0 +1,15 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   dependencies -> lib
5
+   dependencies -> include
6
+   dependencies -> Frameworks
7
+
8
+   dependencies -> Debug -> lib2
9
+                   Debug -> include2
10
+                   Debug -> Frameworks2
11
+
12
+   lib2 [ label="lib"]
13
+   include2 [ label="include"]
14
+   Frameworks2 [ label="Frameworks"]
15
+}
0 16
\ No newline at end of file
1 17
new file mode 100644
... ...
@@ -0,0 +1,88 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="419pt" height="188pt"
8
+ viewBox="0.00 0.00 419.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-184 415,-184 415,4 -4,4"/>
12
+<!-- dependencies -->
13
+<g id="node1" class="node"><title>dependencies</title>
14
+<polygon fill="none" stroke="black" points="191.555,-180 188.555,-184 167.555,-184 164.555,-180 100.445,-180 100.445,-144 191.555,-144 191.555,-180"/>
15
+<text text-anchor="middle" x="146" y="-156.4" font-family="Times,serif" font-size="14.00">dependencies</text>
16
+</g>
17
+<!-- lib -->
18
+<g id="node2" class="node"><title>lib</title>
19
+<polygon fill="none" stroke="black" points="54,-108 51,-112 30,-112 27,-108 0,-108 0,-72 54,-72 54,-108"/>
20
+<text text-anchor="middle" x="27" y="-84.4" font-family="Times,serif" font-size="14.00">lib</text>
21
+</g>
22
+<!-- dependencies&#45;&gt;lib -->
23
+<g id="edge1" class="edge"><title>dependencies&#45;&gt;lib</title>
24
+<path fill="none" stroke="black" d="M116.889,-143.876C100.6,-134.294 80.157,-122.269 62.8837,-112.108"/>
25
+<polygon fill="black" stroke="black" points="64.5726,-109.041 54.1786,-106.987 61.0234,-115.074 64.5726,-109.041"/>
26
+</g>
27
+<!-- include -->
28
+<g id="node3" class="node"><title>include</title>
29
+<polygon fill="none" stroke="black" points="129.405,-108 126.405,-112 105.405,-112 102.405,-108 72.5954,-108 72.5954,-72 129.405,-72 129.405,-108"/>
30
+<text text-anchor="middle" x="101" y="-84.4" font-family="Times,serif" font-size="14.00">include</text>
31
+</g>
32
+<!-- dependencies&#45;&gt;include -->
33
+<g id="edge2" class="edge"><title>dependencies&#45;&gt;include</title>
34
+<path fill="none" stroke="black" d="M134.876,-143.697C129.645,-135.559 123.3,-125.689 117.522,-116.701"/>
35
+<polygon fill="black" stroke="black" points="120.347,-114.623 111.996,-108.104 114.459,-118.409 120.347,-114.623"/>
36
+</g>
37
+<!-- Frameworks -->
38
+<g id="node4" class="node"><title>Frameworks</title>
39
+<polygon fill="none" stroke="black" points="233.49,-108 230.49,-112 209.49,-112 206.49,-108 148.51,-108 148.51,-72 233.49,-72 233.49,-108"/>
40
+<text text-anchor="middle" x="191" y="-84.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
41
+</g>
42
+<!-- dependencies&#45;&gt;Frameworks -->
43
+<g id="edge3" class="edge"><title>dependencies&#45;&gt;Frameworks</title>
44
+<path fill="none" stroke="black" d="M157.124,-143.697C162.355,-135.559 168.7,-125.689 174.478,-116.701"/>
45
+<polygon fill="black" stroke="black" points="177.541,-118.409 180.004,-108.104 171.653,-114.623 177.541,-118.409"/>
46
+</g>
47
+<!-- Debug -->
48
+<g id="node5" class="node"><title>Debug</title>
49
+<polygon fill="none" stroke="black" points="306,-108 303,-112 282,-112 279,-108 252,-108 252,-72 306,-72 306,-108"/>
50
+<text text-anchor="middle" x="279" y="-84.4" font-family="Times,serif" font-size="14.00">Debug</text>
51
+</g>
52
+<!-- dependencies&#45;&gt;Debug -->
53
+<g id="edge4" class="edge"><title>dependencies&#45;&gt;Debug</title>
54
+<path fill="none" stroke="black" d="M178.535,-143.876C198.009,-133.627 222.794,-120.582 242.873,-110.014"/>
55
+<polygon fill="black" stroke="black" points="244.513,-113.106 251.732,-105.352 241.253,-106.912 244.513,-113.106"/>
56
+</g>
57
+<!-- lib2 -->
58
+<g id="node6" class="node"><title>lib2</title>
59
+<polygon fill="none" stroke="black" points="232,-36 229,-40 208,-40 205,-36 178,-36 178,-0 232,-0 232,-36"/>
60
+<text text-anchor="middle" x="205" y="-12.4" font-family="Times,serif" font-size="14.00">lib</text>
61
+</g>
62
+<!-- Debug&#45;&gt;lib2 -->
63
+<g id="edge5" class="edge"><title>Debug&#45;&gt;lib2</title>
64
+<path fill="none" stroke="black" d="M260.708,-71.6966C251.567,-63.0503 240.36,-52.4486 230.4,-43.027"/>
65
+<polygon fill="black" stroke="black" points="232.752,-40.4337 223.082,-36.1043 227.941,-45.519 232.752,-40.4337"/>
66
+</g>
67
+<!-- include2 -->
68
+<g id="node7" class="node"><title>include2</title>
69
+<polygon fill="none" stroke="black" points="307.405,-36 304.405,-40 283.405,-40 280.405,-36 250.595,-36 250.595,-0 307.405,-0 307.405,-36"/>
70
+<text text-anchor="middle" x="279" y="-12.4" font-family="Times,serif" font-size="14.00">include</text>
71
+</g>
72
+<!-- Debug&#45;&gt;include2 -->
73
+<g id="edge6" class="edge"><title>Debug&#45;&gt;include2</title>
74
+<path fill="none" stroke="black" d="M279,-71.6966C279,-63.9827 279,-54.7125 279,-46.1124"/>
75
+<polygon fill="black" stroke="black" points="282.5,-46.1043 279,-36.1043 275.5,-46.1044 282.5,-46.1043"/>
76
+</g>
77
+<!-- Frameworks2 -->
78
+<g id="node8" class="node"><title>Frameworks2</title>
79
+<polygon fill="none" stroke="black" points="411.49,-36 408.49,-40 387.49,-40 384.49,-36 326.51,-36 326.51,-0 411.49,-0 411.49,-36"/>
80
+<text text-anchor="middle" x="369" y="-12.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
81
+</g>
82
+<!-- Debug&#45;&gt;Frameworks2 -->
83
+<g id="edge7" class="edge"><title>Debug&#45;&gt;Frameworks2</title>
84
+<path fill="none" stroke="black" d="M301.247,-71.6966C312.582,-62.8807 326.53,-52.0321 338.819,-42.4742"/>
85
+<polygon fill="black" stroke="black" points="341.264,-45.0065 347.009,-36.1043 336.966,-39.481 341.264,-45.0065"/>
86
+</g>
87
+</g>
88
+</svg>
0 89
new file mode 100644
... ...
@@ -0,0 +1,32 @@
1
+digraph inherit {
2
+   node [shape="folder"]
3
+
4
+   dependencies -> lib
5
+   dependencies -> include
6
+   dependencies -> Frameworks
7
+
8
+   dependencies -> "Debug" -> lib2
9
+                   "Debug" -> include2
10
+                   "Debug" -> Frameworks2
11
+
12
+   dependencies -> "Release-iphonesimulator" -> lib3
13
+                   "Release-iphonesimulator" -> include3
14
+                   "Release-iphonesimulator" -> Frameworks3
15
+
16
+   dependencies -> "Debug-iphonesimulator" -> lib4
17
+                   "Debug-iphonesimulator" -> include4
18
+                   "Debug-iphonesimulator" -> Frameworks4
19
+
20
+
21
+   lib2 [ label="lib"]
22
+   include2 [ label="include"]
23
+   Frameworks2 [ label="Frameworks"]
24
+
25
+   lib3 [ label="lib"]
26
+   include3 [ label="include"]
27
+   Frameworks3 [ label="Frameworks"]
28
+
29
+   lib4 [ label="lib"]
30
+   include4 [ label="include"]
31
+   Frameworks4 [ label="Frameworks"]
32
+}
0 33
\ No newline at end of file
1 34
new file mode 100644
... ...
@@ -0,0 +1,168 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<!-- Generated by graphviz version 2.34.0 (20131231.1455)
5
+ -->
6
+<!-- Title: inherit Pages: 1 -->
7
+<svg width="833pt" height="188pt"
8
+ viewBox="0.00 0.00 833.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
10
+<title>inherit</title>
11
+<polygon fill="white" stroke="white" points="-4,4 -4,-184 829,-184 829,4 -4,4"/>
12
+<!-- dependencies -->
13
+<g id="node1" class="node"><title>dependencies</title>
14
+<polygon fill="none" stroke="black" points="280.555,-180 277.555,-184 256.555,-184 253.555,-180 189.445,-180 189.445,-144 280.555,-144 280.555,-180"/>
15
+<text text-anchor="middle" x="235" y="-156.4" font-family="Times,serif" font-size="14.00">dependencies</text>
16
+</g>
17
+<!-- lib -->
18
+<g id="node2" class="node"><title>lib</title>
19
+<polygon fill="none" stroke="black" points="54,-108 51,-112 30,-112 27,-108 0,-108 0,-72 54,-72 54,-108"/>
20
+<text text-anchor="middle" x="27" y="-84.4" font-family="Times,serif" font-size="14.00">lib</text>
21
+</g>
22
+<!-- dependencies&#45;&gt;lib -->
23
+<g id="edge1" class="edge"><title>dependencies&#45;&gt;lib</title>
24
+<path fill="none" stroke="black" d="M189.493,-148.889C156.658,-139.722 111.211,-126.157 63.8387,-108.079"/>
25
+<polygon fill="black" stroke="black" points="64.931,-104.749 54.3418,-104.403 62.4042,-111.277 64.931,-104.749"/>
26
+</g>
27
+<!-- include -->
28
+<g id="node3" class="node"><title>include</title>
29
+<polygon fill="none" stroke="black" points="129.405,-108 126.405,-112 105.405,-112 102.405,-108 72.5954,-108 72.5954,-72 129.405,-72 129.405,-108"/>
30
+<text text-anchor="middle" x="101" y="-84.4" font-family="Times,serif" font-size="14.00">include</text>
31
+</g>
32
+<!-- dependencies&#45;&gt;include -->
33
+<g id="edge2" class="edge"><title>dependencies&#45;&gt;include</title>
34
+<path fill="none" stroke="black" d="M202.22,-143.876C182.869,-133.767 158.312,-120.939 138.232,-110.45"/>
35
+<polygon fill="black" stroke="black" points="139.841,-107.341 129.357,-105.813 136.599,-113.546 139.841,-107.341"/>
36
+</g>
37
+<!-- Frameworks -->
38
+<g id="node4" class="node"><title>Frameworks</title>
39
+<polygon fill="none" stroke="black" points="233.49,-108 230.49,-112 209.49,-112 206.49,-108 148.51,-108 148.51,-72 233.49,-72 233.49,-108"/>
40
+<text text-anchor="middle" x="191" y="-84.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
41
+</g>
42
+<!-- dependencies&#45;&gt;Frameworks -->
43
+<g id="edge3" class="edge"><title>dependencies&#45;&gt;Frameworks</title>
44
+<path fill="none" stroke="black" d="M224.124,-143.697C219.008,-135.559 212.805,-125.689 207.155,-116.701"/>
45
+<polygon fill="black" stroke="black" points="210.036,-114.708 201.751,-108.104 204.11,-118.433 210.036,-114.708"/>
46
+</g>
47
+<!-- Debug -->
48
+<g id="node5" class="node"><title>Debug</title>
49
+<polygon fill="none" stroke="black" points="306,-108 303,-112 282,-112 279,-108 252,-108 252,-72 306,-72 306,-108"/>
50
+<text text-anchor="middle" x="279" y="-84.4" font-family="Times,serif" font-size="14.00">Debug</text>
51
+</g>
52
+<!-- dependencies&#45;&gt;Debug -->
53
+<g id="edge4" class="edge"><title>dependencies&#45;&gt;Debug</title>
54
+<path fill="none" stroke="black" d="M245.876,-143.697C250.992,-135.559 257.195,-125.689 262.845,-116.701"/>
55
+<polygon fill="black" stroke="black" points="265.89,-118.433 268.249,-108.104 259.964,-114.708 265.89,-118.433"/>
56
+</g>
57
+<!-- Release&#45;iphonesimulator -->
58
+<g id="node9" class="node"><title>Release&#45;iphonesimulator</title>
59
+<polygon fill="none" stroke="black" points="499.385,-108 496.385,-112 475.385,-112 472.385,-108 344.615,-108 344.615,-72 499.385,-72 499.385,-108"/>
60
+<text text-anchor="middle" x="422" y="-84.4" font-family="Times,serif" font-size="14.00">Release&#45;iphonesimulator</text>
61
+</g>
62
+<!-- dependencies&#45;&gt;Release&#45;iphonesimulator -->
63
+<g id="edge8" class="edge"><title>dependencies&#45;&gt;Release&#45;iphonesimulator</title>
64
+<path fill="none" stroke="black" d="M280.745,-143.876C306.764,-134.137 339.526,-121.872 366.947,-111.608"/>
65
+<polygon fill="black" stroke="black" points="368.265,-114.852 376.403,-108.068 365.811,-108.296 368.265,-114.852"/>
66
+</g>
67
+<!-- Debug&#45;iphonesimulator -->
68
+<g id="node13" class="node"><title>Debug&#45;iphonesimulator</title>
69
+<polygon fill="none" stroke="black" points="730.23,-108 727.23,-112 706.23,-112 703.23,-108 581.77,-108 581.77,-72 730.23,-72 730.23,-108"/>
70
+<text text-anchor="middle" x="656" y="-84.4" font-family="Times,serif" font-size="14.00">Debug&#45;iphonesimulator</text>
71
+</g>
72
+<!-- dependencies&#45;&gt;Debug&#45;iphonesimulator -->
73
+<g id="edge12" class="edge"><title>dependencies&#45;&gt;Debug&#45;iphonesimulator</title>
74
+<path fill="none" stroke="black" d="M280.454,-153.442C349.96,-141.885 483.803,-119.631 571.493,-105.051"/>
75
+<polygon fill="black" stroke="black" points="572.129,-108.493 581.42,-103.401 570.981,-101.588 572.129,-108.493"/>
76
+</g>
77
+<!-- lib2 -->
78
+<g id="node6" class="node"><title>lib2</title>
79
+<polygon fill="none" stroke="black" points="142,-36 139,-40 118,-40 115,-36 88,-36 88,-0 142,-0 142,-36"/>
80
+<text text-anchor="middle" x="115" y="-12.4" font-family="Times,serif" font-size="14.00">lib</text>
81
+</g>
82
+<!-- Debug&#45;&gt;lib2 -->
83
+<g id="edge5" class="edge"><title>Debug&#45;&gt;lib2</title>
84
+<path fill="none" stroke="black" d="M251.997,-76.3894C248.643,-74.8831 245.25,-73.3885 242,-72 204.658,-56.0489 192.509,-53.5784 151.296,-35.991"/>
85
+<polygon fill="black" stroke="black" points="152.61,-32.7459 142.041,-31.9983 149.837,-39.1733 152.61,-32.7459"/>
86
+</g>
87
+<!-- include2 -->
88
+<g id="node7" class="node"><title>include2</title>
89
+<polygon fill="none" stroke="black" points="217.405,-36 214.405,-40 193.405,-40 190.405,-36 160.595,-36 160.595,-0 217.405,-0 217.405,-36"/>
90
+<text text-anchor="middle" x="189" y="-12.4" font-family="Times,serif" font-size="14.00">include</text>
91
+</g>
92
+<!-- Debug&#45;&gt;include2 -->
93
+<g id="edge6" class="edge"><title>Debug&#45;&gt;include2</title>
94
+<path fill="none" stroke="black" d="M256.753,-71.6966C245.418,-62.8807 231.47,-52.0321 219.181,-42.4742"/>
95
+<polygon fill="black" stroke="black" points="221.034,-39.481 210.991,-36.1043 216.736,-45.0065 221.034,-39.481"/>
96
+</g>
97
+<!-- Frameworks2 -->
98
+<g id="node8" class="node"><title>Frameworks2</title>
99
+<polygon fill="none" stroke="black" points="321.49,-36 318.49,-40 297.49,-40 294.49,-36 236.51,-36 236.51,-0 321.49,-0 321.49,-36"/>
100
+<text text-anchor="middle" x="279" y="-12.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
101
+</g>
102
+<!-- Debug&#45;&gt;Frameworks2 -->
103
+<g id="edge7" class="edge"><title>Debug&#45;&gt;Frameworks2</title>
104
+<path fill="none" stroke="black" d="M279,-71.6966C279,-63.9827 279,-54.7125 279,-46.1124"/>
105
+<polygon fill="black" stroke="black" points="282.5,-46.1043 279,-36.1043 275.5,-46.1044 282.5,-46.1043"/>
106
+</g>
107
+<!-- lib3 -->
108
+<g id="node10" class="node"><title>lib3</title>
109
+<polygon fill="none" stroke="black" points="394,-36 391,-40 370,-40 367,-36 340,-36 340,-0 394,-0 394,-36"/>
110
+<text text-anchor="middle" x="367" y="-12.4" font-family="Times,serif" font-size="14.00">lib</text>
111
+</g>
112
+<!-- Release&#45;iphonesimulator&#45;&gt;lib3 -->
113
+<g id="edge9" class="edge"><title>Release&#45;iphonesimulator&#45;&gt;lib3</title>
114
+<path fill="none" stroke="black" d="M408.404,-71.6966C401.877,-63.3893 393.932,-53.2771 386.753,-44.1407"/>
115
+<polygon fill="black" stroke="black" points="389.369,-41.8051 380.439,-36.1043 383.865,-46.1299 389.369,-41.8051"/>
116
+</g>
117
+<!-- include3 -->
118
+<g id="node11" class="node"><title>include3</title>
119
+<polygon fill="none" stroke="black" points="469.405,-36 466.405,-40 445.405,-40 442.405,-36 412.595,-36 412.595,-0 469.405,-0 469.405,-36"/>
120
+<text text-anchor="middle" x="441" y="-12.4" font-family="Times,serif" font-size="14.00">include</text>
121
+</g>
122
+<!-- Release&#45;iphonesimulator&#45;&gt;include3 -->
123
+<g id="edge10" class="edge"><title>Release&#45;iphonesimulator&#45;&gt;include3</title>
124
+<path fill="none" stroke="black" d="M426.697,-71.6966C428.813,-63.8979 431.362,-54.5085 433.718,-45.8292"/>
125
+<polygon fill="black" stroke="black" points="437.116,-46.672 436.357,-36.1043 430.36,-44.8383 437.116,-46.672"/>
126
+</g>
127
+<!-- Frameworks3 -->
128
+<g id="node12" class="node"><title>Frameworks3</title>
129
+<polygon fill="none" stroke="black" points="573.49,-36 570.49,-40 549.49,-40 546.49,-36 488.51,-36 488.51,-0 573.49,-0 573.49,-36"/>
130
+<text text-anchor="middle" x="531" y="-12.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
131
+</g>
132
+<!-- Release&#45;iphonesimulator&#45;&gt;Frameworks3 -->
133
+<g id="edge11" class="edge"><title>Release&#45;iphonesimulator&#45;&gt;Frameworks3</title>
134
+<path fill="none" stroke="black" d="M448.664,-71.8761C462.784,-62.8083 480.311,-51.5523 495.561,-41.7592"/>
135
+<polygon fill="black" stroke="black" points="497.71,-44.5385 504.233,-36.1898 493.927,-38.6485 497.71,-44.5385"/>
136
+</g>
137
+<!-- lib4 -->
138
+<g id="node14" class="node"><title>lib4</title>
139
+<polygon fill="none" stroke="black" points="646,-36 643,-40 622,-40 619,-36 592,-36 592,-0 646,-0 646,-36"/>
140
+<text text-anchor="middle" x="619" y="-12.4" font-family="Times,serif" font-size="14.00">lib</text>
141
+</g>
142
+<!-- Debug&#45;iphonesimulator&#45;&gt;lib4 -->
143
+<g id="edge13" class="edge"><title>Debug&#45;iphonesimulator&#45;&gt;lib4</title>
144
+<path fill="none" stroke="black" d="M646.854,-71.6966C642.597,-63.6436 637.444,-53.8945 632.734,-44.9824"/>
145
+<polygon fill="black" stroke="black" points="635.808,-43.3097 628.041,-36.1043 629.62,-46.5809 635.808,-43.3097"/>
146
+</g>
147
+<!-- include4 -->
148
+<g id="node15" class="node"><title>include4</title>
149
+<polygon fill="none" stroke="black" points="721.405,-36 718.405,-40 697.405,-40 694.405,-36 664.595,-36 664.595,-0 721.405,-0 721.405,-36"/>
150
+<text text-anchor="middle" x="693" y="-12.4" font-family="Times,serif" font-size="14.00">include</text>
151
+</g>
152
+<!-- Debug&#45;iphonesimulator&#45;&gt;include4 -->
153
+<g id="edge14" class="edge"><title>Debug&#45;iphonesimulator&#45;&gt;include4</title>
154
+<path fill="none" stroke="black" d="M665.146,-71.6966C669.403,-63.6436 674.556,-53.8945 679.266,-44.9824"/>
155
+<polygon fill="black" stroke="black" points="682.38,-46.5809 683.959,-36.1043 676.192,-43.3097 682.38,-46.5809"/>
156
+</g>
157
+<!-- Frameworks4 -->
158
+<g id="node16" class="node"><title>Frameworks4</title>
159
+<polygon fill="none" stroke="black" points="825.49,-36 822.49,-40 801.49,-40 798.49,-36 740.51,-36 740.51,-0 825.49,-0 825.49,-36"/>
160
+<text text-anchor="middle" x="783" y="-12.4" font-family="Times,serif" font-size="14.00">Frameworks</text>
161
+</g>
162
+<!-- Debug&#45;iphonesimulator&#45;&gt;Frameworks4 -->
163
+<g id="edge15" class="edge"><title>Debug&#45;iphonesimulator&#45;&gt;Frameworks4</title>
164
+<path fill="none" stroke="black" d="M687.068,-71.8761C703.827,-62.6388 724.706,-51.1308 742.702,-41.2116"/>
165
+<polygon fill="black" stroke="black" points="744.745,-44.0822 751.813,-36.1898 741.366,-37.9517 744.745,-44.0822"/>
166
+</g>
167
+</g>
168
+</svg>
0 169
new file mode 100644
... ...
@@ -0,0 +1,66 @@
1
+# dispense_style
2
+
3
+`mulle-bootstrap config "dipense_style" <style>`
4
+
5
+The default is `none`.
6
+
7
+### `none`
8
+
9
+Everything is dispensed into the `dependencies` root, possibly overwriting previous results from other configurations and sdks:
10
+
11
+![none](1-none.svg)
12
+
13
+
14
+### `auto`
15
+
16
+Auto selects either `configuration` or `configuration-sdk` based on the following rules:
17
+
18
+1. If there is more than one **sdk** choose `configuration-sdk`
19
+2. Otherwise choose `configuration`
20
+
21
+> It is suggested to use `auto`, if you don't need separate sdks and do not need
22
+> parallel installations of debug and release binaries.
23
+
24
+### `configuration`
25
+
26
+"Release" configuration products are dispensed into the `dependencies` root. Every other configuration is placed into its own subdirectory of the same name. Multiple sdks will overwrite each other:
27
+
28
+![configuration](2-configuration.svg)
29
+
30
+
31
+### `configuration-sdk`
32
+
33
+If the sdk is "Default" and the configuration is "Release", then everything is placed into the root directory. If the sdk is "Default", the configuration is placed into its own subdirectory of the same name. Otherwise every configuration/sdk pair is dispensed into its own subdirectory:
34
+
35
+![configuration-sdk](3-configuration-sdk.svg)
36
+
37
+
38
+### `configuration-strict`
39
+
40
+
41
+Every configuration is placed into its own subdirectory of the same name. Multiple sdks will overwrite each other:
42
+
43
+![configuration-strict](4-configuration-strict.svg)
44
+
45
+### `configuration-sdk-strict`
46
+
47
+Every configuration/sdk pair is dispensed into its own subdirectory:
48
+
49
+![configuration-sdk-strict](5-configuration-sdk-strict.svg)
50
+
51
+
52
+## Xcode tip for `auto`
53
+
54
+
55
+Set LIBRARY_SEARCH_PATHS like this:
56
+
57
+```
58
+LIBRARY_SEARCH_PATHS = $(DEPENDENCIES_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/lib $(DEPENDENCIES_DIR)/$(CONFIGURATION)/lib $(DEPENDENCIES_DIR)/lib $(inherited)
59
+```
60
+
61
+
62
+Set FRAMEWORK_SEARCH_PATHS like this:
63
+
64
+```
65
+FRAMEWORK_SEARCH_PATHS = $(DEPENDENCIES_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Frameworks $(DEPENDENCIES_DIR)/$(CONFIGURATION)/Frameworks $(DEPENDENCIES_DIR)/Frameworks $(inherited)
66
+```
0 67
new file mode 100755
... ...
@@ -0,0 +1,9 @@
1
+#! /bin/sh
2
+
3
+
4
+for i in *.dot
5
+do
6
+  svg="`basename "$i" .dot`.svg"
7
+  echo "$i" >&2
8
+  dot -Tsvg "$i" > "$svg"
9
+done
... ...
@@ -30,8 +30,8 @@
30 30
 #   POSSIBILITY OF SUCH DAMAGE.
31 31
 #
32 32
 MULLE_EXECUTABLE_VERSION_MAJOR=3
33
-MULLE_EXECUTABLE_VERSION_MINOR=9
34
-MULLE_EXECUTABLE_VERSION_PATCH=3
33
+MULLE_EXECUTABLE_VERSION_MINOR=10
34
+MULLE_EXECUTABLE_VERSION_PATCH=0
35 35
 
36 36
 MULLE_EXECUTABLE_VERSION="${MULLE_EXECUTABLE_VERSION_MAJOR}.${MULLE_EXECUTABLE_VERSION_MINOR}.${MULLE_EXECUTABLE_VERSION_PATCH}"
37 37
 
... ...
@@ -681,6 +681,7 @@ bootstrap_main()
681 681
 #
682 682
 MULLE_EXECUTABLE="`basename -- "$0"`"
683 683
 MULLE_ARGUMENTS="$@"
684
+MULLE_EXECUTABLE_ENV_PATH="$PATH"
684 685
 MULLE_EXECUTABLE_FAIL_PREFIX="${MULLE_EXECUTABLE}"
685 686
 MULLE_EXECUTABLE_PID="$$"
686 687
 export MULLE_EXECUTABLE_PID
... ...
@@ -95,7 +95,6 @@ EOF
95 95
 }
96 96
 
97 97
 
98
-
99 98
 find_cmake()
100 99
 {
101 100
    local name="$1"
... ...
@@ -248,18 +247,20 @@ dispense_files()
248 247
    local src="$1"
249 248
    local name="$2"
250 249
    local ftype="$3"
251
-   local dirpath="$4"
250
+   local depend_subdir="$4"
251
+   local dirpath="$5"
252 252
 
253 253
    local dst
254 254
 
255 255
    log_fluff "Consider copying ${ftype} from \"${src}\""
256 256
 
257
+
257 258
    if [ -d "${src}" ]
258 259
    then
259 260
       if dir_has_files "${src}"
260 261
       then
261 262
 
262
-         dst="`add_component "${REFERENCE_DEPENDENCIES_DIR}" "${dirpath}"`"
263
+         dst="`add_component "${REFERENCE_DEPENDENCIES_DIR}${depend_subdir}" "${dirpath}"`"
263 264
          mkdir_if_missing "${dst}"
264 265
 
265 266
          # this fails with more nested header set ups, need to fix!
... ...
@@ -281,6 +282,7 @@ dispense_headers()
281 282
 {
282 283
    local sources="$1"
283 284
    local name="$2"
285
+   local depend_subdir="$3"
284 286
 
285 287
    local headerpath
286 288
 
... ...
@@ -293,7 +295,7 @@ dispense_headers()
293 295
    do
294 296
       IFS="${DEFAULT_IFS}"
295 297
 
296
-      dispense_files "${src}" "${name}" "headers" "${headerpath}"
298
+      dispense_files "${src}" "${name}" "headers" "${depend_subdir}" "${headerpath}"
297 299
    done
298 300
    IFS="${DEFAULT_IFS}"
299 301
 }
... ...
@@ -303,10 +305,11 @@ dispense_resources()
303 305
 {
304 306
    local sources="$1"
305 307
    local name="$2"
308
+   local depend_subdir="$3"
306 309
 
307 310
    local resourcepath
308 311
 
309
-   resourcepath="`read_build_setting "$1" "dispense_resources_path" "${RESOURCE_DIR_NAME}"`"
312
+   resourcepath="`read_build_setting "${name}" "dispense_resources_path" "${RESOURCE_DIR_NAME}"`"
310 313
 
311 314
    local src
312 315
    IFS="
... ...
@@ -315,7 +318,7 @@ dispense_resources()
315 318
    do
316 319
       IFS="${DEFAULT_IFS}"
317 320
 
318
-      dispense_files "${src}" "${name}" "resources" "${resourcepath}"
321
+      dispense_files "${src}" "${name}" "resources" "${depend_subdir}" "${resourcepath}"
319 322
    done
320 323
    IFS="${DEFAULT_IFS}"
321 324
 }
... ...
@@ -325,10 +328,11 @@ dispense_libexec()
325 328
 {
326 329
    local sources="$1"
327 330
    local name="$2"
331
+   local depend_subdir="$3"
328 332
 
329 333
    local libexecpath
330 334
 
331
-   libexecpath="`read_build_setting "$1" "dispense_resources_path" "/${LIBEXEC_DIR_NAME}"`"
335
+   libexecpath="`read_build_setting "${name}" "dispense_resources_path" "/${LIBEXEC_DIR_NAME}"`"
332 336
 
333 337
    local src
334 338
    IFS="
... ...
@@ -337,7 +341,7 @@ dispense_libexec()
337 341
    do
338 342
       IFS="${DEFAULT_IFS}"
339 343
 
340
-      dispense_files "${src}" "${name}" "libexec" "${libexecpath}"
344
+      dispense_files "${src}" "${name}" "libexec" "${depend_subdir}" "${libexecpath}"
341 345
    done
342 346
    IFS="${DEFAULT_IFS}"
343 347
 }
... ...
@@ -401,18 +405,15 @@ dispense_binaries()
401 405
 }
402 406
 
403 407
 
404
-collect_and_dispense_product()
408
+_collect_and_dispense_product()
405 409
 {
406
-   log_debug "collect_and_dispense_product" "$@"
410
+   log_debug "_collect_and_dispense_product" "$@"
407 411
 
408 412
    local name="$1"
409 413
    local build_subdir="$2"
410 414
    local depend_subdir="$3"
411 415
    local wasxcode="$4"
412 416
 
413
-   local  dst
414
-   local  src
415
-
416 417
    if read_yes_no_config_setting "skip_collect_and_dispense" "NO"
417 418
    then
418 419
       log_info "Skipped collection and dispensal on request"
... ...
@@ -435,6 +436,15 @@ collect_and_dispense_product()
435 436
    [ -z "${RESOURCE_DIR_NAME}" ]    && internal_fail "LIBRARY_DIR_NAME undefined"
436 437
    [ -z "${HEADER_DIR_NAME}" ]      && internal_fail "LIBRARY_DIR_NAME undefined"
437 438
 
439
+   #
440
+   # ensure basic structure is there to squelch linker warnings
441
+   #
442
+   log_fluff "Create default lib/, include/, Frameworks/ in ${REFERENCE_DEPENDENCIES_DIR}${depend_subdir}"
443
+
444
+   mkdir_if_missing "${REFERENCE_DEPENDENCIES_DIR}${depend_subdir}/${FRAMEWORK_DIR_NAME}"
445
+   mkdir_if_missing "${REFERENCE_DEPENDENCIES_DIR}${depend_subdir}/${LIBRARY_DIR_NAME}"
446
+   mkdir_if_missing "${REFERENCE_DEPENDENCIES_DIR}${depend_subdir}/${HEADER_DIR_NAME}"
447
+
438 448
    #
439 449
    # probably should use install_name_tool to hack all dylib paths that contain .ref
440 450
    # (will this work with signing stuff ?)
... ...
@@ -461,7 +471,7 @@ ${BUILD_DEPENDENCIES_DIR}/usr/local/libexec
461 471
 ${BUILD_DEPENDENCIES_DIR}/usr/libexec
462 472
 ${BUILD_DEPENDENCIES_DIR}/libexec"
463 473
 
464
-      dispense_libexec "${sources}" "${name}"
474
+      dispense_libexec "${sources}" "${name}" "${depend_subdir}"
465 475
 
466 476
 
467 477
       ##
... ...
@@ -472,7 +482,7 @@ ${BUILD_DEPENDENCIES_DIR}/usr/local/share
472 482
 ${BUILD_DEPENDENCIES_DIR}/usr/share
473 483
 ${BUILD_DEPENDENCIES_DIR}/share"
474 484
 
475
-      dispense_resources "${sources}" "${name}"
485
+      dispense_resources "${sources}" "${name}" "${depend_subdir}"
476 486
 
477 487
       ##
478 488
       ## copy headers
... ...
@@ -482,7 +492,7 @@ ${BUILD_DEPENDENCIES_DIR}/usr/local/include
482 492
 ${BUILD_DEPENDENCIES_DIR}/usr/include
483 493
 ${BUILD_DEPENDENCIES_DIR}/include"
484 494
 
485
-      dispense_headers  "${sources}" "${name}"
495
+      dispense_headers  "${sources}" "${name}" "${depend_subdir}"
486 496
 
487 497
 
488 498
       ##
... ...
@@ -510,6 +520,9 @@ ${BUILD_DEPENDENCIES_DIR}/Frameworks"
510 520
       dispense_binaries "${sources}" "${name}" "d" "${depend_subdir}" "/${FRAMEWORK_DIR_NAME}"
511 521
    fi
512 522
 
523
+   local dst
524
+   local src
525
+
513 526
    #
514 527
    # Delete empty dirs if so
515 528
    #
... ...
@@ -591,47 +604,95 @@ enforce_build_sanity()
591 604
 }
592 605
 
593 606
 
594
-determine_suffix()
607
+#
608
+# if only one configuration is chosen, make it the default
609
+# if there are multiple configurations, make Release the default
610
+# if Release is not in multiple configurations, then there is no default
611
+#
612
+determine_build_subdir()
595 613
 {
614
+   log_debug "determine_build_subdir" "$*"
615
+
596 616
    local configuration="$1"
597 617
    local sdk="$2"
598 618
 
599
-   [ ! -z "$configuration" ] || fail "configuration must not be empty"
600
-   [ ! -z "$sdk" ]           || fail "sdk must not be empty"
619
+   [ -z "$configuration" ] && internal_fail "configuration must not be empty"
620
+   [ -z "$sdk" ]           && internal_fail "sdk must not be empty"
601 621
 
602
-   local suffix
603
-   local hackish
622
+   sdk=`echo "${sdk}" | sed 's/^\([a-zA-Z]*\).*$/\1/g'`
604 623
 
605
-   suffix="${configuration}"
606
-   if [ "${sdk}" != "Default" ]
624
+   if [ "${sdk}" = "Default" ]
607 625
    then
608
-      hackish=`echo "${sdk}" | sed 's/^\([a-zA-Z]*\).*$/\1/g'`
609
-      suffix="${suffix}-${hackish}"
626
+      if [ "${configuration}" != "Release" ]
627
+      then
628
+         echo "/${configuration}"
629
+      fi
630
+   else
631
+      echo "/${configuration}-${sdk}"
610 632
    fi
611
-   echo "${suffix}"
612 633
 }
613 634
 
614 635
 
615
-#
616
-# if only one configuration is chosen, make it the default
617
-# if there are multiple configurations, make Release the default
618
-# if Release is not in multiple configurations, then there is no default
619
-#
620
-determine_build_subdir()
636
+determine_dependencies_subdir()
621 637
 {
622
-   echo "/$1"
623
-}
638
+   log_debug "determine_dependencies_subdir" "$*"
639
+
640
+   local configuration="$1"
641
+   local sdk="$2"
642
+   local style="$3"
624 643
 
644
+   [ -z "$configuration" ] && internal_fail "configuration must not be empty"
645
+   [ -z "$sdk" ]           && internal_fail "sdk must not be empty"
646
+   [ -z "$BUILD_SDKS" ]    && internal_fail "BUILD_SDKS must not be empty"
625 647
 
626
-determine_dependencies_subdir()
627
-{
628
-   if [ "${N_CONFIGURATIONS}" -gt 1 ]
648
+   sdk=`echo "${sdk}" | sed 's/^\([a-zA-Z]*\).*$/\1/g'`
649
+
650
+   if [ "${style}" = "auto" ]
629 651
    then
630
-      if [ "$1" != "Release" ]
652
+      style="configuration"
653
+
654
+      n_sdks="`echo "${BUILD_SDKS}" | wc -l | awk '{ print $1 }'`"
655
+      if [ $n_sdks -gt 1 ]
631 656
       then
632
-         echo "/$1"
657
+         style="configuration-sdk"
633 658
       fi
634 659
    fi
660
+
661
+   case "${style}" in
662
+      "none")
663
+      ;;
664
+
665
+      "configuration-strict")
666
+         echo "/${configuration}"
667
+      ;;
668
+
669
+      "configuration-sdk-strict")
670
+         echo "/${configuration}-${sdk}"
671
+      ;;
672
+
673
+      "configuration-sdk")
674
+         if [ "${sdk}" = "Default" ]
675
+         then
676
+            if [ "${configuration}" != "Release" ]
677
+            then
678
+               echo "/${configuration}"
679
+            fi
680
+         else
681
+            echo "/${configuration}-${sdk}"
682
+         fi
683
+      ;;
684
+
685
+      "configuration")
686
+         if [ "${configuration}" != "Release" ]
687
+         then
688
+            echo "/${configuration}"
689
+         fi
690
+      ;;
691
+
692
+      *)
693
+         fail "unknown value \"${BUILD_DISPENSE_STYLE}\" for dispense_style"
694
+      ;;
695
+   esac
635 696
 }
636 697
 
637 698
 
... ...
@@ -702,19 +763,17 @@ _build_flags()
702 763
    local mapped="$6"
703 764
 
704 765
    local fallback
705
-   local suffix
706 766
 
707 767
    fallback="`echo "${OPTION_CONFIGURATIONS}" | tail -1`"
708 768
    fallback="`read_build_setting "${name}" "fallback-configuration" "${fallback}"`"
709
-   suffix="`determine_suffix "${configuration}" "${sdk}"`"
710 769
 
711 770
    local mappedsubdir
712 771
    local fallbacksubdir
713 772
    local suffixsubdir
714 773
 
715
-   mappedsubdir="`determine_dependencies_subdir "${mapped}"`"
716
-   suffixsubdir="`determine_dependencies_subdir "${suffix}"`"
717
-   fallbacksubdir="`determine_dependencies_subdir "${fallback}"`"
774
+   suffixsubdir="`determine_dependencies_subdir "${configuration}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
775
+   mappedsubdir="`determine_dependencies_subdir "${mapped}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
776
+   fallbacksubdir="`determine_dependencies_subdir "${fallback}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
718 777
 
719 778
    (
720 779
       local nativewd
... ...
@@ -849,9 +908,11 @@ _build_flags()
849 908
       echo "${native_includelines}"
850 909
       echo "${native_librarylines}"
851 910
       echo "${native_frameworklines}"
911
+
852 912
       echo "${includelines}"
853 913
       echo "${librarylines}"
854 914
       echo "${frameworklines}"
915
+      echo "${nativewd}/${REFERENCE_DEPENDENCIES_DIR}${suffixsubdir}"
855 916
    )
856 917
 }
857 918
 
... ...
@@ -951,17 +1012,26 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
951 1012
    mapped="`read_build_setting "${name}" "cmake-${configuration}.map" "${configuration}"`"
952 1013
    flaglines="`build_cmake_flags "$@" "${mapped}"`"
953 1014
 
1015
+
954 1016
    local cppflags
955 1017
    local ldflags
956 1018
    local includelines
957 1019
    local librarylines
958 1020
    local frameworklines
1021
+   local dependenciesdir
1022
+
1023
+   cppflags="`echo "${flaglines}"        | sed -n '1p'`"
1024
+   ldflags="`echo "${flaglines}"         | sed -n '2p'`"
1025
+   includelines="`echo "${flaglines}"    | sed -n '6p'`"
1026
+   librarylines="`echo "${flaglines}"    | sed -n '7p'`"
1027
+   frameworklines="`echo "${flaglines}"  | sed -n '8p'`"
1028
+   dependenciesdir="`echo "${flaglines}" | sed -n '9p'`"
1029
+
1030
+   local addictionsdir
1031
+   local binpath
959 1032
 
960
-   cppflags="`echo "${flaglines}"       | sed -n '1p'`"
961
-   ldflags="`echo "${flaglines}"        | sed -n '2p'`"
962
-   includelines="`echo "${flaglines}"   | sed -n '6p'`"
963
-   librarylines="`echo "${flaglines}"   | sed -n '7p'`"
964
-   frameworklines="`echo "${flaglines}" | sed -n '8p'`"
1033
+   addictionsdir="${PWD}/${REFERENCE_ADDICTIONS_DIR}"
1034
+   binpath="${dependenciesdir}/bin"
965 1035
 
966 1036
    # CMAKE_CPP_FLAGS does not exist in cmake
967 1037
    # so merge into CFLAGS and CXXFLAGS
... ...
@@ -1047,7 +1117,9 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1047 1117
       [ -z "${BUILDPATH}" ] && internal_fail "BUILDPATH not set"
1048 1118
 
1049 1119
       oldpath="$PATH"
1050
-      PATH="${BUILDPATH}"
1120
+      PATH="${binpath}:${BUILDPATH}"
1121
+
1122
+      log_fluff "PATH temporarily set to $PATH"
1051 1123
 
1052 1124
       local prefixbuild
1053 1125
 
... ...
@@ -1055,12 +1127,6 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1055 1127
 
1056 1128
       local cmake_dirs
1057 1129
 
1058
-      local dependenciesdir
1059
-      local addictionsdir
1060
-
1061
-      dependenciesdir="${nativewd}/${REFERENCE_DEPENDENCIES_DIR}"
1062
-      addictionsdir="${nativewd}/${REFERENCE_ADDICTIONS_DIR}"
1063
-
1064 1130
       if [ ! -z "${dependenciesdir}" ]
1065 1131
       then
1066 1132
          cmake_dirs="-DDEPENDENCIES_DIR='${dependenciesdir}'"
... ...
@@ -1128,11 +1194,6 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1128 1194
       set +f
1129 1195
 
1130 1196
    ) || exit 1
1131
-
1132
-   local depend_subdir
1133
-
1134
-   depend_subdir="`determine_dependencies_subdir "${suffix}"`"
1135
-   collect_and_dispense_product "${name}" "${suffixsubdir}" "${depend_subdir}" || internal_fail "collect failed silently"
1136 1197
 }
1137 1198
 
1138 1199
 
... ...
@@ -1146,17 +1207,11 @@ build_configure()
1146 1207
 {
1147 1208
    log_debug "build_configure" "$*"
1148 1209
 
1149
-   local configuration
1150
-   local srcdir
1151
-   local builddir
1152
-   local name
1153
-   local sdk
1154
-
1155
-   configuration="$1"
1156
-   srcdir="$2"
1157
-   builddir="$3"
1158
-   name="$4"
1159
-   sdk="$5"
1210
+   local configuration="$1"
1211
+   local srcdir="$2"
1212
+   local builddir="$3"
1213
+   local name="$4"
1214
+   local sdk="$5"
1160 1215
 
1161 1216
    if [ -z "${MAKE}" ]
1162 1217
    then
... ...
@@ -1208,9 +1263,17 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1208 1263
 
1209 1264
    local cppflags
1210 1265
    local ldflags
1266
+   local dependenciesdir
1211 1267
 
1212 1268
    cppflags="`echo "${flaglines}" | sed -n '1p'`"
1213 1269
    ldflags="`echo "${flaglines}"  | sed -n '2p'`"
1270
+   dependenciesdir="`echo "${flaglines}"  | sed -n '9p'`"
1271
+
1272
+   local addictionsdir
1273
+   local binpath
1274
+
1275
+   addictionsdir="${nativewd}/${REFERENCE_ADDICTIONS_DIR}"
1276
+   binpath="${dependenciesdir}/bin"
1214 1277
 
1215 1278
    # CMAKE_CPP_FLAGS does not exist in cmake
1216 1279
    # so merge into CFLAGS and CXXFLAGS
... ...
@@ -1288,12 +1351,6 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1288 1351
 
1289 1352
       log_verbose "Build logs will be in \"${logfile1}\" and \"${logfile2}\""
1290 1353
 
1291
-      local dependenciesdir
1292
-      local addictionsdir
1293
-
1294
-      dependenciesdir="${nativewd}/${REFERENCE_DEPENDENCIES_DIR}"
1295
-      addictionsdir="${nativewd}/${REFERENCE_ADDICTIONS_DIR}"
1296
-
1297 1354
       local prefixbuild
1298 1355
 
1299 1356
       prefixbuild="`add_component "${prefixbuild}" "${nativewd}/${BUILD_DEPENDENCIES_DIR}"`"
... ...
@@ -1302,7 +1359,9 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1302 1359
       local rval
1303 1360
 
1304 1361
       oldpath="$PATH"
1305
-      PATH="${BUILDPATH}"
1362
+      PATH="${binpath}:${BUILDPATH}"
1363
+
1364
+      log_fluff "PATH temporarily set to $PATH"
1306 1365
 
1307 1366
        # use absolute paths for configure, safer (and easier to read IMO)
1308 1367
       logging_redirect_eval_exekutor "${logfile1}" \
... ...
@@ -1328,15 +1387,9 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO} in \"${builddir}\" ..."
1328 1387
       PATH="${oldpath}"
1329 1388
       [ $rval -ne 0 ] && build_fail "${logfile2}" "make"
1330 1389
 
1331
-      PATH="${oldpath}"
1332 1390
       set +f
1333 1391
 
1334 1392
    ) || exit 1
1335
-
1336
-   local depend_subdir
1337
-
1338
-   depend_subdir="`determine_dependencies_subdir "${suffix}"`"
1339
-   collect_and_dispense_product "${name}" "${suffixsubdir}" "${depend_subdir}" || exit 1
1340 1393
 }
1341 1394
 
1342 1395
 
... ...
@@ -1446,23 +1499,14 @@ build_xcodebuild()
1446 1499
 {
1447 1500
    log_debug "build_xcodebuild" "$*"
1448 1501
 
1449
-   local configuration
1450
-   local srcdir
1451
-   local builddir
1452
-   local name
1453
-   local sdk
1454
-   local project
1455
-   local schemename
1456
-   local targetname
1457
-
1458
-   configuration="$1"
1459
-   srcdir="$2"
1460
-   builddir="$3"
1461
-   name="$4"
1462
-   sdk="$5"
1463
-   project="$6"
1464
-   schemename="$7"
1465
-   targetname="$8"
1502
+   local configuration="$1"
1503
+   local srcdir="$2"
1504
+   local builddir="$3"
1505
+   local name="$4"
1506
+   local sdk="$5"
1507
+   local project="$6"
1508
+   local schemename="$7"
1509
+   local targetname="$8"
1466 1510
 
1467 1511
    [ ! -z "${configuration}" ] || internal_fail "configuration is empty"
1468 1512
    [ ! -z "${srcdir}" ]        || internal_fail "srcdir is empty"
... ...
@@ -1514,7 +1558,7 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1514 1558
    local targetname
1515 1559
    local suffix
1516 1560
 
1517
-   suffix="${configuration}"
1561
+   suffix="${mapped}"
1518 1562
    if [ "${sdk}" != "Default" ]
1519 1563
    then
1520 1564
       hackish="`echo "${sdk}" | sed 's/^\([a-zA-Z]*\).*$/\1/g'`"
... ...
@@ -1528,10 +1572,12 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1528 1572
    local mappedsubdir
1529 1573
    local fallbacksubdir
1530 1574
    local suffixsubdir
1575
+   local binpath
1531 1576
 
1532
-   mappedsubdir="`determine_dependencies_subdir "${mapped}"`"
1533
-   suffixsubdir="`determine_dependencies_subdir "${suffix}"`"
1534
-   fallbacksubdir="`determine_dependencies_subdir "${fallback}"`"
1577
+   suffixsubdir="`determine_dependencies_subdir "${configuration}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
1578
+   mappedsubdir="`determine_dependencies_subdir "${mapped}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
1579
+   fallbacksubdir="`determine_dependencies_subdir "${fallback}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
1580
+   binpath="${PWD}/${REFERENCE_DEPENDENCIES_DIR}${suffixsubdir}/bin"
1535 1581
 
1536 1582
    local xcode_proper_skip_install
1537 1583
    local skip_install
... ...
@@ -1600,7 +1646,6 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1600 1646
    default="/include/${name}/private"
1601 1647
    private_headers="`fixup_header_path "PRIVATE_HEADERS_FOLDER_PATH" "xcode_private_headers" "${name}" "${default}" ${arguments}`"
1602 1648
 
1603
-
1604 1649
    local logfile
1605 1650
 
1606 1651
    mkdir_if_missing "${BUILDLOGS_DIR}"
... ...
@@ -1754,14 +1799,17 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1754 1799
       local rval
1755 1800
 
1756 1801
       oldpath="${PATH}"
1757
-      PATH="${BUILDPATH}"
1802
+      PATH="${binpath}:${BUILDPATH}"
1803
+
1804
+      log_fluff "PATH temporarily set to $PATH"
1805
+
1758 1806
       # if it doesn't install, probably SKIP_INSTALL is set
1759 1807
       cmdline="\"${XCODEBUILD}\" \"${command}\" ${arguments} \
1760 1808
 ARCHS='${ARCHS:-\${ARCHS_STANDARD_32_64_BIT}}' \
1761 1809
 DSTROOT='${owd}/${BUILD_DEPENDENCIES_DIR}' \
1762 1810
 SYMROOT='${owd}/${builddir}/' \
1763 1811
 OBJROOT='${owd}/${builddir}/obj' \
1764
-DEPENDENCIES_DIR='${owd}/${REFERENCE_DEPENDENCIES_DIR}' \
1812
+DEPENDENCIES_DIR='${owd}/${REFERENCE_DEPENDENCIES_DIR}${suffixsubdir}' \
1765 1813
 ADDICTIONS_DIR='${owd}/${REFERENCE_ADDICTIONS_DIR}' \
1766 1814
 ONLY_ACTIVE_ARCH=${ONLY_ACTIVE_ARCH:-NO} \
1767 1815
 ${skip_install} \
... ...
@@ -1781,11 +1829,6 @@ FRAMEWORK_SEARCH_PATHS='${dependencies_framework_search_path}'"
1781 1829
       set +f
1782 1830
 
1783 1831
    exekutor cd "${owd}"
1784
-
1785
-   local depend_subdir
1786
-
1787
-   depend_subdir="`determine_dependencies_subdir "${suffix}"`"
1788
-   collect_and_dispense_product "${name}" "${suffixsubdir}" "${depend_subdir}" "YES" || exit 1
1789 1832
 }
1790 1833
 
1791 1834
 
... ...
@@ -1793,13 +1836,9 @@ build_xcodebuild_schemes_or_target()
1793 1836
 {
1794 1837
    log_debug "build_xcodebuild_schemes_or_target" "$*"
1795 1838
 
1796
-   local builddir
1797
-   local name
1798
-   local project
1799
-
1800
-   builddir="$3"
1801
-   name="$4"
1802
-   project="$6"
1839
+   local builddir="$3"
1840
+   local name="$4"
1841
+   local project="$6"
1803 1842
 
1804 1843
    local scheme
1805 1844
    local schemes
... ...
@@ -1856,17 +1895,11 @@ build_script()
1856 1895
    script="$1"
1857 1896
    shift
1858 1897
 
1859
-   local configuration
1860
-   local srcdir
1861
-   local builddir
1862
-   local name
1863
-   local sdk
1864
-
1865
-   configuration="$1"
1866
-   srcdir="$2"
1867
-   builddir="$3"
1868
-   name="$4"
1869
-   sdk="$5"
1898
+   local configuration="$1"
1899
+   local srcdir="$2"
1900
+   local builddir="$3"
1901
+   local name="$4"
1902
+   local sdk="$5"
1870 1903
 
1871 1904
    enforce_build_sanity "${builddir}"
1872 1905
 
... ...
@@ -1880,6 +1913,12 @@ build_script()
1880 1913
    logfile="${BUILDLOGS_DIR}/${name}-${configuration}-${sdk}.script.log"
1881 1914
    logfile="`absolutepath "${logfile}"`"
1882 1915
 
1916
+   local suffixsubdir
1917
+   local binpath
1918
+
1919
+   suffixsubdir="`determine_dependencies_subdir "${configuration}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
1920
+   binpath="${PWD}/${REFERENCE_DEPENDENCIES_DIR}${suffixsubdir}/bin"
1921
+
1883 1922
    log_fluff "Build log will be in: ${C_RESET_BOLD}${logfile}${C_INFO}"
1884 1923
 
1885 1924
    mkdir_if_missing "${builddir}"
... ...
@@ -1908,7 +1947,9 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1908 1947
       local rval
1909 1948
 
1910 1949
       oldpath="${PATH}"
1911
-      PATH="${BUILDPATH}"
1950
+      PATH="${binpath}:${BUILDPATH}"
1951
+
1952
+      log_fluff "PATH temporarily set to $PATH"
1912 1953
 
1913 1954
       run_log_build_script "${owd}/${script}" \
1914 1955
          "${configuration}" \
... ...
@@ -1923,15 +1964,20 @@ ${C_MAGENTA}${C_BOLD}${sdk}${C_INFO}${info} in \
1923 1964
       [ $rval -ne 0 ] && build_fail "${logfile}" "build.sh"
1924 1965
 
1925 1966
    exekutor cd "${owd}"
1967
+}
1968
+
1969
+
1970
+collect_and_dispense_product()
1971
+{
1972
+   local name="$1"
1973
+   local configuration="$2"
1974
+   local sdk="$3"
1975
+   local wasxcode="$4"
1926 1976
 
1927
-   local suffix
1928 1977
    local depend_subdir
1929
-   local suffixsubdir
1930 1978
 
1931
-   suffix="`determine_suffix "${configuration}" "${sdk}"`"
1932
-   suffixsubdir="`determine_build_subdir "${suffix}"`"
1933
-   depend_subdir="`determine_dependencies_subdir "${suffix}"`"
1934
-   collect_and_dispense_product "${name}" "${suffixsubdir}" "${depend_subdir}" || internal_fail "collect failed silently"
1979
+   depend_subdir="`determine_dependencies_subdir "${configuration}" "${sdk}" "${OPTION_DISPENSE_STYLE}"`" || exit 1
1980
+   _collect_and_dispense_product "${name}" "${build_subdir}" "${depend_subdir}" "${wasxcode}"
1935 1981
 }
1936 1982
 
1937 1983
 
... ...
@@ -1939,19 +1985,10 @@ build_with_configuration_sdk_preferences()
1939 1985
 {
1940 1986
    log_debug "build_with_configuration_sdk_preferences" "$*"
1941 1987
 
1942
-   local name
1943
-   local configuration
1944
-   local sdk
1945
-   local preferences
1946
-
1947
-   name="$1"
1948
-   [ $# -ne 0 ] && shift
1949
-   configuration="$1"
1950
-   [ $# -ne 0 ] && shift
1951
-   sdk="$1"
1952
-   [ $# -ne 0 ] && shift
1953
-   preferences="$1"
1954
-   [ $# -ne 0 ] && shift
1988
+   local name="$1"; shift
1989
+   local configuration="$1"; shift
1990
+   local sdk="$1" ; shift
1991
+   local preferences="$1" ; shift
1955 1992
 
1956 1993
    if [ "/${configuration}" = "/${LIBRARY_DIR_NAME}" -o "/${configuration}" = "${HEADER_DIR_NAME}" -o "/${configuration}" = "${FRAMEWORK_DIR_NAME}" ]
1957 1994
    then
... ...
@@ -1963,9 +2000,12 @@ build_with_configuration_sdk_preferences()
1963 2000
       fail "You are just asking for major trouble naming your configuration \"${configuration}\"."
1964 2001
    fi
1965 2002
 
2003
+   # always build into fully qualified
2004
+   local build_subdir
1966 2005
    local builddir
1967 2006
 
1968
-   builddir="${CLONESBUILD_DIR}/${configuration}/${name}"
2007
+   build_subdir="`determine_build_subdir "${configuration}" "${sdk}"`" || exit 1
2008
+   builddir="${CLONESBUILD_DIR}${build_subdir}/${name}"
1969 2009
 
1970 2010
    if [ -d "${builddir}" -a "${OPTION_CLEAN_BEFORE_BUILD}" = "YES" ]
1971 2011
    then
... ...
@@ -1974,16 +2014,21 @@ build_with_configuration_sdk_preferences()
1974 2014
    fi
1975 2015
 
1976 2016
    local project
2017
+   local rval
2018
+   local wasxcode
1977 2019
 
2020
+   rval=1
1978 2021
    for preference in ${preferences}
1979 2022
    do
2023
+      wasxcode="NO"
1980 2024
       case "${preference}" in
1981 2025
          script)
1982 2026
             script="`find_build_setting_file "${name}" "bin/build.sh"`"
1983 2027
             if [ -x "${script}" ]
1984 2028
             then
1985 2029
                build_script "${script}" "${configuration}" "${srcdir}" "${builddir}" "${name}" "${sdk}" || exit 1
1986
-               return 0
2030
+               rval=$?
2031
+               break
1987 2032
             else
1988 2033
                [ ! -e "${script}" ] || fail "script ${script} is not executable"
1989 2034
                log_fluff "There is no build script in \"`build_setting_path "${name}" "bin/build.sh"`\""
... ...
@@ -2006,7 +2051,9 @@ build_with_configuration_sdk_preferences()
2006 2051
                      log_warning "Found a Xcode project, but ${C_RESET}${C_BOLD}xcodebuild${C_WARNING} is not installed"
2007 2052
                   else
2008 2053
                      build_xcodebuild_schemes_or_target "${configuration}" "${srcdir}" "${builddir}" "${name}" "${sdk}" "${project}"  || exit 1
2009
-                     return 0
2054
+                     rval=$?
2055
+                     wasxcode="YES"
2056
+                     break
2010 2057
                   fi
2011 2058
                fi
2012 2059
             else
... ...
@@ -2029,7 +2076,8 @@ build_with_configuration_sdk_preferences()
2029 2076
                   log_warning "Found a ./configure, but ${C_RESET}${C_BOLD}make${C_WARNING} is not installed"
2030 2077
                else
2031 2078
                   build_configure "${configuration}" "${srcdir}" "${builddir}" "${name}" "${sdk}"  || exit 1
2032
-                  return 0
2079
+                  rval=$?
2080
+                  break
2033 2081
                fi
2034 2082
             else
2035 2083
                log_fluff "There is no configure script in \"${srcdir}\""
... ...
@@ -2046,7 +2094,8 @@ build_with_configuration_sdk_preferences()
2046 2094
                   log_warning "Found a CMakeLists.txt, but ${C_RESET}${C_BOLD}cmake${C_WARNING} is not installed"
2047 2095
                else
2048 2096
                   build_cmake "${configuration}" "${srcdir}" "${builddir}" "${name}" "${sdk}"  || exit 1
2049
-                  return 0
2097
+                  rval=$?
2098
+                  break
2050 2099
                fi
2051 2100
             else
2052 2101
                log_fluff "There is no CMakeLists.txt file in \"${srcdir}\""
... ...
@@ -2063,7 +2112,13 @@ build_with_configuration_sdk_preferences()
2063 2112
       esac
2064 2113
    done
2065 2114
 
2066
-   return 1
2115
+   if [ $rval -eq 0 ]
2116
+   then
2117
+      collect_and_dispense_product "${name}" "${configuration}" "${sdk}" "${wasxcode}" || \
2118
+         internal_fail "collect failed silently"
2119
+   fi
2120
+
2121
+   return $rval
2067 2122
 }
2068 2123
 
2069 2124
 
... ...
@@ -2118,19 +2173,31 @@ configure"`"
2118 2173
    local sdk
2119 2174
 
2120 2175
    # need uniform SDK for our builds
2121
-   sdks=`read_build_setting "${name}" "sdks" "Default"`
2176
+   sdks=`read_build_setting "${name}" "sdks" "${OPTION_SDKS}"`
2177
+
2122 2178
    [ ! -z "${sdks}" ] || fail "setting \"sdks\" must at least contain \"Default\" to build anything"
2123 2179
 
2124 2180
    # settings can override the commandline default
2125 2181
    configurations="`read_build_setting "${name}" "configurations" "${OPTION_CONFIGURATIONS}"`"
2126 2182
 
2183
+   # "export" some globals
2184
+   local BUILD_CONFIGURATIONS
2185
+   local BUILD_SDKS
2186
+
2187
+   BUILD_CONFIGURATIONS="${configurations}"
2188
+   BUILD_SDKS="${sdks}"
2189
+
2127 2190
    for sdk in ${sdks}
2128 2191
    do
2129
-      # remap macosx to Default, as EFFECTIVE_PLATFORM_NAME will not be appeneded by Xcode
2130
-      if [ "$sdk" = "macosx" ]
2131
-      then
2132
-         sdk="Default"
2133
-      fi
2192
+      # remap macosx to Default, as EFFECTIVE_PLATFORM_NAME will not be appended by Xcode
2193
+      case "${UNAME}" in
2194
+         darwin)
2195
+            if [ "$sdk" = "macosx" ]
2196
+            then
2197
+               sdk="Default"
2198
+            fi
2199
+         ;;
2200
+      esac
2134 2201
 
2135 2202
       for configuration in ${configurations}
2136 2203
       do
... ...
@@ -2441,10 +2508,12 @@ build_main()
2441 2508
    local OPTION_CLEAN_BEFORE_BUILD
2442 2509
    local OPTION_CHECK_USR_LOCAL_INCLUDE
2443 2510
    local OPTION_CONFIGURATIONS
2511
+   local OPTION_SDKS
2444 2512
    local OPTION_ADD_USR_LOCAL
2445 2513
    local OPTION_USE_CC_CXX
2446 2514
    local OPTION_FROM
2447 2515
    local OPTION_TO
2516
+   local OPTION_DISPENSE_STYLE  # keep empty
2448 2517
 
2449 2518
    OPTION_CHECK_USR_LOCAL_INCLUDE="`read_config_setting "check_usr_local_include" "NO"`"
2450 2519
    OPTION_USE_CC_CXX="`read_config_setting "use_cc_cxx" "YES"`"
... ...
@@ -2456,9 +2525,9 @@ build_main()
2456 2525
    while [ $# -ne 0 ]
2457 2526
    do
2458 2527
       case "$1" in
2459
-         -c|--configuration)
2528
+         -c|--configuration|--configurations)
2529
+            [ $# -eq 1 ] && fail "argument for $1 is missing"
2460 2530
             shift
2461
-            [ $# -ne 0 ] || fail "configuration names missing"
2462 2531
 
2463 2532
             OPTION_CONFIGURATIONS="`printf "%s" "$1" | tr ',' '\012'`"
2464 2533
             ;;
... ...
@@ -2470,11 +2539,13 @@ build_main()
2470 2539
 
2471 2540
          --debug)
2472 2541
             OPTION_CONFIGURATIONS="Debug"
2542
+            OPTION_DISPENSE_STYLE="none"
2473 2543
          ;;
2474 2544
 
2475 2545
          --from)
2476 2546
             [ $# -eq 1 ] && fail "argument for $1 is missing"
2477 2547
             shift
2548
+
2478 2549
             OPTION_FROM="$1"
2479 2550
          ;;
2480 2551
 
... ...
@@ -2500,8 +2571,8 @@ build_main()
2500 2571
          ;;
2501 2572
 
2502 2573
          --prefix)
2574
+            [ $# -eq 1 ] && fail "argument for $1 is missing"
2503 2575
             shift
2504
-            [ $# -ne 0 ] || fail "prefix missing"
2505 2576
 
2506 2577
             USR_LOCAL_INCLUDE="$1/include"
2507 2578
             USR_LOCAL_LIB="$1/lib"
... ...
@@ -2509,8 +2580,17 @@ build_main()
2509 2580
 
2510 2581
          --release)
2511 2582
             OPTION_CONFIGURATIONS="Release"
2583
+            OPTION_DISPENSE_STYLE="none"
2512 2584
          ;;
2513 2585
 
2586
+         -sdk|--sdks)
2587
+            [ $# -eq 1 ] && fail "argument for $1 is missing"
2588
+            shift
2589
+
2590
+            OPTION_SDKS="`printf "%s" "$1" | tr ',' '\012'`"
2591
+         ;;
2592
+
2593
+
2514 2594
          --to)
2515 2595
             [ $# -eq 1 ] && fail "argument for $1 is missing"
2516 2596
             shift
... ...
@@ -2553,9 +2633,21 @@ build_main()
2553 2633
 
2554 2634
    build_complete_environment
2555 2635
 
2556
-   [ -z "${MULLE_BOOTSTRAP_COMMAND_SH}" ]      && . mulle-bootstrap-command.sh
2557
-   [ -z "${MULLE_BOOTSTRAP_GCC_SH}" ]          && . mulle-bootstrap-gcc.sh
2558
-   [ -z "${MULLE_BOOTSTRAP_SCRIPTS_SH}" ]      && . mulle-bootstrap-scripts.sh
2636
+   [ -z "${MULLE_BOOTSTRAP_COMMAND_SH}" ] && . mulle-bootstrap-command.sh
2637
+   [ -z "${MULLE_BOOTSTRAP_GCC_SH}" ]     && . mulle-bootstrap-gcc.sh
2638
+   [ -z "${MULLE_BOOTSTRAP_SCRIPTS_SH}" ] && . mulle-bootstrap-scripts.sh
2639
+
2640
+   case "${ADDICTIONS_DIR}" in
2641
+      /*|~*)
2642
+         internal_fail "ADDICTIONS_DIR must not be an absolute path"
2643
+      ;;
2644
+   esac
2645
+   case "${DEPENDENCIES_DIR}" in
2646
+      /*|~*)
2647
+         internal_fail "DEPENDENCIES_DIR must not be an absolute path"
2648
+      ;;
2649
+   esac
2650
+
2559 2651
 
2560 2652
    #
2561 2653
    #
... ...
@@ -49,6 +49,9 @@ Commands:
49 49
 ${OUTPUT_CLEANABLE_FILES}
50 50
 ${OUTPUT_CLEANABLE_SUBDIRS}"  | sort| sed '/^$/d' | sed -e 's/^/      /'`
51 51
 
52
+   config : useful if config changes are not picked up
53
+`echo "${CONFIG_CLEANABLE_SUBDIRS}" | sort| sed '/^$/d' | sed -e 's/^/      /'`
54
+
52 55
    install : keep only addictions and dependencies
53 56
 `echo "${BUILD_CLEANABLE_SUBDIRS}
54 57
 ${OUTPUT_CLEANABLE_FILES}
... ...
@@ -177,6 +180,7 @@ setup_clean_environment()
177 180
    BUILD_CLEANABLE_SUBDIRS="`read_sane_config_path_setting "clean_folders" "${CLONESBUILD_DIR}
178