mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-10 19:39:39 +01:00
Compare commits
1513 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16a39a42d1 | ||
|
|
fd9aaf2832 | ||
|
|
82829db29d | ||
|
|
e825f6b139 | ||
|
|
813c99e156 | ||
|
|
588fa37f8b | ||
|
|
4f669774b0 | ||
|
|
416f5cdc55 | ||
|
|
7517b9d193 | ||
|
|
85e0e11843 | ||
|
|
377e8bc2a1 | ||
|
|
35207fabd8 | ||
|
|
f8e41b7214 | ||
|
|
5c74f9ccd8 | ||
|
|
47888130b0 | ||
|
|
cf287c5bdc | ||
|
|
2e1841432e | ||
|
|
0da7ffe975 | ||
|
|
d9bdcf768d | ||
|
|
7ff7a479d3 | ||
|
|
60ac15be03 | ||
|
|
c0ff698735 | ||
|
|
f47a3adeb5 | ||
|
|
387fa43d58 | ||
|
|
c0ed0fe433 | ||
|
|
9f54520b2a | ||
|
|
f220e4ba74 | ||
|
|
2ce58a51ef | ||
|
|
437865ac86 | ||
|
|
4c1c105949 | ||
|
|
3b465d09e0 | ||
|
|
3f51f1559c | ||
|
|
6687eed677 | ||
|
|
b68547cfb0 | ||
|
|
8b11df5877 | ||
|
|
5402ebecbe | ||
|
|
1e71336c0e | ||
|
|
8d3083be98 | ||
|
|
94b5097d21 | ||
|
|
4ab6f2a73e | ||
|
|
ffd7528dd6 | ||
|
|
48f12f491b | ||
|
|
254e28b7cf | ||
|
|
f7572e0628 | ||
|
|
191ae560a0 | ||
|
|
be8dbb0877 | ||
|
|
98a2eb05ee | ||
|
|
76281117bf | ||
|
|
880e094125 | ||
|
|
1ea6601fc6 | ||
|
|
82de8ca546 | ||
|
|
1816508a22 | ||
|
|
d2389af324 | ||
|
|
ff8542fff0 | ||
|
|
5d0ace24f4 | ||
|
|
7dabba40ee | ||
|
|
2de299b086 | ||
|
|
2b9085a585 | ||
|
|
4dfe47f624 | ||
|
|
b7e6e0d9a7 | ||
|
|
7276daddd4 | ||
|
|
1e6dfd83d2 | ||
|
|
f184d1b548 | ||
|
|
614cc9b497 | ||
|
|
3de2a40e44 | ||
|
|
e928258f9b | ||
|
|
a49d72bf01 | ||
|
|
8c03b67bb2 | ||
|
|
05c777aa20 | ||
|
|
b3e44182da | ||
|
|
c9ae237ecb | ||
|
|
e97f581052 | ||
|
|
e3f1a15d93 | ||
|
|
c3d9838efd | ||
|
|
b25a3c46ea | ||
|
|
077bda2dc8 | ||
|
|
e4e1dd33ec | ||
|
|
56b6c34c1f | ||
|
|
c5babb5315 | ||
|
|
914f8091eb | ||
|
|
4840199698 | ||
|
|
41d3464396 | ||
|
|
ac6583b7b7 | ||
|
|
3b87c73fa1 | ||
|
|
6b3281d3e6 | ||
|
|
7e7b1dc28b | ||
|
|
2fe5f25d88 | ||
|
|
cdc63696c6 | ||
|
|
2e7611228e | ||
|
|
7ca2d79ebc | ||
|
|
182acce83c | ||
|
|
e9d867ac0a | ||
|
|
d83efbefba | ||
|
|
b78cbd84ff | ||
|
|
44bf487aad | ||
|
|
d0b48aded1 | ||
|
|
d2f0792c39 | ||
|
|
7e3678dc36 | ||
|
|
1e2378a69c | ||
|
|
de809c8933 | ||
|
|
a8f017ad48 | ||
|
|
932712ecff | ||
|
|
858d241255 | ||
|
|
e4dc96218e | ||
|
|
a1f493478a | ||
|
|
10dbe83b2a | ||
|
|
9ae7921b89 | ||
|
|
dfee1f885f | ||
|
|
a9334fd7af | ||
|
|
459942acca | ||
|
|
0d31106b56 | ||
|
|
7cd98c80f5 | ||
|
|
94ed22086f | ||
|
|
0635a89ca5 | ||
|
|
b5107ed1b5 | ||
|
|
21f7fabe1f | ||
|
|
39803c9fe7 | ||
|
|
9e33e4f110 | ||
|
|
8838e7396e | ||
|
|
8a3342a6f0 | ||
|
|
ed6697aa20 | ||
|
|
bababbe74b | ||
|
|
c24c4b5f71 | ||
|
|
fd3d95e5f5 | ||
|
|
99b0a598c8 | ||
|
|
578b7d9671 | ||
|
|
c6204fddc8 | ||
|
|
c032e73d2d | ||
|
|
61bc4ca404 | ||
|
|
8e64d3b166 | ||
|
|
3559695d9d | ||
|
|
07c15d0cad | ||
|
|
1933fdced6 | ||
|
|
75eddf94d1 | ||
|
|
bc6de0086a | ||
|
|
e989f7c362 | ||
|
|
651770b5df | ||
|
|
cb0a4b76f5 | ||
|
|
e7ceea1e53 | ||
|
|
2a504c4c16 | ||
|
|
e1d1a88f95 | ||
|
|
60349d25cd | ||
|
|
dfc4b7f412 | ||
|
|
8e4345a87e | ||
|
|
abf322bf84 | ||
|
|
0c48f0d65b | ||
|
|
3e199d591f | ||
|
|
02991139fb | ||
|
|
f3b8781442 | ||
|
|
8feafa20cf | ||
|
|
abc61ba12d | ||
|
|
111563dc52 | ||
|
|
2b7ba88d55 | ||
|
|
7460f5d8f2 | ||
|
|
2fd7bebdb7 | ||
|
|
4f54772a87 | ||
|
|
f6211bc171 | ||
|
|
2bfd92234d | ||
|
|
c38cb52efd | ||
|
|
96b24787fb | ||
|
|
6f539c5cf9 | ||
|
|
f81d1132c9 | ||
|
|
beb9aa52b3 | ||
|
|
e6a321c094 | ||
|
|
4ebc538931 | ||
|
|
3d033b4e18 | ||
|
|
5a5a67d337 | ||
|
|
59653c4b36 | ||
|
|
69efabad3d | ||
|
|
01f717df41 | ||
|
|
5803a72162 | ||
|
|
6b57ff42fd | ||
|
|
448b1098db | ||
|
|
0b3b3b9ed6 | ||
|
|
c98aa66173 | ||
|
|
afcf500d46 | ||
|
|
71eeebb595 | ||
|
|
fad2bafa7b | ||
|
|
9f400835df | ||
|
|
ddf7a57a61 | ||
|
|
3a84f5407b | ||
|
|
efdeeb14af | ||
|
|
0a806c8aa7 | ||
|
|
f69560f821 | ||
|
|
6af718bb7f | ||
|
|
405208abe7 | ||
|
|
c6fbe129bf | ||
|
|
4f081bf0d0 | ||
|
|
cf61f29f61 | ||
|
|
8e42425c92 | ||
|
|
e51eadc837 | ||
|
|
6b961cfac1 | ||
|
|
b126348850 | ||
|
|
21cc129aea | ||
|
|
8c4cefaa96 | ||
|
|
c4cbd8f70c | ||
|
|
6e058633f4 | ||
|
|
7281232239 | ||
|
|
32d3fb4668 | ||
|
|
91f53c5d57 | ||
|
|
0a5cba6501 | ||
|
|
e53644ef78 | ||
|
|
dc5fe663cb | ||
|
|
79ee0ab0c2 | ||
|
|
97cc5e6c44 | ||
|
|
09dd368c9b | ||
|
|
d558c37a5b | ||
|
|
4ea5b30610 | ||
|
|
e742ae2157 | ||
|
|
f4fdc03167 | ||
|
|
3005c7daac | ||
|
|
1a35ed23d9 | ||
|
|
6bc673930f | ||
|
|
7572cbd5aa | ||
|
|
8e267289d5 | ||
|
|
8e301e97d2 | ||
|
|
e37f1e9435 | ||
|
|
df2b1220d4 | ||
|
|
769bc4a420 | ||
|
|
bae02fa6d9 | ||
|
|
04f6e27361 | ||
|
|
8731495395 | ||
|
|
470db77b36 | ||
|
|
3675d9eacb | ||
|
|
5555fb3341 | ||
|
|
93e9a184a3 | ||
|
|
4189d0802f | ||
|
|
f2cefcbfad | ||
|
|
8b20e7af53 | ||
|
|
563f4546ff | ||
|
|
b5b10846c2 | ||
|
|
dfe111a085 | ||
|
|
0930b183d6 | ||
|
|
cc6e343055 | ||
|
|
288480e312 | ||
|
|
c0679a0902 | ||
|
|
94a6496726 | ||
|
|
ed2051c861 | ||
|
|
3927b8d331 | ||
|
|
4406545ed5 | ||
|
|
83f975cf42 | ||
|
|
cafacdf6dc | ||
|
|
118f552a6e | ||
|
|
3429bf2b41 | ||
|
|
17081c700e | ||
|
|
dcfcb3cfc6 | ||
|
|
d27529f4ab | ||
|
|
89add82f07 | ||
|
|
02ad771443 | ||
|
|
48cefbd960 | ||
|
|
18fce99e63 | ||
|
|
9c6ac94d37 | ||
|
|
50bd95aadf | ||
|
|
36dbbfde4b | ||
|
|
4c73c02d6d | ||
|
|
8f4a77bfef | ||
|
|
781dee7531 | ||
|
|
d40606665a | ||
|
|
caae78ba73 | ||
|
|
6ad27831e0 | ||
|
|
90c19a9907 | ||
|
|
d1191bb4f4 | ||
|
|
76eedab612 | ||
|
|
0527d01622 | ||
|
|
7dd9d23eb1 | ||
|
|
ab54b675f7 | ||
|
|
967b63e659 | ||
|
|
7f14740790 | ||
|
|
9842dda872 | ||
|
|
835b46c1f1 | ||
|
|
cfd10db990 | ||
|
|
1627c865c3 | ||
|
|
4bb6dcf36b | ||
|
|
670a74b75b | ||
|
|
4254270688 | ||
|
|
9d94d32594 | ||
|
|
26ef6340dd | ||
|
|
b39d1e981b | ||
|
|
6111325204 | ||
|
|
3401d40d52 | ||
|
|
837abfdb0d | ||
|
|
46e8a79fcb | ||
|
|
55b09e7016 | ||
|
|
4824bf600d | ||
|
|
c580cfee80 | ||
|
|
a8072dc2a0 | ||
|
|
301e9f9548 | ||
|
|
e3224a276b | ||
|
|
4529bcedea | ||
|
|
bf4e37de48 | ||
|
|
911aeb6828 | ||
|
|
dd85e2f356 | ||
|
|
60caa18980 | ||
|
|
0b0b610a21 | ||
|
|
529b370174 | ||
|
|
a4bc0fa013 | ||
|
|
94d67fa6a5 | ||
|
|
e67db1b150 | ||
|
|
bd09c5ac38 | ||
|
|
4ed033f56f | ||
|
|
02eef114a1 | ||
|
|
e881068530 | ||
|
|
4525667c73 | ||
|
|
ae6d0d30f5 | ||
|
|
9b27913542 | ||
|
|
7c17e9e75b | ||
|
|
be964b9263 | ||
|
|
a23aa66098 | ||
|
|
c419fa6171 | ||
|
|
dd6200f31a | ||
|
|
a928a2df96 | ||
|
|
f6020a8e34 | ||
|
|
881d64f005 | ||
|
|
663f9df53e | ||
|
|
0494bcb19c | ||
|
|
0b637798e3 | ||
|
|
5a3b13508d | ||
|
|
2e9434a07a | ||
|
|
272f5e3896 | ||
|
|
58f22a5049 | ||
|
|
ae0b1487fa | ||
|
|
83d6ffcacb | ||
|
|
08390fb7f9 | ||
|
|
478e52def4 | ||
|
|
aaafa0557d | ||
|
|
042cc29680 | ||
|
|
b549e586b0 | ||
|
|
240b19f9f2 | ||
|
|
ffd4aa2de3 | ||
|
|
92246eda42 | ||
|
|
2c5c12219c | ||
|
|
27c2e51e67 | ||
|
|
f558e39f7e | ||
|
|
cd4795be6b | ||
|
|
1ff2fcfeed | ||
|
|
7a04d58771 | ||
|
|
55e52f1b6d | ||
|
|
bdbf490174 | ||
|
|
36674b96fd | ||
|
|
623934b5e1 | ||
|
|
260708fa26 | ||
|
|
3efc9785b3 | ||
|
|
aca1037e9f | ||
|
|
b74ef2f6b6 | ||
|
|
65214699fa | ||
|
|
aacc740523 | ||
|
|
af2cc6b16d | ||
|
|
4a65e326b9 | ||
|
|
0605d17f02 | ||
|
|
e38ad5476b | ||
|
|
7bd0bb92de | ||
|
|
8205e664c8 | ||
|
|
4418d860e8 | ||
|
|
d17664eb58 | ||
|
|
25fedaf936 | ||
|
|
efc7d9cbc2 | ||
|
|
4eb87c577e | ||
|
|
2b73b29421 | ||
|
|
a253545487 | ||
|
|
18644676e5 | ||
|
|
f3159c31b0 | ||
|
|
519dc0c3f9 | ||
|
|
e830ff8c8f | ||
|
|
980d62fd25 | ||
|
|
36093c2bf6 | ||
|
|
2b4b058265 | ||
|
|
d71b6b6ffb | ||
|
|
bd06ea72a9 | ||
|
|
3b9e02fd77 | ||
|
|
477d1d8e7d | ||
|
|
d558b176b1 | ||
|
|
a658a623a8 | ||
|
|
911dcf0f08 | ||
|
|
cbe6d65df3 | ||
|
|
dd23946ec9 | ||
|
|
ad1642cdd9 | ||
|
|
570a3d8a03 | ||
|
|
775655b44a | ||
|
|
c549cc814d | ||
|
|
43eb7b646e | ||
|
|
8cccc8f99a | ||
|
|
08c4f120c9 | ||
|
|
dfccae97eb | ||
|
|
7062434474 | ||
|
|
543792f154 | ||
|
|
76b4500c33 | ||
|
|
429a57b49d | ||
|
|
cef72cc08e | ||
|
|
6d29429c4e | ||
|
|
46d6e76274 | ||
|
|
440b57e0b5 | ||
|
|
1ac7879229 | ||
|
|
ee7ac30420 | ||
|
|
e294a9f5ec | ||
|
|
cb35692923 | ||
|
|
d9bb3177f8 | ||
|
|
ad2bdf4faa | ||
|
|
1ae0edb1f1 | ||
|
|
e3d25bce34 | ||
|
|
528d6f3d54 | ||
|
|
48140aa4e1 | ||
|
|
e44885a4e1 | ||
|
|
65eb5b19cf | ||
|
|
d08ae1fefe | ||
|
|
cc7c813d9b | ||
|
|
2349d985f7 | ||
|
|
90d6f85d39 | ||
|
|
27d4c7ead0 | ||
|
|
e6f8d1b836 | ||
|
|
33799389d4 | ||
|
|
0e816e0b83 | ||
|
|
ec1fb16e34 | ||
|
|
a036af76db | ||
|
|
59ccdc0fbc | ||
|
|
65293fee1f | ||
|
|
7dfc5df74e | ||
|
|
63e39d6ee7 | ||
|
|
212ab5c73a | ||
|
|
3f99d2eda5 | ||
|
|
7e32f8e585 | ||
|
|
6f838e09d7 | ||
|
|
458f3269dd | ||
|
|
705c53b045 | ||
|
|
3d1dbef32c | ||
|
|
9eb03933dc | ||
|
|
14c586557e | ||
|
|
20b16ea7aa | ||
|
|
057a1b7128 | ||
|
|
5be51d39ec | ||
|
|
1b6a45d291 | ||
|
|
da6cfab105 | ||
|
|
f904017c74 | ||
|
|
884f00e27e | ||
|
|
3a6a1bd322 | ||
|
|
a9ea9bd20a | ||
|
|
4747e218b3 | ||
|
|
7ae64e60c1 | ||
|
|
5bcaf4e157 | ||
|
|
e8dff8cfab | ||
|
|
b6db24abd6 | ||
|
|
a6653a2f7c | ||
|
|
7da56bf735 | ||
|
|
ff9a1cfde6 | ||
|
|
cc0d0b06ff | ||
|
|
a5780148fd | ||
|
|
963943745e | ||
|
|
eb3ed764ca | ||
|
|
785470d1e3 | ||
|
|
b76f6e07ab | ||
|
|
3f38785a0a | ||
|
|
687fab1763 | ||
|
|
ecba4fb037 | ||
|
|
594b196afc | ||
|
|
a9ea68bd3f | ||
|
|
aea990be82 | ||
|
|
ea1b65ad8a | ||
|
|
d6d1826ad3 | ||
|
|
6a6296d61b | ||
|
|
1c9465c6df | ||
|
|
66750be14c | ||
|
|
0f097de573 | ||
|
|
a0c3e086d9 | ||
|
|
42a2cab56e | ||
|
|
9432db3c2c | ||
|
|
b0d8fccba7 | ||
|
|
2003ef208a | ||
|
|
cad78d6f04 | ||
|
|
7fdf0dfa52 | ||
|
|
09b1403483 | ||
|
|
a982d867cb | ||
|
|
9a28860b9d | ||
|
|
ee1d40055a | ||
|
|
e301754c0d | ||
|
|
07204964e0 | ||
|
|
42a22c1dc8 | ||
|
|
0ccc41fc10 | ||
|
|
058f95b388 | ||
|
|
e1774fc7a1 | ||
|
|
11b6c98db4 | ||
|
|
529f652312 | ||
|
|
380c23f06b | ||
|
|
f785c8a7a4 | ||
|
|
12556eaf75 | ||
|
|
4118514eaa | ||
|
|
e054554a36 | ||
|
|
be3945d9ff | ||
|
|
3d77d813ce | ||
|
|
5d202b67cc | ||
|
|
1c1f4add53 | ||
|
|
1b16739a2d | ||
|
|
313f4a591e | ||
|
|
33648efb4c | ||
|
|
08da945e68 | ||
|
|
016976afd1 | ||
|
|
8b00bb1651 | ||
|
|
cb4100b820 | ||
|
|
31e63d5a3a | ||
|
|
f88f95d575 | ||
|
|
ae57b6a361 | ||
|
|
1d1ed3ddb3 | ||
|
|
818597ae4f | ||
|
|
ecf06b3459 | ||
|
|
9ea4ab4133 | ||
|
|
66b51d0b9f | ||
|
|
e975779565 | ||
|
|
d11c407c11 | ||
|
|
6b14cf6b82 | ||
|
|
57692966b7 | ||
|
|
f1828f22b9 | ||
|
|
dec70be8bf | ||
|
|
2321d8e2b6 | ||
|
|
100eb2036d | ||
|
|
2c4e9e718c | ||
|
|
5ea3d5b1ea | ||
|
|
7f4d14efbe | ||
|
|
285f7e0640 | ||
|
|
955e0697ba | ||
|
|
890b6d7ba8 | ||
|
|
6e3096a0fa | ||
|
|
4a46c4fa60 | ||
|
|
09df642ee8 | ||
|
|
781549f47d | ||
|
|
50220cd3d1 | ||
|
|
e49b6e7624 | ||
|
|
f55750d05a | ||
|
|
72c30e6568 | ||
|
|
eb7d35d85e | ||
|
|
4b002876d3 | ||
|
|
df34620afa | ||
|
|
66e90b1610 | ||
|
|
b57dfbffa8 | ||
|
|
6412273c94 | ||
|
|
c285bb9bd6 | ||
|
|
00a5b03f1b | ||
|
|
c0f2f2b464 | ||
|
|
6e3d96dc67 | ||
|
|
d06f47f95c | ||
|
|
ae3977cd76 | ||
|
|
74e0cc2fe5 | ||
|
|
04d132c069 | ||
|
|
df5c45b99f | ||
|
|
f7483afe41 | ||
|
|
5b3babf9c4 | ||
|
|
2a928a555d | ||
|
|
c4b4c6a9a5 | ||
|
|
a4ab9d7050 | ||
|
|
5f43f7c289 | ||
|
|
9b0ee815d4 | ||
|
|
aaf2d69944 | ||
|
|
ce388a548a | ||
|
|
6d2f5978f7 | ||
|
|
eba9965d54 | ||
|
|
b2d4591455 | ||
|
|
73636f80f0 | ||
|
|
b305cf722e | ||
|
|
4935ae09b8 | ||
|
|
c23595da74 | ||
|
|
eb4a860bc3 | ||
|
|
b68794be17 | ||
|
|
9190ab1d6b | ||
|
|
da0a144213 | ||
|
|
3cdc5fa537 | ||
|
|
65a285cb99 | ||
|
|
fd8e6eca55 | ||
|
|
17b26a6a0c | ||
|
|
757948e54b | ||
|
|
1484d4c12c | ||
|
|
024a3d8370 | ||
|
|
ee274abff1 | ||
|
|
a472974402 | ||
|
|
3b77eb7680 | ||
|
|
bfa3402f16 | ||
|
|
9d4ac4c188 | ||
|
|
101d88a655 | ||
|
|
817ad87a28 | ||
|
|
8fe245a2ba | ||
|
|
50d1683efd | ||
|
|
6e335b3720 | ||
|
|
abd7e74713 | ||
|
|
9feb7f3e15 | ||
|
|
49252e4667 | ||
|
|
4dfbf0acd1 | ||
|
|
f36f12f54e | ||
|
|
2e89926eab | ||
|
|
f592cd9eb6 | ||
|
|
74f10135f5 | ||
|
|
d75e89764e | ||
|
|
5784582da1 | ||
|
|
927c948fb5 | ||
|
|
9668994591 | ||
|
|
5c5ce877e8 | ||
|
|
7d82c13142 | ||
|
|
a160adcf6c | ||
|
|
2d24f2ea0f | ||
|
|
eefa9c27a1 | ||
|
|
8b44324ec4 | ||
|
|
fe52024032 | ||
|
|
831d61ffee | ||
|
|
c3e4ab9209 | ||
|
|
efb4e7d77d | ||
|
|
2c13671808 | ||
|
|
34aa937e99 | ||
|
|
6bba162380 | ||
|
|
687cb2678f | ||
|
|
2a2e7bffdc | ||
|
|
b2658ced45 | ||
|
|
5c2efc04be | ||
|
|
688375fd87 | ||
|
|
0ae04de4ef | ||
|
|
c1e2bb79f8 | ||
|
|
e53314cbb7 | ||
|
|
b0296ea6c4 | ||
|
|
1beaa06ed7 | ||
|
|
769059e3a3 | ||
|
|
65e294a51d | ||
|
|
35e44803db | ||
|
|
018f4098e8 | ||
|
|
26eeb59d8d | ||
|
|
97d244d75a | ||
|
|
7befd87c21 | ||
|
|
00cdcad12f | ||
|
|
081be38b26 | ||
|
|
879e30901e | ||
|
|
f44a8ebe07 | ||
|
|
7ecd34e368 | ||
|
|
d30eeff9a1 | ||
|
|
8a9a73c5fd | ||
|
|
833a064cfe | ||
|
|
30fb5c8146 | ||
|
|
c8da8f2595 | ||
|
|
9c3e5a2081 | ||
|
|
a84e7fc733 | ||
|
|
e2a63403d0 | ||
|
|
97520950f0 | ||
|
|
828158fb8d | ||
|
|
904f53db88 | ||
|
|
fd928bc1ef | ||
|
|
703f08dfe8 | ||
|
|
e897b69d19 | ||
|
|
7ae15519b1 | ||
|
|
ffd4d39144 | ||
|
|
d1c83acabb | ||
|
|
2889d16425 | ||
|
|
2f8d099c20 | ||
|
|
05bee5dc82 | ||
|
|
bf549e93b9 | ||
|
|
324e987e82 | ||
|
|
b963b0bcc4 | ||
|
|
045ba7db6b | ||
|
|
ff66fcc442 | ||
|
|
e3ab8ba856 | ||
|
|
e6869edf38 | ||
|
|
0705c62050 | ||
|
|
1f736c82a9 | ||
|
|
6f383ae89d | ||
|
|
5e4fc9cf1e | ||
|
|
b4c2c567d6 | ||
|
|
0e89e92d04 | ||
|
|
05ffd97b08 | ||
|
|
2fa131f8db | ||
|
|
26faf043d2 | ||
|
|
60af5c24ef | ||
|
|
61fb6f377c | ||
|
|
4d0e923a60 | ||
|
|
43ef89d4a6 | ||
|
|
3f596509e1 | ||
|
|
728600d4e3 | ||
|
|
521fd9e111 | ||
|
|
f0bfafa2e2 | ||
|
|
4a3f30b744 | ||
|
|
6fed495d1f | ||
|
|
e0e7eb6c44 | ||
|
|
d85f615c03 | ||
|
|
aa3de76bc8 | ||
|
|
03b36bd454 | ||
|
|
06bc452803 | ||
|
|
5b2008805b | ||
|
|
6c68dd5523 | ||
|
|
5701c33c6f | ||
|
|
3118f65376 | ||
|
|
cd1a43e9b2 | ||
|
|
2867dc7446 | ||
|
|
4149bc3c4a | ||
|
|
a4aab05579 | ||
|
|
530ce70e39 | ||
|
|
66a72d7411 | ||
|
|
ea89242447 | ||
|
|
64c6dc258c | ||
|
|
c53c258233 | ||
|
|
8c3f861909 | ||
|
|
21e63eca82 | ||
|
|
39c1b4be34 | ||
|
|
5b91fbd2b5 | ||
|
|
6d834825de | ||
|
|
9dac65e6e5 | ||
|
|
653ffb1218 | ||
|
|
7f8dfa7abb | ||
|
|
93bfefecfe | ||
|
|
9d991480e9 | ||
|
|
377a04fe57 | ||
|
|
b63f7f3a18 | ||
|
|
4ab089ddba | ||
|
|
21d0c9ef0d | ||
|
|
59a75697e3 | ||
|
|
83ff79ed01 | ||
|
|
cb9507190e | ||
|
|
14842a2b97 | ||
|
|
2942df6c93 | ||
|
|
56a050e73a | ||
|
|
8c029909a4 | ||
|
|
c57073d6ee | ||
|
|
d331cf663e | ||
|
|
e4e2e9efec | ||
|
|
1feb712387 | ||
|
|
bf5a3b90fb | ||
|
|
ca57fd5c97 | ||
|
|
35a0ff69b0 | ||
|
|
154cd32776 | ||
|
|
091f0781b8 | ||
|
|
b0c273a9b8 | ||
|
|
6de80de07f | ||
|
|
240c3c4839 | ||
|
|
f4ce595352 | ||
|
|
b2ab93cc7b | ||
|
|
beaeba8862 | ||
|
|
7e36bafdcd | ||
|
|
c354b234a4 | ||
|
|
91ae75b087 | ||
|
|
2f21d39ae5 | ||
|
|
0590a1ea49 | ||
|
|
4f6ca7513e | ||
|
|
d43b7a3a07 | ||
|
|
26c6d93e07 | ||
|
|
c103c7f049 | ||
|
|
8e5fedeb45 | ||
|
|
17f06f1623 | ||
|
|
dadb671a17 | ||
|
|
d7ad862058 | ||
|
|
a7c8728704 | ||
|
|
e776b337e8 | ||
|
|
5befb6f577 | ||
|
|
e0ccdb1d31 | ||
|
|
a02fad04b2 | ||
|
|
0afaaf8d36 | ||
|
|
c7e591cc26 | ||
|
|
b0654071b7 | ||
|
|
9e2a9c561e | ||
|
|
b85926e45f | ||
|
|
cc3d72b55f | ||
|
|
846b62bbd6 | ||
|
|
e49c821349 | ||
|
|
899181bf7c | ||
|
|
01ea4199c7 | ||
|
|
3f50074142 | ||
|
|
00ef83a6ab | ||
|
|
4869b7a5a7 | ||
|
|
87e24367ff | ||
|
|
db4db38876 | ||
|
|
2ded12cdfd | ||
|
|
b86618edf9 | ||
|
|
ea4cd6ca39 | ||
|
|
2231891a18 | ||
|
|
9e2790c8ae | ||
|
|
a133263681 | ||
|
|
350730be55 | ||
|
|
c5681473cb | ||
|
|
5df1b2e7f4 | ||
|
|
56c8257743 | ||
|
|
311ea4a969 | ||
|
|
d090606f36 | ||
|
|
5b1baa3d10 | ||
|
|
b29ee10938 | ||
|
|
975313d5cc | ||
|
|
253976ad79 | ||
|
|
a51733d81d | ||
|
|
afa494b2a5 | ||
|
|
34af18cd40 | ||
|
|
8263a06f21 | ||
|
|
9fd5ef2141 | ||
|
|
ac620e811d | ||
|
|
9de05ceb7a | ||
|
|
1f4653910f | ||
|
|
24500364ed | ||
|
|
d4817a1e4f | ||
|
|
17d3cafd5b | ||
|
|
275576b218 | ||
|
|
b127787553 | ||
|
|
a19cce278c | ||
|
|
a1a5bd99c1 | ||
|
|
5ed629de9f | ||
|
|
5099649ff0 | ||
|
|
0ad7c6fe6d | ||
|
|
60663487f6 | ||
|
|
5ad937a85f | ||
|
|
1095f90a26 | ||
|
|
93c317d8e6 | ||
|
|
00b38ee051 | ||
|
|
d16ab3b53e | ||
|
|
d4fc10af1d | ||
|
|
5e9ea38531 | ||
|
|
c3a386ef6d | ||
|
|
8716e4744b | ||
|
|
c60e89e144 | ||
|
|
06ec3d779f | ||
|
|
c7586330ba | ||
|
|
f7eeff71a4 | ||
|
|
cfca7cda82 | ||
|
|
8a290b8e6a | ||
|
|
9cbde0b81e | ||
|
|
5017ee9fdb | ||
|
|
99802ac63d | ||
|
|
f695b75d78 | ||
|
|
bb59715dae | ||
|
|
d951098c65 | ||
|
|
86d20bcabe | ||
|
|
25e2d2bf5c | ||
|
|
dcfcdd72ce | ||
|
|
2e12d45877 | ||
|
|
d7dd0a253b | ||
|
|
20a3f240cd | ||
|
|
4bac80d151 | ||
|
|
4fd64312c8 | ||
|
|
910846ed2c | ||
|
|
e630f8d216 | ||
|
|
e32ab98b32 | ||
|
|
c41339543f | ||
|
|
9b450f0606 | ||
|
|
36523aa64e | ||
|
|
78c5623842 | ||
|
|
2c8ab7122b | ||
|
|
8a66dbf077 | ||
|
|
2c28d27dcf | ||
|
|
7dbe9f0b6d | ||
|
|
69983c74a6 | ||
|
|
aaf6aae111 | ||
|
|
9c8af427e8 | ||
|
|
79f8fba3f9 | ||
|
|
2bf65cc749 | ||
|
|
0f0e273e0d | ||
|
|
023ad06e46 | ||
|
|
5186970421 | ||
|
|
cd091372af | ||
|
|
9eb83db3dd | ||
|
|
18cb0746b3 | ||
|
|
8de79a6398 | ||
|
|
654920cc5b | ||
|
|
1862aaa218 | ||
|
|
0d9cb5e775 | ||
|
|
42a2707f1b | ||
|
|
04f50526d3 | ||
|
|
29761601c5 | ||
|
|
9b1c60970b | ||
|
|
6becffdec6 | ||
|
|
380bf4c7a9 | ||
|
|
f234bdec5b | ||
|
|
6dba3d3fc1 | ||
|
|
c815af765f | ||
|
|
29afa9bf4b | ||
|
|
4acd4d97f3 | ||
|
|
da37ef4781 | ||
|
|
6412600e72 | ||
|
|
09db79364b | ||
|
|
90430b3f49 | ||
|
|
f3e1a941c5 | ||
|
|
3e6d198cf7 | ||
|
|
0881e4a989 | ||
|
|
d636893400 | ||
|
|
6b12eddc42 | ||
|
|
f3a8763e5c | ||
|
|
38e189dcc0 | ||
|
|
60b713fd8d | ||
|
|
ea3e5e2a84 | ||
|
|
f2364fbf5c | ||
|
|
62756e9f1c | ||
|
|
6f5472dfe9 | ||
|
|
e352bc83f0 | ||
|
|
e35eef1257 | ||
|
|
8fc6b2ef2a | ||
|
|
69a42aedf9 | ||
|
|
1bbe27a179 | ||
|
|
045668b454 | ||
|
|
f13a39a361 | ||
|
|
df0d844ee4 | ||
|
|
1ae8995f36 | ||
|
|
e6f9fc68d1 | ||
|
|
7775fea771 | ||
|
|
cdd9c702ac | ||
|
|
d791ecac01 | ||
|
|
4b3efa84fa | ||
|
|
410c51d5f4 | ||
|
|
2283a8eff1 | ||
|
|
ecc9a141a1 | ||
|
|
6dd51e0e8e | ||
|
|
dc0184185c | ||
|
|
0d4e0d1ed0 | ||
|
|
7f78d7e54c | ||
|
|
3798179e83 | ||
|
|
f5558edf7b | ||
|
|
9d2cd27e59 | ||
|
|
0d9edfbb5c | ||
|
|
fbcf78297f | ||
|
|
96603fcc12 | ||
|
|
01c768e4ca | ||
|
|
a550556929 | ||
|
|
1a6c31bc2b | ||
|
|
5e1d3eebdf | ||
|
|
9fb46dcea4 | ||
|
|
d251572201 | ||
|
|
044b12b8c1 | ||
|
|
5bb1350803 | ||
|
|
e127bc8acf | ||
|
|
9b2d299d84 | ||
|
|
4b95e50bf7 | ||
|
|
c07e47b401 | ||
|
|
7709928453 | ||
|
|
193b4ea20e | ||
|
|
1e4dfcfbf0 | ||
|
|
b0fc983013 | ||
|
|
6f79a87444 | ||
|
|
5c6579f46b | ||
|
|
b6cab6070f | ||
|
|
f1484f0cd4 | ||
|
|
a6d84bc811 | ||
|
|
1b87d19c87 | ||
|
|
f931c18437 | ||
|
|
51235439c2 | ||
|
|
9b1e54dae3 | ||
|
|
9693d60c23 | ||
|
|
502876ad9a | ||
|
|
5e34672a6d | ||
|
|
6c25e1cdce | ||
|
|
50a2f8c16d | ||
|
|
2ecd2048d4 | ||
|
|
f4e105e841 | ||
|
|
258bd8a2ba | ||
|
|
86dac44dac | ||
|
|
bf4827166b | ||
|
|
1431a5efd1 | ||
|
|
efa036748b | ||
|
|
450d6e8d9a | ||
|
|
921ffcf9ef | ||
|
|
4d9e420aa7 | ||
|
|
ce4e70b60b | ||
|
|
c0c3fb980d | ||
|
|
a2edf55463 | ||
|
|
a9afb48611 | ||
|
|
cff05c3432 | ||
|
|
ad08800a5d | ||
|
|
dfaa0d4cdf | ||
|
|
6b0b5941da | ||
|
|
2372340c55 | ||
|
|
edbf46c2da | ||
|
|
98a06dbf63 | ||
|
|
74eed1eb66 | ||
|
|
e92197ac27 | ||
|
|
e7fc59fe99 | ||
|
|
650337cafa | ||
|
|
550028f6a1 | ||
|
|
733b1d638e | ||
|
|
be34a18712 | ||
|
|
a3f1271a63 | ||
|
|
9fb30a7cc0 | ||
|
|
3332c6a1b6 | ||
|
|
d3a8c491bf | ||
|
|
f3883b4d54 | ||
|
|
b33626e87a | ||
|
|
ba42773298 | ||
|
|
40e8f0fb2a | ||
|
|
4fc6443589 | ||
|
|
3a8e9e6104 | ||
|
|
3693f0fe43 | ||
|
|
08973326c4 | ||
|
|
0041a04fb2 | ||
|
|
7b947b7a42 | ||
|
|
17888bc3c0 | ||
|
|
310990d4dc | ||
|
|
e0a4e74f80 | ||
|
|
cfc6c74d02 | ||
|
|
a3c4486681 | ||
|
|
41d6c584cd | ||
|
|
c06123ae0c | ||
|
|
587e9b4f49 | ||
|
|
09dcdbe0ff | ||
|
|
7e1dbd7a03 | ||
|
|
0192f2b6c8 | ||
|
|
c3183e79ed | ||
|
|
9940e879d4 | ||
|
|
a6b92a1d83 | ||
|
|
a99b0c08d4 | ||
|
|
cd47d982d9 | ||
|
|
b29242fed4 | ||
|
|
ba57c8f33a | ||
|
|
d87a192fe6 | ||
|
|
ed057d7f67 | ||
|
|
400aa66520 | ||
|
|
7a0d223ed6 | ||
|
|
a77ac5eb39 | ||
|
|
518ec0c168 | ||
|
|
2c07f4154e | ||
|
|
b3e79c6c6c | ||
|
|
97292b3883 | ||
|
|
7d0f6b051c | ||
|
|
f6faa640b7 | ||
|
|
69aa6d19c3 | ||
|
|
42fca8fd3a | ||
|
|
cffc4ccb30 | ||
|
|
8a283686f2 | ||
|
|
2c9482428f | ||
|
|
b943c9c83d | ||
|
|
005f647e13 | ||
|
|
c6974571dd | ||
|
|
3e2f8ef7eb | ||
|
|
56132c0447 | ||
|
|
baec1b577c | ||
|
|
7138ff4750 | ||
|
|
b497391969 | ||
|
|
85d4c76d59 | ||
|
|
f2ca2f4835 | ||
|
|
ea28f47062 | ||
|
|
508c6f404d | ||
|
|
fa178171b6 | ||
|
|
d25dbaffeb | ||
|
|
5fc1a2e66e | ||
|
|
9f1ffb53dc | ||
|
|
c0d6562b8b | ||
|
|
4a2a6ebe99 | ||
|
|
79c90a15fa | ||
|
|
b9e6895d3a | ||
|
|
3683f82865 | ||
|
|
01465edf46 | ||
|
|
089eea6bef | ||
|
|
0ec2d0eca1 | ||
|
|
015d7657e7 | ||
|
|
2d308ccc78 | ||
|
|
d92843c4dd | ||
|
|
de7785d2e8 | ||
|
|
7b7d3507db | ||
|
|
006def0451 | ||
|
|
8950ee8d8e | ||
|
|
07299b0a1e | ||
|
|
46a6f9366d | ||
|
|
12b4b456cb | ||
|
|
e5f92a2396 | ||
|
|
bfbf85b7a7 | ||
|
|
3ecf3e0fa1 | ||
|
|
0e1c5e521a | ||
|
|
db0efee3d4 | ||
|
|
b8f2831c68 | ||
|
|
323e3ce5ab | ||
|
|
d5a7ac9412 | ||
|
|
ae6769c77d | ||
|
|
37600f669c | ||
|
|
b819164293 | ||
|
|
32109cb7cf | ||
|
|
8a90e1d979 | ||
|
|
72218042af | ||
|
|
f6ee974ac7 | ||
|
|
b255b0eccc | ||
|
|
a0e6b7797c | ||
|
|
7c2e062ccb | ||
|
|
dd9799aaa2 | ||
|
|
805065faa4 | ||
|
|
545c4a7aa7 | ||
|
|
9dfe7b710e | ||
|
|
924af8d1c0 | ||
|
|
99d808ac37 | ||
|
|
9dad666a66 | ||
|
|
76177f7a48 | ||
|
|
bbd20b347d | ||
|
|
b5a0dffd57 | ||
|
|
086d1992b6 | ||
|
|
ac3052168c | ||
|
|
cf99e1e9f8 | ||
|
|
57a9560def | ||
|
|
c8ff3bb0cc | ||
|
|
1ee1acb94f | ||
|
|
69ee813add | ||
|
|
247874eb43 | ||
|
|
1a29d97330 | ||
|
|
7352937e75 | ||
|
|
ec59e22ec0 | ||
|
|
ebc31d93d9 | ||
|
|
1741706a00 | ||
|
|
15459fceae | ||
|
|
1ca90839e4 | ||
|
|
304f1400f9 | ||
|
|
5f01fd2c54 | ||
|
|
d74cd0bff8 | ||
|
|
0bc11358bb | ||
|
|
9a93f60e34 | ||
|
|
bc113af571 | ||
|
|
3269d85838 | ||
|
|
041b97af42 | ||
|
|
597f277dca | ||
|
|
4b62ceec81 | ||
|
|
ec8aa63648 | ||
|
|
271ed603e1 | ||
|
|
6acf436edc | ||
|
|
954444af1c | ||
|
|
d5036d16cd | ||
|
|
21312c5617 | ||
|
|
cf406f37e3 | ||
|
|
70685b85af | ||
|
|
b1550c24b9 | ||
|
|
7359b90813 | ||
|
|
0e7ca534eb | ||
|
|
2ea955a642 | ||
|
|
4d6f8e3d34 | ||
|
|
83806487dc | ||
|
|
df294d5f28 | ||
|
|
beaeca558b | ||
|
|
7b8c6b4353 | ||
|
|
4a02eb3afe | ||
|
|
bba69953cd | ||
|
|
36efb40d10 | ||
|
|
4264d66e09 | ||
|
|
1e46927bba | ||
|
|
d3d427483f | ||
|
|
33b2586062 | ||
|
|
a77a5ac2a0 | ||
|
|
98f297ba23 | ||
|
|
3f9a51509a | ||
|
|
92e8e7960b | ||
|
|
594e178180 | ||
|
|
0f708d90df | ||
|
|
a70c2d02ad | ||
|
|
13c4ad8e20 | ||
|
|
2d9226ff60 | ||
|
|
2d0d3e1f63 | ||
|
|
20beadbcb1 | ||
|
|
95bc08f56b | ||
|
|
ec659dc825 | ||
|
|
aae19fd69c | ||
|
|
dc71b40a5f | ||
|
|
0006ef0cc8 | ||
|
|
2e8a110092 | ||
|
|
0aeb9d9a62 | ||
|
|
4bcab49b68 | ||
|
|
a6a7ed5f8c | ||
|
|
1e3b108ef9 | ||
|
|
dac856d4f2 | ||
|
|
607f822b20 | ||
|
|
2ba2192f6f | ||
|
|
b10e766b73 | ||
|
|
f01bc46dfe | ||
|
|
e44e04a5f5 | ||
|
|
7c2b3c6ab5 | ||
|
|
2c85ca538e | ||
|
|
0c33720da2 | ||
|
|
05b0b4f2ae | ||
|
|
0ca13f7ff6 | ||
|
|
d144cbfe09 | ||
|
|
ef3de8e1f7 | ||
|
|
3669ad06b0 | ||
|
|
9c64402c80 | ||
|
|
f4e81d2e19 | ||
|
|
3385cfe8cf | ||
|
|
00d35d412b | ||
|
|
4a304171a6 | ||
|
|
1acef3bef8 | ||
|
|
9cd12c0bcd | ||
|
|
8f5b808cfe | ||
|
|
cbf5f3e4de | ||
|
|
7902f129f5 | ||
|
|
45f7bb6a9f | ||
|
|
45a7449ceb | ||
|
|
b697d670cb | ||
|
|
ee1b80e8e5 | ||
|
|
30c157894d | ||
|
|
81b0f3f5c0 | ||
|
|
959e0b9dfb | ||
|
|
9c503c5689 | ||
|
|
5707f715aa | ||
|
|
555b593770 | ||
|
|
54c7a42949 | ||
|
|
14732a0d27 | ||
|
|
ff47163220 | ||
|
|
825a304b38 | ||
|
|
39cf6b2fdc | ||
|
|
0193199d57 | ||
|
|
2f6d883fcb | ||
|
|
fd805805a8 | ||
|
|
48ca85ec46 | ||
|
|
fe4588a87e | ||
|
|
c815908774 | ||
|
|
4012f6cd34 | ||
|
|
6d519d366e | ||
|
|
5ced594638 | ||
|
|
84470be578 | ||
|
|
9791a38e93 | ||
|
|
1443b70f4d | ||
|
|
ac825d35af | ||
|
|
a3cd82292c | ||
|
|
c8bd932ff3 | ||
|
|
8f952922ba | ||
|
|
fafe66921e | ||
|
|
7f5093d00d | ||
|
|
a8f637446d | ||
|
|
f46ebab88c | ||
|
|
c3da3a5048 | ||
|
|
9c6ab6372f | ||
|
|
17f17157b9 | ||
|
|
399194bb7a | ||
|
|
a46962c4c1 | ||
|
|
8694cd7c62 | ||
|
|
d76f84108f | ||
|
|
cecb628970 | ||
|
|
27720df27a | ||
|
|
ee795ec927 | ||
|
|
9d978102bc | ||
|
|
7835898d92 | ||
|
|
5e6beee12c | ||
|
|
076a67b1bf | ||
|
|
158427237e | ||
|
|
663327f408 | ||
|
|
aebf95f6f2 | ||
|
|
de52238d06 | ||
|
|
9c6aee1cdf | ||
|
|
668e9414d8 | ||
|
|
27c0786c3b | ||
|
|
cd51c0ed25 | ||
|
|
b9d5b5cf10 | ||
|
|
bf8b18f80e | ||
|
|
ab549924e8 | ||
|
|
e3ce03230a | ||
|
|
b745ee2833 | ||
|
|
79a5197d1d | ||
|
|
942b3e2aae | ||
|
|
97612e5913 | ||
|
|
12a9f18dcc | ||
|
|
e1675f98d4 | ||
|
|
22db6951dc | ||
|
|
3e904497b1 | ||
|
|
a94cb97f4a | ||
|
|
df18cb7401 | ||
|
|
e969599750 | ||
|
|
58de6a8294 | ||
|
|
7bea3e0303 | ||
|
|
8326ba3235 | ||
|
|
ace6464105 | ||
|
|
378bc323c2 | ||
|
|
41f7f6302b | ||
|
|
d21a6ce41f | ||
|
|
5f68d9921d | ||
|
|
b4cbe82e26 | ||
|
|
697f151896 | ||
|
|
162d75c68c | ||
|
|
86410b610b | ||
|
|
2995eff3e3 | ||
|
|
d2449123be | ||
|
|
d856a7745c | ||
|
|
e76be10b70 | ||
|
|
9406a69dc0 | ||
|
|
acce88acb5 | ||
|
|
b0b5725863 | ||
|
|
ed13841255 | ||
|
|
a908ea8cb5 | ||
|
|
be21bbbc25 | ||
|
|
c96c4e3fa4 | ||
|
|
136be0dd92 | ||
|
|
f83ca6dc04 | ||
|
|
fa4cc616ff | ||
|
|
1fcb6f273a | ||
|
|
fc6c57d330 | ||
|
|
7a1487a726 | ||
|
|
0d25b8c4d5 | ||
|
|
1f8b7c2711 | ||
|
|
7ded1f054b | ||
|
|
7daca4fc60 | ||
|
|
1b32c44aa3 | ||
|
|
867f3ba889 | ||
|
|
c82d4105ec | ||
|
|
5f0143a774 | ||
|
|
6827f384c9 | ||
|
|
30b3953b45 | ||
|
|
d3539e79ca | ||
|
|
7551efdd70 | ||
|
|
6a8b78d6db | ||
|
|
5fa0678ef1 | ||
|
|
36725334b1 | ||
|
|
10397e5d0e | ||
|
|
ac2ed39761 | ||
|
|
ac69a5f84a | ||
|
|
9e339b8ded | ||
|
|
f33961a1df | ||
|
|
40d87232e6 | ||
|
|
cb7dbaebc9 | ||
|
|
4c5ba0d841 | ||
|
|
539616f85a | ||
|
|
a1d2da174b | ||
|
|
24b07e7ae6 | ||
|
|
7ca7e599a5 | ||
|
|
72ce1c5159 | ||
|
|
f9788f6987 | ||
|
|
b972e52710 | ||
|
|
510522ff57 | ||
|
|
a1429e482e | ||
|
|
520f6fcc87 | ||
|
|
be06406cb8 | ||
|
|
5f9a26a009 | ||
|
|
ddaeb8933c | ||
|
|
191116a62e | ||
|
|
5977a2d6a7 | ||
|
|
e6f3ba89ec | ||
|
|
db677a6f75 | ||
|
|
479baa64e5 | ||
|
|
1f8105e44c | ||
|
|
3869025575 | ||
|
|
c25eebd321 | ||
|
|
ccebd55230 | ||
|
|
f9b7a3e692 | ||
|
|
3887a6d012 | ||
|
|
4bd7be25df | ||
|
|
1d56fdab49 | ||
|
|
5afc57be8e | ||
|
|
8a9ec2c624 | ||
|
|
f22e2721dc | ||
|
|
5da827856c | ||
|
|
6000901868 | ||
|
|
7bd91cdd6e | ||
|
|
299454e654 | ||
|
|
52739303db | ||
|
|
476ee44449 | ||
|
|
7c6f3c6cb2 | ||
|
|
abfc726cc4 | ||
|
|
e7ece2a742 | ||
|
|
df7b871807 | ||
|
|
95cfa1c3a7 | ||
|
|
cfdca5342c | ||
|
|
5f84978261 | ||
|
|
7c7523d968 | ||
|
|
3008f1f46e | ||
|
|
2ac69799ec | ||
|
|
df753a2942 | ||
|
|
425b53e062 | ||
|
|
7abee00e97 | ||
|
|
e565fbba32 | ||
|
|
0073cdd512 | ||
|
|
6e1303417c | ||
|
|
cfe8581b9b | ||
|
|
7ddcb409b6 | ||
|
|
533795bb75 | ||
|
|
b33087c6d3 | ||
|
|
2d533fa2a9 | ||
|
|
4659df3c49 | ||
|
|
46f9604fd6 | ||
|
|
9d5cdc4b03 | ||
|
|
9fbc16e840 | ||
|
|
39f063f94d | ||
|
|
f67d19788e | ||
|
|
1cfc57d91b | ||
|
|
9ea42aad43 | ||
|
|
fffeb599f8 | ||
|
|
13686b8d12 | ||
|
|
1ac29856e1 | ||
|
|
38d86a4aa3 | ||
|
|
9b65dbabc1 | ||
|
|
610e13c424 | ||
|
|
9f0f739be9 | ||
|
|
4ccb224ca8 | ||
|
|
9b26ab91a5 | ||
|
|
ead2757410 | ||
|
|
3cc3ab97ed | ||
|
|
5d17e0d33e | ||
|
|
76f9c11768 | ||
|
|
cbebb2687a | ||
|
|
3961e49115 | ||
|
|
9ace5d5b19 | ||
|
|
b0725ec91a | ||
|
|
e0ec1c804e | ||
|
|
36a08afe2a | ||
|
|
d228d3127c | ||
|
|
ffc91880e1 | ||
|
|
3a09f847bb | ||
|
|
0a228eec58 | ||
|
|
59fae43a26 | ||
|
|
ff7281a866 | ||
|
|
0b4df63ee2 | ||
|
|
d53f00fb69 | ||
|
|
ba9ddb94fa | ||
|
|
5070eb57b6 | ||
|
|
0f2f8f179e | ||
|
|
18a83d872b | ||
|
|
d8c00fda7b | ||
|
|
e6015c7c26 | ||
|
|
b70c4be0d9 | ||
|
|
2856b9535e | ||
|
|
62610f975f | ||
|
|
6bf7f5b84f | ||
|
|
c96654e8eb | ||
|
|
b37db2a9db | ||
|
|
adc42f10ab | ||
|
|
4ea71cf959 | ||
|
|
01ee621b40 | ||
|
|
ce62364df5 | ||
|
|
8bd7cfc472 | ||
|
|
50daea0824 | ||
|
|
8e09c4566e | ||
|
|
a1b4a3f698 | ||
|
|
f30ca2fd58 | ||
|
|
6667bfa0a9 | ||
|
|
33859eda7a | ||
|
|
487391eab6 | ||
|
|
d0bf1b11b1 | ||
|
|
511e7438d7 | ||
|
|
5071c6aa0a | ||
|
|
119aa701d0 | ||
|
|
d639db1a9d | ||
|
|
abcd88ab09 | ||
|
|
140e8ff0d9 | ||
|
|
7b1a6d8811 | ||
|
|
80e0df803f | ||
|
|
a1486e0c08 | ||
|
|
314ecdc15a | ||
|
|
39ab213a0a | ||
|
|
c750a3e42c | ||
|
|
fc851bfb71 | ||
|
|
89ba3aae12 | ||
|
|
cf9dd9cf3b | ||
|
|
1f03218e56 | ||
|
|
9cbc2661e1 | ||
|
|
1e4aa8a7d4 | ||
|
|
1540e46180 | ||
|
|
b9fbc2faab | ||
|
|
7313a31b92 | ||
|
|
9599296d97 | ||
|
|
8ac9bc5858 | ||
|
|
73785e645b | ||
|
|
5a41427b37 | ||
|
|
ec9b7d57ac | ||
|
|
a59952f4c9 | ||
|
|
9ad29a120a | ||
|
|
bc231c8c92 | ||
|
|
2fd128fe15 | ||
|
|
1b91bcb342 | ||
|
|
bd71369ca5 | ||
|
|
d548c65214 | ||
|
|
301215b860 | ||
|
|
76dfe7f707 | ||
|
|
46accc5829 | ||
|
|
bb9be9ed00 | ||
|
|
c3ee1cf7f9 | ||
|
|
ce074f86c3 | ||
|
|
082b8cb318 | ||
|
|
85e4d13987 | ||
|
|
d5546e27cf | ||
|
|
45569b3a65 | ||
|
|
ce79f12b7b | ||
|
|
c0b462dd42 | ||
|
|
5721fa222a | ||
|
|
d1e88d085e | ||
|
|
afe805a586 | ||
|
|
da83df8bb7 | ||
|
|
0f98d16ad1 | ||
|
|
1bf74156a2 | ||
|
|
25f79b38d8 | ||
|
|
0603a70b79 | ||
|
|
9b4334593c | ||
|
|
99b8ef66fd | ||
|
|
036e845b65 | ||
|
|
9a010b5d73 | ||
|
|
4ad03aebbb | ||
|
|
a70eddca0d | ||
|
|
b7d5d72f78 | ||
|
|
153bd2fc0d | ||
|
|
33a5a447a8 | ||
|
|
08fe131e34 | ||
|
|
fa918cde67 | ||
|
|
4ae1928609 | ||
|
|
804ef2d9ee | ||
|
|
844d8fc641 | ||
|
|
963cefb1bb | ||
|
|
ff8aa96e68 | ||
|
|
cd85c690df | ||
|
|
e1fa8cca42 | ||
|
|
8f129be7fb | ||
|
|
139ce2d98a | ||
|
|
7f5b035542 | ||
|
|
abf04e0d1c | ||
|
|
d0df777779 | ||
|
|
d353146b32 | ||
|
|
e59111ddf3 | ||
|
|
40dbde3a86 | ||
|
|
ec891da5a7 | ||
|
|
c72c2bee4b | ||
|
|
9bf6ef1857 | ||
|
|
830a24d326 | ||
|
|
ea9ee98dd7 | ||
|
|
2909ee7529 | ||
|
|
cc5049f41e | ||
|
|
b25a3c3f11 | ||
|
|
f105bf6f5b | ||
|
|
d0dfef0321 | ||
|
|
fa9d6d7682 | ||
|
|
6a31970946 | ||
|
|
47d1b9ee33 | ||
|
|
b78021fcd1 | ||
|
|
4953b8bfa5 | ||
|
|
a2cb0c3029 | ||
|
|
032af13e8b | ||
|
|
20acbf2a93 | ||
|
|
ced9a44bc8 | ||
|
|
74fcfe6c7e | ||
|
|
d51673ed91 | ||
|
|
152a77b4f6 | ||
|
|
8514873d3d | ||
|
|
53ea54c90f | ||
|
|
666bd54f80 | ||
|
|
348fa7b88e | ||
|
|
2142a46875 | ||
|
|
d6e13af09c | ||
|
|
159d2cd692 | ||
|
|
e088fb2b1a |
22
.hgtags
22
.hgtags
@@ -145,3 +145,25 @@ f0eccb2946986fb9626efde7d8ed9c8192623f5c jdk8-b17
|
||||
b3a426170188f52981cf4573a2f14d487fddab0d jdk8-b21
|
||||
e8f03541af27e38aafb619b96863e17f65ffe53b jdk8-b22
|
||||
498124337041ad53cbaa7eb110f3d7acd6d4eac4 jdk8-b23
|
||||
7d3720d8c595d1519c31e9ff7366203fc2c61350 jdk8-b24
|
||||
0071a6d64113a35ba345bb1580c256de5ce17d3e jdk8-b25
|
||||
6c805d8ed4e5449ea5e4d158c7bdbd7b0b70efd1 jdk8-b26
|
||||
c51754cddc037b9609e202b9ed38363d8683e7a8 jdk8-b27
|
||||
16ba58282d117247f480aae7a79b88141ade52a3 jdk8-b28
|
||||
e070119aa56ee4dc5506c19d2c4d2eecab8ad429 jdk8-b29
|
||||
23da7804aca0c9c4e6e86532a1453125a76d95ee jdk8-b30
|
||||
bac81e9f7d57b75fba5ab31b571f3fe0dc08af69 jdk8-b31
|
||||
2c5208ccb863db936eab523f49450b3fcd230348 jdk8-b32
|
||||
a6e6d42203e6d35f9e8b31eac25b0021b4dd58ad jdk8-b33
|
||||
0ae89825c75c9492e44efb3aca3d9ee3d8a209df jdk8-b34
|
||||
f151d5833912a82cd4f203944da0305c3be83ecc jdk8-b35
|
||||
98ce9816ae089c959ba1e70fba98423a31c4e9fa jdk8-b36
|
||||
b3a91113026c99b0da010d41055719ab0d8938f0 jdk8-b37
|
||||
4cc5610a6dd6227da766ebf9742eb11ff5ded6c0 jdk8-b38
|
||||
35a5397278779a2f8f3013f81586dc8f30cb149d jdk8-b39
|
||||
6e4e654931b976304bf6e7b4d0d6db8f75bac5d9 jdk8-b40
|
||||
c029c972396cea042a0dc67c0f7ccf2fe68007d4 jdk8-b41
|
||||
5c5a64ec0839df5affe9394b99ff338c363acbca jdk8-b42
|
||||
69d8a827cdf9236be9694a46d75c710d71dac7d7 jdk8-b43
|
||||
7e981cb0ad6a194f1fa859f9ad47586db461f269 jdk8-b44
|
||||
9b19b2302c28f4da6d4078f66234abecfed5688a jdk8-b45
|
||||
|
||||
@@ -145,3 +145,25 @@ a4f28069d44a379cda99dd1d921d19f819726d22 jdk8-b15
|
||||
cc771d92284f71765eca14d6d08703c4af254c04 jdk8-b21
|
||||
7ad075c809952e355d25030605da6af30456ed74 jdk8-b22
|
||||
60d6f64a86b1e511169d264727f6d51415978df0 jdk8-b23
|
||||
1a5f1d6b98d6827cdb529a4abe6e52a886d944f4 jdk8-b24
|
||||
221a378e06a326f45e5d89e2123cd6323e0181d1 jdk8-b25
|
||||
2accafff224ae39caf5f532c305251ba624bf2c0 jdk8-b26
|
||||
1533dfab9903e4edcfead3b0192643f38c418b9b jdk8-b27
|
||||
6e2541d60f4e342b5b67140271d7611643929dc3 jdk8-b28
|
||||
41460de042580bc4a4ce3f863779c66f39cb8578 jdk8-b29
|
||||
6cea54809b51db92979c22fd8aa8fcb1cb13d12e jdk8-b30
|
||||
0b66f43b89a6c0ac1c15d7ec51992c541cdc9089 jdk8-b31
|
||||
88176171e940f02916a312c265a34c32552a8376 jdk8-b32
|
||||
42f275168fa5d9e7c70b246614dca8cf81f52c2e jdk8-b33
|
||||
894a478d2c4819a1a0f230bd7bdd09f3b2de9a8c jdk8-b34
|
||||
5285317ebb4e8e4f6d8d52b5616fa801e2ea844d jdk8-b35
|
||||
6a6ba0a07f33d37a2f97b1107e60c6a9a69ec84d jdk8-b36
|
||||
b2972095a4b1e2a97409b7c3df61f3b263a5ce14 jdk8-b37
|
||||
d939bd0ab13c16647ffa38cc4b64fb31b7d44e10 jdk8-b38
|
||||
8927dd68aee3fa54a1a698e2980e1b2f6c7c12c1 jdk8-b39
|
||||
a2b2d435f1d275fa8010774c653197c64e326d3a jdk8-b40
|
||||
1a8c7c530f8a9b7f5bdb9b0693b2f5435ca5205e jdk8-b41
|
||||
1ce5dc16416611c58b7480ca67a2eee5153498a6 jdk8-b42
|
||||
661c9aae602bbd9766d12590800c90f1edd1d8dd jdk8-b43
|
||||
e4f81a817447c3a4f6868f083c81c2fb1b15d44c jdk8-b44
|
||||
633f2378c904c92bb922a6e19e9f62fe8eac14af jdk8-b45
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
<li><a href="#linux">Basic Linux System Setup</a> </li>
|
||||
<li><a href="#solaris">Basic Solaris System Setup</a> </li>
|
||||
<li><a href="#windows">Basic Windows System Setup</a> </li>
|
||||
<li><a href="#macosx">Basic Mac OS X System Setup</a></li>
|
||||
<li><a href="#dependencies">Build Dependencies</a>
|
||||
<ul>
|
||||
<li><a href="#bootjdk">Bootstrap JDK</a> </li>
|
||||
@@ -107,6 +108,7 @@
|
||||
<li><a href="#testing">Testing the Build</a> </li>
|
||||
<li><a href="#variables">Environment/Make Variables</a></li>
|
||||
<li><a href="#troubleshooting">Troubleshooting</a></li>
|
||||
<li><a href="#newbuild">The New Build</a></li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
@@ -230,6 +232,12 @@
|
||||
<td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
|
||||
<td>JDK 6u18</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mac OS X X64 (64-bit)</td>
|
||||
<td>Mac OS X 10.7.3 "Lion"</td>
|
||||
<td>XCode 4.1 or later</td>
|
||||
<td>Java for OS X Lion Update 1</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>
|
||||
@@ -951,6 +959,36 @@
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<hr>
|
||||
<h3><a name="macosx">Basic Mac OS X System Setup</a></h3>
|
||||
<blockquote>
|
||||
<strong>X64 only:</strong>
|
||||
The minimum recommended hardware for building
|
||||
the Mac OS X version is any 64-bit capable Intel processor, at least 2
|
||||
GB of RAM, and approximately 3 GB of free disk space. You should also
|
||||
have OS X Lion 10.7.3 installed.
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
|
||||
<h4><a name="macosx_checklist">Basic Mac OS X Check List</a></h4>
|
||||
<blockquote>
|
||||
<ol>
|
||||
<li>
|
||||
Install <a href="https://developer.apple.com/xcode/">XCode 4.1</a> or newer.
|
||||
If you install XCode 4.3 or newer, make sure you also install
|
||||
"Command line tools" found under the preferences pane "Downloads".
|
||||
</li>
|
||||
<li>
|
||||
Install <a href="http://support.apple.com/kb/dl1421" target="_blank">"Java for OS X Lion Update 1"</a>,
|
||||
set <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a> to <code>`/usr/libexec/java_home -v 1.6`</code></tt>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#importjdk">Optional Import JDK</a>, set
|
||||
<tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
|
||||
</li>
|
||||
</ol>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<hr>
|
||||
<h3><a name="dependencies">Build Dependencies</a></h3>
|
||||
<blockquote>
|
||||
Depending on the platform, the OpenJDK build process has some basic
|
||||
@@ -1194,6 +1232,10 @@
|
||||
set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
|
||||
set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
|
||||
</pre>
|
||||
<strong><a name="llvmgcc">OS X Lion 10.7.3: LLVM GCC</a></strong>
|
||||
<blockquote>
|
||||
LLVM GCC is bundled with XCode. The version should be at least 4.2.1.
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<h4><a name="zip">Zip and Unzip</a></h4>
|
||||
@@ -2079,6 +2121,16 @@
|
||||
</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<!-- ------------------------------------------------------ -->
|
||||
<hr>
|
||||
<h2><a name="newbuild">The New Build</a></h2>
|
||||
<blockquote>
|
||||
The <a href="http://openjdk.java.net/projects/build-infra/">
|
||||
Build Infrastructure project</a> is working on a new
|
||||
build. For information on how to try it out, please see the
|
||||
<a href="http://openjdk.java.net/projects/build-infra/guide.html">
|
||||
Build Infra User Guide</a>
|
||||
</blockquote>
|
||||
<hr>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
26
common/autoconf/Makefile.in
Normal file
26
common/autoconf/Makefile.in
Normal file
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Generated Makefile @DATE_WHEN_CONFIGURED@
|
||||
SPEC:=@OUTPUT_ROOT@/spec.gmk
|
||||
include @SRC_ROOT@/common/makefiles/Makefile
|
||||
26
common/autoconf/autogen.sh
Normal file
26
common/autoconf/autogen.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
autoconf -W all configure.ac > configure
|
||||
rm -rf config.status config.log autom4te.cache
|
||||
1531
common/autoconf/build-aux/config.guess
vendored
Normal file
1531
common/autoconf/build-aux/config.guess
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1658
common/autoconf/build-aux/config.sub
vendored
Normal file
1658
common/autoconf/build-aux/config.sub
vendored
Normal file
File diff suppressed because it is too large
Load Diff
5
common/autoconf/build-aux/install.sh
Normal file
5
common/autoconf/build-aux/install.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
echo >&2 "No suitable 'install' command found.'"
|
||||
echo >&2 "If automake is installed, running 'automake -fa'"
|
||||
echo >&2 "(and ignoring the errors) might produce one."
|
||||
exit 1
|
||||
155
common/autoconf/build-aux/pkg.m4
Normal file
155
common/autoconf/build-aux/pkg.m4
Normal file
@@ -0,0 +1,155 @@
|
||||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
|
||||
#
|
||||
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
# configuration script generated by Autoconf, you may include it under
|
||||
# the same distribution terms that you use for the rest of that program.
|
||||
|
||||
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||
# ----------------------------------
|
||||
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
|
||||
fi[]dnl
|
||||
])# PKG_PROG_PKG_CONFIG
|
||||
|
||||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
# Check to see whether a particular set of modules exists. Similar
|
||||
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||
#
|
||||
#
|
||||
# Similar to PKG_CHECK_MODULES, make sure that the first instance of
|
||||
# this or PKG_CHECK_MODULES is called, or make sure to call
|
||||
# PKG_CHECK_EXISTS manually
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
if test -n "$PKG_CONFIG" && \
|
||||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
||||
m4_ifval([$2], [$2], [:])
|
||||
m4_ifvaln([$3], [else
|
||||
$3])dnl
|
||||
fi])
|
||||
|
||||
|
||||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||
# ---------------------------------------------
|
||||
m4_define([_PKG_CONFIG],
|
||||
[if test -n "$$1"; then
|
||||
pkg_cv_[]$1="$$1"
|
||||
elif test -n "$PKG_CONFIG"; then
|
||||
PKG_CHECK_EXISTS([$3],
|
||||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
|
||||
[pkg_failed=yes])
|
||||
else
|
||||
pkg_failed=untried
|
||||
fi[]dnl
|
||||
])# _PKG_CONFIG
|
||||
|
||||
# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
# -----------------------------
|
||||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||
_pkg_short_errors_supported=yes
|
||||
else
|
||||
_pkg_short_errors_supported=no
|
||||
fi[]dnl
|
||||
])# _PKG_SHORT_ERRORS_SUPPORTED
|
||||
|
||||
|
||||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||
# [ACTION-IF-NOT-FOUND])
|
||||
#
|
||||
#
|
||||
# Note that if there is a possibility the first call to
|
||||
# PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||
#
|
||||
#
|
||||
# --------------------------------------------------------------
|
||||
AC_DEFUN([PKG_CHECK_MODULES],
|
||||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||
|
||||
pkg_failed=no
|
||||
AC_MSG_CHECKING([for $1])
|
||||
|
||||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||
|
||||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
||||
and $1[]_LIBS to avoid the need to call pkg-config.
|
||||
See the pkg-config man page for more details.])
|
||||
|
||||
if test $pkg_failed = yes; then
|
||||
_PKG_SHORT_ERRORS_SUPPORTED
|
||||
if test $_pkg_short_errors_supported = yes; then
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
|
||||
else
|
||||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
|
||||
fi
|
||||
# Put the nasty error message in config.log where it belongs
|
||||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||
|
||||
ifelse([$4], , [AC_MSG_ERROR(dnl
|
||||
[Package requirements ($2) were not met:
|
||||
|
||||
$$1_PKG_ERRORS
|
||||
|
||||
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||
installed software in a non-standard prefix.
|
||||
|
||||
_PKG_TEXT
|
||||
])],
|
||||
[AC_MSG_RESULT([no])
|
||||
$4])
|
||||
elif test $pkg_failed = untried; then
|
||||
ifelse([$4], , [AC_MSG_FAILURE(dnl
|
||||
[The pkg-config script could not be found or is too old. Make sure it
|
||||
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||
path to pkg-config.
|
||||
|
||||
_PKG_TEXT
|
||||
|
||||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
|
||||
[$4])
|
||||
else
|
||||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||
AC_MSG_RESULT([yes])
|
||||
ifelse([$3], , :, [$3])
|
||||
fi[]dnl
|
||||
])# PKG_CHECK_MODULES
|
||||
66
common/autoconf/builddeps.conf.example
Normal file
66
common/autoconf/builddeps.conf.example
Normal file
@@ -0,0 +1,66 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# This is a configuration example using builddeps
|
||||
# that are downloaded from an ftp server.
|
||||
# This is how you use it:
|
||||
|
||||
#configure --with-builddeps-server=ftp://builddeps.server/adir \
|
||||
# --with-builddeps-conf=..../builddeps.conf.example
|
||||
# --with-builddeps-dir=/localdisk/mybuilddeps
|
||||
|
||||
# Translate a configuration triplet/quadruplet into something
|
||||
# known by this configuration file.
|
||||
# If no rewrite was found, then rewritten_host=${host}
|
||||
REWRITE_i686_pc_linux_gnu=i686-unknown-linux-gnu
|
||||
REWRITE_i386_pc_solaris2_10=i686-sun-solaris2_10
|
||||
|
||||
# The needed cups builddeps are host independent header files.
|
||||
# I.e. they need not be part of the devkit.
|
||||
builddep_cups=lib/cups_1_3_9.zip
|
||||
builddep_cups_CFLAGS=-I${depdir}
|
||||
|
||||
# The devkit is the cross compiler tools and sys-roots
|
||||
# for the build platform.
|
||||
builddep_devkit=sdk/sdk-${rewritten_build}-20110921.tar.gz
|
||||
|
||||
# The freetype dependency is partyl host dependent.
|
||||
# It is stored inside the sys-root.
|
||||
builddep_freetype2=sdk/sdk-${rewritten_build}-20110921.tar.gz
|
||||
builddep_freetype2_CFLAGS=-I${depdir}/${rewritten_host}/sys-root/usr/include/freetype2
|
||||
builddep_freetype2_LIBS=-lfreetype
|
||||
|
||||
# There are many other build dependencies, but they are implicitly
|
||||
# found inside the devkit sys-root.
|
||||
|
||||
# The boot jdk runs on the build system and is used to compile and run
|
||||
# Java build tools and of course, the bootstrap javac.
|
||||
builddep_bootjdk_BUILD_i386_pc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-i586-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_x86_64_pc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-x64-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_i686_unknown_linux_gnu=java/jdk-7u2-fcs-bin-b13-linux-i586-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_x86_64_unknown_linux_gnu=java/jdk-7u2-fcs-bin-b13-linux-x64-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_sparc_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-sparc-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_sparcv9_solaris2=java/jdk-7u2-fcs-bin-b13-solaris-sparcv9-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_i386_pc_windows=java/jdk-7u2-fcs-bin-b13-windows-i586-17_nov_2011.zip
|
||||
builddep_bootjdk_BUILD_x86_64_pc_windows=java/jdk-7u2-fcs-bin-b13-windows-x64-17_nov_2011.zip
|
||||
builddep_bootjdk_ROOT=${depdir}/jdk7_02/jdk1.7.0_02
|
||||
43
common/autoconf/builddeps.conf.nfs.example
Normal file
43
common/autoconf/builddeps.conf.nfs.example
Normal file
@@ -0,0 +1,43 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# This is a configuration example using an nfs-mount /java
|
||||
# it will use the builddeps directly from the nfs mounted directory.
|
||||
# This is how you use it:
|
||||
|
||||
#configure --with-builddeps-conf=..../builddeps.conf.nfs.example
|
||||
|
||||
REWRITE_i686_pc_linux_gnu=i686-unknown-linux-gnu
|
||||
REWRITE_i386_pc_solaris2_10=i686-sun-solaris2_10
|
||||
|
||||
DEVTOOLS=/java/devtools
|
||||
|
||||
builddep_cups=${DEVTOOLS}/linux/cups/include
|
||||
builddep_cups_CFLAGS=-I${depdir}
|
||||
|
||||
JDK_ROOT=/java/re/jdk/7u4/latest/binaries
|
||||
builddep_bootjdk_BUILD_i386_pc_solaris2=${JDK_ROOT}/solaris-i586
|
||||
builddep_bootjdk_BUILD_x86_64_pc_solaris2=${JDK_ROOT}/solaris-amd64
|
||||
builddep_bootjdk_BUILD_i686_unknown_linux_gnu=${JDK_ROOT}/linux-i586
|
||||
builddep_bootjdk_BUILD_x86_64_unknown_linux_gnu=${JDK_ROOT}/linux-amd64
|
||||
builddep_bootjdk_ROOT=
|
||||
230
common/autoconf/builddeps.m4
Normal file
230
common/autoconf/builddeps.m4
Normal file
@@ -0,0 +1,230 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
AC_DEFUN([BDEPS_SCAN_FOR_BUILDDEPS],
|
||||
[
|
||||
define(LIST_OF_BUILD_DEPENDENCIES,)
|
||||
if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
|
||||
if test "x$with_builddeps_conf" != x; then
|
||||
AC_MSG_CHECKING([for supplied builddeps configuration file])
|
||||
builddepsfile=$with_builddeps_conf
|
||||
if test -s $builddepsfile; then
|
||||
. $builddepsfile
|
||||
AC_MSG_RESULT([loaded!])
|
||||
else
|
||||
AC_MSG_ERROR([The given builddeps conf file $with_builddeps_conf could not be loaded!])
|
||||
fi
|
||||
else
|
||||
AC_MSG_CHECKING([for builddeps.conf files in sources...])
|
||||
builddepsfile=`mktemp`
|
||||
touch $builddepsfile
|
||||
# Put all found confs into a single file.
|
||||
find ${SRC_ROOT} -name builddeps.conf -exec cat \{\} \; >> $builddepsfile
|
||||
# Source the file to acquire the variables
|
||||
if test -s $builddepsfile; then
|
||||
. $builddepsfile
|
||||
AC_MSG_RESULT([found at least one!])
|
||||
else
|
||||
AC_MSG_ERROR([Could not find any builddeps.conf at all!])
|
||||
fi
|
||||
fi
|
||||
# Create build and host names that use _ instead of "-" and ".".
|
||||
# This is necessary to use them in variable names.
|
||||
build_var=`echo ${build} | tr '-' '_' | tr '.' '_'`
|
||||
host_var=`echo ${host} | tr '-' '_' | tr '.' '_'`
|
||||
# Extract rewrite information for build and host
|
||||
eval rewritten_build=\${REWRITE_${build_var}}
|
||||
if test "x$rewritten_build" = x; then
|
||||
rewritten_build=${build}
|
||||
echo Build stays the same $rewritten_build
|
||||
else
|
||||
echo Rewriting build for builddeps into $rewritten_build
|
||||
fi
|
||||
eval rewritten_host=\${REWRITE_${host_var}}
|
||||
if test "x$rewritten_host" = x; then
|
||||
rewritten_host=${host}
|
||||
echo Host stays the same $rewritten_host
|
||||
else
|
||||
echo Rewriting host for builddeps into $rewritten_host
|
||||
fi
|
||||
rewritten_build_var=`echo ${rewritten_build} | tr '-' '_' | tr '.' '_'`
|
||||
rewritten_host_var=`echo ${rewritten_host} | tr '-' '_' | tr '.' '_'`
|
||||
fi
|
||||
AC_CHECK_PROGS(BDEPS_UNZIP, [7z unzip])
|
||||
if test "x$BDEPS_UNZIP" = x7z; then
|
||||
BDEPS_UNZIP="7z x"
|
||||
fi
|
||||
|
||||
AC_CHECK_PROGS(BDEPS_FTP, [wget lftp ftp])
|
||||
])
|
||||
|
||||
AC_DEFUN([BDEPS_FTPGET],
|
||||
[
|
||||
# $1 is the ftp://abuilddeps.server.com/libs/cups.zip
|
||||
# $2 is the local file name for the downloaded file.
|
||||
VALID_TOOL=no
|
||||
if test "x$BDEPS_FTP" = xwget; then
|
||||
VALID_TOOL=yes
|
||||
wget -O $2 $1
|
||||
fi
|
||||
if test "x$BDEPS_FTP" = xlftp; then
|
||||
VALID_TOOL=yes
|
||||
lftp -c "get $1 -o $2"
|
||||
fi
|
||||
if test "x$BDEPS_FTP" = xftp; then
|
||||
VALID_TOOL=yes
|
||||
FTPSERVER=`echo $1 | cut -f 3 -d '/'`
|
||||
FTPPATH=`echo $1 | cut -f 4- -d '/'`
|
||||
FTPUSERPWD=${FTPSERVER%%@*}
|
||||
if test "x$FTPSERVER" != "x$FTPUSERPWD"; then
|
||||
FTPUSER=${userpwd%%:*}
|
||||
FTPPWD=${userpwd#*@}
|
||||
FTPSERVER=${FTPSERVER#*@}
|
||||
else
|
||||
FTPUSER=ftp
|
||||
FTPPWD=ftp
|
||||
fi
|
||||
# the "pass" command does not work on some
|
||||
# ftp clients (read ftp.exe) but if it works,
|
||||
# passive mode is better!
|
||||
(\
|
||||
echo "user $FTPUSER $FTPPWD" ;\
|
||||
echo "pass" ;\
|
||||
echo "bin" ;\
|
||||
echo "get $FTPPATH $2" ;\
|
||||
) | ftp -in $FTPSERVER
|
||||
fi
|
||||
if test "x$VALID_TOOL" != xyes; then
|
||||
AC_MSG_ERROR([I do not know how to use the tool: $BDEPS_FTP])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BDEPS_CHECK_MODULE],
|
||||
[
|
||||
define([LIST_OF_BUILD_DEPENDENCIES],LIST_OF_BUILD_DEPENDENCIES[$2=$3'\n'])
|
||||
if test "x$with_builddeps_server" != x || test "x$with_builddeps_conf" != x; then
|
||||
# Source the builddeps file again, to make sure it uses the latest variables!
|
||||
. $builddepsfile
|
||||
# Look for a host and build machine specific resource!
|
||||
eval resource=\${builddep_$2_BUILD_${rewritten_build_var}_HOST_${rewritten_host_var}}
|
||||
if test "x$resource" = x; then
|
||||
# Ok, lets instead look for a host specific resource
|
||||
eval resource=\${builddep_$2_HOST_${rewritten_host_var}}
|
||||
fi
|
||||
if test "x$resource" = x; then
|
||||
# Ok, lets instead look for a build specific resource
|
||||
eval resource=\${builddep_$2_BUILD_${rewritten_build_var}}
|
||||
fi
|
||||
if test "x$resource" = x; then
|
||||
# Ok, lets instead look for a generic resource
|
||||
# (The $2 comes from M4 and not the shell, thus no need for eval here.)
|
||||
resource=${builddep_$2}
|
||||
fi
|
||||
if test "x$resource" != x; then
|
||||
AC_MSG_NOTICE([Using builddeps $resource for $2])
|
||||
# If the resource in the builddeps.conf file is an existing directory,
|
||||
# for example /java/linux/cups
|
||||
if test -d ${resource}; then
|
||||
depdir=${resource}
|
||||
else
|
||||
BDEPS_FETCH($2, $resource, $with_builddeps_server, $with_builddeps_dir, depdir)
|
||||
fi
|
||||
# Source the builddeps file again, because in the previous command, the depdir
|
||||
# was updated to point at the current build dependency install directory.
|
||||
. $builddepsfile
|
||||
# Now extract variables from the builddeps.conf files.
|
||||
theroot=${builddep_$2_ROOT}
|
||||
thecflags=${builddep_$2_CFLAGS}
|
||||
thelibs=${builddep_$2_LIBS}
|
||||
if test "x$depdir" = x; then
|
||||
AC_MSG_ERROR([Could not download build dependency $2])
|
||||
fi
|
||||
$1=$depdir
|
||||
if test "x$theroot" != x; then
|
||||
$1="$theroot"
|
||||
fi
|
||||
if test "x$thecflags" != x; then
|
||||
$1_CFLAGS="$thecflags"
|
||||
fi
|
||||
if test "x$thelibs" != x; then
|
||||
$1_LIBS="$thelibs"
|
||||
fi
|
||||
m4_default([$4], [:])
|
||||
m4_ifvaln([$5], [else $5])
|
||||
fi
|
||||
m4_ifvaln([$5], [else $5])
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([BDEPS_FETCH],
|
||||
[
|
||||
# $1 is for example mymodule
|
||||
# $2 is for example libs/general/libmymod_1_2_3.zip
|
||||
# $3 is for example ftp://mybuilddeps.myserver.com/builddeps
|
||||
# $4 is for example /localhome/builddeps
|
||||
# $5 is the name of the variable into which we store the depdir, eg MYMOD
|
||||
# Will download ftp://mybuilddeps.myserver.com/builddeps/libs/general/libmymod_1_2_3.zip and
|
||||
# unzip into the directory: /localhome/builddeps/libmymod_1_2_3
|
||||
filename=`basename $2`
|
||||
filebase=`echo $filename | sed 's/\.[[^\.]]*$//'`
|
||||
filebase=${filename%%.*}
|
||||
extension=${filename#*.}
|
||||
installdir=$4/$filebase
|
||||
if test ! -f $installdir/$filename.unpacked; then
|
||||
AC_MSG_NOTICE([Downloading build dependency $1 from $3/$2 and installing into $installdir])
|
||||
if test ! -d $installdir; then
|
||||
mkdir -p $installdir
|
||||
fi
|
||||
if test ! -d $installdir; then
|
||||
AC_MSG_ERROR([Could not create directory $installdir])
|
||||
fi
|
||||
tmpfile=`mktemp $installdir/$1.XXXXXXXXX`
|
||||
touch $tmpfile
|
||||
if test ! -f $tmpfile; then
|
||||
AC_MSG_ERROR([Could not create files in directory $installdir])
|
||||
fi
|
||||
BDEPS_FTPGET([$3/$2] , [$tmpfile])
|
||||
mv $tmpfile $installdir/$filename
|
||||
if test ! -s $installdir/$filename; then
|
||||
AC_MSG_ERROR([Could not download $3/$2])
|
||||
fi
|
||||
case "$extension" in
|
||||
zip) echo "Unzipping $installdir/$filename..."
|
||||
(cd $installdir ; rm -f $installdir/$filename.unpacked ; $BDEPS_UNZIP $installdir/$filename > /dev/null && touch $installdir/$filename.unpacked)
|
||||
;;
|
||||
tar.gz) echo "Untaring $installdir/$filename..."
|
||||
(cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
|
||||
;;
|
||||
tgz) echo "Untaring $installdir/$filename..."
|
||||
(cd $installdir ; rm -f $installdir/$filename.unpacked ; tar xzf $installdir/$filename && touch $installdir/$filename.unpacked)
|
||||
;;
|
||||
*) AC_MSG_ERROR([Cannot handle build depency archive with extension $extension])
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test -f $installdir/$filename.unpacked; then
|
||||
$5=$installdir
|
||||
fi
|
||||
])
|
||||
28
common/autoconf/closed.version.numbers
Normal file
28
common/autoconf/closed.version.numbers
Normal file
@@ -0,0 +1,28 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
LAUNCHER_NAME=java
|
||||
PRODUCT_NAME="Java(TM)"
|
||||
PRODUCT_SUFFIX="SE Runtime Environment"
|
||||
JDK_RC_PLATFORM_NAME="Platform SE"
|
||||
COMPANY_NAME="Oracle Corporation"
|
||||
49
common/autoconf/config.h.in
Normal file
49
common/autoconf/config.h.in
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#define PACKAGE_NAME "openjdk"
|
||||
#define PACKAGE_TARNAME "openjdk"
|
||||
#define PACKAGE_VERSION "version-0.1"
|
||||
#define PACKAGE_STRING "openjdk version-0.1"
|
||||
#define PACKAGE_BUGREPORT "build-infra-dev@openjdk.java.net"
|
||||
#define PACKAGE_URL ""
|
||||
#define STDC_HEADERS
|
||||
#define HAVE_SYS_TYPES_H
|
||||
#define HAVE_SYS_STAT_H
|
||||
#define HAVE_STDLIB_H
|
||||
#define HAVE_STRING_H
|
||||
#define HAVE_MEMORY_H
|
||||
#define HAVE_STRINGS_H
|
||||
#define HAVE_INTTYPES_H
|
||||
#define HAVE_STDINT_H
|
||||
#define HAVE_UNISTD_H
|
||||
#define SIZEOF_INT_P 8
|
||||
#define HAVE_CUPS_CUPS_H
|
||||
#define HAVE_CUPS_PPD_H
|
||||
#define HAVE_LIBJPEG
|
||||
#define HAVE_LIBGIF
|
||||
#define HAVE_LIBZ
|
||||
#define HAVE_LIBM
|
||||
#define HAVE_ALTZONE
|
||||
16781
common/autoconf/configure
vendored
Normal file
16781
common/autoconf/configure
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2878
common/autoconf/configure.ac
Normal file
2878
common/autoconf/configure.ac
Normal file
File diff suppressed because it is too large
Load Diff
103
common/autoconf/cores.m4
Normal file
103
common/autoconf/cores.m4
Normal file
@@ -0,0 +1,103 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
AC_DEFUN([CHECK_CORES],
|
||||
[
|
||||
AC_MSG_CHECKING([for number of cores])
|
||||
NUM_CORES=1
|
||||
FOUND_CORES=no
|
||||
|
||||
if test -f /proc/cpuinfo; then
|
||||
# Looks like a Linux system
|
||||
NUM_CORES=`cat /proc/cpuinfo | grep -c processor`
|
||||
FOUND_CORES=yes
|
||||
fi
|
||||
|
||||
if test -x /usr/sbin/psrinfo; then
|
||||
# Looks like a Solaris system
|
||||
NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
|
||||
FOUND_CORES=yes
|
||||
fi
|
||||
|
||||
if test -x /usr/sbin/system_profiler; then
|
||||
# Looks like a MacOSX system
|
||||
NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'`
|
||||
FOUND_CORES=yes
|
||||
fi
|
||||
|
||||
if test "x$build_os" = xwindows; then
|
||||
NUM_CORES=4
|
||||
fi
|
||||
|
||||
# For c/c++ code we run twice as many concurrent build
|
||||
# jobs than we have cores, otherwise we will stall on io.
|
||||
CONCURRENT_BUILD_JOBS=`expr $NUM_CORES \* 2`
|
||||
|
||||
if test "x$FOUND_CORES" = xyes; then
|
||||
AC_MSG_RESULT([$NUM_CORES])
|
||||
else
|
||||
AC_MSG_RESULT([could not detect number of cores, defaulting to 1!])
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_MEMORY_SIZE],
|
||||
[
|
||||
AC_MSG_CHECKING([for memory size])
|
||||
# Default to 1024MB
|
||||
MEMORY_SIZE=1024
|
||||
FOUND_MEM=no
|
||||
|
||||
if test -f /proc/cpuinfo; then
|
||||
# Looks like a Linux system
|
||||
MEMORY_SIZE=`cat /proc/meminfo | grep MemTotal | awk '{print [$]2}'`
|
||||
MEMORY_SIZE=`expr $MEMORY_SIZE / 1024`
|
||||
FOUND_MEM=yes
|
||||
fi
|
||||
|
||||
if test -x /usr/sbin/prtconf; then
|
||||
# Looks like a Solaris system
|
||||
MEMORY_SIZE=`/usr/sbin/prtconf | grep "Memory size" | awk '{ print [$]3 }'`
|
||||
FOUND_MEM=yes
|
||||
fi
|
||||
|
||||
if test -x /usr/sbin/system_profiler; then
|
||||
# Looks like a MacOSX system
|
||||
MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print [$]2}'`
|
||||
MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024`
|
||||
FOUND_MEM=yes
|
||||
fi
|
||||
|
||||
if test "x$build_os" = xwindows; then
|
||||
MEMORY_SIZE=`systeminfo | grep 'Total Physical Memory:' | awk '{ print [$]4 }' | sed 's/,//'`
|
||||
FOUND_MEM=yes
|
||||
fi
|
||||
|
||||
if test "x$FOUND_MEM" = xyes; then
|
||||
AC_MSG_RESULT([$MEMORY_SIZE MB])
|
||||
else
|
||||
AC_MSG_RESULT([could not detect memory size defaulting to 1024MB!])
|
||||
fi
|
||||
])
|
||||
112
common/autoconf/help.m4
Normal file
112
common/autoconf/help.m4
Normal file
@@ -0,0 +1,112 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
function prepare_help_system {
|
||||
AC_CHECK_PROGS(PKGHANDLER, apt-get yum port pkgutil pkgadd)
|
||||
}
|
||||
|
||||
function help_on_build_dependency {
|
||||
# Print a helpful message on how to acquire the necessary build dependency.
|
||||
# $1 is the help tag: freetyp2, cups, pulse, alsa etc
|
||||
MISSING_DEPENDENCY=$1
|
||||
PKGHANDLER_COMMAND=
|
||||
|
||||
case $PKGHANDLER in
|
||||
apt-get)
|
||||
apt_help $MISSING_DEPENDENCY ;;
|
||||
yum)
|
||||
yum_help $MISSING_DEPENDENCY ;;
|
||||
port)
|
||||
port_help $MISSING_DEPENDENCY ;;
|
||||
pkgutil)
|
||||
pkgutil_help $MISSING_DEPENDENCY ;;
|
||||
pkgadd)
|
||||
pkgadd_help $MISSING_DEPENDENCY ;;
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
|
||||
if test "x$PKGHANDLER_COMMAND" != x; then
|
||||
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||
fi
|
||||
}
|
||||
|
||||
function apt_help {
|
||||
case $1 in
|
||||
devkit)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
|
||||
openjdk)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install openjdk-7-jdk" ;;
|
||||
alsa)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
|
||||
freetype2)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
|
||||
pulse)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
|
||||
x11)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev" ;;
|
||||
ccache)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
}
|
||||
|
||||
function yum_help {
|
||||
case $1 in
|
||||
devkit)
|
||||
PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
|
||||
openjdk)
|
||||
PKGHANDLER_COMMAND="sudo yum install java-1.7.0-openjdk" ;;
|
||||
alsa)
|
||||
PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
|
||||
freetype2)
|
||||
PKGHANDLER_COMMAND="sudo yum install freetype2-devel" ;;
|
||||
pulse)
|
||||
PKGHANDLER_COMMAND="sudo yum install pulseaudio-libs-devel" ;;
|
||||
x11)
|
||||
PKGHANDLER_COMMAND="sudo yum install libXtst-devel" ;;
|
||||
ccache)
|
||||
PKGHANDLER_COMMAND="sudo yum install ccache" ;;
|
||||
* )
|
||||
break ;;
|
||||
esac
|
||||
}
|
||||
|
||||
function port_help {
|
||||
PKGHANDLER_COMMAND=""
|
||||
}
|
||||
|
||||
function pkgutil_help {
|
||||
PKGHANDLER_COMMAND=""
|
||||
}
|
||||
|
||||
function pkgadd_help {
|
||||
PKGHANDLER_COMMAND=""
|
||||
}
|
||||
547
common/autoconf/platform.m4
Normal file
547
common/autoconf/platform.m4
Normal file
@@ -0,0 +1,547 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
AC_DEFUN([CHECK_FIND_DELETE],
|
||||
[
|
||||
# Test if find supports -delete
|
||||
AC_MSG_CHECKING([if find supports -delete])
|
||||
FIND_DELETE="-delete"
|
||||
|
||||
DELETEDIR=`mktemp -d tmp.XXXXXXXXXX` || (echo Could not create temporary directory!; exit $?)
|
||||
|
||||
echo Hejsan > $DELETEDIR/TestIfFindSupportsDelete
|
||||
|
||||
TEST_DELETE=`$FIND "$DELETEDIR" -name TestIfFindSupportsDelete $FIND_DELETE 2>&1`
|
||||
if test -f $DELETEDIR/TestIfFindSupportsDelete; then
|
||||
# No, it does not.
|
||||
rm $DELETEDIR/TestIfFindSupportsDelete
|
||||
FIND_DELETE="-exec rm \{\} \+"
|
||||
AC_MSG_RESULT([no])
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
rmdir $DELETEDIR
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_NONEMPTY],
|
||||
[
|
||||
# Test that variable $1 is not empty.
|
||||
if test "" = "[$]$1"; then AC_MSG_ERROR(Could not find translit($1,A-Z,a-z) !); fi
|
||||
])
|
||||
|
||||
AC_DEFUN([ADD_JVM_ARG_IF_OK],
|
||||
[
|
||||
# Test if $1 is a valid argument to $3 (often is $JAVA passed as $3)
|
||||
# If so, then append $1 to $2
|
||||
FOUND_WARN=`$3 $1 -version 2>&1 | grep -i warn`
|
||||
FOUND_VERSION=`$3 $1 -version 2>&1 | grep " version \""`
|
||||
if test "x$FOUND_VERSION" != x && test "x$FOUND_WARN" = x; then
|
||||
$2="[$]$2 $1"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([WHICHCMD],
|
||||
[
|
||||
# Translate "gcc -E" into "`which gcc` -E" ie
|
||||
# extract the full path to the binary and at the
|
||||
# same time maintain any arguments passed to it.
|
||||
# The command MUST exist in the path, or else!
|
||||
tmp="[$]$1"
|
||||
car="${tmp%% *}"
|
||||
tmp="[$]$1 EOL"
|
||||
cdr="${tmp#* }"
|
||||
# On windows we want paths without spaces.
|
||||
if test "x$BUILD_OS" = "xwindows"; then
|
||||
WHICHCMD_SPACESAFE(car)
|
||||
else
|
||||
# "which" is not portable, but is used here
|
||||
# because we know that the command exists!
|
||||
car=`which $car`
|
||||
fi
|
||||
if test "x$cdr" != xEOL; then
|
||||
$1="$car ${cdr% *}"
|
||||
else
|
||||
$1="$car"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([SPACESAFE],
|
||||
[
|
||||
# Fail with message $2 if var $1 contains a path with no spaces in it.
|
||||
# Unless on Windows, where we can rewrite the path.
|
||||
HAS_SPACE=`echo "[$]$1" | grep " "`
|
||||
if test "x$HAS_SPACE" != x; then
|
||||
if test "x$BUILD_OS" = "xwindows"; then
|
||||
$1=`$CYGPATH -s -m -a "[$]$1"`
|
||||
$1=`$CYGPATH -u "[$]$1"`
|
||||
else
|
||||
AC_MSG_ERROR([You cannot have spaces in $2! "[$]$1"])
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([WHICHCMD_SPACESAFE],
|
||||
[
|
||||
# Translate long cygdrive or C:\sdfsf path
|
||||
# into a short mixed mode path that has no
|
||||
# spaces in it.
|
||||
tmp="[$]$1"
|
||||
if test "x$BUILD_OS" = "xwindows"; then
|
||||
tmp=`$CYGPATH -u "[$]$1"`
|
||||
tmp=`which "$tmp"`
|
||||
# If file exists with .exe appended, that's the real filename
|
||||
# and cygpath needs that to convert to short style path.
|
||||
if test -f "${tmp}.exe"; then
|
||||
tmp="${tmp}.exe"
|
||||
elif test -f "${tmp}.cmd"; then
|
||||
tmp="${tmp}.cmd"
|
||||
fi
|
||||
# Convert to C:/ mixed style path without spaces.
|
||||
tmp=`$CYGPATH -s -m "$tmp"`
|
||||
fi
|
||||
$1="$tmp"
|
||||
])
|
||||
|
||||
AC_DEFUN([REMOVE_SYMBOLIC_LINKS],
|
||||
[
|
||||
if test "x$BUILD_OS" != xwindows; then
|
||||
# Follow a chain of symbolic links. Use readlink
|
||||
# where it exists, else fall back to horribly
|
||||
# complicated shell code.
|
||||
AC_PATH_PROG(READLINK, readlink)
|
||||
if test "x$READLINK_TESTED" != yes; then
|
||||
# On MacOSX there is a readlink tool with a different
|
||||
# purpose than the GNU readlink tool. Check the found readlink.
|
||||
ISGNU=`$READLINK --help 2>&1 | grep GNU`
|
||||
if test "x$ISGNU" = x; then
|
||||
# A readlink that we do not know how to use.
|
||||
# Are there other non-GNU readlinks out there?
|
||||
READLINK_TESTED=yes
|
||||
READLINK=
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$READLINK" != x; then
|
||||
$1=`$READLINK -f [$]$1`
|
||||
else
|
||||
STARTDIR=$PWD
|
||||
COUNTER=0
|
||||
DIR=`dirname [$]$1`
|
||||
FIL=`basename [$]$1`
|
||||
while test $COUNTER -lt 20; do
|
||||
ISLINK=`ls -l $DIR/$FIL | grep '\->' | sed -e 's/.*-> \(.*\)/\1/'`
|
||||
if test "x$ISLINK" == x; then
|
||||
# This is not a symbolic link! We are done!
|
||||
break
|
||||
fi
|
||||
# The link might be relative! We have to use cd to travel safely.
|
||||
cd $DIR
|
||||
cd `dirname $ISLINK`
|
||||
DIR=`pwd`
|
||||
FIL=`basename $ISLINK`
|
||||
let COUNTER=COUNTER+1
|
||||
done
|
||||
cd $STARTDIR
|
||||
$1=$DIR/$FIL
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([TESTFOR_PROG_CCACHE],
|
||||
[
|
||||
AC_ARG_ENABLE([ccache],
|
||||
[AS_HELP_STRING([--disable-ccache],
|
||||
[use ccache to speed up recompilations @<:@enabled@:>@])],
|
||||
[ENABLE_CCACHE=${enable_ccache}], [ENABLE_CCACHE=yes])
|
||||
if test "x$ENABLE_CCACHE" = xyes; then
|
||||
AC_PATH_PROG(CCACHE, ccache)
|
||||
else
|
||||
AC_MSG_CHECKING([for ccache])
|
||||
AC_MSG_RESULT([explicitly disabled])
|
||||
CCACHE=
|
||||
fi
|
||||
AC_SUBST(CCACHE)
|
||||
|
||||
AC_ARG_WITH([ccache-dir],
|
||||
[AS_HELP_STRING([--with-ccache-dir],
|
||||
[where to store ccache files @<:@~/.ccache@:>@])])
|
||||
|
||||
if test "x$with_ccache_dir" != x; then
|
||||
# When using a non home ccache directory, assume the use is to share ccache files
|
||||
# with other users. Thus change the umask.
|
||||
SET_CCACHE_DIR="CCACHE_DIR=$with_ccache_dir CCACHE_UMASK=002"
|
||||
fi
|
||||
CCACHE_FOUND=""
|
||||
if test "x$CCACHE" != x; then
|
||||
SETUP_CCACHE_USAGE
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([SETUP_CCACHE_USAGE],
|
||||
[
|
||||
if test "x$CCACHE" != x; then
|
||||
CCACHE_FOUND="true"
|
||||
# Only use ccache if it is 3.1.4 or later, which supports
|
||||
# precompiled headers.
|
||||
AC_MSG_CHECKING([if ccache supports precompiled headers])
|
||||
HAS_GOOD_CCACHE=`($CCACHE --version | head -n 1 | grep -E 3.1.@<:@456789@:>@) 2> /dev/null`
|
||||
if test "x$HAS_GOOD_CCACHE" = x; then
|
||||
AC_MSG_RESULT([no, disabling ccache])
|
||||
CCACHE=
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([if C-compiler supports ccache precompiled headers])
|
||||
PUSHED_FLAGS="$CXXFLAGS"
|
||||
CXXFLAGS="-fpch-preprocess $CXXFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [CC_KNOWS_CCACHE_TRICK=yes], [CC_KNOWS_CCACHE_TRICK=no])
|
||||
CXXFLAGS="$PUSHED_FLAGS"
|
||||
if test "x$CC_KNOWS_CCACHE_TRICK" = xyes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no, disabling ccaching of precompiled headers])
|
||||
CCACHE=
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$CCACHE" != x; then
|
||||
CCACHE_SLOPPINESS=time_macros
|
||||
CCACHE="CCACHE_COMPRESS=1 $SET_CCACHE_DIR CCACHE_SLOPPINESS=$CCACHE_SLOPPINESS $CCACHE"
|
||||
CCACHE_FLAGS=-fpch-preprocess
|
||||
|
||||
if test "x$SET_CCACHE_DIR" != x; then
|
||||
mkdir -p $CCACHE_DIR > /dev/null 2>&1
|
||||
chmod a+rwxs $CCACHE_DIR > /dev/null 2>&1
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([EXTRACT_HOST_AND_BUILD_AND_LEGACY_VARS],
|
||||
[
|
||||
# Expects $host_os $host_cpu $build_os and $build_cpu
|
||||
# and $with_data_model to have been setup!
|
||||
#
|
||||
# Translate the standard triplet(quadruplet) definition
|
||||
# of the host/build system into
|
||||
# HOST_OS=aix,bsd,hpux,linux,macosx,solaris,windows
|
||||
# HOST_OS_FAMILY=bsd,gnu,sysv,win32,wince
|
||||
# HOST_OS_API=posix,winapi
|
||||
#
|
||||
# HOST_CPU=ia32,x64,sparc,sparcv9,arm,arm64,ppc,ppc64
|
||||
# HOST_CPU_ARCH=x86,sparc,pcc,arm
|
||||
# HOST_CPU_BITS=32,64
|
||||
# HOST_CPU_ENDIAN=big,little
|
||||
#
|
||||
# The same values are setup for BUILD_...
|
||||
#
|
||||
# And the legacy variables, for controlling the old makefiles.
|
||||
# LEGACY_HOST_CPU1=i586,amd64/x86_64,sparc,sparcv9,arm,arm64...
|
||||
# LEGACY_HOST_CPU2=i386,amd64,sparc,sparcv9,arm,arm64...
|
||||
# LEGACY_HOST_CPU3=sparcv9,amd64 (but only on solaris)
|
||||
# LEGACY_HOST_OS_API=solaris,windows
|
||||
#
|
||||
# We also copy the autoconf trip/quadruplet
|
||||
# verbatim to HOST and BUILD
|
||||
AC_SUBST(HOST, ${host})
|
||||
AC_SUBST(BUILD, ${build})
|
||||
|
||||
EXTRACT_VARS_FROM_OS_TO(HOST,$host_os)
|
||||
EXTRACT_VARS_FROM_CPU_TO(HOST,$host_cpu)
|
||||
|
||||
EXTRACT_VARS_FROM_OS_TO(BUILD,$build_os)
|
||||
EXTRACT_VARS_FROM_CPU_TO(BUILD,$build_cpu)
|
||||
|
||||
if test "x$HOST_OS" != xsolaris; then
|
||||
LEGACY_HOST_CPU3=""
|
||||
LEGACY_BUILD_CPU3=""
|
||||
fi
|
||||
|
||||
# On MacOSX and MacOSX only, we have a different name for the x64 CPU in ARCH (LEGACY_HOST_CPU1) ...
|
||||
if test "x$HOST_OS" = xmacosx && test "x$HOST_CPU" = xx64; then
|
||||
LEGACY_HOST_CPU1="x86_64"
|
||||
fi
|
||||
|
||||
SET_RELEASE_FILE_OS_VALUES()
|
||||
])
|
||||
|
||||
AC_DEFUN([EXTRACT_VARS_FROM_OS_TO],
|
||||
[
|
||||
EXTRACT_VARS_FROM_OS($2)
|
||||
$1_OS="$VAR_OS"
|
||||
$1_OS_FAMILY="$VAR_OS_FAMILY"
|
||||
$1_OS_API="$VAR_OS_API"
|
||||
|
||||
AC_SUBST($1_OS)
|
||||
AC_SUBST($1_OS_FAMILY)
|
||||
AC_SUBST($1_OS_API)
|
||||
|
||||
if test "x$$1_OS_API" = xposix; then
|
||||
LEGACY_$1_OS_API="solaris"
|
||||
fi
|
||||
if test "x$$1_OS_API" = xwinapi; then
|
||||
LEGACY_$1_OS_API="windows"
|
||||
fi
|
||||
AC_SUBST(LEGACY_$1_OS_API)
|
||||
])
|
||||
|
||||
AC_DEFUN([EXTRACT_VARS_FROM_CPU_TO],
|
||||
[
|
||||
EXTRACT_VARS_FROM_CPU($2)
|
||||
$1_CPU="$VAR_CPU"
|
||||
$1_CPU_ARCH="$VAR_CPU_ARCH"
|
||||
$1_CPU_BITS="$VAR_CPU_BITS"
|
||||
$1_CPU_ENDIAN="$VAR_CPU_ENDIAN"
|
||||
|
||||
AC_SUBST($1_CPU)
|
||||
AC_SUBST($1_CPU_ARCH)
|
||||
AC_SUBST($1_CPU_BITS)
|
||||
AC_SUBST($1_CPU_ENDIAN)
|
||||
|
||||
# Also store the legacy naming of the cpu.
|
||||
# Ie i586 and amd64 instead of ia32 and x64
|
||||
LEGACY_$1_CPU1="$VAR_LEGACY_CPU"
|
||||
AC_SUBST(LEGACY_$1_CPU1)
|
||||
|
||||
# And the second legacy naming of the cpu.
|
||||
# Ie i386 and amd64 instead of ia32 and x64.
|
||||
LEGACY_$1_CPU2="$LEGACY_$1_CPU1"
|
||||
if test "x$LEGACY_$1_CPU1" = xi586; then
|
||||
LEGACY_$1_CPU2=i386
|
||||
fi
|
||||
AC_SUBST(LEGACY_$1_CPU2)
|
||||
|
||||
# And the third legacy naming of the cpu.
|
||||
# Ie only amd64 or sparcv9, used for the ISA_DIR on Solaris.
|
||||
LEGACY_$1_CPU3=""
|
||||
if test "x$$1_CPU" = xx64; then
|
||||
LEGACY_$1_CPU3=amd64
|
||||
fi
|
||||
if test "x$$1_CPU" = xsparcv9; then
|
||||
LEGACY_$1_CPU3=sparvc9
|
||||
fi
|
||||
AC_SUBST(LEGACY_$1_CPU3)
|
||||
])
|
||||
|
||||
AC_DEFUN([EXTRACT_VARS_FROM_CPU],
|
||||
[
|
||||
# First argument is the cpu name from the trip/quad
|
||||
case "$1" in
|
||||
x86_64)
|
||||
VAR_CPU=x64
|
||||
VAR_CPU_ARCH=x86
|
||||
VAR_CPU_BITS=64
|
||||
VAR_CPU_ENDIAN=little
|
||||
VAR_LEGACY_CPU=amd64
|
||||
;;
|
||||
i?86)
|
||||
VAR_CPU=ia32
|
||||
VAR_CPU_ARCH=x86
|
||||
VAR_CPU_BITS=32
|
||||
VAR_CPU_ENDIAN=little
|
||||
VAR_LEGACY_CPU=i586
|
||||
;;
|
||||
alpha*)
|
||||
VAR_CPU=alpha
|
||||
VAR_CPU_ARCH=alpha
|
||||
VAR_CPU_BITS=64
|
||||
VAR_CPU_ENDIAN=big
|
||||
VAR_LEGACY_CPU=alpha
|
||||
;;
|
||||
arm*)
|
||||
VAR_CPU=arm
|
||||
VAR_CPU_ARCH=arm
|
||||
VAR_CPU_BITS=3264
|
||||
VAR_CPU_ENDIAN=big
|
||||
VAR_LEGACY_CPU=arm
|
||||
;;
|
||||
mips)
|
||||
VAR_CPU=mips
|
||||
VAR_CPU_ARCH=mips
|
||||
VAR_CPU_BITS=woot
|
||||
VAR_CPU_ENDIAN=woot
|
||||
VAR_LEGACY_CPU=mips
|
||||
;;
|
||||
mipsel)
|
||||
VAR_CPU=mipsel
|
||||
VAR_CPU_ARCH=mips
|
||||
VAR_CPU_BITS=woot
|
||||
VAR_CPU_ENDIAN=woot
|
||||
VAR_LEGACY_CPU=mipsel
|
||||
;;
|
||||
powerpc)
|
||||
VAR_CPU=ppc
|
||||
VAR_CPU_ARCH=ppc
|
||||
VAR_CPU_BITS=32
|
||||
VAR_CPU_ENDIAN=big
|
||||
VAR_LEGACY_CPU=ppc
|
||||
;;
|
||||
powerpc64)
|
||||
VAR_CPU=ppc64
|
||||
VAR_CPU_ARCH=ppc
|
||||
VAR_CPU_BITS=64
|
||||
VAR_CPU_ENDIAN=32
|
||||
VAR_LEGACY_CPU=ppc64
|
||||
;;
|
||||
sparc)
|
||||
VAR_CPU=sparc
|
||||
VAR_CPU_ARCH=sparc
|
||||
VAR_CPU_BITS=32
|
||||
VAR_CPU_ENDIAN=big
|
||||
VAR_LEGACY_CPU=sparc
|
||||
;;
|
||||
sparc64)
|
||||
VAR_CPU=sparcv9
|
||||
VAR_CPU_ARCH=sparc
|
||||
VAR_CPU_BITS=64
|
||||
VAR_CPU_ENDIAN=big
|
||||
VAR_LEGACY_CPU=sparc_sparcv9
|
||||
;;
|
||||
s390)
|
||||
VAR_CPU=s390
|
||||
VAR_CPU_ARCH=s390
|
||||
VAR_CPU_BITS=32
|
||||
VAR_CPU_ENDIAN=woot
|
||||
VAR_LEGACY_CPU=s390
|
||||
VAR_LEGACY_CPU=s390
|
||||
;;
|
||||
s390x)
|
||||
VAR_CPU=s390x
|
||||
VAR_CPU_ARCH=s390
|
||||
VAR_CPU_BITS=64
|
||||
VAR_CPU_ENDIAN=woot
|
||||
VAR_LEGACY_CPU=s390x
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([unsupported cpu $1])
|
||||
;;
|
||||
esac
|
||||
|
||||
# Workaround cygwin not knowing about 64 bit.
|
||||
if test "x$VAR_OS" = "xwindows"; then
|
||||
if test "x$PROCESSOR_IDENTIFIER" != "x"; then
|
||||
PROC_ARCH=`echo $PROCESSOR_IDENTIFIER | $CUT -f1 -d' '`
|
||||
case "$PROC_ARCH" in
|
||||
intel64|Intel64|INTEL64|em64t|EM64T|amd64|AMD64|8664|x86_64)
|
||||
VAR_CPU=x64
|
||||
VAR_CPU_BITS=64
|
||||
VAR_LEGACY_CPU=amd64
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x$VAR_CPU_ARCH" = "xx86"; then
|
||||
if test "x$with_data_model" = "x64"; then
|
||||
VAR_CPU=x64
|
||||
VAR_CPU_BITS=64
|
||||
VAR_LEGACY_CPU=amd64
|
||||
fi
|
||||
if test "x$with_data_model" = "x32"; then
|
||||
VAR_CPU=ia32
|
||||
VAR_CPU_BITS=32
|
||||
VAR_LEGACY_CPU=i586
|
||||
fi
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([EXTRACT_VARS_FROM_OS],
|
||||
[
|
||||
case "$1" in
|
||||
*linux*)
|
||||
VAR_OS=linux
|
||||
VAR_OS_API=posix
|
||||
VAR_OS_FAMILY=gnu
|
||||
;;
|
||||
*solaris*)
|
||||
VAR_OS=solaris
|
||||
VAR_OS_API=posix
|
||||
VAR_OS_FAMILY=sysv
|
||||
;;
|
||||
*darwin*)
|
||||
VAR_OS=macosx
|
||||
VAR_OS_API=posix
|
||||
VAR_OS_FAMILY=bsd
|
||||
;;
|
||||
*bsd*)
|
||||
VAR_OS=bsd
|
||||
VAR_OS_API=posix
|
||||
VAR_OS_FAMILY=bsd
|
||||
;;
|
||||
*cygwin*|*windows*)
|
||||
VAR_OS=windows
|
||||
VAR_OS_API=winapi
|
||||
VAR_OS_FAMILY=windows
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([unsupported host operating system $1])
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
AC_DEFUN([CHECK_COMPILER_VERSION],
|
||||
[
|
||||
# Test the compilers that their versions are new enough.
|
||||
# AC_MSG_CHECKING([version of GCC])
|
||||
gcc_ver=`${CC} -dumpversion`
|
||||
gcc_major_ver=`echo ${gcc_ver}|cut -d'.' -f1`
|
||||
gcc_minor_ver=`echo ${gcc_ver}|cut -d'.' -f2`
|
||||
# AM_CONDITIONAL(GCC_OLD, test ! ${gcc_major_ver} -ge 4 -a ${gcc_minor_ver} -ge 3)
|
||||
# AC_MSG_RESULT([${gcc_ver} (major version ${gcc_major_ver}, minor version ${gcc_minor_ver})])
|
||||
])
|
||||
|
||||
# Fixes paths on windows hosts to be mixed mode short.
|
||||
AC_DEFUN([WIN_FIX_PATH],
|
||||
[
|
||||
if test "x$BUILD_OS" = "xwindows"; then
|
||||
AC_PATH_PROG(CYGPATH, cygpath)
|
||||
tmp="[$]$1"
|
||||
# Convert to C:/ mixed style path without spaces.
|
||||
tmp=`$CYGPATH -s -m "$tmp"`
|
||||
$1="$tmp"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_DEFUN([SET_RELEASE_FILE_OS_VALUES],
|
||||
[
|
||||
if test "x$HOST_OS" = "xsolaris"; then
|
||||
REQUIRED_OS_NAME=SunOS
|
||||
REQUIRED_OS_VERSION=5.10
|
||||
fi
|
||||
if test "x$HOST_OS" = "xlinux"; then
|
||||
REQUIRED_OS_NAME=Linux
|
||||
REQUIRED_OS_VERSION=2.6
|
||||
fi
|
||||
if test "x$HOST_OS" = "xwindows"; then
|
||||
REQUIRED_OS_NAME=Windows
|
||||
REQUIRED_OS_VERSION=5.1
|
||||
fi
|
||||
if test "x$HOST_OS" = "xmacosx"; then
|
||||
REQUIRED_OS_NAME=Darwin
|
||||
REQUIRED_OS_VERSION=11.2
|
||||
fi
|
||||
|
||||
AC_SUBST(REQUIRED_OS_NAME)
|
||||
AC_SUBST(REQUIRED_OS_VERSION)
|
||||
])
|
||||
620
common/autoconf/spec.gmk.in
Normal file
620
common/autoconf/spec.gmk.in
Normal file
@@ -0,0 +1,620 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Configured @DATE_WHEN_CONFIGURED@ to build for a @HOST@ system,
|
||||
# using ./configure @CONFIGURE_COMMAND_LINE@
|
||||
|
||||
# When calling macros, the spaces between arguments are
|
||||
# often semantically important! Sometimes we need to subst
|
||||
# spaces and commas, therefore we need the following macros.
|
||||
X:=
|
||||
SPACE:=$(X) $(X)
|
||||
COMMA:=,
|
||||
HASH:=\#
|
||||
SQUOTE:='
|
||||
#'
|
||||
DQUOTE:="
|
||||
#"
|
||||
define NEWLINE:=
|
||||
endef
|
||||
|
||||
|
||||
# Pass along the verbosity setting.
|
||||
ifeq (,$(findstring VERBOSE=,$(MAKE)))
|
||||
MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)"
|
||||
endif
|
||||
|
||||
# No implicit variables or rules!
|
||||
ifeq (,$(findstring -R,$(MAKE)))
|
||||
MAKE:=$(MAKE) -R
|
||||
endif
|
||||
|
||||
# Specify where the spec file is.
|
||||
ifeq (,$(findstring SPEC=,$(MAKE)))
|
||||
MAKE:=$(MAKE) SPEC=@SPEC@
|
||||
endif
|
||||
|
||||
# Specify where the common include directory for makefiles is.
|
||||
ifeq (,$(findstring -I @SRC_ROOT@/common/makefiles,$(MAKE)))
|
||||
MAKE:=$(MAKE) -I @SRC_ROOT@/common/makefiles
|
||||
endif
|
||||
|
||||
# A self-referential reference to this file.
|
||||
SPEC:=@SPEC@
|
||||
|
||||
# The "human readable" name of this configuration
|
||||
CONF_NAME:=@CONF_NAME@
|
||||
|
||||
# The built jdk will run in this host system.
|
||||
HOST:=@HOST@
|
||||
HOST_OS:=@HOST_OS@
|
||||
HOST_OS_FAMILY:=@HOST_OS_FAMILY@
|
||||
HOST_OS_API:=@HOST_OS_API@
|
||||
|
||||
HOST_CPU:=@HOST_CPU@
|
||||
HOST_CPU_ARCH:=@HOST_CPU_ARCH@
|
||||
HOST_CPU_BITS:=@HOST_CPU_BITS@
|
||||
HOST_CPU_ENDIAN:=@HOST_CPU_ENDIAN@
|
||||
|
||||
# We are building on this build system.
|
||||
# When not cross-compiling, it is the same as the host.
|
||||
BUILD:=@BUILD@
|
||||
BUILD_OS:=@BUILD_OS@
|
||||
BUILD_OS_FAMILY:=@BUILD_OS_FAMILY@
|
||||
BUILD_OS_API:=@BUILD_OS_API@
|
||||
|
||||
BUILD_CPU:=@BUILD_CPU@
|
||||
BUILD_CPU_ARCH:=@BUILD_CPU_ARCH@
|
||||
BUILD_CPU_BITS:=@BUILD_CPU_BITS@
|
||||
BUILD_CPU_ENDIAN:=@BUILD_CPU_ENDIAN@
|
||||
|
||||
# Legacy OS values for use in release file.
|
||||
REQUIRED_OS_NAME:=@REQUIRED_OS_NAME@
|
||||
REQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@
|
||||
|
||||
# Old name for HOST_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc)
|
||||
PLATFORM:=@HOST_OS@
|
||||
# Old name for HOST_CPU, uses i586 and amd64, instead of ia32 and x64.
|
||||
ARCH:=@LEGACY_HOST_CPU1@
|
||||
# Yet another name for arch used for an extra subdir below the jvm lib.
|
||||
# Uses i386 and amd64, instead of ia32 and x64.
|
||||
LIBARCH:=@LEGACY_HOST_CPU2@
|
||||
# Use to switch between solaris and windows subdirs in the jdk.
|
||||
LEGACY_HOST_OS_API:=@LEGACY_HOST_OS_API@
|
||||
# 32 or 64 bit
|
||||
ARCH_DATA_MODEL:=@HOST_CPU_BITS@
|
||||
# Legacy setting for building for a 64 bit machine.
|
||||
# If yes then this expands to _LP64:=1
|
||||
@LP64@
|
||||
ENDIAN:=@HOST_CPU_ENDIAN@
|
||||
@SET_OPENJDK@
|
||||
JIGSAW:=@JIGSAW@
|
||||
LIBM:=-lm
|
||||
LIBDL:=@LIBDL@
|
||||
|
||||
# colon or semicolon
|
||||
PATH_SEP:=@PATH_SEP@
|
||||
|
||||
# Set special env variables, to be passed to external tools.
|
||||
# Used for cygwin setups.
|
||||
@SETUPDEVENV@
|
||||
|
||||
# The sys root where standard headers and libraries are found.
|
||||
# Usually not needed since the configure script should have
|
||||
# taken it into account already when setting CFLAGS et al.
|
||||
SYS_ROOT:=@SYS_ROOT@
|
||||
|
||||
# Paths to the source code
|
||||
SRC_ROOT:=@SRC_ROOT@
|
||||
ADD_SRC_ROOT:=@ADD_SRC_ROOT@
|
||||
OVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@
|
||||
TOPDIR:=@SRC_ROOT@
|
||||
OUTPUT_ROOT:=@OUTPUT_ROOT@
|
||||
JDK_MAKE_SHARED_DIR:=@JDK_TOPDIR@/makefiles/common/shared
|
||||
JDK_TOPDIR:=@JDK_TOPDIR@
|
||||
LANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@
|
||||
CORBA_TOPDIR:=@CORBA_TOPDIR@
|
||||
JAXP_TOPDIR:=@JAXP_TOPDIR@
|
||||
JAXWS_TOPDIR:=@JAXWS_TOPDIR@
|
||||
HOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@
|
||||
COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
|
||||
|
||||
# Information gathered from the version.numbers file.
|
||||
JDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@
|
||||
JDK_MINOR_VERSION:=@JDK_MINOR_VERSION@
|
||||
JDK_MICRO_VERSION:=@JDK_MICRO_VERSION@
|
||||
JDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@
|
||||
JDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@
|
||||
MILESTONE:=@MILESTONE@
|
||||
LAUNCHER_NAME:=@LAUNCHER_NAME@
|
||||
PRODUCT_NAME:=@PRODUCT_NAME@
|
||||
PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
|
||||
JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
|
||||
COMPANY_NAME:=@COMPANY_NAME@
|
||||
|
||||
# Different version strings generated from the above information.
|
||||
JDK_VERSION:=@JDK_VERSION@
|
||||
RUNTIME_NAME:=@RUNTIME_NAME@
|
||||
FULL_VERSION:=@FULL_VERSION@
|
||||
JRE_RELEASE_VERSION:=@FULL_VERSION@
|
||||
RELEASE:=@RELEASE@
|
||||
COOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@
|
||||
|
||||
# How to compile the code: release, fastdebug or slowdebug
|
||||
DEBUG_LEVEL:=@DEBUG_LEVEL@
|
||||
|
||||
# This is the JDK variant to build.
|
||||
# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
|
||||
JDK_VARIANT:=@JDK_VARIANT@
|
||||
|
||||
# Legacy defines controlling the JDK variant embedded.
|
||||
@JAVASE_EMBEDDED@
|
||||
@MINIMIZE_RAM_USAGE@
|
||||
|
||||
# Should we compile support for running with a graphical UI? (ie headful)
|
||||
# Should we compile support for running without? (ie headless)
|
||||
SUPPORT_HEADFUL:=@SUPPORT_HEADFUL@
|
||||
SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
|
||||
# Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options.
|
||||
@BUILD_HEADLESS@
|
||||
@BUILD_HEADLESS_ONLY@
|
||||
|
||||
# These are the libjvms that we want to build.
|
||||
# The java launcher uses the default.
|
||||
# The other can be selected by specifying -client -server -kernel -zero or -zeroshark
|
||||
# on the java launcher command line.
|
||||
DEFAULT_JVM_VARIANT:=@DEFAULT_JVM_VARIANT@
|
||||
JVM_VARIANTS:=@JVM_VARIANTS@
|
||||
JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
|
||||
JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
|
||||
JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
|
||||
JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
|
||||
JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
|
||||
|
||||
# Legacy setting: OPT or DBG
|
||||
VARIANT:=@VARIANT@
|
||||
# Legacy setting: true or false
|
||||
FASTDEBUG:=@FASTDEBUG@
|
||||
# Legacy setting: debugging the class files?
|
||||
DEBUG_CLASSFILES:=@DEBUG_CLASSFILES@
|
||||
# Legacy setting: -debug or -fastdebug
|
||||
BUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@
|
||||
|
||||
LANGTOOLS_OUTPUTDIR:=@OUTPUT_ROOT@/langtools
|
||||
LANGTOOLS_DIST:=@OUTPUT_ROOT@/langtools/dist
|
||||
LANGTOOLS_MAKE_ARGS:=@LANGTOOLS_MAKE_ARGS@
|
||||
|
||||
CORBA_OUTPUTDIR:=@OUTPUT_ROOT@/corba
|
||||
CORBA_DIST:=@OUTPUT_ROOT@/corba/dist
|
||||
CORBA_MAKE_ARGS:=@CORBA_MAKE_ARGS@
|
||||
|
||||
JAXP_OUTPUTDIR:=@OUTPUT_ROOT@/jaxp
|
||||
JAXP_DIST:=@OUTPUT_ROOT@/jaxp/dist
|
||||
JAXP_MAKE_ARGS:=@JAXP_MAKE_ARGS@
|
||||
|
||||
JAXWS_OUTPUTDIR:=@OUTPUT_ROOT@/jaxws
|
||||
JAXWS_DIST:=@OUTPUT_ROOT@/jaxws/dist
|
||||
JAXWS_MAKE_ARGS:=@JAXWS_MAKE_ARGS@
|
||||
|
||||
HOTSPOT_OUTPUTDIR:=@OUTPUT_ROOT@/hotspot
|
||||
HOTSPOT_DIST:=@OUTPUT_ROOT@/hotspot/dist
|
||||
HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@
|
||||
|
||||
# This where a working jvm is built.
|
||||
# You can run $(JDK_OUTPUTDIR)/bin/java
|
||||
# Though the layout of the contents of $(JDK_OUTPUTDIR) is not
|
||||
# yet the same as a default installation.
|
||||
HOTSPOT_IMPORT_PATH:=@OUTPUT_ROOT@/hotspot/dist
|
||||
JDK_OUTPUTDIR:=@OUTPUT_ROOT@/jdk
|
||||
JDK_MAKE_ARGS:=@JDK_MAKE_ARGS@
|
||||
|
||||
# When you run "make install" it will create the standardized
|
||||
# layout for the jdk and the jre inside the images subdir.
|
||||
# Then it will copy the contents of the jdk into the installation
|
||||
# directory.
|
||||
IMAGES_OUTPUTDIR:=@OUTPUT_ROOT@/images
|
||||
IMAGES_MAKE_ARGS:=@IMAGES_MAKE_ARGS@
|
||||
# Legacy variables used by Release.gmk
|
||||
JDK_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2sdk-image
|
||||
JRE_IMAGE_DIR:=$(IMAGES_OUTPUTDIR)/j2re-image
|
||||
|
||||
# Can be /sparcv9 or /amd64 on Solaris
|
||||
ISA_DIR:=@LEGACY_HOST_CPU3@
|
||||
BINDIR:=$(JDK_OUTPUTDIR)/bin$(ISA_DIR)
|
||||
|
||||
# The boot jdk to use
|
||||
ALT_BOOTDIR:=@BOOT_JDK@
|
||||
BOOT_JDK:=@BOOT_JDK@
|
||||
BOOT_JDK_JVMARGS:=@BOOT_JDK_JVMARGS@
|
||||
BOOT_JAVAC_ARGS:=@BOOT_JAVAC_ARGS@
|
||||
BOOT_RTJAR:=@BOOT_RTJAR@
|
||||
BOOT_TOOLSJAR:=@BOOT_TOOLSJAR@
|
||||
|
||||
# When compiling Java source to be run by the boot jdk
|
||||
# use these extra flags, eg -source 6 -target 6
|
||||
BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@
|
||||
|
||||
# Information about the build system
|
||||
NUM_CORES:=@NUM_CORES@
|
||||
# This is used from the libjvm build for C/C++ code.
|
||||
HOTSPOT_BUILD_JOBS:=@CONCURRENT_BUILD_JOBS@
|
||||
# This is used from the jdk build for C/C++ code.
|
||||
PARALLEL_COMPILE_JOBS:=@CONCURRENT_BUILD_JOBS@
|
||||
# Store javac server synchronization files here, and
|
||||
# the javac server log files.
|
||||
JAVAC_SERVERS:=@JAVAC_SERVERS@
|
||||
# Should we use a javac server or not? The javac server gives
|
||||
# an enormous performance improvement since it reduces the
|
||||
# startup costs of javac and reuses as much as possible of intermediate
|
||||
# compilation work. But if we want to compile with a non-Java
|
||||
# javac compiler, like gcj. Then we cannot use javac server and
|
||||
# this variable is set to false.
|
||||
JAVAC_USE_REMOTE:=@JAVAC_USE_REMOTE@
|
||||
# We can block the Javac server to never use more cores than this.
|
||||
# This is not for performance reasons, but for memory usage, since each
|
||||
# core requires its own JavaCompiler. We might have 64 cores and 4GB
|
||||
# of memory, 64 JavaCompilers will currently not fit in a 3GB heap.
|
||||
# Since there is no sharing of data between the JavaCompilers.
|
||||
JAVAC_SERVER_CORES:=@JAVAC_SERVER_CORES@
|
||||
# Should we use dependency tracking between Java packages? true or false.
|
||||
JAVAC_USE_DEPS:=@JAVAC_USE_DEPS@
|
||||
# We can invoke javac: SINGLE_THREADED_BATCH or MULTI_CORE_CONCURRENT
|
||||
JAVAC_USE_MODE:=@JAVAC_USE_MODE@
|
||||
|
||||
# The OpenJDK makefiles should be changed to using the standard
|
||||
# configure output ..._CFLAGS and ..._LIBS. In the meantime we
|
||||
# extract the information here.
|
||||
FREETYPE2_LIB_PATH:=@FREETYPE2_LIB_PATH@
|
||||
FREETYPE2_LIBS:=@FREETYPE2_LIBS@
|
||||
FREETYPE2_CFLAGS:=@FREETYPE2_CFLAGS@
|
||||
USING_SYSTEM_FT_LIB=@USING_SYSTEM_FT_LIB@
|
||||
ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@))
|
||||
CUPS_CFLAGS:=@CUPS_CFLAGS@
|
||||
|
||||
PACKAGE_PATH=@PACKAGE_PATH@
|
||||
|
||||
# Source file for cacerts
|
||||
CACERTS_FILE=@CACERTS_FILE@
|
||||
|
||||
#MOZILLA_HEADERS_PATH:=
|
||||
|
||||
# Necessary additional compiler flags to compile X11
|
||||
X_CFLAGS:=@X_CFLAGS@
|
||||
X_LIBS:=@X_LIBS@
|
||||
OPENWIN_HOME:=@OPENWIN_HOME@
|
||||
|
||||
# There are two types: CC or CL
|
||||
# CC is gcc and others behaving reasonably similar.
|
||||
# CL is cl.exe only.
|
||||
COMPILER_TYPE:=@COMPILER_TYPE@
|
||||
|
||||
CC_OUT_OPTION:=@CC_OUT_OPTION@
|
||||
EXE_OUT_OPTION:=@EXE_OUT_OPTION@
|
||||
LD_OUT_OPTION:=@LD_OUT_OPTION@
|
||||
AR_OUT_OPTION:=@AR_OUT_OPTION@
|
||||
|
||||
# Flags used for overriding the default opt setting for a C/C++ source file.
|
||||
C_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@
|
||||
C_O_FLAG_HI:=@C_O_FLAG_HI@
|
||||
C_O_FLAG_NORM:=@C_O_FLAG_NORM@
|
||||
C_O_FLAG_NONE:=@C_O_FLAG_NONE@
|
||||
CXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@
|
||||
CXX_O_FLAG_HI:=@CXX_O_FLAG_HI@
|
||||
CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@
|
||||
CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@
|
||||
|
||||
C_FLAG_DEPS:=@C_FLAG_DEPS@
|
||||
CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
|
||||
|
||||
# Tools that potentially need to be cross compilation aware.
|
||||
CC:=@UNCYGDRIVE@ @CCACHE@ @CC@
|
||||
|
||||
# CFLAGS used to compile the jdk native libraries (C-code)
|
||||
CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
|
||||
CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@
|
||||
|
||||
# CFLAGS used to compile the jdk native launchers (C-code)
|
||||
CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
|
||||
CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
|
||||
|
||||
CXX:=@UNCYGDRIVE@ @CCACHE@ @CXX@
|
||||
#CXXFLAGS:=@CXXFLAGS@
|
||||
|
||||
OBJC:=@CCACHE@ @OBJC@
|
||||
#OBJCFLAGS:=@OBJCFLAGS@
|
||||
|
||||
CPP:=@UNCYGDRIVE@ @CPP@
|
||||
#CPPFLAGS:=@CPPFLAGS@
|
||||
|
||||
# The linker can be gcc or ld on posix systems, or link.exe on winapi systems.
|
||||
LD:=@UNCYGDRIVE@ @LD@
|
||||
|
||||
# LDFLAGS used to link the jdk native libraries (C-code)
|
||||
LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
|
||||
LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
|
||||
|
||||
# On some platforms the linker cannot be used to create executables, thus
|
||||
# the need for a separate LDEXE command.
|
||||
LDEXE:=@UNCYGDRIVE@ @LDEXE@
|
||||
|
||||
# LDFLAGS used to link the jdk native launchers (C-code)
|
||||
LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@
|
||||
LDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@
|
||||
|
||||
# Sometimes a different linker is needed for c++ libs
|
||||
LDCXX:=@UNCYGDRIVE@ @LDCXX@
|
||||
# The flags for linking libstdc++ linker.
|
||||
LIBCXX:=@LIBCXX@
|
||||
|
||||
# Sometimes a different linker is needed for c++ executables
|
||||
LDEXECXX:=@UNCYGDRIVE@ @LDEXECXX@
|
||||
|
||||
# If cross compiling, then define CROSS_COMPILE_ARCH:=cpu_name here.
|
||||
@DEFINE_CROSS_COMPILE_ARCH@
|
||||
# The HOSTCC should really be named BUILDCC, ie build executable for
|
||||
# the build platform. Same as CC when not cross compiling.
|
||||
HOSTCC:=@HOSTCC@
|
||||
HOSTCXX:=@HOSTCXX@
|
||||
# And of course, the jdk spells HOSTCC as NIO_CC/HOST_CC
|
||||
HOST_CC:=@HOSTCC@
|
||||
NIO_CC:=@HOSTCC@
|
||||
|
||||
AS:=@AS@
|
||||
ASFLAGS:=@ASFLAGS@
|
||||
|
||||
# AR is used to create a static library (is ar in posix, lib.exe in winapi)
|
||||
AR:=@UNCYGDRIVE@ @AR@
|
||||
ARFLAGS:=@ARFLAGS@
|
||||
|
||||
NM:=@NM@
|
||||
STRIP:=@STRIP@
|
||||
MCS:=@MCS@
|
||||
|
||||
# Command to create a shared library
|
||||
SHARED_LIBRARY_FLAGS:=@SHARED_LIBRARY_FLAGS@
|
||||
|
||||
# Options to linker to specify a mapfile.
|
||||
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
|
||||
SET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@
|
||||
|
||||
# Options for C/CXX compiler to be used if linking is performed
|
||||
# using reorder file
|
||||
C_FLAG_REORDER:=@C_FLAG_REORDER@
|
||||
CXX_FLAG_REORDER:=@CXX_FLAG_REORDER@
|
||||
|
||||
# Options to linker to specify the library name.
|
||||
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
|
||||
SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@
|
||||
|
||||
# Set origin using the linker, ie use the relative path to the dependent library to find the dependees.
|
||||
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
|
||||
SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@
|
||||
|
||||
# Different OS:es have different ways of naming shared libraries.
|
||||
# The SHARED_LIBRARY macro takes "verify" as and argument and returns:
|
||||
# "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform.
|
||||
# (Note absence of := assignment, because we do not want to evaluate the macro body here)
|
||||
SHARED_LIBRARY=@SHARED_LIBRARY@
|
||||
STATIC_LIBRARY=@STATIC_LIBRARY@
|
||||
LIBRARY_PREFIX:=@LIBRARY_PREFIX@
|
||||
SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
|
||||
STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
|
||||
EXE_SUFFIX:=@EXE_SUFFIX@
|
||||
OBJ_SUFFIX:=@OBJ_SUFFIX@
|
||||
|
||||
POST_STRIP_CMD:=@POST_STRIP_CMD@
|
||||
POST_MCS_CMD:=@POST_MCS_CMD@
|
||||
|
||||
JAVA_FLAGS:=@BOOT_JDK_JVMARGS@
|
||||
|
||||
JAVA=@UNCYGDRIVE@ @JAVA@ $(JAVA_FLAGS)
|
||||
|
||||
JAVAC:=@UNCYGDRIVE@ @JAVAC@
|
||||
JAVAC_FLAGS:=@JAVAC_FLAGS@
|
||||
|
||||
JAVAH:=@UNCYGDRIVE@ @JAVAH@
|
||||
|
||||
JAR:=@UNCYGDRIVE@ @JAR@
|
||||
|
||||
RMIC:=@UNCYGDRIVE@ @RMIC@
|
||||
|
||||
NATIVE2ASCII:=@UNCYGDRIVE@ @NATIVE2ASCII@
|
||||
|
||||
BOOT_JAR_CMD:=@UNCYGDRIVE@ @JAR@
|
||||
BOOT_JAR_JFLAGS:=
|
||||
|
||||
# Base flags for RC
|
||||
# Guarding this against resetting value. Legacy make files include spec multiple
|
||||
# times.
|
||||
ifndef RC_FLAGS
|
||||
RC_FLAGS:=@RC_FLAGS@
|
||||
endif
|
||||
|
||||
# A specific java binary with specific options can be used to run
|
||||
# the long running background javac server and other long running tasks.
|
||||
SERVER_JAVA:=@UNCYGDRIVE@ @SERVER_JAVA@
|
||||
|
||||
# Tools adhering to a minimal and common standard of posix compliance.
|
||||
AWK:=@AWK@
|
||||
CAT:=@CAT@
|
||||
CCACHE:=@CCACHE@
|
||||
# CD is going away, but remains to cater for legacy makefiles.
|
||||
CD:=cd
|
||||
CHMOD:=@CHMOD@
|
||||
CP:=@CP@
|
||||
CPIO:=@CPIO@
|
||||
CUT:=@CUT@
|
||||
DATE:=@DATE@
|
||||
DF:=@DF@
|
||||
DIFF:=@DIFF@
|
||||
FIND:=@FIND@
|
||||
FIND_DELETE:=@FIND_DELETE@
|
||||
ECHO:=@ECHO@
|
||||
EGREP:=@EGREP@
|
||||
FGREP:=@FGREP@
|
||||
GREP:=@GREP@
|
||||
HEAD:=@HEAD@
|
||||
LS:=@LS@
|
||||
LN:=@LN@
|
||||
MKDIR:=@MKDIR@
|
||||
MV:=@MV@
|
||||
NAWK:=@NAWK@
|
||||
PRINTF:=@PRINTF@
|
||||
PWD:=@THEPWDCMD@
|
||||
RM:=@RM@
|
||||
SED:=@SED@
|
||||
SH:=@SH@
|
||||
SORT:=@SORT@
|
||||
TAR:=@TAR@
|
||||
TAIL:=@TAIL@
|
||||
TEE:=@TEE@
|
||||
TR:=@TR@
|
||||
TOUCH:=@TOUCH@
|
||||
WC:=@WC@
|
||||
XARGS:=@XARGS@
|
||||
ZIPEXE:=@ZIP@
|
||||
ZIP:=@ZIP@
|
||||
UNZIP:=@UNZIP@
|
||||
MT:=@UNCYGDRIVE@ @MT@
|
||||
RC:=@UNCYGDRIVE@ @RC@
|
||||
DUMPBIN:=@UNCYGDRIVE@ @DUMPBIN@
|
||||
CYGPATH:=@CYGPATH@
|
||||
LDD:=@LDD@
|
||||
OTOOL:=@OTOOL@
|
||||
READELF:=@READELF@
|
||||
EXPR:=@EXPR@
|
||||
FILE:=@FILE@
|
||||
HG:=@HG@
|
||||
|
||||
UNCYGDRIVE:=@UNCYGDRIVE@
|
||||
|
||||
# Where the build output is stored for your convenience.
|
||||
BUILD_LOG:=@BUILD_LOG@
|
||||
BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@
|
||||
|
||||
# Build setup
|
||||
ENABLE_DOCS:=@ENABLE_DOCS@
|
||||
GENERATE_DOCS:=@ENABLE_DOCS@
|
||||
DISABLE_NIMBUS:=@DISABLE_NIMBUS@
|
||||
USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
|
||||
USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
|
||||
USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
|
||||
CHECK_FOR_VCINSTALLDIR=@CHECK_FOR_VCINSTALLDIR@
|
||||
MSVCRNN_DLL:=@MSVCR100DLL@
|
||||
|
||||
# ADD_SRCS takes a single argument with source roots
|
||||
# and appends any corresponding source roots found
|
||||
# below --with-add-source-root and below
|
||||
# --with-override-source-root. It is the responsibility
|
||||
# of the next macro to get rid of superfluous files.
|
||||
ADD_SRCS=$1
|
||||
ifneq (,$(ADD_SRC_ROOT))
|
||||
# Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT
|
||||
ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1))
|
||||
endif
|
||||
ifneq (,$(OVERRIDE_SRC_ROOT))
|
||||
# Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT
|
||||
ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1))
|
||||
endif
|
||||
|
||||
# OVR_SRCS creates a filter expression to filter out sources in
|
||||
# the original source directory that lie inside directories below
|
||||
# --with-override-source-root.
|
||||
# Use := here since we want to scan for these files here. To avoid recomputation later.
|
||||
# We cannot do the scan in configure, since that would force us to rerun configure when
|
||||
# we add overridden sources.
|
||||
ifneq (,$(OVERRIDE_SRC_ROOT))
|
||||
OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f)))))
|
||||
else
|
||||
OVR_SRCS:=
|
||||
endif
|
||||
|
||||
####################################################
|
||||
#
|
||||
# INSTALLATION
|
||||
#
|
||||
|
||||
# Common prefix for all installed files. Defaults to /usr/local,
|
||||
# but /opt/myjdk is another common version.
|
||||
INSTALL_PREFIX=@prefix@
|
||||
|
||||
# Directories containing architecture-dependent files should be relative to exec_prefix
|
||||
INSTALL_EXECPREFIX=@exec_prefix@
|
||||
|
||||
# java,javac,javah,javap etc are installed here.
|
||||
INSTALL_BINDIR=@bindir@
|
||||
|
||||
# Read only architecture-independent data
|
||||
INSTALL_DATADIR=@datadir@
|
||||
|
||||
# Root of above.
|
||||
INSTALL_DATAROOTDIR=@datarootdir@
|
||||
|
||||
# Doc files, other than info and man.
|
||||
INSTALL_DOCDIR=@docdir@
|
||||
|
||||
# Html documentation
|
||||
INSTALL_HTMLDIR=@htmldir@
|
||||
|
||||
# Installing C header files, JNI headers for example.
|
||||
INSTALL_INCLUDEDIR=@includedir@
|
||||
|
||||
# Installing library files....
|
||||
INSTALL_INCLUDEDIR=@libdir@
|
||||
|
||||
# Executables that other programs run.
|
||||
INSTALL_LIBEXECDIR=@libexecdir@
|
||||
|
||||
# Locale-dependent but architecture-independent data, such as message catalogs.
|
||||
INSTALL_LOCALEDIR=@localedir@
|
||||
|
||||
# Modifiable single-machine data
|
||||
INSTALL_LOCALSTATEDIR=@localstatedir@
|
||||
|
||||
# Man pages
|
||||
INSTALL_MANDIR=@mandir@
|
||||
|
||||
# Modifiable architecture-independent data.
|
||||
INSTALL_SHAREDSTATEDIR=@sharedstatedir@
|
||||
|
||||
# Read-only single-machine data
|
||||
INSTALL_SYSCONFDIR=@sysconfdir@
|
||||
|
||||
|
||||
####################################################
|
||||
#
|
||||
# Misc
|
||||
#
|
||||
|
||||
# Name of Service Agent library
|
||||
SALIB_NAME=@SALIB_NAME@
|
||||
|
||||
# Control wether Hotspot runs Queens test after building
|
||||
TEST_IN_BUILD=@TEST_IN_BUILD@
|
||||
|
||||
OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
|
||||
OS_VERSION_MINOR:=@OS_VERSION_MINOR@
|
||||
OS_VERSION_MICRO:=@OS_VERSION_MICRO@
|
||||
|
||||
36
common/autoconf/version.numbers
Normal file
36
common/autoconf/version.numbers
Normal file
@@ -0,0 +1,36 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
JDK_MAJOR_VERSION=1
|
||||
JDK_MINOR_VERSION=8
|
||||
JDK_MICRO_VERSION=0
|
||||
JDK_UPDATE_VERSION=
|
||||
JDK_BUILD_NUMBER=
|
||||
MILESTONE=internal
|
||||
LAUNCHER_NAME=openjdk
|
||||
PRODUCT_NAME=OpenJDK
|
||||
PRODUCT_SUFFIX="Runtime Environment"
|
||||
JDK_RC_PLATFORM_NAME=Platform
|
||||
COMPANY_NAME=N/A
|
||||
331
common/bin/compareimage.sh
Normal file
331
common/bin/compareimage.sh
Normal file
@@ -0,0 +1,331 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# MANUAL
|
||||
#
|
||||
# ./common/bin/compareimages.sh old_jdk_image new_jdk_image
|
||||
#
|
||||
# Compare the directory structure.
|
||||
# Compare the filenames in the directories.
|
||||
# Compare the contents of the zip archives
|
||||
# Compare the contents of the jar archives
|
||||
# Compare the native libraries
|
||||
# Compare the native executables
|
||||
# Compare the remaining files
|
||||
#
|
||||
# ./common/bin/compareimages.sh old_jdk_image new_jdk_image [zips jars libs execs other]
|
||||
#
|
||||
# Compare only the selected subset of the images.
|
||||
#
|
||||
# ./common/bin/compareimages.sh old_jdk_image new_jdk_image CodePointIM.jar
|
||||
#
|
||||
# Compare only the CodePointIM.jar file
|
||||
# Can be used to compare zips, libraries and executables.
|
||||
#
|
||||
|
||||
if [ "x$1" = "x-h" ] || [ "x$1" = "x--help" ] || [ "x$1" == "x" ]; then
|
||||
echo "bash ./common/bin/compareimages.sh old_jdk_image new_jdk_image"
|
||||
echo ""
|
||||
echo "Compare the directory structure."
|
||||
echo "Compare the filenames in the directories."
|
||||
echo "Compare the contents of the zip archives"
|
||||
echo "Compare the contents of the jar archives"
|
||||
echo "Compare the native libraries"
|
||||
echo "Compare the native executables"
|
||||
echo "Compare the remaining files"
|
||||
echo ""
|
||||
echo "bash ./common/bin/compareimages.sh old_jdk_image new_jdk_image [zips jars libs execs other]"
|
||||
echo ""
|
||||
echo "Compare only the selected subset of the images."
|
||||
echo ""
|
||||
echo "bash ./common/bin/compareimages.sh old_jdk_image new_jdk_image CodePointIM.jar"
|
||||
echo ""
|
||||
echo "Compare only the CodePointIM.jar file"
|
||||
echo "Can be used to compare zips, libraries and executables."
|
||||
exit 10
|
||||
fi
|
||||
|
||||
OLD="$1"
|
||||
NEW="$2"
|
||||
CMD="$3"
|
||||
|
||||
DIFF_RESULT=0
|
||||
|
||||
CMP_ZIPS=false
|
||||
CMP_JARS=false
|
||||
CMP_LIBS=false
|
||||
CMP_EXECS=false
|
||||
CMP_OTHER=false
|
||||
|
||||
FILTER="cat"
|
||||
|
||||
if [ -n "$CMD" ]; then
|
||||
case "$CMD" in
|
||||
zips)
|
||||
CMP_ZIPS=true
|
||||
;;
|
||||
jars)
|
||||
CMP_JARS=true
|
||||
;;
|
||||
libs)
|
||||
CMP_LIBS=true
|
||||
;;
|
||||
execs)
|
||||
CMP_EXECS=true
|
||||
;;
|
||||
other)
|
||||
CMP_OTHER=true
|
||||
;;
|
||||
*)
|
||||
CMP_ZIPS=true
|
||||
CMP_JARS=true
|
||||
CMP_LIBS=true
|
||||
CMP_EXECS=true
|
||||
CMP_OTHER=true
|
||||
FILTER="grep $3"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
CMP_ZIPS=true
|
||||
CMP_JARS=true
|
||||
CMP_LIBS=true
|
||||
CMP_EXECS=true
|
||||
CMP_OTHER=true
|
||||
fi
|
||||
|
||||
DIFFJARZIP="/bin/bash `dirname $0`/diffjarzip.sh"
|
||||
DIFFLIB="/bin/bash `dirname $0`/difflib.sh"
|
||||
DIFFEXEC="/bin/bash `dirname $0`/diffexec.sh"
|
||||
export COMPARE_ROOT=/tmp/cimages.$USER
|
||||
mkdir -p $COMPARE_ROOT
|
||||
|
||||
# Load the correct exception list.
|
||||
case "`uname -s`" in
|
||||
Linux)
|
||||
. `dirname $0`/exception_list_linux
|
||||
;;
|
||||
esac
|
||||
|
||||
echo
|
||||
echo Comparing $OLD to $NEW
|
||||
echo
|
||||
|
||||
(cd $OLD && find . -type d | sort > $COMPARE_ROOT/from_dirs)
|
||||
(cd $NEW && find . -type d | sort > $COMPARE_ROOT/to_dirs)
|
||||
|
||||
echo -n Directory structure...
|
||||
if diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs > /dev/null; then
|
||||
echo Identical!
|
||||
else
|
||||
echo Differences found.
|
||||
DIFF_RESULT=1
|
||||
# Differences in directories found.
|
||||
ONLY_OLD=$(diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs | grep '<')
|
||||
if [ "$ONLY_OLD" ]; then
|
||||
echo Only in $OLD
|
||||
echo $ONLY_OLD | sed 's|< ./|\t|g' | sed 's/ /\n/g'
|
||||
fi
|
||||
# Differences in directories found.
|
||||
ONLY_NEW=$(diff $COMPARE_ROOT/from_dirs $COMPARE_ROOT/to_dirs | grep '>')
|
||||
if [ "$ONLY_NEW" ]; then
|
||||
echo Only in $NEW
|
||||
echo $ONLY_NEW | sed 's|> ./|\t|g' | sed 's/ /\n/g'
|
||||
fi
|
||||
fi
|
||||
|
||||
(cd $OLD && find . -type f | sort > $COMPARE_ROOT/from_files)
|
||||
(cd $NEW && find . -type f | sort > $COMPARE_ROOT/to_files)
|
||||
|
||||
echo -n File names...
|
||||
if diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files > /dev/null; then
|
||||
echo Identical!
|
||||
else
|
||||
echo Differences found.
|
||||
DIFF_RESULT=1
|
||||
# Differences in directories found.
|
||||
ONLY_OLD=$(diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files | grep '<')
|
||||
if [ "$ONLY_OLD" ]; then
|
||||
echo Only in $OLD
|
||||
echo "$ONLY_OLD" | sed 's|< ./| |g'
|
||||
fi
|
||||
# Differences in directories found.
|
||||
ONLY_NEW=$(diff $COMPARE_ROOT/from_files $COMPARE_ROOT/to_files | grep '>')
|
||||
if [ "$ONLY_NEW" ]; then
|
||||
echo Only in $NEW
|
||||
echo "$ONLY_NEW" | sed 's|> ./| |g'
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "`uname`" == "SunOS" ]; then
|
||||
PERM="gstat -c%a"
|
||||
elif [ $OSTYPE == "cygwin" ]; then
|
||||
PERM=
|
||||
elif [ "`uname`" == "Darwin" ]; then
|
||||
PERM="stat -f%p"
|
||||
elif [ "`uname`" == "Linux" ]; then
|
||||
PERM="stat -c%A"
|
||||
else
|
||||
PERM="stat -c%a"
|
||||
fi
|
||||
|
||||
if [ "${PERM}" ]
|
||||
then
|
||||
echo -n Permissions...
|
||||
found=""
|
||||
for f in `cd $OLD && find . -type f`
|
||||
do
|
||||
if [ ! -f ${OLD}/$f ]; then continue; fi
|
||||
if [ ! -f ${NEW}/$f ]; then continue; fi
|
||||
OP=`${PERM} ${OLD}/$f`
|
||||
NP=`${PERM} ${NEW}/$f`
|
||||
if [ "$OP" != "$NP" ]
|
||||
then
|
||||
if [ -z "$found" ]; then echo ; found="yes"; fi
|
||||
printf "\told: ${OP} new: ${NP}\t$f\n"
|
||||
fi
|
||||
done
|
||||
if [ -z "$found" ]; then echo ; found="yes"; fi
|
||||
fi
|
||||
|
||||
GENERAL_FILES=$(cd $OLD && find . -type f ! -name "*.so" ! -name "*.jar" ! -name "*.zip" \
|
||||
! -name "*.debuginfo" ! -name "*.dylib" ! -name "jexec" \
|
||||
! -name "ct.sym" \
|
||||
| grep -v "./bin/" | sort | $FILTER)
|
||||
echo General files...
|
||||
for f in $GENERAL_FILES
|
||||
do
|
||||
if [ -e $NEW/$f ]; then
|
||||
DIFF_OUT=$(diff $OLD/$f $NEW/$f 2>&1)
|
||||
if [ -n "$DIFF_OUT" ]; then
|
||||
echo $f
|
||||
echo "$DIFF_OUT"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
if [ "x$CMP_ZIPS" == "xtrue" ]; then
|
||||
ZIPS=$(cd $OLD && find . -type f -name "*.zip" | sort | $FILTER)
|
||||
|
||||
if [ -n "$ZIPS" ]; then
|
||||
echo Zip files...
|
||||
|
||||
for f in $ZIPS
|
||||
do
|
||||
$DIFFJARZIP $OLD/$f $NEW/$f $OLD $NEW
|
||||
if [ "$?" != "0" ]; then
|
||||
DIFF_RESULT=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CMP_JARS" == "xtrue" ]; then
|
||||
JARS=$(cd $OLD && find . -type f -name "*.jar" -o -name "ct.sym" | sort | $FILTER)
|
||||
|
||||
if [ -n "$JARS" ]; then
|
||||
echo Jar files...
|
||||
|
||||
for f in $JARS
|
||||
do
|
||||
DIFFJAR_OUTPUT=`$DIFFJARZIP $OLD/$f $NEW/$f $OLD $NEW`
|
||||
DIFFJAR_RESULT=$?
|
||||
if [ "$DIFFJAR_RESULT" != "0" ]; then
|
||||
for diff in $LIST_DIFF_JAR; do
|
||||
DIFFJAR_OUTPUT=`echo "$DIFFJAR_OUTPUT" | grep -v "$diff"`
|
||||
done
|
||||
if [ "`echo "$DIFFJAR_OUTPUT" | grep -v "Differing files in"`" != "" ]; then
|
||||
DIFF_RESULT=1
|
||||
echo "$DIFFJAR_OUTPUT"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$FILTER" != "xcat" ]; then
|
||||
VIEW=view
|
||||
else
|
||||
VIEW=
|
||||
fi
|
||||
|
||||
if [ "x$CMP_LIBS" == "xtrue" ]; then
|
||||
LIBS=$(cd $OLD && find . -name 'lib*.so' -o -name '*.dylib' -o -name '*.dll' | sort | $FILTER)
|
||||
|
||||
if [ -n "$LIBS" ]; then
|
||||
echo Libraries...
|
||||
for f in $LIBS
|
||||
do
|
||||
DIFFLIB_OUTPUT=`$DIFFLIB $OLD/$f $NEW/$f $OLD $NEW $VIEW`
|
||||
DIFFLIB_RESULT=$?
|
||||
if [ "$DIFFLIB_RESULT" = "0" ]; then
|
||||
:
|
||||
#echo "OK: $DIFFLIB_OUTPUT"
|
||||
elif [ "$DIFFLIB_RESULT" = "2" ] && [[ "$LIST_DIFF_SIZE $LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
|
||||
:
|
||||
#echo "OK: $DIFFLIB_OUTPUT"
|
||||
elif [ "$DIFFLIB_RESULT" = "1" ] && [[ "$LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
|
||||
:
|
||||
#echo "OK: $DIFFLIB_OUTPUT"
|
||||
else
|
||||
echo "$DIFFLIB_OUTPUT"
|
||||
DIFF_RESULT=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "x$CMP_EXECS" == "xtrue" ]; then
|
||||
if [ $OSTYPE == "cygwin" ]; then
|
||||
EXECS=$(cd $OLD && find . -type f -name '*.exe' | sort | $FILTER)
|
||||
else
|
||||
EXECS=$(cd $OLD && find . -type f -perm -100 \! \( -name '*.so' -o -name '*.dylib' -o -name '*.dll' \) | sort | $FILTER)
|
||||
fi
|
||||
|
||||
|
||||
if [ -n "$EXECS" ]; then
|
||||
echo Executables...
|
||||
|
||||
for f in $EXECS
|
||||
do
|
||||
DIFFEXEC_OUTPUT=`$DIFFEXEC $OLD/$f $NEW/$f $OLD $NEW $VIEW`
|
||||
DIFFEXEC_RESULT=$?
|
||||
if [ "$DIFFEXEC_RESULT" = "0" ]; then
|
||||
:
|
||||
#echo "OK: $DIFFEXEC_OUTPUT"
|
||||
elif [ "$DIFFEXEC_RESULT" = "2" ] && [[ "$LIST_DIFF_SIZE $LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
|
||||
:
|
||||
#echo "OK: $DIFFEXEC_OUTPUT"
|
||||
elif [ "$DIFFEXEC_RESULT" = "1" ] && [[ "$LIST_DIFF_BYTE" == *"${f:2}"* ]]; then
|
||||
:
|
||||
#echo "OK: $DIFFEXEC_OUTPUT"
|
||||
else
|
||||
echo "$DIFFEXEC_OUTPUT"
|
||||
DIFF_RESULT=1
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $DIFF_RESULT
|
||||
183
common/bin/diffexec.sh
Normal file
183
common/bin/diffexec.sh
Normal file
@@ -0,0 +1,183 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
if [ $# -lt 2 ]
|
||||
then
|
||||
echo "Diff two executables. Return codes:"
|
||||
echo "0 - no diff"
|
||||
echo "1 - Identical symbols AND size, BUT not bytewise identical"
|
||||
echo "2 - Identical symbols BUT NEW size"
|
||||
echo "3 - Differences, content BUT SAME size"
|
||||
echo "4 - Differences, content AND size"
|
||||
echo "10 - Could not perform diff"
|
||||
echo "Use 'quiet' to disable any output."
|
||||
echo "Syntax: $0 file1 file2 [quiet]"
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ ! -f $1 ]
|
||||
then
|
||||
echo $1 does not exist
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ ! -f $2 ]
|
||||
then
|
||||
echo $2 does not exist
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ "`uname`" == "SunOS" ]; then
|
||||
NM=gnm
|
||||
STAT="gstat -c%s"
|
||||
LDD=ldd
|
||||
elif [ $OSTYPE == "cygwin" ]; then
|
||||
NM="$VS100COMNTOOLS/../../VC/bin/amd64/dumpbin.exe"
|
||||
NM_ARGS=/exports
|
||||
STAT="stat -c%s"
|
||||
LDD=
|
||||
elif [ "`uname`" == "Darwin" ]; then
|
||||
NM=nm
|
||||
STAT="stat -f%z"
|
||||
LDD="otool -L"
|
||||
else
|
||||
NM=nm
|
||||
STAT="stat -c%s"
|
||||
LDD=ldd
|
||||
fi
|
||||
|
||||
# Should the differences be viewed?
|
||||
VIEW=
|
||||
# You can do export DIFF=meld to view
|
||||
# any differences using meld instead.
|
||||
if [ -n "$DIFF" ]; then
|
||||
DIFF="$DIFF"
|
||||
else
|
||||
DIFF=diff
|
||||
fi
|
||||
OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
|
||||
NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
|
||||
|
||||
OLD_SIZE=$($STAT "$OLD")
|
||||
NEW_SIZE=$($STAT "$NEW")
|
||||
|
||||
if [ $# -gt 3 ]
|
||||
then
|
||||
ROOT1=$(cd $3 && pwd)
|
||||
ROOT2=$(cd $4 && pwd)
|
||||
OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
|
||||
NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
|
||||
if [ "x$5" == "xview" ]; then VIEW=view; fi
|
||||
else
|
||||
ROOT1=$(dirname $OLD)/
|
||||
ROOT2=$(dirname $NEW)/
|
||||
OLD_NAME=$OLD
|
||||
NEW_NAME=$NEW
|
||||
if [ "x$3" == "xview" ]; then VIEW=view; fi
|
||||
fi
|
||||
|
||||
if cmp $OLD $NEW > /dev/null
|
||||
then
|
||||
# The files were bytewise identical.
|
||||
echo Identical: $OLD_NAME
|
||||
exit 0
|
||||
fi
|
||||
|
||||
OLD_SYMBOLS=$COMPARE_ROOT/$OLD_NAME.old
|
||||
NEW_SYMBOLS=$COMPARE_ROOT/$NEW_NAME.new
|
||||
|
||||
mkdir -p $(dirname $OLD_SYMBOLS)
|
||||
mkdir -p $(dirname $NEW_SYMBOLS)
|
||||
|
||||
if [ $OSTYPE == "cygwin" ]; then
|
||||
"$NM" $NM_ARGS $OLD | grep " = " > $OLD_SYMBOLS
|
||||
"$NM" $NM_ARGS $NEW | grep " = " > $NEW_SYMBOLS
|
||||
"$NM" $NM_ARGS $OLD > $OLD_SYMBOLS.full
|
||||
"$NM" $NM_ARGS $NEW > $NEW_SYMBOLS.full
|
||||
else
|
||||
# Strip the addresses, just compare the ordering of the symbols.
|
||||
$NM $OLD | cut -f 2- -d ' ' > $OLD_SYMBOLS
|
||||
$NM $NEW | cut -f 2- -d ' ' > $NEW_SYMBOLS
|
||||
# But store the full information for easy diff access.
|
||||
$NM $OLD > $OLD_SYMBOLS.full
|
||||
$NM $NEW > $NEW_SYMBOLS.full
|
||||
fi
|
||||
|
||||
DIFFS=$(LANG=C diff $OLD_SYMBOLS $NEW_SYMBOLS)
|
||||
|
||||
if [ "${LDD}" ]
|
||||
then
|
||||
NAME=`basename $OLD`
|
||||
TMP=$COMPARE_ROOT/ldd/ldd.${NAME}
|
||||
rm -rf "${TMP}"
|
||||
mkdir -p "${TMP}"
|
||||
|
||||
(cd "${TMP}" && cp $OLD . && ${LDD} ${NAME} | awk '{ print $1;}' | sort | tee dep.old | uniq > dep.uniq.old)
|
||||
(cd "${TMP}" && cp $NEW . && ${LDD} ${NAME} | awk '{ print $1;}' | sort | tee dep.new | uniq > dep.uniq.new)
|
||||
(cd "${TMP}" && rm -f ${NAME})
|
||||
|
||||
DIFFS_DEP=$(LANG=C diff "${TMP}/dep.old" "${TMP}/dep.new")
|
||||
DIFFS_UNIQ_DEP=$(LANG=C diff "${TMP}/dep.uniq.old" "${TMP}/dep.uniq.new")
|
||||
|
||||
DEP_MSG=
|
||||
if [ -z "${DIFFS_UNIQ_DEP}" -a -z "${DIFFS_DEP}" ]; then
|
||||
DEP_MSG="Identical dependencies"
|
||||
elif [ -z "${DIFFS_UNIQ_DEP}" ]; then
|
||||
DEP_MSG="Redundant duplicate dependencies added"
|
||||
RES=1
|
||||
else
|
||||
DEP_MSG="DIFFERENT dependencies"
|
||||
RES=1
|
||||
fi
|
||||
fi
|
||||
|
||||
RESULT=0
|
||||
|
||||
if [ -n "$DIFFS" ]; then
|
||||
if [ $OLD_SIZE -ne $NEW_SIZE ]
|
||||
then
|
||||
echo Differences, content AND size : $DEP_MSG : $OLD_NAME
|
||||
RESULT=4
|
||||
else
|
||||
echo Differences, content BUT SAME size: $DEP_MSG : $OLD_NAME
|
||||
RESULT=3
|
||||
fi
|
||||
if [ "x$VIEW" == "xview" ]; then
|
||||
LANG=C $DIFF $OLD_SYMBOLS $NEW_SYMBOLS
|
||||
fi
|
||||
else
|
||||
if [ $OLD_SIZE -ne $NEW_SIZE ]
|
||||
then
|
||||
echo Identical symbols BUT NEW size : $DEP_MSG : $OLD_NAME
|
||||
RESULT=2
|
||||
else
|
||||
echo Identical symbols AND size, BUT not bytewise identical: $DEP_MSG : $OLD_NAME
|
||||
RESULT=1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $RESULT
|
||||
|
||||
|
||||
|
||||
151
common/bin/diffjarzip.sh
Normal file
151
common/bin/diffjarzip.sh
Normal file
@@ -0,0 +1,151 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Simple tool to diff two jar or zip files. It unpacks the jar/zip files and
|
||||
# reports if files differs and if files are new or missing.
|
||||
# Assumes gnu diff.
|
||||
|
||||
# There are a few source files that have DOS line endings in the
|
||||
# jaxp/jaxws source drops, when the sources were added to the repository
|
||||
# the source files were converted to UNIX line endings.
|
||||
# For now we ignore these differences.
|
||||
DIFF_FLAGS="--strip-trailing-cr"
|
||||
#set -x
|
||||
|
||||
if [ $# -lt 2 ]
|
||||
then
|
||||
echo "Diff two jar/zip files. Return codes: 0 - no diff, 1 - diff, 2 - couldn't perform diff"
|
||||
echo "Syntax: $0 old_archive new_archive [old_root new_root]"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ ! -f $1 ]
|
||||
then
|
||||
echo $1 does not exist
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ ! -f $2 ]
|
||||
then
|
||||
echo $2 does not exist
|
||||
exit 2
|
||||
fi
|
||||
|
||||
IGNORES="cat"
|
||||
OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
|
||||
NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
|
||||
|
||||
if [ $# -gt 3 ]
|
||||
then
|
||||
ROOT1=$(cd $3 && pwd)
|
||||
ROOT2=$(cd $4 && pwd)
|
||||
OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
|
||||
NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
|
||||
if [ $# == 5 ]; then IGNORES="$5"; fi
|
||||
else
|
||||
ROOT1=$(dirname $OLD)/
|
||||
ROOT2=$(dirname $NEW)/
|
||||
OLD_NAME=$OLD
|
||||
NEW_NAME=$NEW
|
||||
if [ $# == 3 ]; then IGNORES="$3"; fi
|
||||
fi
|
||||
|
||||
if [ "`uname`" == "SunOS" ]; then
|
||||
DIFF=gdiff
|
||||
else
|
||||
DIFF=diff
|
||||
fi
|
||||
|
||||
OLD_SUFFIX="${OLD##*.}"
|
||||
NEW_SUFFIX="${NEW##*.}"
|
||||
if [ "$OLD_SUFFIX" != "$NEW_SUFFIX" ]; then
|
||||
echo The files do not have the same suffix type!
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if [ "$OLD_SUFFIX" != "zip" ] && [ "$OLD_SUFFIX" != "jar" ] && [ "$OLD_SUFFIX" != "sym" ]; then
|
||||
echo The files have to be zip, jar or sym! They are $OLD_SUFFIX
|
||||
exit 2
|
||||
fi
|
||||
|
||||
UNARCHIVE="unzip -q"
|
||||
|
||||
TYPE="$OLD_SUFFIX"
|
||||
|
||||
if cmp $OLD $NEW > /dev/null
|
||||
then
|
||||
# The files were bytewise identical.
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Not quite identical, the might still contain the same data.
|
||||
# Unpack the jar/zip files in temp dirs
|
||||
if test "x$COMPARE_ROOT" == "x"; then
|
||||
COMPARE_ROOT=/tmp/compare_root.$$
|
||||
REMOVE_COMPARE_ROOT=true
|
||||
fi
|
||||
OLD_TEMPDIR=$COMPARE_ROOT/$OLD_NAME.old
|
||||
NEW_TEMPDIR=$COMPARE_ROOT/$NEW_NAME.new
|
||||
mkdir -p $OLD_TEMPDIR
|
||||
mkdir -p $NEW_TEMPDIR
|
||||
(cd $OLD_TEMPDIR && rm -rf * ; $UNARCHIVE $OLD)
|
||||
(cd $NEW_TEMPDIR && rm -rf * ; $UNARCHIVE $NEW)
|
||||
|
||||
ONLY1=$(LANG=C $DIFF -rq $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $OLD_TEMPDIR")
|
||||
|
||||
if [ -n "$ONLY1" ]; then
|
||||
echo " Only the OLD $OLD_NAME contains:"
|
||||
LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $OLD_TEMPDIR" \
|
||||
| sed "s|Only in $OLD_TEMPDIR| |"g | sed 's|: |/|g'
|
||||
fi
|
||||
|
||||
ONLY2=$(LANG=C $DIFF -rq $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $NEW_TEMPDIR")
|
||||
|
||||
if [ -n "$ONLY2" ]; then
|
||||
echo " Only the NEW $NEW_NAME contains:"
|
||||
LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep "^Only in $NEW_TEMPDIR" \
|
||||
| sed "s|Only in $NEW_TEMPDIR| |"g | sed 's|: |/|g'
|
||||
fi
|
||||
|
||||
DIFFTEXT="/bin/bash `dirname $0`/difftext.sh"
|
||||
|
||||
LANG=C $DIFF -rq $DIFF_FLAGS $OLD_TEMPDIR $NEW_TEMPDIR | grep differ | cut -f 2,4 -d ' ' | \
|
||||
awk "{ print \"$DIFFTEXT \"\$1\" \"\$2 }" > $COMPARE_ROOT/diffing
|
||||
|
||||
/bin/bash $COMPARE_ROOT/diffing > $COMPARE_ROOT/diffs
|
||||
|
||||
if [ -s "$COMPARE_ROOT/diffs" ]; then
|
||||
echo " Differing files in $OLD_NAME"
|
||||
cat $COMPARE_ROOT/diffs | grep differ | $IGNORES | cut -f 2 -d ' ' | \
|
||||
sed "s|$OLD_TEMPDIR| |g"
|
||||
fi
|
||||
|
||||
# Clean up
|
||||
|
||||
if [ "x$REMOVE_COMPARE_ROOT" == xtrue ]; then
|
||||
rm -rf $REMOVE_COMPARE_ROOT
|
||||
fi
|
||||
|
||||
exit 1
|
||||
|
||||
201
common/bin/difflib.sh
Normal file
201
common/bin/difflib.sh
Normal file
@@ -0,0 +1,201 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Simple tool to diff two shared libraries.
|
||||
# Criterias: two shared libraries are considered equal if:
|
||||
# the file sizes are the same AND the symbols outputs from the nm command are equal
|
||||
|
||||
if [ $# -lt 2 ]
|
||||
then
|
||||
echo "Diff two shared libs. Return codes:"
|
||||
echo "0 - no diff"
|
||||
echo "1 - Identical symbols AND size, BUT not bytewise identical"
|
||||
echo "2 - Identical symbols BUT NEW size"
|
||||
echo "3 - Differences, content BUT SAME size"
|
||||
echo "4 - Differences, content AND size"
|
||||
echo "10 - Could not perform diff"
|
||||
echo "Use 'quiet' to disable any output."
|
||||
echo "Syntax: $0 file1 file2 [quiet]"
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ ! -f $1 ]
|
||||
then
|
||||
echo $1 does not exist
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ ! -f $2 ]
|
||||
then
|
||||
echo $2 does not exist
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ "`uname`" == "SunOS" ]; then
|
||||
NM=gnm
|
||||
STAT="gstat -c%s"
|
||||
LDD=ldd
|
||||
elif [ $OSTYPE == "cygwin" ]; then
|
||||
NM="$VS100COMNTOOLS/../../VC/bin/amd64/dumpbin.exe"
|
||||
NM_ARGS=/exports
|
||||
STAT="stat -c%s"
|
||||
LDD=
|
||||
elif [ "`uname`" == "Darwin" ]; then
|
||||
NM=nm
|
||||
STAT="stat -f%z"
|
||||
LDD="otool -L"
|
||||
else
|
||||
NM=nm
|
||||
STAT="stat -c%s"
|
||||
LDD=ldd
|
||||
fi
|
||||
|
||||
# Should the differences be viewed?
|
||||
VIEW=
|
||||
# You can do export DIFF=meld to view
|
||||
# any differences using meld instead.
|
||||
if [ -n "$DIFF" ]; then
|
||||
DIFF="$DIFF"
|
||||
else
|
||||
DIFF=diff
|
||||
fi
|
||||
OLD=$(cd $(dirname $1) && pwd)/$(basename $1)
|
||||
NEW=$(cd $(dirname $2) && pwd)/$(basename $2)
|
||||
|
||||
OLD_SIZE=$($STAT "$OLD")
|
||||
NEW_SIZE=$($STAT "$NEW")
|
||||
|
||||
if [ $# -gt 3 ]
|
||||
then
|
||||
ROOT1=$(cd $3 && pwd)
|
||||
ROOT2=$(cd $4 && pwd)
|
||||
OLD_NAME=$(echo $OLD | sed "s|$ROOT1/||")
|
||||
NEW_NAME=$(echo $NEW | sed "s|$ROOT2/||")
|
||||
if [ "x$5" == "xview" ]; then VIEW=view; fi
|
||||
else
|
||||
ROOT1=$(dirname $OLD)/
|
||||
ROOT2=$(dirname $NEW)/
|
||||
OLD_NAME=$OLD
|
||||
NEW_NAME=$NEW
|
||||
if [ "x$3" == "xview" ]; then VIEW=view; fi
|
||||
fi
|
||||
|
||||
OLD_SUFFIX="${OLD##*.}"
|
||||
NEW_SUFFIX="${NEW##*.}"
|
||||
if [ "$OLD_SUFFIX" != "$NEW_SUFFIX" ]; then
|
||||
echo The files do not have the same suffix type!
|
||||
exit 10
|
||||
fi
|
||||
|
||||
if [ "$OLD_SUFFIX" != "so" ] && [ "$OLD_SUFFIX" != "dylib" ] && [ "$OLD_SUFFIX" != "dll" ]; then
|
||||
echo The files have to be .so, .dylib or .dll! They are $OLD_SUFFIX
|
||||
exit 10
|
||||
fi
|
||||
|
||||
TYPE="$OLD_SUFFIX"
|
||||
|
||||
if cmp $OLD $NEW > /dev/null
|
||||
then
|
||||
# The files were bytewise identical.
|
||||
echo Identical: $OLD_NAME
|
||||
exit 0
|
||||
fi
|
||||
|
||||
OLD_SYMBOLS=$COMPARE_ROOT/$OLD_NAME.old
|
||||
NEW_SYMBOLS=$COMPARE_ROOT/$NEW_NAME.new
|
||||
|
||||
mkdir -p $(dirname $OLD_SYMBOLS)
|
||||
mkdir -p $(dirname $NEW_SYMBOLS)
|
||||
|
||||
if [ $OSTYPE == "cygwin" ]; then
|
||||
"$NM" $NM_ARGS $OLD | grep " = " > $OLD_SYMBOLS
|
||||
"$NM" $NM_ARGS $NEW | grep " = " > $NEW_SYMBOLS
|
||||
"$NM" $NM_ARGS $OLD > $OLD_SYMBOLS.full
|
||||
"$NM" $NM_ARGS $NEW > $NEW_SYMBOLS.full
|
||||
else
|
||||
# Strip the addresses, just compare the ordering of the symbols.
|
||||
$NM $OLD | cut -f 2- -d ' ' > $OLD_SYMBOLS
|
||||
$NM $NEW | cut -f 2- -d ' ' > $NEW_SYMBOLS
|
||||
# But store the full information for easy diff access.
|
||||
$NM $OLD > $OLD_SYMBOLS.full
|
||||
$NM $NEW > $NEW_SYMBOLS.full
|
||||
fi
|
||||
|
||||
DIFFS=$(LANG=C diff $OLD_SYMBOLS $NEW_SYMBOLS)
|
||||
|
||||
RESULT=0
|
||||
|
||||
if [ "${LDD}" ]
|
||||
then
|
||||
NAME=`basename $OLD`
|
||||
TMP=$COMPARE_ROOT/ldd/ldd.${NAME}
|
||||
rm -rf "${TMP}"
|
||||
mkdir -p "${TMP}"
|
||||
|
||||
(cd "${TMP}" && cp $OLD . && ${LDD} ${NAME} | awk '{ print $1;}' | sort | tee dep.old | uniq > dep.uniq.old)
|
||||
(cd "${TMP}" && cp $NEW . && ${LDD} ${NAME} | awk '{ print $1;}' | sort | tee dep.new | uniq > dep.uniq.new)
|
||||
(cd "${TMP}" && rm -f ${NAME})
|
||||
|
||||
DIFFS_DEP=$(LANG=C diff "${TMP}/dep.old" "${TMP}/dep.new")
|
||||
DIFFS_UNIQ_DEP=$(LANG=C diff "${TMP}/dep.uniq.old" "${TMP}/dep.uniq.new")
|
||||
|
||||
DEP_MSG=
|
||||
if [ -z "${DIFFS_UNIQ_DEP}" -a -z "${DIFFS_DEP}" ]; then
|
||||
DEP_MSG="Identical dependencies"
|
||||
elif [ -z "${DIFFS_UNIQ_DEP}" ]; then
|
||||
DEP_MSG="Redundant duplicate dependencies added"
|
||||
RES=1
|
||||
else
|
||||
DEP_MSG="DIFFERENT dependencies"
|
||||
RES=1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -n "$DIFFS" ]; then
|
||||
if [ $OLD_SIZE -ne $NEW_SIZE ]
|
||||
then
|
||||
echo Differences, content AND size : $DEP_MSG : $OLD_NAME
|
||||
RESULT=4
|
||||
else
|
||||
echo Differences, content BUT SAME size: $DEP_MSG : $OLD_NAME
|
||||
RESULT=3
|
||||
fi
|
||||
if [ "x$VIEW" == "xview" ]; then
|
||||
LANG=C $DIFF $OLD_SYMBOLS $NEW_SYMBOLS
|
||||
fi
|
||||
else
|
||||
if [ $OLD_SIZE -ne $NEW_SIZE ]
|
||||
then
|
||||
echo Identical symbols BUT NEW size : $DEP_MSG : $OLD_NAME
|
||||
RESULT=2
|
||||
else
|
||||
echo Identical symbols AND size, BUT not bytewise identical: $DEP_MSG : $OLD_NAME
|
||||
RESULT=1
|
||||
fi
|
||||
fi
|
||||
|
||||
exit $RESULT
|
||||
|
||||
|
||||
|
||||
157
common/bin/difftext.sh
Normal file
157
common/bin/difftext.sh
Normal file
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The difftext.sh knows how to compare text files and
|
||||
# ignore some specific differences.
|
||||
# When difftext.sh is called, we already know that the
|
||||
# files differ. But if the tests below trigger, then
|
||||
# we ignore differences caused by:
|
||||
#
|
||||
# Timestamps in Java sources generated by idl2java
|
||||
# Sorting order and cleanup style in .properties files.
|
||||
|
||||
OLD="$1"
|
||||
NEW="$2"
|
||||
SUF="${OLD##*.}"
|
||||
TMP=1
|
||||
if test "x$SUF" == "xjava"; then
|
||||
TMP=$(LANG=C diff $OLD $NEW | \
|
||||
grep '^[<>]' | \
|
||||
sed '/[<>] \* from.*\.idl/d' | \
|
||||
sed '/[<>] \*.*201[12].*/d' | \
|
||||
sed '/\/\/ Generated from input file.*/d' | \
|
||||
sed '/\/\/ This file was generated AUTOMATICALLY from a template file.*/d' | \
|
||||
sed '/\/\/ java GenerateCharacter.*/d')
|
||||
fi
|
||||
if test "x$SUF" == "xproperties"; then
|
||||
cat $OLD | sed -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
|
||||
-e 's/\\u0020/\x20/g' \
|
||||
-e 's/\\u003A/\x3A/g' \
|
||||
-e 's/\\u006B/\x6B/g' \
|
||||
-e 's/\\u0075/\x75/g' \
|
||||
-e 's/\\u00A0/\xA0/g' \
|
||||
-e 's/\\u00A3/\xA3/g' \
|
||||
-e 's/\\u00B0/\xB0/g' \
|
||||
-e 's/\\u00B7/\xB7/g' \
|
||||
-e 's/\\u00BA/\xBA/g' \
|
||||
-e 's/\\u00BF/\xBF/g' \
|
||||
-e 's/\\u00C0/\xC0/g' \
|
||||
-e 's/\\u00C1/\xC1/g' \
|
||||
-e 's/\\u00C2/\xC2/g' \
|
||||
-e 's/\\u00C4/\xC4/g' \
|
||||
-e 's/\\u00C5/\xC5/g' \
|
||||
-e 's/\\u00C8/\xC8/g' \
|
||||
-e 's/\\u00C9/\xC9/g' \
|
||||
-e 's/\\u00CA/\xCA/g' \
|
||||
-e 's/\\u00CD/\xCD/g' \
|
||||
-e 's/\\u00CE/\xCE/g' \
|
||||
-e 's/\\u00D3/\xD3/g' \
|
||||
-e 's/\\u00D4/\xD4/g' \
|
||||
-e 's/\\u00D6/\xD6/g' \
|
||||
-e 's/\\u00DA/\xDA/g' \
|
||||
-e 's/\\u00DC/\xDC/g' \
|
||||
-e 's/\\u00DD/\xDD/g' \
|
||||
-e 's/\\u00DF/\xDF/g' \
|
||||
-e 's/\\u00E0/\xE0/g' \
|
||||
-e 's/\\u00E1/\xE1/g' \
|
||||
-e 's/\\u00E2/\xE2/g' \
|
||||
-e 's/\\u00E3/\xE3/g' \
|
||||
-e 's/\\u00E4/\xE4/g' \
|
||||
-e 's/\\u00E5/\xE5/g' \
|
||||
-e 's/\\u00E6/\xE6/g' \
|
||||
-e 's/\\u00E7/\xE7/g' \
|
||||
-e 's/\\u00E8/\xE8/g' \
|
||||
-e 's/\\u00E9/\xE9/g' \
|
||||
-e 's/\\u00EA/\xEA/g' \
|
||||
-e 's/\\u00EB/\xEB/g' \
|
||||
-e 's/\\u00EC/\xEC/g' \
|
||||
-e 's/\\u00ED/\xED/g' \
|
||||
-e 's/\\u00EE/\xEE/g' \
|
||||
-e 's/\\u00EF/\xEF/g' \
|
||||
-e 's/\\u00F1/\xF1/g' \
|
||||
-e 's/\\u00F2/\xF2/g' \
|
||||
-e 's/\\u00F3/\xF3/g' \
|
||||
-e 's/\\u00F4/\xF4/g' \
|
||||
-e 's/\\u00F5/\xF5/g' \
|
||||
-e 's/\\u00F6/\xF6/g' \
|
||||
-e 's/\\u00F9/\xF9/g' \
|
||||
-e 's/\\u00FA/\xFA/g' \
|
||||
-e 's/\\u00FC/\xFC/g' \
|
||||
-e 's/\\u0020/\x20/g' \
|
||||
-e 's/\\u003f/\x3f/g' \
|
||||
-e 's/\\u006f/\x6f/g' \
|
||||
-e 's/\\u0075/\x75/g' \
|
||||
-e 's/\\u00a0/\xa0/g' \
|
||||
-e 's/\\u00a3/\xa3/g' \
|
||||
-e 's/\\u00b0/\xb0/g' \
|
||||
-e 's/\\u00ba/\xba/g' \
|
||||
-e 's/\\u00bf/\xbf/g' \
|
||||
-e 's/\\u00c1/\xc1/g' \
|
||||
-e 's/\\u00c4/\xc4/g' \
|
||||
-e 's/\\u00c5/\xc5/g' \
|
||||
-e 's/\\u00c8/\xc8/g' \
|
||||
-e 's/\\u00c9/\xc9/g' \
|
||||
-e 's/\\u00ca/\xca/g' \
|
||||
-e 's/\\u00cd/\xcd/g' \
|
||||
-e 's/\\u00d6/\xd6/g' \
|
||||
-e 's/\\u00dc/\xdc/g' \
|
||||
-e 's/\\u00dd/\xdd/g' \
|
||||
-e 's/\\u00df/\xdf/g' \
|
||||
-e 's/\\u00e0/\xe0/g' \
|
||||
-e 's/\\u00e1/\xe1/g' \
|
||||
-e 's/\\u00e2/\xe2/g' \
|
||||
-e 's/\\u00e3/\xe3/g' \
|
||||
-e 's/\\u00e4/\xe4/g' \
|
||||
-e 's/\\u00e5/\xe5/g' \
|
||||
-e 's/\\u00e7/\xe7/g' \
|
||||
-e 's/\\u00e8/\xe8/g' \
|
||||
-e 's/\\u00e9/\xe9/g' \
|
||||
-e 's/\\u00ea/\xea/g' \
|
||||
-e 's/\\u00eb/\xeb/g' \
|
||||
-e 's/\\u00ec/\xec/g' \
|
||||
-e 's/\\u00ed/\xed/g' \
|
||||
-e 's/\\u00ee/\xee/g' \
|
||||
-e 's/\\u00ef/\xef/g' \
|
||||
-e 's/\\u00f0/\xf0/g' \
|
||||
-e 's/\\u00f1/\xf1/g' \
|
||||
-e 's/\\u00f2/\xf2/g' \
|
||||
-e 's/\\u00f3/\xf3/g' \
|
||||
-e 's/\\u00f4/\xf4/g' \
|
||||
-e 's/\\u00f5/\xf5/g' \
|
||||
-e 's/\\u00f6/\xf6/g' \
|
||||
-e 's/\\u00f7/\xf7/g' \
|
||||
-e 's/\\u00f8/\xf8/g' \
|
||||
-e 's/\\u00f9/\xf9/g' \
|
||||
-e 's/\\u00fa/\xfa/g' \
|
||||
-e 's/\\u00fc/\xfc/g' \
|
||||
-e 's/\\u00ff/\xff/g' \
|
||||
| sed -e '/^#/d' -e '/^$/d' \
|
||||
-e :a -e '/\\$/N; s/\\\n//; ta' \
|
||||
-e 's/^[ \t]*//;s/[ \t]*$//' \
|
||||
-e 's/\\=/=/' | LANG=C sort > $OLD.cleaned
|
||||
TMP=$(LANG=C diff $OLD.cleaned $NEW)
|
||||
fi
|
||||
if test -n "$TMP"; then
|
||||
echo Files $OLD and $NEW differ
|
||||
fi
|
||||
114
common/bin/exception_list_linux
Normal file
114
common/bin/exception_list_linux
Normal file
@@ -0,0 +1,114 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# List of files inside jar archives that are ok if they differ.
|
||||
LIST_DIFF_JAR="
|
||||
/sun/misc/Version.class
|
||||
/sun/tools/jconsole/Version.class
|
||||
/com/sun/tools/javac/resources/version.class
|
||||
/com/sun/tools/javah/resources/version.class
|
||||
/com/sun/tools/javap/resources/version.class
|
||||
"
|
||||
|
||||
# List of binaries that only need to match symbols
|
||||
LIST_DIFF_SIZE="
|
||||
jre/lib/amd64/libfontmanager.so
|
||||
jre/lib/amd64/libjdwp.so
|
||||
jre/lib/amd64/libt2k.so
|
||||
bin/unpack200
|
||||
jre/bin/unpack200
|
||||
jre/lib/amd64/libjsig.debuginfo
|
||||
jre/lib/amd64/libsaproc.debuginfo
|
||||
jre/lib/amd64/server/libjvm.debuginfo
|
||||
"
|
||||
|
||||
# List of binares that need to match both symbols and size
|
||||
LIST_DIFF_BYTE="
|
||||
jre/lib/amd64/libdt_socket.so
|
||||
jre/lib/amd64/libattach.so
|
||||
jre/lib/amd64/libjaas_unix.so
|
||||
jre/lib/amd64/libjawt.so
|
||||
jre/lib/amd64/libjpeg.so
|
||||
jre/lib/amd64/libjsdt.so
|
||||
jre/lib/amd64/libjsig.so
|
||||
jre/lib/amd64/libsaproc.so
|
||||
jre/lib/amd64/libsctp.so
|
||||
jre/lib/amd64/libsunec.so
|
||||
jre/lib/amd64/libunpack.so
|
||||
jre/lib/amd64/libverify.so
|
||||
jre/lib/amd64/libzip.so
|
||||
jre/lib/amd64/server/libjsig.so
|
||||
jre/lib/amd64/server/libjvm.so
|
||||
jre/lib/amd64/liblcms.so
|
||||
demo/jvmti/heapTracker/lib/libheapTracker.so
|
||||
demo/jvmti/hprof/lib/libhprof.so
|
||||
demo/jvmti/minst/lib/libminst.so
|
||||
demo/jvmti/mtrace/lib/libmtrace.so
|
||||
demo/jvmti/waiters/lib/libwaiters.so
|
||||
bin/appletviewer
|
||||
bin/extcheck
|
||||
bin/idlj
|
||||
bin/jar
|
||||
bin/jarsigner
|
||||
bin/java
|
||||
bin/javac
|
||||
bin/javadoc
|
||||
bin/javah
|
||||
bin/javap
|
||||
bin/jcmd
|
||||
bin/jconsole
|
||||
bin/jdb
|
||||
bin/jhat
|
||||
bin/jinfo
|
||||
bin/jmap
|
||||
bin/jps
|
||||
bin/jrunscript
|
||||
bin/jsadebugd
|
||||
bin/jstack
|
||||
bin/jstat
|
||||
bin/jstatd
|
||||
bin/keytool
|
||||
bin/native2ascii
|
||||
bin/orbd
|
||||
bin/pack200
|
||||
bin/policytool
|
||||
bin/rmic
|
||||
bin/rmid
|
||||
bin/rmiregistry
|
||||
bin/schemagen
|
||||
bin/serialver
|
||||
bin/servertool
|
||||
bin/tnameserv
|
||||
bin/wsgen
|
||||
bin/wsimport
|
||||
bin/xjc
|
||||
jre/bin/java
|
||||
jre/bin/keytool
|
||||
jre/bin/orbd
|
||||
jre/bin/pack200
|
||||
jre/bin/policytool
|
||||
jre/bin/rmid
|
||||
jre/bin/rmiregistry
|
||||
jre/bin/servertool
|
||||
jre/bin/tnameserv
|
||||
"
|
||||
53
common/bin/extractvcvars.sh
Normal file
53
common/bin/extractvcvars.sh
Normal file
@@ -0,0 +1,53 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Must be bash, but that is ok since we are running from cygwin.
|
||||
# The first argument is the vcvarsall.bat file to run.
|
||||
# The second argument is the arch arg to give to vcvars.
|
||||
VCVARSALL="$1"
|
||||
ARCH_ARG="$2"
|
||||
|
||||
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment)
|
||||
# but calculate the difference in Cygwin environment before/after running it and then
|
||||
# apply the diff.
|
||||
_vs10varsall=`cygpath -a -m -s "$VCVARSALL"`
|
||||
_dosvs10varsall=`cygpath -a -w -s $_vs10varsall`
|
||||
_dosbash=`cygpath -a -w -s \`which bash\`.*`
|
||||
|
||||
# generate the set of exported vars before/after the vs10 setup
|
||||
echo "@echo off" > localdevenvtmp.bat
|
||||
echo "$_dosbash -c \"export -p\" > localdevenvtmp.export0" >> localdevenvtmp.bat
|
||||
echo "call $_dosvs10varsall $ARCH_ARG" >> localdevenvtmp.bat
|
||||
echo "$_dosbash -c \"export -p\" > localdevenvtmp.export1" >> localdevenvtmp.bat
|
||||
cmd /c localdevenvtmp.bat
|
||||
|
||||
# apply the diff (less some non-vs10 vars named by "!")
|
||||
sort localdevenvtmp.export0 |grep -v "!" > localdevenvtmp.export0.sort
|
||||
sort localdevenvtmp.export1 |grep -v "!" > localdevenvtmp.export1.sort
|
||||
comm -1 -3 localdevenvtmp.export0.sort localdevenvtmp.export1.sort > localdevenv.sh
|
||||
cat localdevenv.sh | sed 's/declare -x /export /g' | sed 's/="/:="/g' | sed 's/\\\\/\\/g' | sed 's/"//g' | \
|
||||
sed 's/#/\$\(HASH\)/g' > localdevenv.gmk
|
||||
|
||||
# cleanup
|
||||
rm -f localdevenvtmp*
|
||||
41
common/bin/hide_important_warnings_from_javac.sh
Normal file
41
common/bin/hide_important_warnings_from_javac.sh
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
if [ -x /usr/bin/ggrep ] ; then
|
||||
# Gnu grep on Solaris
|
||||
# (reference configure and build/solaris-i586-clientANDserver-release/spec.gmk
|
||||
GREP=/usr/bin/ggrep
|
||||
else
|
||||
GREP=grep
|
||||
fi
|
||||
#
|
||||
EXP="Note: Some input files use or override a deprecated API."
|
||||
EXP="${EXP}|Note: Recompile with -Xlint:deprecation for details."
|
||||
EXP="${EXP}|Note: Some input files use unchecked or unsafe operations."
|
||||
EXP="${EXP}|Note: Recompile with -Xlint:unchecked for details."
|
||||
EXP="${EXP}| warning"
|
||||
EXP="${EXP}|uses or overrides a deprecated API."
|
||||
EXP="${EXP}|uses unchecked or unsafe operations."
|
||||
#
|
||||
${GREP} --line-buffered -v -E "${EXP}"
|
||||
45
common/bin/logger.sh
Normal file
45
common/bin/logger.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Usage: ./logger.sh theloggfile acommand arg1 arg2
|
||||
#
|
||||
# Execute acommand with args, in such a way that
|
||||
# both stdout and stderr from acommand are appended to
|
||||
# theloggfile.
|
||||
#
|
||||
# Preserve stdout and stderr, so that the stdout
|
||||
# from logger.sh is the same from acommand and equally
|
||||
# for stderr.
|
||||
#
|
||||
# Propagate the result code from acommand so that
|
||||
# ./logger.sh exits with the same result code.
|
||||
|
||||
# Create a temporary directory to store the result code from
|
||||
# the wrapped command.
|
||||
RCDIR=`mktemp -dt jdk-build-logger.tmp.XXXXXX` || exit $?
|
||||
trap "rm -rf \"$RCDIR\"" EXIT
|
||||
LOGFILE=$1
|
||||
shift
|
||||
(exec 3>&1 ; ("$@" 2>&1 1>&3; echo $? > "$RCDIR/rc") | tee -a $LOGFILE 1>&2 ; exec 3>&-) | tee -a $LOGFILE
|
||||
exit `cat "$RCDIR/rc"`
|
||||
114
common/makefiles/IdlCompilation.gmk
Normal file
114
common/makefiles/IdlCompilation.gmk
Normal file
@@ -0,0 +1,114 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
PREFIXES=-pkgPrefix CORBA org.omg \
|
||||
-pkgPrefix CosNaming org.omg \
|
||||
-pkgPrefix CosTransactions org.omg \
|
||||
-pkgPrefix CosTSInteroperation org.omg \
|
||||
-pkgPrefix DynamicAny org.omg \
|
||||
-pkgPrefix Dynamic org.omg \
|
||||
-pkgPrefix IOP org.omg \
|
||||
-pkgPrefix Messaging org.omg \
|
||||
-pkgPrefix PortableInterceptor org.omg \
|
||||
-pkgPrefix PortableServer org.omg \
|
||||
-pkgPrefix activation com.sun.corba.se.spi \
|
||||
-pkgPrefix GIOP com.sun.corba.se \
|
||||
-pkgPrefix PortableActivationIDL com.sun.corba.se \
|
||||
-pkgPrefix messages com.sun.corba.se
|
||||
|
||||
define add_idl_package
|
||||
# param 1 = MYPACKAGE
|
||||
# param 2 = src root
|
||||
# param 3 = gensrc root
|
||||
# param 4 = source idl to compile
|
||||
# param 5 = target idl package
|
||||
# param 6 = delete these files that were output from the idlj
|
||||
# param 7 = idls that match these patterns should be compiled with -oldImplBase
|
||||
# param 8 = the idlj command
|
||||
# Save the generated java files to a temporary directory so
|
||||
# that we can find them and create proper dependencies.
|
||||
# After that, we move them to the real gensrc target dir.
|
||||
$4_TMPDIR:=tmp___$(subst /,_,$(patsubst $2/%,%,$4))___
|
||||
ifneq ($$(filter $7,$4),)
|
||||
$4_OLDIMPLBASE:=-oldImplBase
|
||||
$4_OLDIMPLBASE_MSG:=with -oldImplBase
|
||||
endif
|
||||
$5 : $4
|
||||
mkdir -p $3/$$($4_TMPDIR)
|
||||
rm -rf $3/$$($4_TMPDIR)
|
||||
mkdir -p $(dir $5)
|
||||
echo Compiling IDL $(patsubst $2/%,%,$4)
|
||||
$8 -td $3/$$($4_TMPDIR) \
|
||||
-i $2/org/omg/CORBA \
|
||||
-i $2/org/omg/PortableInterceptor \
|
||||
-i $2/org/omg/PortableServer \
|
||||
-D CORBA3 -corba 3.0 \
|
||||
-fall \
|
||||
$$($4_OLDIMPLBASE) \
|
||||
$(PREFIXES) \
|
||||
$4
|
||||
rm -f $$(addprefix $3/$$($4_TMPDIR)/,$6)
|
||||
cp -rp $3/$$($4_TMPDIR)/* $3
|
||||
(cd $3/$$($4_TMPDIR); find . -type f | sed 's!\./!$3/!g' | awk '{ print $$$$1 ": $4" }' > $5)
|
||||
rm -rf $3/$$($4_TMPDIR)
|
||||
endef
|
||||
|
||||
define SetupIdlCompilation
|
||||
# param 1 is for example BUILD_IDLS
|
||||
# param 2,3,4,5,6,7,8 are named args.
|
||||
# IDLJ,SRC,BIN,INCLUDES,EXCLUDES,OLDIMPLBASES,DELETES
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
# Remove any relative addressing in the paths.
|
||||
$1_SRC := $$(abspath $$($1_SRC))
|
||||
$1_BIN := $$(abspath $$($1_BIN))
|
||||
# Find all existing java files and existing class files.
|
||||
$$(shell mkdir -p $$($1_SRC) $$($1_BIN))
|
||||
$1_SRCS := $$(shell find $$($1_SRC) -name "*.idl")
|
||||
$1_BINS := $$(shell find $$($1_BIN) -name "*.java")
|
||||
# Prepend the source/bin path to the filter expressions.
|
||||
$1_SRC_INCLUDES := $$(addprefix $$($1_SRC)/,$$($1_INCLUDES))
|
||||
$1_SRC_EXCLUDES := $$(addprefix $$($1_SRC)/,$$($1_EXCLUDES))
|
||||
$1_BIN_INCLUDES := $$(addprefix $$($1_BIN)/,$$($1_INCLUDES))
|
||||
$1_BIN_EXCLUDES := $$(addprefix $$($1_BIN)/,$$($1_EXCLUDES))
|
||||
$1_OLDIMPLBASES := $$(addprefix $$($1_SRC)/,$$($1_OLDIMPLBASES))
|
||||
# Now remove unwanted java/class files.
|
||||
$1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
|
||||
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
|
||||
$1_BINS := $$(filter $$($1_BIN_INCLUDES),$$($1_BINS))
|
||||
$1_BINS := $$(filter-out $$($1_BIN_EXCLUDES),$$($1_BINS))
|
||||
$1 := $$(sort $$(patsubst $$($1_SRC)/%.idl,$$($1_BIN)/%.idl.d,$$($1_SRCS)))
|
||||
# Now create the dependencies for each idl target.
|
||||
$$(foreach p,$$($1),$$(eval $$(call add_idl_package,$1,$$($1_SRC),$$($1_BIN),$$(patsubst $$($1_BIN)/%.idl.d,$$($1_SRC)/%.idl,$$p),$$p,$$($1_DELETES),$$($1_OLDIMPLBASES),$$($1_IDLJ))))
|
||||
endef
|
||||
|
||||
.SUFFIXES: .java .class .package
|
||||
|
||||
894
common/makefiles/JavaCompilation.gmk
Normal file
894
common/makefiles/JavaCompilation.gmk
Normal file
@@ -0,0 +1,894 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The complexity of this makefile is not the fault of make, but the fault
|
||||
# of javac and javah. The basic problems are:
|
||||
#
|
||||
# 1) Compiling a single Java source file unpredictably generates anything
|
||||
# between zero (0!) and an infinite number of .class files!
|
||||
# 2) There is no hint, for which classes javah needs to be run,
|
||||
# and it happily generates .h files for classes with no native methods.
|
||||
# 3) javac and javah do not cleanup anything, for example if an internal
|
||||
# class (potentially with native methods) is removed from a Java source file.
|
||||
#
|
||||
# This makefile is a tribute to GNU make. And yes, it was harder to write than it is
|
||||
# to read. The include/excludes of directories and files are only a temporary measure
|
||||
# to work around the messy jdk sources that put platform specific code in src/share/classes.
|
||||
#
|
||||
# We should move most of the functionality of this makefile into a
|
||||
# smart javac/javah/javadoc/jar combo tool. sjavac ?
|
||||
#
|
||||
# I.e. 1) It always generates a single output, a zip-file from a number of source roots.
|
||||
# The zip file contains information that enable incremental builds with full
|
||||
# dependency tracking between packages.
|
||||
# 2) It automatically generates the right .h files.
|
||||
# 3) It keeps its house clean.
|
||||
# *) Generates intermediate files to be used for javadoc generation later.
|
||||
# and does all the other useful things that this makefile does, such as:
|
||||
# use all cores for compilation, reuse the running JVM for all compilations,
|
||||
# and has pubapi dependency tracking to minimize the number of files
|
||||
# that need to be recompiled during an incremental build.
|
||||
#
|
||||
# A zip file, or several zip files combined, can then be converted to a .jar file, or to a .jmod file.
|
||||
#
|
||||
# This would make this makefile much much simpler. I.e. make can be used
|
||||
# for its real purpose, track dependencies and trigger a recompile if a
|
||||
# dependency has changed.
|
||||
#
|
||||
# When you read this source. Remember that $(sort ...) has the side effect
|
||||
# of removing duplicates. It is actually this side effect that is
|
||||
# desired whenever sort is used below!
|
||||
|
||||
ifeq (,$(_MAKEBASE_GMK))
|
||||
$(error You must include MakeBase.gmk prior to including JavaCompilation.gmk)
|
||||
endif
|
||||
|
||||
FALSE_FIND_PATTERN:=-name FILE_NAME_THAT_DOESNT_EXIST
|
||||
|
||||
# If compilation of java package fails, then the public api file for that
|
||||
# package will not be genereated. We add this fallback rule to generate
|
||||
# an empty pubapi file.
|
||||
%.api:
|
||||
if test ! -f $@; then $(MKDIR) -p $(@D); $(TOUCH) $@; fi
|
||||
|
||||
define SetupJavaCompiler
|
||||
# param 1 is for example BOOT_JAVAC or NEW_JAVAC
|
||||
# This is the name later used to decide which java compiler to use.
|
||||
# param 2-9 are named args.
|
||||
# JVM:=The jvm used to run the javac/javah command
|
||||
# JAVAC:=The javac jar and bootstrap classpath changes, or just bin/javac if JVM is left out
|
||||
# JAVAH:=The javah jar and bootstrap classpath changes, or just bin/javah if JVM is left out
|
||||
# FLAGS:=Flags to be supplied to javac
|
||||
# MODE:=SINGLE_THREADED_BATCH (primarily for old javac) or MULTI_CORE_CONCURRENT
|
||||
# only for MULTI_CORE_CONCURRENT are the options below relevant:
|
||||
# SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here
|
||||
# SERVER_JVM:=Use this JVM for the server. Defaults to the JVM above.
|
||||
# USE_DEPS:=true means use -XDdeps,-XDpubapi and -XDnativeapi to track java dependencies
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
|
||||
ifeq ($$($1_MODE),MULTI_CORE_CONCURRENT)
|
||||
ifneq (,$$($1_SERVER_DIR))
|
||||
# A javac server has been requested.
|
||||
# The port file contains the tcp/ip on which the server listens
|
||||
# and the cookie necessary to talk to the server.
|
||||
$1_JAVAC_PORTFILE:=$$($1_SERVER_DIR)/$1.port
|
||||
ifeq ($$($1_SERVER_JVM),)
|
||||
# You can use a different JVM to run the background javac server.
|
||||
# But if not set, it defaults to the same JVM that is used to start
|
||||
# the javac command.
|
||||
$1_SERVER_JVM:=$$($1_JVM)
|
||||
endif
|
||||
# Set the $1_REMOTE to spawn a background javac server.
|
||||
$1_REMOTE:=-XDserver:portfile=$$($1_JAVAC_PORTFILE),poolsize=$(JAVAC_SERVER_CORES),javac=$$(subst $$(SPACE),%20,$$(subst $$(COMMA),%2C,$$(strip $$($1_SERVER_JVM) $$($1_JAVAC))))
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
define SetupArchive
|
||||
# param 1 is for example ARCHIVE_MYPACKAGE
|
||||
# param 2 are the dependecies
|
||||
# param 3,4,5,6,7,8,9 are named args.
|
||||
# SRCS:=List of directories in where to find files to add to archive
|
||||
# SUFFIXES:=File suffixes to include in jar
|
||||
# INCLUDES:=List of directories/packages in SRCS that should be included
|
||||
# EXCLUDES:=List of directories/packages in SRCS that should be excluded
|
||||
# EXCLUDE_FILES:=List of files in SRCS that should be excluded
|
||||
# EXTRA_FILES:=List of files in SRCS that should be included regardless of suffix match.
|
||||
# JAR:=Jar file to create
|
||||
# MANIFEST:=Optional manifest file template.
|
||||
# JARMAIN:=Optional main class to add to manifest
|
||||
# JARINDEX :=
|
||||
# SKIP_METAINF:=Set to prevent contents of an META-INF directory to be automatically
|
||||
# added to the archive.
|
||||
# EXTRA_MANIFEST_ATTR:=Extra attribute to add to manifest.
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
$(if $(10),$1_$(strip $(10)))
|
||||
$(if $(11),$1_$(strip $(11)))
|
||||
$(if $(12),$1_$(strip $(12)))
|
||||
$(if $(13),$1_$(strip $(13)))
|
||||
$(if $(14),$1_$(strip $(14)))
|
||||
$(if $(15),$1_$(strip $(15)))
|
||||
|
||||
$1_JARMAIN:=$(strip $$($1_JARMAIN))
|
||||
$1_JARNAME:=$$(notdir $$($1_JAR))
|
||||
$1_MANIFEST_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_manifest
|
||||
$1_DELETESS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletess
|
||||
$1_DELETES_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_deletes
|
||||
$1_PUBAPI_NOTIFICATIONS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_pubapi_notifications
|
||||
$1_NATIVEAPI_NOTIFICATIONS_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_native_notifications
|
||||
$1_NATIVEAPI_FILE:=$$(dir $$($1_JAR))_the.$$($1_JARNAME)_native
|
||||
$1_BIN:=$$(dir $$($1_JAR))
|
||||
|
||||
ifeq (,$$($1_SUFFIXES))
|
||||
# No suffix was set, default to classes.
|
||||
$1_SUFFIXES:=.class
|
||||
endif
|
||||
# Convert suffixes to a find expression
|
||||
$1_FIND_PATTERNS:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_SUFFIXES))
|
||||
# On windows, a lot of includes/excludes risk making the command line too long, so
|
||||
# writing the grep patterns to files.
|
||||
ifneq (,$$($1_INCLUDES))
|
||||
$1_GREP_INCLUDE_PATTERNS:=$$(foreach src,$$($1_SRCS),\
|
||||
$$(addprefix $$(src)/,$$($1_INCLUDES)))
|
||||
$$(eval $$(call ListPathsSafelyNow,$1_GREP_INCLUDE_PATTERNS,\n, \
|
||||
>> $$($1_BIN)/_the.$$($1_JARNAME)_include))
|
||||
$1_GREP_INCLUDES:=| $(GREP) -f $$($1_BIN)/_the.$$($1_JARNAME)_include
|
||||
endif
|
||||
ifneq (,$$($1_EXCLUDES)$$($1_EXCLUDE_FILES))
|
||||
$1_GREP_EXCLUDE_PATTERNS:=$$(foreach src,$$($1_SRCS),$$(addprefix $$(src)/,\
|
||||
$$($1_EXCLUDES) $$($1_EXCLUDE_FILES)))
|
||||
$$(eval $$(call ListPathsSafelyNow,$1_GREP_EXCLUDE_PATTERNS,\n, \
|
||||
>> $$($1_BIN)/_the.$$($1_JARNAME)_exclude))
|
||||
$1_GREP_EXCLUDES:=| $(GREP) -v -f $$($1_BIN)/_the.$$($1_JARNAME)_exclude
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_JARINDEX))
|
||||
$1_JARINDEX = (cd $$(dir $$@) && $(JAR) -i $$(notdir $$@))
|
||||
else
|
||||
$1_JARINDEX = true
|
||||
endif
|
||||
# When this macro is run in the same makefile as the java compilation, dependencies are transfered
|
||||
# in make variables. When the macro is run in a different makefile than the java compilation, the
|
||||
# dependencies need to be found in the filesystem.
|
||||
$1_ALL_SRCS:=$$(foreach src,$$($1_SRCS),$$(shell ($(FIND) $$(src) -type f \
|
||||
-a \( $$($1_FIND_PATTERNS) \) $$($1_GREP_INCLUDES) \
|
||||
$$($1_GREP_EXCLUDES) && $(ECHO) $$($1_EXTRA_FILES))))
|
||||
ifeq (,$$($1_SKIP_METAINF))
|
||||
$1_ALL_SRCS+=$$(foreach src,$$($1_SRCS),$$(shell $(FIND) $$(src)/META-INF -type f 2> /dev/null))
|
||||
endif
|
||||
|
||||
|
||||
# Utility macros, to make the shell script receipt somewhat easier to dechipher.
|
||||
|
||||
# The capture contents macro finds all files (matching the patterns, typically
|
||||
# .class and .prp) that are newer than the jar-file, ie the new content to be put into the jar.
|
||||
$1_CAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS),(($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) -a -newer $$@ $$($1_GREP_INCLUDES) $$($1_GREP_EXCLUDES) && $(ECHO) $$($1_EXTRA_FILES)) | $(SED) 's|$$(src)/||g' > $$(src)/_the.$$($1_JARNAME)_contents) && )
|
||||
# The capture metainf macro finds all files below the META-INF directory that are newer than the jar-file.
|
||||
ifeq (,$$($1_SKIP_METAINF))
|
||||
$1_CAPTURE_METAINF =$$(foreach src,$$($1_SRCS),($(FIND) $$(src)/META-INF -type f -a -newer $$@ 2> /dev/null | $(SED) 's|$$(src)/||g' >> $$(src)/_the.$$($1_JARNAME)_contents ) && )
|
||||
endif
|
||||
# The capture deletes macro finds all deleted files and concatenates them. The resulting file
|
||||
# tells us what to remove from the jar-file.
|
||||
$1_CAPTURE_DELETES=$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.deleted -newer $$@ -exec $(SED) 's|$$(src)||g' \{\} >> $$($1_DELETES_FILE) \;) &&)
|
||||
# The capture pubapi notifications scans for pubapi change notifications. If such notifications are
|
||||
# found, then we will build the classes leading up to the jar again, to take into account the new timestamps
|
||||
# on the changed pubapi files.
|
||||
$1_CAPTURE_PUBAPI_NOTIFICATIONS=$$(foreach src,$$($1_SRCS),\
|
||||
(cd $$(src) && \
|
||||
$(FIND) . -name _the.package.api.notify -exec dirname \{\} \; >> $$($1_PUBAPI_NOTIFICATIONS_FILE) ; \
|
||||
true) &&)
|
||||
# The update contents macro updates the jar file with the previously capture contents.
|
||||
$1_UPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\
|
||||
(cd $$(src) && \
|
||||
if [ -s _the.$$($1_JARNAME)_contents ]; then \
|
||||
$(ECHO) " updating" `$(WC) -l _the.$$($1_JARNAME)_contents | $(AWK) '{ print $$$$1 }'` files && \
|
||||
$(JAR) uf $$@ @_the.$$($1_JARNAME)_contents; \
|
||||
fi) &&)
|
||||
# The s-variants of the above macros are used when the jar is created from scratch.
|
||||
$1_SCAPTURE_CONTENTS=$$(foreach src,$$($1_SRCS),\
|
||||
(($(FIND) $$(src) -type f -a \( $$($1_FIND_PATTERNS) \) $$($1_GREP_INCLUDES) \
|
||||
$$($1_GREP_EXCLUDES) && $(ECHO) $$($1_EXTRA_FILES)) | $(SED) 's|$$(src)/||g' > \
|
||||
$$(src)/_the.$$($1_JARNAME)_contents) && )
|
||||
|
||||
ifeq (,$$($1_SKIP_METAINF))
|
||||
$1_SCAPTURE_METAINF=$$(foreach src,$$($1_SRCS),\
|
||||
($(FIND) $$(src)/META-INF -type f 2> /dev/null | $(SED) 's|$$(src)/||g' >> \
|
||||
$$(src)/_the.$$($1_JARNAME)_contents) && )
|
||||
endif
|
||||
$1_SUPDATE_CONTENTS=$$(foreach src,$$($1_SRCS),\
|
||||
(cd $$(src) && $(JAR) uf $$@ @$$(src)/_the.$$($1_JARNAME)_contents) &&)
|
||||
|
||||
# The TOUCH macro is used to make sure all timestamps are identical for package files and the pubapi files.
|
||||
# If we do not do this, we get random recompilations, the next time we run make, since the order of package building is random,
|
||||
# ie independent of package --dependes on-> public api of another package. This is of course
|
||||
# due to the fact that Java source often (always?) has circular dependencies. (Thus there is no correct order
|
||||
# to compile packages, and we can just as well do them in a random order. Which we do.)
|
||||
$1_TOUCH_API_FILES=$$(foreach src,$$($1_SRCS),\
|
||||
($(FIND) $$(src) -name _the.package.api -exec $(TOUCH) -r $$($1_JAR) \{\} \; ; true) && \
|
||||
($(FIND) $$(src) -name _the.package -exec $(TOUCH) -r $$($1_JAR) \{\} \; ; true) &&)
|
||||
# Use a slightly shorter name for logging, but with enough path to identify this jar.
|
||||
$1_NAME:=$$(subst $$(OUTPUT_ROOT)/,,$$($1_JAR))
|
||||
# Here is the rule that creates/updates the jar file.
|
||||
$$($1_JAR) : $2 $$($1_ALL_SRC)
|
||||
$(MKDIR) -p $$($1_BIN)
|
||||
if [ -n "$$($1_MANIFEST)" ]; then \
|
||||
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
|
||||
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $$($1_MANIFEST) > $$($1_MANIFEST_FILE); \
|
||||
else \
|
||||
$(RM) $$($1_MANIFEST_FILE) && $(TOUCH) $$($1_MANIFEST_FILE); \
|
||||
fi
|
||||
if [ -n "$$(strip $$($1_JARMAIN))" ]; then \
|
||||
$(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE); \
|
||||
fi
|
||||
if [ -n "$$($1_EXTRA_MANIFEST_ATTR)" ]; then \
|
||||
$(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE); \
|
||||
fi
|
||||
+if [ -s $$@ ]; then \
|
||||
$(RM) -r $$($1_PUBAPI_NOTIFICATIONS_FILE) && \
|
||||
$$($1_CAPTURE_PUBAPI_NOTIFICATIONS) \
|
||||
if [ -s $$($1_PUBAPI_NOTIFICATIONS_FILE) ]; then \
|
||||
$(ECHO) Public api change detected in: && \
|
||||
$(CAT) $$($1_PUBAPI_NOTIFICATIONS_FILE) | $(TR) '/' '.' | $(SED) 's|^..||g' | $(SED) 's|\.$$$$||g' | $(AWK) '{print " "$$$$1}' && \
|
||||
$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.api.notify $(FIND_DELETE); true) &&) \
|
||||
$(MAKE) -f $(word 1,$(MAKEFILE_LIST)) $$($1_JAR) ; \
|
||||
else \
|
||||
$(ECHO) Modifying $$($1_NAME) && \
|
||||
$$($1_CAPTURE_CONTENTS) \
|
||||
$$($1_CAPTURE_METAINF) \
|
||||
$(RM) $$($1_DELETES_FILE) && \
|
||||
$$($1_CAPTURE_DELETES) \
|
||||
$(CAT) $$($1_DELETES_FILE) > $$($1_DELETESS_FILE) && \
|
||||
if [ -s $$($1_DELETESS_FILE) ]; then \
|
||||
$(ECHO) " deleting" `$(WC) -l $$($1_DELETESS_FILE) | $(AWK) '{ print $$$$1 }'` files && \
|
||||
$(ZIP) -q -d $$@ `$(CAT) $$($1_DELETESS_FILE)` ; \
|
||||
fi && \
|
||||
$$($1_UPDATE_CONTENTS) true && \
|
||||
$$($1_JARINDEX) && \
|
||||
$$($1_TOUCH_API_FILES) true && \
|
||||
$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name _the.package.api.notify $(FIND_DELETE); true) &&) true ; \
|
||||
fi ; \
|
||||
else \
|
||||
$(ECHO) Creating $$($1_NAME) && $(JAR) cfm $$@ $$($1_MANIFEST_FILE) && \
|
||||
$$($1_SCAPTURE_CONTENTS) \
|
||||
$$($1_SCAPTURE_METAINF) \
|
||||
$$($1_SUPDATE_CONTENTS) \
|
||||
$$($1_JARINDEX) && \
|
||||
$$($1_TOUCH_API_FILES) true && \
|
||||
$(RM) -r $$($1_NATIVEAPI_NOTIFICATIONS_FILE) $$($1_NATIVEAPI_FILE) && \
|
||||
$$(foreach src,$$($1_SRCS),($(FIND) $$(src) -name "*.notify" $(FIND_DELETE); true) &&) true ; \
|
||||
fi;
|
||||
|
||||
endef
|
||||
|
||||
define append_to
|
||||
$(ECHO) "$1" >> $2
|
||||
endef
|
||||
|
||||
define SetupZipArchive
|
||||
# param 1 is for example ZIP_MYSOURCE
|
||||
# param 2,3,4,5,6,7,8,9 are named args.
|
||||
# SRC,ZIP,INCLUDES,EXCLUDES,EXCLUDE_FILES,SUFFIXES,EXTRA_DEPS
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
|
||||
# Find all files in the source tree.
|
||||
$1_SUFFIX_FILTER := $$(patsubst %,-o -name $(DQUOTE)*%$(DQUOTE),$$($1_SUFFIXES))
|
||||
$1_ALL_SRCS := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i -type f -a ! -name "_the.*" \( -name FALSE_DUMMY $$($1_SUFFIX_FILTER) \) ))
|
||||
|
||||
ifneq ($$($1_INCLUDES),)
|
||||
$1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
|
||||
ifneq ($$($1_SUFFIXES),)
|
||||
$1_ZIP_INCLUDES := $$(foreach s,$$($1_SUFFIXES),\
|
||||
$$(addprefix -i$(SPACE)$(DQUOTE),$$(addsuffix /*$$s$(DQUOTE),$$($1_INCLUDES))))
|
||||
else
|
||||
$1_ZIP_INCLUDES := $$(addprefix -i$(SPACE)$(DQUOTE),$$(addsuffix /*$(DQUOTE),$$($1_INCLUDES)))
|
||||
endif
|
||||
$1_ALL_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_SRCS))
|
||||
endif
|
||||
ifneq ($$($1_EXCLUDES),)
|
||||
$1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
|
||||
$1_ZIP_EXCLUDES := $$(addprefix -x$(SPACE)$(DQUOTE),$$(addsuffix /*$(DQUOTE),$$($1_EXCLUDES)))
|
||||
$1_ALL_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
|
||||
endif
|
||||
|
||||
# Use a slightly shorter name for logging, but with enough path to identify this zip.
|
||||
$1_NAME:=$$(subst $$(OUTPUT_ROOT)/,,$$($1_ZIP))
|
||||
|
||||
# Now $1_ALL_SRCS should contain all sources that are going to be put into the zip.
|
||||
# I.e. the zip -i and -x options should match the filtering done in the makefile.
|
||||
# Explicitly excluded files can be given with absolute path. The patsubst solution
|
||||
# isn't perfect but the likelyhood of an absolute path to match something in a src
|
||||
# dir is very small.
|
||||
$$($1_ZIP) : $$($1_ALL_SRCS) $$($1_EXTRA_DEPS)
|
||||
$(MKDIR) -p $$(@D)
|
||||
$(ECHO) Updating $$($1_NAME)
|
||||
$$(foreach i,$$($1_SRC),(cd $$i && $(ZIP) -qru $$@ . $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* $$(addprefix -x$(SPACE),$$(patsubst $$i/%,%,$$($1_EXCLUDE_FILES)))) ;) true
|
||||
$(TOUCH) $$@
|
||||
endef
|
||||
|
||||
define add_file_to_copy
|
||||
# param 1 = BUILD_MYPACKAGE
|
||||
# parma 2 = The source file to copy.
|
||||
$2_TARGET:=$2
|
||||
# Remove the source prefix.
|
||||
$$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET)))
|
||||
# Now we can setup the depency that will trigger the copying.
|
||||
$$($1_BIN)$$($2_TARGET) : $2
|
||||
$(MKDIR) -p $$(@D)
|
||||
$(CP) $$< $$@
|
||||
$(CHMOD) -f ug+w $$@
|
||||
|
||||
# And do not forget this target
|
||||
$1_ALL_COPY_TARGETS += $$($1_BIN)$$($2_TARGET)
|
||||
endef
|
||||
|
||||
|
||||
# This macro is used only for properties files that are to be
|
||||
# copied over to the classes directory in cleaned form:
|
||||
# Previously this was inconsistently done in different repositories.
|
||||
# This is the new clean standard.
|
||||
define add_file_to_copy_and_clean
|
||||
# param 1 = BUILD_MYPACKAGE
|
||||
# parma 2 = The source file to copy and clean.
|
||||
$2_TARGET:=$2
|
||||
# Remove the source prefix.
|
||||
$$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$2_TARGET)))
|
||||
# Now we can setup the depency that will trigger the copying.
|
||||
$$($1_BIN)$$($2_TARGET) : $2
|
||||
$(MKDIR) -p $$(@D)
|
||||
$(ECHO) Cleaning $$($2_TARGET)
|
||||
$(CAT) $$< | $(SED) -e 's/\([^\\]\):/\1\\:/g' -e 's/\([^\\]\)=/\1\\=/g' -e 's/#.*/#/g' \
|
||||
| $(SED) \
|
||||
-e 's/\\u0020/\x20/g' \
|
||||
-e 's/\\u003A/\x3A/g' \
|
||||
-e 's/\\u006B/\x6B/g' \
|
||||
-e 's/\\u0075/\x75/g' \
|
||||
-e 's/\\u00A0/\xA0/g' \
|
||||
-e 's/\\u00A3/\xA3/g' \
|
||||
-e 's/\\u00B0/\xB0/g' \
|
||||
-e 's/\\u00B7/\xB7/g' \
|
||||
-e 's/\\u00BA/\xBA/g' \
|
||||
-e 's/\\u00BF/\xBF/g' \
|
||||
-e 's/\\u00C0/\xC0/g' \
|
||||
-e 's/\\u00C1/\xC1/g' \
|
||||
-e 's/\\u00C2/\xC2/g' \
|
||||
-e 's/\\u00C4/\xC4/g' \
|
||||
-e 's/\\u00C5/\xC5/g' \
|
||||
-e 's/\\u00C8/\xC8/g' \
|
||||
-e 's/\\u00C9/\xC9/g' \
|
||||
-e 's/\\u00CA/\xCA/g' \
|
||||
-e 's/\\u00CD/\xCD/g' \
|
||||
-e 's/\\u00CE/\xCE/g' \
|
||||
-e 's/\\u00D3/\xD3/g' \
|
||||
-e 's/\\u00D4/\xD4/g' \
|
||||
-e 's/\\u00D6/\xD6/g' \
|
||||
-e 's/\\u00DA/\xDA/g' \
|
||||
-e 's/\\u00DC/\xDC/g' \
|
||||
-e 's/\\u00DD/\xDD/g' \
|
||||
-e 's/\\u00DF/\xDF/g' \
|
||||
-e 's/\\u00E0/\xE0/g' \
|
||||
-e 's/\\u00E1/\xE1/g' \
|
||||
-e 's/\\u00E2/\xE2/g' \
|
||||
-e 's/\\u00E3/\xE3/g' \
|
||||
-e 's/\\u00E4/\xE4/g' \
|
||||
-e 's/\\u00E5/\xE5/g' \
|
||||
-e 's/\\u00E6/\xE6/g' \
|
||||
-e 's/\\u00E7/\xE7/g' \
|
||||
-e 's/\\u00E8/\xE8/g' \
|
||||
-e 's/\\u00E9/\xE9/g' \
|
||||
-e 's/\\u00EA/\xEA/g' \
|
||||
-e 's/\\u00EB/\xEB/g' \
|
||||
-e 's/\\u00EC/\xEC/g' \
|
||||
-e 's/\\u00ED/\xED/g' \
|
||||
-e 's/\\u00EE/\xEE/g' \
|
||||
-e 's/\\u00EF/\xEF/g' \
|
||||
-e 's/\\u00F1/\xF1/g' \
|
||||
-e 's/\\u00F2/\xF2/g' \
|
||||
-e 's/\\u00F3/\xF3/g' \
|
||||
-e 's/\\u00F4/\xF4/g' \
|
||||
-e 's/\\u00F5/\xF5/g' \
|
||||
-e 's/\\u00F6/\xF6/g' \
|
||||
-e 's/\\u00F9/\xF9/g' \
|
||||
-e 's/\\u00FA/\xFA/g' \
|
||||
-e 's/\\u00FC/\xFC/g' \
|
||||
-e 's/\\u0020/\x20/g' \
|
||||
-e 's/\\u003f/\x3f/g' \
|
||||
-e 's/\\u006f/\x6f/g' \
|
||||
-e 's/\\u0075/\x75/g' \
|
||||
-e 's/\\u00a0/\xa0/g' \
|
||||
-e 's/\\u00a3/\xa3/g' \
|
||||
-e 's/\\u00b0/\xb0/g' \
|
||||
-e 's/\\u00ba/\xba/g' \
|
||||
-e 's/\\u00bf/\xbf/g' \
|
||||
-e 's/\\u00c1/\xc1/g' \
|
||||
-e 's/\\u00c4/\xc4/g' \
|
||||
-e 's/\\u00c5/\xc5/g' \
|
||||
-e 's/\\u00c8/\xc8/g' \
|
||||
-e 's/\\u00c9/\xc9/g' \
|
||||
-e 's/\\u00ca/\xca/g' \
|
||||
-e 's/\\u00cd/\xcd/g' \
|
||||
-e 's/\\u00d6/\xd6/g' \
|
||||
-e 's/\\u00dc/\xdc/g' \
|
||||
-e 's/\\u00dd/\xdd/g' \
|
||||
-e 's/\\u00df/\xdf/g' \
|
||||
-e 's/\\u00e0/\xe0/g' \
|
||||
-e 's/\\u00e1/\xe1/g' \
|
||||
-e 's/\\u00e2/\xe2/g' \
|
||||
-e 's/\\u00e3/\xe3/g' \
|
||||
-e 's/\\u00e4/\xe4/g' \
|
||||
-e 's/\\u00e5/\xe5/g' \
|
||||
-e 's/\\u00e7/\xe7/g' \
|
||||
-e 's/\\u00e8/\xe8/g' \
|
||||
-e 's/\\u00e9/\xe9/g' \
|
||||
-e 's/\\u00ea/\xea/g' \
|
||||
-e 's/\\u00eb/\xeb/g' \
|
||||
-e 's/\\u00ec/\xec/g' \
|
||||
-e 's/\\u00ed/\xed/g' \
|
||||
-e 's/\\u00ee/\xee/g' \
|
||||
-e 's/\\u00ef/\xef/g' \
|
||||
-e 's/\\u00f0/\xf0/g' \
|
||||
-e 's/\\u00f1/\xf1/g' \
|
||||
-e 's/\\u00f2/\xf2/g' \
|
||||
-e 's/\\u00f3/\xf3/g' \
|
||||
-e 's/\\u00f4/\xf4/g' \
|
||||
-e 's/\\u00f5/\xf5/g' \
|
||||
-e 's/\\u00f6/\xf6/g' \
|
||||
-e 's/\\u00f7/\xf7/g' \
|
||||
-e 's/\\u00f8/\xf8/g' \
|
||||
-e 's/\\u00f9/\xf9/g' \
|
||||
-e 's/\\u00fa/\xfa/g' \
|
||||
-e 's/\\u00fc/\xfc/g' \
|
||||
-e 's/\\u00ff/\xff/g' \
|
||||
| $(SED) -e '/^#/d' -e '/^$$$$/d' \
|
||||
-e :a -e '/\\$$$$/N; s/\\\n//; ta' \
|
||||
-e 's/^[ \t]*//;s/[ \t]*$$$$//' \
|
||||
-e 's/\\=/=/' | LANG=C $(SORT) > $$@
|
||||
$(CHMOD) -f ug+w $$@
|
||||
|
||||
# And do not forget this target
|
||||
$1_ALL_COPY_CLEAN_TARGETS += $$($1_BIN)$$($2_TARGET)
|
||||
endef
|
||||
|
||||
define add_java_package
|
||||
# param 1 = BUILD_MYPACKAGE
|
||||
# param 2 = the package target file (_the.package)
|
||||
# param 3 = src roots, all of them, separated with space
|
||||
# param 4 = bin root
|
||||
# param 5 = include these dependecies
|
||||
# param 6 = not used
|
||||
# param 7 = if non-empty, then use -Xdeps and -Xpubapi
|
||||
# param 8 = xremote configuration, or empty.
|
||||
# param 9 = javac command
|
||||
# param 10 = javac flags
|
||||
# param 11 = exclude these files!
|
||||
# param 12 = only include these files!
|
||||
# param 13 = javah command
|
||||
# param 14 = override src roots to be passed into -sourcepath, ugly ugly ugly, do not use this!
|
||||
# it is only here to workaround ugly things in the source code in the jdk that ought
|
||||
# to be fixed instead!
|
||||
ifdef $2_USED_BY
|
||||
$$(error Attempting to add the package $2 from $3 which is already added with sources from $$($2_USED_BY))
|
||||
endif
|
||||
$2_USED_BY:=$3
|
||||
# Remove the _the.package file to get the target bin dir for the classes in this package.
|
||||
$2_PACKAGE_BDIR:=$(dir $2)
|
||||
# The source roots separated with a path separator (: or ; depending on os)
|
||||
# (The patsubst is necessary to trim away unnecessary spaces.)
|
||||
ifneq ($(14),)
|
||||
$2_SRCROOTSC:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$(14))))
|
||||
else
|
||||
$2_SRCROOTSC:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$3)))
|
||||
endif
|
||||
# Suffix the package path to the src roots, to get a list of all possible source locations
|
||||
# for this package.
|
||||
$2_PACKAGE_SDIRS:=$$(foreach i,$3,$$(subst $4,$$i,$$($2_PACKAGE_BDIR)))
|
||||
# Use wildcard in all potential source locations to find the actual sources.
|
||||
$2_PACKAGE_SRCS:=$$(filter-out $(11),$$(wildcard $$(addsuffix *.java,$$($2_PACKAGE_SDIRS))))
|
||||
ifneq ($(12),)
|
||||
# Filter on include file filter if set.
|
||||
$2_PACKAGE_SRCS:=$$(filter $(12),$$($2_PACKAGE_SRCS))
|
||||
endif
|
||||
# Generate a proper package name from the file name.
|
||||
$2_PACKAGE:=$(patsubst .%.,%,$(subst /,.,$(subst $4,,$(dir $2))))
|
||||
# Use a javac server for this package?
|
||||
$2_REMOTE:=$8
|
||||
|
||||
# Include previously generated information about what classes are output by this package
|
||||
# and what sources were used for the compile.
|
||||
-include $$($2_PACKAGE_BDIR)_the.package.d
|
||||
|
||||
# Include the notify, file, that exists if the package has been compiled during a previous make round.
|
||||
# I.e. we are now dealing with a compile triggered by a pubapi change.
|
||||
-include $$($2_PACKAGE_BDIR)_the.package.notify
|
||||
|
||||
# If the notify file existed, then $$($2_NOTIFIED) will be equal to true.
|
||||
# Use this information to block dependency tracking for this package.
|
||||
# This is necessary to cut the circular dependency chains that are so common in Java sources.
|
||||
|
||||
ifneq ($$($2_NOTIFIED),true)
|
||||
# No need to block, since this package has not yet been recompiled.
|
||||
# Thus include previously generated dependency information. (if it exists)
|
||||
-include $$($2_PACKAGE_BDIR)_the.package.dddd
|
||||
# else
|
||||
# $$(info WAS NOTIFIED $2)
|
||||
endif
|
||||
|
||||
# Should we create proper dependencies between packages?
|
||||
ifneq ($7,)
|
||||
# The flag: -XDpubapi:file=foo,package=mypack,notify writes a file foo that contains a
|
||||
# database of the public api of the classes supplied on the command line and are
|
||||
# inside the package mypack. If foo already exists, javac will only write to foo,
|
||||
# if there is a change in the pubapi. I.e. we can use the timestamp of this file
|
||||
# for triggering dependencies. "notify" means create a "file" suffixed with notify
|
||||
# if the pubapi really changed.
|
||||
$2_PUBAPI=-XDpubapi=file=$$($2_PACKAGE_BDIR)_the.package.api,notify,package=$$($2_PACKAGE)
|
||||
# The flag: -XDnativeapi:file=foo,package=mypack,notify works similar to pubabi, but
|
||||
# instead tracks native methods. This file can be used to trigger dependencies for
|
||||
# native compilations.
|
||||
$2_NATIVEAPI=-XDnativeapi=file=$$($2_PACKAGE_BDIR)_the.package.native,notify,package=$$($2_PACKAGE)
|
||||
# The flag -XDdeps:file=foo.deps,groupon=package writes a foo.deps file containing packages dependencies:
|
||||
# java.net : java.io java.lang
|
||||
# I.e. the classes in .net depend on the public apis of java.io and java.lang
|
||||
# The dependencies can be grouped on classes instead (groupon=class)
|
||||
# java.net.Bar : java.io.Socket java.lang.String
|
||||
$2_DEPS:=-XDdeps=file=$$($2_PACKAGE_BDIR)_the.package.deps,groupon=package
|
||||
# The next command rewrites the deps output from javac into a proper makefile dependency.
|
||||
# The dependencies are always to an .api file generated by the pubapi option above.
|
||||
# This is necessary since java package dependencies are almost always circular.
|
||||
$2_APPEND_DEPS:=($(CAT) $$($2_PACKAGE_BDIR)_the.package.deps | $(TR) '.' '/' | $(AWK) '{ print "$4/" $$$$3 }' | sort > $$($2_PACKAGE_BDIR)_the.package.ddd && $(GREP) -f $$($2_PACKAGE_BDIR)_the.package.ddd $5 | $(AWK) '{ print "$(dir $2)_the.package : " $$$$1 "_the.package.api" }' > $$($2_PACKAGE_BDIR)_the.package.dddd ; true)
|
||||
else
|
||||
# If not using dependencies, use $2 as fallback to trigger regeneration of javah header files.
|
||||
# This will generate a surplus of header files, but this does not hurt compilation.
|
||||
$2_NATIVEAPICHANGE_TRIGGER:=$2
|
||||
$2_FETCH_NATIVEAPICHANGE_CLASSES:=$(CAT) $$($2_PACKAGE_BDIR)_the.package.now|$(GREP) -v '\$$$$'|$(SED) -e 's|$4/||g'|$(SED) 's|.class||g'| $(TR) '/' '.'
|
||||
endif
|
||||
|
||||
# The _the.package file is dependent on the java files inside the package.
|
||||
# Fill the _the.package file with a list of the java files and compile them
|
||||
# to class files.
|
||||
$2 : $$($2_PACKAGE_SRCS)
|
||||
$(MKDIR) -p $$($2_PACKAGE_BDIR)
|
||||
$(RM) $2.tmp
|
||||
$$(call ListPathsSafely,$2_PACKAGE_SRCS,\n, >> $2.tmp)
|
||||
$(ECHO) $$($2_PACKAGE_BDIR)*.class | $(GREP) -v \*.class | $(TR) ' ' '\n' > $$($2_PACKAGE_BDIR)_the.package.prev
|
||||
$(RM) $$($2_PACKAGE_BDIR)*.class $$($2_PACKAGE_BDIR)*.notify $$($2_PACKAGE_BDIR)*.deleted
|
||||
$(ECHO) Compiling `$(WC) $2.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files in package $(patsubst $4/%/,%,$(dir $2.tmp))
|
||||
$9 $$($2_REMOTE) $$($2_DEPS) $$($2_PUBAPI) $$($2_NATIVEAPI) $(10) -implicit:none -sourcepath "$$($2_SRCROOTSC)" -d $4 @$2.tmp
|
||||
$(ECHO) $$($2_PACKAGE_BDIR)*.class | $(GREP) -v \*.class | $(TR) ' ' '\n' > $$($2_PACKAGE_BDIR)_the.package.now
|
||||
($(GREP) -xvf $$($2_PACKAGE_BDIR)_the.package.now $$($2_PACKAGE_BDIR)_the.package.prev > $$($2_PACKAGE_BDIR)_the.package.deleted;true)
|
||||
$(ECHO) $1_CLASSES += `$(CAT) $$($2_PACKAGE_BDIR)_the.package.now` | \
|
||||
$(SED) 's/\$$$$/\$$$$\$$$$/g' > $$($2_PACKAGE_BDIR)_the.package.d
|
||||
$(ECHO) $1_JAVAS += $$($2_PACKAGE_SRCS) >> $$($2_PACKAGE_BDIR)_the.package.d
|
||||
$(ECHO) $2_NOTIFIED:=true > $$($2_PACKAGE_BDIR)_the.package.notify
|
||||
$$($2_APPEND_DEPS)
|
||||
$$($2_COPY_FILES)
|
||||
$(MV) -f $2.tmp $2
|
||||
endef
|
||||
|
||||
define remove_string
|
||||
$2 := $$(subst $1,,$$($2))
|
||||
endef
|
||||
|
||||
define replace_space_with_pathsep
|
||||
$1:=$(subst $(SPACE),$(PATH_SEP),$(strip $(patsubst %,%,$2)))
|
||||
endef
|
||||
|
||||
define SetupJavaCompilation
|
||||
# param 1 is for example BUILD_MYPACKAGE
|
||||
# param 2,3,4,5,6,7,8 are named args.
|
||||
# SETUP:=must point to a previously setup java compiler, for example: SETUP:=BOOTJAVAC
|
||||
# JVM:=path to ..bin/java
|
||||
# ADD_JAVAC_FLAGS:=javac flags to append to the default ones.
|
||||
# SRC:=one or more directories to search for sources
|
||||
# BIN:=store classes here
|
||||
# INCLUDES:=myapp.foo means will only compile java files in myapp.foo or any of its sub-packages.
|
||||
# EXCLUDES:=myapp.foo means will do not compile java files in myapp.foo or any of its sub-packages.
|
||||
# COPY:=.prp means copy all prp files to the corresponding package in BIN.
|
||||
# CLEAN:=.properties means copy and clean all properties file to the corresponding package in BIN.
|
||||
# COPY_FILES:=myapp/foo/setting.txt means copy this file over to the package myapp/foo
|
||||
# SRCZIP:=Create a src.zip based on the found sources and copied files.
|
||||
# INCLUDE_FILES:="com/sun/SolarisFoobar.java" means only compile this file!
|
||||
# EXCLUDE_FILES:="com/sun/SolarisFoobar.java" means do not compile this particular file!
|
||||
# "SolarisFoobar.java" means do not compile SolarisFoobar, wherever it is found.
|
||||
# JAVAC_SOURCE_PATH_UGLY_OVERRIDE:=Don't use this. This forces an explicit -sourcepath to javac.
|
||||
# Its only here until we cleanup some nasty source code pasta in the jdk.
|
||||
# HEADERS:=path to directory where all generated c-headers are written.
|
||||
# DEPENDS:=Extra dependecy
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
$(if $(10),$1_$(strip $(10)))
|
||||
$(if $(11),$1_$(strip $(11)))
|
||||
$(if $(12),$1_$(strip $(12)))
|
||||
$(if $(13),$1_$(strip $(13)))
|
||||
$(if $(14),$1_$(strip $(14)))
|
||||
|
||||
# Extract the info from the java compiler setup.
|
||||
$1_MODE := $$($$($1_SETUP)_MODE)
|
||||
ifneq (SINGLE_THREADED_BATCH,$$($1_MODE))
|
||||
ifneq (MULTI_CORE_CONCURRENT,$$($1_MODE))
|
||||
$$(error The Java compilation $1 refers to a non-existant java compiler setup $$($1_SETUP))
|
||||
endif
|
||||
endif
|
||||
$1_USE_DEPS := $$($$($1_SETUP)_USE_DEPS)
|
||||
$1_REMOTE := $$($$($1_SETUP)_REMOTE)
|
||||
$1_JVM := $$($$($1_SETUP)_JVM)
|
||||
$1_JAVAC := $$($$($1_SETUP)_JAVAC)
|
||||
$1_JAVAH := $$($$($1_SETUP)_JAVAH)
|
||||
$1_FLAGS := $$($$($1_SETUP)_FLAGS) $(JAVAC_FLAGS) $$($1_ADD_JAVAC_FLAGS)
|
||||
|
||||
# Handle addons and overrides.
|
||||
$1_SRC:=$$(call ADD_SRCS,$$($1_SRC))
|
||||
# Make sure the dirs exist.
|
||||
$$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN))
|
||||
# Find all files in the source trees.
|
||||
$1_ALL_SRCS := $$(filter-out $(OVR_SRCS),$$(foreach i,$$($1_SRC),$$(shell $(FIND) $$i -type f)))
|
||||
# Extract the java files.
|
||||
ifneq ($$($1_EXCLUDE_FILES),)
|
||||
$1_EXCLUDE_FILES_PATTERN:=$$(addprefix %,$$($1_EXCLUDE_FILES))
|
||||
endif
|
||||
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$(filter %.java,$$($1_ALL_SRCS)))
|
||||
ifneq ($$($1_INCLUDE_FILES),)
|
||||
$1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
|
||||
$1_SRCS := $$(filter $$($1_INCLUDE_FILES), $$($1_SRCS))
|
||||
endif
|
||||
$1_PKGS := $$(sort $$(dir $$($1_SRCS)))
|
||||
# Remove the source root from each found path.
|
||||
$$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$1_PKGS)))
|
||||
$1_PKGS := $$(sort $$($1_PKGS))
|
||||
# There can be only a single bin dir root, no need to foreach over the roots.
|
||||
$1_BINS := $$(shell $(FIND) $$($1_BIN) -name "*.class")
|
||||
|
||||
# Now we have a list of all java files to compile: $$($1_SRCS)
|
||||
# and we have a list of all existing class files: $$($1_BINS)
|
||||
|
||||
# Prepend the source/bin path to the filter expressions.
|
||||
ifneq ($$($1_INCLUDES),)
|
||||
$1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
|
||||
$1_PKG_INCLUDES := $$(addprefix /,$$(addsuffix /%,$$($1_INCLUDES)))
|
||||
$1_BIN_INCLUDES := $$(addprefix $$($1_BIN)/,$$(addsuffix /%,$$($1_INCLUDES)))
|
||||
$1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
|
||||
$1_PKGS := $$(filter $$($1_PKG_INCLUDES),$$($1_PKGS))
|
||||
$1_BINS := $$(filter $$($1_BIN_INCLUDES),$$($1_BINS))
|
||||
endif
|
||||
ifneq ($$($1_EXCLUDES),)
|
||||
$1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
|
||||
$1_PKG_EXCLUDES := $$(addprefix /,$$(addsuffix /%,$$($1_EXCLUDES)))
|
||||
$1_BIN_EXCLUDES := $$(addprefix $$($1_BIN)/,$$(addsuffix /%,$$($1_EXCLUDES)))
|
||||
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
|
||||
$1_PKGS := $$(filter-out $$($1_PKG_EXCLUDES),$$($1_PKGS))
|
||||
$1_BINS := $$(filter-out $$($1_BIN_EXCLUDES),$$($1_BINS))
|
||||
endif
|
||||
|
||||
# Find all files to be copied from source to bin.
|
||||
ifneq (,$$($1_COPY))
|
||||
# Rewrite list of patterns into a find statement.
|
||||
$1_COPY_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_COPY))
|
||||
# Search for all files to be copied.
|
||||
$1_ALL_COPIES := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i \( $$($1_COPY_PATTERN) \) -a -type f))
|
||||
# Copy these explicitly
|
||||
$1_ALL_COPIES += $$($1_COPY_FILES)
|
||||
# Copy must also respect filters.
|
||||
ifneq (,$$($1_INCLUDES))
|
||||
$1_ALL_COPIES := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_COPIES))
|
||||
endif
|
||||
ifneq (,$$($1_EXCLUDES))
|
||||
$1_ALL_COPIES := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_COPIES))
|
||||
endif
|
||||
ifneq (,$$($1_EXCLUDE_FILES))
|
||||
$1_ALL_COPIES := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_COPIES))
|
||||
endif
|
||||
# All files below META-INF are always copied.
|
||||
$1_ALL_COPIES += $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i/META-INF -type f 2> /dev/null))
|
||||
ifneq (,$$($1_ALL_COPIES))
|
||||
# Yep, there are files to be copied!
|
||||
$1_ALL_COPY_TARGETS:=
|
||||
$$(foreach i,$$($1_ALL_COPIES),$$(eval $$(call add_file_to_copy,$1,$$i)))
|
||||
# Now we can depend on $$($1_ALL_COPY_TARGETS) to copy all files!
|
||||
endif
|
||||
endif
|
||||
|
||||
# Find all property files to be copied and cleaned from source to bin.
|
||||
ifneq (,$$($1_CLEAN))
|
||||
# Rewrite list of patterns into a find statement.
|
||||
$1_CLEAN_PATTERN:=$(FALSE_FIND_PATTERN) $$(patsubst %,$(SPACE)-o$(SPACE)-name$(SPACE)$(DQUOTE)*%$(DQUOTE),$$($1_CLEAN))
|
||||
# Search for all files to be copied.
|
||||
$1_ALL_CLEANS := $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i \( $$($1_CLEAN_PATTERN) \) -a -type f))
|
||||
# Copy and clean must also respect filters.
|
||||
ifneq (,$$($1_INCLUDES))
|
||||
$1_ALL_CLEANS := $$(filter $$($1_SRC_INCLUDES),$$($1_ALL_CLEANS))
|
||||
endif
|
||||
ifneq (,$$($1_EXCLUDES))
|
||||
$1_ALL_CLEANS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_ALL_CLEANS))
|
||||
endif
|
||||
ifneq (,$$($1_EXCLUDE_FILES))
|
||||
$1_ALL_CLEANS := $$(filter-out $$($1_EXCLUDE_FILES_PATTERN),$$($1_ALL_CLEANS))
|
||||
endif
|
||||
ifneq (,$$($1_ALL_CLEANS))
|
||||
# Yep, there are files to be copied and cleaned!
|
||||
$1_ALL_COPY_CLEAN_TARGETS:=
|
||||
$$(foreach i,$$($1_ALL_CLEANS),$$(eval $$(call add_file_to_copy_and_clean,$1,$$i)))
|
||||
# Now we can depend on $$($1_ALL_COPY_CLEAN_TARGETS) to copy all files!
|
||||
endif
|
||||
endif
|
||||
|
||||
# Find all the directories that contain java sources, each directory
|
||||
# corresponds to a package because we expect the source
|
||||
# code to be organized in this standardized way!
|
||||
$1_SDIRS := $$(sort $$(dir $$($1_SRCS)))
|
||||
# Now prefix each package with the bin root.
|
||||
$1_BDIRS := $$(foreach i,$$($1_PKGS),$$(addprefix $$($1_BIN),$$i))
|
||||
# Now create a list of the packages that are about to compile. This list is
|
||||
# later used to filter out dependencies that point outside of this set.
|
||||
$$(shell $(RM) $$($1_BIN)/_the.list_of_packages)
|
||||
$$(eval $$(call ListPathsSafelyNow,$1_BDIRS,\n, >> $$($1_BIN)/_the.list_of_packages))
|
||||
|
||||
ifeq ($$($1_MODE),SINGLE_THREADED_BATCH)
|
||||
# Ok, we will feed all the found java files into a single javac invocation.
|
||||
# There can be no dependency checking, nor incremental builds. It is
|
||||
# the best we can do with the old javac. If the javac supports a javac server
|
||||
# then we can use the javac server.
|
||||
|
||||
# We can depend on this target file to trigger a regeneration of all the sources
|
||||
$1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1_BIN)/_the.batch
|
||||
|
||||
# Prep the source paths.
|
||||
ifneq ($$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE),)
|
||||
$$(eval $$(call replace_space_with_pathsep,$1_SRCROOTSC,$$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE)))
|
||||
else
|
||||
$$(eval $$(call replace_space_with_pathsep,$1_SRCROOTSC,$$($1_SRC)))
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_HEADERS))
|
||||
$1_HEADERS_ARG := -h $$($1_HEADERS)
|
||||
endif
|
||||
|
||||
# Create a sed expression to remove the source roots and to replace / with .
|
||||
# and remove .java at the end.
|
||||
$1_REWRITE_INTO_CLASSES:=$$(foreach i,$$($1_SRC),-e 's|$$i/||g') -e 's|/|.|g' -e 's|.java$$$$||g'
|
||||
|
||||
# Here is the batch rules that depends on all the sources.
|
||||
$$($1_BIN)/_the.batch: $$($1_SRCS) $$($1_DEPENDS)
|
||||
$(MKDIR) -p $$(@D)
|
||||
$(RM) $$($1_BIN)/_the.batch $$($1_BIN)/_the.batch.tmp
|
||||
$$(call ListPathsSafely,$1_SRCS,\n, >> $$($1_BIN)/_the.batch.tmp)
|
||||
$(ECHO) Compiling `$(WC) $$($1_BIN)/_the.batch.tmp | $(TR) -s ' ' | $(CUT) -f 2 -d ' '` files in batch $1
|
||||
($$($1_JVM) $$($1_JAVAC) $$($1_FLAGS) -implicit:none -sourcepath "$$($1_SRCROOTSC)" -d $$($1_BIN) $$($1_HEADERS_ARG) @$$($1_BIN)/_the.batch.tmp && \
|
||||
$(MV) $$($1_BIN)/_the.batch.tmp $$($1_BIN)/_the.batch)
|
||||
else
|
||||
# Ok, we have a modern javac server running!
|
||||
# Since a single Java file can generate zero to an infinity number of .class files
|
||||
# the exact number and names of the .class files will only be known after the compile.
|
||||
# Thus after the compile, a list of the generated classes will be stored in _the.package.d
|
||||
# which is included by the makefile during the next compile. These .d files will
|
||||
# add the generated class names to the BUILD_MYPACKAGE_CLASSES variable and used java file names
|
||||
# to the BUILD_MYPACKAGE_JAVAS variable.
|
||||
$1_CLASSES :=
|
||||
$1_JAVAS :=
|
||||
# Create a file in each package that represents the package dependency.
|
||||
# This file (_the.package) will also contain a list of the source files
|
||||
# to be compiled for this package.
|
||||
$1 := $$(sort $$(patsubst %,%_the.package,$$($1_BDIRS)))
|
||||
# Now call add_java_package for each package to create the dependencies.
|
||||
$$(foreach p,$$($1),$$(eval $$(call add_java_package,$1,$$p,$$($1_SRC),$$($1_BIN),$$($1_BIN)/_the.list_of_packages,NOTUSED,$$($1_USE_DEPS),$$($1_REMOTE),$$($1_JVM) $$($1_JAVAC),$$($1_FLAGS),$$($1_EXCLUDE_FILES_PATTERN) $(OVR_SRCS),$$($1_INCLUDE_FILES),$$($1_JVM) $$($1_JAVAH),$$($1_JAVAC_SOURCE_PATH_UGLY_OVERRIDE))))
|
||||
# All dependencies are setup, now we only need to depend on $1 (aka $(BUILD_MYPACKAGE))
|
||||
# and they will automatically be built!
|
||||
|
||||
# Now add on any files to copy targets
|
||||
$1 := $$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS) $$($1)
|
||||
# Remove the set of found classes from the set of all previously known classes
|
||||
# and the remainder is the set of missing classes.
|
||||
$1_MISSING_CLASSES:=$$(filter-out $$($1_BINS),$$($1_CLASSES))
|
||||
$1_PKGS_MISSING_CLASSES:=$$(sort $$(dir $$($1_MISSING_CLASSES)))
|
||||
# Remove the set of found java files from the set of all previously known java files
|
||||
# the remainder is Java files that have gone missing.
|
||||
$1_MISSING_JAVAS:=$$(filter-out $$($1_SRCS),$$($1_JAVAS))
|
||||
$1_PKGS_MISSING_JAVAS:=$$(sort $$(dir $$($1_MISSING_JAVAS)))
|
||||
# Remove each source root from the found paths.
|
||||
$$(foreach i,$$($1_SRC),$$(eval $$(call remove_string,$$i,$1_PKGS_MISSING_JAVAS)))
|
||||
# Finally remove duplicates and prefix with the binary path instead.
|
||||
$1_PKGS_MISSING_JAVAS:= $$(addprefix $$($1_BIN),$$(sort $$($1_PKGS_MISSING_JAVAS)))
|
||||
|
||||
# Remove the set of all theoretical classes from the set of found classes.
|
||||
# the remainder is the set of superfluous classes.
|
||||
$1_SUPERFLUOUS_CLASSES:=$$(sort $$(filter-out $$($1_CLASSES),$$($1_BINS)))
|
||||
$1_PKGS_SUPERFLUOUS_CLASSES:=$$(sort $$(dir $$($1_SUPERFLUOUS_CLASSES)))
|
||||
|
||||
# Now delete the _the.package files inside the problematic dirs.
|
||||
# This will force a rebuild of these packages!
|
||||
$1_FOO:=$$(sort $$($1_PKGS_MISSING_CLASSES) \
|
||||
$$($1_PKGS_SUPERFLUOUS_CLASSES) \
|
||||
$$($1_PKGS_MISSING_JAVAS))
|
||||
# ifneq (,$$($1_FOO))
|
||||
# $$(info MESSED UP PACKAGES $$($1_FOO))
|
||||
# endif
|
||||
|
||||
$$(shell $(RM) $$(addsuffix _the.package,$$(sort $$($1_PKGS_MISSING_CLASSES) \
|
||||
$$($1_PKGS_SUPERFLUOUS_CLASSES) \
|
||||
$$($1_PKGS_MISSING_JAVAS))))
|
||||
|
||||
# Normal makefile dependencies based on timestamps will detect the normal use case
|
||||
# when Java files are simply added or modified.
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_JAR))
|
||||
|
||||
ifeq (,$$($1_SUFFIXES))
|
||||
$1_SUFFIXES:=.class $$($1_CLEAN) $$($1_COPY)
|
||||
endif
|
||||
|
||||
# A jar file was specified. Set it up.
|
||||
$$(eval $$(call SetupArchive,ARCHIVE_$1,$$($1),\
|
||||
SRCS:=$$($1_BIN),\
|
||||
SUFFIXES:=$$($1_SUFFIXES),\
|
||||
EXCLUDE:=$$($1_EXCLUDES),\
|
||||
INCLUDES:=$$($1_INCLUDES),\
|
||||
EXTRA_FILES:=$$($1_ALL_COPY_TARGETS) $$($1_ALL_COPY_CLEAN_TARGETS),\
|
||||
JAR:=$$($1_JAR),\
|
||||
JARMAIN:=$$($1_JARMAIN),\
|
||||
MANIFEST:=$$($1_MANIFEST),\
|
||||
EXTRA_MANIFEST_ATTR:=$$($1_EXTRA_MANIFEST_ATTR),\
|
||||
JARINDEX:=$$($1_JARINDEX),\
|
||||
HEADERS:=$$($1_HEADERS),\
|
||||
SETUP:=$$($1_SETUP)))
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_SRCZIP))
|
||||
# A srczip file was specified. Set it up.
|
||||
$$(eval $$(call SetupZipArchive,ARCHIVE_$1,\
|
||||
SRC:=$$($1_SRC),\
|
||||
ZIP:=$$($1_SRCZIP),\
|
||||
INCLUDES:=$$($1_INCLUDES),\
|
||||
EXCLUDES:=$$($1_EXCLUDES),\
|
||||
EXCLUDE_FILES:=$$($1_EXCLUDE_FILES)))
|
||||
endif
|
||||
|
||||
endef
|
||||
|
||||
|
||||
396
common/makefiles/MakeBase.gmk
Normal file
396
common/makefiles/MakeBase.gmk
Normal file
@@ -0,0 +1,396 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################
|
||||
#
|
||||
# Check that GNU make and cygwin are recent enough.
|
||||
# Setup common utility functions.
|
||||
#
|
||||
################################################################
|
||||
|
||||
ifndef _MAKEBASE_GMK
|
||||
_MAKEBASE_GMK := 1
|
||||
|
||||
ifeq (,$(findstring 3.81,$(MAKE_VERSION)))
|
||||
ifeq (,$(findstring 3.82,$(MAKE_VERSION)))
|
||||
$(error This version of GNU Make is too low ($(MAKE_VERSION)). Please upgrade to 3.81 or newer.)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(CYGPATH))
|
||||
# Cygwin styff, if needed but most is going to be
|
||||
# done in configure!
|
||||
ifeq (yes,$(CHECK_FOR_VCINSTALLDIR))
|
||||
ifeq (,$(VCINSTALLDIR))
|
||||
$(info Could not find compiler paths!)
|
||||
$(info You probably configured the build from within a)
|
||||
$(info VS command prompt, but you are not using such a)
|
||||
$(info prompt right now.)
|
||||
$(info If you instead run configure from a plain cygwin shell, it)
|
||||
$(info will attempt to setup VS for you! Please try that.)
|
||||
$(error Giving up for now.)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# The build times report is turned off by setting REPORT_BUILD_TIMES to nothing.
|
||||
# This is necessary for the target clean which will erase the
|
||||
# directories where the buildtimes are stored.
|
||||
REPORT_BUILD_TIMES=1
|
||||
# Store the build times in this directory.
|
||||
BUILDTIMESDIR=$(OUTPUT_ROOT)/tmp/buildtimes
|
||||
|
||||
# Record starting time for build of a sub repository.
|
||||
define RecordStartTime
|
||||
$(MKDIR) -p $(BUILDTIMESDIR)
|
||||
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_start_$1
|
||||
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_start_$1_human_readable
|
||||
endef
|
||||
|
||||
# Indicate that we started to build a sub repository and record starting time.
|
||||
define MakeStart
|
||||
$(call RecordStartTime,$1)
|
||||
$(BUILD_LOG_WRAPPER) $(PRINTF) "\n\n%s\n%s\n##### %-60.60s #####\n%s\n\n" \
|
||||
"########################################################################" \
|
||||
"########################################################################" \
|
||||
"Entering $1 for target(s) $2" \
|
||||
"########################################################################"
|
||||
endef
|
||||
|
||||
# Record ending time and calculate the difference and store it in a
|
||||
# easy to read format. Handles builds that cross midnight. Expects
|
||||
# that a build will never take 24 hours or more.
|
||||
define RecordEndTime
|
||||
$(DATE) '+%Y %m %d %H %M %S' | $(NAWK) '{ print $$1,$$2,$$3,$$4,$$5,$$6,($$4*3600+$$5*60+$$6) }' > $(BUILDTIMESDIR)/build_time_end_$1
|
||||
$(DATE) '+%Y-%m-%d %H:%M:%S' > $(BUILDTIMESDIR)/build_time_end_$1_human_readable
|
||||
$(ECHO) `$(CAT) $(BUILDTIMESDIR)/build_time_start_$1` `$(CAT) $(BUILDTIMESDIR)/build_time_end_$1` $1 | \
|
||||
$(NAWK) '{ F=$$7; T=$$14; if (F > T) { T+=3600*24 }; D=T-F; H=int(D/3600); \
|
||||
M=int((D-H*3600)/60); S=D-H*3600-M*60; printf("%02d:%02d:%02d %s\n",H,M,S,$$15); }' \
|
||||
> $(BUILDTIMESDIR)/build_time_diff_$1
|
||||
endef
|
||||
|
||||
# Check if the current target is the final target, as specified by
|
||||
# the user on the command line. If so, call PrintEndMessage.
|
||||
define CheckIfFinished
|
||||
$(if $(filter $@,$(MAKECMDGOALS)),$(call PrintEndMessage))
|
||||
# If no taget is given, "all" is default. Check for that, too.
|
||||
# At most one of the tests can be true.
|
||||
$(if $(MAKECMDGOALS),,$(if $(filter $@,all),$(call PrintEndMessage)))
|
||||
endef
|
||||
|
||||
# Indicate that we are done.
|
||||
# Record ending time and print out the total time it took to build.
|
||||
define MakeFinish
|
||||
$(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,$1),)
|
||||
$(BUILD_LOG_WRAPPER) $(PRINTF) "%s\n##### %-60.60s #####\n%s\n##### %-60.60s #####\n%s\n\n" \
|
||||
"########################################################################" \
|
||||
"Leaving $1 for target(s) $2" \
|
||||
"########################################################################" \
|
||||
$(if $(REPORT_BUILD_TIMES),"Build time `$(CAT) $(BUILDTIMESDIR)/build_time_diff_$1` for target(s) $2","") \
|
||||
"########################################################################"
|
||||
$(call CheckIfFinished)
|
||||
endef
|
||||
|
||||
# Find all build_time_* files and print their contents in a list sorted
|
||||
# on the name of the sub repository.
|
||||
define ReportBuildTimes
|
||||
$(BUILD_LOG_WRAPPER) $(PRINTF) -- "-- Build times ----------\nTarget %s\nStart %s\nEnd %s\n%s\n%s\n-------------------------\n" \
|
||||
"$1" \
|
||||
"`$(CAT) $(BUILDTIMESDIR)/build_time_start_TOTAL_human_readable`" \
|
||||
"`$(CAT) $(BUILDTIMESDIR)/build_time_end_TOTAL_human_readable`" \
|
||||
"`$(LS) $(BUILDTIMESDIR)/build_time_diff_* | $(GREP) -v _TOTAL | $(XARGS) $(CAT) | $(SORT) -k 2`" \
|
||||
"`$(CAT) $(BUILDTIMESDIR)/build_time_diff_TOTAL`"
|
||||
endef
|
||||
|
||||
define ResetTimers
|
||||
$$(shell $(MKDIR) -p $(BUILDTIMESDIR) && $(RM) $(BUILDTIMESDIR)/build_time_*)
|
||||
endef
|
||||
|
||||
define StartTimer
|
||||
$(call RecordStartTime,TOTAL)
|
||||
endef
|
||||
|
||||
define StopTimer
|
||||
$(if $(REPORT_BUILD_TIMES),$(call RecordEndTime,TOTAL) && $(call ReportBuildTimes,$1),)
|
||||
endef
|
||||
|
||||
# Hook to be called as the very first thing when running a normal build
|
||||
define AtRootMakeStart
|
||||
$(call PrintStartMessage)
|
||||
$(call StartTimer)
|
||||
endef
|
||||
|
||||
# Hook to be called as the very last thing for targets that are "top level" targets
|
||||
define AtRootMakeEnd
|
||||
$(call StopTimer)
|
||||
$(call CheckIfFinished)
|
||||
endef
|
||||
|
||||
# If the variable that you want to send to stdout for piping into a file or otherwise,
|
||||
# is potentially long, for example the a list of file paths, eg a list of all package directories.
|
||||
# Then you need to use ListPathsSafely, which optimistically splits the output into several shell
|
||||
# calls as well as use compression on recurrent file paths segments, to get around the potential
|
||||
# command line length problem that exists in cygwin and other shells.
|
||||
compress_pre:=$(strip $(shell cat $(SRC_ROOT)/common/makefiles/compress.pre))
|
||||
compress_post:=$(strip $(shell cat $(SRC_ROOT)/common/makefiles/compress.post))
|
||||
compress_paths=$(compress_pre)\
|
||||
$(subst $(SRC_ROOT),X97,\
|
||||
$(subst $(OUTPUT_ROOT),X98,\
|
||||
$(subst X,X00,\
|
||||
$(subst $(SPACE),\n,$(strip $1)))))\
|
||||
$(compress_post)
|
||||
|
||||
decompress_paths=sed -f $(SRC_ROOT)/common/makefiles/uncompress.sed -e 's|X99|\\n|g' \
|
||||
-e 's|X98|$(OUTPUT_ROOT)|g' -e 's|X97|$(SRC_ROOT)|g' \
|
||||
-e 's|X00|X|g' | tr '\n' '$2'
|
||||
|
||||
define ListPathsSafely_If
|
||||
$(if $(word $3,$($1)),$(eval $1_LPS$3:=$(call compress_paths,$(wordlist $3,$4,$($1)))))
|
||||
endef
|
||||
|
||||
define ListPathsSafely_Printf
|
||||
$(if $(strip $($1_LPS$4)),printf -- "$(strip $($1_LPS$4))\n" | $(decompress_paths) $3)
|
||||
endef
|
||||
|
||||
# Receipt example:
|
||||
# rm -f thepaths
|
||||
# $(call ListPathsSafely,THEPATHS,\n, >> thepaths)
|
||||
# The \n argument means translate spaces into \n
|
||||
# if instead , , (a space) is supplied, then spaces remain spaces.
|
||||
define ListPathsSafely
|
||||
$(if $(word 10001,$($1)),$(error Cannot list safely more than 10000 paths. $1 has $(words $($1)) paths!))
|
||||
$(call ListPathsSafely_If,$1,$2,1,250)
|
||||
$(call ListPathsSafely_If,$1,$2,251,500)
|
||||
$(call ListPathsSafely_If,$1,$2,501,750)
|
||||
$(call ListPathsSafely_If,$1,$2,751,1000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,1001,1250)
|
||||
$(call ListPathsSafely_If,$1,$2,1251,1500)
|
||||
$(call ListPathsSafely_If,$1,$2,1501,1750)
|
||||
$(call ListPathsSafely_If,$1,$2,1751,2000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,2001,2250)
|
||||
$(call ListPathsSafely_If,$1,$2,2251,2500)
|
||||
$(call ListPathsSafely_If,$1,$2,2501,2750)
|
||||
$(call ListPathsSafely_If,$1,$2,2751,3000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,3001,3250)
|
||||
$(call ListPathsSafely_If,$1,$2,3251,3500)
|
||||
$(call ListPathsSafely_If,$1,$2,3501,3750)
|
||||
$(call ListPathsSafely_If,$1,$2,3751,4000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,4001,4250)
|
||||
$(call ListPathsSafely_If,$1,$2,4251,4500)
|
||||
$(call ListPathsSafely_If,$1,$2,4501,4750)
|
||||
$(call ListPathsSafely_If,$1,$2,4751,5000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,5001,5250)
|
||||
$(call ListPathsSafely_If,$1,$2,5251,5500)
|
||||
$(call ListPathsSafely_If,$1,$2,5501,5750)
|
||||
$(call ListPathsSafely_If,$1,$2,5751,6000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,6001,6250)
|
||||
$(call ListPathsSafely_If,$1,$2,6251,6500)
|
||||
$(call ListPathsSafely_If,$1,$2,6501,6750)
|
||||
$(call ListPathsSafely_If,$1,$2,6751,7000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,7001,7250)
|
||||
$(call ListPathsSafely_If,$1,$2,7251,7500)
|
||||
$(call ListPathsSafely_If,$1,$2,7501,7750)
|
||||
$(call ListPathsSafely_If,$1,$2,7751,8000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,8001,8250)
|
||||
$(call ListPathsSafely_If,$1,$2,8251,8500)
|
||||
$(call ListPathsSafely_If,$1,$2,8501,8750)
|
||||
$(call ListPathsSafely_If,$1,$2,8751,9000)
|
||||
|
||||
$(call ListPathsSafely_If,$1,$2,9001,9250)
|
||||
$(call ListPathsSafely_If,$1,$2,9251,9500)
|
||||
$(call ListPathsSafely_If,$1,$2,9501,9750)
|
||||
$(call ListPathsSafely_If,$1,$2,9751,10000)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,1)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,1001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,1251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,1501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,1751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,2001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,2251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,2501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,2751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,3001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,3251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,3501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,3751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,4001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,4251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,4501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,4751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,5001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,5251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,5501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,5751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,6001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,6251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,6501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,6751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,7001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,7251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,7501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,7751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,8001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,8251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,8501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,8751)
|
||||
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,9001)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,9251)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,9501)
|
||||
$(call ListPathsSafely_Printf,$1,$2,$3,9751)
|
||||
endef
|
||||
|
||||
define ListPathsSafelyNow_IfPrintf
|
||||
ifneq (,$$(word $4,$$($1)))
|
||||
$$(eval $1_LPS$4:=$$(call compress_paths,$$(wordlist $4,$5,$$($1))))
|
||||
$$(shell printf -- "$$(strip $$($1_LPS$4))\n" | $(decompress_paths) $3)
|
||||
endif
|
||||
endef
|
||||
|
||||
# And an non-receipt version:
|
||||
define ListPathsSafelyNow
|
||||
ifneq (,$$(word 10001,$$($1)))
|
||||
$$(error Cannot list safely more than 10000 paths. $1 has $$(words $$($1)) paths!)
|
||||
endif
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1,250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,251,500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,501,750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,751,1000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1001,1250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1251,1500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1501,1750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,1751,2000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2001,2250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2251,2500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2501,2750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,2751,3000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3001,3250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3251,3500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3501,3750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,3751,4000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4001,4250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4251,4500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4501,4750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,4751,5000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5001,5250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5251,5500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5501,5750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,5751,6000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6001,6250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6251,6500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6501,6750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,6751,7000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7001,7250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7251,7500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7501,7750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,7751,8000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8001,8250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8251,8500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8501,8750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,8751,9000)
|
||||
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9001,9250)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9251,9500)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9501,9750)
|
||||
$(call ListPathsSafelyNow_IfPrintf,$1,$2,$3,9751,10000)
|
||||
|
||||
endef
|
||||
|
||||
# The source tips can come from the Mercurial repository, or in the files
|
||||
# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same
|
||||
# directory as the original $(HGDIR) directory.
|
||||
# These should not be := assignments, only used from the root Makefile.
|
||||
HG_VERSION = $(shell $(HG) version 2> /dev/null)
|
||||
HG_DIRECTORY=.hg
|
||||
HGTIP_FILENAME=.hgtip
|
||||
HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO
|
||||
REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \
|
||||
$(shell $(CD) $(SRC_ROOT) ; ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \
|
||||
$(LS) $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \
|
||||
2> /dev/null)))))
|
||||
|
||||
# Emit the repo:tip pairs to $@
|
||||
define GetSourceTips
|
||||
$(CD) $(SRC_ROOT) ; \
|
||||
for i in $(REPO_LIST) IGNORE ; do \
|
||||
if [ "$${i}" = "IGNORE" ] ; then \
|
||||
continue; \
|
||||
elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \
|
||||
$(PRINTF) " %s:%s" \
|
||||
"$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \
|
||||
elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \
|
||||
$(PRINTF) " %s:%s" \
|
||||
"$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \
|
||||
fi; \
|
||||
done >> $@
|
||||
$(PRINTF) "\n" >> $@
|
||||
endef
|
||||
|
||||
# Create the HGTIP_FILENAME file. Called from jdk/make/closed/bundles.gmk
|
||||
define CreateHgTip
|
||||
$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\
|
||||
$(ECHO) $1/$(HGTIP_FILENAME)
|
||||
endef
|
||||
|
||||
define SetupLogging
|
||||
ifneq ($(findstring $(LOG),debug trace),)
|
||||
# Shell redefinition trick inspired by http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make
|
||||
OLD_SHELL:=$$(SHELL)
|
||||
SHELL = $$(warning Building $$@$$(if $$<, (from $$<))$(if $$?, ($$? newer)))$$(OLD_SHELL) -x
|
||||
endif
|
||||
endef
|
||||
|
||||
# Make sure logging is setup for everyone that includes MakeBase.gmk.
|
||||
$(eval $(call SetupLogging))
|
||||
|
||||
endif # _MAKEBASE_GMK
|
||||
331
common/makefiles/Makefile
Normal file
331
common/makefiles/Makefile
Normal file
@@ -0,0 +1,331 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# This must be the first rule
|
||||
default: all
|
||||
|
||||
# Find out which variables were passed explicitely on the make command line. These
|
||||
# will be passed on to sub-makes, overriding spec.gmk settings.
|
||||
MAKE_ARGS=$(foreach var,$(subst =command,,$(filter %=command,$(foreach var,$(.VARIABLES),$(var)=$(firstword $(origin $(var)))))),$(var)=$($(var)))
|
||||
|
||||
define fatal-error
|
||||
# If the user specificed a "global" target (e.g. 'help'), do not exit but continue running
|
||||
$$(if $$(findstring help,$$(MAKECMDGOALS)),,$$(error Cannot continue))
|
||||
endef
|
||||
|
||||
ifeq ($(origin VERBOSE),undefined)
|
||||
# Setup logging according to LOG (but only if VERBOSE is not given)
|
||||
ifeq ($(LOG),)
|
||||
# Set LOG to "warn" as default if not set (and no VERBOSE given)
|
||||
LOG=warn
|
||||
endif
|
||||
ifeq ($(LOG),warn)
|
||||
VERBOSE=-s
|
||||
else ifeq ($(LOG),info)
|
||||
VERBOSE=
|
||||
else ifeq ($(LOG),debug)
|
||||
VERBOSE=
|
||||
else ifeq ($(LOG),trace)
|
||||
VERBOSE=-d -p
|
||||
else
|
||||
$(info Error: LOG must be one of: warn, info, debug or trace.)
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
else
|
||||
ifneq ($(LOG),)
|
||||
# We have both a VERBOSE and a LOG argument. This is OK only if this is a repeated call by ourselves,
|
||||
# but complain if this is the top-level make call.
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
$(info Cannot use LOG=$(LOG) and VERBOSE=$(VERBOSE) at the same time. Choose one.)
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO: Fix duplication in MakeBase.gmk
|
||||
define SetupLogging
|
||||
ifneq ($(findstring $(LOG),debug trace),)
|
||||
# Shell redefinition trick inspired by http://www.cmcrossroads.com/ask-mr-make/6535-tracing-rule-execution-in-gnu-make
|
||||
OLD_SHELL:=$$(SHELL)
|
||||
SHELL = $$(warning Building $$@$$(if $$<, (from $$<))$(if $$?, ($$? newer)))$$(OLD_SHELL) -x
|
||||
endif
|
||||
endef
|
||||
|
||||
$(eval $(call SetupLogging))
|
||||
|
||||
# Find all environment or command line variables that begin with ALT.
|
||||
list_alt_overrides_with_origins = $(filter ALT_%=environment ALT_%=command,$(foreach var,$(.VARIABLES),$(var)=$(firstword $(origin $(var)))))
|
||||
list_alt_overrides=$(subst =command,,$(subst =environment,,$(list_alt_overrides_with_origins)))
|
||||
|
||||
ifeq ($(filter /%,$(lastword $(MAKEFILE_LIST))),)
|
||||
makefile_path=$(CURDIR)/$(lastword $(MAKEFILE_LIST))
|
||||
else
|
||||
makefile_path=$(lastword $(MAKEFILE_LIST))
|
||||
endif
|
||||
root_dir=$(patsubst %/common/makefiles/Makefile,%,$(makefile_path))
|
||||
output_dir=$(root_dir)/build
|
||||
|
||||
ifneq ($(origin SPEC),undefined)
|
||||
# We have been given a SPEC, check that it works out properly
|
||||
ifeq ($(wildcard $(SPEC)),)
|
||||
$(info Cannot locate spec.gmk, given by SPEC=$(SPEC))
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
ifneq ($(origin CONF),undefined)
|
||||
# We also have a CONF argument. This is OK only if this is a repeated call by ourselves,
|
||||
# but complain if this is the top-level make call.
|
||||
ifeq ($(MAKELEVEL),0)
|
||||
$(info Cannot use CONF=$(CONF) and SPEC=$(SPEC) at the same time. Choose one.)
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
endif
|
||||
# ... OK, we're satisfied, we'll use this SPEC later on
|
||||
else
|
||||
# Find all spec.gmk files in the build output directory
|
||||
all_spec_files=$(wildcard $(output_dir)/*/spec.gmk)
|
||||
ifeq ($(all_spec_files),)
|
||||
$(info No configurations found for $(root_dir)! Please run configure to create a configuration.)
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
# Extract the configuration names from the path
|
||||
all_confs=$(patsubst %/spec.gmk,%,$(patsubst $(output_dir)/%,%,$(all_spec_files)))
|
||||
|
||||
ifneq ($(origin CONF),undefined)
|
||||
# User have given a CONF= argument.
|
||||
ifeq ($(CONF),)
|
||||
# If given CONF=, match all configurations
|
||||
matching_confs=$(strip $(all_confs))
|
||||
else
|
||||
# Otherwise select those that contain the given CONF string
|
||||
matching_confs=$(strip $(foreach var,$(all_confs),$(if $(findstring $(CONF),$(var)),$(var))))
|
||||
endif
|
||||
ifeq ($(matching_confs),)
|
||||
$(info No configurations found matching CONF=$(CONF))
|
||||
$(info Available configurations:)
|
||||
$(foreach var,$(all_confs),$(info * $(var)))
|
||||
$(eval $(call fatal-error))
|
||||
else
|
||||
ifeq ($(words $(matching_confs)),1)
|
||||
$(info Building '$(matching_confs)' (matching CONF=$(CONF)))
|
||||
else
|
||||
$(info Building the following configurations (matching CONF=$(CONF)):)
|
||||
$(foreach var,$(matching_confs),$(info * $(var)))
|
||||
endif
|
||||
endif
|
||||
|
||||
# Create a SPEC definition. This will contain the path to one or more spec.gmk files.
|
||||
SPEC=$(addsuffix /spec.gmk,$(addprefix $(output_dir)/,$(matching_confs)))
|
||||
else
|
||||
# No CONF or SPEC given, check the available configurations
|
||||
ifneq ($(words $(all_spec_files)),1)
|
||||
$(info No CONF or SPEC given, but more than one spec.gmk found in $(output_dir).)
|
||||
$(info Available configurations:)
|
||||
$(foreach var,$(all_confs),$(info * $(var)))
|
||||
$(info Please retry building with CONF=<config> or SPEC=<specfile>)
|
||||
$(eval $(call fatal-error))
|
||||
endif
|
||||
|
||||
# We found exactly one configuration, use it
|
||||
SPEC=$(strip $(all_spec_files))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(words $(SPEC)),1)
|
||||
# We have multiple configurations to build, call make repeatedly
|
||||
all jdk hotspot jaxws jaxp corba langtools install images packages clean dist-clean:
|
||||
@$(foreach spec,$(SPEC),($(MAKE) -f $(makefile_path) SPEC=$(spec) $(VERBOSE) VERBOSE=$(VERBOSE) $@ $(MAKE_ARGS)) &&) true
|
||||
|
||||
.PHONY: all jdk hotspot jaxws jaxp corba langtools install images packages clean dist-clean
|
||||
|
||||
else
|
||||
# This is the main part of the Makefile, for the normal case with SPEC specifying a single existing spec.gmk file.
|
||||
|
||||
# Now load the spec
|
||||
-include $(SPEC)
|
||||
|
||||
# Load the vital tools for all the makefiles.
|
||||
-include $(SRC_ROOT)/common/makefiles/MakeBase.gmk
|
||||
|
||||
# Remove any build.log from a previous run
|
||||
ifneq (,$(BUILD_LOG))
|
||||
$(shell $(RM) $(BUILD_LOG))
|
||||
endif
|
||||
|
||||
# Remove any javac server logs and port files. This
|
||||
# prevents a new make run to reuse the previous servers.
|
||||
ifneq (,$(JAVAC_SERVERS))
|
||||
$(shell mkdir -p $(JAVAC_SERVERS) && rm -rf $(JAVAC_SERVERS)/*)
|
||||
endif
|
||||
# Reset the build timers.
|
||||
$(eval $(call ResetTimers))
|
||||
# Clean out any notifications from the previous build.
|
||||
$(shell find $(OUTPUT_ROOT) -name "_the.*.notify" $(FIND_DELETE))
|
||||
|
||||
# If make was called explicitely with -j, don't add a -j ourself to sub-makes, since
|
||||
# this will be inherited automatically by make. Otherwise use our default for sub-makes.
|
||||
# The -j in MAKEFLAGS is only visible when executing a recipe, hence this macro.
|
||||
define GetMakeJobFlag
|
||||
$(if $(findstring -j,$(MAKEFLAGS)),,-j$(NUM_CORES))
|
||||
endef
|
||||
|
||||
define CheckEnvironment
|
||||
$(if $(list_alt_overrides),
|
||||
@$(PRINTF) "\nWARNING: You have the following ALT_ variables set:\n"
|
||||
@$(PRINTF) "$(foreach var,$(list_alt_overrides),$(var)=$$$(var))\n"
|
||||
@$(PRINTF) "ALT_ variables are deprecated and will be ignored. Please clean your environment.\n"
|
||||
)
|
||||
endef
|
||||
|
||||
define PrintStartMessage
|
||||
$(if $(VERBOSE),,@$(ECHO) Running make as $(MAKE) $(MFLAGS) $(MAKE_ARGS))
|
||||
$(call CheckEnvironment)
|
||||
@$(ECHO) "Building OpenJDK for target $(if $(MAKECMDGOALS),'$(MAKECMDGOALS)','all') in configuration '$(CONF_NAME)'"
|
||||
endef
|
||||
|
||||
define PrintEndMessage
|
||||
@$(ECHO) "Finished building OpenJDK for target '$@'"
|
||||
$(call CheckEnvironment)
|
||||
endef
|
||||
|
||||
all: jdk
|
||||
@$(if $(JAVAC_SERVERS),rm -rf $(JAVAC_SERVERS)/*.port)
|
||||
@$(call AtRootMakeEnd)
|
||||
|
||||
langtools: start-make
|
||||
@$(call MakeStart,langtools,all)
|
||||
@($(CD) $(LANGTOOLS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(LANGTOOLS_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,langtools,all)
|
||||
|
||||
corba: langtools
|
||||
@$(call MakeStart,corba,all)
|
||||
@($(CD) $(CORBA_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(CORBA_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,corba,all)
|
||||
|
||||
jaxp: langtools
|
||||
@$(call MakeStart,jaxp,all)
|
||||
@($(CD) $(JAXP_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(CORBA_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,jaxp,all)
|
||||
|
||||
jaxws: langtools jaxp
|
||||
@$(call MakeStart,jaxws,all)
|
||||
@($(CD) $(JAXWS_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(CORBA_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,jaxws,all)
|
||||
|
||||
hotspot: langtools
|
||||
@$(call MakeStart,hotspot,all)
|
||||
@($(CD) $(HOTSPOT_TOPDIR)/make && $(BUILD_LOG_WRAPPER) $(MAKE) -j1 $(HOTSPOT_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,hotspot,all)
|
||||
|
||||
jdk: langtools corba jaxp jaxws hotspot
|
||||
@$(call MakeStart,jdk,all)
|
||||
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(JDK_MAKE_ARGS) $(MAKE_ARGS))
|
||||
@$(call MakeFinish,jdk,all)
|
||||
|
||||
images install packages: source-tips start-make jdk langtools corba jaxp jaxws hotspot
|
||||
@$(call MakeStart,jdk-images,$@)
|
||||
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(JDK_MAKE_ARGS) $(MAKE_ARGS) $@)
|
||||
@$(call MakeFinish,jdk-images,$@)
|
||||
@$(if $(JAVAC_SERVERS),rm -rf $(JAVAC_SERVERS)/*.port)
|
||||
@$(call AtRootMakeEnd)
|
||||
|
||||
old-images: source-tips start-make jdk langtools corba jaxp jaxws hotspot
|
||||
@$(call MakeStart,jdk-old-images,$@)
|
||||
@($(CD) $(JDK_TOPDIR)/makefiles && $(BUILD_LOG_WRAPPER) $(MAKE) $(call GetMakeJobFlag) $(JDK_MAKE_ARGS) $(MAKE_ARGS) $@)
|
||||
@$(call MakeFinish,old-jdk-images,$@)
|
||||
@$(if $(JAVAC_SERVERS),rm -rf $(JAVAC_SERVERS)/*.port)
|
||||
@$(call AtRootMakeEnd)
|
||||
|
||||
start-make:
|
||||
@$(call AtRootMakeStart)
|
||||
|
||||
.PHONY: jdk hotspot jaxws jaxp corba langtools install images packages start-make
|
||||
|
||||
test: start-make
|
||||
@$(call MakeStart,test,$(if $(TEST),$(TEST),all))
|
||||
@($(CD) $(SRC_ROOT)/test && $(BUILD_LOG_WRAPPER) $(MAKE) MAKEFLAGS= -j1 PRODUCT_HOME=$(OUTPUT_ROOT)/jdk JPRT_JAVA_HOME=$(OUTPUT_ROOT)/jdk ALT_OUTPUTDIR=$(OUTPUT_ROOT) $(TEST)) || true
|
||||
@$(call MakeFinish,test,$(if $(TEST),$(TEST),all))
|
||||
@$(call AtRootMakeEnd)
|
||||
.PHONY: test
|
||||
|
||||
|
||||
# Stores the tips for each repository. This file is be used when constructing the jdk image and can be
|
||||
# used to track the exact sources used to build that image.
|
||||
source-tips: $(OUTPUT_ROOT)/source_tips
|
||||
$(OUTPUT_ROOT)/source_tips: FRC
|
||||
@$(MKDIR) -p $(@D)
|
||||
@$(RM) $@
|
||||
@$(call GetSourceTips)
|
||||
|
||||
|
||||
# Remove everything, except the output from configure.
|
||||
clean:
|
||||
@(cd $(OUTPUT_ROOT) && $(RM) -r `$(LS) $(OUTPUT_ROOT) | grep -v spec.gmk | grep -v Makefile | grep -v config.status | grep -v config.log | grep -v config.h | grep -v configure-arguments | grep -v "localdevenv.*" | grep -v uncygdrive.exe`)
|
||||
@$(ECHO) Cleaned everything except the build configuration.
|
||||
.PHONY: clean
|
||||
|
||||
# Remove everything, you have to rerun configure.
|
||||
dist-clean:
|
||||
@$(RM) -r $(OUTPUT_ROOT)
|
||||
@$(ECHO) Cleaned everything, you will have to re-run configure.
|
||||
.PHONY: dist-clean
|
||||
|
||||
clean-jdk:
|
||||
@(cd $(OUTPUT_ROOT) && $(RM) -r `$(LS) $(OUTPUT_ROOT) | grep -v spec.gmk | grep -v Makefile | grep -v config.status | grep -v config.log | grep -v config.h | grep -v configure-arguments | \
|
||||
grep -v langtools | grep -v corba | grep -v jaxp | grep -v jaxws | grep -v hotspot`)
|
||||
@$(ECHO) "Cleaned jdk build artifacts (but not langtools,corba,jaxp,jaxws,hotspot nor the build configuration)"
|
||||
.PHONY: clean
|
||||
|
||||
endif
|
||||
|
||||
# Here are "global" targets, i.e. targets that can be executed without specifying a single configuration.
|
||||
# If you addd more global targets, please update the fatal-error macro.
|
||||
|
||||
help:
|
||||
$(info )
|
||||
$(info OpenJDK Makefile help)
|
||||
$(info =====================)
|
||||
$(info )
|
||||
$(info Common make targets)
|
||||
$(info . make [all] # Compile all code but do not create images)
|
||||
$(info . make images # Create complete j2sdk and j2re images)
|
||||
$(info . make install # Install the generated images locally)
|
||||
$(info . make clean # Remove all files generated by make, but not those generated by configure)
|
||||
$(info . make dist-clean # Remove all files generated by both make and configure)
|
||||
$(info . make help # Give some help on using make)
|
||||
$(info . make test # Run tests, default is all tests (see TEST below))
|
||||
$(info )
|
||||
$(info Useful make variables)
|
||||
$(info . make CONF= # Build all configurations (note, assignment is empty))
|
||||
$(info . make CONF=<substring> # Build the configuration(s) with a name matching the given substring)
|
||||
$(info )
|
||||
$(info . make LOG=<loglevel> # Change loglevel from warn (default) to the given loglevel)
|
||||
$(info . # Available loglevels are: warn, info, debug and trace)
|
||||
$(info . # To see executed command lines, use LOG=info)
|
||||
$(info )
|
||||
$(info . make test TEST=<test> # Only run the given test or tests, e.g.)
|
||||
$(info . # make test TEST="jdk_lang jdk_net")
|
||||
$(info )
|
||||
.PHONY: help
|
||||
FRC: # Force target
|
||||
319
common/makefiles/NativeCompilation.gmk
Normal file
319
common/makefiles/NativeCompilation.gmk
Normal file
@@ -0,0 +1,319 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# When you read this source. Remember that $(sort ...) has the side effect
|
||||
# of removing duplicates. It is actually this side effect that is
|
||||
# desired whenever sort is used below!
|
||||
|
||||
ifeq (,$(_MAKEBASE_GMK))
|
||||
$(error You must include MakeBase.gmk prior to including NativeCompilation.gmk)
|
||||
endif
|
||||
|
||||
ifeq ($(COMPILER_TYPE),CC)
|
||||
COMPILING_MSG=echo Compiling $1
|
||||
LINKING_MSG=echo Linking $1
|
||||
LINKING_EXE_MSG=echo Linking executable $1
|
||||
ARCHIVING_MSG=echo Archiving $1
|
||||
else
|
||||
COMPILING_MSG=
|
||||
LINKING_MSG=
|
||||
LINKING_EXE_MSG=
|
||||
ARCHIVING_MSG=
|
||||
endif
|
||||
|
||||
define add_native_source
|
||||
# param 1 = BUILD_MYPACKAGE
|
||||
# parma 2 = the source file name (..../alfa.c or .../beta.cpp)
|
||||
# param 3 = the bin dir that stores all .o (.obj) and .d files.
|
||||
# param 4 = the c flags to the compiler
|
||||
# param 5 = the c compiler
|
||||
# param 6 = the c++ flags to the compiler
|
||||
# param 7 = the c++ compiler
|
||||
|
||||
ifneq (,$$(filter %.c,$2))
|
||||
# Compile as a C file
|
||||
$1_$2_FLAGS=$4 $$($1_$(notdir $2)_CFLAGS)
|
||||
$1_$2_COMP=$5
|
||||
$1_$2_DEP_FLAG:=$(C_FLAG_DEPS)
|
||||
else ifneq (,$$(filter %.m,$2))
|
||||
# Compile as a objective-c file
|
||||
$1_$2_FLAGS=-x objective-c $4 $$($1_$(notdir $2)_CFLAGS)
|
||||
$1_$2_COMP=$5
|
||||
$1_$2_DEP_FLAG:=$(C_FLAG_DEPS)
|
||||
else
|
||||
# Compile as a C++ file
|
||||
$1_$2_FLAGS=$6 $$($1_$(notdir $2)_CXXFLAGS)
|
||||
$1_$2_COMP=$7
|
||||
$1_$2_DEP_FLAG:=$(CXX_FLAG_DEPS)
|
||||
endif
|
||||
# Generate the .o (.obj) file name and place it in the bin dir.
|
||||
$1_$2_OBJ:=$3/$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(patsubst %.m,%$(OBJ_SUFFIX),$$(notdir $2))))
|
||||
# Only continue if this object file hasn't been processed already. This lets the first found
|
||||
# source file override any other with the same name.
|
||||
ifeq (,$$(findstring $$($1_$2_OBJ),$$($1_OBJS_SO_FAR)))
|
||||
$1_OBJS_SO_FAR+=$$($1_$2_OBJ)
|
||||
# And this is the dependency file for this obj file.
|
||||
$1_$2_DEP:=$$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_$2_OBJ))
|
||||
# Include previously generated dependency information. (if it exists)
|
||||
-include $$($1_$2_DEP)
|
||||
|
||||
ifeq ($(COMPILER_TYPE),CL)
|
||||
$1_$2_DEBUG_OUT_FLAGS:=-Fd$$(patsubst %$(OBJ_SUFFIX),%.pdb,$$($1_$2_OBJ)) \
|
||||
-Fm$$(patsubst %$(OBJ_SUFFIX),%.map,$$($1_$2_OBJ))
|
||||
endif
|
||||
|
||||
$$($1_$2_OBJ) : $2
|
||||
ifeq ($(COMPILER_TYPE),CC)
|
||||
$$(call COMPILING_MSG,$$(notdir $2))
|
||||
$$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEP_FLAG) $$($1_$2_DEP) -c $(CC_OUT_OPTION)$$($1_$2_OBJ) $2
|
||||
endif
|
||||
ifeq ($(COMPILER_TYPE),CL)
|
||||
$$(call COMPILING_MSG,$$(notdir $2))
|
||||
$$($1_$2_COMP) $$($1_$2_FLAGS) $$($1_$2_DEBUG_OUT_FLAGS) -c $(CC_OUT_OPTION)$$($1_$2_OBJ) $2
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
define SetupNativeCompilation
|
||||
# param 1 is for example BUILD_MYPACKAGE
|
||||
# param 2,3,4,5,6,7,8 are named args.
|
||||
# SRC one or more directory roots to scan for C/C++ files.
|
||||
# LANG C or C++
|
||||
# CFLAGS the compiler flags to be used, used both for C and C++.
|
||||
# CXXFLAGS the compiler flags to be used for c++, if set overrides CFLAGS.
|
||||
# LDFLAGS the linker flags to be used, used both for C and C++.
|
||||
# LDFLAGS_SUFFIX the linker flags to be added last on the commandline
|
||||
# typically the libraries linked to.
|
||||
# ARFLAGS the archiver flags to be used
|
||||
# BIN the directory where we store the object files
|
||||
# LIB the resulting library file
|
||||
# EXE the resulting exec file
|
||||
# INCLUDES only pick source from these directories
|
||||
# EXCLUDES do not pick source from these directories
|
||||
# INCLUDE_FILES only compile exactly these files!
|
||||
# EXCLUDE_FILES with these names
|
||||
# VERSIONINFO_RESOURCE Input file for RC. Setting this implies that RC will be run
|
||||
# RC_FLAGS flags for RC.
|
||||
# MAPFILE mapfile
|
||||
# REORDER reorder file
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
$(if $(10),$1_$(strip $(10)))
|
||||
$(if $(11),$1_$(strip $(11)))
|
||||
$(if $(12),$1_$(strip $(12)))
|
||||
$(if $(13),$1_$(strip $(13)))
|
||||
$(if $(14),$1_$(strip $(14)))
|
||||
$(if $(15),$1_$(strip $(15)))
|
||||
$(if $(16),$1_$(strip $(16)))
|
||||
$(if $(17),$1_$(strip $(17)))
|
||||
$(if $(18),$1_$(strip $(18)))
|
||||
$(if $(19),$1_$(strip $(19)))
|
||||
$(if $(20),$1_$(strip $(20)))
|
||||
|
||||
ifeq (,$$($1_LANG))
|
||||
$$(error You have to specify LANG for native compilation $1)
|
||||
endif
|
||||
ifeq (C,$$($1_LANG))
|
||||
$1_LD:=$(LD)
|
||||
$1_LDEXE:=$(LDEXE)
|
||||
else
|
||||
ifeq (C++,$$($1_LANG))
|
||||
$1_LD:=$(LDCXX)
|
||||
$1_LDEXE:=$(LDEXECXX)
|
||||
else
|
||||
$$(error Unknown native language $$($1_LANG) for $1)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Make sure the dirs exist.
|
||||
$$(shell $(MKDIR) -p $$($1_SRC) $$($1_BIN) $$(dir $$($1_LIB)) $$(dir $$($1_EXE)))
|
||||
# Find all files in the source trees. Sort to remove duplicates.
|
||||
$1_ALL_SRCS := $$(sort $$(foreach i,$$($1_SRC), $$(shell $(FIND) $$i -type f)))
|
||||
# Extract the C/C++ files.
|
||||
$1_EXCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_EXCLUDE_FILES)))
|
||||
$1_INCLUDE_FILES:=$$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
|
||||
ifneq ($$($1_EXCLUDE_FILES),)
|
||||
$1_EXCLUDE_FILES:=$$(addprefix %,$$($1_EXCLUDE_FILES))
|
||||
endif
|
||||
$1_SRCS := $$(filter-out $$($1_EXCLUDE_FILES),$$(filter %.c %.cpp %.m,$$($1_ALL_SRCS)))
|
||||
ifneq (,$$(strip $$($1_INCLUDE_FILES)))
|
||||
$1_SRCS := $$(filter $$($1_INCLUDE_FILES),$$($1_SRCS))
|
||||
endif
|
||||
ifeq (,$$($1_SRCS))
|
||||
$$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
|
||||
endif
|
||||
# There can be only a single bin dir root, no need to foreach over the roots.
|
||||
$1_BINS := $$(wildcard $$($1_BIN)/*$(OBJ_SUFFIX))
|
||||
# Now we have a list of all c/c++ files to compile: $$($1_SRCS)
|
||||
# and we have a list of all existing object files: $$($1_BINS)
|
||||
|
||||
# Prepend the source/bin path to the filter expressions. Then do the filtering.
|
||||
ifneq ($$($1_INCLUDES),)
|
||||
$1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
|
||||
$1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
|
||||
endif
|
||||
ifneq ($$($1_EXCLUDES),)
|
||||
$1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
|
||||
$1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
|
||||
endif
|
||||
|
||||
# Calculate the expected output from compiling the sources (sort to remove duplicates. Also provides
|
||||
# a reproducable order on the input files to the linker).
|
||||
$1_EXPECTED_OBJS:=$$(sort $$(addprefix $$($1_BIN)/,$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(patsubst %.m,%$(OBJ_SUFFIX),$$(notdir $$($1_SRCS)))))))
|
||||
$1 := $$($1_EXPECTED_OBJS)
|
||||
# Are there too many object files on disk? Perhaps because some source file was removed?
|
||||
$1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
|
||||
# Clean out the superfluous object files.
|
||||
$$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
|
||||
|
||||
# Pickup extra HOST_OS_API and/or PLATFORM dependent variables for CFLAGS.
|
||||
$1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(HOST_OS_API)) $$($1_CFLAGS_$(PLATFORM))
|
||||
ifneq ($(DEBUG_LEVEL),release)
|
||||
# Pickup extra debug dependent variables for CFLAGS
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(HOST_OS_API)_debug)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(PLATFORM)_debug)
|
||||
else
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(HOST_OS_API)_release)
|
||||
$1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(PLATFORM)_release)
|
||||
endif
|
||||
|
||||
# Pickup extra HOST_OS_API and/or PLATFORM dependent variables for CXXFLAGS.
|
||||
$1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(HOST_OS_API)) $$($1_CXXFLAGS_$(PLATFORM))
|
||||
ifneq ($(DEBUG_LEVEL),release)
|
||||
# Pickup extra debug dependent variables for CXXFLAGS
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(HOST_OS_API)_debug)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(PLATFORM)_debug)
|
||||
else
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(HOST_OS_API)_release)
|
||||
$1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(PLATFORM)_release)
|
||||
endif
|
||||
|
||||
ifeq ($$($1_CXXFLAGS),)
|
||||
$1_CXXFLAGS:=$$($1_CFLAGS)
|
||||
endif
|
||||
ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
|
||||
$1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_REORDER))
|
||||
$1_EXTRA_CFLAGS += $$(C_FLAG_REORDER)
|
||||
$1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER)
|
||||
endif
|
||||
|
||||
# Now create a list of the packages that are about to compile. Used when sending source
|
||||
# in a batch to the compiler.
|
||||
$$(shell $(RM) $$($1_BIN)/_the.list_of_sources)
|
||||
$$(eval $$(call ListPathsSafelyNow,$1_SRCS,\n, >> $$($1_BIN)/_the.list_of_sources))
|
||||
|
||||
# Now call add_native_source for each source file we are going to compile.
|
||||
$$(foreach p,$$($1_SRCS),\
|
||||
$$(eval $$(call add_native_source,$1,$$p,$$($1_BIN),\
|
||||
$$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$(CC),\
|
||||
$$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX))))
|
||||
|
||||
# On windows we need to create a resource file
|
||||
ifeq ($(HOST_OS_API), winapi)
|
||||
ifneq (,$$($1_VERSIONINFO_RESOURCE))
|
||||
ifneq (,$$($1_LIB))
|
||||
$1_BASENAME:=$$(basename $$(notdir $$($1_LIB)))
|
||||
endif
|
||||
ifneq (,$$($1_EXE))
|
||||
$1_BASENAME:=$$(basename $$(notdir $$($1_EXE)))
|
||||
endif
|
||||
$1_RES:=$$($1_BIN)/$$($1_BASENAME).res
|
||||
$$($1_RES): $$($1_VERSIONINFO_RESOURCE)
|
||||
$(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE)
|
||||
endif
|
||||
ifneq (,$$($1_MANIFEST))
|
||||
$1_PROGRAM:=$$(basename $$(notdir $$($1_EXE)))
|
||||
$1_GEN_MANIFEST:=$$($1_BIN)/$$($1_PROGRAM).manifest
|
||||
IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
|
||||
$$($1_GEN_MANIFEST): $$($1_MANIFEST)
|
||||
$(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@
|
||||
endif
|
||||
endif
|
||||
|
||||
# mapfile doesnt seem to be implemented on macosx (yet??)
|
||||
ifneq ($(HOST_OS),macosx)
|
||||
ifneq ($(HOST_OS),windows)
|
||||
$1_REAL_MAPFILE := $$($1_MAPFILE)
|
||||
ifneq (,$$($1_REORDER))
|
||||
$1_REAL_MAPFILE := $$($1_BIN)/mapfile
|
||||
|
||||
$$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER)
|
||||
$$(MKDIR) -p $$(@D)
|
||||
$$(CP) $$($1_MAPFILE) $$@.tmp
|
||||
$$(SED) -e 's=OUTPUTDIR=$$($1_BIN)=' $$($1_REORDER) >> $$@.tmp
|
||||
$$(MV) $$@.tmp $$@
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Pickup extra HOST_OS_API dependent variables (posix or winapi) and
|
||||
# (linux,solaris,windows,bsd) for LDFLAGS and LDFLAGS_SUFFIX
|
||||
$1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(HOST_OS_API)) $$($1_LDFLAGS_$(PLATFORM))
|
||||
$1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(HOST_OS_API)) $$($1_LDFLAGS_SUFFIX_$(PLATFORM))
|
||||
ifneq (,$$($1_REAL_MAPFILE))
|
||||
$1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_LIB))
|
||||
ifeq (dynamic,$$(patsubst %$(SHARED_LIBRARY_SUFFIX),dynamic,$$($1_LIB)))
|
||||
# Generating a dynamic library.
|
||||
$1_EXTRA_LDFLAGS+=$$(call SET_SHARED_LIBRARY_NAME,$$(notdir $$($1_LIB)))
|
||||
$$($1_LIB) : $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_REAL_MAPFILE)
|
||||
$$(call LINKING_MSG,$$(notdir $$($1_LIB)))
|
||||
$$($1_LD) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(LD_OUT_OPTION)$$($1_LIB) \
|
||||
$$($1_EXPECTED_OBJS) $$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
|
||||
else
|
||||
# Generating a static library, ie object file archive.
|
||||
$$($1_LIB) : $$($1_EXPECTED_OBJS) $$($1_RES)
|
||||
$$(call ARCHIVING_MSG,$$(notdir $$($1_LIB)))
|
||||
$(AR) $$($1_AR_FLAGS) $(AR_OUT_OPTION)$$($1_LIB) $$($1_EXPECTED_OBJS) \
|
||||
$$($1_RES) $$($1_LDFLAGS_SUFFIX) $$($1_EXTRA_LDFLAGS_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
ifneq (,$$($1_EXE))
|
||||
# A executable binary has been specified, setup the target for it.
|
||||
$$($1_EXE) : $$($1_EXPECTED_OBJS) $$($1_RES) $$($1_GEN_MANIFEST)
|
||||
$$(call LINKING_EXE_MSG,$$(notdir $$($1_EXE)))
|
||||
$$($1_LDEXE) $$($1_LDFLAGS) $$($1_EXTRA_LDFLAGS) $(EXE_OUT_OPTION)$$($1_EXE) \
|
||||
$$($1_EXPECTED_OBJS) $$($1_RES) $$($1_LDFLAGS_SUFFIX) \
|
||||
$$($1_EXTRA_LDFLAGS_SUFFIX)
|
||||
ifneq (,$$($1_GEN_MANIFEST))
|
||||
$(MT) -nologo /manifest $$($1_GEN_MANIFEST) /outputresource:$$@;#1
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
103
common/makefiles/RMICompile.gmk
Normal file
103
common/makefiles/RMICompile.gmk
Normal file
@@ -0,0 +1,103 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
define SetupRMICompilation
|
||||
# param 1 is a name for a variable to depend on.
|
||||
# param 2 and up are named args.
|
||||
# CLASSES:=List of classes to generate stubs for
|
||||
# CLASSES_DIR:=Directory where to look for classes
|
||||
# STUB_CLASSES_DIR:=Directory in where to put stub classes
|
||||
# RUN_V11:=Set to run rmic with -v1.1
|
||||
# RUN_V12:=Set to run rmic with -v1.2
|
||||
# RUN_IIOP:=Set to run rmic with -iiop
|
||||
# RUN_IIOP_STDPKG:=Set to run rmic with -iiop -standardPackage
|
||||
# KEEP_GENERATED:=Set to keep generated sources around
|
||||
$(if $2,$1_$(strip $2))
|
||||
$(if $3,$1_$(strip $3))
|
||||
$(if $4,$1_$(strip $4))
|
||||
$(if $5,$1_$(strip $5))
|
||||
$(if $6,$1_$(strip $6))
|
||||
$(if $7,$1_$(strip $7))
|
||||
$(if $8,$1_$(strip $8))
|
||||
$(if $9,$1_$(strip $9))
|
||||
|
||||
|
||||
$1_DEP_FILE := $$($1_STUB_CLASSES_DIR)/$1_rmic
|
||||
|
||||
$1_CLASSES_SLASH := $$(subst .,/,$$($1_CLASSES))
|
||||
$1_CLASS_FILES := $$(addprefix $$($1_CLASSES_DIR)/,$$(addsuffix .class,$$($1_CLASSES_SLASH)))
|
||||
$1_STUB_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Stub.class,$$($1_CLASSES_SLASH)))
|
||||
$1_TARGETS := $$($1_STUB_FILES)
|
||||
$1_ARGS :=
|
||||
ifneq (,$$($1_RUN_V11))
|
||||
$1_SKEL_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Skel.class,$$($1_CLASSES_SLASH)))
|
||||
$1_TARGETS += $$($1_SKEL_FILES)
|
||||
$1_ARGS += -v1.1
|
||||
endif
|
||||
ifneq (,$$($1_RUN_V12))
|
||||
$1_ARGS += -v1.2
|
||||
endif
|
||||
|
||||
$1_TIE_BASE_FILES := $$(foreach f,$$($1_CLASSES_SLASH),$$(dir $$f)_$$(notdir $$f))
|
||||
$1_TIE_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/org/omg/stub/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
|
||||
$1_TIE_STDPKG_FILES := $$(addprefix $$($1_STUB_CLASSES_DIR)/,$$(addsuffix _Tie.class,$$($1_TIE_BASE_FILES)))
|
||||
|
||||
ifneq (,$$($1_RUN_IIOP))
|
||||
$1_TARGETS += $$($1_TIE_FILES)
|
||||
$1_ARGS += -iiop
|
||||
endif
|
||||
ifneq (,$$($1_RUN_IIOP_STDPKG))
|
||||
$1_TARGETS += $$($1_TIE_STDPKG_FILES)
|
||||
$1_ARGS2 := -iiop -standardPackage
|
||||
endif
|
||||
|
||||
ifneq (,$$($1_KEEP_GENERATED))
|
||||
$1_ARGS += -keepgenerated
|
||||
$1_TARGETS += $$(subst .class,.java,$$($1_TARGETS))
|
||||
endif
|
||||
|
||||
$1_DOLLAR_SAFE_CLASSES := $$(subst $$$$,\$$$$,$$($1_CLASSES))
|
||||
|
||||
$$($1_TARGETS): $$($1_DEP_FILE) $$($1_CLASS_FILES)
|
||||
|
||||
$$($1_DEP_FILE): $$($1_CLASS_FILES)
|
||||
$(MKDIR) -p $$($1_STUB_CLASSES_DIR)
|
||||
if [ "x$$($1_ARGS)" != "x" ]; then \
|
||||
$(ECHO) Running rmic $$($1_ARGS) for $$($1_DOLLAR_SAFE_CLASSES) &&\
|
||||
$(RMIC) $$($1_ARGS) -classpath "$$($1_CLASSES_DIR)" \
|
||||
-d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\
|
||||
fi;
|
||||
if [ "x$$($1_ARGS2)" != "x" ]; then \
|
||||
$(ECHO) Running rmic $$($1_ARGS2) for $$($1_DOLLAR_SAFE_CLASSES) &&\
|
||||
$(RMIC) $$($1_ARGS2) -classpath "$$($1_CLASSES_DIR)" \
|
||||
-d $$($1_STUB_CLASSES_DIR) $$($1_DOLLAR_SAFE_CLASSES);\
|
||||
fi;
|
||||
|
||||
|
||||
$1 := $$($1_TARGETS)
|
||||
|
||||
# By marking as secondary, this "touch" file doesn't need to be touched and will never exist.
|
||||
.SECONDARY: $$($1_DEP_FILE)
|
||||
endef
|
||||
1
common/makefiles/compress.post
Normal file
1
common/makefiles/compress.post
Normal file
@@ -0,0 +1 @@
|
||||
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
|
||||
1
common/makefiles/compress.pre
Normal file
1
common/makefiles/compress.pre
Normal file
@@ -0,0 +1 @@
|
||||
$(subst com,X01,$(subst org,X02,$(subst sun,X03,$(subst java,X04,$(subst javax,X05,$(subst sun/io,X06,$(subst com/sun,X07,$(subst java/io,X08,$(subst org/omg,X09,$(subst org/w3c,X10,$(subst org/xml,X11,$(subst sun/awt,X12,$(subst sun/net,X13,$(subst sun/nio,X14,$(subst sun/rmi,X15,$(subst java/awt,X16,$(subst java/net,X17,$(subst java/nio,X18,$(subst java/rmi,X19,$(subst META-INF,X20,$(subst sun/font,X21,$(subst sun/misc,X22,$(subst sun/text,X23,$(subst sun/util,X24,$(subst java/lang,X25,$(subst java/math,X26,$(subst java/text,X27,$(subst java/util,X28,$(subst javax/jws,X29,$(subst javax/net,X30,$(subst javax/rmi,X31,$(subst javax/xml,X32,$(subst sun/corba,X33,$(subst sun/print,X34,$(subst sun/swing,X35,$(subst java/beans,X36,$(subst javax/lang,X37,$(subst sun/applet,X38,$(subst sun/java2d,X39,$(subst java/applet,X40,$(subst javax/print,X41,$(subst javax/sound,X42,$(subst javax/swing,X43,$(subst javax/tools,X44,$(subst jdk/classes,X45,$(subst org/relaxng,X46,$(subst sun/reflect,X47,$(subst javax/crypto,X48,$(subst javax/naming,X49,$(subst jaxp/classes,X50,$(subst sun/security,X51,$(subst corba/classes,X52,$(subst java/security,X53,$(subst javax/imageio,X54,$(subst jdk/btclasses,X55,$(subst javax/activity,X56,$(subst javax/security,X57,$(subst jdk/newclasses,X58,$(subst sun/instrument,X59,$(subst sun/management,X60,$(subst corba/btclasses,X61,$(subst jdk/democlasses,X62,$(subst javax/activation,X63,$(subst javax/annotation,X64,$(subst javax/management,X65,$(subst javax/transaction,X66,$(subst jaxws/jaf_classes,X67,$(subst langtools/classes,X68,$(subst META-INF/services,X69,$(subst jdk/newdemoclasses,X70,$(subst javax/accessibility,X71,$(subst jaxws/jaxws_classes,X72,
|
||||
72
common/makefiles/uncompress.sed
Normal file
72
common/makefiles/uncompress.sed
Normal file
@@ -0,0 +1,72 @@
|
||||
s|X01|com|g
|
||||
s|X02|org|g
|
||||
s|X03|sun|g
|
||||
s|X04|java|g
|
||||
s|X05|javax|g
|
||||
s|X06|sun/io|g
|
||||
s|X07|com/sun|g
|
||||
s|X08|java/io|g
|
||||
s|X09|org/omg|g
|
||||
s|X10|org/w3c|g
|
||||
s|X11|org/xml|g
|
||||
s|X12|sun/awt|g
|
||||
s|X13|sun/net|g
|
||||
s|X14|sun/nio|g
|
||||
s|X15|sun/rmi|g
|
||||
s|X16|java/awt|g
|
||||
s|X17|java/net|g
|
||||
s|X18|java/nio|g
|
||||
s|X19|java/rmi|g
|
||||
s|X20|META-INF|g
|
||||
s|X21|sun/font|g
|
||||
s|X22|sun/misc|g
|
||||
s|X23|sun/text|g
|
||||
s|X24|sun/util|g
|
||||
s|X25|java/lang|g
|
||||
s|X26|java/math|g
|
||||
s|X27|java/text|g
|
||||
s|X28|java/util|g
|
||||
s|X29|javax/jws|g
|
||||
s|X30|javax/net|g
|
||||
s|X31|javax/rmi|g
|
||||
s|X32|javax/xml|g
|
||||
s|X33|sun/corba|g
|
||||
s|X34|sun/print|g
|
||||
s|X35|sun/swing|g
|
||||
s|X36|java/beans|g
|
||||
s|X37|javax/lang|g
|
||||
s|X38|sun/applet|g
|
||||
s|X39|sun/java2d|g
|
||||
s|X40|java/applet|g
|
||||
s|X41|javax/print|g
|
||||
s|X42|javax/sound|g
|
||||
s|X43|javax/swing|g
|
||||
s|X44|javax/tools|g
|
||||
s|X45|jdk/classes|g
|
||||
s|X46|org/relaxng|g
|
||||
s|X47|sun/reflect|g
|
||||
s|X48|javax/crypto|g
|
||||
s|X49|javax/naming|g
|
||||
s|X50|jaxp/classes|g
|
||||
s|X51|sun/security|g
|
||||
s|X52|corba/classes|g
|
||||
s|X53|java/security|g
|
||||
s|X54|javax/imageio|g
|
||||
s|X55|jdk/btclasses|g
|
||||
s|X56|javax/activity|g
|
||||
s|X57|javax/security|g
|
||||
s|X58|jdk/newclasses|g
|
||||
s|X59|sun/instrument|g
|
||||
s|X60|sun/management|g
|
||||
s|X61|corba/btclasses|g
|
||||
s|X62|jdk/democlasses|g
|
||||
s|X63|javax/activation|g
|
||||
s|X64|javax/annotation|g
|
||||
s|X65|javax/management|g
|
||||
s|X66|javax/transaction|g
|
||||
s|X67|jaxws/jaf_classes|g
|
||||
s|X68|langtools/classes|g
|
||||
s|X69|META-INF/services|g
|
||||
s|X70|jdk/newdemoclasses|g
|
||||
s|X71|javax/accessibility|g
|
||||
s|X72|jaxws/jaxws_classes|g
|
||||
254
common/src/uncygdrive.c
Normal file
254
common/src/uncygdrive.c
Normal file
@@ -0,0 +1,254 @@
|
||||
/*
|
||||
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#include <Windows.h>
|
||||
#include <io.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
|
||||
/*
|
||||
* Test if pos points to /cygdrive/_/ where _ can
|
||||
* be any character.
|
||||
*/
|
||||
int is_cygdrive_here(int pos, char *in, int len)
|
||||
{
|
||||
// Length of /cygdrive/c/ is 12
|
||||
if (pos+12 > len) return 0;
|
||||
if (in[pos+11]=='/' &&
|
||||
in[pos+9]=='/' &&
|
||||
in[pos+8]=='e' &&
|
||||
in[pos+7]=='v' &&
|
||||
in[pos+6]=='i' &&
|
||||
in[pos+5]=='r' &&
|
||||
in[pos+4]=='d' &&
|
||||
in[pos+3]=='g' &&
|
||||
in[pos+2]=='y' &&
|
||||
in[pos+1]=='c' &&
|
||||
in[pos+0]=='/') {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Replace /cygdrive/_/ with _:/
|
||||
* Works in place since drive letter is always
|
||||
* shorter than /cygdrive/
|
||||
*/
|
||||
char *replace_cygdrive(char *in)
|
||||
{
|
||||
int len = strlen(in);
|
||||
char *out = malloc(len+1);
|
||||
int i,j;
|
||||
|
||||
if (len < 12) {
|
||||
strcpy(out, in);
|
||||
return out;
|
||||
}
|
||||
for (i = 0, j = 0; i<len;) {
|
||||
if (is_cygdrive_here(i, in, len)) {
|
||||
out[j++] = in[i+10];
|
||||
out[j++] = ':';
|
||||
i+=11;
|
||||
} else {
|
||||
out[j] = in[i];
|
||||
i++;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
out[j] = 0;
|
||||
return out;
|
||||
}
|
||||
|
||||
void append(char **b, size_t *bl, size_t *u, char *add, size_t addlen)
|
||||
{
|
||||
while ( (addlen+*u+1) > *bl) {
|
||||
*bl *= 2;
|
||||
*b = realloc(*b, *bl);
|
||||
}
|
||||
memcpy(*b+*u, add, addlen);
|
||||
*u += addlen;
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates a new string from in where the first occurance of sub is
|
||||
* replaced by rep.
|
||||
*/
|
||||
char *replace_substring(char *in, char *sub, char *rep)
|
||||
{
|
||||
int in_len = strlen(in);
|
||||
int sub_len = strlen(sub);
|
||||
int rep_len = strlen(rep);
|
||||
char *out = malloc(in_len - sub_len + rep_len + 1);
|
||||
char *p;
|
||||
|
||||
if (!(p = strstr(in, sub))) {
|
||||
// If sub isn't a substring of in, just return in.
|
||||
return in;
|
||||
}
|
||||
|
||||
// Copy characters from beginning of in to start of sub.
|
||||
strncpy(out, in, p - in);
|
||||
out[p - in] = '\0';
|
||||
|
||||
sprintf(out + (p - in), "%s%s", rep, p + sub_len);
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
char *files_to_delete[1024];
|
||||
int num_files_to_delete = 0;
|
||||
|
||||
char *fix_at_file(char *in)
|
||||
{
|
||||
char *tmpdir;
|
||||
char name[2048];
|
||||
char *atname;
|
||||
char *buffer;
|
||||
size_t buflen=65536;
|
||||
size_t used=0;
|
||||
size_t len;
|
||||
int rc;
|
||||
FILE *atout;
|
||||
FILE *atin;
|
||||
char block[2048];
|
||||
size_t blocklen;
|
||||
char *fixed;
|
||||
|
||||
atin = fopen(in+1, "r");
|
||||
if (atin == NULL) {
|
||||
fprintf(stderr, "Could not read at file %s\n", in+1);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
tmpdir = getenv("TMP");
|
||||
if (tmpdir == NULL) {
|
||||
tmpdir = "c:/cygwin/tmp";
|
||||
}
|
||||
_snprintf(name, sizeof(name), "%s\\atfile_XXXXXX", tmpdir);
|
||||
|
||||
rc = _mktemp_s(name, strlen(name)+1);
|
||||
if (rc) {
|
||||
fprintf(stderr, "Could not create temporary file name for at file!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
atout = fopen(name, "w");
|
||||
if (atout == NULL) {
|
||||
fprintf(stderr, "Could open temporary file for writing! %s\n", name);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
buffer = malloc(buflen);
|
||||
while((blocklen = fread(block,1,sizeof(block),atin)) > 0) {
|
||||
append(&buffer, &buflen, &used, block, blocklen);
|
||||
}
|
||||
buffer[used] = 0;
|
||||
fixed = replace_cygdrive(buffer);
|
||||
fwrite(fixed, strlen(fixed), 1, atout);
|
||||
fclose(atin);
|
||||
fclose(atout);
|
||||
free(fixed);
|
||||
free(buffer);
|
||||
files_to_delete[num_files_to_delete] = malloc(strlen(name)+1);
|
||||
strcpy(files_to_delete[num_files_to_delete], name);
|
||||
num_files_to_delete++;
|
||||
atname = malloc(strlen(name)+2);
|
||||
atname[0] = '@';
|
||||
strcpy(atname+1, name);
|
||||
return atname;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
unsigned short rc;
|
||||
|
||||
char *new_at_file;
|
||||
char *old_at_file;
|
||||
char *line;
|
||||
int i;
|
||||
DWORD exitCode;
|
||||
|
||||
if (argc<2) {
|
||||
fprintf(stderr, "Usage: uncygdrive.exe /cygdrive/c/WINDOWS/notepad.exe /cygdrive/c/x/test.txt");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
line = replace_cygdrive(strstr(GetCommandLine(), argv[1]));
|
||||
|
||||
for (i=1; i<argc; ++i) {
|
||||
if (argv[i][0] == '@') {
|
||||
// Found at-file! Fix it!
|
||||
old_at_file = replace_cygdrive(argv[i]);
|
||||
new_at_file = fix_at_file(old_at_file);
|
||||
line = replace_substring(line, old_at_file, new_at_file);
|
||||
}
|
||||
}
|
||||
|
||||
if (getenv("DEBUG_UNCYGDRIVE") != NULL) {
|
||||
fprintf(stderr, "uncygdrive >%s<\n", line);
|
||||
}
|
||||
|
||||
ZeroMemory(&si,sizeof(si));
|
||||
si.cb=sizeof(si);
|
||||
ZeroMemory(&pi,sizeof(pi));
|
||||
|
||||
rc = CreateProcess(NULL,
|
||||
line,
|
||||
0,
|
||||
0,
|
||||
TRUE,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
&si,
|
||||
&pi);
|
||||
if(!rc)
|
||||
{
|
||||
//Could not start process;
|
||||
fprintf(stderr, "Could not start process!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
WaitForSingleObject(pi.hProcess,INFINITE);
|
||||
GetExitCodeProcess(pi.hProcess,&exitCode);
|
||||
|
||||
if (getenv("DEBUG_UNCYGDRIVE") != NULL) {
|
||||
for (i=0; i<num_files_to_delete; ++i) {
|
||||
fprintf(stderr, "Not deleting temporary uncygdrive file %s\n",
|
||||
files_to_delete[i]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (i=0; i<num_files_to_delete; ++i) {
|
||||
remove(files_to_delete[i]);
|
||||
}
|
||||
}
|
||||
|
||||
exit(exitCode);
|
||||
}
|
||||
@@ -2,3 +2,4 @@
|
||||
^dist/
|
||||
/nbproject/private/
|
||||
^.hgtip
|
||||
.DS_Store
|
||||
|
||||
@@ -145,3 +145,25 @@ e1366c5d84ef984095a332bcee70b3938232d07d jdk8-b19
|
||||
f157fc2a71a38ce44007a6f18d5b011824dce705 jdk8-b21
|
||||
a11d0062c445d5f36651c78650ab88aa594bcbff jdk8-b22
|
||||
5218eb256658442b62b05295aafa5b5f35252972 jdk8-b23
|
||||
b98f0e6dddf987df565029a1f58417fc1844c3f3 jdk8-b24
|
||||
e45d6b406d5f91ff5256a5c82456ab1e7eb8becd jdk8-b25
|
||||
79f709a099f40c08f76567fa6d813f9009a69826 jdk8-b26
|
||||
4fffe75e4edd39a2517f10b743941bf94edb143d jdk8-b27
|
||||
2082eb35d49a9c2aab90b8d4fd31cefb7a23b82e jdk8-b28
|
||||
6117395d422682f89d228347e319fcaac7edc729 jdk8-b29
|
||||
4605f8418bf562e78be79b25b6b8a5110281acae jdk8-b30
|
||||
1954151dfae8f73db24e396380f7c02bdd47c486 jdk8-b31
|
||||
5d820cb6b1afd75b619e7fd69e4f2b0eb1d5d6a1 jdk8-b32
|
||||
1e2ac1ea3f6c32a62bf88f3fa330120c30db59cb jdk8-b33
|
||||
e24c5cc8b0f7cc48374eef0f995838fb4823e0eb jdk8-b34
|
||||
e3d735914edd0a621b16bb85417423f8e6af5d51 jdk8-b35
|
||||
a5a61f259961a7f46b002e5cc50b4a9bf86927b6 jdk8-b36
|
||||
83fac66442cf680bb59ec9e3a71cc4729322b595 jdk8-b37
|
||||
b8cbfb31139f820e5e094ba71449e58159fbe22e jdk8-b38
|
||||
785af00e2827990f149b32ec37f523dbca3efdd1 jdk8-b39
|
||||
56d030e5035fdee5bba6cf318a06287fda5d67ec jdk8-b40
|
||||
113f0d5f0a08aa0947b3edf783b603e7f042748a jdk8-b41
|
||||
79cc42c9c71bbd6630ede681642e98f5e4a841fa jdk8-b42
|
||||
cd879aff5d3cc1f58829aab3116880aa19525b78 jdk8-b43
|
||||
439d9bf8e4ff204cc89c9974c1515a508b2cc6ff jdk8-b44
|
||||
747dad9e9d37d244a5c765a1afe9194f7ddae118 jdk8-b45
|
||||
|
||||
46
corba/make/common/Defs-bsd.gmk
Normal file
46
corba/make/common/Defs-bsd.gmk
Normal file
@@ -0,0 +1,46 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to specify compiler flags for programs and libraries
|
||||
# targeted to BSD. Should not contain any rules.
|
||||
#
|
||||
|
||||
# Warning: the following variables are overriden by Defs.gmk. Set
|
||||
# values will be silently ignored:
|
||||
# CFLAGS (set $(OTHER_CFLAGS) instead)
|
||||
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
|
||||
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
|
||||
# LDFLAGS (set $(OTHER_LDFAGS) instead)
|
||||
# LDLIBS (set $(EXTRA_LIBS) instead)
|
||||
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
|
||||
|
||||
# Get shared JDK settings
|
||||
include $(BUILDDIR)/common/shared/Defs.gmk
|
||||
|
||||
ifndef PLATFORM_SRC
|
||||
PLATFORM_SRC = $(TOPDIR)/src/solaris
|
||||
endif # PLATFORM_SRC
|
||||
|
||||
@@ -149,8 +149,8 @@ strip_prop_options_clean:
|
||||
# Strip the properties files
|
||||
strip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
|
||||
@if [ -s $(STRIP_PROP_options) ] ; then \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options)" ; \
|
||||
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options) ; \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options)" ; \
|
||||
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options) ; \
|
||||
fi
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
131
corba/make/common/shared/Defs-bsd.gmk
Normal file
131
corba/make/common/shared/Defs-bsd.gmk
Normal file
@@ -0,0 +1,131 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for Bsd.
|
||||
#
|
||||
|
||||
# Default for COMPILER_WARNINGS_FATAL on Bsd (C & C++ compiler warnings)
|
||||
ifndef COMPILER_WARNINGS_FATAL
|
||||
COMPILER_WARNINGS_FATAL=false
|
||||
endif
|
||||
|
||||
# Bsd should use parallel compilation for best build times
|
||||
ifndef COMPILE_APPROACH
|
||||
COMPILE_APPROACH = parallel
|
||||
endif
|
||||
|
||||
# Indication that we are doing an incremental build.
|
||||
# This may trigger the creation of make depend files.
|
||||
ifndef INCREMENTAL_BUILD
|
||||
INCREMENTAL_BUILD = false
|
||||
endif
|
||||
|
||||
# FullPath just makes sure it never ends with a / and no duplicates
|
||||
define FullPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
|
||||
# OptFullPath: Absolute path name of a dir that might not initially exist.
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||
endef
|
||||
|
||||
# Location on system where jdk installs might be
|
||||
USRJDKINSTANCES_PATH =$(PACKAGE_PATH)
|
||||
|
||||
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||
else
|
||||
UNIXCOMMAND_PATH = /bin/
|
||||
endif
|
||||
|
||||
# USRBIN_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
|
||||
USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
|
||||
else
|
||||
USRBIN_PATH = /usr/bin/
|
||||
endif
|
||||
|
||||
# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
|
||||
UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
|
||||
else
|
||||
UNIXCCS_PATH = /usr/ccs/bin/
|
||||
endif
|
||||
|
||||
# SLASH_JAVA: location of all network accessable files
|
||||
ifdef ALT_SLASH_JAVA
|
||||
SLASH_JAVA :=$(ALT_SLASH_JAVA)
|
||||
else
|
||||
SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
|
||||
endif
|
||||
|
||||
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
|
||||
else
|
||||
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||
endif
|
||||
|
||||
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
|
||||
else
|
||||
DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
|
||||
endif
|
||||
|
||||
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR2: Second choice
|
||||
ifndef ALT_BOOTDIR
|
||||
_BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
endif
|
||||
|
||||
# Import JDK images allow for partial builds, components not built are
|
||||
# imported (or copied from) these import areas when needed.
|
||||
|
||||
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||
# multiple platforms, e.g. windows-i586, solaris-sparc, bsd-586, etc.
|
||||
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||
else
|
||||
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||
endif
|
||||
BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
|
||||
|
||||
# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
|
||||
ifdef ALT_JDK_IMPORT_PATH
|
||||
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||
else
|
||||
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||
endif
|
||||
JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
# These input UTILS_* variables can be defined at anytime, ideally once.
|
||||
# Unix Commands: Normally /bin/, /usr/bin/. or C:/mksnt/mksnt/
|
||||
# UTILS_COMMAND_PATH
|
||||
# /usr/bin/
|
||||
# /usr/bin/
|
||||
# UTILS_USR_BIN_PATH
|
||||
# /usr/ccs/bin/ (sccs, m4, lex, yacc, as, ar, strip, mcs)
|
||||
# UTILS_CCS_BIN_PATH
|
||||
@@ -53,6 +53,13 @@ ifeq ($(PLATFORM),linux)
|
||||
UTILS_DEVTOOL_PATH=$(USRBIN_PATH)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),bsd)
|
||||
UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
|
||||
UTILS_USR_BIN_PATH=$(USRBIN_PATH)
|
||||
UTILS_CCS_BIN_PATH=$(USRBIN_PATH)
|
||||
UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
UTILS_COMMAND_PATH=$(UNIXCOMMAND_PATH)
|
||||
UTILS_USR_BIN_PATH=$(UNIXCOMMAND_PATH)
|
||||
@@ -166,15 +173,15 @@ ifeq ($(PLATFORM),linux)
|
||||
# Also, some distribution (Ubuntu, Debian, others?) place the rpm command
|
||||
# itself in /usr/bin rather than it's traditional home in /bin.
|
||||
RPM=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||
RPMBUILD=$(firstword $(wildcard $(UTILS_COMMAND_PATH)rpmbuild) \
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \
|
||||
$(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpmbuild) \
|
||||
$(wildcard $(UTILS_COMMAND_PATH)rpm) \
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)rpm))
|
||||
# Most Linux distros have "sort" in /bin. Ubuntu, Debian and perhaps
|
||||
# others have it in /usr/bin.
|
||||
SORT=$(firstword $(wildcard $(UTILS_COMMAND_PATH)sort) \
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)sort))
|
||||
$(wildcard $(UTILS_USR_BIN_PATH)sort))
|
||||
NAWK = $(USRBIN_PATH)gawk
|
||||
# Intrinsic unix command, with backslash-escaped character interpretation
|
||||
ECHO = /bin/echo -e
|
||||
@@ -198,3 +205,34 @@ ifeq ($(PLATFORM),solaris)
|
||||
ECHO = /usr/bin/echo
|
||||
endif
|
||||
|
||||
# BSD specific
|
||||
ifeq ($(PLATFORM),bsd)
|
||||
BASENAME = $(UTILS_USR_BIN_PATH)basename
|
||||
EGREP = $(UTILS_USR_BIN_PATH)egrep
|
||||
EXPR = $(UTILS_COMMAND_PATH)expr
|
||||
FMT = $(UTILS_USR_BIN_PATH)fmt
|
||||
GREP = $(UTILS_USR_BIN_PATH)grep
|
||||
GUNZIP = $(UTILS_USR_BIN_PATH)gunzip
|
||||
ID = $(UTILS_USR_BIN_PATH)id
|
||||
MSGFMT = $(UTILS_DEVTOOL_PATH)msgfmt
|
||||
SED = $(UTILS_USR_BIN_PATH)sed
|
||||
SORT = $(UTILS_USR_BIN_PATH)sort
|
||||
TEST = $(UTILS_COMMAND_PATH)test
|
||||
TOUCH = $(UTILS_USR_BIN_PATH)touch
|
||||
TRUE = $(UTILS_USR_BIN_PATH)true
|
||||
UNAME = $(UTILS_USR_BIN_PATH)uname
|
||||
# BSD OS_VENDOR specific
|
||||
ifeq ($(OS_VENDOR), Apple)
|
||||
NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||
UNZIPSFX = $(UTILS_USR_BIN_PATH)unzipsfx
|
||||
ZIPEXE = $(UTILS_USR_BIN_PATH)zip
|
||||
else
|
||||
UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||
endif
|
||||
ifeq ($(OS_VENDOR), OpenBSD)
|
||||
NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||
else
|
||||
CPIO = $(UTILS_USR_BIN_PATH)cpio
|
||||
TAR = $(UTILS_USR_BIN_PATH)tar
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -62,8 +62,8 @@ PLATFORM_SHARED=done
|
||||
# CLASSPATH_SEPARATOR separator in classpath, ; or :
|
||||
# BUNDLE_FILE_SUFFIX suffix for bundles: .tar or .tar.gz
|
||||
# ISA_DIR solaris only: /sparcv9 or /amd64
|
||||
# REQUIRED_WINDOWS_NAME windows only: basic name of windows
|
||||
# REQUIRED_WINDOWS_VERSION windows only: specific version of windows
|
||||
# REQUIRED_WINDOWS_NAME windows only: basic name of windows
|
||||
# REQUIRED_WINDOWS_VERSION windows only: specific version of windows
|
||||
# USING_CYGWIN windows only: true or false
|
||||
# WINDOWS_NT_VERSION_STRING windows only: long version name
|
||||
# REQUIRED_OS_VERSION required OS version, e.g. 5.10, 2.4
|
||||
@@ -135,7 +135,7 @@ ifeq ($(SYSTEM_UNAME), SunOS)
|
||||
BUNDLE_FILE_SUFFIX=.tar
|
||||
# Required Solaris version
|
||||
REQUIRED_OS_VERSION = 5.10
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# a fully built workspace.
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
REQUIRED_FREE_SPACE=1300000
|
||||
@@ -143,7 +143,7 @@ ifeq ($(SYSTEM_UNAME), SunOS)
|
||||
REQUIRED_FREE_SPACE=1040000
|
||||
endif
|
||||
# How much RAM does this machine have:
|
||||
MB_OF_MEMORY=$(shell /etc/prtconf | fgrep 'Memory size:' | expand | cut -d' ' -f3)
|
||||
MB_OF_MEMORY:=$(shell /usr/sbin/prtconf 2>/dev/null | fgrep 'Memory size:' | expand | cut -d' ' -f3)
|
||||
endif
|
||||
|
||||
# Platform settings specific to Linux
|
||||
@@ -207,7 +207,7 @@ ifeq ($(SYSTEM_UNAME), Linux)
|
||||
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar.gz
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# a fully built workspace.
|
||||
REQUIRED_FREE_SPACE=1460000
|
||||
LINUX_VERSION_INFO = /etc/redhat-release
|
||||
@@ -231,6 +231,99 @@ ifeq ($(SYSTEM_UNAME), Linux)
|
||||
MB_OF_MEMORY := $(shell free -m | fgrep Mem: | sed -e 's@\ \ *@ @g' | cut -d' ' -f2)
|
||||
endif
|
||||
|
||||
ifeq ($(SYSTEM_UNAME), FreeBSD)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = freebsd
|
||||
OS_VENDOR = FreeBSD
|
||||
REQUIRED_OS_VERSION = 6.0
|
||||
endif
|
||||
|
||||
ifeq ($(SYSTEM_UNAME), Darwin)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = darwin
|
||||
OS_VENDOR = Apple
|
||||
REQUIRED_OS_VERSION = 8.0
|
||||
endif
|
||||
|
||||
ifeq ($(SYSTEM_UNAME), NetBSD)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = netbsd
|
||||
OS_VENDOR = NetBSD
|
||||
REQUIRED_OS_VERSION = 3.0
|
||||
endif
|
||||
|
||||
ifeq ($(SYSTEM_UNAME), OpenBSD)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = openbsd
|
||||
OS_VENDOR = OpenBSD
|
||||
REQUIRED_OS_VERSION = 4.9
|
||||
endif
|
||||
|
||||
# Platform settings specific to BSD
|
||||
ifeq ($(PLATFORM), bsd)
|
||||
OS_VERSION := $(shell uname -r)
|
||||
# Arch and OS name/version
|
||||
mach := $(shell uname -m)
|
||||
archExpr = case "$(mach)" in \
|
||||
i[3-9]86) \
|
||||
echo i586 \
|
||||
;; \
|
||||
sparc64) \
|
||||
echo sparcv9 \
|
||||
;; \
|
||||
sparc*) \
|
||||
echo sparc \
|
||||
;; \
|
||||
x86_64) \
|
||||
echo x86_64 \
|
||||
;; \
|
||||
"Power Macintosh") \
|
||||
echo ppc \
|
||||
;; \
|
||||
*) \
|
||||
echo $(mach) \
|
||||
;; \
|
||||
esac
|
||||
ARCH := $(shell $(archExpr) )
|
||||
ARCH_FAMILY := $(ARCH)
|
||||
|
||||
# Darwin builds are currently universal but only include 64-bit
|
||||
#
|
||||
# ifeq ($(SYSTEM_UNAME), Darwin)
|
||||
# ifneq ($(ARCH), ppc)
|
||||
# ARCH=universal
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
|
||||
ifneq (,$(findstring $(ARCH), i586 sparc ppc universal))
|
||||
ARCH_DATA_MODEL=32
|
||||
else
|
||||
ARCH_DATA_MODEL=64
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), i586)
|
||||
LIBARCH = i386
|
||||
else
|
||||
LIBARCH = $(ARCH)
|
||||
endif
|
||||
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP = $(LIBARCH)
|
||||
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar.gz
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# a fully built workspace.
|
||||
REQUIRED_FREE_SPACE=1500000
|
||||
# How much RAM does this machine have:
|
||||
ifeq ($(OS_VENDOR), OpenBSD)
|
||||
MB_OF_MEMORY=$(shell sysctl -n hw.physmem | awk '{print int($$NF / 1048576); }' )
|
||||
else
|
||||
MB_OF_MEMORY=$(shell (sysctl -n hw.physmem64 2> /dev/null || sysctl -n hw.physmem) | awk '{print int($$NF / 1048576); }' )
|
||||
endif
|
||||
endif
|
||||
|
||||
# Windows with and without CYGWIN will be slightly different
|
||||
ifeq ($(SYSTEM_UNAME), Windows_NT)
|
||||
PLATFORM = windows
|
||||
@@ -327,7 +420,7 @@ ifeq ($(PLATFORM), windows)
|
||||
endif
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# Minimum disk space needed as determined by running 'du -sk' on
|
||||
# a fully built workspace.
|
||||
REQUIRED_FREE_SPACE=500000
|
||||
# How much RAM does this machine have:
|
||||
@@ -335,8 +428,8 @@ ifeq ($(PLATFORM), windows)
|
||||
MB_OF_MEMORY := $(shell \
|
||||
if [ -f "C:/cygwin/bin/free.exe" ] ; then \
|
||||
( C:/cygwin/bin/bash.exe -c "C:/cygwin/bin/free.exe -m" ) | \
|
||||
grep Mem: | \
|
||||
sed -e 's@\ \ *@ @g' | cut -d' ' -f2 ; \
|
||||
grep Mem: | \
|
||||
sed -e 's@\ \ *@ @g' | cut -d' ' -f2 ; \
|
||||
else \
|
||||
echo "512"; \
|
||||
fi)
|
||||
@@ -392,7 +485,7 @@ ifneq ($(PLATFORM), windows)
|
||||
# Where is unwanted output to be delivered?
|
||||
DEV_NULL = /dev/null
|
||||
export DEV_NULL
|
||||
# Character used between entries in classpath
|
||||
# Character used between entries in classpath
|
||||
CLASSPATH_SEPARATOR = :
|
||||
# User name determination (set _USER)
|
||||
ifndef USER
|
||||
|
||||
@@ -1,280 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package build.tools.stripproperties;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* Reads a properties file from standard input and writes an equivalent
|
||||
* properties file without comments to standard output.
|
||||
*/
|
||||
public class StripProperties {
|
||||
|
||||
private static void error(String msg, Exception e) {
|
||||
System.err.println("ERROR: stripproperties: " + msg);
|
||||
if ( e != null ) {
|
||||
System.err.println("EXCEPTION: " + e.toString());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> parseOptions(String args[]) {
|
||||
List<String> files = new ArrayList<String>();
|
||||
for ( int i = 0; i < args.length ; i++ ) {
|
||||
if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
|
||||
String filename = args[++i];
|
||||
FileInputStream finput = null;
|
||||
byte contents[] = null;
|
||||
try {
|
||||
finput = new FileInputStream(filename);
|
||||
int byteCount = finput.available();
|
||||
if ( byteCount <= 0 ) {
|
||||
error("The -optionsfile file is empty", null);
|
||||
files = null;
|
||||
} else {
|
||||
contents = new byte[byteCount];
|
||||
int bytesRead = finput.read(contents);
|
||||
if ( byteCount != bytesRead ) {
|
||||
error("Cannot read all of -optionsfile file", null);
|
||||
files = null;
|
||||
}
|
||||
}
|
||||
} catch ( IOException e ) {
|
||||
error("cannot open " + filename, e);
|
||||
files = null;
|
||||
}
|
||||
if ( finput != null ) {
|
||||
try {
|
||||
finput.close();
|
||||
} catch ( IOException e ) {
|
||||
files = null;
|
||||
error("cannot close " + filename, e);
|
||||
}
|
||||
}
|
||||
if ( files != null && contents != null ) {
|
||||
String tokens[] = (new String(contents)).split("\\s+");
|
||||
if ( tokens.length > 0 ) {
|
||||
List<String> ofiles = parseOptions(tokens);
|
||||
if ( ofiles != null ) {
|
||||
files.addAll(ofiles);
|
||||
} else {
|
||||
error("No files found in file", null);
|
||||
files = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( files == null ) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
files.add(args[i]);
|
||||
}
|
||||
}
|
||||
return files;
|
||||
}
|
||||
|
||||
private static boolean stripFiles(List<String> files) {
|
||||
boolean ok = true;
|
||||
for ( String file : files ) {
|
||||
|
||||
Properties prop = new Properties();
|
||||
InputStream in = null;
|
||||
try {
|
||||
in = new BufferedInputStream(new FileInputStream(file));
|
||||
prop.load(in);
|
||||
} catch ( FileNotFoundException e ) {
|
||||
error("Cannot access file " + file, e);
|
||||
ok = false;
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + file, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( in != null ) {
|
||||
try {
|
||||
in.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + file, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
|
||||
OutputStream out = null;
|
||||
try {
|
||||
out = new FileOutputStream(file);
|
||||
storeProperties(prop, out);
|
||||
out.flush();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + file, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( out != null ) {
|
||||
try {
|
||||
out.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + file, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
/**
|
||||
* Strip the properties filenames supplied, replacing their contents.
|
||||
* @param args Names of properties files to process and replace contents
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
List<String> files = parseOptions(args);
|
||||
if ( files == null || !stripFiles(files) ) {
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// --- code below here is adapted from java.util.Properties ---
|
||||
|
||||
private static final String specialSaveChars = "=: \t\r\n\f#!";
|
||||
|
||||
/*
|
||||
* Converts unicodes to encoded \uxxxx
|
||||
* and writes out any of the characters in specialSaveChars
|
||||
* with a preceding slash
|
||||
*/
|
||||
private static String saveConvert(String theString, boolean escapeSpace) {
|
||||
int len = theString.length();
|
||||
StringBuffer outBuffer = new StringBuffer(len*2);
|
||||
|
||||
for(int x=0; x<len; x++) {
|
||||
char aChar = theString.charAt(x);
|
||||
switch(aChar) {
|
||||
case ' ':
|
||||
if (x == 0 || escapeSpace) {
|
||||
outBuffer.append('\\');
|
||||
}
|
||||
outBuffer.append(' ');
|
||||
break;
|
||||
case '\\':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('\\');
|
||||
break;
|
||||
case '\t':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('t');
|
||||
break;
|
||||
case '\n':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('n');
|
||||
break;
|
||||
case '\r':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('r');
|
||||
break;
|
||||
case '\f':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('f');
|
||||
break;
|
||||
default:
|
||||
if ((aChar < 0x0020) || (aChar == 0x007e) || (aChar > 0x00ff)) {
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('u');
|
||||
outBuffer.append(toHex((aChar >> 12) & 0xF));
|
||||
outBuffer.append(toHex((aChar >> 8) & 0xF));
|
||||
outBuffer.append(toHex((aChar >> 4) & 0xF));
|
||||
outBuffer.append(toHex( aChar & 0xF));
|
||||
} else {
|
||||
if (specialSaveChars.indexOf(aChar) != -1) {
|
||||
outBuffer.append('\\');
|
||||
}
|
||||
outBuffer.append(aChar);
|
||||
}
|
||||
}
|
||||
}
|
||||
return outBuffer.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the content of <code>properties</code> to <code>out</code>.
|
||||
* The format is that of Properties.store with the following modifications:
|
||||
* <ul>
|
||||
* <li>No header or date is written
|
||||
* <li>Latin-1 characters are written as single bytes, not escape sequences
|
||||
* <li>Line breaks are indicated by a single \n independent of platform
|
||||
* <ul>
|
||||
*/
|
||||
private static void storeProperties(Properties properties, OutputStream out)
|
||||
throws IOException {
|
||||
BufferedWriter awriter;
|
||||
awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
|
||||
for (Enumeration e = properties.keys(); e.hasMoreElements();) {
|
||||
String key = (String)e.nextElement();
|
||||
String val = (String)properties.get(key);
|
||||
key = saveConvert(key, true);
|
||||
|
||||
/* No need to escape embedded and trailing spaces for value, hence
|
||||
* pass false to flag.
|
||||
*/
|
||||
val = saveConvert(val, false);
|
||||
writeln(awriter, key + "=" + val);
|
||||
}
|
||||
awriter.flush();
|
||||
}
|
||||
|
||||
private static void writeln(BufferedWriter bw, String s) throws IOException {
|
||||
bw.write(s);
|
||||
bw.write("\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a nibble to a hex character
|
||||
* @param nibble the nibble to convert.
|
||||
*/
|
||||
private static char toHex(int nibble) {
|
||||
return hexDigit[(nibble & 0xF)];
|
||||
}
|
||||
|
||||
/** A table of hex digits */
|
||||
private static final char[] hexDigit = {
|
||||
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,288 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package build.tools.stripproperties;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* Reads a properties file from standard input and writes an equivalent
|
||||
* properties file without comments to standard output.
|
||||
*/
|
||||
public class StripPropertiesCorba {
|
||||
|
||||
private static void error(String msg, Exception e) {
|
||||
System.err.println("ERROR: stripproperties: " + msg);
|
||||
if ( e != null ) {
|
||||
System.err.println("EXCEPTION: " + e.toString());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> infiles = new ArrayList<String>();
|
||||
private static List<String> outfiles = new ArrayList<String>();
|
||||
|
||||
private static boolean parseOptions(String args[]) {
|
||||
boolean ok = true;
|
||||
|
||||
for ( int i = 0; i < args.length ; i++ ) {
|
||||
if ( "-clean".equals(args[i]) && i+2 < args.length ) {
|
||||
infiles.add(args[++i]);
|
||||
outfiles.add(args[++i]);
|
||||
} else if ( args[i].charAt(0)=='@') {
|
||||
String filename = args[i].substring(1);
|
||||
FileInputStream finput = null;
|
||||
byte contents[] = null;
|
||||
try {
|
||||
finput = new FileInputStream(filename);
|
||||
int byteCount = finput.available();
|
||||
if ( byteCount <= 0 ) {
|
||||
error("The @file is empty", null);
|
||||
ok = false;
|
||||
} else {
|
||||
contents = new byte[byteCount];
|
||||
int bytesRead = finput.read(contents);
|
||||
if ( byteCount != bytesRead ) {
|
||||
error("Cannot read all of @file", null);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
} catch ( IOException e ) {
|
||||
error("cannot open " + filename, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( finput != null ) {
|
||||
try {
|
||||
finput.close();
|
||||
} catch ( IOException e ) {
|
||||
ok = false;
|
||||
error("cannot close " + filename, e);
|
||||
}
|
||||
}
|
||||
if ( ok && contents != null ) {
|
||||
String tokens[] = (new String(contents)).split("\\s+");
|
||||
if ( tokens.length > 0 ) {
|
||||
ok = parseOptions(tokens);
|
||||
}
|
||||
}
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
infiles.add(args[i]);
|
||||
outfiles.add(args[i]);
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
private static boolean stripFiles(List<String> infiles, List<String> outfiles) {
|
||||
boolean ok = true;
|
||||
Iterator<String> inIter = infiles.iterator();
|
||||
Iterator<String> outIter = outfiles.iterator();
|
||||
|
||||
for (; inIter.hasNext(); ) {
|
||||
String infile = inIter.next();
|
||||
String outfile = outIter.next();
|
||||
|
||||
Properties prop = new Properties();
|
||||
InputStream in = null;
|
||||
try {
|
||||
in = new BufferedInputStream(new FileInputStream(infile));
|
||||
prop.load(in);
|
||||
} catch ( FileNotFoundException e ) {
|
||||
error("Cannot access file " + infile, e);
|
||||
ok = false;
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + infile, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( in != null ) {
|
||||
try {
|
||||
in.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + infile, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
|
||||
OutputStream out = null;
|
||||
try {
|
||||
out = new FileOutputStream(outfile);
|
||||
storeProperties(prop, out);
|
||||
out.flush();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + outfile, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( out != null ) {
|
||||
try {
|
||||
out.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + outfile, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
/**
|
||||
* Strip the properties filenames supplied, replacing their contents.
|
||||
* @param args Names of properties files to process and replace contents
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
boolean ok = parseOptions(args);
|
||||
if ( !ok || !stripFiles(infiles, outfiles) ) {
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// --- code below here is adapted from java.util.Properties ---
|
||||
|
||||
private static final String specialSaveChars = "=: \t\r\n\f#!";
|
||||
|
||||
/*
|
||||
* Converts unicodes to encoded \uxxxx
|
||||
* and writes out any of the characters in specialSaveChars
|
||||
* with a preceding slash
|
||||
*/
|
||||
private static String saveConvert(String theString, boolean escapeSpace) {
|
||||
int len = theString.length();
|
||||
StringBuffer outBuffer = new StringBuffer(len*2);
|
||||
|
||||
for(int x=0; x<len; x++) {
|
||||
char aChar = theString.charAt(x);
|
||||
switch(aChar) {
|
||||
case ' ':
|
||||
if (x == 0 || escapeSpace) {
|
||||
outBuffer.append('\\');
|
||||
}
|
||||
outBuffer.append(' ');
|
||||
break;
|
||||
case '\\':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('\\');
|
||||
break;
|
||||
case '\t':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('t');
|
||||
break;
|
||||
case '\n':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('n');
|
||||
break;
|
||||
case '\r':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('r');
|
||||
break;
|
||||
case '\f':
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('f');
|
||||
break;
|
||||
default:
|
||||
if ((aChar < 0x0020) || (aChar == 0x007e) || (aChar > 0x00ff)) {
|
||||
outBuffer.append('\\');
|
||||
outBuffer.append('u');
|
||||
outBuffer.append(toHex((aChar >> 12) & 0xF));
|
||||
outBuffer.append(toHex((aChar >> 8) & 0xF));
|
||||
outBuffer.append(toHex((aChar >> 4) & 0xF));
|
||||
outBuffer.append(toHex( aChar & 0xF));
|
||||
} else {
|
||||
if (specialSaveChars.indexOf(aChar) != -1) {
|
||||
outBuffer.append('\\');
|
||||
}
|
||||
outBuffer.append(aChar);
|
||||
}
|
||||
}
|
||||
}
|
||||
return outBuffer.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes the content of <code>properties</code> to <code>out</code>.
|
||||
* The format is that of Properties.store with the following modifications:
|
||||
* <ul>
|
||||
* <li>No header or date is written
|
||||
* <li>Latin-1 characters are written as single bytes, not escape sequences
|
||||
* <li>Line breaks are indicated by a single \n independent of platform
|
||||
* <ul>
|
||||
*/
|
||||
private static void storeProperties(Properties properties, OutputStream out)
|
||||
throws IOException {
|
||||
BufferedWriter awriter;
|
||||
awriter = new BufferedWriter(new OutputStreamWriter(out, "8859_1"));
|
||||
for (Enumeration<Object> e = properties.keys(); e.hasMoreElements();) {
|
||||
String key = (String)e.nextElement();
|
||||
String val = (String)properties.get(key);
|
||||
key = saveConvert(key, true);
|
||||
|
||||
/* No need to escape embedded and trailing spaces for value, hence
|
||||
* pass false to flag.
|
||||
*/
|
||||
val = saveConvert(val, false);
|
||||
writeln(awriter, key + "=" + val);
|
||||
}
|
||||
awriter.flush();
|
||||
}
|
||||
|
||||
private static void writeln(BufferedWriter bw, String s) throws IOException {
|
||||
bw.write(s);
|
||||
bw.write("\n");
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a nibble to a hex character
|
||||
* @param nibble the nibble to convert.
|
||||
*/
|
||||
private static char toHex(int nibble) {
|
||||
return hexDigit[(nibble & 0xF)];
|
||||
}
|
||||
|
||||
/** A table of hex digits */
|
||||
private static final char[] hexDigit = {
|
||||
'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
|
||||
};
|
||||
}
|
||||
@@ -34,7 +34,7 @@ PROGRAM = stripproperties
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
BUILDTOOL_SOURCE_ROOT = $(BUILDDIR)/tools/src
|
||||
BUILDTOOL_MAIN = $(PKGDIR)/StripProperties.java
|
||||
BUILDTOOL_MAIN = $(PKGDIR)/StripPropertiesCorba.java
|
||||
|
||||
#
|
||||
# Build tool jar rules.
|
||||
|
||||
259
corba/makefiles/Makefile
Normal file
259
corba/makefiles/Makefile
Normal file
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -82,6 +82,6 @@ public class DynAnyFactoryImpl
|
||||
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAnyFactory:1.0" };
|
||||
|
||||
public String[] _ids() {
|
||||
return __ids;
|
||||
return (String[]) __ids.clone();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -195,6 +195,6 @@ abstract class DynAnyImpl extends org.omg.CORBA.LocalObject implements DynAny
|
||||
private String[] __ids = { "IDL:omg.org/DynamicAny/DynAny:1.0" };
|
||||
|
||||
public String[] _ids() {
|
||||
return __ids;
|
||||
return (String[]) __ids.clone();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -217,7 +217,7 @@ public final class ClientRequestInfoImpl
|
||||
|
||||
// ClientRequestInfo validity table (see ptc/00-08-06 table 21-1).
|
||||
// Note: These must be in the same order as specified in contants.
|
||||
protected static final boolean validCall[][] = {
|
||||
private static final boolean validCall[][] = {
|
||||
// LEGEND:
|
||||
// s_req = send_request r_rep = receive_reply
|
||||
// s_pol = send_poll r_exc = receive_exception
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -195,7 +195,7 @@ public final class ServerRequestInfoImpl
|
||||
|
||||
// ServerRequestInfo validity table (see ptc/00-08-06 table 21-2).
|
||||
// Note: These must be in the same order as specified in contants.
|
||||
protected static final boolean validCall[][] = {
|
||||
private static final boolean validCall[][] = {
|
||||
// LEGEND:
|
||||
// r_rsc = receive_request_service_contexts
|
||||
// r_req = receive_request
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -130,10 +130,23 @@ public class Util implements javax.rmi.CORBA.UtilDelegate
|
||||
private UtilSystemException utilWrapper = UtilSystemException.get(
|
||||
CORBALogDomains.RPC_ENCODING);
|
||||
|
||||
public static Util instance = null;
|
||||
private static Util instance = null;
|
||||
|
||||
public Util() {
|
||||
instance = this;
|
||||
setInstance(this);
|
||||
}
|
||||
|
||||
private static void setInstance( Util util ) {
|
||||
assert instance == null : "Instance already defined";
|
||||
instance = util;
|
||||
}
|
||||
|
||||
public static Util getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static boolean isInstanceDefined() {
|
||||
return instance != null;
|
||||
}
|
||||
|
||||
// Used by TOAFactory.shutdown to unexport all targets for this
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -93,7 +93,7 @@ public abstract class POAPolicyMediatorBase_R extends POAPolicyMediatorBase {
|
||||
|
||||
activeObjectMap.putServant( servant, entry ) ;
|
||||
|
||||
if (Util.instance != null) {
|
||||
if (Util.isInstanceDefined()) {
|
||||
POAManagerImpl pm = (POAManagerImpl)poa.the_POAManager() ;
|
||||
POAFactory factory = pm.getFactory() ;
|
||||
factory.registerPOAForServant(poa, servant);
|
||||
@@ -129,7 +129,7 @@ public abstract class POAPolicyMediatorBase_R extends POAPolicyMediatorBase {
|
||||
|
||||
activeObjectMap.remove(key);
|
||||
|
||||
if (Util.instance != null) {
|
||||
if (Util.isInstanceDefined()) {
|
||||
POAManagerImpl pm = (POAManagerImpl)poa.the_POAManager() ;
|
||||
POAFactory factory = pm.getFactory() ;
|
||||
factory.unregisterPOAForServant(poa, s);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -78,8 +78,8 @@ public class TOAFactory implements ObjectAdapterFactory
|
||||
|
||||
public void shutdown( boolean waitForCompletion )
|
||||
{
|
||||
if (Util.instance != null) {
|
||||
Util.instance.unregisterTargetsForORB(orb);
|
||||
if (Util.isInstanceDefined()) {
|
||||
Util.getInstance().unregisterTargetsForORB(orb);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -106,7 +106,9 @@ public class ParserTable {
|
||||
|
||||
public ParserData[] getParserData()
|
||||
{
|
||||
return parserData ;
|
||||
ParserData[] parserArray = new ParserData[parserData.length];
|
||||
System.arraycopy(parserData, 0, parserArray, 0, parserData.length);
|
||||
return parserArray;
|
||||
}
|
||||
|
||||
private ParserTable() {
|
||||
|
||||
@@ -1,3 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package com.sun.corba.se.impl.orbutil ;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -62,7 +62,7 @@ public class RepositoryId_1_3 {
|
||||
// legal use of '.' in a Java name.
|
||||
|
||||
public static final RepositoryIdCache_1_3 cache = new RepositoryIdCache_1_3();
|
||||
public static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
private static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
||||
@@ -180,7 +180,7 @@ public class RepositoryId_1_3 {
|
||||
public static final String kRemoteTypeStr = "";
|
||||
public static final String kRemoteValueRepID = "";
|
||||
|
||||
public static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
private static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialArrayTypeStrings.put("CORBA.WStringValue", new StringBuffer(java.lang.String.class.getName()));
|
||||
@@ -189,7 +189,7 @@ public class RepositoryId_1_3 {
|
||||
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesRepIDs.put(java.lang.String.class, kWStringValueRepID);
|
||||
@@ -197,7 +197,7 @@ public class RepositoryId_1_3 {
|
||||
kSpecialCasesRepIDs.put(java.rmi.Remote.class, kRemoteValueRepID);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesStubValues.put(java.lang.String.class, kWStringStubValue);
|
||||
@@ -209,7 +209,7 @@ public class RepositoryId_1_3 {
|
||||
}
|
||||
|
||||
|
||||
public static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesVersions.put(java.lang.String.class, kWStringValueHash);
|
||||
@@ -220,7 +220,7 @@ public class RepositoryId_1_3 {
|
||||
kSpecialCasesVersions.put(java.rmi.Remote.class, kRemoteValueHash);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesClasses.put(kWStringTypeStr, java.lang.String.class);
|
||||
@@ -232,7 +232,7 @@ public class RepositoryId_1_3 {
|
||||
//kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesArrayPrefix.put(java.lang.String.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
@@ -243,7 +243,7 @@ public class RepositoryId_1_3 {
|
||||
kSpecialCasesArrayPrefix.put(java.rmi.Remote.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
private static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialPrimitives.put("int","long");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -63,7 +63,7 @@ public class RepositoryId_1_3_1 {
|
||||
// uniformly, and is safe because that is the only
|
||||
// legal use of '.' in a Java name.
|
||||
|
||||
public static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
private static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
||||
@@ -198,7 +198,7 @@ public class RepositoryId_1_3_1 {
|
||||
public static final String kRemoteTypeStr = "";
|
||||
public static final String kRemoteValueRepID = "";
|
||||
|
||||
public static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
private static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialArrayTypeStrings.put("CORBA.WStringValue", new StringBuffer(java.lang.String.class.getName()));
|
||||
@@ -207,7 +207,7 @@ public class RepositoryId_1_3_1 {
|
||||
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesRepIDs.put(java.lang.String.class, kWStringValueRepID);
|
||||
@@ -215,7 +215,7 @@ public class RepositoryId_1_3_1 {
|
||||
kSpecialCasesRepIDs.put(java.rmi.Remote.class, kRemoteValueRepID);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesStubValues.put(java.lang.String.class, kWStringStubValue);
|
||||
@@ -227,7 +227,7 @@ public class RepositoryId_1_3_1 {
|
||||
}
|
||||
|
||||
|
||||
public static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesVersions.put(java.lang.String.class, kWStringValueHash);
|
||||
@@ -238,7 +238,7 @@ public class RepositoryId_1_3_1 {
|
||||
kSpecialCasesVersions.put(java.rmi.Remote.class, kRemoteValueHash);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesClasses.put(kWStringTypeStr, java.lang.String.class);
|
||||
@@ -250,7 +250,7 @@ public class RepositoryId_1_3_1 {
|
||||
//kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesArrayPrefix.put(java.lang.String.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
@@ -261,7 +261,7 @@ public class RepositoryId_1_3_1 {
|
||||
kSpecialCasesArrayPrefix.put(java.rmi.Remote.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
private static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialPrimitives.put("int","long");
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package com.sun.corba.se.impl.presentation.rmi ;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -52,7 +52,7 @@ public abstract class LocalClientRequestDispatcherBase implements LocalClientReq
|
||||
|
||||
// If isNextIsLocalValid.get() == Boolean.TRUE,
|
||||
// the next call to isLocal should be valid
|
||||
protected static ThreadLocal isNextCallValid = new ThreadLocal() {
|
||||
private static final ThreadLocal isNextCallValid = new ThreadLocal() {
|
||||
protected synchronized Object initialValue() {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -57,7 +57,7 @@ public class RepositoryId {
|
||||
// uniformly, and is safe because that is the only
|
||||
// legal use of '.' in a Java name.
|
||||
|
||||
public static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
private static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
||||
@@ -95,7 +95,7 @@ public class RepositoryId {
|
||||
private static IdentityHashtable classIDLToRepStr = new IdentityHashtable();
|
||||
private static IdentityHashtable classSeqToRepStr = new IdentityHashtable();
|
||||
|
||||
private static IdentityHashtable repStrToByteArray = new IdentityHashtable();
|
||||
private static final IdentityHashtable repStrToByteArray = new IdentityHashtable();
|
||||
private static Hashtable repStrToClass = new Hashtable();
|
||||
|
||||
private String repId = null;
|
||||
@@ -192,7 +192,7 @@ public class RepositoryId {
|
||||
public static final String kRemoteTypeStr = "";
|
||||
public static final String kRemoteValueRepID = "";
|
||||
|
||||
public static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
private static final Hashtable kSpecialArrayTypeStrings = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialArrayTypeStrings.put("CORBA.WStringValue", new StringBuffer(java.lang.String.class.getName()));
|
||||
@@ -201,7 +201,7 @@ public class RepositoryId {
|
||||
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesRepIDs = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesRepIDs.put(java.lang.String.class, kWStringValueRepID);
|
||||
@@ -209,7 +209,7 @@ public class RepositoryId {
|
||||
kSpecialCasesRepIDs.put(java.rmi.Remote.class, kRemoteValueRepID);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesStubValues = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesStubValues.put(java.lang.String.class, kWStringStubValue);
|
||||
@@ -221,7 +221,7 @@ public class RepositoryId {
|
||||
}
|
||||
|
||||
|
||||
public static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesVersions = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesVersions.put(java.lang.String.class, kWStringValueHash);
|
||||
@@ -232,7 +232,7 @@ public class RepositoryId {
|
||||
kSpecialCasesVersions.put(java.rmi.Remote.class, kRemoteValueHash);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesClasses = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesClasses.put(kWStringTypeStr, java.lang.String.class);
|
||||
@@ -244,7 +244,7 @@ public class RepositoryId {
|
||||
//kSpecialCasesClasses.put(kRemoteTypeStr, java.rmi.Remote.class);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
private static final Hashtable kSpecialCasesArrayPrefix = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialCasesArrayPrefix.put(java.lang.String.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
@@ -255,7 +255,7 @@ public class RepositoryId {
|
||||
kSpecialCasesArrayPrefix.put(java.rmi.Remote.class, kValuePrefix + kSequencePrefix + kCORBAPrefix);
|
||||
}
|
||||
|
||||
public static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
private static final Hashtable kSpecialPrimitives = new Hashtable();
|
||||
|
||||
static {
|
||||
kSpecialPrimitives.put("int","long");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -58,7 +58,7 @@ public abstract class CORBALogDomains {
|
||||
private CORBALogDomains() {}
|
||||
|
||||
// Top level log domain for CORBA
|
||||
public static String TOP_LEVEL_DOMAIN = "javax.enterprise.resource.corba";
|
||||
public static final String TOP_LEVEL_DOMAIN = "javax.enterprise.resource.corba";
|
||||
|
||||
public static final String RPC = "rpc" ;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -138,7 +138,7 @@ public abstract class _CodeBaseImplBase extends org.omg.CORBA.portable.ObjectImp
|
||||
|
||||
public String[] _ids ()
|
||||
{
|
||||
return __ids;
|
||||
return (String[]) __ids.clone();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -71,6 +71,34 @@ public class IDLNames implements sun.rmi.rmic.iiop.Constants {
|
||||
(byte)'F',
|
||||
};
|
||||
|
||||
// Legal IDL Identifier characters (1 = legal). Note
|
||||
// that '.' (2E) is marked as legal even though it is
|
||||
// not legal in IDL. This allows us to treat a fully
|
||||
// qualified Java name with '.' package separators
|
||||
// uniformly, and is safe because that is the only
|
||||
// legal use of '.' in a Java name.
|
||||
|
||||
private static final byte[] IDL_IDENTIFIER_CHARS = {
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8 9 a b c d e f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 00-0f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 10-1f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,1,0, // 20-2f
|
||||
1,1,1,1, 1,1,1,1, 1,1,0,0, 0,0,0,0, // 30-3f
|
||||
0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 40-4f
|
||||
1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,1, // 50-5f
|
||||
0,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // 60-6f
|
||||
1,1,1,1, 1,1,1,1, 1,1,1,0, 0,0,0,0, // 70-7f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 80-8f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 90-9f
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // a0-af
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // b0-bf
|
||||
1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // c0-cf
|
||||
0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // d0-df
|
||||
1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1, // e0-ef
|
||||
0,1,1,1, 1,1,1,0, 1,1,1,1, 1,0,0,1, // f0-ff
|
||||
};
|
||||
|
||||
//_____________________________________________________________________
|
||||
// Public Interfaces
|
||||
//_____________________________________________________________________
|
||||
@@ -139,7 +167,7 @@ public class IDLNames implements sun.rmi.rmic.iiop.Constants {
|
||||
result = replace(result,"x\\U","U");
|
||||
|
||||
// Now see if we have any remaining illegal characters (see
|
||||
// RepositoryId.IDL_IDENTIFIER_CHARS array)...
|
||||
// IDL_IDENTIFIER_CHARS array)...
|
||||
|
||||
int length = result.length();
|
||||
StringBuffer buffer = null;
|
||||
@@ -148,7 +176,7 @@ public class IDLNames implements sun.rmi.rmic.iiop.Constants {
|
||||
|
||||
char c = result.charAt(i);
|
||||
|
||||
if (c > 255 || RepositoryId.IDL_IDENTIFIER_CHARS[c] == 0) {
|
||||
if (c > 255 || IDL_IDENTIFIER_CHARS[c] == 0) {
|
||||
|
||||
// We gotta convert. Have we already started?
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -425,7 +425,7 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
|
||||
// Write the _ids() method...
|
||||
|
||||
p.plnI("public String[] _ids() { ");
|
||||
p.pln("return _type_ids;");
|
||||
p.pln("return (String[]) _type_ids.clone();");
|
||||
p.pOln("}");
|
||||
|
||||
// Get all the methods and write each stub method...
|
||||
@@ -1860,11 +1860,11 @@ public class StubGenerator extends sun.rmi.rmic.iiop.Generator {
|
||||
{
|
||||
if(POATie){
|
||||
p.plnI("public String[] _all_interfaces(org.omg.PortableServer.POA poa, byte[] objectId){");
|
||||
p.pln("return _type_ids;");
|
||||
p.pln("return (String[]) _type_ids.clone();");
|
||||
p.pOln("}");
|
||||
} else {
|
||||
p.plnI("public String[] _ids() { ");
|
||||
p.pln("return _type_ids;");
|
||||
p.pln("return (String[]) _type_ids.clone();");
|
||||
p.pOln("}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -26,7 +26,7 @@
|
||||
#
|
||||
|
||||
# Get clones of all nested repositories
|
||||
sh ./make/scripts/hgforest.sh clone
|
||||
sh ./make/scripts/hgforest.sh clone $*
|
||||
|
||||
# Update all existing repositories to the latest sources
|
||||
sh ./make/scripts/hgforest.sh pull -u
|
||||
|
||||
@@ -215,3 +215,46 @@ fe2c8764998112b7fefcd7d41599714813ae4327 jdk8-b20
|
||||
dcc292399a39113957eebbd3e487b7e05e2c79fc hs23-b11
|
||||
e850d8e7ea54b91c7aa656e297f0f9f38dd4c296 jdk8-b23
|
||||
9e177d44b10fe92ecffa965fef9c5ac5433c1b46 hs23-b12
|
||||
a80fd4f45d7aaa154ed2f86a129f3c9c4035ec7a jdk8-b24
|
||||
b22de824749922986ce4d442bed029916b832807 hs23-b13
|
||||
64b46f975ab82948c1e021e17775ff4fab8bc40e hs23-b14
|
||||
9ad8feb5afbddec46d3cfe29fb5f73c2e99d5a43 jdk8-b25
|
||||
d71e662fe03741b6de498ca2077220148405a978 hs23-b15
|
||||
fd3060701216a11c0df6dcd053c6fd7c2b17a42c jdk8-b26
|
||||
f92a171cf0071ca6c3fa8231d7d570377f8b2f4d hs23-b16
|
||||
f92a171cf0071ca6c3fa8231d7d570377f8b2f4d hs23-b16
|
||||
931e5f39e365a0d550d79148ff87a7f9e864d2e1 hs23-b16
|
||||
3b24e7e01d20ca590d0f86b1222bb7c3f1a2aa2d jdk8-b27
|
||||
975c4105f1e2ef1190a75b77124033f1fd4290b5 hs24-b01
|
||||
b183b0863611b85dbac16f3b08b40ba978756d19 jdk8-b28
|
||||
030b5306d60f140e822e4a6d301744cb110ff0c8 hs24-b02
|
||||
b45b5c564098c58ea69e7cff3f7d341f0254dd1d jdk8-b29
|
||||
d61761bf305031c94f7f8eca49abd978b7d3c5da jdk8-b30
|
||||
dfae0140457cfb2c381d7679735fbedbae862c62 hs24-b03
|
||||
f4767e53d6e0d5da7e3f1775904076cce54247c1 hs24-b04
|
||||
0cd147eaa673d1642b2f466f5dc257cf192db524 jdk8-b31
|
||||
27863e4586de38be7dd17da4163f542038f4d1d7 hs24-b05
|
||||
25410a347ebb0bef166c4338a90d9dea82463a20 jdk8-b32
|
||||
cd47da9383cd932cb2b659064057feafa2a91134 hs24-b06
|
||||
785bcf415ead2eaa5f6677aaf528481008140bac jdk8-b33
|
||||
7c6aba65acd2c334f1c3512b574f9038cddac24b hs24-b07
|
||||
f284b08835584517c1ca3dd67341f569e763841f jdk8-b34
|
||||
f621660a297baa48fab9dca28e99d318826e8304 jdk8-b35
|
||||
dff6e3459210f8dd0430b9b03ccc99280560da30 hs24-b08
|
||||
50b4400ca1ecb2ac2fde35f5e53ec8f04b86be7f jdk8-b36
|
||||
bfcf92bfefb82da00f7fdbf0d9273feaa0a9456d jdk8-b37
|
||||
7d5ec8bf38d1b12e0e09ec381f10976b8beede3b hs24-b09
|
||||
637c3f5f068f88fb9ec9c5867341cf59fd5ebedc jdk8-b38
|
||||
73147e6c48813b5fee904aa33f79a77103250ff4 hs24-b10
|
||||
96a403721094ecdaf6a1f4f52ebd0a82e07df199 jdk8-b39
|
||||
14b0e07ab9a6fa1662414496b7e07ac8450cf517 hs24-b11
|
||||
ff9decc8235d5af80ea45fda4ecbe643ea252564 jdk8-b40
|
||||
785573170238f0eae6dc8e22ecf1050fbc9ea055 hs24-b12
|
||||
37add4fa0296705f67481e1fd50e2900cd25e39b jdk8-b41
|
||||
bd568544be7fcd12a9327e6c448592198d57b043 hs24-b13
|
||||
55954061c6e8750ea39a63523fd65d580db6eeb1 jdk8-b42
|
||||
e77b8e0ed1f84e3e268239e276c7ab64fa573baa jdk8-b43
|
||||
5ba29a1db46ecb80a321ca873adb56a3fe6ad320 hs24-b14
|
||||
831e5c76a20af18f3c08c5a95ed31be0e128a010 jdk8-b44
|
||||
9d5f20961bc5846fa8d098d534effafbbdae0a58 jdk8-b45
|
||||
40e5a3f2907ed02b335c7caa8ecf068cc801380d hs24-b15
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2002, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
@@ -40,7 +40,7 @@ OBJS = $(SOURCES:.c=.o)
|
||||
|
||||
LIBS = -lthread_db
|
||||
|
||||
CFLAGS = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES)
|
||||
CFLAGS = -c -fPIC -g -D_GNU_SOURCE -D$(ARCH) $(INCLUDES) -D_FILE_OFFSET_BITS=64
|
||||
|
||||
LIBSA = $(ARCH)/libsaproc.so
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -50,10 +50,6 @@ int pathmap_open(const char* name) {
|
||||
char alt_path[PATH_MAX + 1];
|
||||
|
||||
init_alt_root();
|
||||
fd = open(name, O_RDONLY);
|
||||
if (fd >= 0) {
|
||||
return fd;
|
||||
}
|
||||
|
||||
if (alt_root_len > 0) {
|
||||
strcpy(alt_path, alt_root);
|
||||
@@ -73,6 +69,11 @@ int pathmap_open(const char* name) {
|
||||
return fd;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fd = open(name, O_RDONLY);
|
||||
if (fd >= 0) {
|
||||
return fd;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
||||
@@ -440,7 +440,7 @@ static bool sort_map_array(struct ps_prochandle* ph) {
|
||||
int j = 0;
|
||||
print_debug("---- sorted virtual address map ----\n");
|
||||
for (j = 0; j < ph->core->num_maps; j++) {
|
||||
print_debug("base = 0x%lx\tsize = %d\n", ph->core->map_array[j]->vaddr,
|
||||
print_debug("base = 0x%lx\tsize = %zu\n", ph->core->map_array[j]->vaddr,
|
||||
ph->core->map_array[j]->memsz);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -572,10 +572,10 @@ public class HotSpotAgent {
|
||||
|
||||
if (cpu.equals("x86")) {
|
||||
machDesc = new MachineDescriptionIntelX86();
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||
machDesc = new MachineDescriptionAMD64();
|
||||
} else {
|
||||
throw new DebuggerException("BSD only supported on x86/amd64");
|
||||
throw new DebuggerException("BSD only supported on x86/x86_64. Current arch: " + cpu);
|
||||
}
|
||||
|
||||
BsdDebuggerLocal dbg = new BsdDebuggerLocal(machDesc, !isServer);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -657,7 +657,7 @@ public class BugSpot extends JPanel {
|
||||
while (fr != null) {
|
||||
trace.add(new StackTraceEntry(fr, getCDebugger()));
|
||||
try {
|
||||
fr = fr.sender();
|
||||
fr = fr.sender(t);
|
||||
} catch (AddressException e) {
|
||||
e.printStackTrace();
|
||||
showMessageDialog("Error while walking stack; stack trace will be truncated\n(see console for details)",
|
||||
|
||||
@@ -762,10 +762,10 @@ public class BugSpotAgent {
|
||||
|
||||
if (cpu.equals("x86")) {
|
||||
machDesc = new MachineDescriptionIntelX86();
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || (cpu.equals("x86_64"))) {
|
||||
machDesc = new MachineDescriptionAMD64();
|
||||
} else {
|
||||
throw new DebuggerException("Bsd only supported on x86/amd64");
|
||||
throw new DebuggerException("Bsd only supported on x86/x86_64. Current arch: " + cpu);
|
||||
}
|
||||
|
||||
// Note we do not use a cache for the local debugger in server
|
||||
|
||||
@@ -90,7 +90,7 @@ class BsdCDebugger implements CDebugger {
|
||||
Address pc = context.getRegisterAsAddress(X86ThreadContext.EIP);
|
||||
if (pc == null) return null;
|
||||
return new BsdX86CFrame(dbg, ebp, pc);
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||
AMD64ThreadContext context = (AMD64ThreadContext) thread.getContext();
|
||||
Address rbp = context.getRegisterAsAddress(AMD64ThreadContext.RBP);
|
||||
if (rbp == null) return null;
|
||||
|
||||
@@ -33,7 +33,7 @@ class BsdThreadContextFactory {
|
||||
String cpu = dbg.getCPU();
|
||||
if (cpu.equals("x86")) {
|
||||
return new BsdX86ThreadContext(dbg);
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||
return new BsdAMD64ThreadContext(dbg);
|
||||
} else {
|
||||
throw new RuntimeException("cpu " + cpu + " is not yet supported");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,6 +25,7 @@
|
||||
package sun.jvm.hotspot.debugger.bsd.amd64;
|
||||
|
||||
import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.amd64.*;
|
||||
import sun.jvm.hotspot.debugger.bsd.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
@@ -51,8 +52,11 @@ final public class BsdAMD64CFrame extends BasicCFrame {
|
||||
return rbp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (rbp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
AMD64ThreadContext context = (AMD64ThreadContext) thread.getContext();
|
||||
Address rsp = context.getRegisterAsAddress(AMD64ThreadContext.RSP);
|
||||
|
||||
if ( (rbp == null) || rbp.lessThan(rsp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -28,6 +28,7 @@ import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.bsd.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
import sun.jvm.hotspot.debugger.x86.*;
|
||||
|
||||
final public class BsdX86CFrame extends BasicCFrame {
|
||||
// package/class internals only
|
||||
@@ -52,8 +53,11 @@ final public class BsdX86CFrame extends BasicCFrame {
|
||||
return ebp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (ebp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
X86ThreadContext context = (X86ThreadContext) thread.getContext();
|
||||
Address esp = context.getRegisterAsAddress(X86ThreadContext.ESP);
|
||||
|
||||
if ( (ebp == null) || ebp.lessThan(esp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -34,7 +34,7 @@ import sun.jvm.hotspot.debugger.*;
|
||||
|
||||
public interface CFrame {
|
||||
/** Returns null when no more frames on stack */
|
||||
public CFrame sender();
|
||||
public CFrame sender(ThreadProxy th);
|
||||
|
||||
/** Get the program counter of this frame */
|
||||
public Address pc();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,6 +25,7 @@
|
||||
package sun.jvm.hotspot.debugger.cdbg.basic.amd64;
|
||||
|
||||
import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.amd64.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
|
||||
@@ -43,8 +44,11 @@ public class AMD64CFrame extends BasicCFrame {
|
||||
this.pc = pc;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (rbp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
AMD64ThreadContext context = (AMD64ThreadContext) thread.getContext();
|
||||
Address rsp = context.getRegisterAsAddress(AMD64ThreadContext.RSP);
|
||||
|
||||
if ( (rbp == null) || rbp.lessThan(rsp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,6 +25,7 @@
|
||||
package sun.jvm.hotspot.debugger.cdbg.basic.x86;
|
||||
|
||||
import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.x86.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
|
||||
@@ -43,8 +44,11 @@ public class X86CFrame extends BasicCFrame {
|
||||
this.pc = pc;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (ebp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
X86ThreadContext context = (X86ThreadContext) thread.getContext();
|
||||
Address esp = context.getRegisterAsAddress(X86ThreadContext.ESP);
|
||||
|
||||
if ( (ebp == null) || ebp.lessThan(esp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -25,6 +25,7 @@
|
||||
package sun.jvm.hotspot.debugger.linux.amd64;
|
||||
|
||||
import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.amd64.*;
|
||||
import sun.jvm.hotspot.debugger.linux.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
@@ -51,8 +52,11 @@ final public class LinuxAMD64CFrame extends BasicCFrame {
|
||||
return rbp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (rbp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
AMD64ThreadContext context = (AMD64ThreadContext) thread.getContext();
|
||||
Address rsp = context.getRegisterAsAddress(AMD64ThreadContext.RSP);
|
||||
|
||||
if ( (rbp == null) || rbp.lessThan(rsp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -57,7 +57,7 @@ final public class LinuxSPARCCFrame extends BasicCFrame {
|
||||
return sp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
if (sp == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -28,6 +28,7 @@ import sun.jvm.hotspot.debugger.*;
|
||||
import sun.jvm.hotspot.debugger.linux.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.*;
|
||||
import sun.jvm.hotspot.debugger.cdbg.basic.*;
|
||||
import sun.jvm.hotspot.debugger.x86.*;
|
||||
|
||||
final public class LinuxX86CFrame extends BasicCFrame {
|
||||
// package/class internals only
|
||||
@@ -52,8 +53,11 @@ final public class LinuxX86CFrame extends BasicCFrame {
|
||||
return ebp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
if (ebp == null) {
|
||||
public CFrame sender(ThreadProxy thread) {
|
||||
X86ThreadContext context = (X86ThreadContext) thread.getContext();
|
||||
Address esp = context.getRegisterAsAddress(X86ThreadContext.ESP);
|
||||
|
||||
if ( (ebp == null) || ebp.lessThan(esp) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -37,7 +37,7 @@ final class ProcCFrame extends BasicCFrame {
|
||||
return fp;
|
||||
}
|
||||
|
||||
public CFrame sender() {
|
||||
public CFrame sender(ThreadProxy t) {
|
||||
return sender;
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ public class ProcDebuggerLocal extends DebuggerBase implements ProcDebugger {
|
||||
pcRegIndex = X86ThreadContext.EIP;
|
||||
fpRegIndex = X86ThreadContext.EBP;
|
||||
unalignedAccessesOkay = true;
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||
threadFactory = new ProcAMD64ThreadFactory(this);
|
||||
pcRegIndex = AMD64ThreadContext.RIP;
|
||||
fpRegIndex = AMD64ThreadContext.RBP;
|
||||
|
||||
@@ -64,7 +64,7 @@ public class RemoteDebuggerClient extends DebuggerBase implements JVMDebugger {
|
||||
cachePageSize = 4096;
|
||||
cacheNumPages = parseCacheNumPagesProperty(cacheSize / cachePageSize);
|
||||
unalignedAccessesOkay = true;
|
||||
} else if (cpu.equals("amd64")) {
|
||||
} else if (cpu.equals("amd64") || cpu.equals("x86_64")) {
|
||||
threadFactory = new RemoteAMD64ThreadFactory(this);
|
||||
cachePageSize = 4096;
|
||||
cacheNumPages = parseCacheNumPagesProperty(cacheSize / cachePageSize);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -42,7 +42,7 @@ import sun.jvm.hotspot.types.TypeDataBase;
|
||||
public class HeapRegionSeq extends VMObject {
|
||||
// HeapRegion** _regions;
|
||||
static private AddressField regionsField;
|
||||
// size_t _length;
|
||||
// uint _length;
|
||||
static private CIntegerField lengthField;
|
||||
|
||||
static {
|
||||
|
||||
@@ -40,9 +40,9 @@ import sun.jvm.hotspot.types.TypeDataBase;
|
||||
// Mirror class for HeapRegionSetBase. Represents a group of regions.
|
||||
|
||||
public class HeapRegionSetBase extends VMObject {
|
||||
// size_t _length;
|
||||
// uint _length;
|
||||
static private CIntegerField lengthField;
|
||||
// size_t _region_num;
|
||||
// uint _region_num;
|
||||
static private CIntegerField regionNumField;
|
||||
// size_t _total_used_bytes;
|
||||
static private CIntegerField totalUsedBytesField;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -217,8 +217,8 @@ abstract class ConnectorImpl implements Connector {
|
||||
}
|
||||
|
||||
protected void checkNativeLink(SecurityManager sm, String os) {
|
||||
if (os.equals("SunOS") || os.equals("Linux")) {
|
||||
// link "saproc" - SA native library on SunOS and Linux?
|
||||
if (os.equals("SunOS") || os.equals("Linux") || os.contains("OS X")) {
|
||||
// link "saproc" - SA native library on SunOS, Linux, and Mac OS X
|
||||
sm.checkLink("saproc");
|
||||
} else if (os.startsWith("Windows")) {
|
||||
// link "sawindbg" - SA native library on Windows.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -889,15 +889,9 @@ public class VirtualMachineImpl extends MirrorImpl implements PathSearchingVirtu
|
||||
Klass kls = ((ReferenceTypeImpl)type).ref();
|
||||
if (kls instanceof InstanceKlass) {
|
||||
InstanceKlass ik = (InstanceKlass) kls;
|
||||
if (ik.isInterface()) {
|
||||
if (ik.nofImplementors() == 0L) {
|
||||
return new ArrayList(0);
|
||||
}
|
||||
} else {
|
||||
// if the Klass is final or if there are no subklasses loaded yet
|
||||
if (ik.getAccessFlagsObj().isFinal() || ik.getSubklassKlass() == null) {
|
||||
includeSubtypes = false;
|
||||
}
|
||||
// if the Klass is final or if there are no subklasses loaded yet
|
||||
if (ik.getAccessFlagsObj().isFinal() || ik.getSubklassKlass() == null) {
|
||||
includeSubtypes = false;
|
||||
}
|
||||
} else {
|
||||
// no subtypes for primitive array types
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2012 Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -42,15 +42,6 @@ public class LoaderConstraintTable extends TwoOopHashtable {
|
||||
|
||||
private static synchronized void initialize(TypeDataBase db) {
|
||||
Type type = db.lookupType("LoaderConstraintTable");
|
||||
nofBuckets = db.lookupIntConstant("LoaderConstraintTable::_nof_buckets").intValue();
|
||||
}
|
||||
|
||||
// Fields
|
||||
private static int nofBuckets;
|
||||
|
||||
// Accessors
|
||||
public static int getNumOfBuckets() {
|
||||
return nofBuckets;
|
||||
}
|
||||
|
||||
public LoaderConstraintTable(Address addr) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@@ -36,7 +36,6 @@ public class SystemDictionary {
|
||||
private static AddressField placeholdersField;
|
||||
private static AddressField loaderConstraintTableField;
|
||||
private static sun.jvm.hotspot.types.OopField javaSystemLoaderField;
|
||||
private static int nofBuckets;
|
||||
|
||||
private static sun.jvm.hotspot.types.OopField objectKlassField;
|
||||
private static sun.jvm.hotspot.types.OopField classLoaderKlassField;
|
||||
@@ -62,7 +61,6 @@ public class SystemDictionary {
|
||||
placeholdersField = type.getAddressField("_placeholders");
|
||||
loaderConstraintTableField = type.getAddressField("_loader_constraints");
|
||||
javaSystemLoaderField = type.getOopField("_java_system_loader");
|
||||
nofBuckets = db.lookupIntConstant("SystemDictionary::_nof_buckets").intValue();
|
||||
|
||||
objectKlassField = type.getOopField(WK_KLASS("Object_klass"));
|
||||
classLoaderKlassField = type.getOopField(WK_KLASS("ClassLoader_klass"));
|
||||
@@ -142,10 +140,6 @@ public class SystemDictionary {
|
||||
return newOop(javaSystemLoaderField.getValue());
|
||||
}
|
||||
|
||||
public static int getNumOfBuckets() {
|
||||
return nofBuckets;
|
||||
}
|
||||
|
||||
private static Oop newOop(OopHandle handle) {
|
||||
return VM.getVM().getObjectHeap().newOop(handle);
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ public class AccessFlags implements /* imports */ ClassConstants {
|
||||
// field flags
|
||||
public boolean fieldAccessWatched () { return (flags & JVM_ACC_FIELD_ACCESS_WATCHED) != 0; }
|
||||
public boolean fieldModificationWatched() { return (flags & JVM_ACC_FIELD_MODIFICATION_WATCHED) != 0; }
|
||||
public boolean fieldHasGenericSignature() { return (flags & JVM_ACC_FIELD_HAS_GENERIC_SIGNATURE)!= 0; }
|
||||
|
||||
public void printOn(PrintStream tty) {
|
||||
// prints only .class flags and not the hotspot internal flags
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
/*
|
||||
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user