mirror of
https://github.com/godotengine/buildroot.git
synced 2026-01-08 02:09:48 +03:00
Compare commits
653 Commits
2009.02
...
2009.08_rc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3190d5bf06 | ||
|
|
9be449ff55 | ||
|
|
9a6d6cf52b | ||
|
|
56fcdc9b6e | ||
|
|
81f9990e02 | ||
|
|
4840c451d9 | ||
|
|
a7b50b94bf | ||
|
|
ca5b75f7ff | ||
|
|
b062925376 | ||
|
|
44663da45b | ||
|
|
dcb752b165 | ||
|
|
ec386cbcdf | ||
|
|
bb14fc4019 | ||
|
|
37cea19340 | ||
|
|
e15c0d07e1 | ||
|
|
385e9e4ea5 | ||
|
|
0ef93af1e4 | ||
|
|
8d880c3e5c | ||
|
|
d4a8eebf59 | ||
|
|
4ff9489412 | ||
|
|
1a2433b58e | ||
|
|
33f13e393f | ||
|
|
00c8bdd561 | ||
|
|
5079d7a0b9 | ||
|
|
ff69aeea40 | ||
|
|
18865f7f2d | ||
|
|
4e9807a645 | ||
|
|
8162f3977a | ||
|
|
2a966bcd3b | ||
|
|
7a1a334c42 | ||
|
|
90a459ce4d | ||
|
|
930f3db167 | ||
|
|
2831a05d03 | ||
|
|
5d41383920 | ||
|
|
e63fd15e20 | ||
|
|
52dbe07119 | ||
|
|
d9a9501771 | ||
|
|
7e7576c3d8 | ||
|
|
f26acf61eb | ||
|
|
76dade1788 | ||
|
|
6fecd53e99 | ||
|
|
33a3e7ba2e | ||
|
|
6cd6353ff9 | ||
|
|
69f982cdad | ||
|
|
b0df9df39a | ||
|
|
4b3e11b3e7 | ||
|
|
074d73a919 | ||
|
|
314cdcbd25 | ||
|
|
53fd73611c | ||
|
|
072d89a883 | ||
|
|
660952565e | ||
|
|
27ce942e65 | ||
|
|
a248954890 | ||
|
|
c63d5d24b3 | ||
|
|
f4311822b1 | ||
|
|
b471c096d1 | ||
|
|
ba4fbdc948 | ||
|
|
c2dbefd86f | ||
|
|
57c2e79b27 | ||
|
|
c972a086e5 | ||
|
|
1f359c2fe0 | ||
|
|
eed7d8737a | ||
|
|
0cb591eb55 | ||
|
|
d639e0efee | ||
|
|
b6192fb975 | ||
|
|
261b3fc0f4 | ||
|
|
c1b3b6cab0 | ||
|
|
f91315e171 | ||
|
|
48abfcf5f0 | ||
|
|
441c122606 | ||
|
|
8c1fc169ab | ||
|
|
8cf20245a1 | ||
|
|
2845fa66ce | ||
|
|
20d2c70fbd | ||
|
|
74ecbaa23d | ||
|
|
b36a589480 | ||
|
|
6beeb755fa | ||
|
|
f2d8a44f26 | ||
|
|
ae8bbdf891 | ||
|
|
2d8153655c | ||
|
|
d776138bff | ||
|
|
1d5228acae | ||
|
|
958f2d5fa3 | ||
|
|
1a6f22d2a3 | ||
|
|
1aeeebc19b | ||
|
|
5d79f6caf0 | ||
|
|
0aa7062407 | ||
|
|
edb5ca9c52 | ||
|
|
adb9e905da | ||
|
|
ebb0495936 | ||
|
|
58050c286b | ||
|
|
715ab98169 | ||
|
|
5ddb904a86 | ||
|
|
cd0b1ce3b7 | ||
|
|
6b27f42180 | ||
|
|
56938f1873 | ||
|
|
f917e6b21b | ||
|
|
7bb5ce002c | ||
|
|
8232850c51 | ||
|
|
3e6a0a80d2 | ||
|
|
e3298fdae9 | ||
|
|
0fec1b5ce3 | ||
|
|
0adeeddb25 | ||
|
|
d4d7c7911a | ||
|
|
95b1d004f6 | ||
|
|
11eb084fc7 | ||
|
|
9e2bdce02c | ||
|
|
2fee20c837 | ||
|
|
da6f67d8f2 | ||
|
|
321c254be5 | ||
|
|
214da03d14 | ||
|
|
a2e93a0ab6 | ||
|
|
10e9b7ed08 | ||
|
|
b09d8a72d2 | ||
|
|
f08e9412ce | ||
|
|
2de62ac5ad | ||
|
|
d0f902e82e | ||
|
|
adfd17b0bc | ||
|
|
71c810ff93 | ||
|
|
ad0ccbcf30 | ||
|
|
e0debb7821 | ||
|
|
4adcb23673 | ||
|
|
b5d6f341c5 | ||
|
|
cc76043bd4 | ||
|
|
8c00f43904 | ||
|
|
2c502491f6 | ||
|
|
1956d0f6d6 | ||
|
|
5cfe019120 | ||
|
|
901b468e24 | ||
|
|
82bf777ed7 | ||
|
|
28aa0b47fb | ||
|
|
3026e9930e | ||
|
|
0afd2103f0 | ||
|
|
fd5570970e | ||
|
|
57692e2535 | ||
|
|
bd26b5821c | ||
|
|
00eddf0ee6 | ||
|
|
6c243d12d9 | ||
|
|
ea53650333 | ||
|
|
8703912fa0 | ||
|
|
e5afc25114 | ||
|
|
0167462218 | ||
|
|
1516aacdbe | ||
|
|
3a966abb62 | ||
|
|
2e71cd88e7 | ||
|
|
c1a5772aeb | ||
|
|
2c3a3af86e | ||
|
|
ddd0db77ab | ||
|
|
a1125b31af | ||
|
|
1bbceff78a | ||
|
|
d4dab10d0b | ||
|
|
8ae604912b | ||
|
|
b98de697b0 | ||
|
|
234fb283ed | ||
|
|
90c5d156f5 | ||
|
|
0a74a04e98 | ||
|
|
32154996a8 | ||
|
|
0468be6e07 | ||
|
|
264b9c115d | ||
|
|
51ef5b8122 | ||
|
|
b7d98b2d42 | ||
|
|
5818010f92 | ||
|
|
a928430ff7 | ||
|
|
99da30bf5d | ||
|
|
2945b06610 | ||
|
|
85df29b9fc | ||
|
|
e616c68acc | ||
|
|
e61606ad39 | ||
|
|
b26520ba90 | ||
|
|
e22a39fb44 | ||
|
|
533718a832 | ||
|
|
7af9cd3ac5 | ||
|
|
93308ccba3 | ||
|
|
ab5208886e | ||
|
|
263c8dc7b8 | ||
|
|
691cf5eb42 | ||
|
|
33f7d7929f | ||
|
|
ddb260707a | ||
|
|
9cf1786bf0 | ||
|
|
03bcf76223 | ||
|
|
a8fbfdff29 | ||
|
|
21da141911 | ||
|
|
95076c1ac4 | ||
|
|
0a5039dfaf | ||
|
|
627fc43262 | ||
|
|
b2c4191066 | ||
|
|
157d1c4639 | ||
|
|
11e7857989 | ||
|
|
da99a9eede | ||
|
|
6a5b9cebfe | ||
|
|
9310e12d5b | ||
|
|
40a5691f8f | ||
|
|
676032036b | ||
|
|
9456b58a8b | ||
|
|
643aa232f0 | ||
|
|
c239c1944b | ||
|
|
220dca451e | ||
|
|
56d63b6193 | ||
|
|
0b6b2e3470 | ||
|
|
1029ec82df | ||
|
|
e491611316 | ||
|
|
6fac68300e | ||
|
|
223750fba2 | ||
|
|
ee0ebdfd59 | ||
|
|
5198e6642c | ||
|
|
42eca21d2c | ||
|
|
d41f360565 | ||
|
|
82182c3e27 | ||
|
|
f6fa84f5ff | ||
|
|
871435fdb5 | ||
|
|
0ebab19479 | ||
|
|
e9bf6aac83 | ||
|
|
0b76735b47 | ||
|
|
a69b3d61fb | ||
|
|
a1a2e905d8 | ||
|
|
4ee69b6b64 | ||
|
|
4088a5294d | ||
|
|
77fad2fd74 | ||
|
|
952bf43fd5 | ||
|
|
3d89b8d64e | ||
|
|
45e11e2960 | ||
|
|
3c85ab716f | ||
|
|
3169b04725 | ||
|
|
f9af543a25 | ||
|
|
8afc339757 | ||
|
|
0f157e0cb9 | ||
|
|
8843ded099 | ||
|
|
ff01f2d29b | ||
|
|
e9782eb23b | ||
|
|
421f05c913 | ||
|
|
c9faf999f4 | ||
|
|
b46819df22 | ||
|
|
13328d223e | ||
|
|
4237b5c87f | ||
|
|
555e933bb0 | ||
|
|
3c1d6d8fc7 | ||
|
|
ab59a44160 | ||
|
|
a7ed91a957 | ||
|
|
c219988fdf | ||
|
|
316c03ed06 | ||
|
|
b94998f2cd | ||
|
|
3026c29a37 | ||
|
|
4de5e17579 | ||
|
|
60a1b8af4c | ||
|
|
6b2ba1efb1 | ||
|
|
4d010ec6b9 | ||
|
|
9820f8b80a | ||
|
|
8516b05774 | ||
|
|
8aad6604b0 | ||
|
|
b15d524afe | ||
|
|
6b4ae38d12 | ||
|
|
a9c909c51d | ||
|
|
bfcfcc1ca8 | ||
|
|
21c5e5d0d0 | ||
|
|
0a761ca8aa | ||
|
|
419257b191 | ||
|
|
8b8d3ff6c1 | ||
|
|
9e114500d5 | ||
|
|
7204488170 | ||
|
|
bb1f42e442 | ||
|
|
04bb5c6004 | ||
|
|
b124f62e23 | ||
|
|
4ba6f070e5 | ||
|
|
b85c3d628e | ||
|
|
d343d35972 | ||
|
|
3ba521fe94 | ||
|
|
1aeaae4990 | ||
|
|
30b9a6ae5b | ||
|
|
61aeb6e484 | ||
|
|
dbe3ec181f | ||
|
|
2501917e41 | ||
|
|
cf92bc23e9 | ||
|
|
8a4d526ea0 | ||
|
|
9cdff46ba0 | ||
|
|
a0352751ac | ||
|
|
a657cf77ea | ||
|
|
163a062727 | ||
|
|
6f8a717e8e | ||
|
|
032af4376f | ||
|
|
7d369f837f | ||
|
|
4a29b22438 | ||
|
|
83674f229a | ||
|
|
5a3642b43a | ||
|
|
76a6744da4 | ||
|
|
e2cac48876 | ||
|
|
923bed56c1 | ||
|
|
62083ec758 | ||
|
|
956c18a704 | ||
|
|
7c66cc18cd | ||
|
|
9dac854a11 | ||
|
|
78487cbeca | ||
|
|
0e0bd3a780 | ||
|
|
bb1b213570 | ||
|
|
e628da073b | ||
|
|
c67733f9a2 | ||
|
|
e594f5d591 | ||
|
|
17950c9ab3 | ||
|
|
01dce41217 | ||
|
|
f6d00867f9 | ||
|
|
b7c3eb7aa7 | ||
|
|
c9adae97af | ||
|
|
b7b6946b56 | ||
|
|
37de0c8cc3 | ||
|
|
8759a416c4 | ||
|
|
f46b9cda0d | ||
|
|
a4c8130640 | ||
|
|
32c9952c3f | ||
|
|
df1f80d645 | ||
|
|
98dcd8656d | ||
|
|
027aa1d2ec | ||
|
|
ff7e08083b | ||
|
|
30ee5f0560 | ||
|
|
a62ceefdd4 | ||
|
|
1f3eec6e8f | ||
|
|
038c5ee028 | ||
|
|
2f094a9247 | ||
|
|
4a653c39d4 | ||
|
|
78e8e2c74e | ||
|
|
d76155005f | ||
|
|
f856f324d4 | ||
|
|
b091877aa9 | ||
|
|
f3bce517ed | ||
|
|
8a68eb29bb | ||
|
|
c5dc5dcc00 | ||
|
|
5eeeeec056 | ||
|
|
6930ce9415 | ||
|
|
7f6e9b2e10 | ||
|
|
6d48463df6 | ||
|
|
503ab93cfe | ||
|
|
3b712a3d89 | ||
|
|
e493fc6ce5 | ||
|
|
f9c5711c07 | ||
|
|
3165260921 | ||
|
|
c52f02514d | ||
|
|
40367aa404 | ||
|
|
23795ec71f | ||
|
|
475bf3a83a | ||
|
|
a767c8bdf7 | ||
|
|
0c2043240f | ||
|
|
52cc210d88 | ||
|
|
d55d6180a2 | ||
|
|
66ef1e589a | ||
|
|
635346844c | ||
|
|
55b03d6115 | ||
|
|
c19a51f993 | ||
|
|
edfe9feee7 | ||
|
|
ef8fd64dcb | ||
|
|
a1e086da09 | ||
|
|
73f4adaa54 | ||
|
|
7f69e5369f | ||
|
|
e9cb98273d | ||
|
|
e6b271fbb0 | ||
|
|
4acb763df3 | ||
|
|
b8767865eb | ||
|
|
b2ffc1f9fa | ||
|
|
32faf35112 | ||
|
|
f276b26918 | ||
|
|
76e5c2988f | ||
|
|
dbdd03601b | ||
|
|
bd176bded3 | ||
|
|
3b4a5f59e1 | ||
|
|
5b8c84e717 | ||
|
|
bd14b0e70f | ||
|
|
a933ef66bf | ||
|
|
ff33fbe880 | ||
|
|
7092bd901d | ||
|
|
2b380f8160 | ||
|
|
4f232636f1 | ||
|
|
b87b4742e0 | ||
|
|
4d298a2d37 | ||
|
|
d26240a8cf | ||
|
|
4635eb9293 | ||
|
|
e93d65906f | ||
|
|
4ffff5ec9b | ||
|
|
d290edadb9 | ||
|
|
512d08afff | ||
|
|
7737b360df | ||
|
|
b54bedd60c | ||
|
|
bb62b139ba | ||
|
|
0c522bdc1e | ||
|
|
0a88002e64 | ||
|
|
3c15492841 | ||
|
|
6cd7c8332e | ||
|
|
4e5ecadd22 | ||
|
|
eee376bc8e | ||
|
|
32417137be | ||
|
|
40b8127db9 | ||
|
|
e88f37505f | ||
|
|
078593643a | ||
|
|
b563453ee8 | ||
|
|
265f8bb959 | ||
|
|
b5b921e185 | ||
|
|
a0366abb10 | ||
|
|
cccc5a2627 | ||
|
|
6099e286e2 | ||
|
|
fb56c53e39 | ||
|
|
2bae136f05 | ||
|
|
7e6620c410 | ||
|
|
36a70c3058 | ||
|
|
546ebed139 | ||
|
|
5646b276f2 | ||
|
|
69f91aadd7 | ||
|
|
bec705479e | ||
|
|
2caf8195a8 | ||
|
|
cdd687faf6 | ||
|
|
cecaddbf77 | ||
|
|
749c71d506 | ||
|
|
20561ef343 | ||
|
|
2cddfd259f | ||
|
|
e28e98026c | ||
|
|
4be3c6e829 | ||
|
|
5d8d6b2607 | ||
|
|
c772f41f05 | ||
|
|
d1be50be77 | ||
|
|
42ca725216 | ||
|
|
d30b334654 | ||
|
|
6c79a9615c | ||
|
|
30141c22ee | ||
|
|
a91177bf43 | ||
|
|
91149af9f3 | ||
|
|
21ab5f31f7 | ||
|
|
b78ad230d1 | ||
|
|
182418982e | ||
|
|
ed6b7a111a | ||
|
|
3803dc14e4 | ||
|
|
0fadec67a8 | ||
|
|
ed4a22b4f5 | ||
|
|
3467cf7305 | ||
|
|
a870e46762 | ||
|
|
f7b3146144 | ||
|
|
bae2f9fc12 | ||
|
|
f91a64d224 | ||
|
|
f9926351d3 | ||
|
|
2e47c82b61 | ||
|
|
589ab711a6 | ||
|
|
7b780f3447 | ||
|
|
a5eae2a83e | ||
|
|
cc8ea5e551 | ||
|
|
cb69d005ad | ||
|
|
073db18bac | ||
|
|
9611fd600b | ||
|
|
bf1ccf16a2 | ||
|
|
1a57a54804 | ||
|
|
c3285dcd21 | ||
|
|
584eb85c7f | ||
|
|
90ac14b2a0 | ||
|
|
1d269dea1d | ||
|
|
e7b38c71ce | ||
|
|
f58ff9a25f | ||
|
|
849c45648d | ||
|
|
27fb8ed49d | ||
|
|
e40b41f4d9 | ||
|
|
1d076fdfb9 | ||
|
|
beacda6e73 | ||
|
|
dc69684e58 | ||
|
|
d20a2eb972 | ||
|
|
99334cde2b | ||
|
|
689c10faea | ||
|
|
aefadc18d9 | ||
|
|
dd4faf6f6f | ||
|
|
33552590d5 | ||
|
|
0296059112 | ||
|
|
ff2df71398 | ||
|
|
eb84b8ba87 | ||
|
|
d673d13bfa | ||
|
|
13c68ecb58 | ||
|
|
9e8fa29da9 | ||
|
|
5ff46e5dca | ||
|
|
cb4ca456a2 | ||
|
|
991f304207 | ||
|
|
b1d451b13c | ||
|
|
58703982e7 | ||
|
|
77754571b2 | ||
|
|
344d59d788 | ||
|
|
b451015203 | ||
|
|
396480b41d | ||
|
|
2f575f43ec | ||
|
|
111056b6e0 | ||
|
|
4801198ae7 | ||
|
|
44d929f9ac | ||
|
|
0612973e5e | ||
|
|
5aa20b3913 | ||
|
|
23e2e52df7 | ||
|
|
00400f4720 | ||
|
|
4311f0fe39 | ||
|
|
1549e9f366 | ||
|
|
94d915ed43 | ||
|
|
40a54252eb | ||
|
|
58aaf75481 | ||
|
|
dba1efdfc6 | ||
|
|
592f072e42 | ||
|
|
49a455645e | ||
|
|
01bcd0320e | ||
|
|
fe202a6f85 | ||
|
|
bd07d92aad | ||
|
|
ad529c62b2 | ||
|
|
9c3542dfc7 | ||
|
|
1fe300010f | ||
|
|
17b803cd30 | ||
|
|
c1c9f90757 | ||
|
|
7f975775b4 | ||
|
|
3e872797d0 | ||
|
|
0c84c92b13 | ||
|
|
ad90fc6de9 | ||
|
|
2150ed1bf1 | ||
|
|
3b5651823b | ||
|
|
740cf88151 | ||
|
|
59b0aa7a7e | ||
|
|
be245ad9c7 | ||
|
|
17e7fbc24a | ||
|
|
7259c57976 | ||
|
|
b05b875995 | ||
|
|
6c687a3fb3 | ||
|
|
038f536294 | ||
|
|
d96c3de0da | ||
|
|
e860a7bc5d | ||
|
|
e239f92a17 | ||
|
|
bcbd144287 | ||
|
|
ba567f8a58 | ||
|
|
afaa374590 | ||
|
|
b3f02dd356 | ||
|
|
96338ef12e | ||
|
|
98a01f05f9 | ||
|
|
227d6e5245 | ||
|
|
149c0d450c | ||
|
|
fcd24512d8 | ||
|
|
24991a4784 | ||
|
|
26dd7c5c7e | ||
|
|
ba7ae60df2 | ||
|
|
366137edc6 | ||
|
|
2bb4de2058 | ||
|
|
cfca28f0a5 | ||
|
|
f6d14f30b2 | ||
|
|
2395d4ccc5 | ||
|
|
8aad4a7c41 | ||
|
|
bc9512c09d | ||
|
|
bb6d88ec0f | ||
|
|
a51ce31949 | ||
|
|
3628265911 | ||
|
|
e8e6bc348b | ||
|
|
6828f982b8 | ||
|
|
dc4c57cf12 | ||
|
|
49d40d663a | ||
|
|
11b36efa84 | ||
|
|
8566d5fa97 | ||
|
|
6b05736259 | ||
|
|
582ff23926 | ||
|
|
fc52ef24b9 | ||
|
|
dcb3a259c0 | ||
|
|
469a88e4c7 | ||
|
|
744c8224a2 | ||
|
|
b8a8f1c434 | ||
|
|
acdbb39bf5 | ||
|
|
0ad54b6cf4 | ||
|
|
486c225f00 | ||
|
|
a46fdff085 | ||
|
|
560c06a6c8 | ||
|
|
802011ae1f | ||
|
|
04d9a2038a | ||
|
|
e888cd41b4 | ||
|
|
2e1ca24a27 | ||
|
|
89b4f17873 | ||
|
|
d462b19eb7 | ||
|
|
73e172c258 | ||
|
|
00fd5b2264 | ||
|
|
7b7a0a3277 | ||
|
|
e3bf38868a | ||
|
|
1b276bb2b9 | ||
|
|
2676c2029b | ||
|
|
ee0bbc04ff | ||
|
|
7685dd41e1 | ||
|
|
4617e1d080 | ||
|
|
484aaf0560 | ||
|
|
a93ecda978 | ||
|
|
9cef073cb2 | ||
|
|
32675db0ee | ||
|
|
4592839384 | ||
|
|
39fc310669 | ||
|
|
624b1c4cf1 | ||
|
|
f84389921e | ||
|
|
479111c9c7 | ||
|
|
debe83461f | ||
|
|
96dbf8aad4 | ||
|
|
c130919ae8 | ||
|
|
c4da6199f0 | ||
|
|
8e4ba1b452 | ||
|
|
7664a62a0c | ||
|
|
bbdf9df60a | ||
|
|
890412421b | ||
|
|
0d5dfaa085 | ||
|
|
ba68824431 | ||
|
|
992b1890a7 | ||
|
|
e5f85978b4 | ||
|
|
adf922b33f | ||
|
|
4aefa7fbb1 | ||
|
|
cb7e99c1ab | ||
|
|
0f33cd88c8 | ||
|
|
0cf28ade0b | ||
|
|
c23c30838c | ||
|
|
5ae3eb1e10 | ||
|
|
766c774f28 | ||
|
|
64007a9e6a | ||
|
|
69dcc7c8c7 | ||
|
|
f12e7def7c | ||
|
|
f0af25f581 | ||
|
|
0aa046b35e | ||
|
|
416c626142 | ||
|
|
4bf006c12c | ||
|
|
aae3f1b6b3 | ||
|
|
e95aedd05b | ||
|
|
8259f1529a | ||
|
|
895cf9e27d | ||
|
|
af098e8dfe | ||
|
|
e51884daa8 | ||
|
|
30392a1bef | ||
|
|
d1eeba7069 | ||
|
|
c75061b876 | ||
|
|
469f6e4df5 | ||
|
|
e14c11230a | ||
|
|
9d6c2f548e | ||
|
|
e90a4bf4af | ||
|
|
71a55254a4 | ||
|
|
4700ea5af2 | ||
|
|
12df9b4cb3 | ||
|
|
87c15b5356 | ||
|
|
8c1dd5d2c0 | ||
|
|
52d5f898b8 | ||
|
|
9a1333bcc7 | ||
|
|
0524852e7a | ||
|
|
21e3fa22ee | ||
|
|
01ea62911e | ||
|
|
24981139f6 | ||
|
|
b3d48af90d | ||
|
|
2453972351 | ||
|
|
eacd9e0844 | ||
|
|
fc8ac0c7e5 | ||
|
|
a83dddf9ff | ||
|
|
ea74003ebf | ||
|
|
ddc807aea8 | ||
|
|
bb76564738 | ||
|
|
7508d2de9d | ||
|
|
1aae99bc34 | ||
|
|
7892b23ae7 | ||
|
|
8acde59f79 | ||
|
|
01921dd4d4 | ||
|
|
dd0345aeaa | ||
|
|
5373ea118d | ||
|
|
585bc18384 | ||
|
|
35dafd0ba7 | ||
|
|
7ac25f1320 | ||
|
|
5804c6d9fe | ||
|
|
9c63d6bd88 | ||
|
|
a4c5a2dcdf |
13
.gitignore
vendored
Normal file
13
.gitignore
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
/build_*
|
||||
/project_*
|
||||
/toolchain_*
|
||||
/binaries
|
||||
/dl
|
||||
/.auto.deps
|
||||
/.config.cmd
|
||||
/.config.old
|
||||
/.config
|
||||
*.depend
|
||||
*.o
|
||||
*.orig
|
||||
*~
|
||||
176
CHANGES
Normal file
176
CHANGES
Normal file
@@ -0,0 +1,176 @@
|
||||
2009.08-rc1, Released August 2nd, 2009:
|
||||
|
||||
Fixes all over the tree and new features.
|
||||
|
||||
Improvement of external toolchain support:
|
||||
- Support for glibc toolchains.
|
||||
- The toolchain configuration announced to Buildroot is
|
||||
verified against the real toolchain configuration.
|
||||
- Fixes, documentation.
|
||||
|
||||
Cleanup X.org support: clarified configuration options, and
|
||||
removed mandatory dependency on useless libraries such as
|
||||
libXt or libXaw.
|
||||
|
||||
New QT-based configurator, usable using 'make xconfig'.
|
||||
|
||||
Support for the Xtensa architecture.
|
||||
|
||||
Toolchain: GCC 4.4.1, 2.6.30 kernel headers, removed < 2.6.26
|
||||
headers.
|
||||
|
||||
New packages: bmon, ctorrent, dosfstools, enchant,
|
||||
gst-plugins-bad, iw, libmms, libnl, netstat-nat, ntfsprogs,
|
||||
sdl_gfx, spawn-fcgi.
|
||||
|
||||
Updated packages: bind, busybox, coreutils, sqlite, directfb,
|
||||
expat, gamin, gnuconfig, haserl, ipsec-tools, classpath,
|
||||
libcurl, libglib2, liblockfile, libpng, libsoup, libxml2,
|
||||
lighttpd, ltp-testsuite, lvm2, matchbox, memstat,
|
||||
gst-plugins-good, gstreamer, libogg, libvorbis, mplayer,
|
||||
neon, openssl, pciutils, php, qt, ruby, sawman, webkit,
|
||||
wpa-supplicant, xdriver_xf86-input-synaptics,
|
||||
xdriver_xf86-video-intel, xlib_libXfont, xlib_libXft,
|
||||
xlib_libXt, xproto_xproto, xserver-xorg, xutil_makedepend,
|
||||
xutil_util-macros.
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#83: liblockfile fails to compile due to eaccess redefinition
|
||||
#163: Xtensa architecture port
|
||||
#171: xorg-server / kernel headers 2.6.26 - vm86.c compilation issue
|
||||
#241: device mapper + lvm2: build together
|
||||
#243: ctorrent: new package
|
||||
#247: ntfsprogs: new package
|
||||
#271: Library 'libgcc_s.so.1' not installed in search path
|
||||
#287: New package libnl
|
||||
#289: New package iw
|
||||
#331: Update MPlayer to version 1.0rc2
|
||||
#333: Bump sqlite package to 3.6.15
|
||||
#349: update libsoup to version 2.26.2
|
||||
#357: New package netstat-nat
|
||||
#359,#413: Upgrade openvpn to Makefile.autotools.in
|
||||
#367: linux kernel compile error for arm926t
|
||||
#369: Add SDL_gfx package
|
||||
#373: Support for building gstreamer without libxml
|
||||
#379: update DirectFB to version 1.4.0
|
||||
#383: gst-plugins-good: Allow soup plugin to be configured
|
||||
#385: neon: Fix pkgconfig dependency
|
||||
#387: Tremor not installed to toolchain
|
||||
#389: New package bmon
|
||||
#391: gstreamer: Bump version to 0.10.23
|
||||
#393: gst-plugins-base: Bump version to 0.10.23
|
||||
#395: gst-plugins-bad: New package
|
||||
#403: Error while building iso9660 image
|
||||
#409: Bump php package to 5.2.10
|
||||
#411: ipsec-tools: Bump version to 0.7.2
|
||||
#417: New package spawn-fcgi
|
||||
#419: Bump lighttpd package to 1.4.23
|
||||
#421: toolchain: Clean up toolchain locale support menu
|
||||
#427: webkit: Update to WebKit svn r44552
|
||||
#437: ltp-testsuite: Bump version to 20090630
|
||||
#451: Upgrade from unmaintained dosfstools-2.11 to dosfstools-3.0.3
|
||||
#467: DirectFB 1.4.1
|
||||
#473: memstat_0.5.tar.gz has install with -D and that fails "make"
|
||||
#491: libxml2: Bump version to 0.7.3
|
||||
#495: Bump bind package to 9.5.1-P3 (security)
|
||||
#497: OpenSSL RSA key generation hangs on x86_64
|
||||
#509: Bump sqlite package to 3.6.16
|
||||
#523: pciutils broken with external toolchain
|
||||
#533: Update gamin to 0.1.10 to fix compilation
|
||||
|
||||
2009.05, Released June 1st, 2009:
|
||||
|
||||
Fixes for dropbear & diffutils, bump linux-advanced 2.6.29.x
|
||||
version and marked ubifsroot as broken.
|
||||
|
||||
2009.05-rc3, Released May 27th, 2009:
|
||||
|
||||
Fixes for toolchain (gcc arm pr37436), stable kernel versions,
|
||||
busybox, curl, libusb, readline, python and strace.
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#345: libcurl package needs a urandom fix
|
||||
|
||||
2009.05-rc2, Released May 19th, 2009:
|
||||
|
||||
Fixes for toolchain (gcc w/softfloat on ppc, 3.4.6 buildfix
|
||||
for newer hosts), stable kernel versions, busybox, cups,
|
||||
dmraid, docker, mesa3d, rsync and updated defconfigs.
|
||||
|
||||
xserver marked as broken on AVR32 and atngw100-expanded
|
||||
config removed.
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#167: metacity does not build
|
||||
#295: gamin installs python support even if python is disabled
|
||||
#323: gen_matypes fails to execute during build of Mesa when us...
|
||||
|
||||
2009.05-rc1, Released May 5th, 2009:
|
||||
|
||||
Fixes all over the tree, further conversion of packages to
|
||||
Makefile.autotools.in and we now build host versions of
|
||||
packages where needed for build time dependencies instead of
|
||||
relying on the correct versions being available on the build
|
||||
host. Ancient toolchain / busybox versions have furthermore
|
||||
been removed as announced in the 2009.02 release notes.
|
||||
|
||||
New packages: flac, gob2, lzop, taglib, wpa_supplicant
|
||||
|
||||
Updated packages: avahi, bind, binutils, busybox, dbus, dbus-glib,
|
||||
directfb, dnsmasq, freetype, gcc, gmp, gstreamer, iptables, kernel
|
||||
headers, kexec, libglib2, libpng, libsndfile, lua, mpfr, ntfs-3g,
|
||||
openssl, php, qtopia4, rsync, samba, sqlite, tar, uboot, uclibc,
|
||||
util-linux, xorg7, xerces
|
||||
|
||||
Issues resolved (http://bugs.uclibc.org):
|
||||
|
||||
#5,#77,#141,#143: Convert php package to Makefile.autotools.in
|
||||
and a ton of other improvements
|
||||
#19: page.h missing by util-linux
|
||||
#37: update libglib2 to version 2.18.4
|
||||
#61: tslib puts staging_dir into pkgconfig file
|
||||
#69: tar refuses to build
|
||||
#71,#175: ./wchar.h:41:12: error: empty filename in #include
|
||||
#73: Bump openssl package to the latest version
|
||||
#81: New package wpa_supplicant
|
||||
#99: new package: flac
|
||||
#101: update gstreamer packages
|
||||
#105,#313: menuconfig segfaults on tinyx if wchar is not
|
||||
selected
|
||||
#107: convert libvorbis to Makefile.autotools.in
|
||||
#109: Make pppd package avoid bsd err
|
||||
#111: binutils 2.17 fails to build when texinfo >= 4.10
|
||||
#133: Modify ncurses5-config to get correct include path
|
||||
#137: Bump php to version 5.2.9
|
||||
#139: Bump sqlite to 3.6.11 and convert to
|
||||
Makefile.autotools.in
|
||||
#145: Bump bind package to 9.5.1-P1 (security)
|
||||
#147: buildroot toolchain fails to build w/binutils-2.19.1
|
||||
#151: openssl package trivial fixes
|
||||
#161: vim fails on patching with errors in configure.patch
|
||||
#169: blackbox-0.70.1 does not build
|
||||
#177: xdriver_xf86-input-keyboard does not build
|
||||
#179: Upgrade dropbear to Makefile.autotools.in
|
||||
#181: Update to Xorg 7.4
|
||||
#187: ntfs-3g: could not build cross
|
||||
#191: alsa-lib ARM binaries always built with EABI
|
||||
#213: Bump wpa_supplicant package to version 0.6.9
|
||||
#217: Bump openssl package to 0.9.8k (security)
|
||||
#219: Toolchain build fails on m4
|
||||
#225: m4 macros are out of place
|
||||
#233: make ipv6 optional in iptables
|
||||
#237: ncftp: convert to Makefile.autotools.in
|
||||
#239: ntfs-3g: convert to Makefile.autotools.in
|
||||
#245: lzop: new package
|
||||
#271: Bump bind package to 9.5.1-P2 (security)
|
||||
#277: Bump sqlite package to 3.6.16
|
||||
#279: update libglib2 to version 2.20.1
|
||||
#281: update DirectFB to version 1.2.8
|
||||
#283: add taglib
|
||||
#285: compilation of samba fails if IPV6 support is missing
|
||||
#293: update samba to version 3.3.3
|
||||
#299: add shared-mime-info package
|
||||
#307: make openssl package respect build flags
|
||||
339
COPYING
Normal file
339
COPYING
Normal file
@@ -0,0 +1,339 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
@@ -8,7 +8,7 @@ config BR2_HAVE_DOT_CONFIG
|
||||
|
||||
config BR2_VERSION
|
||||
string
|
||||
default "2009.02-svn"
|
||||
default "2009.08-git"
|
||||
|
||||
source "target/Config.in.arch"
|
||||
source "target/device/Config.in"
|
||||
|
||||
95
Makefile
95
Makefile
@@ -28,7 +28,7 @@ CONFIG_DEFCONFIG=.defconfig
|
||||
CONFIG=package/config
|
||||
DATE:=$(shell date +%Y%m%d)
|
||||
|
||||
noconfig_targets:=menuconfig config oldconfig randconfig \
|
||||
noconfig_targets:=menuconfig xconfig config oldconfig randconfig \
|
||||
defconfig allyesconfig allnoconfig release tags \
|
||||
source-check help
|
||||
|
||||
@@ -262,7 +262,11 @@ endif
|
||||
|
||||
include package/*/*.mk
|
||||
|
||||
TARGETS+=target-devfiles
|
||||
TARGETS+=target-finalize
|
||||
|
||||
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
|
||||
TARGETS+=target-purgelocales
|
||||
endif
|
||||
|
||||
# target stuff is last so it can override anything else
|
||||
include target/Makefile.in
|
||||
@@ -282,8 +286,8 @@ $(BR2_DEPENDS_DIR): .config
|
||||
cp -dpRf $(CONFIG)/buildroot-config $@
|
||||
|
||||
dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
|
||||
$(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps
|
||||
$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)
|
||||
|
||||
$(BASE_TARGETS): dirs
|
||||
|
||||
@@ -294,8 +298,8 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
|
||||
$(BASE_TARGETS) $(TARGETS) $(TARGETS_ALL) \
|
||||
$(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
|
||||
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
|
||||
$(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps
|
||||
$(HOST_DIR) $(BR2_DEPENDS_DIR) $(BINARIES_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
@@ -303,8 +307,8 @@ world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS_ALL)
|
||||
# dependencies anywhere else
|
||||
#
|
||||
#############################################################
|
||||
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR):
|
||||
$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(HOST_DIR) $(PROJECT_BUILD_DIR) \
|
||||
$(PROJECT_BUILD_DIR)/autotools-stamps $(BINARIES_DIR) $(STAMP_DIR):
|
||||
@mkdir -p $@
|
||||
|
||||
$(STAGING_DIR):
|
||||
@@ -328,10 +332,13 @@ $(PROJECT_BUILD_DIR)/.root:
|
||||
if [ -d "$(TARGET_SKELETON)" ]; then \
|
||||
cp -fa $(TARGET_SKELETON)/* $(TARGET_DIR)/; \
|
||||
fi; \
|
||||
if [ -d "$(TARGET_SKELETON_PATCH)" ]; then \
|
||||
toolchain/patch-kernel.sh $(TARGET_DIR) $(TARGET_SKELETON_PATCH)/ \*patch\*; \
|
||||
fi; \
|
||||
touch $(STAGING_DIR)/.fakeroot.00000; \
|
||||
fi
|
||||
-find $(TARGET_DIR) -type d -name CVS -o -name .svn | xargs rm -rf
|
||||
-find $(TARGET_DIR) -type f -name .empty | xargs rm -rf
|
||||
-find $(TARGET_DIR) -type d -name CVS -o -name .svn -print0 | xargs -0 rm -rf
|
||||
-find $(TARGET_DIR) -type f -name .empty -print0 | xargs -0 rm -rf
|
||||
touch $@
|
||||
|
||||
$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
|
||||
@@ -339,15 +346,43 @@ $(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
|
||||
erase-fakeroots:
|
||||
rm -f $(PROJECT_BUILD_DIR)/.fakeroot*
|
||||
|
||||
target-devfiles:
|
||||
target-finalize:
|
||||
ifeq ($(BR2_HAVE_DEVFILES),y)
|
||||
( scripts/copy.sh $(STAGING_DIR) $(TARGET_DIR) )
|
||||
else
|
||||
rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/lib/pkgconfig
|
||||
find $(TARGET_DIR)/usr/lib -name '*.a' -delete
|
||||
find $(TARGET_DIR)/lib -name '*.a' -delete
|
||||
find $(TARGET_DIR)/usr/lib -name '*.la' -delete
|
||||
find $(TARGET_DIR)/lib -name '*.la' -delete
|
||||
find $(TARGET_DIR)/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
|
||||
find $(TARGET_DIR)/usr/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -f
|
||||
endif
|
||||
ifneq ($(BR2_HAVE_MANPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/man
|
||||
endif
|
||||
ifneq ($(BR2_HAVE_INFOPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info
|
||||
endif
|
||||
find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
|
||||
$(TARGET_LDCONFIG) -r $(TARGET_DIR) 2>/dev/null
|
||||
|
||||
ifneq ($(BR2_ROOTFS_POST_BUILD_SCRIPT),"")
|
||||
$(BR2_ROOTFS_POST_BUILD_SCRIPT) $(TARGET_DIR)
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
|
||||
LOCALE_WHITELIST=$(PROJECT_BUILD_DIR)/locales.nopurge
|
||||
LOCALE_NOPURGE=$(strip $(subst ",,$(BR2_ENABLE_LOCALE_WHITELIST)))
|
||||
#"))
|
||||
|
||||
target-purgelocales:
|
||||
rm -f $(LOCALE_WHITELIST)
|
||||
for i in $(LOCALE_NOPURGE); do echo $$i >> $(LOCALE_WHITELIST); done
|
||||
|
||||
for dir in $(wildcard $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/man /usr/share/man)); \
|
||||
do \
|
||||
for lang in $$(cd $$dir; ls .|grep -v man); \
|
||||
do \
|
||||
grep -qx $$lang $(LOCALE_WHITELIST) || rm -rf $$dir/$$lang; \
|
||||
done; \
|
||||
done
|
||||
endif
|
||||
|
||||
source: $(TARGETS_SOURCE) $(HOST_SOURCE)
|
||||
@@ -365,18 +400,17 @@ external-deps:
|
||||
#
|
||||
#############################################################
|
||||
clean: $(TARGETS_CLEAN)
|
||||
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
|
||||
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)
|
||||
|
||||
dirclean: $(TARGETS_DIRCLEAN)
|
||||
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps
|
||||
rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE) $(PROJECT_BUILD_DIR)/.root $(PROJECT_BUILD_DIR)/autotools-stamps $(STAMP_DIR)
|
||||
|
||||
distclean:
|
||||
ifeq ($(DL_DIR),$(BASE_DIR)/dl)
|
||||
rm -rf $(DL_DIR)
|
||||
endif
|
||||
rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
|
||||
$(LINUX_KERNEL) $(BASE_DIR)/include \
|
||||
.config.cmd
|
||||
rm -rf $(TOOL_BUILD_DIR) $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
|
||||
.config.cmd
|
||||
$(MAKE) -C $(CONFIG) clean
|
||||
|
||||
sourceball:
|
||||
@@ -404,13 +438,29 @@ $(CONFIG)/conf:
|
||||
-@if [ ! -f .config ]; then \
|
||||
cp $(CONFIG_DEFCONFIG) .config; \
|
||||
fi
|
||||
|
||||
$(CONFIG)/mconf:
|
||||
@mkdir -p $(CONFIG)/buildroot-config
|
||||
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
|
||||
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) mconf
|
||||
-@if [ ! -f .config ]; then \
|
||||
cp $(CONFIG_DEFCONFIG) .config; \
|
||||
fi
|
||||
|
||||
$(CONFIG)/qconf:
|
||||
@mkdir -p $(CONFIG)/buildroot-config
|
||||
$(MAKE) CC="$(HOSTCC)" -C $(CONFIG) qconf
|
||||
-@if [ ! -f .config ]; then \
|
||||
cp $(CONFIG_DEFCONFIG) .config; \
|
||||
fi
|
||||
|
||||
xconfig: $(CONFIG)/qconf
|
||||
@mkdir -p $(CONFIG)/buildroot-config
|
||||
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
|
||||
KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
|
||||
$(CONFIG)/qconf $(CONFIG_CONFIG_IN); then \
|
||||
test -f .config.cmd || rm -f .config; \
|
||||
fi
|
||||
|
||||
menuconfig: $(CONFIG)/mconf
|
||||
@mkdir -p $(CONFIG)/buildroot-config
|
||||
@if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
|
||||
@@ -511,6 +561,7 @@ help:
|
||||
@echo
|
||||
@echo 'Configuration:'
|
||||
@echo ' menuconfig - interactive curses-based configurator'
|
||||
@echo ' xconfig - interactive Qt-based configurator'
|
||||
@echo ' oldconfig - resolve any unresolved symbols in .config'
|
||||
@echo ' configured - make {uclibc/busybox/linux26}-config'
|
||||
@echo ' saveconfig - save current configuration under local/<project>'
|
||||
@@ -532,5 +583,5 @@ release: distclean
|
||||
rm -rf $$OUT
|
||||
|
||||
.PHONY: dummy subdirs release distclean clean config oldconfig \
|
||||
menuconfig tags check test depend defconfig help
|
||||
menuconfig xconfig tags check test depend defconfig help
|
||||
|
||||
|
||||
15
TODO
15
TODO
@@ -6,9 +6,12 @@ Buildroot2 TODOs
|
||||
packages/Makefile.autotools.in
|
||||
- fix setting of flags for packages
|
||||
|
||||
- stabilize for a 0.10.0 release
|
||||
|
||||
- think about using a common --config-cache for configure
|
||||
Should take care of expanding TARGET_CONFIGURE_ARGS for cross compiles
|
||||
to working presets.
|
||||
|
||||
- coreutils: use make install-strip to install the packages. For now,
|
||||
it fails beause even if we pass STRIP="/path/to/$(ARCH)-strip", the
|
||||
coreutils build system uses the host strip to strip target
|
||||
binaries. The ./configure execution done by Buildroot properly
|
||||
detects the cross-strip, but when running make, build-aux/missing
|
||||
gets run, complains about aclocal-1.10c and atuomake-1.10c not being
|
||||
present, and rerun the configuration... with the wrong environment
|
||||
variables (STRIP= is missing). An autoreconf on this package is
|
||||
probably necessary.
|
||||
|
||||
@@ -16,11 +16,10 @@
|
||||
<h1>U-boot extensions in 2009.01-rc1</h1>
|
||||
</div>
|
||||
|
||||
<p><a href="http://buildroot.uclibc.org/">U-Boot</a>
|
||||
<p><a href="http://buildroot.net/">U-Boot</a>
|
||||
usage and documentation by Ulf Samuelsson.
|
||||
</p>
|
||||
|
||||
<p><small>$LastChangedDate: 2008-12-16 10:00:11 +0100 (tis, 16 dec 2008) $</small></p>
|
||||
<ul>
|
||||
<li><a href="#about">About U-Boot</a></li>
|
||||
<li><a href="#at91rm9200dk">Board Support for AT91RM9200DK</a></li>
|
||||
|
||||
@@ -3,24 +3,31 @@
|
||||
|
||||
<!-- Begin Introduction section -->
|
||||
|
||||
<h3>buildroot: making Embedded Linux easy</h3>
|
||||
<h3>Buildroot: making Embedded Linux easy</h3>
|
||||
|
||||
<div align="center">
|
||||
<a href="images/menuconfig.png">
|
||||
<img src="images/menuconfig_small.png" width="340" height="220"
|
||||
alt="Buildroot menuconfig" border="0">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Buildroot is a set of Makefiles and patches that makes it easy generate a
|
||||
Buildroot is a set of Makefiles and patches that makes it easy to generate a
|
||||
cross-compilation toolchain and root filesystem for your target Linux
|
||||
system using the <a href= "http://www.uclibc.org/">uClibc C library</a>.
|
||||
Buildroot is useful mainly for people working with small or embedded
|
||||
systems. Embedded systems often use processors that are not the regular
|
||||
x86 processors everyone is used to using on their PC. It can be PowerPC
|
||||
processors, MIPS processors, ARM processors, etc. And to be extra safe,
|
||||
you do not need to be root to build or run buildroot.
|
||||
you do not need to be root to build or run Buildroot.
|
||||
|
||||
<p>
|
||||
|
||||
buildroot is maintained by <a href=
|
||||
Buildroot is maintained by <a href=
|
||||
"mailto:jacmet@uclibc.org">Peter Korsgaard</a>, and
|
||||
licensed under the
|
||||
<a href="http://www.gnu.org/copyleft/lgpl.html">GNU LIBRARY GENERAL PUBLIC LICENSE</a>.
|
||||
<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU
|
||||
GENERAL PUBLIC LICENSE V2 (Or later)</a>.
|
||||
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
@@ -15,12 +15,10 @@
|
||||
<h1>Buildroot</h1>
|
||||
</div>
|
||||
|
||||
<p><a href="http://buildroot.uclibc.org/">Buildroot</a>
|
||||
<p><a href="http://buildroot.net/">Buildroot</a>
|
||||
usage and documentation by Thomas Petazzoni. Contributions from
|
||||
Karsten Kruse, Ned Ludd, Martin Herren and others. </p>
|
||||
|
||||
<p><small>$LastChangedDate$</small></p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li><a href="#about">About Buildroot</a></li>
|
||||
@@ -32,11 +30,14 @@
|
||||
<li><a href="#custom_uclibc">Customizing the uClibc
|
||||
configuration</a></li>
|
||||
<li><a href="#buildroot_innards">How Buildroot works</a></li>
|
||||
<li><a href="#using_toolchain">Using the uClibc toolchain</a></li>
|
||||
<li><a href="#toolchain_standalone">Using the uClibc toolchain
|
||||
outside of Buildroot</a></li>
|
||||
<li><a href="#multi_project">Building several projects in the
|
||||
same buildroot source tree</a></li>
|
||||
<li><a href="#using_toolchain">Using the uClibc toolchain
|
||||
outside Buildroot</a></li>
|
||||
<li><a href="#external_toolchain">Use an external toolchain</a></li>
|
||||
<li><a href="#downloaded_packages">Location of downloaded packages</a>
|
||||
</li>
|
||||
<li><a href="#adapting_rootfs">Adapting the rootfs for own binaries</a></li>
|
||||
<li><a href="#add_software">Extending Buildroot with more
|
||||
Software</a></li>
|
||||
<li><a href="#links">Resources</a></li>
|
||||
@@ -116,24 +117,28 @@
|
||||
|
||||
<h2><a name="download" id="download"></a>Obtaining Buildroot</h2>
|
||||
|
||||
<p>Buildroot is available as daily SVN snapshots or directly using
|
||||
SVN. As of today, no stable releases of Buildroot are made. </p>
|
||||
<p>Buildroot releases are made approximately every 3
|
||||
months. Direct Git access and daily snapshots are also
|
||||
available if you want more bleeding edge.</p>
|
||||
|
||||
<p>Releases are available at <a
|
||||
href="http://buildroot.net/downloads/">http://buildroot.net/downloads/</a>.</p>
|
||||
|
||||
<p>The latest snapshot is always available at <a
|
||||
href="http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2">http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2</a>,
|
||||
href="http://buildroot.net/downloads/snapshots/buildroot-snapshot.tar.bz2">http://buildroot.net/downloads/snapshots/buildroot-snapshot.tar.bz2</a>,
|
||||
and previous snapshots are also available at <a
|
||||
href="http://buildroot.uclibc.org/downloads/snapshots/">http://buildroot.uclibc.org/downloads/snapshots/</a>. </p>
|
||||
href="http://buildroot.net/downloads/snapshots/">http://buildroot.net/downloads/snapshots/</a>. </p>
|
||||
|
||||
<p>To download Buildroot using SVN, you can simply follow
|
||||
the rules described on the "Accessing SVN"-page (<a href=
|
||||
"http://buildroot.uclibc.org/subversion.html">http://buildroot.uclibc.org/subversion.html</a>)
|
||||
of the uClibc buildroot website (<a href=
|
||||
"http://buildroot.uclibc.org">http://buildroot.uclibc.org</a>), and download the
|
||||
<code>buildroot</code> SVN module. For the impatient, here's a quick
|
||||
<p>To download Buildroot using Git, you can simply follow
|
||||
the rules described on the "Accessing Git"-page (<a href=
|
||||
"http://buildroot.net/git.html">http://buildroot.net/git.html</a>)
|
||||
of the Buildroot website (<a href=
|
||||
"http://buildroot.net">http://buildroot.net</a>), and download
|
||||
<code>buildroot</code> from Git. For the impatient, here's a quick
|
||||
recipe:</p>
|
||||
|
||||
<pre>
|
||||
$ svn co svn://uclibc.org/trunk/buildroot
|
||||
$ git clone git://git.buildroot.net/buildroot
|
||||
</pre>
|
||||
|
||||
<h2><a name="using" id="using"></a>Using Buildroot</h2>
|
||||
@@ -150,6 +155,17 @@
|
||||
$ make menuconfig
|
||||
</pre>
|
||||
|
||||
<p>to run the curses-based configurator, or</p>
|
||||
|
||||
<pre>
|
||||
$ make xconfig
|
||||
</pre>
|
||||
|
||||
<p>to run the Qt3-based configurator. On Debian-like systems, the
|
||||
<code>libncurses5-dev</code> package is required to use the
|
||||
<i>menuconfig</i> interface, and the <code>libqt3-mt-dev</code> is
|
||||
required to use the <i>xconfig</i> interface.</p>
|
||||
|
||||
<p>For each entry of the configuration tool, you can find associated help
|
||||
that describes the purpose of the entry. </p>
|
||||
|
||||
@@ -214,9 +230,9 @@
|
||||
<h3><a name="offline_builds" id="offline_builds"></a>
|
||||
Offline builds</h3>
|
||||
|
||||
<p>If you intend to do an offline-build and just want to download all
|
||||
sources that you previously selected in "make menuconfig" then
|
||||
issue:</p>
|
||||
<p>If you intend to do an offline-build and just want to download
|
||||
all sources that you previously selected in the configurator
|
||||
(<i>menuconfig</i> or <i>xconfig</i>) then issue:</p>
|
||||
<pre>
|
||||
$ make source
|
||||
</pre>
|
||||
@@ -250,7 +266,6 @@
|
||||
<li>BUILDROOT_COPYTO</li>
|
||||
<li>BUILDROOT_DL_DIR</li>
|
||||
<li>BUILDROOT_LOCAL</li>
|
||||
<li>BUILDROOT_USE_XWINDOWS</li>
|
||||
</ul>
|
||||
|
||||
<p>An example that uses config files located in the toplevel directory and
|
||||
@@ -336,9 +351,10 @@ $ make me<TAB>
|
||||
is made. So simply rebuilding the image by running
|
||||
make should propagate any new changes to the image. </li>
|
||||
|
||||
<li>When configuring the build system, using <code>make menuconfig</code>,
|
||||
you can specify the contents of the /etc/hostname and /etc/issue
|
||||
(the welcome banner) in the <code>PROJECT</code> section</li>
|
||||
<li>When configuring the build system, using <code>make
|
||||
menuconfig</code> or <code>make xconfig</code>, you can specify
|
||||
the contents of the /etc/hostname and /etc/issue (the welcome
|
||||
banner) in the <code>PROJECT</code> section</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="custom_busybox" id="custom_busybox"></a>Customizing the
|
||||
@@ -510,7 +526,7 @@ $ make me<TAB>
|
||||
uncompress the <code>target/generic/skel.tar.gz</code> file to create the
|
||||
main subdirectories and symlinks, copies the skeleton available in
|
||||
<code>target/generic/target_skeleton</code> and then removes useless
|
||||
<code>.svn/</code> directories. </li>
|
||||
<code>.svn/CVS</code> directories. </li>
|
||||
|
||||
<li>Add the <code>TARGETS</code> dependency. This should generally check
|
||||
if the configuration option for this package is enabled, and if so then
|
||||
@@ -521,7 +537,10 @@ $ make me<TAB>
|
||||
<h2><a name="multi_project" id="multi_project"></a>Building several
|
||||
projects in the same buildroot source tree</h2>
|
||||
|
||||
<p><b>BACKGROUND</b></p>
|
||||
<p><i>Note: the contents of this section are obsolete since this
|
||||
feature has been implemented.</i></p>
|
||||
|
||||
<h3>Background</h3>
|
||||
|
||||
<p>Buildroot has always supported building several projects in the same
|
||||
tree if each project was for a different architecture. </p>
|
||||
@@ -557,8 +576,7 @@ $ make me<TAB>
|
||||
was also duplicated, so each </code>package</code> would also
|
||||
be rebuilt once per project, resulting in even longer build times.</p>
|
||||
|
||||
|
||||
<p><b>PROJECT TO SHARE TOOLCHAIN AND PACKAGE BUILDS</b></p>
|
||||
<h3>Project to share toolchain and package builds</h3>
|
||||
|
||||
<p>Work has started on a project which will allow the user to build
|
||||
multiple root file systems for the same architecture in the same tree.
|
||||
@@ -588,7 +606,7 @@ $ make me<TAB>
|
||||
<p>Only packages, not used by the first project, will have to go
|
||||
through the normal extract-configure-compile flow. </p>
|
||||
|
||||
<p><b>IMPLEMENTATION</b></p>
|
||||
<h3>Implementation</h3>
|
||||
|
||||
<p>The core of the solution is the introduction
|
||||
of two new directories: </p>
|
||||
@@ -643,15 +661,13 @@ $ make me<TAB>
|
||||
<p>The resulting binaries for all architectures are stored in the
|
||||
<code>"$(BINARIES_DIR)"</code> directory. <p>
|
||||
|
||||
<p><b>SUMMARY</b></p>
|
||||
<h3>Summary</h3>
|
||||
|
||||
<p>The project will share directories which can be share without
|
||||
conflicts, but will use unique build directories, where the user
|
||||
can configure the build. </p>
|
||||
|
||||
<h2><a name="Linux" id="Linux"></a>Linux</h2>
|
||||
<ol>
|
||||
|
||||
|
||||
<p>The user can select from three different Linux strategies:
|
||||
|
||||
@@ -691,9 +707,8 @@ $ make me<TAB>
|
||||
buildroot starts the linux configuration system, which
|
||||
defaults to "make menuconfig".
|
||||
</p>
|
||||
</ol>
|
||||
|
||||
<h2><a name="Todo" id="Todo"></a>Todo</h2>
|
||||
<h3>Todo</h3>
|
||||
<ol>
|
||||
|
||||
<li>Configurable packages</li>
|
||||
@@ -763,7 +778,7 @@ $ make me<TAB>
|
||||
</ol>
|
||||
|
||||
<h2><a name="using_toolchain" id="using_toolchain"></a>Using the
|
||||
uClibc toolchain</h2>
|
||||
uClibc toolchain outside Buildroot</h2>
|
||||
|
||||
<p>You may want to compile your own programs or other software
|
||||
that are not packaged in Buildroot. In order to do this, you can
|
||||
@@ -791,32 +806,19 @@ export PATH="$PATH:~/buildroot/build_mips/staging_dir/usr/bin/"
|
||||
mips-linux-gcc -o foo foo.c
|
||||
</pre>
|
||||
|
||||
<p><b>Important</b> : do not try to move a gcc-3.x toolchain to an other
|
||||
directory, it won't work. There are some hardcoded paths in the
|
||||
<i>gcc</i> configuration. If the default toolchain directory
|
||||
doesn't suit your needs, please refer to the <a
|
||||
href="#toolchain_standalone">Using the uClibc toolchain outside of
|
||||
buildroot</a> section. </p>
|
||||
<p>If you are using a current gcc-4.x, then use --sysroot and -isysroot
|
||||
since these toolchains have fully functional sysroot support. No
|
||||
hardcoded paths do exist in these configurations. </p>
|
||||
<p><b>Important</b> : do not try to move a gcc-3.x toolchain to an other
|
||||
directory, it won't work. There are some hardcoded paths in the
|
||||
<i>gcc</i> configuration. If you are using a current gcc-4.x, it
|
||||
is possible to relocate the toolchain, but then
|
||||
<code>--sysroot</code> must be passed every time the compiler is
|
||||
called to tell where the libraries and header files are, which
|
||||
might be cumbersome.</p>
|
||||
|
||||
<h2><a name="toolchain_standalone" id="toolchain_standalone"></a>Using the
|
||||
uClibc toolchain outside of buildroot</h2>
|
||||
|
||||
<p>By default, the cross-compilation toolchain is generated inside
|
||||
<code>build_ARCH/staging_dir/</code>. But sometimes, it may be useful to
|
||||
install it somewhere else, so that it can be used to compile other programs
|
||||
or by other users. Moving the <code>build_ARCH/staging_dir/</code>
|
||||
directory elsewhere is <b>not possible if using gcc-3.x</b>, because there
|
||||
are some hardcoded paths in the toolchain configuration. This works, thanks
|
||||
to sysroot support, with current, stable gcc-4.x toolchains, of course. </p>
|
||||
|
||||
<p>If you want to use the generated gcc-3.x toolchain for other purposes,
|
||||
you can configure Buildroot to generate it elsewhere using the
|
||||
option of the configuration tool : <code>Build options ->
|
||||
Toolchain and header file location</code>, which defaults to
|
||||
<code>$(BUILD_DIR)/staging_dir/</code>. </p>
|
||||
<p>It is also possible to generate the Buildroot toolchain in
|
||||
another directory than <code>build_ARCH/staging_dir</code> using
|
||||
the <code>Build options -> Toolchain and header file
|
||||
location</code> option. This could be useful if the toolchain
|
||||
must be shared with other users.</p>
|
||||
|
||||
<h2><a name="downloaded_packages"
|
||||
id="downloaded_packages"></a>Location of downloaded packages</h2>
|
||||
@@ -850,7 +852,59 @@ ln -s <shared download location> dl
|
||||
export BUILDROOT_DL_DIR <shared download location>
|
||||
</pre>
|
||||
|
||||
<h2><a name="external_toolchain" id="external_toolchain"></a>Using
|
||||
an external toolchain</h2>
|
||||
|
||||
<p>It might be useful not to use the toolchain generated by
|
||||
Buildroot, for example if you already have a toolchain that is known
|
||||
to work for your specific CPU, or if the toolchain generation feature
|
||||
of Buildroot is not sufficiently flexible for you (for example if you
|
||||
need to generate a system with <i>glibc</i> instead of
|
||||
<i>uClibc</i>). Buildroot supports using an <i>external
|
||||
toolchain</i>.</p>
|
||||
|
||||
<p>To enable the use of an external toolchain, go in the
|
||||
<code>Toolchain</code> menu, and :</p>
|
||||
|
||||
<ul>
|
||||
<li>Select the <code>External binary toolchain</code> toolchain
|
||||
type</li>
|
||||
<li>Adjust the <code>External toolchain path</code>
|
||||
appropriately. It should be set to a path where a bin/ directory
|
||||
contains your cross-compiling tools</li>
|
||||
<li>Adjust the <code>External toolchain prefix</code>, so that the
|
||||
prefix, suffixed with <code>-gcc</code> or <code>-ld</code> will
|
||||
correspond to your cross-compiling tools</li>
|
||||
</ul>
|
||||
|
||||
<p>If you are using an external toolchain based on <i>uClibc</i>, the
|
||||
<code>Core C library from the external toolchain</code> and
|
||||
<code>Libraries to copy from the external toolchain</code> options
|
||||
should already have correct values. However, if your external
|
||||
toolchain is based on <i>glibc</i>, you'll have to change these values
|
||||
according to your cross-compiling toolchain.</p>
|
||||
|
||||
<p>To generate external toolchains, we recommend using <a
|
||||
href="http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool">Crosstool-NG</a>.
|
||||
It allows to generate toolchains based on <i>uClibc</i>, <i>glibc</i>
|
||||
and <i>eglibc</i> for a wide range of architectures, and has good
|
||||
community support.</p>
|
||||
|
||||
<h2><a name="adapting_rootfs" id="adapting_rootfs">Adapting the rootfs
|
||||
for own binaries</h2>
|
||||
|
||||
<p>When using BR2 in an environment where own software binaries or
|
||||
static data should be part of the generated rootfs package, the
|
||||
<code>BR2_ROOTFS_POST_BUILD_SCRIPT</code> feature might interest
|
||||
you. You can specify a command here which is called <i>after</i> BR2
|
||||
built all the selected software, but <i>before</i> the the rootfs
|
||||
packages are assembled. The destination rootfs folder is given as
|
||||
first argument. You can add own components here, change
|
||||
default configurations and remove unwanted files.</p>
|
||||
<p>You should, however, use that feature with care. Whenever you
|
||||
find that a certain package generates wrong or unneeded files, you
|
||||
should rather fix than package than working around it with a
|
||||
cleanup script.</p>
|
||||
|
||||
<h2><a name="add_software" id="add_software"></a>Extending Buildroot with
|
||||
more software</h2>
|
||||
@@ -926,7 +980,7 @@ endif
|
||||
<a name="ex1line9" id="ex1line9">9</a> FOO_INSTALL_STAGING = YES
|
||||
<a name="ex1line10" id="ex1line10">10</a> FOO_INSTALL_TARGET = YES
|
||||
<a name="ex1line11" id="ex1line11">11</a> FOO_CONF_OPT = --enable-shared
|
||||
<a name="ex1line12" id="ex1line12">12</a> FOO_DEPENDENCIES = libglib2 pkgconfig
|
||||
<a name="ex1line12" id="ex1line12">12</a> FOO_DEPENDENCIES = libglib2 host-pkgconfig
|
||||
<a name="ex1line13" id="ex1line13">13</a> $(eval $(call AUTOTARGETS,package,foo))
|
||||
</pre>
|
||||
|
||||
@@ -1010,7 +1064,7 @@ endif
|
||||
<a name="ex2line34" id="ex2line34">34</a> $(MAKE) CC=$(TARGET_CC) -C $(FOO_DIR)
|
||||
<a name="ex2line35" id="ex2line35">35</a>
|
||||
<a name="ex2line36" id="ex2line36">36</a> $(TARGET_DIR)/$(FOO_TARGET_BINARY): $(FOO_DIR)/$(FOO_BINARY)
|
||||
<a name="ex2line37" id="ex2line37">37</a> $(MAKE) prefix=$(TARGET_DIR)/usr -C $(FOO_DIR) install
|
||||
<a name="ex2line37" id="ex2line37">37</a> $(MAKE) DESTDIR=$(TARGET_DIR) -C $(FOO_DIR) install-strip
|
||||
<a name="ex2line38" id="ex2line38">38</a> rm -Rf $(TARGET_DIR)/usr/man
|
||||
<a name="ex2line39" id="ex2line39">39</a>
|
||||
<a name="ex2line40" id="ex2line40">40</a> foo: uclibc ncurses $(TARGET_DIR)/$(FOO_TARGET_BINARY)
|
||||
@@ -1107,8 +1161,8 @@ endif
|
||||
<p>Lines <a href="#ex2line36">36-38</a> defines a target and associated rules
|
||||
that install the software inside the target filesystem. It depends on the
|
||||
binary file in the source directory, to make sure the software has
|
||||
been compiled. It uses the <code>install</code> target of the
|
||||
software <code>Makefile</code> by passing a <code>prefix</code>
|
||||
been compiled. It uses the <code>install-strip</code> target of the
|
||||
software <code>Makefile</code> by passing a <code>DESTDIR</code>
|
||||
argument, so that the <code>Makefile</code> doesn't try to install
|
||||
the software inside host <code>/usr</code> but inside target
|
||||
<code>/usr</code>. After the installation, the
|
||||
@@ -1173,13 +1227,12 @@ endif
|
||||
<li><a href="http://www.uclibc.org/">http://www.uclibc.org/</a></li>
|
||||
<li><a href="http://www.busybox.net/">http://www.busybox.net/</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!--
|
||||
<a href="http://validator.w3.org/check?uri=referer"><img
|
||||
border="0" height="31" width="88"
|
||||
src="images/valid-html401.png"
|
||||
alt="Valid HTML"></img></a>
|
||||
<a href="http://validator.w3.org/check?uri=referer"><img
|
||||
border="0" height="31" width="88"
|
||||
src="images/valid-html401.png"
|
||||
alt="Valid HTML"></img></a>
|
||||
-->
|
||||
|
||||
</body>
|
||||
|
||||
@@ -1,64 +1,46 @@
|
||||
<!--#include file="header.html" -->
|
||||
|
||||
|
||||
<h3>Subversion Read/Write Access</h3>
|
||||
<h3>Developer Access</h3>
|
||||
|
||||
If you want to be able to commit things to Subversion, first contribute some
|
||||
stuff to show you are serious. Then, very nicely ask <a
|
||||
href="mailto:buildroot@uclibc.org">The Buildroot Developers</a> to set you up
|
||||
with commit access to the Subversion repository. To access Subversion, you
|
||||
will want to add the following to set up your environment:
|
||||
Because we use Git for version control, you don't need developer (ssh)
|
||||
access on uclibc.org to contribute to Buildroot, but you can request
|
||||
it if needed.
|
||||
|
||||
<p>
|
||||
|
||||
To obtain commit access, you will need to demonstrate you are serious by
|
||||
submitting a few good patches first. Then, you will need to select a username
|
||||
to use when committing changes to SVN, you will need to send me the username
|
||||
you have selected, you must send me your preferred contact email address, and
|
||||
finally, you must send me an ssh version 2 DSA key with 1024 bits (the default)
|
||||
or more. If you do not currently have an ssh version 2 DSA key, you can
|
||||
generate a key using the command<pre>ssh-keygen -t dsa</pre> This will
|
||||
create the files <pre>/home/<USERNAME>/ssh/id_dsa
|
||||
/home/<USERNAME>/.ssh/id_dsa.pub</pre>
|
||||
It is recommended that you generate a key with a "passphrase" for security reasons.
|
||||
To obtain developer access, you will need to demonstrate you are
|
||||
serious by submitting a few good patches first. Then, you will need
|
||||
to select a username to use when logging in, you will need to send me
|
||||
the username you have selected, you must send me your preferred
|
||||
contact email address, and finally, you must send me an ssh version 2
|
||||
DSA key with 1024 bits (the default) or more. If you do not currently
|
||||
have an ssh version 2 DSA key, you can generate a key using the
|
||||
command<pre>ssh-keygen -t dsa</pre> This will create the
|
||||
files <pre>/home/<USERNAME>/ssh/id_dsa
|
||||
/home/<USERNAME>/.ssh/id_dsa.pub</pre> It is recommended that
|
||||
you generate a key with a "passphrase" for security reasons.
|
||||
|
||||
<p>
|
||||
Make the file known to the system by running
|
||||
|
||||
<pre>ssh-add ~/.ssh/id_dsa</pre>
|
||||
|
||||
You must then send the content of 'id_dsa.pub' to me so I can setup your account.
|
||||
You must then send the content of 'id_dsa.pub' to me so I can setup your account.
|
||||
The content of 'id_dsa' should of course be kept secret.
|
||||
|
||||
<p>
|
||||
|
||||
Once you are setup with an account, you will need to use your account to
|
||||
checkout a copy of buildroot from Subversion:
|
||||
Once you have an account, you can use it to store Git
|
||||
repositories. Simply put them in subdirectories of your ~/git, and
|
||||
touch ~/git/<repo>/git-daemon-export-ok, after which the hourly
|
||||
cronjob will pick them up and show them in cgit. They are also
|
||||
available though git-daemon:
|
||||
|
||||
<pre>
|
||||
svn list svn+ssh://username@svn.uclibc.org/svn/trunk/buildroot</pre>
|
||||
<br>
|
||||
It goes without saying you must change <em>username</em> to your own
|
||||
username...
|
||||
<p>
|
||||
|
||||
You can then enter the newly checked out buildroot directory, make changes, check
|
||||
your changes, diff your changes, revert your changes, and and commit your
|
||||
changes usine commands such as:
|
||||
|
||||
<pre>
|
||||
svn diff
|
||||
svn status
|
||||
svn revert
|
||||
svn commit</pre>
|
||||
|
||||
<p>
|
||||
|
||||
For additional detail on how to use Subversion, please visit the
|
||||
<a href="http://subversion.tigris.org/">the Subversion website</a>.
|
||||
You might also want to read online or buy a copy of <a
|
||||
href="http://svnbook.red-bean.com/">the Subversion Book</a>...
|
||||
<pre>git clone git://git.buildroot.net/~<USERNAME>/git/<REPO></pre>
|
||||
|
||||
For additional detail on how to use Git, please visit the
|
||||
<a href="http://git-scm.org/">the Git website</a>.
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Current documentation for buildroot includes:
|
||||
|
||||
<li>
|
||||
If you find that you need help with buildroot, you can ask for help on the
|
||||
<a href= "lists/uClibc/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
|
||||
<a href= "/lists/buildroot/">buildroot mailing list</a> at buildroot at mail.uclibc.org.
|
||||
In addition the BusyBox, uClibc, and buildroot developers are also known to
|
||||
hang out on the uClibc IRC channel: #uclibc on irc.freenode.net.
|
||||
</li>
|
||||
|
||||
@@ -6,29 +6,32 @@
|
||||
|
||||
<p>
|
||||
|
||||
The latest release can always be dowloaded from
|
||||
<a href="/downloads/">http://buildroot.uclibc.org/downloads/</a>.
|
||||
The latest stable release is <b>2009.05</b>, which can be downloaded
|
||||
here:<p>
|
||||
|
||||
<a href="/downloads/buildroot-2009.05.tar.gz">buildroot-2009.05.tar.gz</a>
|
||||
or
|
||||
<a href="/downloads/buildroot-2009.05.tar.bz2">buildroot-2009.05.tar.bz2</a>.
|
||||
<p>
|
||||
|
||||
This and earlier releases can always be dowloaded from
|
||||
<a href="/downloads/">http://buildroot.net/downloads/</a>.
|
||||
|
||||
<p>
|
||||
|
||||
You can also obtain <a href="/downloads/snapshots/">Daily
|
||||
Snapshots</a> of the latest Buildroot source tree if you want to to
|
||||
follow development, but cannot or do not wish to use Subversion (svn).
|
||||
follow development, but cannot or do not wish to use Git.
|
||||
|
||||
<ul>
|
||||
<li> Click here to <a href="downloads/snapshots/">Daily Snapshots</a>.
|
||||
</li>
|
||||
|
||||
<li> Click here to <a href="http://sources.busybox.net/index.py/trunk/buildroot/">browse the source tree</a>.
|
||||
<li> Click here to <a href="http://git.buildroot.net/buildroot">browse the source tree</a>.
|
||||
</li>
|
||||
|
||||
<li>Anonymous <a href="subversion.html">Subversion access</a> is available.
|
||||
<li>Anonymous <a href="git.html">Git access</a> is available.
|
||||
</li>
|
||||
|
||||
<li>For those that are actively contributing obtaining
|
||||
<a href="developer.html">Subversion read/write access</a> is also possible.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
39
docs/git.html
Normal file
39
docs/git.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<!--#include file="header.html" -->
|
||||
|
||||
|
||||
<h3>Git Access</h3>
|
||||
|
||||
The buildroot repository can be browsed online through cgit at
|
||||
<a href="http://git.buildroot.net/buildroot">http://git.buildroot.net/buildroot</a>.
|
||||
To grab a copy of the repository use
|
||||
|
||||
<pre>
|
||||
git clone git://git.buildroot.net/buildroot</pre>
|
||||
|
||||
Or if you're behind a firewall blocking git:
|
||||
|
||||
<pre>
|
||||
git clone http://git.buildroot.net/buildroot</pre>
|
||||
|
||||
<p>
|
||||
|
||||
If you are not already familiar with using Git, we recommend you visit <a
|
||||
href="http://git-scm.org">the Git website</a>.
|
||||
|
||||
<p>
|
||||
|
||||
Once you've checked out a copy of the source tree, you can update your source
|
||||
tree at any time so it is in sync with the latest and greatest by entering your
|
||||
buildroot directory and running the command:
|
||||
|
||||
<pre>
|
||||
git pull
|
||||
</pre>
|
||||
|
||||
Because you've only been granted anonymous access to the tree, you won't be
|
||||
able to commit any changes. Changes can be submitted for inclusion by posting
|
||||
them to the buildroot mailing list or to the <a
|
||||
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
@@ -27,28 +27,16 @@
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<div class="c3">
|
||||
<table border="0" cellspacing="1" cellpadding="2">
|
||||
<tr>
|
||||
<td class="c1">BUILDROOT</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<a href="/"><IMG SRC="images/busybox1.png" alt="Buildroot" border="0"></a><BR>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
||||
<td valign="TOP">
|
||||
<a href="/"><IMG SRC="images/logo_small.png" alt="Buildroot"
|
||||
border="0" width="200" height="100"></a><BR>
|
||||
|
||||
<br><a href="/about.html">About</a>
|
||||
<br><a href="/news.html">Latest News</a>
|
||||
<br><a href="/download.html">Download</a>
|
||||
<br><a href="http://sources.busybox.net/index.py/trunk/buildroot/">Browse Source</a>
|
||||
<br><a href="/subversion.html">Accessing Source</a>
|
||||
<br><a href="http://bugs.uclibc.org/">Bug Tracking</a>
|
||||
<br><a href="http://git.buildroot.net/buildroot">Browse Source</a>
|
||||
<br><a href="/git.html">Accessing Source</a>
|
||||
<br><a href="https://bugs.uclibc.org/">Bug Tracking</a>
|
||||
<br><a href="/docs.html">Documentation</a>
|
||||
<br><a href="/lists.html">Mailing Lists</a>
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 11 KiB |
BIN
docs/images/logo.png
Normal file
BIN
docs/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/images/logo.xcf
Normal file
BIN
docs/images/logo.xcf
Normal file
Binary file not shown.
BIN
docs/images/logo_small.png
Normal file
BIN
docs/images/logo_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/images/menuconfig.png
Normal file
BIN
docs/images/menuconfig.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
BIN
docs/images/menuconfig_small.png
Normal file
BIN
docs/images/menuconfig_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
@@ -1 +1 @@
|
||||
<!--#include file="news.html" -->
|
||||
<!--#include file="about.html" -->
|
||||
|
||||
@@ -8,7 +8,9 @@ development. You can subscribe by visiting
|
||||
<a href="http://lists.busybox.net/mailman/listinfo/buildroot">this page</a>.
|
||||
Only subscribers to the Buildroot mailing list are allowed to post
|
||||
to this list.
|
||||
|
||||
<p>
|
||||
The list is also available through <a
|
||||
href="http://gmane.org">Gmane</a> at <a href="http://dir.gmane.org/gmane.comp.lib.uclibc.buildroot">gmane.comp.lib.uclibc.buildroot</a>.
|
||||
<p>
|
||||
|
||||
<h3>Search the List Archives</h3>
|
||||
|
||||
@@ -1,7 +1,94 @@
|
||||
<!--#include file="header.html" -->
|
||||
|
||||
<h3>News</h3>
|
||||
|
||||
<p>
|
||||
|
||||
<ul>
|
||||
<li><b>1 June 2009 -- 2009.05 released</b>
|
||||
|
||||
<p>The stable 2009.05 release is out - Thanks to everyone
|
||||
contributing and testing the release candidates. See the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2009-June/027640.html">announcement</a>
|
||||
or <a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05">CHANGES</a>
|
||||
for more details, and go to the <a href="/downloads/">downloads page</a>
|
||||
to pick up the <a href="/downloads/buildroot-2009.05.tar.bz2">2009.05
|
||||
release</a>.</p>
|
||||
|
||||
<li><b>27 May 2009 -- 2009.05-rc3 released</b>
|
||||
|
||||
<p>We had a number of fixes post-RC2, so RC3 is out (see <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc3">CHANGES</a>
|
||||
for details). Now is the moment to test and verify that everything
|
||||
is working for your favorite config - Expect a final 2009.05 very soon.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2009.05-rc3.tar.bz2">2009.05-rc3
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>19 May 2009 -- 2009.05-rc2 released</b>
|
||||
|
||||
<p>RC2 is out with more cleanups and bug fixes (see <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc2">CHANGES</a>).
|
||||
Unless big issues are found, expect this to be the last release
|
||||
candidate before the release - So give it a good test.</p>
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2009.05-rc2.tar.bz2">2009.05-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>14 May 2009 -- Buildroot.org</b>
|
||||
|
||||
<p>Earl Levine has been so kind to donate the <b>buildroot.org</b>
|
||||
domain to us, so the website can now also be reached at <a
|
||||
href="http://www.buildroot.org">www.buildroot.org</a> (and git at
|
||||
<a href="http://git.buildroot.org/buildroot">git.buildroot.org</a>).
|
||||
|
||||
Thanks a lot Earl!</p>
|
||||
|
||||
<li><b>5 May 2009 -- 2009.05-rc1 released</b>
|
||||
|
||||
<p>We have a new release candidate! Lots of changes all over the
|
||||
tree, see the <a
|
||||
href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2009.05_rc1">CHANGES</a>
|
||||
file for details.
|
||||
|
||||
<p>Head to the <a href="/downloads/">downloads page</a> to pick up the
|
||||
<a href="/downloads/buildroot-2009.05-rc1.tar.bz2">2009.05-rc1
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>3 May 2009 -- Moved to git</b>
|
||||
|
||||
<p>We've moved the source code from <a
|
||||
href="http://subversion.tigris.org">Subversion</a> to <a
|
||||
href="http://git-scm.org">Git</a>. You can browse the repo online
|
||||
<a href="http://git.buildroot.net/buildroot">here</a>, and clone
|
||||
the repo using:
|
||||
<pre>git clone git://git.buildroot.net/buildroot</pre>
|
||||
See the <a href="/git.html">Git Access</a> page for more details.
|
||||
</p>
|
||||
|
||||
<li><b>27 March 2009 -- new Logo</b>
|
||||
|
||||
<p>We have a <a href="images/logo.png">logo</a>! We have so far
|
||||
been using the <a href="http://busybox.net">Busybox</a> logo on
|
||||
the website, as the website was a copy of the <a
|
||||
href="http://busybox.net">Busybox</a> one - But not anymore, we
|
||||
now have a shiny new logo of our own.</p>
|
||||
|
||||
<li><b>12 February 2009 -- 2009.02 released</b>
|
||||
<p>The stable 2009.02 release is out - Thanks to everyone
|
||||
contributing and testing the release candidates. See the
|
||||
<a href="http://lists.busybox.net/pipermail/buildroot/2009-February/025974.html">announcement</a>
|
||||
for more details, and go to the <a href="/downloads/">downloads page</a>
|
||||
to pick up the <a href="/downloads/buildroot-2009.02.tar.bz2">2009.02
|
||||
release</a>.</p>
|
||||
|
||||
<li><b>9 February 2009 -- 2009.02-rc4 released</b>
|
||||
<p>We had more than 50 changes since RC3, several of them
|
||||
@@ -14,7 +101,7 @@
|
||||
<a href="/downloads/buildroot-2009.02-rc4.tar.bz2">2009.02-rc4
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="http://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>31 January 2009 -- 2009.02-rc3 released</b>
|
||||
<p>RC3 is out with more cleanups and bug fixes. Unless big issues
|
||||
@@ -25,7 +112,7 @@
|
||||
<a href="/downloads/buildroot-2009.02-rc3.tar.bz2">2009.02-rc3
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="http://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>23 January 2009 -- 2009.02-rc2 released</b>
|
||||
<p>Another week, another release candidate with a bunch of
|
||||
@@ -35,7 +122,7 @@
|
||||
<a href="/downloads/buildroot-2009.02-rc2.tar.bz2">2009.02-rc2
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="http://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
href="https://bugs.uclibc.org">bug tracker</a>.</p>
|
||||
|
||||
<li><b>16 January 2009 -- Release candidate and new maintainer</b>
|
||||
<p>It has been a long time coming, but we finally have a new
|
||||
@@ -45,7 +132,7 @@
|
||||
<a href="/downloads/buildroot-2009.02-rc1.tar.bz2">2009.02-rc1
|
||||
release candidate</a>, and report any problems found to the <a
|
||||
href="lists.html">mailing list</a> or <a
|
||||
href="http://bugs.uclibc.org">bug tracker</a>. The plan is to
|
||||
href="https://bugs.uclibc.org">bug tracker</a>. The plan is to
|
||||
release 2009.02 in time for <a
|
||||
href="http://www.fosdem.org/2009/">FOSDEM</a>.</p>
|
||||
|
||||
@@ -73,7 +160,7 @@
|
||||
|
||||
If you find a bug in buildroot, or wish to submit a patch to fix a problem
|
||||
or add a shiny new feature, please use the <a
|
||||
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
|
||||
href="https://bugs.uclibc.org/">Bug and Patch Tracking System</a> to post
|
||||
the details, to make certain your work is not lost.
|
||||
|
||||
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<!--#include file="header.html" -->
|
||||
|
||||
|
||||
<h3>Anonymous Subversion Access</h3>
|
||||
|
||||
We allow anonymous (read-only) Subversion (svn) access to everyone. To
|
||||
grab a copy of the latest version of buildroot using anonymous svn access:
|
||||
|
||||
<pre>
|
||||
svn co svn://uclibc.org/trunk/buildroot</pre>
|
||||
|
||||
|
||||
<p>
|
||||
|
||||
If you are not already familiar with using Subversion, I recommend you visit <a
|
||||
href="http://subversion.tigris.org/">the Subversion website</a>. You might
|
||||
also want to read online or buy a copy of <a
|
||||
href="http://svnbook.red-bean.com/">the Subversion Book</a>. If you are
|
||||
already comfortable with using CVS, you may want to skip ahead to the <a
|
||||
href="http://svnbook.red-bean.com/en/1.1/apa.html">Subversion for CVS Users</a>
|
||||
part of the Subversion Book.
|
||||
|
||||
<p>
|
||||
|
||||
Once you've checked out a copy of the source tree, you can update your source
|
||||
tree at any time so it is in sync with the latest and greatest by entering your
|
||||
buildroot directory and running the command:
|
||||
|
||||
<pre>
|
||||
svn update</pre>
|
||||
|
||||
Because you've only been granted anonymous access to the tree, you won't be
|
||||
able to commit any changes. Changes can be submitted for inclusion by posting
|
||||
them to the buildroot mailing list or to the <a
|
||||
href="http://bugs.uclibc.org/">Bug and Patch Tracking System</a>.
|
||||
For those that are actively contributing <a
|
||||
href="developer.html">Subversion commit access</a> can be made available.
|
||||
|
||||
<!--#include file="footer.html" -->
|
||||
|
||||
@@ -43,7 +43,7 @@ source "package/libtool/Config.in"
|
||||
source "package/m4/Config.in"
|
||||
source "package/mpatrol/Config.in"
|
||||
source "package/oprofile/Config.in"
|
||||
source "package/pkgconfig/Config.in"
|
||||
source "package/pkg-config/Config.in"
|
||||
source "package/readline/Config.in"
|
||||
source "package/valgrind/Config.in"
|
||||
source "package/pcre/Config.in"
|
||||
@@ -61,6 +61,7 @@ source "package/customize/Config.in"
|
||||
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/dash/Config.in"
|
||||
endif
|
||||
source "package/enchant/Config.in"
|
||||
source "package/file/Config.in"
|
||||
source "package/gamin/Config.in"
|
||||
source "package/icu/Config.in"
|
||||
@@ -100,6 +101,7 @@ if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/psmisc/Config.in"
|
||||
endif
|
||||
source "package/screen/Config.in"
|
||||
source "package/shared-mime-info/Config.in"
|
||||
source "package/startup-notification/Config.in"
|
||||
source "package/strace/Config.in"
|
||||
source "package/sudo/Config.in"
|
||||
@@ -131,7 +133,9 @@ if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/boa/Config.in"
|
||||
endif
|
||||
source "package/bind/Config.in"
|
||||
source "package/bmon/Config.in"
|
||||
source "package/bridge-utils/Config.in"
|
||||
source "package/ctorrent/Config.in"
|
||||
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/dhcp/Config.in"
|
||||
endif
|
||||
@@ -146,6 +150,7 @@ source "package/iperf/Config.in"
|
||||
source "package/iproute2/Config.in"
|
||||
source "package/ipsec-tools/Config.in"
|
||||
source "package/iptables/Config.in"
|
||||
source "package/iw/Config.in"
|
||||
source "package/kismet/Config.in"
|
||||
source "package/l2tp/Config.in"
|
||||
source "package/libcgi/Config.in"
|
||||
@@ -153,8 +158,10 @@ source "package/libcgicc/Config.in"
|
||||
source "package/libcurl/Config.in"
|
||||
source "package/libdnet/Config.in"
|
||||
source "package/libeXosip2/Config.in"
|
||||
source "package/libnl/Config.in"
|
||||
source "package/libosip2/Config.in"
|
||||
source "package/libpcap/Config.in"
|
||||
source "package/libsoup/Config.in"
|
||||
source "package/libupnp/Config.in"
|
||||
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/lighttpd/Config.in"
|
||||
@@ -162,7 +169,7 @@ endif
|
||||
source "package/links/Config.in"
|
||||
source "package/lrzsz/Config.in"
|
||||
source "package/mdnsresponder/Config.in"
|
||||
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS || !BR2_PACKAGE_BUSYBOX_SNAPSHOT
|
||||
if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/microcom/Config.in"
|
||||
endif
|
||||
source "package/mii-diag/Config.in"
|
||||
@@ -178,6 +185,7 @@ source "package/netkitbase/Config.in"
|
||||
source "package/netkittelnet/Config.in"
|
||||
source "package/netplug/Config.in"
|
||||
source "package/netsnmp/Config.in"
|
||||
source "package/netstat-nat/Config.in"
|
||||
source "package/nfs-utils/Config.in"
|
||||
source "package/ntp/Config.in"
|
||||
source "package/olsr/Config.in"
|
||||
@@ -196,6 +204,7 @@ source "package/quagga/Config.in"
|
||||
source "package/rsync/Config.in"
|
||||
source "package/samba/Config.in"
|
||||
source "package/socat/Config.in"
|
||||
source "package/spawn-fcgi/Config.in"
|
||||
source "package/stunnel/Config.in"
|
||||
source "package/tcpdump/Config.in"
|
||||
source "package/tftpd/Config.in"
|
||||
@@ -218,6 +227,7 @@ if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/wget/Config.in"
|
||||
endif
|
||||
source "package/wireless-tools/Config.in"
|
||||
source "package/wpa_supplicant/Config.in"
|
||||
|
||||
endmenu
|
||||
|
||||
@@ -225,9 +235,10 @@ menu "Hardware handling / blockdevices and filesystem maintenance"
|
||||
source "package/acpid/Config.in"
|
||||
source "package/dbus/Config.in"
|
||||
source "package/dbus-glib/Config.in"
|
||||
source "package/dbus-python/Config.in"
|
||||
source "package/devmem2/Config.in"
|
||||
source "package/dm/Config.in"
|
||||
source "package/dmraid/Config.in"
|
||||
source "package/dosfstools/Config.in"
|
||||
source "package/e2fsprogs/Config.in"
|
||||
source "package/eeprog/Config.in"
|
||||
source "package/fconfig/Config.in"
|
||||
@@ -250,9 +261,9 @@ source "package/lm-sensors/Config.in"
|
||||
source "package/lvm2/Config.in"
|
||||
source "package/mdadm/Config.in"
|
||||
source "package/memtester/Config.in"
|
||||
source "package/mkdosfs/Config.in"
|
||||
source "package/mtd/Config.in"
|
||||
source "package/ntfs-3g/Config.in"
|
||||
source "package/ntfsprogs/Config.in"
|
||||
source "package/pciutils/Config.in"
|
||||
source "package/pcmcia/Config.in"
|
||||
source "package/setserial/Config.in"
|
||||
@@ -301,6 +312,7 @@ source "package/sdl_image/Config.in"
|
||||
source "package/sdl_mixer/Config.in"
|
||||
source "package/sdl_net/Config.in"
|
||||
source "package/sdl_ttf/Config.in"
|
||||
source "package/sdl_gfx/Config.in"
|
||||
source "package/tiff/Config.in"
|
||||
|
||||
comment "busybox graphic applications"
|
||||
@@ -309,46 +321,13 @@ source "package/fbv/Config.in"
|
||||
source "package/fbset/Config.in"
|
||||
|
||||
comment "other GUIs"
|
||||
source "package/qte/Config.in"
|
||||
source "package/qtopia4/Config.in"
|
||||
source "package/qt/Config.in"
|
||||
|
||||
#source "package/microwin/Config.in"
|
||||
|
||||
|
||||
choice
|
||||
prompt "X Window System server"
|
||||
default BR2_PACKAGE_XSERVER_none
|
||||
help
|
||||
Select the X Window System server to use
|
||||
|
||||
config BR2_PACKAGE_XSERVER_none
|
||||
bool "none"
|
||||
config BR2_PACKAGE_XSERVER_xorg
|
||||
bool "modular xorg"
|
||||
depends on BR2_USE_WCHAR # && BR2_ENABLE_LOCALE
|
||||
# depending on BR2_ENABLE_LOCALE gives a recursion error with dbus
|
||||
comment "xorg requires a toolchain with LOCALE and WCHAR support"
|
||||
depends on !(BR2_USE_WCHAR && BR2_ENABLE_LOCALE)
|
||||
config BR2_PACKAGE_XSERVER_tinyx
|
||||
bool "tinyx"
|
||||
depends on BR2_USE_WCHAR
|
||||
comment "tinyx requires a toolchain with WCHAR support"
|
||||
depends on !BR2_USE_WCHAR
|
||||
endchoice
|
||||
|
||||
config BR2_X11_PREFIX
|
||||
string
|
||||
default "/usr/X11R6" if BR2_PACKAGE_XSERVER_xorg
|
||||
default "/usr" if BR2_PACKAGE_XSERVER_tinyx
|
||||
help
|
||||
X11 apps root location
|
||||
|
||||
if !BR2_PACKAGE_XSERVER_none
|
||||
source "package/x11r7/Config.in"
|
||||
endif
|
||||
|
||||
comment "X libraries and helper libraries"
|
||||
#XXX: maybe some of these should depend on !BR2_PACKAGE_XSERVER_none
|
||||
source "package/atk/Config.in"
|
||||
source "package/cairo/Config.in"
|
||||
source "package/pango/Config.in"
|
||||
@@ -380,6 +359,7 @@ source "package/dillo/Config.in"
|
||||
source "package/docker/Config.in"
|
||||
source "package/gqview/Config.in"
|
||||
source "package/gmpc/Config.in"
|
||||
source "package/gob2/Config.in"
|
||||
source "package/gtkperf/Config.in"
|
||||
source "package/leafpad/Config.in"
|
||||
source "package/midori/Config.in"
|
||||
@@ -401,6 +381,7 @@ if !BR2_PACKAGE_BUSYBOX_HIDE_OTHERS
|
||||
source "package/gzip/Config.in"
|
||||
endif
|
||||
source "package/lzo/Config.in"
|
||||
source "package/lzop/Config.in"
|
||||
source "package/lzma/Config.in"
|
||||
source "package/zlib/Config.in"
|
||||
endmenu
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
# | FOO_VERSION = 1.0
|
||||
# | FOO_SOURCE = foo-$(FOO_VERSION).tar.gz
|
||||
# | FOO_SITE = http://www.libfoo.org/dist
|
||||
# | $(eval $(call AUTOTARGETS,foo))
|
||||
# | $(eval $(call AUTOTARGETS,package,foo))
|
||||
#
|
||||
## The following targets can be called from the shell:
|
||||
#
|
||||
@@ -259,7 +259,7 @@ $(BUILD_DIR)/%/.stamp_configured:
|
||||
# Build
|
||||
$(BUILD_DIR)/%/.stamp_built:
|
||||
$(call MESSAGE,"Building")
|
||||
$($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR)
|
||||
PATH=$(TARGET_PATH) $($(PKG)_MAKE_ENV) $($(PKG)_MAKE) $($(PKG)_MAKE_OPT) -C $(@D)/$($(PKG)_SUBDIR)
|
||||
$(Q)touch $@
|
||||
|
||||
# Install to staging dir
|
||||
|
||||
@@ -93,9 +93,9 @@ TARGET_CXXFLAGS=$(TARGET_CFLAGS)
|
||||
# else it's an external toolchain
|
||||
#########################################################################
|
||||
else
|
||||
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include -I$(TOOLCHAIN_EXTERNAL_PATH)/$(TOOLCHAIN_EXTERNAL_PREFIX)/include --sysroot $(STAGING_DIR)/
|
||||
TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING) --sysroot $(STAGING_DIR)/
|
||||
TARGET_CXXFLAGS=$(TARGET_CFLAGS)
|
||||
TARGET_LDFLAGS=-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib
|
||||
TARGET_LDFLAGS=--sysroot $(STAGING_DIR)/
|
||||
endif
|
||||
#########################################################################
|
||||
#ifeq ($(BR2_ROOTFS_SUFFIX),)
|
||||
@@ -117,7 +117,7 @@ ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
|
||||
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
|
||||
|
||||
# Quotes are needed for spaces et al in path components.
|
||||
TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
|
||||
TARGET_PATH="$(TOOL_BUILD_DIR)/bin:$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(PATH)"
|
||||
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
|
||||
GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
|
||||
REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)$(GNU_TARGET_SUFFIX)
|
||||
@@ -130,7 +130,7 @@ TOOLCHAIN_EXTERNAL_PATH:=$(strip $(subst ",, $(BR2_TOOLCHAIN_EXTERNAL_PATH)))
|
||||
#"))
|
||||
#TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(TOOLCHAIN_EXTERNAL_PREFIX)
|
||||
TOOL_BUILD_DIR=$(BASE_DIR)/$(TOPDIR_PREFIX)toolchain_build_$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(TOPDIR_SUFFIX)
|
||||
TARGET_PATH="$(STAGING_DIR)/bin:$(STAGING_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
|
||||
TARGET_PATH="$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(TOOL_BUILD_DIR)/bin:$(TOOLCHAIN_EXTERNAL_PATH)/bin:$(PATH)"
|
||||
#IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(TOOLCHAIN_EXTERNAL_PREFIX)$(ROOTFS_SUFFIX)
|
||||
IMAGE:=$(BINARIES_DIR)/$(BR2_ROOTFS_PREFIX).$(ARCH)$(COND_ARCH_FPU_SUFFIX)$(ROOTFS_SUFFIX)
|
||||
|
||||
@@ -181,10 +181,15 @@ ifeq ($(BR2_STRIP_none),y)
|
||||
TARGET_STRIP=true -Not_stripping
|
||||
STRIPCMD=$(TARGET_STRIP)
|
||||
endif
|
||||
INSTALL=/usr/bin/install
|
||||
INSTALL=$(shell which install || type -p install)
|
||||
FLEX:=$(shell which flex || type -p flex)
|
||||
BISON:=$(shell which bison || type -p bison)
|
||||
|
||||
HOST_CFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
|
||||
HOST_CXXFLAGS += -I$(HOST_DIR)/include -I$(HOST_DIR)/usr/include
|
||||
HOST_LDFLAGS += -L$(HOST_DIR)/lib -L$(HOST_DIR)/usr/lib
|
||||
HOST_PATH=$(HOST_DIR)/bin:$(HOST_DIR)/usr/bin:$(PATH)
|
||||
|
||||
# hostcc version as an integer - E.G. 4.3.2 => 432
|
||||
HOSTCC_VERSION:=$(shell $(HOSTCC) --version | \
|
||||
sed -n 's/^.* \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)[ ]*.*$$/\1\2\3/p')
|
||||
@@ -200,20 +205,11 @@ HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
|
||||
-e 's/mipsel-.*/mipsel/' \
|
||||
-e 's/cris.*/cris/' \
|
||||
-e 's/i[3-9]86/i386/' \
|
||||
-e 's/xtensa.*/xtensa/' \
|
||||
)
|
||||
GNU_HOST_NAME:=$(HOST_ARCH)-$(subst ",,$(BR2_GNU_BUILD_SUFFIX))
|
||||
#")
|
||||
|
||||
AUTO_CONFIGURE_TARGET=\
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
$(TARGET_CONFIGURE_ENV) \
|
||||
$(if $(THIS_SRCDIR),$(THIS_SRCDIR)/,./)configure \
|
||||
$(if $(BR2_CONFIG_CACHE),--cache-file="$(PROJECT_BUILD_DIR)/tgt-config.cache",) \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME)
|
||||
|
||||
TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
|
||||
AR="$(TARGET_AR)" \
|
||||
AS="$(TARGET_AS)" \
|
||||
@@ -246,8 +242,8 @@ TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
|
||||
DEFAULT_ASSEMBLER="$(TARGET_AS)" \
|
||||
DEFAULT_LINKER="$(TARGET_LD)" \
|
||||
PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
|
||||
PKG_CONFIG="$(STAGING_DIR)/usr/bin/pkg-config" \
|
||||
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
|
||||
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
|
||||
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig$(PKG_CONFIG_PATH)" \
|
||||
STAGING_DIR="$(STAGING_DIR)"
|
||||
|
||||
TARGET_CONFIGURE_ENV=\
|
||||
@@ -256,7 +252,7 @@ TARGET_CONFIGURE_ENV=\
|
||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
FCFLAGS="$(TARGET_FCFLAGS)" \
|
||||
|
||||
HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
|
||||
HOST_CONFIGURE_OPTS=PATH=$(HOST_PATH) \
|
||||
AR="$(HOSTAR)" \
|
||||
AS="$(HOSTAS)" \
|
||||
LD="$(HOSTLD) $(HOST_LDFLAGS)" \
|
||||
@@ -290,7 +286,11 @@ HOST_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
|
||||
ORIGINAL_AS_FOR_TARGET="$(TARGET_AS)" \
|
||||
ORIGINAL_LD_FOR_TARGET="$(TARGET_LD)" \
|
||||
ORIGINAL_NM_FOR_TARGET="$(TARGET_NM)" \
|
||||
ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)"
|
||||
ORIGINAL_OBJDUMP_FOR_TARGET="$(TARGET_OBJDUMP)" \
|
||||
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
|
||||
PKG_CONFIG_PATH="$(HOST_DIR)/usr/lib/pkgconfig$(PKG_CONFIG_PATH)"
|
||||
|
||||
HOST_MAKE_ENV=PATH=$(HOST_PATH)
|
||||
|
||||
#######################################################################
|
||||
# settings we need to pass to configure
|
||||
@@ -362,7 +362,7 @@ DISABLE_IPV6= --disable-ipv6
|
||||
endif
|
||||
|
||||
ifneq ($(BR2_GCC_CROSS_CXX),y)
|
||||
TARGET_CONFIGURE_OPTS+=CXX=""
|
||||
TARGET_CONFIGURE_OPTS+=CXX=false
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_ENABLE_DEBUG),y)
|
||||
@@ -371,23 +371,8 @@ else
|
||||
ENABLE_DEBUG:=
|
||||
endif
|
||||
|
||||
|
||||
# X Windowing system
|
||||
|
||||
XSERVER:=
|
||||
ifeq ($(BR2_PACKAGE_TINYX),y)
|
||||
XSERVER+=tinyx
|
||||
endif
|
||||
ifeq ($(BR2_PACKAGE_XORG),y)
|
||||
XSERVER+=xorg
|
||||
endif
|
||||
ifeq ($(BR2_PACKAGE_XORG7),y)
|
||||
XSERVER+=xserver_xorg-server
|
||||
endif
|
||||
ifeq ($(BR2_PACKAGE_XGGI),y)
|
||||
XSERVER+=xggi
|
||||
endif
|
||||
|
||||
X11_PREFIX:=$(strip $(subst ",, $(BR2_X11_PREFIX)))
|
||||
#"))
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_ATK
|
||||
bool "atk"
|
||||
select BR2_PACKAGE_PKGCONFIG
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
help
|
||||
The ATK accessibility toolkit, needed to build GTK+-2.x.
|
||||
|
||||
@@ -38,24 +38,67 @@ ATK_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes \
|
||||
am_cv_func_working_getline=yes gl_cv_func_mkdir_trailing_slash_bug=no \
|
||||
gl_cv_func_mkstemp_limitations=no ac_cv_func_working_mktime=yes \
|
||||
jm_cv_func_working_re_compile_pattern=yes ac_use_included_regex=no \
|
||||
gl_cv_c_restrict=no ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal \
|
||||
ac_cv_prog_F77=no
|
||||
|
||||
ifneq ($(BR2_PACKAGE_XSERVER_none),y)
|
||||
ATK_CONF_OPT_X = --with-x \
|
||||
--x-includes=$(STAGING_DIR)/usr/include/X11 \
|
||||
--x-libraries=$(STAGING_DIR)/usr/lib --disable-glibtest
|
||||
else
|
||||
ATK_CONF_OPT_X = --without-x
|
||||
endif
|
||||
gl_cv_c_restrict=no ac_cv_prog_F77=no
|
||||
|
||||
ATK_CONF_OPT = --enable-shared \
|
||||
--enable-static $(ATK_CONF_OPT_X) \
|
||||
--enable-static
|
||||
--disable-glibtest --enable-explicit-deps=no \
|
||||
--disable-debug
|
||||
|
||||
ATK_MAKE_OPT = GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal GLIB_MKENUMS=$(HOST_GLIB)/bin/glib-mkenums
|
||||
ifeq ($(BR2_PACKAGE_XORG7),y)
|
||||
ATK_CONF_OPT += --with-x \
|
||||
--x-includes=$(STAGING_DIR)/usr/include/X11 \
|
||||
--x-libraries=$(STAGING_DIR)/usr/lib --disable-glibtest
|
||||
else
|
||||
ATK_CONF_OPT += --without-x
|
||||
endif
|
||||
|
||||
ATK_DEPENDENCIES = libglib2 pkgconfig
|
||||
ATK_DEPENDENCIES = libglib2 host-pkgconfig
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,atk))
|
||||
|
||||
# atk for the host
|
||||
ATK_HOST_DIR:=$(BUILD_DIR)/atk-$(ATK_VERSION)-host
|
||||
|
||||
$(DL_DIR)/$(ATK_SOURCE):
|
||||
$(call DOWNLOAD,$(ATK_SITE),$(ATK_SOURCE))
|
||||
|
||||
$(STAMP_DIR)/host_atk_unpacked: $(DL_DIR)/$(ATK_SOURCE)
|
||||
mkdir -p $(ATK_HOST_DIR)
|
||||
$(INFLATE$(suffix $(ATK_SOURCE))) $< | \
|
||||
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(ATK_HOST_DIR) $(TAR_OPTIONS) -
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_atk_configured: $(STAMP_DIR)/host_atk_unpacked $(STAMP_DIR)/host_libglib2_installed $(STAMP_DIR)/host_pkgconfig_installed
|
||||
(cd $(ATK_HOST_DIR); rm -rf config.cache; \
|
||||
$(HOST_CONFIGURE_OPTS) \
|
||||
CFLAGS="$(HOST_CFLAGS)" \
|
||||
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
./configure \
|
||||
--prefix="$(HOST_DIR)/usr" \
|
||||
--sysconfdir="$(HOST_DIR)/etc" \
|
||||
--enable-shared \
|
||||
--disable-static \
|
||||
--disable-glibtest \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_atk_compiled: $(STAMP_DIR)/host_atk_configured
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR)
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_atk_installed: $(STAMP_DIR)/host_atk_compiled
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(ATK_HOST_DIR) install
|
||||
touch $@
|
||||
|
||||
host-atk: $(STAMP_DIR)/host_atk_installed
|
||||
|
||||
host-atk-source: atk-source
|
||||
|
||||
host-atk-clean:
|
||||
rm -f $(addprefix $(STAMP_DIR)/host_atk_,unpacked configured compiled installed)
|
||||
-$(MAKE) -C $(ATK_HOST_DIR) uninstall
|
||||
-$(MAKE) -C $(ATK_HOST_DIR) clean
|
||||
|
||||
host-atk-dirclean:
|
||||
rm -rf $(ATK_HOST_DIR)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
config BR2_PACKAGE_AUTOCONF
|
||||
bool "autoconf"
|
||||
select BR2_PACKAGE_MICROPERL
|
||||
help
|
||||
Extensible program for developing configure scripts. These
|
||||
scripts handle all the mundane system/feature detection.
|
||||
|
||||
@@ -3,136 +3,63 @@
|
||||
# autoconf
|
||||
#
|
||||
#############################################################
|
||||
AUTOCONF_VERSION:=2.63
|
||||
AUTOCONF_SOURCE:=autoconf-$(AUTOCONF_VERSION).tar.bz2
|
||||
AUTOCONF_SITE:=$(BR2_GNU_MIRROR)/autoconf
|
||||
AUTOCONF_CAT:=$(BZCAT)
|
||||
AUTOCONF_SRC_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
|
||||
AUTOCONF_DIR:=$(BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)
|
||||
AUTOCONF_HOST_DIR:=$(TOOL_BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)-host
|
||||
AUTOCONF_BINARY:=autoconf
|
||||
AUTOCONF_TARGET_BINARY:=usr/bin/autoconf
|
||||
AUTOCONF:=$(STAGING_DIR)/usr/bin/autoconf
|
||||
AUTOCONF_VERSION = 2.63
|
||||
AUTOCONF_SOURCE = autoconf-$(AUTOCONF_VERSION).tar.bz2
|
||||
AUTOCONF_SITE = $(BR2_GNU_MIRROR)/autoconf
|
||||
|
||||
ifeq ($(BR2_ENABLE_DEBUG),y) # install-exec doesn't install aclocal stuff
|
||||
AUTOCONF_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
|
||||
endif
|
||||
|
||||
AUTOCONF_CONF_ENV = EMACS="no"
|
||||
|
||||
AUTOCONF_DEPENDENCIES = uclibc microperl
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,autoconf))
|
||||
|
||||
# autoconf for the host
|
||||
AUTOCONF_HOST_DIR:=$(BUILD_DIR)/autoconf-$(AUTOCONF_VERSION)-host
|
||||
|
||||
# variables used by other packages
|
||||
AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
|
||||
AUTOCONF:=$(HOST_DIR)/usr/bin/autoconf
|
||||
AUTORECONF=$(HOST_CONFIGURE_OPTS) ACLOCAL="$(ACLOCAL)" $(HOST_DIR)/usr/bin/autoreconf -v -f -i -I "$(ACLOCAL_DIR)"
|
||||
|
||||
$(DL_DIR)/$(AUTOCONF_SOURCE):
|
||||
$(call DOWNLOAD,$(AUTOCONF_SITE),$(AUTOCONF_SOURCE))
|
||||
$(call DOWNLOAD,$(AUTOCONF_SITE),$(AUTOCONF_SOURCE))
|
||||
|
||||
autoconf-source: $(DL_DIR)/$(AUTOCONF_SOURCE)
|
||||
|
||||
$(AUTOCONF_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOCONF_SOURCE)
|
||||
$(AUTOCONF_CAT) $(DL_DIR)/$(AUTOCONF_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
|
||||
$(CONFIG_UPDATE) $(AUTOCONF_SRC_DIR)
|
||||
touch $@
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# autoconf for the target
|
||||
#
|
||||
#############################################################
|
||||
|
||||
$(AUTOCONF_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
|
||||
mkdir -p $(AUTOCONF_DIR)
|
||||
(cd $(AUTOCONF_DIR); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
EMACS="no" \
|
||||
$(AUTOCONF_SRC_DIR)/configure \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/sbin \
|
||||
--libdir=/lib \
|
||||
--libexecdir=/usr/lib \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--localstatedir=/var \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_DIR)/.configured
|
||||
$(MAKE1) -C $(AUTOCONF_DIR)
|
||||
|
||||
$(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY): $(AUTOCONF_DIR)/bin/$(AUTOCONF_BINARY)
|
||||
$(MAKE) \
|
||||
prefix=$(TARGET_DIR)/usr \
|
||||
exec_prefix=$(TARGET_DIR)/usr \
|
||||
bindir=$(TARGET_DIR)/usr/bin \
|
||||
sbindir=$(TARGET_DIR)/usr/sbin \
|
||||
libexecdir=$(TARGET_DIR)/usr/lib \
|
||||
datadir=$(TARGET_DIR)/usr/share \
|
||||
sysconfdir=$(TARGET_DIR)/etc \
|
||||
localstatedir=$(TARGET_DIR)/var \
|
||||
libdir=$(TARGET_DIR)/usr/lib \
|
||||
infodir=$(TARGET_DIR)/usr/share/info \
|
||||
mandir=$(TARGET_DIR)/usr/share/man \
|
||||
includedir=$(TARGET_DIR)/usr/include \
|
||||
-C $(AUTOCONF_DIR) install
|
||||
ifneq ($(BR2_HAVE_INFOPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/info
|
||||
endif
|
||||
ifneq ($(BR2_HAVE_MANPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/man
|
||||
endif
|
||||
rm -rf $(TARGET_DIR)/share/locale
|
||||
rm -rf $(TARGET_DIR)/usr/share/doc
|
||||
touch -c $@
|
||||
|
||||
autoconf: uclibc $(TARGET_DIR)/$(AUTOCONF_TARGET_BINARY)
|
||||
|
||||
autoconf-clean:
|
||||
$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(AUTOCONF_DIR) uninstall
|
||||
-$(MAKE) -C $(AUTOCONF_DIR) clean
|
||||
|
||||
autoconf-dirclean:
|
||||
rm -rf $(AUTOCONF_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# autoconf for the host
|
||||
#
|
||||
#############################################################
|
||||
|
||||
$(AUTOCONF_HOST_DIR)/.configured: $(AUTOCONF_SRC_DIR)/.unpacked
|
||||
$(STAMP_DIR)/host_autoconf_unpacked: $(DL_DIR)/$(AUTOCONF_SOURCE)
|
||||
mkdir -p $(AUTOCONF_HOST_DIR)
|
||||
$(INFLATE$(suffix $(AUTOCONF_SOURCE))) $< | \
|
||||
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(AUTOCONF_HOST_DIR) $(TAR_OPTIONS) -
|
||||
toolchain/patch-kernel.sh $(AUTOCONF_HOST_DIR) package/autoconf/ \*.patch
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_autoconf_configured: $(STAMP_DIR)/host_autoconf_unpacked $(STAMP_DIR)/host_m4_installed $(STAMP_DIR)/host_libtool_installed
|
||||
(cd $(AUTOCONF_HOST_DIR); rm -rf config.cache; \
|
||||
$(HOST_CONFIGURE_OPTS) \
|
||||
CFLAGS="$(HOST_CFLAGS)" \
|
||||
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
EMACS="no" \
|
||||
$(AUTOCONF_SRC_DIR)/configure \
|
||||
--prefix=$(STAGING_DIR)/usr \
|
||||
./configure \
|
||||
--prefix="$(HOST_DIR)/usr" \
|
||||
--sysconfdir="$(HOST_DIR)/etc" \
|
||||
--disable-static \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY): $(AUTOCONF_HOST_DIR)/.configured
|
||||
$(MAKE1) -C $(AUTOCONF_HOST_DIR)
|
||||
$(STAMP_DIR)/host_autoconf_compiled: $(STAMP_DIR)/host_autoconf_configured
|
||||
$(MAKE) -C $(AUTOCONF_HOST_DIR)
|
||||
touch $@
|
||||
|
||||
$(AUTOCONF): $(AUTOCONF_HOST_DIR)/bin/$(AUTOCONF_BINARY)
|
||||
$(STAMP_DIR)/host_autoconf_installed: $(STAMP_DIR)/host_autoconf_compiled
|
||||
$(MAKE) -C $(AUTOCONF_HOST_DIR) install
|
||||
touch $@
|
||||
|
||||
host-autoconf: host-m4 host-libtool $(AUTOCONF)
|
||||
host-autoconf: $(STAMP_DIR)/host_autoconf_installed
|
||||
|
||||
host-autoconf-clean:
|
||||
$(MAKE) CC=$(HOST_CC) -C $(AUTOCONF_HOST_DIR) uninstall
|
||||
rm -f $(addprefix $(STAMP_DIR)/host_autoconf_,unpacked configured compiled installed)
|
||||
-$(MAKE) -C $(AUTOCONF_HOST_DIR) uninstall
|
||||
-$(MAKE) -C $(AUTOCONF_HOST_DIR) clean
|
||||
|
||||
host-autoconf-dirclean:
|
||||
rm -rf $(AUTOCONF_HOST_DIR)
|
||||
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_AUTOCONF),y)
|
||||
TARGETS+=autoconf
|
||||
endif
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
config BR2_PACKAGE_AUTOMAKE
|
||||
bool "automake"
|
||||
select BR2_PACKAGE_AUTOCONF
|
||||
select BR2_PACKAGE_MICROPERL
|
||||
help
|
||||
Tool for automatically generating Makefile's for input to
|
||||
configure scripts (made by autoconf).
|
||||
|
||||
@@ -3,139 +3,63 @@
|
||||
# automake
|
||||
#
|
||||
#############################################################
|
||||
AUTOMAKE_VERSION:=1.10
|
||||
AUTOMAKE_SOURCE:=automake-$(AUTOMAKE_VERSION).tar.bz2
|
||||
AUTOMAKE_SITE:=$(BR2_GNU_MIRROR)/automake
|
||||
AUTOMAKE_CAT:=$(BZCAT)
|
||||
AUTOMAKE_SRC_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
|
||||
AUTOMAKE_DIR:=$(BUILD_DIR)/automake-$(AUTOMAKE_VERSION)
|
||||
AUTOMAKE_HOST_DIR:=$(TOOL_BUILD_DIR)/automake-$(AUTOMAKE_VERSION)-host
|
||||
AUTOMAKE_BINARY:=automake
|
||||
AUTOMAKE_TARGET_BINARY:=usr/bin/automake
|
||||
AUTOMAKE:=$(STAGING_DIR)/usr/bin/automake
|
||||
AUTOMAKE_VERSION = 1.10
|
||||
AUTOMAKE_SOURCE = automake-$(AUTOMAKE_VERSION).tar.bz2
|
||||
AUTOMAKE_SITE = $(BR2_GNU_MIRROR)/automake
|
||||
|
||||
ifeq ($(BR2_ENABLE_DEBUG),y) # install-exec doesn't install aclocal stuff
|
||||
AUTOMAKE_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
|
||||
endif
|
||||
|
||||
AUTOMAKE_DEPENDENCIES = uclibc autoconf microperl
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,automake))
|
||||
|
||||
# automake for the host
|
||||
AUTOMAKE_HOST_DIR:=$(BUILD_DIR)/automake-$(AUTOMAKE_VERSION)-host
|
||||
|
||||
# variables used by other packages
|
||||
AUTOMAKE:=$(HOST_DIR)/usr/bin/automake
|
||||
ACLOCAL_DIR = $(STAGING_DIR)/usr/share/aclocal
|
||||
ACLOCAL = aclocal -I $(ACLOCAL_DIR)
|
||||
ACLOCAL = $(HOST_DIR)/usr/bin/aclocal -I $(ACLOCAL_DIR)
|
||||
|
||||
$(DL_DIR)/$(AUTOMAKE_SOURCE):
|
||||
$(call DOWNLOAD,$(AUTOMAKE_SITE),$(AUTOMAKE_SOURCE))
|
||||
$(call DOWNLOAD,$(AUTOMAKE_SITE),$(AUTOMAKE_SOURCE))
|
||||
|
||||
automake-source: $(DL_DIR)/$(AUTOMAKE_SOURCE)
|
||||
|
||||
$(AUTOMAKE_SRC_DIR)/.unpacked: $(DL_DIR)/$(AUTOMAKE_SOURCE)
|
||||
$(AUTOMAKE_CAT) $(DL_DIR)/$(AUTOMAKE_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
|
||||
$(CONFIG_UPDATE) $(AUTOMAKE_SRC_DIR)
|
||||
touch $@
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# automake for the target
|
||||
#
|
||||
#############################################################
|
||||
|
||||
$(AUTOMAKE_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
|
||||
mkdir -p $(AUTOMAKE_DIR)
|
||||
(cd $(AUTOMAKE_DIR); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
WANT_AUTOCONF=2.5 \
|
||||
$(AUTOMAKE_SRC_DIR)/configure \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
--exec-prefix=/usr \
|
||||
--bindir=/usr/bin \
|
||||
--sbindir=/usr/sbin \
|
||||
--libdir=/lib \
|
||||
--libexecdir=/usr/lib \
|
||||
--sysconfdir=/etc \
|
||||
--datadir=/usr/share \
|
||||
--localstatedir=/var \
|
||||
--mandir=/usr/share/man \
|
||||
--infodir=/usr/share/info \
|
||||
--includedir=/usr/include \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_DIR)/.configured
|
||||
$(MAKE) -C $(AUTOMAKE_DIR)
|
||||
touch -c $@
|
||||
|
||||
$(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY): $(AUTOMAKE_DIR)/$(AUTOMAKE_BINARY)
|
||||
$(MAKE) \
|
||||
prefix=$(TARGET_DIR)/usr \
|
||||
exec_prefix=$(TARGET_DIR)/usr \
|
||||
bindir=$(TARGET_DIR)/usr/bin \
|
||||
sbindir=$(TARGET_DIR)/usr/sbin \
|
||||
libexecdir=$(TARGET_DIR)/usr/lib \
|
||||
datadir=$(TARGET_DIR)/usr/share \
|
||||
sysconfdir=$(TARGET_DIR)/etc \
|
||||
localstatedir=$(TARGET_DIR)/var \
|
||||
libdir=$(TARGET_DIR)/usr/lib \
|
||||
infodir=$(TARGET_DIR)/usr/share/info \
|
||||
mandir=$(TARGET_DIR)/usr/share/man \
|
||||
includedir=$(TARGET_DIR)/usr/include \
|
||||
-C $(AUTOMAKE_DIR) install
|
||||
ifneq ($(BR2_HAVE_INFOPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/info
|
||||
endif
|
||||
ifneq ($(BR2_HAVE_MANPAGES),y)
|
||||
rm -rf $(TARGET_DIR)/usr/share/man
|
||||
endif
|
||||
rm -rf $(TARGET_DIR)/share/locale
|
||||
rm -rf $(TARGET_DIR)/usr/share/doc
|
||||
touch -c $@
|
||||
|
||||
automake: uclibc autoconf $(TARGET_DIR)/$(AUTOMAKE_TARGET_BINARY)
|
||||
|
||||
automake-clean:
|
||||
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(AUTOMAKE_DIR) uninstall
|
||||
-$(MAKE) -C $(AUTOMAKE_DIR) clean
|
||||
|
||||
automake-dirclean:
|
||||
rm -rf $(AUTOMAKE_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# automake for the host
|
||||
#
|
||||
#############################################################
|
||||
|
||||
$(AUTOMAKE_HOST_DIR)/.configured: $(AUTOMAKE_SRC_DIR)/.unpacked
|
||||
$(STAMP_DIR)/host_automake_unpacked: $(DL_DIR)/$(AUTOMAKE_SOURCE)
|
||||
mkdir -p $(AUTOMAKE_HOST_DIR)
|
||||
$(INFLATE$(suffix $(AUTOMAKE_SOURCE))) $< | \
|
||||
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(AUTOMAKE_HOST_DIR) $(TAR_OPTIONS) -
|
||||
toolchain/patch-kernel.sh $(AUTOMAKE_HOST_DIR) package/automake/ \*.patch
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_automake_configured: $(STAMP_DIR)/host_automake_unpacked $(STAMP_DIR)/host_autoconf_installed
|
||||
(cd $(AUTOMAKE_HOST_DIR); rm -rf config.cache; \
|
||||
$(HOST_CONFIGURE_OPTS) \
|
||||
CFLAGS="$(HOST_CFLAGS)" \
|
||||
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
WANT_AUTOCONF=2.5 \
|
||||
$(AUTOMAKE_SRC_DIR)/configure \
|
||||
--prefix=$(STAGING_DIR)/usr \
|
||||
./configure \
|
||||
--prefix="$(HOST_DIR)/usr" \
|
||||
--sysconfdir="$(HOST_DIR)/etc" \
|
||||
--disable-static \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY): $(AUTOMAKE_HOST_DIR)/.configured
|
||||
$(STAMP_DIR)/host_automake_compiled: $(STAMP_DIR)/host_automake_configured
|
||||
$(MAKE) -C $(AUTOMAKE_HOST_DIR)
|
||||
touch -c $@
|
||||
touch $@
|
||||
|
||||
$(AUTOMAKE): $(AUTOMAKE_HOST_DIR)/$(AUTOMAKE_BINARY)
|
||||
$(STAMP_DIR)/host_automake_installed: $(STAMP_DIR)/host_automake_compiled
|
||||
$(MAKE) -C $(AUTOMAKE_HOST_DIR) install
|
||||
mkdir -p $(STAGING_DIR)/usr/share/aclocal
|
||||
touch $@
|
||||
|
||||
host-automake: host-autoconf host-libtool $(AUTOMAKE)
|
||||
host-automake: $(STAMP_DIR)/host_automake_installed
|
||||
|
||||
host-automake-clean:
|
||||
$(MAKE) -C $(AUTOMAKE_HOST_DIR) uninstall
|
||||
rm -f $(addprefix $(STAMP_DIR)/host_automake_,unpacked configured compiled installed)
|
||||
-$(MAKE) -C $(AUTOMAKE_HOST_DIR) uninstall
|
||||
-$(MAKE) -C $(AUTOMAKE_HOST_DIR) clean
|
||||
|
||||
host-automake-dirclean:
|
||||
rm -rf $(AUTOMAKE_HOST_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_AUTOMAKE),y)
|
||||
TARGETS+=automake
|
||||
endif
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
config BR2_PACKAGE_AVAHI
|
||||
bool "avahi"
|
||||
select BR2_PACKAGE_LIBDAEMON
|
||||
select BR2_PACKAGE_GETTEXT if BR2_ENABLE_LOCALE
|
||||
select BR2_PACKAGE_LIBINTL if BR2_ENABLE_LOCALE
|
||||
help
|
||||
@@ -13,6 +12,7 @@ config BR2_PACKAGE_AVAHI_AUTOIPD
|
||||
bool "IPv4LL network address configuration daemon"
|
||||
default y
|
||||
depends on BR2_PACKAGE_AVAHI
|
||||
select BR2_PACKAGE_LIBDAEMON
|
||||
help
|
||||
Avahi-autoipd implements IPv4LL, "Dynamic Configuration of
|
||||
IPv4 Link-Local Addresses" (IETF RFC3927), a protocol for
|
||||
@@ -24,6 +24,7 @@ config BR2_PACKAGE_AVAHI_AUTOIPD
|
||||
config BR2_PACKAGE_AVAHI_DAEMON
|
||||
bool "mDNS/DNS-SD daemon"
|
||||
depends on BR2_PACKAGE_AVAHI
|
||||
select BR2_PACKAGE_LIBDAEMON
|
||||
select BR2_PACKAGE_EXPAT
|
||||
help
|
||||
The Avahi mDNS/DNS-SD daemon implementing Apple's ZeroConf
|
||||
|
||||
@@ -10,54 +10,13 @@
|
||||
# either version 2.1 of the License, or (at your option) any
|
||||
# later version.
|
||||
|
||||
AVAHI_VERSION:=0.6.22
|
||||
AVAHI_DIR:=$(BUILD_DIR)/avahi-$(AVAHI_VERSION)
|
||||
AVAHI_SITE:=http://www.avahi.org/download/
|
||||
AVAHI_SOURCE:=avahi-$(AVAHI_VERSION).tar.gz
|
||||
AVAHI_CAT:=$(ZCAT)
|
||||
AVAHI_VERSION = 0.6.23
|
||||
AVAHI_SOURCE = avahi-$(AVAHI_VERSION).tar.gz
|
||||
AVAHI_SITE = http://www.avahi.org/download/
|
||||
AVAHI_INSTALL_STAGING = YES
|
||||
AVAHI_INSTALL_TARGET = YES
|
||||
|
||||
AVAHI_TARGETS:=
|
||||
|
||||
ifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y)
|
||||
AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-autoipd
|
||||
endif
|
||||
|
||||
AVAHI_EXTRA_DEPS:=
|
||||
|
||||
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
|
||||
AVAHI_TARGETS+=$(TARGET_DIR)/usr/sbin/avahi-daemon
|
||||
AVAHI_DISABLE_EXPAT:=--with-xml=expat
|
||||
# depend on the exact library file instead of expat so avahi isn't always
|
||||
# considered out-of-date
|
||||
AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/lib/libexpat.so.1
|
||||
else
|
||||
AVAHI_DISABLE_EXPAT:=--disable-expat --with-xml=none
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_DBUS),y)
|
||||
AVAHI_DISABLE_DBUS:=
|
||||
AVAHI_EXTRA_DEPS+=$(STAGING_DIR)/usr/bin/dbus-daemon
|
||||
else
|
||||
AVAHI_DISABLE_DBUS:=--disable-dbus
|
||||
endif
|
||||
|
||||
$(DL_DIR)/$(AVAHI_SOURCE):
|
||||
$(call DOWNLOAD,$(AVAHI_SITE),$(AVAHI_SOURCE))
|
||||
|
||||
avahi-source: $(DL_DIR)/$(AVAHI_SOURCE)
|
||||
|
||||
$(AVAHI_DIR)/.unpacked: $(DL_DIR)/$(AVAHI_SOURCE)
|
||||
$(AVAHI_CAT) $(DL_DIR)/$(AVAHI_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
|
||||
toolchain/patch-kernel.sh $(AVAHI_DIR) package/avahi/ \*.patch
|
||||
touch $@
|
||||
|
||||
$(AVAHI_DIR)/.configured: $(AVAHI_DIR)/.unpacked $(AVAHI_EXTRA_DEPS)
|
||||
(cd $(AVAHI_DIR) && rm -rf config.cache && PATH=$(TARGET_PATH) autoconf)
|
||||
(cd $(AVAHI_DIR) && \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
ac_cv_func_strtod=yes \
|
||||
AVAHI_CONF_ENV = ac_cv_func_strtod=yes \
|
||||
ac_fsusage_space=yes \
|
||||
fu_cv_sys_stat_statfs2_bsize=yes \
|
||||
ac_cv_func_closedir_void=no \
|
||||
@@ -110,94 +69,90 @@ $(AVAHI_DIR)/.configured: $(AVAHI_DIR)/.unpacked $(AVAHI_EXTRA_DEPS)
|
||||
ac_cv_func_working_mktime=yes \
|
||||
jm_cv_func_working_re_compile_pattern=yes \
|
||||
ac_use_included_regex=no \
|
||||
./configure \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(REAL_GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
$(DISABLE_NLS) \
|
||||
$(DISABLE_LARGEFILE) \
|
||||
--disable-glib \
|
||||
--disable-gobject \
|
||||
avahi_cv_sys_cxx_works=yes
|
||||
|
||||
AVAHI_CONF_OPT = --localstatedir=/var \
|
||||
--disable-qt3 \
|
||||
--disable-qt4 \
|
||||
--disable-gtk \
|
||||
$(AVAHI_DISABLE_DBUS) \
|
||||
$(AVAHI_DISABLE_EXPAT) \
|
||||
--disable-gdbm \
|
||||
--disable-python \
|
||||
--disable-python-dbus \
|
||||
--disable-pygtk \
|
||||
--disable-mono \
|
||||
--disable-monodoc \
|
||||
--disable-stack-protector \
|
||||
--with-distro=none \
|
||||
$(if $(BR2_HAVE_MANPAGES),--enable,--disable)-manpages \
|
||||
$(if $(BR2_PACKAGE_AVAHI_AUTOIPD),--enable,--disable)-autoipd \
|
||||
--with-avahi-user=default \
|
||||
--with-avahi-group=default \
|
||||
--with-autoipd-user=default \
|
||||
--with-autoipd-group=default \
|
||||
)
|
||||
touch $@
|
||||
--with-autoipd-group=default
|
||||
|
||||
$(AVAHI_DIR)/.compiled: $(AVAHI_DIR)/.configured
|
||||
$(MAKE) -C $(AVAHI_DIR) $(if $(BR2_ENABLE_LOCALE),LIBS=-lintl)
|
||||
touch $@
|
||||
AVAHI_DEPENDENCIES = $(if $(BR2_PACKAGE_GETTEXT),gettext)
|
||||
|
||||
$(AVAHI_DIR)/.installed: $(AVAHI_DIR)/.compiled
|
||||
mkdir -p $(STAGING_DIR)/etc/avahi
|
||||
$(MAKE) DESTDIR=$(STAGING_DIR) -C $(AVAHI_DIR) install
|
||||
touch $@
|
||||
ifneq ($(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_AVAHI_AUTOIPD),)
|
||||
AVAHI_DEPENDENCIES += libdaemon
|
||||
else
|
||||
AVAHI_CONF_OPT += --disable-libdaemon
|
||||
endif
|
||||
|
||||
$(TARGET_DIR)/usr/sbin/avahi-autoipd: $(AVAHI_DIR)/.installed
|
||||
mkdir -p $(addprefix $(TARGET_DIR),\
|
||||
/etc/avahi /etc/init.d /var/lib /usr/share/udhcpc /usr/sbin)
|
||||
cp -af $(STAGING_DIR)/etc/avahi/avahi-autoipd.action $(TARGET_DIR)/etc/avahi/
|
||||
cp -af package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
|
||||
chmod 0755 $(TARGET_DIR)/usr/share/udhcpc/default.script
|
||||
cp -af package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
|
||||
cp $(STAGING_DIR)/usr/sbin/avahi-autoipd $@
|
||||
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
|
||||
AVAHI_DEPENDENCIES += expat
|
||||
AVAHI_CONF_OPT += --with-xml=expat
|
||||
else
|
||||
AVAHI_CONF_OPT += --with-xml=none
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_DBUS),y)
|
||||
AVAHI_DEPENDENCIES += dbus
|
||||
else
|
||||
AVAHI_CONF_OPT += --disable-dbus
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
|
||||
AVAHI_DEPENDENCIES += libglib2
|
||||
else
|
||||
AVAHI_CONF_OPT += --disable-glib --disable-gobject
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBGLADE),y)
|
||||
AVAHI_DEPENDENCIES += libglade
|
||||
else
|
||||
AVAHI_CONF_OPT += --disable-gtk
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_PYTHON),y)
|
||||
AVAHI_CONF_ENV += am_cv_pathless_PYTHON=python \
|
||||
am_cv_path_PYTHON=$(PYTHON_TARGET_BINARY) \
|
||||
am_cv_python_version=$(PYTHON_VERSION) \
|
||||
am_cv_python_platform=linux2 \
|
||||
am_cv_python_pythondir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
|
||||
am_cv_python_pyexecdir=/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \
|
||||
py_cv_mod_socket_=yes
|
||||
|
||||
AVAHI_DEPENDENCIES += libpython
|
||||
AVAHI_CONF_OPT += --enable-python
|
||||
else
|
||||
AVAHI_CONF_OPT += --disable-python
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBINTL),y)
|
||||
AVAHI_DEPENDENCIES += libintl
|
||||
AVAHI_MAKE_OPT = LIBS=-lintl
|
||||
endif
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,avahi))
|
||||
|
||||
$(AVAHI_HOOK_POST_INSTALL):
|
||||
rm -rf $(TARGET_DIR)/etc/init.d/avahi-*
|
||||
ifeq ($(BR2_PACKAGE_AVAHI_AUTOIPD),y)
|
||||
rm -rf $(TARGET_DIR)/etc/dhcp3/
|
||||
$(INSTALL) -D -m 0755 package/avahi/busybox-udhcpc-default.script $(TARGET_DIR)/usr/share/udhcpc/default.script
|
||||
$(INSTALL) -m 0755 package/avahi/S05avahi-setup.sh $(TARGET_DIR)/etc/init.d/
|
||||
rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
|
||||
ln -sf /tmp/avahi-autoipd $(TARGET_DIR)/var/lib/avahi-autoipd
|
||||
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
|
||||
|
||||
$(TARGET_DIR)/usr/sbin/avahi-daemon: $(AVAHI_DIR)/.installed
|
||||
mkdir -p $(addprefix $(TARGET_DIR),\
|
||||
/etc/avahi/services /usr/lib /usr/bin /usr/sbin)
|
||||
cp -dpf $(STAGING_DIR)/usr/lib/libavahi-*.so* $(TARGET_DIR)/usr/lib/
|
||||
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libavahi-*.so*
|
||||
cp -af $(STAGING_DIR)/etc/avahi/avahi-daemon.conf $(TARGET_DIR)/etc/avahi/
|
||||
cp -af package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
|
||||
ifeq ($(BR2_PACKAGE_DBUS),y)
|
||||
cp -dpf $(STAGING_DIR)/usr/bin/avahi-* $(TARGET_DIR)/usr/bin
|
||||
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/bin/avahi-*
|
||||
mkdir -p $(TARGET_DIR)/etc/dbus-1/system.d/
|
||||
cp -r $(STAGING_DIR)/etc/dbus-1/system.d/avahi-* \
|
||||
$(TARGET_DIR)/etc/dbus-1/system.d/
|
||||
endif
|
||||
cp $(STAGING_DIR)/usr/sbin/avahi-daemon $@
|
||||
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
|
||||
|
||||
avahi: host-autoconf uclibc libdaemon $(if $(BR2_ENABLE_LOCALE),gettext libintl) $(AVAHI_TARGETS)
|
||||
|
||||
avahi-clean:
|
||||
-$(MAKE) -C $(AVAHI_DIR) distclean
|
||||
-rm -rf $(TARGET_DIR)/etc/avahi
|
||||
-rm -f $(TARGET_DIR)/var/lib/avahi-autoipd
|
||||
-rm -f $(TARGET_DIR)/etc/init.d/S*avahi*
|
||||
-rm -f $(TARGET_DIR)/usr/sbin/avahi-*
|
||||
-rm -f $(TARGET_DIR)/usr/bin/avahi-*
|
||||
-rm -f $(TARGET_DIR)/usr/lib/libavahi-*
|
||||
|
||||
avahi-dirclean:
|
||||
rm -rf $(AVAHI_DIR)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_AVAHI),y)
|
||||
TARGETS+=avahi
|
||||
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
|
||||
$(INSTALL) -m 0755 package/avahi/S50avahi-daemon $(TARGET_DIR)/etc/init.d/
|
||||
endif
|
||||
touch $@
|
||||
|
||||
@@ -18,6 +18,12 @@ case "$1" in
|
||||
if [ $? -eq 0 ]; then
|
||||
/sbin/ifconfig $interface 0.0.0.0
|
||||
fi
|
||||
if [ -x /usr/sbin/avahi-autoipd ]; then
|
||||
/usr/sbin/avahi-autoipd -k $interface
|
||||
fi
|
||||
;;
|
||||
|
||||
leasefail|nak)
|
||||
if [ -x /usr/sbin/avahi-autoipd ]; then
|
||||
/usr/sbin/avahi-autoipd -wD $interface --no-chroot
|
||||
fi
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
--- avahi/ltmain.sh.orig 2004-11-23 09:19:19.000000000 -0700
|
||||
+++ avahi/ltmain.sh 2007-01-13 14:36:53.000000000 -0700
|
||||
@@ -231,8 +231,9 @@
|
||||
# line option must be used.
|
||||
if test -z "$tagname"; then
|
||||
$echo "$modename: unable to infer tagged configuration"
|
||||
- $echo "$modename: specify a tag with \`--tag'" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
+ $echo "$modename: defaulting to \`CC'"
|
||||
+ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
|
||||
+# exit $EXIT_FAILURE
|
||||
# else
|
||||
# $echo "$modename: using $tagname tagged configuration"
|
||||
fi
|
||||
@@ -2279,8 +2280,14 @@
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
else
|
||||
- dir="$libdir"
|
||||
- absdir="$libdir"
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$libdir"
|
||||
fi
|
||||
else
|
||||
if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
|
||||
@@ -2754,6 +2761,16 @@
|
||||
esac
|
||||
if grep "^installed=no" $deplib > /dev/null; then
|
||||
path="$absdir/$objdir"
|
||||
+# This interferes with crosscompilation. -CL
|
||||
+# else
|
||||
+# eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
|
||||
+# if test -z "$libdir"; then
|
||||
+# $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
|
||||
+# exit 1
|
||||
+# fi
|
||||
+# if test "$absdir" != "$libdir"; then
|
||||
+# $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
|
||||
+# fi
|
||||
else
|
||||
eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
|
||||
if test -z "$libdir"; then
|
||||
@@ -5141,6 +5158,10 @@
|
||||
# Replace all uninstalled libtool libraries with the installed ones
|
||||
newdependency_libs=
|
||||
for deplib in $dependency_libs; do
|
||||
+ # Replacing uninstalled with installed can easily break crosscompilation,
|
||||
+ # since the installed path is generally the wrong architecture. -CL
|
||||
+ newdependency_libs="$newdependency_libs $deplib"
|
||||
+ continue
|
||||
case $deplib in
|
||||
*.la)
|
||||
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
|
||||
@@ -5459,10 +5480,13 @@
|
||||
# At present, this check doesn't affect windows .dll's that
|
||||
# are installed into $libdir/../bin (currently, that works fine)
|
||||
# but it's something to keep an eye on.
|
||||
- if test "$inst_prefix_dir" = "$destdir"; then
|
||||
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
- fi
|
||||
+ #
|
||||
+ # This breaks install into our staging area. -PB
|
||||
+ #
|
||||
+ # if test "$inst_prefix_dir" = "$destdir"; then
|
||||
+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
+ # exit $EXIT_FAILURE
|
||||
+ # fi
|
||||
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
# Stick the inst_prefix_dir data into the link command.
|
||||
@@ -3,6 +3,7 @@ comment "bind has no inherent support for AVR32"
|
||||
|
||||
config BR2_PACKAGE_BIND
|
||||
bool "bind"
|
||||
depends on BR2_LARGEFILE
|
||||
help
|
||||
BIND (Berkeley Internet Name Domain) is an implementation of
|
||||
the Domain Name System (DNS) protocols and provides an openly
|
||||
@@ -22,3 +23,12 @@ config BR2_PACKAGE_BIND
|
||||
intended to be linked with applications requiring name service.
|
||||
|
||||
http://www.isc.org/sw/bind/
|
||||
|
||||
config BR2_PACKAGE_BIND_TOOLS
|
||||
bool "Install tools"
|
||||
depends on BR2_PACKAGE_BIND
|
||||
help
|
||||
Install tools (host, nslookup, dig, nsupdate)
|
||||
|
||||
comment "bind requires a toolchain with LARGEFILE support"
|
||||
depends on !BR2_LARGEFILE
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
---
|
||||
lib/isc/unix/ifiter_ioctl.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
Index: bind-9.3.2/lib/isc/unix/ifiter_ioctl.c
|
||||
===================================================================
|
||||
--- bind-9.3.2.orig/lib/isc/unix/ifiter_ioctl.c
|
||||
+++ bind-9.3.2/lib/isc/unix/ifiter_ioctl.c
|
||||
@@ -17,11 +17,12 @@
|
||||
|
||||
/* $Id: ifiter_ioctl.c,v 1.19.2.5.2.17 2005/10/14 02:13:07 marka Exp $ */
|
||||
|
||||
+#include <string.h>
|
||||
+
|
||||
/*
|
||||
* Obtain the list of network interfaces using the SIOCGLIFCONF ioctl.
|
||||
* See netintro(4).
|
||||
*/
|
||||
-
|
||||
#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR)
|
||||
#ifdef ISC_PLATFORM_HAVEIF_LADDRCONF
|
||||
#define lifc_len iflc_len
|
||||
@@ -478,8 +479,8 @@
|
||||
for (i = 0; i < 16; i++) {
|
||||
unsigned char byte;
|
||||
static const char hex[] = "0123456789abcdef";
|
||||
- byte = ((index(hex, address[i * 2]) - hex) << 4) |
|
||||
- (index(hex, address[i * 2 + 1]) - hex);
|
||||
+ byte = ((strchr(hex, address[i * 2]) - hex) << 4) |
|
||||
+ (strchr(hex, address[i * 2 + 1]) - hex);
|
||||
addr6.s6_addr[i] = byte;
|
||||
}
|
||||
iter->current.af = AF_INET6;
|
||||
@@ -1,11 +0,0 @@
|
||||
--- bind-9.3.2/lib/dns/Makefile.in
|
||||
+++ bind-9.3.2/lib/dns/Makefile.in
|
||||
@@ -156,7 +156,7 @@
|
||||
./gen -s ${srcdir} > code.h
|
||||
|
||||
gen: gen.c
|
||||
- ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
|
||||
+ cc ${ALL_CFLAGS} -o $@ ${srcdir}/gen.c
|
||||
|
||||
rbtdb64.@O@: rbtdb.c
|
||||
|
||||
14
package/bind/bind-cross.patch
Normal file
14
package/bind/bind-cross.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
diff -Nura bind-9.5.1-P1/lib/dns/Makefile.in bind-9.5.1-P1.gencross/lib/dns/Makefile.in
|
||||
--- bind-9.5.1-P1/lib/dns/Makefile.in 2007-09-11 22:09:08.000000000 -0300
|
||||
+++ bind-9.5.1-P1.gencross/lib/dns/Makefile.in 2009-03-04 16:35:23.000000000 -0200
|
||||
@@ -160,8 +160,8 @@
|
||||
./gen -s ${srcdir} > code.h
|
||||
|
||||
gen: gen.c
|
||||
- ${BUILD_CC} ${BUILD_CFLAGS} -I${top_srcdir}/lib/isc/include \
|
||||
- ${BUILD_CPPFLAGS} ${BUILD_LDFLAGS} -o $@ ${srcdir}/gen.c ${BUILD_LIBS}
|
||||
+ ${HOSTCC} ${HOST_CFLAGS} -I${top_srcdir}/lib/isc/include \
|
||||
+ ${HOST_LDFLAGS} -o $@ ${srcdir}/gen.c
|
||||
|
||||
rbtdb64.@O@: rbtdb.c
|
||||
|
||||
23
package/bind/bind-susv3-legacy.patch
Normal file
23
package/bind/bind-susv3-legacy.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff -Nura bind-9.5.1-P1/lib/isc/unix/ifiter_ioctl.c bind-9.5.1-P1.nosusv3/lib/isc/unix/ifiter_ioctl.c
|
||||
--- bind-9.5.1-P1/lib/isc/unix/ifiter_ioctl.c 2007-08-30 03:02:28.000000000 -0300
|
||||
+++ bind-9.5.1-P1.nosusv3/lib/isc/unix/ifiter_ioctl.c 2009-03-04 16:31:20.000000000 -0200
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
/* $Id: ifiter_ioctl.c,v 1.58 2007/08/30 06:02:28 marka Exp $ */
|
||||
|
||||
+#include <string.h>
|
||||
+
|
||||
/*! \file
|
||||
* \brief
|
||||
* Obtain the list of network interfaces using the SIOCGLIFCONF ioctl.
|
||||
@@ -479,8 +481,8 @@
|
||||
for (i = 0; i < 16; i++) {
|
||||
unsigned char byte;
|
||||
static const char hex[] = "0123456789abcdef";
|
||||
- byte = ((index(hex, address[i * 2]) - hex) << 4) |
|
||||
- (index(hex, address[i * 2 + 1]) - hex);
|
||||
+ byte = ((strchr(hex, address[i * 2]) - hex) << 4) |
|
||||
+ (strchr(hex, address[i * 2 + 1]) - hex);
|
||||
addr6.s6_addr[i] = byte;
|
||||
}
|
||||
iter->current.af = AF_INET6;
|
||||
@@ -3,99 +3,46 @@
|
||||
# bind
|
||||
#
|
||||
#############################################################
|
||||
BIND_VERSION:=9.3.2
|
||||
BIND_SOURCE:=bind-$(BIND_VERSION).tar.gz
|
||||
BIND_SITE:=ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
|
||||
BIND_DIR1:=$(TOOL_BUILD_DIR)/bind-$(BIND_VERSION)
|
||||
BIND_DIR2:=$(BUILD_DIR)/bind-$(BIND_VERSION)
|
||||
BIND_CAT:=$(ZCAT)
|
||||
BIND_BINARY:=bin/named/named
|
||||
BIND_TARGET_BINARY:=usr/sbin/named
|
||||
|
||||
$(DL_DIR)/$(BIND_SOURCE):
|
||||
$(call DOWNLOAD,$(BIND_SITE),$(BIND_SOURCE))
|
||||
|
||||
bind-source: $(DL_DIR)/$(BIND_SOURCE)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# build bind for use on the target system
|
||||
#
|
||||
#############################################################
|
||||
$(BIND_DIR2)/.unpacked: $(DL_DIR)/$(BIND_SOURCE)
|
||||
$(BIND_CAT) $(DL_DIR)/$(BIND_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
|
||||
toolchain/patch-kernel.sh $(BIND_DIR2) package/bind/ bind\*.patch
|
||||
touch $@
|
||||
|
||||
$(BIND_DIR2)/Makefile: $(BIND_DIR2)/.unpacked
|
||||
(cd $(BIND_DIR2); rm -rf config.cache; \
|
||||
$(TARGET_CONFIGURE_OPTS) \
|
||||
$(TARGET_CONFIGURE_ARGS) \
|
||||
./configure \
|
||||
--target=$(GNU_TARGET_NAME) \
|
||||
--host=$(GNU_TARGET_NAME) \
|
||||
--build=$(GNU_HOST_NAME) \
|
||||
--prefix=/usr \
|
||||
--libdir=/lib \
|
||||
--libexecdir=/usr/lib \
|
||||
--libdir=/lib \
|
||||
--includedir=/include \
|
||||
BIND_VERSION = 9.5.1-P3
|
||||
BIND_SOURCE = bind-$(BIND_VERSION).tar.gz
|
||||
BIND_SITE = ftp://ftp.isc.org/isc/bind9/$(BIND_VERSION)
|
||||
BIND_LIBTOOL_PATCH = NO
|
||||
BIND_DEPENDENCIES = uclibc
|
||||
BIND_INSTALL_STAGING = NO
|
||||
BIND_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
|
||||
BIND_TARGET_SBINS = lwresd named named-checkconf named-checkzone
|
||||
BIND_TARGET_SBINS += named-compilezone rndc rndc-confgen
|
||||
BIND_TARGET_SBINS += dnssec-keygen dnssec-signzone
|
||||
BIND_TARGET_BINS = dig host nslookup nsupdate
|
||||
BIND_TARGET_LIBS = libbind9.* libdns.* libisccc.* libisccfg.* libisc.* liblwres.*
|
||||
BIND_CONF_ENV = BUILD_CC="$(TARGET_CC)" \
|
||||
BUILD_CFLAGS="$(TARGET_CFLAGS)"
|
||||
BIND_CONF_OPT = $(DISABLE_IPV6) \
|
||||
--sysconfdir=/etc \
|
||||
--localstatedir=/var \
|
||||
--without-openssl \
|
||||
--with-randomdev=/dev/random \
|
||||
$(DISABLE_IPV6) \
|
||||
--with-libtool \
|
||||
--with-randomdev=/dev/urandom \
|
||||
--with-openssl=no \
|
||||
--with-libxml2=no \
|
||||
--with-pic \
|
||||
)
|
||||
--with-libtool \
|
||||
--disable-epoll \
|
||||
--disable-threads
|
||||
|
||||
$(BIND_DIR2)/$(BIND_BINARY): $(BIND_DIR2)/Makefile
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 -C $(BIND_DIR2)
|
||||
touch -c $@
|
||||
$(eval $(call AUTOTARGETS,package,bind))
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# install bind binaries
|
||||
#
|
||||
#############################################################
|
||||
$(TARGET_DIR)/$(BIND_TARGET_BINARY): $(BIND_DIR2)/$(BIND_BINARY)
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 MAKEDEFS="INSTALL_DATA=true" \
|
||||
DESTDIR=$(TARGET_DIR) -C $(BIND_DIR2)/bin install
|
||||
cd $(TARGET_DIR)/usr/man; rmdir --ignore-fail-on-non-empty man8 man5 `pwd`
|
||||
$(INSTALL) -m 0755 -D package/bind/bind.sysvinit $(TARGET_DIR)/etc/init.d/S81named
|
||||
|
||||
bind-bin: $(TARGET_DIR)/$(BIND_TARGET_BINARY) bind-lib
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# install bind libraries
|
||||
#
|
||||
#############################################################
|
||||
$(STAGING_DIR)/lib/libdns.so: $(BIND_DIR2)/$(BIND_BINARY)
|
||||
$(MAKE) $(TARGET_CONFIGURE_OPTS) -j1 DESTDIR=$(STAGING_DIR) -C $(BIND_DIR2)/lib install
|
||||
|
||||
$(TARGET_DIR)/lib/libdns.so: $(STAGING_DIR)/lib/libdns.so
|
||||
mkdir -p $(TARGET_DIR)/lib
|
||||
cd $(STAGING_DIR)/lib; \
|
||||
cp -a libdns*so* libisc*so* libbind9*so* \
|
||||
liblwres*so* $(TARGET_DIR)/lib
|
||||
|
||||
bind-lib: $(STAGING_DIR)/lib/libdns.so $(TARGET_DIR)/lib/libdns.so
|
||||
|
||||
bind: uclibc bind-bin bind-lib
|
||||
|
||||
bind-clean:
|
||||
-$(MAKE) -C $(BIND_DIR2) clean
|
||||
|
||||
bind-dirclean:
|
||||
rm -rf $(BIND_DIR2)
|
||||
|
||||
#############################################################
|
||||
#
|
||||
# Toplevel Makefile options
|
||||
#
|
||||
#############################################################
|
||||
ifeq ($(BR2_PACKAGE_BIND),y)
|
||||
TARGETS+=bind
|
||||
$(BIND_HOOK_POST_INSTALL):
|
||||
rm -f $(TARGET_DIR)/usr/bin/isc-config.sh
|
||||
ifneq ($(BR2_PACKAGE_BIND_TOOLS),y)
|
||||
rm -rf $(addprefix $(TARGET_DIR)/usr/bin/, $(BIND_TARGET_BINS))
|
||||
endif
|
||||
$(INSTALL) -m 0755 -D package/bind/bind.sysvinit $(TARGET_DIR)/etc/init.d/S81named
|
||||
touch $@
|
||||
|
||||
$(BIND_TARGET_UNINSTALL):
|
||||
$(call MESSAGE,"Uninstalling")
|
||||
rm -rf $(addprefix $(TARGET_DIR)/usr/sbin/, $(BIND_TARGET_SBINS))
|
||||
rm -rf $(addprefix $(TARGET_DIR)/usr/bin/, $(BIND_TARGET_BINS))
|
||||
rm -rf $(addprefix $(TARGET_DIR)/usr/lib/, $(BIND_TARGET_LIBS))
|
||||
rm -f $(TARGET_DIR)/etc/init.d/S81named
|
||||
rm -f $(BIND_TARGET_INSTALL_TARGET) $(BIND_HOOK_POST_INSTALL)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
config BR2_PACKAGE_BLACKBOX
|
||||
bool "blackbox"
|
||||
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7
|
||||
depends on BR2_PACKAGE_XORG7
|
||||
depends on BR2_INSTALL_LIBSTDCPP
|
||||
help
|
||||
Blackbox is a fast, lightweight window manager for the X
|
||||
Window System.
|
||||
|
||||
106
package/blackbox/blackbox-0.70.1-gcc43.patch
Normal file
106
package/blackbox/blackbox-0.70.1-gcc43.patch
Normal file
@@ -0,0 +1,106 @@
|
||||
diff -Naupr blackbox-0.70.1.orig/lib/Image.cc blackbox-0.70.1/lib/Image.cc
|
||||
--- blackbox-0.70.1.orig/lib/Image.cc 2005-04-08 17:41:09.000000000 +0200
|
||||
+++ blackbox-0.70.1/lib/Image.cc 2008-02-24 08:31:28.000000000 +0100
|
||||
@@ -42,8 +42,9 @@
|
||||
|
||||
#include <assert.h>
|
||||
#include <math.h>
|
||||
-#include <stdio.h>
|
||||
-#include <stdlib.h>
|
||||
+#include <cstdio>
|
||||
+#include <cstdlib>
|
||||
+#include <cstring>
|
||||
|
||||
// #define COLORTABLE_DEBUG
|
||||
// #define MITSHM_DEBUG
|
||||
diff -Naupr blackbox-0.70.1.orig/lib/Resource.cc blackbox-0.70.1/lib/Resource.cc
|
||||
--- blackbox-0.70.1.orig/lib/Resource.cc 2005-04-06 23:16:50.000000000 +0200
|
||||
+++ blackbox-0.70.1/lib/Resource.cc 2008-02-24 08:33:11.000000000 +0100
|
||||
@@ -28,7 +28,8 @@
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xresource.h>
|
||||
|
||||
-#include <stdio.h>
|
||||
+#include <cstdio>
|
||||
+#include <cstring>
|
||||
|
||||
|
||||
bt::Resource::Resource(void)
|
||||
diff -Naupr blackbox-0.70.1.orig/lib/XDG.cc blackbox-0.70.1/lib/XDG.cc
|
||||
--- blackbox-0.70.1.orig/lib/XDG.cc 2005-04-06 16:04:38.000000000 +0200
|
||||
+++ blackbox-0.70.1/lib/XDG.cc 2008-02-24 08:34:11.000000000 +0100
|
||||
@@ -25,7 +25,8 @@
|
||||
#include "Util.hh"
|
||||
#include "XDG.hh"
|
||||
|
||||
-#include <stdlib.h>
|
||||
+#include <cstdlib>
|
||||
+#include <algorithm>
|
||||
|
||||
|
||||
// make sure directory names end with a slash
|
||||
diff -Naupr blackbox-0.70.1.orig/src/BlackboxResource.cc blackbox-0.70.1/src/BlackboxResource.cc
|
||||
--- blackbox-0.70.1.orig/src/BlackboxResource.cc 2005-10-18 09:34:46.000000000 +0200
|
||||
+++ blackbox-0.70.1/src/BlackboxResource.cc 2008-02-24 08:34:49.000000000 +0100
|
||||
@@ -33,6 +33,8 @@
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/cursorfont.h>
|
||||
|
||||
+#include <cstring>
|
||||
+
|
||||
|
||||
BlackboxResource::BlackboxResource(const std::string& rc): rc_file(rc) {
|
||||
screen_resources = 0;
|
||||
diff -Naupr blackbox-0.70.1.orig/src/main.cc blackbox-0.70.1/src/main.cc
|
||||
--- blackbox-0.70.1.orig/src/main.cc 2005-01-03 10:42:57.000000000 +0100
|
||||
+++ blackbox-0.70.1/src/main.cc 2008-02-24 08:37:16.000000000 +0100
|
||||
@@ -34,7 +34,8 @@
|
||||
#include "blackbox.hh"
|
||||
#include "../version.h"
|
||||
|
||||
-#include <stdio.h>
|
||||
+#include <cstdio>
|
||||
+#include <cstring>
|
||||
|
||||
|
||||
static void showHelp(int exitval) {
|
||||
diff -Naupr blackbox-0.70.1.orig/src/Screen.cc blackbox-0.70.1/src/Screen.cc
|
||||
--- blackbox-0.70.1.orig/src/Screen.cc 2005-10-18 10:07:22.000000000 +0200
|
||||
+++ blackbox-0.70.1/src/Screen.cc 2008-02-24 08:35:46.000000000 +0100
|
||||
@@ -45,8 +45,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <assert.h>
|
||||
-#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
+#include <cctype>
|
||||
+#include <cstring>
|
||||
|
||||
|
||||
static bool running = true;
|
||||
diff -Naupr blackbox-0.70.1.orig/src/ScreenResource.cc blackbox-0.70.1/src/ScreenResource.cc
|
||||
--- blackbox-0.70.1.orig/src/ScreenResource.cc 2005-04-13 07:54:08.000000000 +0200
|
||||
+++ blackbox-0.70.1/src/ScreenResource.cc 2008-02-24 08:36:31.000000000 +0100
|
||||
@@ -33,6 +33,8 @@
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
+#include <cstring>
|
||||
+
|
||||
|
||||
static const int iconify_width = 9;
|
||||
static const int iconify_height = 9;
|
||||
diff -Naupr blackbox-0.70.1.orig/util/bsetroot.cc blackbox-0.70.1/util/bsetroot.cc
|
||||
--- blackbox-0.70.1.orig/util/bsetroot.cc 2005-03-15 08:01:37.000000000 +0100
|
||||
+++ blackbox-0.70.1/util/bsetroot.cc 2008-02-24 08:38:41.000000000 +0100
|
||||
@@ -30,7 +30,9 @@
|
||||
#include <cctype>
|
||||
|
||||
#include <X11/Xatom.h>
|
||||
-#include <stdio.h>
|
||||
+#include <cstdio>
|
||||
+#include <cstdlib>
|
||||
+#include <cstring>
|
||||
|
||||
|
||||
// ignore all X errors
|
||||
@@ -14,6 +14,6 @@ BLACKBOX_INSTALL_TARGET:=YES
|
||||
BLACKBOX_CONF_OPT:=--x-includes=$(STAGING_DIR)/usr/include/X11 \
|
||||
--x-libraries=$(STAGING_DIR)/usr/lib
|
||||
|
||||
BLACKBOX_DEPENDENCIES:=uclibc $(XSERVER)
|
||||
BLACKBOX_DEPENDENCIES:=uclibc xserver_xorg-server
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,blackbox))
|
||||
|
||||
5
package/bmon/Config.in
Normal file
5
package/bmon/Config.in
Normal file
@@ -0,0 +1,5 @@
|
||||
config BR2_PACKAGE_BMON
|
||||
bool "bmon"
|
||||
select BR2_PACKAGE_NCURSES
|
||||
help
|
||||
Linux bandwidth monitor
|
||||
36
package/bmon/bmon-gcc4.patch
Normal file
36
package/bmon/bmon-gcc4.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
diff -ru bmon-2.1.0~/src/out_audio.c bmon-2.1.0/src/out_audio.c
|
||||
--- bmon-2.1.0~/src/out_audio.c 2008-07-26 20:06:24.000000000 +0200
|
||||
+++ bmon-2.1.0/src/out_audio.c 2008-07-26 20:09:42.000000000 +0200
|
||||
@@ -141,7 +141,7 @@
|
||||
.om_draw = audio_draw,
|
||||
.om_set_opts = audio_set_opts,
|
||||
.om_probe = audio_probe,
|
||||
- .om_shutdown audio_shutdown,
|
||||
+ .om_shutdown = audio_shutdown
|
||||
};
|
||||
|
||||
static void __init audio_init(void)
|
||||
diff -ru bmon-2.1.0~/src/out_db.c bmon-2.1.0/src/out_db.c
|
||||
--- bmon-2.1.0~/src/out_db.c 2008-07-26 20:06:24.000000000 +0200
|
||||
+++ bmon-2.1.0/src/out_db.c 2008-07-26 20:07:44.000000000 +0200
|
||||
@@ -679,7 +679,7 @@
|
||||
.om_draw = db_draw,
|
||||
.om_set_opts = db_set_opts,
|
||||
.om_probe = db_probe,
|
||||
- .om_shutdown db_shutdown,
|
||||
+ .om_shutdown = db_shutdown,
|
||||
};
|
||||
|
||||
static void __init db_init(void)
|
||||
diff -ru bmon-2.1.0~/src/out_xml_event.c bmon-2.1.0/src/out_xml_event.c
|
||||
--- bmon-2.1.0~/src/out_xml_event.c 2008-07-26 20:06:24.000000000 +0200
|
||||
+++ bmon-2.1.0/src/out_xml_event.c 2008-07-26 20:09:42.000000000 +0200
|
||||
@@ -127,7 +127,7 @@
|
||||
.om_draw = xml_event_draw,
|
||||
.om_set_opts = xml_event_set_opts,
|
||||
.om_probe = xml_event_probe,
|
||||
- .om_shutdown xml_event_shutdown,
|
||||
+ .om_shutdown = xml_event_shutdown
|
||||
};
|
||||
|
||||
static void __init xml_event_init(void)
|
||||
24
package/bmon/bmon-nolibnl.patch
Normal file
24
package/bmon/bmon-nolibnl.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
diff -Nura bmon/configure bmon.libnl/configure
|
||||
--- bmon/configure 2005-04-05 12:01:33.000000000 -0300
|
||||
+++ bmon.libnl/configure 2009-06-10 16:10:52.000000000 -0300
|
||||
@@ -7327,13 +7327,13 @@
|
||||
echo "${ECHO_T}$ac_cv_lib_nl_nl_connect" >&6
|
||||
if test $ac_cv_lib_nl_nl_connect = yes; then
|
||||
|
||||
-
|
||||
-cat >>confdefs.h <<_ACEOF
|
||||
-#define HAVE_NL "1"
|
||||
-_ACEOF
|
||||
-
|
||||
- LIBNL="-lnl"
|
||||
- NL="Yes"
|
||||
+ case ${target_os} in
|
||||
+ *linux*)
|
||||
+ echo
|
||||
+ echo "*** Warning: Building bmon on Linux w/o libnl ***"
|
||||
+ echo
|
||||
+ ;;
|
||||
+ esac
|
||||
|
||||
else
|
||||
|
||||
12
package/bmon/bmon-nostrip.patch
Normal file
12
package/bmon/bmon-nostrip.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -Nura bmon/GNUmakefile bmon.nostrip/GNUmakefile
|
||||
--- bmon/GNUmakefile 2005-04-05 12:01:33.000000000 -0300
|
||||
+++ bmon.nostrip/GNUmakefile 2009-06-10 16:12:04.000000000 -0300
|
||||
@@ -50,7 +50,7 @@
|
||||
install:
|
||||
./install-sh -d -m 0755 $(DESTDIR)$(prefix)/bin
|
||||
./install-sh -d -m 0755 $(DESTDIR)$(mandir)/man1
|
||||
- ./install-sh -c -s -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
|
||||
+ ./install-sh -c -m 0755 src/bmon $(DESTDIR)$(prefix)/bin
|
||||
./install-sh -c -m 0644 man/bmon.1 $(DESTDIR)$(mandir)/man1
|
||||
|
||||
show: Makefile.opts
|
||||
18
package/bmon/bmon.mk
Normal file
18
package/bmon/bmon.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
#############################################################
|
||||
#
|
||||
# bmon
|
||||
#
|
||||
#############################################################
|
||||
|
||||
BMON_VERSION = 2.1.0
|
||||
BMON_SOURCE = bmon-$(BMON_VERSION).tar.gz
|
||||
BMON_SITE = http://distfiles.gentoo.org/distfiles
|
||||
BMON_DEPENDENCIES = ncurses uclibc
|
||||
BMON_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,bmon))
|
||||
|
||||
$(BMON_TARGET_UNINSTALL):
|
||||
$(call MESSAGE,"Uninstalling")
|
||||
rm -f $(TARGET_DIR)/usr/bin/bmon
|
||||
rm -f $(BMON_TARGET_INSTALL_TARGET) $(BMON_HOOK_POST_INSTALL)
|
||||
@@ -12,44 +12,20 @@ config BR2_PACKAGE_BUSYBOX
|
||||
choice
|
||||
prompt "BusyBox Version"
|
||||
depends on BR2_PACKAGE_BUSYBOX
|
||||
default BR2_BUSYBOX_VERSION_1_13_X
|
||||
default BR2_BUSYBOX_VERSION_1_14_X
|
||||
help
|
||||
Select the version of BusyBox you wish to use.
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_2_2_1
|
||||
bool "BusyBox 1.2.2.1"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_6_1
|
||||
bool "BusyBox 1.6.1"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_7_X
|
||||
bool "BusyBox 1.7.x"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_8_X
|
||||
bool "BusyBox 1.8.x"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_9_X
|
||||
bool "BusyBox 1.9.x"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_10_X
|
||||
bool "BusyBox 1.10.x"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_11_X
|
||||
bool "BusyBox 1.11.x"
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_12_X
|
||||
bool "BusyBox 1.12.x"
|
||||
depends on BR2_DEPRECATED || BR2_RECENT
|
||||
depends on BR2_DEPRECATED
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_13_X
|
||||
bool "BusyBox 1.13.x"
|
||||
depends on BR2_DEPRECATED || BR2_RECENT
|
||||
|
||||
config BR2_BUSYBOX_VERSION_1_14_X
|
||||
bool "BusyBox 1.14.x"
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_SNAPSHOT
|
||||
bool "daily snapshot"
|
||||
@@ -58,15 +34,9 @@ endchoice
|
||||
|
||||
config BR2_BUSYBOX_VERSION
|
||||
string
|
||||
default "1.2.2.1" if BR2_BUSYBOX_VERSION_1_2_2_1
|
||||
default "1.6.1" if BR2_BUSYBOX_VERSION_1_6_1
|
||||
default "1.7.5" if BR2_BUSYBOX_VERSION_1_7_X
|
||||
default "1.8.3" if BR2_BUSYBOX_VERSION_1_8_X
|
||||
default "1.9.2" if BR2_BUSYBOX_VERSION_1_9_X
|
||||
default "1.10.4" if BR2_BUSYBOX_VERSION_1_10_X
|
||||
default "1.11.3" if BR2_BUSYBOX_VERSION_1_11_X
|
||||
default "1.12.4" if BR2_BUSYBOX_VERSION_1_12_X
|
||||
default "1.13.2" if BR2_BUSYBOX_VERSION_1_13_X
|
||||
default "1.13.4" if BR2_BUSYBOX_VERSION_1_13_X
|
||||
default "1.14.2" if BR2_BUSYBOX_VERSION_1_14_X
|
||||
|
||||
config BR2_PACKAGE_BUSYBOX_FULLINSTALL
|
||||
bool "Run BusyBox's own full installation"
|
||||
@@ -85,15 +55,9 @@ config BR2_PACKAGE_BUSYBOX_CONFIG
|
||||
string "BusyBox configuration file to use?"
|
||||
depends on BR2_PACKAGE_BUSYBOX
|
||||
default "target/device/x86/i386/busybox.config" if BR2_PACKAGE_BUSYBOX_SNAPSHOT
|
||||
default "package/busybox/busybox-1.2.2.1.config" if BR2_BUSYBOX_VERSION_1_2_2_1
|
||||
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_6_1
|
||||
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_7_X
|
||||
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_8_X
|
||||
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_9_X
|
||||
default "package/busybox/busybox-1.6.0.config" if BR2_BUSYBOX_VERSION_1_10_X
|
||||
default "package/busybox/busybox-1.11.x.config" if BR2_BUSYBOX_VERSION_1_11_X
|
||||
default "package/busybox/busybox-1.11.x.config" if BR2_BUSYBOX_VERSION_1_12_X
|
||||
default "package/busybox/busybox-1.13.x.config" if BR2_BUSYBOX_VERSION_1_13_X
|
||||
default "package/busybox/busybox-1.13.x.config" if BR2_BUSYBOX_VERSION_1_14_X
|
||||
help
|
||||
Some people may wish to use their own modified BusyBox configuration
|
||||
file, and will specify their config file location with this option.
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
--- busybox-1.13.2/modutils/depmod.c Sun Nov 9 18:28:03 2008
|
||||
+++ busybox-1.13.2-depmod/modutils/depmod.c Mon Jan 12 23:12:59 2009
|
||||
@@ -33,7 +33,7 @@
|
||||
enum {
|
||||
ARG_a = (1<<0), /* All modules, ignore mods in argv */
|
||||
ARG_A = (1<<1), /* Only emit .ko that are newer than modules.dep file */
|
||||
- ARG_b = (1<<2), /* not /lib/modules/$(uname -r)/ but this base-dir */
|
||||
+ ARG_b = (1<<2), /* base directory when modules are in staging area */
|
||||
ARG_e = (1<<3), /* with -F, print unresolved symbols */
|
||||
ARG_F = (1<<4), /* System.map that contains the symbols */
|
||||
ARG_n = (1<<5) /* dry-run, print to stdout only */
|
||||
@@ -57,7 +57,7 @@
|
||||
*first = info;
|
||||
|
||||
info->dnext = info->dprev = info;
|
||||
- info->name = xstrdup(fname);
|
||||
+ info->name = xasprintf("/%s", fname);
|
||||
info->modname = filename2modname(fname, NULL);
|
||||
for (ptr = image; ptr < image + len - 10; ptr++) {
|
||||
if (strncmp(ptr, "depends=", 8) == 0) {
|
||||
@@ -123,44 +123,61 @@
|
||||
}
|
||||
}
|
||||
|
||||
+static void xfreopen_write(const char *file, FILE *f)
|
||||
+{
|
||||
+ if (freopen(file, "w", f) == NULL)
|
||||
+ bb_perror_msg_and_die("can't open '%s'", file);
|
||||
+}
|
||||
+
|
||||
int depmod_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int depmod_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
module_info *modules = NULL, *m, *dep;
|
||||
- char *moddir_base = (char *)CONFIG_DEFAULT_MODULES_DIR;
|
||||
+ const char *moddir_base = "/";
|
||||
+ char *moddir, *version;
|
||||
+ struct utsname uts;
|
||||
int tmp;
|
||||
|
||||
getopt32(argv, "aAb:eF:n", &moddir_base, NULL);
|
||||
argv += optind;
|
||||
|
||||
/* goto modules location */
|
||||
+ xchdir(moddir_base);
|
||||
|
||||
/* If a version is provided, then that kernel version's module directory
|
||||
* is used, rather than the current kernel version (as returned by
|
||||
* "uname -r"). */
|
||||
- xchdir(moddir_base);
|
||||
- if (*argv && (sscanf(*argv, "%d.%d.%d", &tmp, &tmp, &tmp) == 3)) {
|
||||
- xchdir(*argv++);
|
||||
+ if (*argv && sscanf(*argv, "%d.%d.%d", &tmp, &tmp, &tmp) == 3) {
|
||||
+ version = *argv++;
|
||||
} else {
|
||||
- struct utsname uts;
|
||||
uname(&uts);
|
||||
- xchdir(uts.release);
|
||||
+ version = uts.release;
|
||||
}
|
||||
- /* If no modules are given on the command-line, -a is on per default. */
|
||||
- option_mask32 |= *argv == NULL;
|
||||
+ moddir = concat_path_file(&CONFIG_DEFAULT_MODULES_DIR[1], version);
|
||||
|
||||
/* Scan modules */
|
||||
- moddir_base = xrealloc_getcwd_or_warn(NULL);
|
||||
- do {
|
||||
- recursive_action((option_mask32 & ARG_a) ? moddir_base : *argv,
|
||||
- ACTION_RECURSE, parse_module, NULL, &modules, 0);
|
||||
- } while (!(option_mask32 & ARG_a) && *(++argv));
|
||||
+ if (*argv) {
|
||||
+ char *modfile;
|
||||
+ struct stat sb;
|
||||
+ do {
|
||||
+ modfile = concat_path_file(moddir, *argv);
|
||||
+ xstat(modfile, &sb);
|
||||
+ parse_module(modfile, &sb, &modules, 0);
|
||||
+ free(modfile);
|
||||
+ } while (*(++argv));
|
||||
+ } else {
|
||||
+ recursive_action(moddir, ACTION_RECURSE,
|
||||
+ parse_module, NULL, &modules, 0);
|
||||
+ }
|
||||
+
|
||||
+ /* Prepare for writing out the dep files */
|
||||
+ xchdir(moddir);
|
||||
if (ENABLE_FEATURE_CLEAN_UP)
|
||||
- free(moddir_base);
|
||||
+ free(moddir);
|
||||
|
||||
/* Generate dependency and alias files */
|
||||
if (!(option_mask32 & ARG_n))
|
||||
- freopen(CONFIG_DEFAULT_DEPMOD_FILE, "w", stdout);
|
||||
+ xfreopen_write(CONFIG_DEFAULT_DEPMOD_FILE, stdout);
|
||||
for (m = modules; m != NULL; m = m->next) {
|
||||
printf("%s:", m->name);
|
||||
|
||||
@@ -174,12 +191,12 @@
|
||||
dep->dprev->dnext = dep->dnext;
|
||||
dep->dnext = dep->dprev = dep;
|
||||
}
|
||||
- puts("");
|
||||
+ bb_putchar('\n');
|
||||
}
|
||||
|
||||
#if ENABLE_FEATURE_MODUTILS_ALIAS
|
||||
if (!(option_mask32 & ARG_n))
|
||||
- freopen("modules.alias", "w", stdout);
|
||||
+ xfreopen_write("modules.alias", stdout);
|
||||
for (m = modules; m != NULL; m = m->next) {
|
||||
while (m->aliases) {
|
||||
printf("alias %s %s\n",
|
||||
@@ -190,7 +207,7 @@
|
||||
#endif
|
||||
#if ENABLE_FEATURE_MODUTILS_SYMBOLS
|
||||
if (!(option_mask32 & ARG_n))
|
||||
- freopen("modules.symbols", "w", stdout);
|
||||
+ xfreopen_write("modules.symbols", stdout);
|
||||
for (m = modules; m != NULL; m = m->next) {
|
||||
while (m->symbols) {
|
||||
printf("alias symbol:%s %s\n",
|
||||
@@ -1,50 +0,0 @@
|
||||
--- busybox-1.13.2/init/init.c Wed Dec 31 04:06:45 2008
|
||||
+++ busybox-1.13.2-init/init/init.c Thu Jan 29 03:02:13 2009
|
||||
@@ -671,15 +671,14 @@
|
||||
*/
|
||||
static void parse_inittab(void)
|
||||
{
|
||||
+#if ENABLE_FEATURE_USE_INITTAB
|
||||
char *token[4];
|
||||
- /* order must correspond to SYSINIT..RESTART constants */
|
||||
- static const char actions[] ALIGN1 =
|
||||
- "sysinit\0""respawn\0""askfirst\0""wait\0""once\0"
|
||||
- "ctrlaltdel\0""shutdown\0""restart\0";
|
||||
+ parser_t *parser = config_open2("/etc/inittab", fopen_for_read);
|
||||
|
||||
- parser_t *parser = config_open2(INITTAB, fopen_for_read);
|
||||
- /* No inittab file -- set up some default behavior */
|
||||
- if (parser == NULL) {
|
||||
+ if (parser == NULL)
|
||||
+#endif
|
||||
+ {
|
||||
+ /* No inittab file -- set up some default behavior */
|
||||
/* Reboot on Ctrl-Alt-Del */
|
||||
new_init_action(CTRLALTDEL, "reboot", "");
|
||||
/* Umount all filesystems on halt/reboot */
|
||||
@@ -699,11 +698,17 @@
|
||||
new_init_action(SYSINIT, INIT_SCRIPT, "");
|
||||
return;
|
||||
}
|
||||
+
|
||||
+#if ENABLE_FEATURE_USE_INITTAB
|
||||
/* optional_tty:ignored_runlevel:action:command
|
||||
* Delims are not to be collapsed and need exactly 4 tokens
|
||||
*/
|
||||
while (config_read(parser, token, 4, 0, "#:",
|
||||
PARSE_NORMAL & ~(PARSE_TRIM | PARSE_COLLAPSE))) {
|
||||
+ /* order must correspond to SYSINIT..RESTART constants */
|
||||
+ static const char actions[] ALIGN1 =
|
||||
+ "sysinit\0""respawn\0""askfirst\0""wait\0""once\0"
|
||||
+ "ctrlaltdel\0""shutdown\0""restart\0";
|
||||
int action;
|
||||
char *tty = token[0];
|
||||
|
||||
@@ -727,6 +732,7 @@
|
||||
parser->lineno);
|
||||
}
|
||||
config_close(parser);
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if ENABLE_FEATURE_USE_INITTAB
|
||||
@@ -1,39 +0,0 @@
|
||||
--- busybox-1.13.2/testsuite/mdev.tests Sun Nov 9 18:28:19 2008
|
||||
+++ busybox-1.13.2-mdev/testsuite/mdev.tests Mon Jan 12 08:59:15 2009
|
||||
@@ -111,6 +111,22 @@
|
||||
|
||||
# continuing to use directory structure from prev test
|
||||
rm -rf mdev.testdir/dev/*
|
||||
+echo "sda 0:0 644 =block/ @echo @echo TEST" >mdev.testdir/etc/mdev.conf
|
||||
+testing "mdev move and command" \
|
||||
+ "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
||||
+ ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
||||
+"\
|
||||
+@echo TEST
|
||||
+mdev.testdir/dev:
|
||||
+drwxr-xr-x 2 0 0 block
|
||||
+
|
||||
+mdev.testdir/dev/block:
|
||||
+brw-r--r-- 1 0 0 sda
|
||||
+" \
|
||||
+ "" ""
|
||||
+
|
||||
+# continuing to use directory structure from prev test
|
||||
+rm -rf mdev.testdir/dev/*
|
||||
echo "@8,0 :1 644" >mdev.testdir/etc/mdev.conf
|
||||
testing "mdev #maj,min and no explicit uid" \
|
||||
"env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
||||
--- busybox-1.13.2/util-linux/mdev.c Sun Nov 9 18:28:22 2008
|
||||
+++ busybox-1.13.2-mdev/util-linux/mdev.c Mon Jan 12 08:59:15 2009
|
||||
@@ -179,8 +179,9 @@
|
||||
unsigned i, n;
|
||||
#endif
|
||||
char *a = val;
|
||||
- s = strchr(val, ' ');
|
||||
- val = (s && s[1]) ? s+1 : NULL;
|
||||
+ s = strchrnul(val, ' ');
|
||||
+ val = (s[0] && s[1]) ? s+1 : NULL;
|
||||
+ s[0] = '\0';
|
||||
#if ENABLE_FEATURE_MDEV_RENAME_REGEXP
|
||||
/* substitute %1..9 with off[1..9], if any */
|
||||
n = 0;
|
||||
@@ -1,99 +0,0 @@
|
||||
--- busybox-1.13.2/modutils/modutils-24.c Sat Nov 29 07:48:56 2008
|
||||
+++ busybox-1.13.2-modprobe/modutils/modutils-24.c Sun Feb 1 00:08:26 2009
|
||||
@@ -2150,7 +2150,7 @@
|
||||
sec->name = name;
|
||||
sec->idx = newidx;
|
||||
if (size)
|
||||
- sec->contents = xmalloc(size);
|
||||
+ sec->contents = xzalloc(size);
|
||||
|
||||
obj_insert_section_load_order(f, sec);
|
||||
|
||||
@@ -2165,7 +2165,7 @@
|
||||
int newidx = f->header.e_shnum++;
|
||||
struct obj_section *sec;
|
||||
|
||||
- f->sections = xrealloc(f->sections, (newidx + 1) * sizeof(sec));
|
||||
+ f->sections = xrealloc_vector(f->sections, 2, newidx);
|
||||
f->sections[newidx] = sec = arch_new_section();
|
||||
|
||||
sec->header.sh_type = SHT_PROGBITS;
|
||||
@@ -2175,7 +2175,7 @@
|
||||
sec->name = name;
|
||||
sec->idx = newidx;
|
||||
if (size)
|
||||
- sec->contents = xmalloc(size);
|
||||
+ sec->contents = xzalloc(size);
|
||||
|
||||
sec->load_next = f->load_order;
|
||||
f->load_order = sec;
|
||||
@@ -2571,8 +2571,7 @@
|
||||
/* Collect the modules' symbols. */
|
||||
|
||||
if (nmod) {
|
||||
- ext_modules = modules = xmalloc(nmod * sizeof(*modules));
|
||||
- memset(modules, 0, nmod * sizeof(*modules));
|
||||
+ ext_modules = modules = xzalloc(nmod * sizeof(*modules));
|
||||
for (i = 0, mn = module_names, m = modules;
|
||||
i < nmod; ++i, ++m, mn += strlen(mn) + 1) {
|
||||
struct new_module_info info;
|
||||
@@ -2652,13 +2651,14 @@
|
||||
}
|
||||
|
||||
|
||||
-static void new_create_this_module(struct obj_file *f, const char *m_name)
|
||||
+static void new_create_this_module(struct obj_file *f, const char *m_name)
|
||||
{
|
||||
struct obj_section *sec;
|
||||
|
||||
sec = obj_create_alloced_section_first(f, ".this", tgt_sizeof_long,
|
||||
sizeof(struct new_module));
|
||||
- memset(sec->contents, 0, sizeof(struct new_module));
|
||||
+ /* done by obj_create_alloced_section_first: */
|
||||
+ /*memset(sec->contents, 0, sizeof(struct new_module));*/
|
||||
|
||||
obj_add_symbol(f, SPFX "__this_module", -1,
|
||||
ELF_ST_INFO(STB_LOCAL, STT_OBJECT), sec->idx, 0,
|
||||
@@ -2965,9 +2965,9 @@
|
||||
if (i == f->header.e_shnum) {
|
||||
struct obj_section *sec;
|
||||
|
||||
+ f->header.e_shnum++;
|
||||
f->sections = xrealloc_vector(f->sections, 2, i);
|
||||
f->sections[i] = sec = arch_new_section();
|
||||
- f->header.e_shnum = i + 1;
|
||||
|
||||
sec->header.sh_type = SHT_PROGBITS;
|
||||
sec->header.sh_flags = SHF_WRITE | SHF_ALLOC;
|
||||
@@ -3006,12 +3006,9 @@
|
||||
for (i = 0; i < f->header.e_shnum; ++i) {
|
||||
struct obj_section *s = f->sections[i];
|
||||
if (s->header.sh_type == SHT_NOBITS) {
|
||||
+ s->contents = NULL;
|
||||
if (s->header.sh_size != 0)
|
||||
- s->contents = memset(xmalloc(s->header.sh_size),
|
||||
- 0, s->header.sh_size);
|
||||
- else
|
||||
- s->contents = NULL;
|
||||
-
|
||||
+ s->contents = xzalloc(s->header.sh_size);
|
||||
s->header.sh_type = SHT_PROGBITS;
|
||||
}
|
||||
}
|
||||
@@ -3275,14 +3272,13 @@
|
||||
case SHT_SYMTAB:
|
||||
case SHT_STRTAB:
|
||||
case SHT_RELM:
|
||||
+ sec->contents = NULL;
|
||||
if (sec->header.sh_size > 0) {
|
||||
- sec->contents = xmalloc(sec->header.sh_size);
|
||||
+ sec->contents = xzalloc(sec->header.sh_size);
|
||||
fseek(fp, sec->header.sh_offset, SEEK_SET);
|
||||
if (fread(sec->contents, sec->header.sh_size, 1, fp) != 1) {
|
||||
bb_perror_msg_and_die("error reading ELF section data");
|
||||
}
|
||||
- } else {
|
||||
- sec->contents = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
--- busybox-1.13.2/archival/tar.c Sun Nov 9 18:28:02 2008
|
||||
+++ busybox-1.13.2-tar/archival/tar.c Tue Jan 20 03:52:04 2009
|
||||
@@ -591,8 +591,6 @@
|
||||
struct TarBallInfo tbInfo;
|
||||
|
||||
tbInfo.hlInfoHead = NULL;
|
||||
-
|
||||
- fchmod(tar_fd, 0644);
|
||||
tbInfo.tarFd = tar_fd;
|
||||
tbInfo.verboseFlag = verboseFlag;
|
||||
|
||||
@@ -562,7 +562,7 @@ CONFIG_DC=y
|
||||
# CONFIG_DEVFSD_FG_NP is not set
|
||||
# CONFIG_DEVFSD_VERBOSE is not set
|
||||
# CONFIG_FEATURE_DEVFS is not set
|
||||
# CONFIG_DEVMEM is not set
|
||||
CONFIG_DEVMEM=y
|
||||
CONFIG_EJECT=y
|
||||
# CONFIG_FEATURE_EJECT_SCSI is not set
|
||||
# CONFIG_FBSPLASH is not set
|
||||
|
||||
134
package/busybox/busybox-1.14.2-df.patch
Normal file
134
package/busybox/busybox-1.14.2-df.patch
Normal file
@@ -0,0 +1,134 @@
|
||||
--- busybox-1.14.2/coreutils/df.c Sun Jul 5 22:59:28 2009
|
||||
+++ busybox-1.14.2-df/coreutils/df.c Sun Jul 5 23:00:09 2009
|
||||
@@ -44,7 +44,6 @@
|
||||
FILE *mount_table;
|
||||
struct mntent *mount_entry;
|
||||
struct statfs s;
|
||||
- static const char ignored_mounts[] ALIGN1 = "rootfs\0";
|
||||
|
||||
enum {
|
||||
OPT_KILO = (1 << 0),
|
||||
@@ -120,7 +119,7 @@
|
||||
mount_point = *argv++;
|
||||
if (!mount_point)
|
||||
break;
|
||||
- mount_entry = find_mount_point(mount_point, bb_path_mtab_file);
|
||||
+ mount_entry = find_mount_point(mount_point);
|
||||
if (!mount_entry) {
|
||||
bb_error_msg("%s: can't find mount point", mount_point);
|
||||
set_error:
|
||||
@@ -154,8 +153,8 @@
|
||||
) / (blocks_used + s.f_bavail);
|
||||
}
|
||||
|
||||
- /* GNU coreutils 6.10 skip certain mounts, try to be compatible. */
|
||||
- if (index_in_strings(device, ignored_mounts) != -1)
|
||||
+ /* GNU coreutils 6.10 skips certain mounts, try to be compatible. */
|
||||
+ if (strcmp(device, "rootfs") == 0)
|
||||
continue;
|
||||
|
||||
#ifdef WHY_WE_DO_IT_FOR_DEV_ROOT_ONLY
|
||||
--- busybox-1.14.2/include/libbb.h Sun Jul 5 22:59:31 2009
|
||||
+++ busybox-1.14.2-df/include/libbb.h Sun Jul 5 23:00:09 2009
|
||||
@@ -1025,7 +1025,7 @@
|
||||
|
||||
#ifdef HAVE_MNTENT_H
|
||||
extern int match_fstype(const struct mntent *mt, const char *fstypes) FAST_FUNC;
|
||||
-extern struct mntent *find_mount_point(const char *name, const char *table) FAST_FUNC;
|
||||
+extern struct mntent *find_mount_point(const char *name) FAST_FUNC;
|
||||
#endif
|
||||
extern void erase_mtab(const char * name) FAST_FUNC;
|
||||
extern unsigned int tty_baud_to_value(speed_t speed) FAST_FUNC;
|
||||
--- busybox-1.14.2/libbb/find_mount_point.c Sun Jul 5 22:59:24 2009
|
||||
+++ busybox-1.14.2-df/libbb/find_mount_point.c Sun Jul 5 23:00:09 2009
|
||||
@@ -17,7 +17,7 @@
|
||||
* Given any other file (or directory), find the mount table entry for its
|
||||
* filesystem.
|
||||
*/
|
||||
-struct mntent* FAST_FUNC find_mount_point(const char *name, const char *table)
|
||||
+struct mntent* FAST_FUNC find_mount_point(const char *name)
|
||||
{
|
||||
struct stat s;
|
||||
dev_t mountDevice;
|
||||
@@ -25,27 +25,35 @@
|
||||
struct mntent *mountEntry;
|
||||
|
||||
if (stat(name, &s) != 0)
|
||||
- return 0;
|
||||
+ return NULL;
|
||||
|
||||
- if ((s.st_mode & S_IFMT) == S_IFBLK)
|
||||
+ if (S_ISBLK(s.st_mode))
|
||||
mountDevice = s.st_rdev;
|
||||
else
|
||||
mountDevice = s.st_dev;
|
||||
|
||||
|
||||
- mountTable = setmntent(table ? table : bb_path_mtab_file, "r");
|
||||
+ mountTable = setmntent(bb_path_mtab_file, "r");
|
||||
if (!mountTable)
|
||||
return 0;
|
||||
|
||||
- while ((mountEntry = getmntent(mountTable)) != 0) {
|
||||
+ while ((mountEntry = getmntent(mountTable)) != NULL) {
|
||||
+ /* rootfs mount in Linux 2.6 exists always,
|
||||
+ * and it makes sense to always ignore it.
|
||||
+ * Otherwise people can't reference their "real" root! */
|
||||
+ if (strcmp(mountEntry->mnt_fsname, "rootfs") == 0)
|
||||
+ continue;
|
||||
+
|
||||
if (strcmp(name, mountEntry->mnt_dir) == 0
|
||||
|| strcmp(name, mountEntry->mnt_fsname) == 0
|
||||
) { /* String match. */
|
||||
break;
|
||||
}
|
||||
- if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice) /* Match the device. */
|
||||
+ /* Match the device. */
|
||||
+ if (stat(mountEntry->mnt_fsname, &s) == 0 && s.st_rdev == mountDevice)
|
||||
break;
|
||||
- if (stat(mountEntry->mnt_dir, &s) == 0 && s.st_dev == mountDevice) /* Match the directory's mount point. */
|
||||
+ /* Match the directory's mount point. */
|
||||
+ if (stat(mountEntry->mnt_dir, &s) == 0 && s.st_dev == mountDevice)
|
||||
break;
|
||||
}
|
||||
endmntent(mountTable);
|
||||
--- busybox-1.14.2/util-linux/mkfs_minix.c Sun Jul 5 22:59:30 2009
|
||||
+++ busybox-1.14.2-df/util-linux/mkfs_minix.c Sun Jul 5 23:00:09 2009
|
||||
@@ -624,7 +624,6 @@
|
||||
int mkfs_minix_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int mkfs_minix_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
- struct mntent *mp;
|
||||
unsigned opt;
|
||||
char *tmp;
|
||||
struct stat statbuf;
|
||||
@@ -683,11 +682,8 @@
|
||||
G.total_blocks = 65535;
|
||||
|
||||
/* Check if it is mounted */
|
||||
- mp = find_mount_point(G.device_name, NULL);
|
||||
- if (mp && strcmp(G.device_name, mp->mnt_fsname) == 0)
|
||||
- bb_error_msg_and_die("%s is mounted on %s; "
|
||||
- "refusing to make a filesystem",
|
||||
- G.device_name, mp->mnt_dir);
|
||||
+ if (find_mount_point(G.device_name))
|
||||
+ bb_error_msg_and_die("can't format mounted filesystem");
|
||||
|
||||
xmove_fd(xopen(G.device_name, O_RDWR), dev_fd);
|
||||
if (fstat(dev_fd, &statbuf) < 0)
|
||||
--- busybox-1.14.2/util-linux/mkfs_vfat.c Sun Jul 5 22:59:30 2009
|
||||
+++ busybox-1.14.2-df/util-linux/mkfs_vfat.c Sun Jul 5 23:00:35 2009
|
||||
@@ -273,10 +273,10 @@
|
||||
device_num == 0x0d00 || // xd
|
||||
device_num == 0x1600 ) // hdc, hdd
|
||||
)
|
||||
- bb_error_msg_and_die("Will not try to make filesystem on full-disk device (use -I if wanted)");
|
||||
+ bb_error_msg_and_die("will not try to make filesystem on full-disk device (use -I if wanted)");
|
||||
// can't work on mounted filesystems
|
||||
- if (find_mount_point(device_name, NULL))
|
||||
- bb_error_msg_and_die("Can't format mounted filesystem");
|
||||
+ if (find_mount_point(device_name))
|
||||
+ bb_error_msg_and_die("can't format mounted filesystem");
|
||||
#endif
|
||||
// get true sector size
|
||||
// (parameter must be int*, not long* or size_t*)
|
||||
152
package/busybox/busybox-1.14.2-ls.patch
Normal file
152
package/busybox/busybox-1.14.2-ls.patch
Normal file
@@ -0,0 +1,152 @@
|
||||
diff -urpN busybox-1.14.2/coreutils/ls.c busybox-1.14.2-ls/coreutils/ls.c
|
||||
--- busybox-1.14.2/coreutils/ls.c 2009-06-22 00:40:29.000000000 +0200
|
||||
+++ busybox-1.14.2-ls/coreutils/ls.c 2009-07-03 12:46:16.000000000 +0200
|
||||
@@ -144,8 +144,7 @@ static const char ls_options[] ALIGN1 =
|
||||
USE_FEATURE_LS_FOLLOWLINKS("L") /* 1, 24 */
|
||||
USE_FEATURE_LS_RECURSIVE("R") /* 1, 25 */
|
||||
USE_FEATURE_HUMAN_READABLE("h") /* 1, 26 */
|
||||
- USE_SELINUX("K") /* 1, 27 */
|
||||
- USE_SELINUX("Z") /* 1, 28 */
|
||||
+ USE_SELINUX("KZ") /* 2, 28 */
|
||||
USE_FEATURE_AUTOWIDTH("T:w:") /* 2, 30 */
|
||||
;
|
||||
enum {
|
||||
@@ -162,6 +161,16 @@ enum {
|
||||
OPT_Q = (1 << 10),
|
||||
//OPT_A = (1 << 11),
|
||||
//OPT_k = (1 << 12),
|
||||
+ OPTBIT_color = 13
|
||||
+ + 4 * ENABLE_FEATURE_LS_TIMESTAMPS
|
||||
+ + 4 * ENABLE_FEATURE_LS_SORTFILES
|
||||
+ + 2 * ENABLE_FEATURE_LS_FILETYPES
|
||||
+ + 1 * ENABLE_FEATURE_LS_FOLLOWLINKS
|
||||
+ + 1 * ENABLE_FEATURE_LS_RECURSIVE
|
||||
+ + 1 * ENABLE_FEATURE_HUMAN_READABLE
|
||||
+ + 2 * ENABLE_SELINUX
|
||||
+ + 2 * ENABLE_FEATURE_AUTOWIDTH,
|
||||
+ OPT_color = 1 << OPTBIT_color,
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -889,16 +898,6 @@ static int list_single(const struct dnod
|
||||
}
|
||||
|
||||
|
||||
-/* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
|
||||
-#if ENABLE_FEATURE_LS_COLOR
|
||||
-/* long option entry used only for --color, which has no short option
|
||||
- * equivalent */
|
||||
-static const char ls_color_opt[] ALIGN1 =
|
||||
- "color\0" Optional_argument "\xff" /* no short equivalent */
|
||||
- ;
|
||||
-#endif
|
||||
-
|
||||
-
|
||||
int ls_main(int argc UNUSED_PARAM, char **argv)
|
||||
{
|
||||
struct dnode **dnd;
|
||||
@@ -911,8 +910,25 @@ int ls_main(int argc UNUSED_PARAM, char
|
||||
int dnfiles;
|
||||
int dndirs;
|
||||
int i;
|
||||
+#if ENABLE_FEATURE_LS_COLOR
|
||||
+ /* colored LS support by JaWi, janwillem.janssen@lxtreme.nl */
|
||||
+ /* coreutils 6.10:
|
||||
+ * # ls --color=BOGUS
|
||||
+ * ls: invalid argument 'BOGUS' for '--color'
|
||||
+ * Valid arguments are:
|
||||
+ * 'always', 'yes', 'force'
|
||||
+ * 'never', 'no', 'none'
|
||||
+ * 'auto', 'tty', 'if-tty'
|
||||
+ * (and substrings: "--color=alwa" work too)
|
||||
+ */
|
||||
+ static const char ls_longopts[] ALIGN1 =
|
||||
+ "color\0" Optional_argument "\xff"; /* no short equivalent */
|
||||
+ static const char color_str[] ALIGN1 =
|
||||
+ "always\0""yes\0""force\0"
|
||||
+ "auto\0""tty\0""if-tty\0";
|
||||
/* need to initialize since --color has _an optional_ argument */
|
||||
- USE_FEATURE_LS_COLOR(const char *color_opt = "always";)
|
||||
+ const char *color_opt = color_str; /* "always" */
|
||||
+#endif
|
||||
|
||||
INIT_G();
|
||||
|
||||
@@ -927,7 +943,7 @@ int ls_main(int argc UNUSED_PARAM, char
|
||||
#endif
|
||||
|
||||
/* process options */
|
||||
- USE_FEATURE_LS_COLOR(applet_long_options = ls_color_opt;)
|
||||
+ USE_FEATURE_LS_COLOR(applet_long_options = ls_longopts;)
|
||||
#if ENABLE_FEATURE_AUTOWIDTH
|
||||
opt_complementary = "T+:w+"; /* -T N, -w N */
|
||||
opt = getopt32(argv, ls_options, &tabstops, &terminal_width
|
||||
@@ -966,13 +982,20 @@ int ls_main(int argc UNUSED_PARAM, char
|
||||
if (!p || (p[0] && strcmp(p, "none") != 0))
|
||||
show_color = 1;
|
||||
}
|
||||
- if (opt & (1 << i)) { /* next flag after short options */
|
||||
- if (strcmp("always", color_opt) == 0)
|
||||
- show_color = 1;
|
||||
- else if (strcmp("never", color_opt) == 0)
|
||||
+ if (opt & OPT_color) {
|
||||
+ if (color_opt[0] == 'n')
|
||||
show_color = 0;
|
||||
- else if (strcmp("auto", color_opt) == 0 && isatty(STDOUT_FILENO))
|
||||
- show_color = 1;
|
||||
+ else switch (index_in_substrings(color_str, color_opt)) {
|
||||
+ case 3:
|
||||
+ case 4:
|
||||
+ case 5:
|
||||
+ if (isatty(STDOUT_FILENO)) {
|
||||
+ case 0:
|
||||
+ case 1:
|
||||
+ case 2:
|
||||
+ show_color = 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
#endif
|
||||
|
||||
diff -urpN busybox-1.14.2/testsuite/ls/ls-1-works busybox-1.14.2-ls/testsuite/ls/ls-1-works
|
||||
--- busybox-1.14.2/testsuite/ls/ls-1-works 2009-06-22 00:32:00.000000000 +0200
|
||||
+++ busybox-1.14.2-ls/testsuite/ls/ls-1-works 2009-07-02 14:28:45.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
[ -n "$d" ] || d=..
|
||||
-ls -1 "$d" > logfile.gnu
|
||||
-busybox ls -1 "$d" > logfile.bb
|
||||
-cmp logfile.gnu logfile.bb
|
||||
+LC_ALL=C ls -1 "$d" > logfile.gnu
|
||||
+LC_ALL=C busybox ls -1 "$d" > logfile.bb
|
||||
+diff -ubw logfile.gnu logfile.bb
|
||||
diff -urpN busybox-1.14.2/testsuite/ls/ls-h-works busybox-1.14.2-ls/testsuite/ls/ls-h-works
|
||||
--- busybox-1.14.2/testsuite/ls/ls-h-works 2009-06-22 00:32:00.000000000 +0200
|
||||
+++ busybox-1.14.2-ls/testsuite/ls/ls-h-works 2009-07-02 14:28:45.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
[ -n "$d" ] || d=..
|
||||
-ls -h "$d" > logfile.gnu
|
||||
-busybox ls -h "$d" > logfile.bb
|
||||
-cmp logfile.gnu logfile.bb
|
||||
+LC_ALL=C ls -h "$d" > logfile.gnu
|
||||
+LC_ALL=C busybox ls -h "$d" > logfile.bb
|
||||
+diff -ubw logfile.gnu logfile.bb
|
||||
diff -urpN busybox-1.14.2/testsuite/ls/ls-l-works busybox-1.14.2-ls/testsuite/ls/ls-l-works
|
||||
--- busybox-1.14.2/testsuite/ls/ls-l-works 2009-06-22 00:32:00.000000000 +0200
|
||||
+++ busybox-1.14.2-ls/testsuite/ls/ls-l-works 2009-07-02 14:28:45.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
[ -n "$d" ] || d=..
|
||||
LC_ALL=C ls -l "$d" > logfile.gnu
|
||||
-busybox ls -l "$d" > logfile.bb
|
||||
-diff -w logfile.gnu logfile.bb
|
||||
+LC_ALL=C busybox ls -l "$d" > logfile.bb
|
||||
+diff -ubw logfile.gnu logfile.bb
|
||||
diff -urpN busybox-1.14.2/testsuite/ls/ls-s-works busybox-1.14.2-ls/testsuite/ls/ls-s-works
|
||||
--- busybox-1.14.2/testsuite/ls/ls-s-works 2009-06-22 00:32:00.000000000 +0200
|
||||
+++ busybox-1.14.2-ls/testsuite/ls/ls-s-works 2009-07-02 14:28:45.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
[ -n "$d" ] || d=..
|
||||
LC_ALL=C ls -1s "$d" > logfile.gnu
|
||||
-busybox ls -1s "$d" > logfile.bb
|
||||
-cmp logfile.gnu logfile.bb
|
||||
+LC_ALL=C busybox ls -1s "$d" > logfile.bb
|
||||
+diff -ubw logfile.gnu logfile.bb
|
||||
64
package/busybox/busybox-1.14.2-test.patch
Normal file
64
package/busybox/busybox-1.14.2-test.patch
Normal file
@@ -0,0 +1,64 @@
|
||||
diff -urpN busybox-1.14.2/coreutils/test.c busybox-1.14.2-test/coreutils/test.c
|
||||
--- busybox-1.14.2/coreutils/test.c 2009-07-05 22:59:28.000000000 +0200
|
||||
+++ busybox-1.14.2-test/coreutils/test.c 2009-07-17 01:46:28.000000000 +0200
|
||||
@@ -571,7 +571,14 @@ static number_t nexpr(enum token n)
|
||||
|
||||
nest_msg(">nexpr(%s)\n", TOKSTR[n]);
|
||||
if (n == UNOT) {
|
||||
- res = !nexpr(check_operator(*++args));
|
||||
+ n = check_operator(*++args);
|
||||
+ if (n == EOI) {
|
||||
+ /* special case: [ ! ], [ a -a ! ] are valid */
|
||||
+ /* IOW, "! ARG" may miss ARG */
|
||||
+ unnest_msg("<nexpr:1 (!EOI)\n");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ res = !nexpr(n);
|
||||
unnest_msg("<nexpr:%lld\n", res);
|
||||
return res;
|
||||
}
|
||||
@@ -742,7 +749,7 @@ int test_main(int argc, char **argv)
|
||||
check_operator(argv[1]);
|
||||
if (last_operator->op_type == BINOP) {
|
||||
/* "test [!] arg1 <binary_op> arg2" */
|
||||
- args = &argv[0];
|
||||
+ args = argv;
|
||||
res = (binop() == 0);
|
||||
goto ret;
|
||||
}
|
||||
@@ -755,7 +762,7 @@ int test_main(int argc, char **argv)
|
||||
argv--;
|
||||
}
|
||||
#endif
|
||||
- args = &argv[0];
|
||||
+ args = argv;
|
||||
res = !oexpr(check_operator(*args));
|
||||
|
||||
if (*args != NULL && *++args != NULL) {
|
||||
diff -urpN busybox-1.14.2/testsuite/test.tests busybox-1.14.2-test/testsuite/test.tests
|
||||
--- busybox-1.14.2/testsuite/test.tests 2009-07-05 22:59:22.000000000 +0200
|
||||
+++ busybox-1.14.2-test/testsuite/test.tests 2009-07-17 01:46:28.000000000 +0200
|
||||
@@ -21,6 +21,11 @@ testing "test '': should be false (1)" \
|
||||
"1\n" \
|
||||
"" ""
|
||||
|
||||
+testing "test !: should be true (0)" \
|
||||
+ "busybox test !; echo \$?" \
|
||||
+ "0\n" \
|
||||
+ "" ""
|
||||
+
|
||||
testing "test a: should be true (0)" \
|
||||
"busybox test a; echo \$?" \
|
||||
"0\n" \
|
||||
@@ -51,6 +56,11 @@ testing "test -lt = -gt: should be false
|
||||
"1\n" \
|
||||
"" ""
|
||||
|
||||
+testing "test a -a !: should be true (0)" \
|
||||
+ "busybox test a -a !; echo \$?" \
|
||||
+ "0\n" \
|
||||
+ "" ""
|
||||
+
|
||||
testing "test -f = a -o b: should be true (0)" \
|
||||
"busybox test -f = a -o b; echo \$?" \
|
||||
"0\n" \
|
||||
12
package/busybox/busybox-1.14.2-udhcpd.patch
Normal file
12
package/busybox/busybox-1.14.2-udhcpd.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff -urpN busybox-1.14.2/networking/udhcp/files.c busybox-1.14.2-udhcpd/networking/udhcp/files.c
|
||||
--- busybox-1.14.2/networking/udhcp/files.c 2009-06-22 00:40:29.000000000 +0200
|
||||
+++ busybox-1.14.2-udhcpd/networking/udhcp/files.c 2009-07-07 14:58:39.000000000 +0200
|
||||
@@ -420,7 +420,7 @@ void FAST_FUNC read_leases(const char *f
|
||||
continue;
|
||||
/* NB: add_lease takes "relative time", IOW,
|
||||
* lease duration, not lease deadline. */
|
||||
- if (!(add_lease(lease.chaddr, lease.yiaddr, expires, lease.hostname))) {
|
||||
+ if (!(add_lease(lease.chaddr, lease.yiaddr, expires, NULL /* was lease.hostname. bug in add_lease, disabled */ ))) {
|
||||
bb_error_msg("too many leases while loading %s", file);
|
||||
break;
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
diff -ur busybox-1.2.2.1/networking/dnsd.c busybox-1.2.2.1-patched/networking/dnsd.c
|
||||
--- busybox-1.2.2.1/networking/dnsd.c 2006-10-24 15:21:17.000000000 -0500
|
||||
+++ busybox-1.2.2.1-patched/networking/dnsd.c 2007-04-12 12:49:53.000000000 -0500
|
||||
@@ -31,11 +31,11 @@
|
||||
|
||||
#define is_daemon() (flags&16)
|
||||
#define is_verbose() (flags&32)
|
||||
-//#define DEBUG
|
||||
+#undef DEBUG
|
||||
|
||||
|
||||
enum {
|
||||
- MAX_HOST_LEN = 16, // longest host name allowed is 15
|
||||
+ MAX_HOST_LEN = 41, // longest host name allowed is 40
|
||||
IP_STRING_LEN = 18, // .xxx.xxx.xxx.xxx\0
|
||||
|
||||
//must be strlen('.in-addr.arpa') larger than IP_STRING_LEN
|
||||
@@ -229,19 +229,23 @@
|
||||
{
|
||||
int i;
|
||||
struct dns_entry *d = dnsentry;
|
||||
+ char *p,*q;
|
||||
+
|
||||
+ q = (char *)&(qs[1]);
|
||||
+ p = &(d->name[1]);
|
||||
|
||||
if(d) do {
|
||||
#ifdef DEBUG
|
||||
if(qs && d) {
|
||||
- char *p,*q;
|
||||
- q = (char *)&(qs[1]);
|
||||
- p = &(d->name[1]);
|
||||
fprintf(stderr, "\n%s: %d/%d p:%s q:%s %d",
|
||||
__FUNCTION__, strlen(p), (int)(d->name[0]),
|
||||
p, q, strlen(q));
|
||||
}
|
||||
#endif
|
||||
if (type == REQ_A) { /* search by host name */
|
||||
+ p = &(d->name[1]);
|
||||
+ if(strlen(q) != strlen(p))
|
||||
+ continue;
|
||||
for(i = 1; i <= (int)(d->name[0]); i++)
|
||||
if(tolower(qs[i]) != d->name[i])
|
||||
break;
|
||||
@@ -398,13 +402,15 @@
|
||||
fprintf(stderr,"fileconf: %s\n", fileconf);
|
||||
}
|
||||
|
||||
- if(is_daemon())
|
||||
+ if(is_daemon()) {
|
||||
#ifdef BB_NOMMU
|
||||
/* reexec for vfork() do continue parent */
|
||||
vfork_daemon_rexec(1, 0, argc, argv, "-d");
|
||||
#else
|
||||
bb_xdaemon(1, 0);
|
||||
#endif
|
||||
+ daemonmode = 1;
|
||||
+ }
|
||||
|
||||
dnsentryinit(is_verbose());
|
||||
|
||||
@@ -1,643 +0,0 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
#
|
||||
HAVE_DOT_CONFIG=y
|
||||
|
||||
#
|
||||
# Busybox Settings
|
||||
#
|
||||
|
||||
#
|
||||
# General Configuration
|
||||
#
|
||||
# CONFIG_NITPICK is not set
|
||||
# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
|
||||
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
|
||||
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
|
||||
CONFIG_SHOW_USAGE=y
|
||||
CONFIG_FEATURE_VERBOSE_USAGE=y
|
||||
# CONFIG_FEATURE_COMPRESS_USAGE is not set
|
||||
# CONFIG_FEATURE_INSTALLER is not set
|
||||
# CONFIG_LOCALE_SUPPORT is not set
|
||||
CONFIG_GETOPT_LONG=y
|
||||
CONFIG_FEATURE_DEVPTS=y
|
||||
# CONFIG_FEATURE_CLEAN_UP is not set
|
||||
CONFIG_FEATURE_SUID=y
|
||||
# CONFIG_FEATURE_SUID_CONFIG is not set
|
||||
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
|
||||
# CONFIG_SELINUX is not set
|
||||
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
|
||||
|
||||
#
|
||||
# Build Options
|
||||
#
|
||||
# CONFIG_STATIC is not set
|
||||
# CONFIG_BUILD_LIBBUSYBOX is not set
|
||||
# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
|
||||
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
|
||||
CONFIG_LFS=y
|
||||
# USING_CROSS_COMPILER is not set
|
||||
CROSS_COMPILER_PREFIX=""
|
||||
# CONFIG_BUILD_AT_ONCE is not set
|
||||
|
||||
#
|
||||
# Debugging Options
|
||||
#
|
||||
# CONFIG_DEBUG is not set
|
||||
# CONFIG_DEBUG_PESSIMIZE is not set
|
||||
# CONFIG_NO_DEBUG_LIB is not set
|
||||
# CONFIG_DMALLOC is not set
|
||||
# CONFIG_EFENCE is not set
|
||||
CONFIG_DEBUG_YANK_SUSv2=y
|
||||
|
||||
#
|
||||
# Installation Options
|
||||
#
|
||||
# CONFIG_INSTALL_NO_USR is not set
|
||||
CONFIG_INSTALL_APPLET_SYMLINKS=y
|
||||
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
|
||||
# CONFIG_INSTALL_APPLET_DONT is not set
|
||||
PREFIX="./_install"
|
||||
|
||||
#
|
||||
# Busybox Library Tuning
|
||||
#
|
||||
CONFIG_MD5_SIZE_VS_SPEED=2
|
||||
|
||||
#
|
||||
# Applets
|
||||
#
|
||||
|
||||
#
|
||||
# Archival Utilities
|
||||
#
|
||||
# CONFIG_AR is not set
|
||||
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
|
||||
CONFIG_BUNZIP2=y
|
||||
# CONFIG_CPIO is not set
|
||||
# CONFIG_DPKG is not set
|
||||
# CONFIG_DPKG_DEB is not set
|
||||
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
|
||||
CONFIG_GUNZIP=y
|
||||
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
|
||||
CONFIG_GZIP=y
|
||||
# CONFIG_RPM2CPIO is not set
|
||||
# CONFIG_RPM is not set
|
||||
CONFIG_TAR=y
|
||||
CONFIG_FEATURE_TAR_CREATE=y
|
||||
CONFIG_FEATURE_TAR_BZIP2=y
|
||||
# CONFIG_FEATURE_TAR_LZMA is not set
|
||||
# CONFIG_FEATURE_TAR_FROM is not set
|
||||
CONFIG_FEATURE_TAR_GZIP=y
|
||||
# CONFIG_FEATURE_TAR_COMPRESS is not set
|
||||
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
|
||||
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
|
||||
# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
|
||||
# CONFIG_UNCOMPRESS is not set
|
||||
# CONFIG_UNLZMA is not set
|
||||
# CONFIG_FEATURE_LZMA_FAST is not set
|
||||
CONFIG_UNZIP=y
|
||||
|
||||
#
|
||||
# Common options for cpio and tar
|
||||
#
|
||||
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_GZ is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_LZMA is not set
|
||||
|
||||
#
|
||||
# Coreutils
|
||||
#
|
||||
CONFIG_BASENAME=y
|
||||
# CONFIG_CAL is not set
|
||||
CONFIG_CAT=y
|
||||
# CONFIG_CATV is not set
|
||||
CONFIG_CHGRP=y
|
||||
CONFIG_CHMOD=y
|
||||
CONFIG_CHOWN=y
|
||||
CONFIG_CHROOT=y
|
||||
# CONFIG_CKSUM is not set
|
||||
CONFIG_CMP=y
|
||||
# CONFIG_COMM is not set
|
||||
CONFIG_CP=y
|
||||
CONFIG_CUT=y
|
||||
CONFIG_DATE=y
|
||||
CONFIG_FEATURE_DATE_ISOFMT=y
|
||||
CONFIG_DD=y
|
||||
# CONFIG_FEATURE_DD_SIGNAL_HANDLING is not set
|
||||
# CONFIG_FEATURE_DD_IBS_OBS is not set
|
||||
CONFIG_DF=y
|
||||
# CONFIG_DIFF is not set
|
||||
# CONFIG_FEATURE_DIFF_BINARY is not set
|
||||
# CONFIG_FEATURE_DIFF_DIR is not set
|
||||
# CONFIG_FEATURE_DIFF_MINIMAL is not set
|
||||
CONFIG_DIRNAME=y
|
||||
CONFIG_DOS2UNIX=y
|
||||
CONFIG_UNIX2DOS=y
|
||||
CONFIG_DU=y
|
||||
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
|
||||
CONFIG_ECHO=y
|
||||
CONFIG_FEATURE_FANCY_ECHO=y
|
||||
CONFIG_ENV=y
|
||||
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
|
||||
CONFIG_EXPR=y
|
||||
CONFIG_EXPR_MATH_SUPPORT_64=y
|
||||
CONFIG_FALSE=y
|
||||
# CONFIG_FOLD is not set
|
||||
CONFIG_HEAD=y
|
||||
# CONFIG_FEATURE_FANCY_HEAD is not set
|
||||
CONFIG_HOSTID=y
|
||||
CONFIG_ID=y
|
||||
CONFIG_INSTALL=y
|
||||
# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
|
||||
# CONFIG_LENGTH is not set
|
||||
CONFIG_LN=y
|
||||
CONFIG_LOGNAME=y
|
||||
CONFIG_LS=y
|
||||
CONFIG_FEATURE_LS_FILETYPES=y
|
||||
CONFIG_FEATURE_LS_FOLLOWLINKS=y
|
||||
CONFIG_FEATURE_LS_RECURSIVE=y
|
||||
CONFIG_FEATURE_LS_SORTFILES=y
|
||||
CONFIG_FEATURE_LS_TIMESTAMPS=y
|
||||
CONFIG_FEATURE_LS_USERNAME=y
|
||||
CONFIG_FEATURE_LS_COLOR=y
|
||||
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
|
||||
CONFIG_MD5SUM=y
|
||||
CONFIG_MKDIR=y
|
||||
# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
|
||||
# CONFIG_MKFIFO is not set
|
||||
CONFIG_MKNOD=y
|
||||
CONFIG_MV=y
|
||||
# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
|
||||
# CONFIG_NICE is not set
|
||||
# CONFIG_NOHUP is not set
|
||||
# CONFIG_OD is not set
|
||||
# CONFIG_PRINTENV is not set
|
||||
# CONFIG_PRINTF is not set
|
||||
CONFIG_PWD=y
|
||||
# CONFIG_REALPATH is not set
|
||||
CONFIG_RM=y
|
||||
CONFIG_RMDIR=y
|
||||
# CONFIG_SEQ is not set
|
||||
CONFIG_SHA1SUM=y
|
||||
CONFIG_SLEEP=y
|
||||
# CONFIG_FEATURE_FANCY_SLEEP is not set
|
||||
CONFIG_SORT=y
|
||||
CONFIG_FEATURE_SORT_BIG=y
|
||||
# CONFIG_STAT is not set
|
||||
# CONFIG_FEATURE_STAT_FORMAT is not set
|
||||
CONFIG_STTY=y
|
||||
# CONFIG_SUM is not set
|
||||
CONFIG_SYNC=y
|
||||
CONFIG_TAIL=y
|
||||
CONFIG_FEATURE_FANCY_TAIL=y
|
||||
CONFIG_TEE=y
|
||||
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
|
||||
CONFIG_TEST=y
|
||||
CONFIG_FEATURE_TEST_64=y
|
||||
CONFIG_TOUCH=y
|
||||
# CONFIG_TR is not set
|
||||
# CONFIG_FEATURE_TR_CLASSES is not set
|
||||
# CONFIG_FEATURE_TR_EQUIV is not set
|
||||
CONFIG_TRUE=y
|
||||
CONFIG_TTY=y
|
||||
CONFIG_UNAME=y
|
||||
CONFIG_UNIQ=y
|
||||
CONFIG_USLEEP=y
|
||||
CONFIG_UUDECODE=y
|
||||
CONFIG_UUENCODE=y
|
||||
# CONFIG_WATCH is not set
|
||||
CONFIG_WC=y
|
||||
# CONFIG_WHO is not set
|
||||
CONFIG_WHOAMI=y
|
||||
CONFIG_YES=y
|
||||
|
||||
#
|
||||
# Common options for cp and mv
|
||||
#
|
||||
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
|
||||
|
||||
#
|
||||
# Common options for ls, more and telnet
|
||||
#
|
||||
CONFIG_FEATURE_AUTOWIDTH=y
|
||||
|
||||
#
|
||||
# Common options for df, du, ls
|
||||
#
|
||||
CONFIG_FEATURE_HUMAN_READABLE=y
|
||||
|
||||
#
|
||||
# Common options for md5sum, sha1sum
|
||||
#
|
||||
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
|
||||
|
||||
#
|
||||
# Console Utilities
|
||||
#
|
||||
CONFIG_CHVT=y
|
||||
CONFIG_CLEAR=y
|
||||
CONFIG_DEALLOCVT=y
|
||||
# CONFIG_DUMPKMAP is not set
|
||||
# CONFIG_LOADFONT is not set
|
||||
# CONFIG_LOADKMAP is not set
|
||||
CONFIG_OPENVT=y
|
||||
CONFIG_RESET=y
|
||||
# CONFIG_SETCONSOLE is not set
|
||||
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
|
||||
# CONFIG_SETKEYCODES is not set
|
||||
# CONFIG_SETLOGCONS is not set
|
||||
|
||||
#
|
||||
# Debian Utilities
|
||||
#
|
||||
CONFIG_MKTEMP=y
|
||||
# CONFIG_PIPE_PROGRESS is not set
|
||||
CONFIG_READLINK=y
|
||||
CONFIG_FEATURE_READLINK_FOLLOW=y
|
||||
CONFIG_RUN_PARTS=y
|
||||
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
|
||||
CONFIG_START_STOP_DAEMON=y
|
||||
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
|
||||
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
|
||||
CONFIG_WHICH=y
|
||||
|
||||
#
|
||||
# Editors
|
||||
#
|
||||
# CONFIG_AWK is not set
|
||||
# CONFIG_FEATURE_AWK_MATH is not set
|
||||
# CONFIG_ED is not set
|
||||
# CONFIG_PATCH is not set
|
||||
CONFIG_SED=y
|
||||
CONFIG_VI=y
|
||||
CONFIG_FEATURE_VI_COLON=y
|
||||
CONFIG_FEATURE_VI_YANKMARK=y
|
||||
CONFIG_FEATURE_VI_SEARCH=y
|
||||
CONFIG_FEATURE_VI_USE_SIGNALS=y
|
||||
CONFIG_FEATURE_VI_DOT_CMD=y
|
||||
CONFIG_FEATURE_VI_READONLY=y
|
||||
CONFIG_FEATURE_VI_SETOPTS=y
|
||||
CONFIG_FEATURE_VI_SET=y
|
||||
CONFIG_FEATURE_VI_WIN_RESIZE=y
|
||||
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
|
||||
|
||||
#
|
||||
# Finding Utilities
|
||||
#
|
||||
CONFIG_FIND=y
|
||||
CONFIG_FEATURE_FIND_PRINT0=y
|
||||
CONFIG_FEATURE_FIND_MTIME=y
|
||||
# CONFIG_FEATURE_FIND_MMIN is not set
|
||||
CONFIG_FEATURE_FIND_PERM=y
|
||||
CONFIG_FEATURE_FIND_TYPE=y
|
||||
CONFIG_FEATURE_FIND_XDEV=y
|
||||
# CONFIG_FEATURE_FIND_NEWER is not set
|
||||
# CONFIG_FEATURE_FIND_INUM is not set
|
||||
CONFIG_FEATURE_FIND_EXEC=y
|
||||
CONFIG_GREP=y
|
||||
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
|
||||
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
|
||||
CONFIG_FEATURE_GREP_CONTEXT=y
|
||||
CONFIG_XARGS=y
|
||||
# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
|
||||
|
||||
#
|
||||
# Init Utilities
|
||||
#
|
||||
CONFIG_INIT=y
|
||||
# CONFIG_DEBUG_INIT is not set
|
||||
CONFIG_FEATURE_USE_INITTAB=y
|
||||
CONFIG_FEATURE_INIT_SCTTY=y
|
||||
CONFIG_FEATURE_EXTRA_QUIET=y
|
||||
# CONFIG_FEATURE_INIT_COREDUMPS is not set
|
||||
CONFIG_FEATURE_INITRD=y
|
||||
CONFIG_HALT=y
|
||||
# CONFIG_MESG is not set
|
||||
|
||||
#
|
||||
# Login/Password Management Utilities
|
||||
#
|
||||
CONFIG_FEATURE_SHADOWPASSWDS=y
|
||||
# CONFIG_USE_BB_SHADOW is not set
|
||||
# CONFIG_USE_BB_PWD_GRP is not set
|
||||
CONFIG_ADDGROUP=y
|
||||
CONFIG_DELGROUP=y
|
||||
CONFIG_ADDUSER=y
|
||||
CONFIG_DELUSER=y
|
||||
CONFIG_GETTY=y
|
||||
# CONFIG_FEATURE_UTMP is not set
|
||||
# CONFIG_FEATURE_WTMP is not set
|
||||
CONFIG_LOGIN=y
|
||||
CONFIG_FEATURE_SECURETTY=y
|
||||
CONFIG_PASSWD=y
|
||||
CONFIG_SU=y
|
||||
CONFIG_SULOGIN=y
|
||||
CONFIG_VLOCK=y
|
||||
|
||||
#
|
||||
# Linux Ext2 FS Progs
|
||||
#
|
||||
# CONFIG_CHATTR is not set
|
||||
# CONFIG_E2FSCK is not set
|
||||
# CONFIG_FSCK is not set
|
||||
# CONFIG_LSATTR is not set
|
||||
# CONFIG_MKE2FS is not set
|
||||
# CONFIG_TUNE2FS is not set
|
||||
# CONFIG_E2LABEL is not set
|
||||
# CONFIG_FINDFS is not set
|
||||
|
||||
#
|
||||
# Linux Module Utilities
|
||||
#
|
||||
CONFIG_INSMOD=y
|
||||
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
|
||||
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
|
||||
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
|
||||
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
|
||||
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
|
||||
CONFIG_RMMOD=y
|
||||
CONFIG_LSMOD=y
|
||||
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
|
||||
CONFIG_MODPROBE=y
|
||||
CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
|
||||
|
||||
#
|
||||
# Options common to multiple modutils
|
||||
#
|
||||
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
|
||||
CONFIG_FEATURE_2_4_MODULES=y
|
||||
CONFIG_FEATURE_2_6_MODULES=y
|
||||
# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
|
||||
|
||||
#
|
||||
# Linux System Utilities
|
||||
#
|
||||
CONFIG_DMESG=y
|
||||
# CONFIG_FBSET is not set
|
||||
# CONFIG_FEATURE_FBSET_FANCY is not set
|
||||
# CONFIG_FEATURE_FBSET_READMODE is not set
|
||||
# CONFIG_FDFLUSH is not set
|
||||
CONFIG_FDFORMAT=y
|
||||
CONFIG_FDISK=y
|
||||
FDISK_SUPPORT_LARGE_DISKS=y
|
||||
CONFIG_FEATURE_FDISK_WRITABLE=y
|
||||
# CONFIG_FEATURE_AIX_LABEL is not set
|
||||
# CONFIG_FEATURE_SGI_LABEL is not set
|
||||
# CONFIG_FEATURE_SUN_LABEL is not set
|
||||
# CONFIG_FEATURE_OSF_LABEL is not set
|
||||
# CONFIG_FEATURE_FDISK_ADVANCED is not set
|
||||
# CONFIG_FREERAMDISK is not set
|
||||
# CONFIG_FSCK_MINIX is not set
|
||||
# CONFIG_MKFS_MINIX is not set
|
||||
# CONFIG_FEATURE_MINIX2 is not set
|
||||
CONFIG_GETOPT=y
|
||||
CONFIG_HEXDUMP=y
|
||||
CONFIG_HWCLOCK=y
|
||||
# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
|
||||
# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
|
||||
# CONFIG_IPCRM is not set
|
||||
# CONFIG_IPCS is not set
|
||||
# CONFIG_LOSETUP is not set
|
||||
# CONFIG_MDEV is not set
|
||||
# CONFIG_FEATURE_MDEV_CONF is not set
|
||||
# CONFIG_FEATURE_MDEV_EXEC is not set
|
||||
# CONFIG_MKSWAP is not set
|
||||
# CONFIG_FEATURE_MKSWAP_V0 is not set
|
||||
CONFIG_MORE=y
|
||||
CONFIG_FEATURE_USE_TERMIOS=y
|
||||
CONFIG_MOUNT=y
|
||||
CONFIG_FEATURE_MOUNT_NFS=y
|
||||
CONFIG_PIVOT_ROOT=y
|
||||
CONFIG_RDATE=y
|
||||
# CONFIG_READPROFILE is not set
|
||||
# CONFIG_SETARCH is not set
|
||||
CONFIG_SWAPONOFF=y
|
||||
CONFIG_SWITCH_ROOT=y
|
||||
CONFIG_UMOUNT=y
|
||||
CONFIG_FEATURE_UMOUNT_ALL=y
|
||||
|
||||
#
|
||||
# Common options for mount/umount
|
||||
#
|
||||
CONFIG_FEATURE_MOUNT_LOOP=y
|
||||
# CONFIG_FEATURE_MTAB_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Miscellaneous Utilities
|
||||
#
|
||||
# CONFIG_ADJTIMEX is not set
|
||||
# CONFIG_BBCONFIG is not set
|
||||
# CONFIG_CROND is not set
|
||||
# CONFIG_DEBUG_CROND_OPTION is not set
|
||||
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
|
||||
# CONFIG_CRONTAB is not set
|
||||
CONFIG_DC=y
|
||||
# CONFIG_DEVFSD is not set
|
||||
# CONFIG_DEVFSD_MODLOAD is not set
|
||||
# CONFIG_DEVFSD_FG_NP is not set
|
||||
# CONFIG_DEVFSD_VERBOSE is not set
|
||||
# CONFIG_FEATURE_DEVFS is not set
|
||||
# CONFIG_EJECT is not set
|
||||
# CONFIG_LAST is not set
|
||||
CONFIG_LESS=y
|
||||
# CONFIG_FEATURE_LESS_BRACKETS is not set
|
||||
# CONFIG_FEATURE_LESS_FLAGS is not set
|
||||
# CONFIG_FEATURE_LESS_FLAGCS is not set
|
||||
# CONFIG_FEATURE_LESS_MARKS is not set
|
||||
CONFIG_FEATURE_LESS_REGEXP=y
|
||||
# CONFIG_HDPARM is not set
|
||||
# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
|
||||
# CONFIG_MAKEDEVS is not set
|
||||
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
|
||||
# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
|
||||
# CONFIG_MOUNTPOINT is not set
|
||||
CONFIG_MT=y
|
||||
# CONFIG_RUNLEVEL is not set
|
||||
# CONFIG_RX is not set
|
||||
CONFIG_STRINGS=y
|
||||
# CONFIG_SETSID is not set
|
||||
# CONFIG_TASKSET is not set
|
||||
CONFIG_TIME=y
|
||||
# CONFIG_WATCHDOG is not set
|
||||
|
||||
#
|
||||
# Networking Utilities
|
||||
#
|
||||
# CONFIG_FEATURE_IPV6 is not set
|
||||
# CONFIG_ARPING is not set
|
||||
# CONFIG_DNSD is not set
|
||||
# CONFIG_ETHER_WAKE is not set
|
||||
# CONFIG_FAKEIDENTD is not set
|
||||
# CONFIG_FTPGET is not set
|
||||
# CONFIG_FTPPUT is not set
|
||||
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
|
||||
CONFIG_HOSTNAME=y
|
||||
# CONFIG_HTTPD is not set
|
||||
# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set
|
||||
# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
|
||||
# CONFIG_FEATURE_HTTPD_SETUID is not set
|
||||
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
|
||||
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
|
||||
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
|
||||
# CONFIG_FEATURE_HTTPD_CGI is not set
|
||||
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
|
||||
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
|
||||
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
|
||||
CONFIG_IFCONFIG=y
|
||||
CONFIG_FEATURE_IFCONFIG_STATUS=y
|
||||
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
|
||||
# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
|
||||
# CONFIG_FEATURE_IFCONFIG_HW is not set
|
||||
# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
|
||||
CONFIG_IFUPDOWN=y
|
||||
# CONFIG_FEATURE_IFUPDOWN_IP is not set
|
||||
CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
|
||||
CONFIG_FEATURE_IFUPDOWN_IPV4=y
|
||||
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
|
||||
# CONFIG_FEATURE_IFUPDOWN_IPX is not set
|
||||
# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
|
||||
# CONFIG_INETD is not set
|
||||
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
|
||||
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
|
||||
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
|
||||
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
|
||||
# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
|
||||
# CONFIG_FEATURE_INETD_RPC is not set
|
||||
# CONFIG_IP is not set
|
||||
# CONFIG_FEATURE_IP_ADDRESS is not set
|
||||
# CONFIG_FEATURE_IP_LINK is not set
|
||||
# CONFIG_FEATURE_IP_ROUTE is not set
|
||||
# CONFIG_FEATURE_IP_TUNNEL is not set
|
||||
# CONFIG_FEATURE_IP_SHORT_FORMS is not set
|
||||
# CONFIG_IPADDR is not set
|
||||
# CONFIG_IPLINK is not set
|
||||
# CONFIG_IPROUTE is not set
|
||||
# CONFIG_IPTUNNEL is not set
|
||||
# CONFIG_IPCALC is not set
|
||||
# CONFIG_FEATURE_IPCALC_FANCY is not set
|
||||
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
|
||||
# CONFIG_NAMEIF is not set
|
||||
# CONFIG_NC is not set
|
||||
# CONFIG_NC_GAPING_SECURITY_HOLE is not set
|
||||
CONFIG_NETSTAT=y
|
||||
CONFIG_NSLOOKUP=y
|
||||
CONFIG_PING=y
|
||||
CONFIG_FEATURE_FANCY_PING=y
|
||||
# CONFIG_PING6 is not set
|
||||
# CONFIG_FEATURE_FANCY_PING6 is not set
|
||||
CONFIG_ROUTE=y
|
||||
CONFIG_TELNET=y
|
||||
CONFIG_FEATURE_TELNET_TTYPE=y
|
||||
# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
|
||||
# CONFIG_TELNETD is not set
|
||||
# CONFIG_FEATURE_TELNETD_INETD is not set
|
||||
# CONFIG_TFTP is not set
|
||||
# CONFIG_FEATURE_TFTP_GET is not set
|
||||
# CONFIG_FEATURE_TFTP_PUT is not set
|
||||
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
|
||||
# CONFIG_DEBUG_TFTP is not set
|
||||
# CONFIG_TRACEROUTE is not set
|
||||
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
|
||||
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
|
||||
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
|
||||
|
||||
#
|
||||
# udhcp Server/Client
|
||||
#
|
||||
# CONFIG_APP_UDHCPD is not set
|
||||
CONFIG_APP_UDHCPC=y
|
||||
# CONFIG_APP_DUMPLEASES is not set
|
||||
CONFIG_FEATURE_UDHCP_SYSLOG=y
|
||||
# CONFIG_FEATURE_UDHCP_DEBUG is not set
|
||||
# CONFIG_VCONFIG is not set
|
||||
CONFIG_WGET=y
|
||||
CONFIG_FEATURE_WGET_STATUSBAR=y
|
||||
CONFIG_FEATURE_WGET_AUTHENTICATION=y
|
||||
# CONFIG_FEATURE_WGET_IP6_LITERAL is not set
|
||||
# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
|
||||
# CONFIG_ZCIP is not set
|
||||
|
||||
#
|
||||
# Process Utilities
|
||||
#
|
||||
CONFIG_FREE=y
|
||||
# CONFIG_FUSER is not set
|
||||
CONFIG_KILL=y
|
||||
CONFIG_KILLALL=y
|
||||
CONFIG_PIDOF=y
|
||||
# CONFIG_FEATURE_PIDOF_SINGLE is not set
|
||||
# CONFIG_FEATURE_PIDOF_OMIT is not set
|
||||
CONFIG_PS=y
|
||||
CONFIG_FEATURE_PS_WIDE=y
|
||||
# CONFIG_RENICE is not set
|
||||
# CONFIG_BB_SYSCTL is not set
|
||||
# CONFIG_TOP is not set
|
||||
# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
|
||||
CONFIG_UPTIME=y
|
||||
|
||||
#
|
||||
# Shells
|
||||
#
|
||||
CONFIG_FEATURE_SH_IS_ASH=y
|
||||
# CONFIG_FEATURE_SH_IS_HUSH is not set
|
||||
# CONFIG_FEATURE_SH_IS_LASH is not set
|
||||
# CONFIG_FEATURE_SH_IS_MSH is not set
|
||||
# CONFIG_FEATURE_SH_IS_NONE is not set
|
||||
CONFIG_ASH=y
|
||||
|
||||
#
|
||||
# Ash Shell Options
|
||||
#
|
||||
CONFIG_ASH_JOB_CONTROL=y
|
||||
CONFIG_ASH_READ_NCHARS=y
|
||||
CONFIG_ASH_READ_TIMEOUT=y
|
||||
CONFIG_ASH_ALIAS=y
|
||||
CONFIG_ASH_MATH_SUPPORT=y
|
||||
CONFIG_ASH_MATH_SUPPORT_64=y
|
||||
# CONFIG_ASH_GETOPTS is not set
|
||||
CONFIG_ASH_BUILTIN_ECHO=y
|
||||
CONFIG_ASH_BUILTIN_TEST=y
|
||||
# CONFIG_ASH_CMDCMD is not set
|
||||
# CONFIG_ASH_MAIL is not set
|
||||
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
|
||||
# CONFIG_ASH_RANDOM_SUPPORT is not set
|
||||
CONFIG_ASH_EXPAND_PRMT=y
|
||||
# CONFIG_HUSH is not set
|
||||
# CONFIG_LASH is not set
|
||||
# CONFIG_MSH is not set
|
||||
|
||||
#
|
||||
# Bourne Shell Options
|
||||
#
|
||||
# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
|
||||
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
|
||||
CONFIG_FEATURE_COMMAND_EDITING=y
|
||||
# CONFIG_FEATURE_COMMAND_EDITING_VI is not set
|
||||
CONFIG_FEATURE_COMMAND_HISTORY=15
|
||||
CONFIG_FEATURE_COMMAND_SAVEHISTORY=y
|
||||
CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
|
||||
# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
|
||||
CONFIG_FEATURE_SH_FANCY_PROMPT=y
|
||||
|
||||
#
|
||||
# System Logging Utilities
|
||||
#
|
||||
CONFIG_SYSLOGD=y
|
||||
CONFIG_FEATURE_ROTATE_LOGFILE=y
|
||||
# CONFIG_FEATURE_REMOTE_LOG is not set
|
||||
# CONFIG_FEATURE_IPC_SYSLOG is not set
|
||||
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
|
||||
# CONFIG_LOGREAD is not set
|
||||
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
|
||||
CONFIG_KLOGD=y
|
||||
CONFIG_LOGGER=y
|
||||
@@ -1,690 +0,0 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Busybox version: 1.5.0
|
||||
# Wed Mar 14 13:42:28 2007
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
#
|
||||
# Busybox Settings
|
||||
#
|
||||
|
||||
#
|
||||
# General Configuration
|
||||
#
|
||||
CONFIG_NITPICK=y
|
||||
CONFIG_DESKTOP=y
|
||||
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
|
||||
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
|
||||
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
|
||||
CONFIG_SHOW_USAGE=y
|
||||
CONFIG_FEATURE_VERBOSE_USAGE=y
|
||||
# CONFIG_FEATURE_COMPRESS_USAGE is not set
|
||||
CONFIG_FEATURE_INSTALLER=y
|
||||
# CONFIG_LOCALE_SUPPORT is not set
|
||||
CONFIG_GETOPT_LONG=y
|
||||
CONFIG_FEATURE_DEVPTS=y
|
||||
CONFIG_FEATURE_CLEAN_UP=y
|
||||
CONFIG_FEATURE_SUID=y
|
||||
CONFIG_FEATURE_SYSLOG=y
|
||||
# CONFIG_FEATURE_SUID_CONFIG is not set
|
||||
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
|
||||
# CONFIG_FEATURE_HAVE_RPC is not set
|
||||
# CONFIG_SELINUX is not set
|
||||
# CONFIG_FEATURE_EXEC_PREFER_APPLETS is not set
|
||||
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
|
||||
|
||||
#
|
||||
# Build Options
|
||||
#
|
||||
# CONFIG_STATIC is not set
|
||||
# CONFIG_BUILD_LIBBUSYBOX is not set
|
||||
# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
|
||||
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
|
||||
# CONFIG_LFS is not set
|
||||
CONFIG_BUILD_AT_ONCE=y
|
||||
|
||||
#
|
||||
# Debugging Options
|
||||
#
|
||||
# CONFIG_DEBUG is not set
|
||||
# CONFIG_WERROR is not set
|
||||
# CONFIG_NO_DEBUG_LIB is not set
|
||||
# CONFIG_DMALLOC is not set
|
||||
# CONFIG_EFENCE is not set
|
||||
CONFIG_INCLUDE_SUSv2=y
|
||||
|
||||
#
|
||||
# Installation Options
|
||||
#
|
||||
# CONFIG_INSTALL_NO_USR is not set
|
||||
CONFIG_INSTALL_APPLET_SYMLINKS=y
|
||||
# CONFIG_INSTALL_APPLET_HARDLINKS is not set
|
||||
# CONFIG_INSTALL_APPLET_DONT is not set
|
||||
CONFIG_PREFIX="./_install"
|
||||
|
||||
#
|
||||
# Busybox Library Tuning
|
||||
#
|
||||
CONFIG_PASSWORD_MINLEN=6
|
||||
CONFIG_MD5_SIZE_VS_SPEED=2
|
||||
CONFIG_FEATURE_EDITING=y
|
||||
CONFIG_FEATURE_EDITING_FANCY_KEYS=y
|
||||
CONFIG_FEATURE_EDITING_VI=y
|
||||
CONFIG_FEATURE_EDITING_HISTORY=999
|
||||
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
|
||||
CONFIG_FEATURE_TAB_COMPLETION=y
|
||||
# CONFIG_FEATURE_USERNAME_COMPLETION is not set
|
||||
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
|
||||
|
||||
#
|
||||
# Applets
|
||||
#
|
||||
|
||||
#
|
||||
# Archival Utilities
|
||||
#
|
||||
CONFIG_AR=y
|
||||
# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
|
||||
CONFIG_BUNZIP2=y
|
||||
CONFIG_CPIO=y
|
||||
# CONFIG_DPKG is not set
|
||||
# CONFIG_DPKG_DEB is not set
|
||||
# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
|
||||
CONFIG_GUNZIP=y
|
||||
# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
|
||||
CONFIG_GZIP=y
|
||||
# CONFIG_RPM2CPIO is not set
|
||||
# CONFIG_RPM is not set
|
||||
CONFIG_TAR=y
|
||||
CONFIG_FEATURE_TAR_CREATE=y
|
||||
CONFIG_FEATURE_TAR_BZIP2=y
|
||||
CONFIG_FEATURE_TAR_LZMA=y
|
||||
CONFIG_FEATURE_TAR_FROM=y
|
||||
CONFIG_FEATURE_TAR_GZIP=y
|
||||
# CONFIG_FEATURE_TAR_COMPRESS is not set
|
||||
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
|
||||
CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
|
||||
CONFIG_FEATURE_TAR_LONG_OPTIONS=y
|
||||
# CONFIG_UNCOMPRESS is not set
|
||||
CONFIG_UNLZMA=y
|
||||
# CONFIG_FEATURE_LZMA_FAST is not set
|
||||
CONFIG_UNZIP=y
|
||||
|
||||
#
|
||||
# Common options for cpio and tar
|
||||
#
|
||||
# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_GZ is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
|
||||
# CONFIG_FEATURE_DEB_TAR_LZMA is not set
|
||||
|
||||
#
|
||||
# Coreutils
|
||||
#
|
||||
CONFIG_BASENAME=y
|
||||
# CONFIG_CAL is not set
|
||||
CONFIG_CAT=y
|
||||
CONFIG_CATV=y
|
||||
CONFIG_CHGRP=y
|
||||
CONFIG_CHMOD=y
|
||||
CONFIG_CHOWN=y
|
||||
CONFIG_CHROOT=y
|
||||
CONFIG_CKSUM=y
|
||||
CONFIG_CMP=y
|
||||
# CONFIG_COMM is not set
|
||||
CONFIG_CP=y
|
||||
CONFIG_CUT=y
|
||||
CONFIG_DATE=y
|
||||
CONFIG_FEATURE_DATE_ISOFMT=y
|
||||
CONFIG_DD=y
|
||||
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
|
||||
CONFIG_FEATURE_DD_IBS_OBS=y
|
||||
CONFIG_DF=y
|
||||
CONFIG_DIFF=y
|
||||
CONFIG_FEATURE_DIFF_BINARY=y
|
||||
CONFIG_FEATURE_DIFF_DIR=y
|
||||
# CONFIG_FEATURE_DIFF_MINIMAL is not set
|
||||
CONFIG_DIRNAME=y
|
||||
CONFIG_DOS2UNIX=y
|
||||
CONFIG_UNIX2DOS=y
|
||||
CONFIG_DU=y
|
||||
CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
|
||||
CONFIG_ECHO=y
|
||||
CONFIG_FEATURE_FANCY_ECHO=y
|
||||
CONFIG_ENV=y
|
||||
# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
|
||||
CONFIG_EXPR=y
|
||||
CONFIG_EXPR_MATH_SUPPORT_64=y
|
||||
CONFIG_FALSE=y
|
||||
CONFIG_FOLD=y
|
||||
CONFIG_HEAD=y
|
||||
CONFIG_FEATURE_FANCY_HEAD=y
|
||||
CONFIG_HOSTID=y
|
||||
CONFIG_ID=y
|
||||
CONFIG_INSTALL=y
|
||||
CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
|
||||
CONFIG_LENGTH=y
|
||||
CONFIG_LN=y
|
||||
CONFIG_LOGNAME=y
|
||||
CONFIG_LS=y
|
||||
CONFIG_FEATURE_LS_FILETYPES=y
|
||||
CONFIG_FEATURE_LS_FOLLOWLINKS=y
|
||||
CONFIG_FEATURE_LS_RECURSIVE=y
|
||||
CONFIG_FEATURE_LS_SORTFILES=y
|
||||
CONFIG_FEATURE_LS_TIMESTAMPS=y
|
||||
CONFIG_FEATURE_LS_USERNAME=y
|
||||
CONFIG_FEATURE_LS_COLOR=y
|
||||
CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
|
||||
CONFIG_MD5SUM=y
|
||||
CONFIG_MKDIR=y
|
||||
CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
|
||||
CONFIG_MKFIFO=y
|
||||
CONFIG_MKNOD=y
|
||||
CONFIG_MV=y
|
||||
CONFIG_FEATURE_MV_LONG_OPTIONS=y
|
||||
CONFIG_NICE=y
|
||||
CONFIG_NOHUP=y
|
||||
CONFIG_OD=y
|
||||
CONFIG_PRINTENV=y
|
||||
CONFIG_PRINTF=y
|
||||
CONFIG_PWD=y
|
||||
CONFIG_REALPATH=y
|
||||
CONFIG_RM=y
|
||||
CONFIG_RMDIR=y
|
||||
CONFIG_SEQ=y
|
||||
CONFIG_SHA1SUM=y
|
||||
CONFIG_SLEEP=y
|
||||
# CONFIG_FEATURE_FANCY_SLEEP is not set
|
||||
CONFIG_SORT=y
|
||||
CONFIG_FEATURE_SORT_BIG=y
|
||||
# CONFIG_STAT is not set
|
||||
# CONFIG_FEATURE_STAT_FORMAT is not set
|
||||
CONFIG_STTY=y
|
||||
# CONFIG_SUM is not set
|
||||
CONFIG_SYNC=y
|
||||
CONFIG_TAIL=y
|
||||
CONFIG_FEATURE_FANCY_TAIL=y
|
||||
CONFIG_TEE=y
|
||||
CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
|
||||
CONFIG_TEST=y
|
||||
CONFIG_FEATURE_TEST_64=y
|
||||
CONFIG_TOUCH=y
|
||||
CONFIG_TR=y
|
||||
CONFIG_FEATURE_TR_CLASSES=y
|
||||
CONFIG_FEATURE_TR_EQUIV=y
|
||||
CONFIG_TRUE=y
|
||||
CONFIG_TTY=y
|
||||
CONFIG_UNAME=y
|
||||
CONFIG_UNIQ=y
|
||||
CONFIG_USLEEP=y
|
||||
CONFIG_UUDECODE=y
|
||||
CONFIG_UUENCODE=y
|
||||
CONFIG_WATCH=y
|
||||
CONFIG_WC=y
|
||||
# CONFIG_FEATURE_WC_LARGE is not set
|
||||
CONFIG_WHO=y
|
||||
CONFIG_WHOAMI=y
|
||||
CONFIG_YES=y
|
||||
|
||||
#
|
||||
# Common options for cp and mv
|
||||
#
|
||||
CONFIG_FEATURE_PRESERVE_HARDLINKS=y
|
||||
|
||||
#
|
||||
# Common options for ls, more and telnet
|
||||
#
|
||||
CONFIG_FEATURE_AUTOWIDTH=y
|
||||
|
||||
#
|
||||
# Common options for df, du, ls
|
||||
#
|
||||
CONFIG_FEATURE_HUMAN_READABLE=y
|
||||
|
||||
#
|
||||
# Common options for md5sum, sha1sum
|
||||
#
|
||||
CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
|
||||
|
||||
#
|
||||
# Console Utilities
|
||||
#
|
||||
CONFIG_CHVT=y
|
||||
CONFIG_CLEAR=y
|
||||
CONFIG_DEALLOCVT=y
|
||||
CONFIG_DUMPKMAP=y
|
||||
CONFIG_LOADFONT=y
|
||||
CONFIG_LOADKMAP=y
|
||||
CONFIG_OPENVT=y
|
||||
CONFIG_RESET=y
|
||||
CONFIG_RESIZE=y
|
||||
CONFIG_FEATURE_RESIZE_PRINT=y
|
||||
CONFIG_SETCONSOLE=y
|
||||
# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
|
||||
CONFIG_SETKEYCODES=y
|
||||
CONFIG_SETLOGCONS=y
|
||||
|
||||
#
|
||||
# Debian Utilities
|
||||
#
|
||||
CONFIG_MKTEMP=y
|
||||
CONFIG_PIPE_PROGRESS=y
|
||||
CONFIG_READLINK=y
|
||||
CONFIG_FEATURE_READLINK_FOLLOW=y
|
||||
CONFIG_RUN_PARTS=y
|
||||
CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
|
||||
CONFIG_START_STOP_DAEMON=y
|
||||
CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
|
||||
CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
|
||||
CONFIG_WHICH=y
|
||||
|
||||
#
|
||||
# Editors
|
||||
#
|
||||
CONFIG_AWK=y
|
||||
CONFIG_FEATURE_AWK_MATH=y
|
||||
# CONFIG_ED is not set
|
||||
CONFIG_PATCH=y
|
||||
CONFIG_SED=y
|
||||
CONFIG_VI=y
|
||||
CONFIG_FEATURE_VI_COLON=y
|
||||
CONFIG_FEATURE_VI_YANKMARK=y
|
||||
CONFIG_FEATURE_VI_SEARCH=y
|
||||
CONFIG_FEATURE_VI_USE_SIGNALS=y
|
||||
CONFIG_FEATURE_VI_DOT_CMD=y
|
||||
CONFIG_FEATURE_VI_READONLY=y
|
||||
CONFIG_FEATURE_VI_SETOPTS=y
|
||||
CONFIG_FEATURE_VI_SET=y
|
||||
CONFIG_FEATURE_VI_WIN_RESIZE=y
|
||||
CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
|
||||
CONFIG_FEATURE_ALLOW_EXEC=y
|
||||
|
||||
#
|
||||
# Finding Utilities
|
||||
#
|
||||
CONFIG_FIND=y
|
||||
CONFIG_FEATURE_FIND_PRINT0=y
|
||||
CONFIG_FEATURE_FIND_MTIME=y
|
||||
CONFIG_FEATURE_FIND_MMIN=y
|
||||
CONFIG_FEATURE_FIND_PERM=y
|
||||
CONFIG_FEATURE_FIND_TYPE=y
|
||||
CONFIG_FEATURE_FIND_XDEV=y
|
||||
CONFIG_FEATURE_FIND_NEWER=y
|
||||
# CONFIG_FEATURE_FIND_INUM is not set
|
||||
CONFIG_FEATURE_FIND_EXEC=y
|
||||
CONFIG_FEATURE_FIND_USER=y
|
||||
CONFIG_FEATURE_FIND_NOT=y
|
||||
CONFIG_GREP=y
|
||||
CONFIG_FEATURE_GREP_EGREP_ALIAS=y
|
||||
CONFIG_FEATURE_GREP_FGREP_ALIAS=y
|
||||
CONFIG_FEATURE_GREP_CONTEXT=y
|
||||
CONFIG_XARGS=y
|
||||
# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
|
||||
CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
|
||||
|
||||
#
|
||||
# Init Utilities
|
||||
#
|
||||
CONFIG_INIT=y
|
||||
# CONFIG_DEBUG_INIT is not set
|
||||
CONFIG_FEATURE_USE_INITTAB=y
|
||||
CONFIG_FEATURE_INIT_SCTTY=y
|
||||
CONFIG_FEATURE_INIT_SYSLOG=y
|
||||
CONFIG_FEATURE_EXTRA_QUIET=y
|
||||
# CONFIG_FEATURE_INIT_COREDUMPS is not set
|
||||
CONFIG_FEATURE_INITRD=y
|
||||
CONFIG_HALT=y
|
||||
CONFIG_MESG=y
|
||||
|
||||
#
|
||||
# Login/Password Management Utilities
|
||||
#
|
||||
CONFIG_FEATURE_SHADOWPASSWDS=y
|
||||
# CONFIG_USE_BB_SHADOW is not set
|
||||
# CONFIG_USE_BB_PWD_GRP is not set
|
||||
CONFIG_ADDGROUP=y
|
||||
CONFIG_DELGROUP=y
|
||||
CONFIG_ADDUSER=y
|
||||
CONFIG_DELUSER=y
|
||||
CONFIG_GETTY=y
|
||||
CONFIG_FEATURE_UTMP=y
|
||||
CONFIG_FEATURE_WTMP=y
|
||||
CONFIG_LOGIN=y
|
||||
# CONFIG_LOGIN_SCRIPTS is not set
|
||||
CONFIG_FEATURE_SECURETTY=y
|
||||
CONFIG_PASSWD=y
|
||||
CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
|
||||
CONFIG_SU=y
|
||||
CONFIG_FEATURE_SU_SYSLOG=y
|
||||
CONFIG_FEATURE_SU_CHECKS_SHELLS=y
|
||||
CONFIG_SULOGIN=y
|
||||
CONFIG_VLOCK=y
|
||||
|
||||
#
|
||||
# Linux Ext2 FS Progs
|
||||
#
|
||||
CONFIG_CHATTR=y
|
||||
CONFIG_FSCK=y
|
||||
CONFIG_LSATTR=y
|
||||
|
||||
#
|
||||
# Linux Module Utilities
|
||||
#
|
||||
CONFIG_INSMOD=y
|
||||
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
|
||||
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
|
||||
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
|
||||
CONFIG_FEATURE_INSMOD_LOAD_MAP=y
|
||||
CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL=y
|
||||
CONFIG_RMMOD=y
|
||||
CONFIG_LSMOD=y
|
||||
CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
|
||||
CONFIG_MODPROBE=y
|
||||
CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
|
||||
CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
|
||||
|
||||
#
|
||||
# Options common to multiple modutils
|
||||
#
|
||||
CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
|
||||
# CONFIG_FEATURE_2_4_MODULES is not set
|
||||
CONFIG_FEATURE_2_6_MODULES=y
|
||||
# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
|
||||
|
||||
#
|
||||
# Linux System Utilities
|
||||
#
|
||||
CONFIG_DMESG=y
|
||||
CONFIG_FEATURE_DMESG_PRETTY=y
|
||||
# CONFIG_FBSET is not set
|
||||
# CONFIG_FEATURE_FBSET_FANCY is not set
|
||||
# CONFIG_FEATURE_FBSET_READMODE is not set
|
||||
CONFIG_FDFLUSH=y
|
||||
CONFIG_FDFORMAT=y
|
||||
# CONFIG_FDISK is not set
|
||||
CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
|
||||
CONFIG_FEATURE_FDISK_WRITABLE=y
|
||||
# CONFIG_FEATURE_AIX_LABEL is not set
|
||||
# CONFIG_FEATURE_SGI_LABEL is not set
|
||||
# CONFIG_FEATURE_SUN_LABEL is not set
|
||||
# CONFIG_FEATURE_OSF_LABEL is not set
|
||||
# CONFIG_FEATURE_FDISK_ADVANCED is not set
|
||||
CONFIG_FREERAMDISK=y
|
||||
# CONFIG_FSCK_MINIX is not set
|
||||
# CONFIG_MKFS_MINIX is not set
|
||||
# CONFIG_FEATURE_MINIX2 is not set
|
||||
CONFIG_GETOPT=y
|
||||
CONFIG_HEXDUMP=y
|
||||
CONFIG_HWCLOCK=y
|
||||
CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
|
||||
CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
|
||||
CONFIG_IPCRM=y
|
||||
CONFIG_IPCS=y
|
||||
CONFIG_LOSETUP=y
|
||||
CONFIG_MDEV=y
|
||||
CONFIG_FEATURE_MDEV_CONF=y
|
||||
CONFIG_FEATURE_MDEV_EXEC=y
|
||||
CONFIG_MKSWAP=y
|
||||
# CONFIG_FEATURE_MKSWAP_V0 is not set
|
||||
CONFIG_MORE=y
|
||||
CONFIG_FEATURE_USE_TERMIOS=y
|
||||
CONFIG_MOUNT=y
|
||||
# CONFIG_FEATURE_MOUNT_NFS is not set
|
||||
CONFIG_FEATURE_MOUNT_CIFS=y
|
||||
CONFIG_FEATURE_MOUNT_FLAGS=y
|
||||
CONFIG_FEATURE_MOUNT_FSTAB=y
|
||||
CONFIG_PIVOT_ROOT=y
|
||||
CONFIG_RDATE=y
|
||||
CONFIG_READPROFILE=y
|
||||
CONFIG_SETARCH=y
|
||||
CONFIG_SWAPONOFF=y
|
||||
CONFIG_SWITCH_ROOT=y
|
||||
CONFIG_UMOUNT=y
|
||||
CONFIG_FEATURE_UMOUNT_ALL=y
|
||||
|
||||
#
|
||||
# Common options for mount/umount
|
||||
#
|
||||
CONFIG_FEATURE_MOUNT_LOOP=y
|
||||
# CONFIG_FEATURE_MTAB_SUPPORT is not set
|
||||
|
||||
#
|
||||
# Miscellaneous Utilities
|
||||
#
|
||||
# CONFIG_ADJTIMEX is not set
|
||||
# CONFIG_BBCONFIG is not set
|
||||
CONFIG_CHRT=y
|
||||
CONFIG_CROND=y
|
||||
CONFIG_DEBUG_CROND_OPTION=y
|
||||
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
|
||||
CONFIG_CRONTAB=y
|
||||
CONFIG_DC=y
|
||||
# CONFIG_DEVFSD is not set
|
||||
# CONFIG_DEVFSD_MODLOAD is not set
|
||||
# CONFIG_DEVFSD_FG_NP is not set
|
||||
# CONFIG_DEVFSD_VERBOSE is not set
|
||||
# CONFIG_FEATURE_DEVFS is not set
|
||||
CONFIG_EJECT=y
|
||||
CONFIG_LAST=y
|
||||
CONFIG_LESS=y
|
||||
CONFIG_FEATURE_LESS_MAXLINES=9999999
|
||||
CONFIG_FEATURE_LESS_BRACKETS=y
|
||||
CONFIG_FEATURE_LESS_FLAGS=y
|
||||
CONFIG_FEATURE_LESS_FLAGCS=y
|
||||
# CONFIG_FEATURE_LESS_MARKS is not set
|
||||
CONFIG_FEATURE_LESS_REGEXP=y
|
||||
CONFIG_HDPARM=y
|
||||
CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
|
||||
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
|
||||
CONFIG_MAKEDEVS=y
|
||||
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
|
||||
CONFIG_FEATURE_MAKEDEVS_TABLE=y
|
||||
CONFIG_MOUNTPOINT=y
|
||||
CONFIG_MT=y
|
||||
# CONFIG_NMETER is not set
|
||||
# CONFIG_RAIDAUTORUN is not set
|
||||
# CONFIG_READAHEAD is not set
|
||||
CONFIG_RUNLEVEL=y
|
||||
# CONFIG_RX is not set
|
||||
CONFIG_STRINGS=y
|
||||
CONFIG_SETSID=y
|
||||
# CONFIG_TASKSET is not set
|
||||
CONFIG_FEATURE_TASKSET_FANCY=y
|
||||
CONFIG_TIME=y
|
||||
CONFIG_WATCHDOG=y
|
||||
|
||||
#
|
||||
# Networking Utilities
|
||||
#
|
||||
# CONFIG_FEATURE_IPV6 is not set
|
||||
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
|
||||
# CONFIG_ARP is not set
|
||||
CONFIG_ARPING=y
|
||||
CONFIG_DNSD=y
|
||||
CONFIG_ETHER_WAKE=y
|
||||
# CONFIG_FAKEIDENTD is not set
|
||||
# CONFIG_FTPGET is not set
|
||||
# CONFIG_FTPPUT is not set
|
||||
# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
|
||||
CONFIG_HOSTNAME=y
|
||||
# CONFIG_HTTPD is not set
|
||||
# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
|
||||
# CONFIG_FEATURE_HTTPD_SETUID is not set
|
||||
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
|
||||
# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
|
||||
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
|
||||
# CONFIG_FEATURE_HTTPD_CGI is not set
|
||||
# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
|
||||
# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
|
||||
# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
|
||||
CONFIG_IFCONFIG=y
|
||||
CONFIG_FEATURE_IFCONFIG_STATUS=y
|
||||
CONFIG_FEATURE_IFCONFIG_SLIP=y
|
||||
CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
|
||||
CONFIG_FEATURE_IFCONFIG_HW=y
|
||||
# CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
|
||||
CONFIG_IFUPDOWN=y
|
||||
CONFIG_FEATURE_IFUPDOWN_IP=y
|
||||
# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
|
||||
# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
|
||||
CONFIG_FEATURE_IFUPDOWN_IPV4=y
|
||||
# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
|
||||
# CONFIG_FEATURE_IFUPDOWN_IPX is not set
|
||||
CONFIG_FEATURE_IFUPDOWN_MAPPING=y
|
||||
CONFIG_INETD=y
|
||||
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO=y
|
||||
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD=y
|
||||
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME=y
|
||||
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y
|
||||
CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y
|
||||
# CONFIG_FEATURE_INETD_RPC is not set
|
||||
CONFIG_IP=y
|
||||
CONFIG_FEATURE_IP_ADDRESS=y
|
||||
CONFIG_FEATURE_IP_LINK=y
|
||||
CONFIG_FEATURE_IP_ROUTE=y
|
||||
CONFIG_FEATURE_IP_TUNNEL=y
|
||||
CONFIG_FEATURE_IP_RULE=y
|
||||
CONFIG_FEATURE_IP_SHORT_FORMS=y
|
||||
CONFIG_IPADDR=y
|
||||
CONFIG_IPLINK=y
|
||||
CONFIG_IPROUTE=y
|
||||
CONFIG_IPTUNNEL=y
|
||||
CONFIG_IPRULE=y
|
||||
# CONFIG_IPCALC is not set
|
||||
# CONFIG_FEATURE_IPCALC_FANCY is not set
|
||||
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
|
||||
CONFIG_NAMEIF=y
|
||||
# CONFIG_NC is not set
|
||||
# CONFIG_NC_SERVER is not set
|
||||
# CONFIG_NC_EXTRA is not set
|
||||
CONFIG_NETSTAT=y
|
||||
CONFIG_NSLOOKUP=y
|
||||
CONFIG_PING=y
|
||||
# CONFIG_PING6 is not set
|
||||
CONFIG_FEATURE_FANCY_PING=y
|
||||
CONFIG_ROUTE=y
|
||||
CONFIG_TELNET=y
|
||||
CONFIG_FEATURE_TELNET_TTYPE=y
|
||||
CONFIG_FEATURE_TELNET_AUTOLOGIN=y
|
||||
# CONFIG_TELNETD is not set
|
||||
# CONFIG_FEATURE_TELNETD_STANDALONE is not set
|
||||
CONFIG_TFTP=y
|
||||
CONFIG_FEATURE_TFTP_GET=y
|
||||
CONFIG_FEATURE_TFTP_PUT=y
|
||||
CONFIG_FEATURE_TFTP_BLOCKSIZE=y
|
||||
# CONFIG_DEBUG_TFTP is not set
|
||||
CONFIG_TRACEROUTE=y
|
||||
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
|
||||
# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
|
||||
# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
|
||||
CONFIG_APP_UDHCPD=y
|
||||
CONFIG_APP_DHCPRELAY=y
|
||||
CONFIG_APP_DUMPLEASES=y
|
||||
CONFIG_APP_UDHCPC=y
|
||||
CONFIG_FEATURE_UDHCP_SYSLOG=y
|
||||
# CONFIG_FEATURE_UDHCP_DEBUG is not set
|
||||
# CONFIG_FEATURE_RFC3397 is not set
|
||||
CONFIG_VCONFIG=y
|
||||
CONFIG_WGET=y
|
||||
CONFIG_FEATURE_WGET_STATUSBAR=y
|
||||
CONFIG_FEATURE_WGET_AUTHENTICATION=y
|
||||
CONFIG_FEATURE_WGET_LONG_OPTIONS=y
|
||||
# CONFIG_ZCIP is not set
|
||||
|
||||
#
|
||||
# Process Utilities
|
||||
#
|
||||
CONFIG_FREE=y
|
||||
CONFIG_FUSER=y
|
||||
CONFIG_KILL=y
|
||||
CONFIG_KILLALL=y
|
||||
CONFIG_KILLALL5=y
|
||||
CONFIG_PIDOF=y
|
||||
CONFIG_FEATURE_PIDOF_SINGLE=y
|
||||
CONFIG_FEATURE_PIDOF_OMIT=y
|
||||
CONFIG_PS=y
|
||||
CONFIG_FEATURE_PS_WIDE=y
|
||||
CONFIG_RENICE=y
|
||||
CONFIG_BB_SYSCTL=y
|
||||
CONFIG_TOP=y
|
||||
CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
|
||||
CONFIG_UPTIME=y
|
||||
|
||||
#
|
||||
# Shells
|
||||
#
|
||||
CONFIG_FEATURE_SH_IS_ASH=y
|
||||
# CONFIG_FEATURE_SH_IS_HUSH is not set
|
||||
# CONFIG_FEATURE_SH_IS_LASH is not set
|
||||
# CONFIG_FEATURE_SH_IS_MSH is not set
|
||||
# CONFIG_FEATURE_SH_IS_NONE is not set
|
||||
CONFIG_ASH=y
|
||||
|
||||
#
|
||||
# Ash Shell Options
|
||||
#
|
||||
CONFIG_ASH_JOB_CONTROL=y
|
||||
CONFIG_ASH_READ_NCHARS=y
|
||||
CONFIG_ASH_READ_TIMEOUT=y
|
||||
CONFIG_ASH_ALIAS=y
|
||||
CONFIG_ASH_MATH_SUPPORT=y
|
||||
CONFIG_ASH_MATH_SUPPORT_64=y
|
||||
# CONFIG_ASH_GETOPTS is not set
|
||||
CONFIG_ASH_BUILTIN_ECHO=y
|
||||
CONFIG_ASH_BUILTIN_TEST=y
|
||||
CONFIG_ASH_CMDCMD=y
|
||||
# CONFIG_ASH_MAIL is not set
|
||||
CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
|
||||
CONFIG_ASH_RANDOM_SUPPORT=y
|
||||
CONFIG_ASH_EXPAND_PRMT=y
|
||||
# CONFIG_HUSH is not set
|
||||
# CONFIG_LASH is not set
|
||||
# CONFIG_MSH is not set
|
||||
|
||||
#
|
||||
# Bourne Shell Options
|
||||
#
|
||||
CONFIG_FEATURE_SH_EXTRA_QUIET=y
|
||||
# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
|
||||
|
||||
#
|
||||
# System Logging Utilities
|
||||
#
|
||||
CONFIG_SYSLOGD=y
|
||||
CONFIG_FEATURE_ROTATE_LOGFILE=y
|
||||
CONFIG_FEATURE_REMOTE_LOG=y
|
||||
# CONFIG_FEATURE_IPC_SYSLOG is not set
|
||||
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
|
||||
# CONFIG_LOGREAD is not set
|
||||
# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
|
||||
CONFIG_KLOGD=y
|
||||
CONFIG_LOGGER=y
|
||||
|
||||
#
|
||||
# Runit Utilities
|
||||
#
|
||||
# CONFIG_RUNSV is not set
|
||||
# CONFIG_RUNSVDIR is not set
|
||||
# CONFIG_SV is not set
|
||||
# CONFIG_SVLOGD is not set
|
||||
# CONFIG_CHPST is not set
|
||||
# CONFIG_SETUIDGID is not set
|
||||
# CONFIG_ENVUIDGID is not set
|
||||
# CONFIG_ENVDIR is not set
|
||||
# CONFIG_SOFTLIMIT is not set
|
||||
# CONFIG_CHCON is not set
|
||||
# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
|
||||
# CONFIG_GETENFORCE is not set
|
||||
# CONFIG_GETSEBOOL is not set
|
||||
# CONFIG_MATCHPATHCON is not set
|
||||
# CONFIG_RUNCON is not set
|
||||
# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
|
||||
# CONFIG_SELINUXENABLED is not set
|
||||
# CONFIG_SETENFORCE is not set
|
||||
@@ -46,14 +46,8 @@ $(BUSYBOX_DIR)/.config: $(BUSYBOX_DIR)/.unpacked $(BUSYBOX_CONFIG_FILE)
|
||||
cp -f $(BUSYBOX_CONFIG_FILE) $(BUSYBOX_DIR)/.config
|
||||
$(SED) s,^CONFIG_PREFIX=.*,CONFIG_PREFIX=\"$(TARGET_DIR)\", \
|
||||
$(BUSYBOX_DIR)/.config
|
||||
ifeq ($(BR2_BUSYBOX_VERSION_1_2_2_1),y)
|
||||
$(SED) s,^CROSS_COMPILER_PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
|
||||
$(BUSYBOX_DIR)/.config
|
||||
$(SED) s,^PREFIX=.*,CROSS_COMPILER_PREFIX=\"$(TARGET_CROSS)\", \
|
||||
$(BUSYBOX_DIR)/.config
|
||||
endif
|
||||
# id applet breaks on 1.13.0 with old uclibc unless the bb pwd routines are used
|
||||
ifeq ($(BR2_BUSYBOX_VERSION_1_13_X)$(BR2_UCLIBC_VERSION_0_9_28_3)$(BR2_UCLIBC_VERSION_0_9_29),yy)
|
||||
# id applet breaks on >=1.13.0 with old uclibc unless the bb pwd routines are used
|
||||
ifeq ($(BR2_BUSYBOX_VERSION_1_13_X)$(BR2_BUSYBOX_VERSION_1_14_X)$(BR2_UCLIBC_VERSION_0_9_28_3)$(BR2_UCLIBC_VERSION_0_9_29),yy)
|
||||
if grep -q 'CONFIG_ID=y' $(BUSYBOX_DIR)/.config; \
|
||||
then \
|
||||
echo 'warning: CONFIG_ID needs BB_PWD_GRP with old uclibc, enabling' >&2;\
|
||||
@@ -78,6 +72,11 @@ ifeq ($(BR2_INET_IPV6),y)
|
||||
else
|
||||
$(SED) "s/^.*CONFIG_FEATURE_IPV6.*/CONFIG_FEATURE_IPV6=n/;" $(BUSYBOX_DIR)/.config
|
||||
endif
|
||||
ifeq ($(BR2_INET_RPC),y)
|
||||
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=y/;" $(BUSYBOX_DIR)/.config
|
||||
else
|
||||
$(SED) "s/^.*CONFIG_FEATURE_MOUNT_NFS.*/CONFIG_FEATURE_MOUNT_NFS=n/;" $(BUSYBOX_DIR)/.config
|
||||
endif
|
||||
ifeq ($(BR2_PACKAGE_BUSYBOX_SKELETON),y)
|
||||
# force mdev on
|
||||
$(SED) "s/^.*CONFIG_MDEV.*/CONFIG_MDEV=y/" $(BUSYBOX_DIR)/.config
|
||||
|
||||
@@ -111,11 +111,11 @@ $(BB_INITRAMFS_TARGET): host-fakeroot $(BR2_INITRAMFS_DIR)/bin/busybox
|
||||
$(PROJECT_BUILD_DIR)/initramfs/etc/inittab
|
||||
rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
|
||||
(echo "chown -R 0:0 $(PROJECT_BUILD_DIR)/initramfs"; \
|
||||
echo "$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \
|
||||
echo "$(HOST_DIR)/usr/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(PROJECT_BUILD_DIR)/initramfs"; \
|
||||
echo "$(SHELL) target/initramfs/gen_initramfs_list.sh -u 0 -g 0 $(PROJECT_BUILD_DIR)/initramfs > $(BB_INITRAMFS_TARGET)"; \
|
||||
) > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
|
||||
chmod +x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
|
||||
$(STAGING_DIR)/usr/bin/fakeroot -- \
|
||||
$(HOST_DIR)/usr/bin/fakeroot -- \
|
||||
$(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
|
||||
rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(BB_INITRAMFS_TARGET))
|
||||
touch -c $@
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
config BR2_PACKAGE_CAIRO
|
||||
bool "cairo"
|
||||
select BR2_PACKAGE_PKGCONFIG
|
||||
select BR2_PACKAGE_LIBPNG
|
||||
select BR2_PACKAGE_ZLIB
|
||||
select BR2_PACKAGE_PIXMAN
|
||||
select BR2_PACKAGE_FONTCONFIG
|
||||
depends on BR2_PACKAGE_XORG||BR2_PACKAGE_XORG7||BR2_PACKAGE_TINYX||BR2_PACKAGE_DIRECTFB
|
||||
help
|
||||
Cairo is a 2D graphics library with support for multiple
|
||||
output devices. Currently supported output targets include
|
||||
@@ -14,3 +10,24 @@ config BR2_PACKAGE_CAIRO
|
||||
OpenGL (through glitz), Quartz, and XCB.
|
||||
|
||||
http://cairographics.org/
|
||||
|
||||
if BR2_PACKAGE_CAIRO
|
||||
|
||||
config BR2_PACKAGE_CAIRO_PS
|
||||
bool "postscript support"
|
||||
select BR2_PACKAGE_ZLIB
|
||||
|
||||
config BR2_PACKAGE_CAIRO_PDF
|
||||
bool "pdf support"
|
||||
select BR2_PACKAGE_ZLIB
|
||||
|
||||
config BR2_PACKAGE_CAIRO_PNG
|
||||
bool "png support"
|
||||
select BR2_PACKAGE_LIBPNG
|
||||
select BR2_PACKAGE_ZLIB
|
||||
|
||||
config BR2_PACKAGE_CAIRO_SVG
|
||||
bool "svg support"
|
||||
select BR2_PACKAGE_CAIRO_PNG
|
||||
|
||||
endif
|
||||
|
||||
@@ -9,7 +9,6 @@ CAIRO_SITE = http://cairographics.org/releases
|
||||
CAIRO_AUTORECONF = NO
|
||||
CAIRO_INSTALL_STAGING = YES
|
||||
CAIRO_INSTALL_TARGET = YES
|
||||
CAIRO_INSTALL_STAGING_OPT = DESTDIR=$(STAGING_DIR) install
|
||||
|
||||
CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
|
||||
glib_cv_uscore=no ac_cv_func_strtod=yes \
|
||||
@@ -38,15 +37,98 @@ CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
|
||||
am_getline_needs_run_time_check=no am_cv_func_working_getline=yes \
|
||||
gl_cv_func_mkdir_trailing_slash_bug=no gl_cv_func_mkstemp_limitations=no \
|
||||
ac_cv_func_working_mktime=yes jm_cv_func_working_re_compile_pattern=yes \
|
||||
ac_use_included_regex=no gl_cv_c_restrict=no \
|
||||
ac_cv_path_GLIB_GENMARSHAL=$(HOST_GLIB)/bin/glib-genmarshal
|
||||
ac_use_included_regex=no gl_cv_c_restrict=no
|
||||
|
||||
CAIRO_DEPENDENCIES = uclibc host-pkgconfig fontconfig pixman
|
||||
|
||||
ifeq ($(BR2_PACKAGE_DIRECTFB),y)
|
||||
CAIRO_CONF_OPT = --disable-xlib --without-x --enable-directfb
|
||||
CAIRO_DEPENDENCIES_EXTRA = directfb
|
||||
CAIRO_CONF_OPT += --enable-directfb
|
||||
CAIRO_DEPENDENCIES += directfb
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-directfb
|
||||
endif
|
||||
|
||||
CAIRO_DEPENDENCIES = uclibc gettext libintl pkgconfig zlib libpng fontconfig $(CAIRO_DEPENDENCIES_EXTRA) pixman $(XSERVER)
|
||||
ifeq ($(BR2_PACKAGE_XORG7),y)
|
||||
CAIRO_CONF_OPT += --enable-xlib --with-x
|
||||
CAIRO_DEPENDENCIES += xserver_xorg-server
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-xlib --without-x
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_CAIRO_PS),y)
|
||||
CAIRO_CONF_OPT += --enable-ps
|
||||
CAIRO_DEPENDENCIES += zlib
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-ps
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_CAIRO_PDF),y)
|
||||
CAIRO_CONF_OPT += --enable-pdf
|
||||
CAIRO_DEPENDENCIES += zlib
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-pdf
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_CAIRO_PNG),y)
|
||||
CAIRO_CONF_OPT += --enable-png
|
||||
CAIRO_DEPENDENCIES += libpng
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-png
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_CAIRO_SVG),y)
|
||||
CAIRO_CONF_OPT += --enable-svg
|
||||
else
|
||||
CAIRO_CONF_OPT += --disable-svg
|
||||
endif
|
||||
|
||||
$(eval $(call AUTOTARGETS,package,cairo))
|
||||
|
||||
# cairo for the host
|
||||
CAIRO_HOST_DIR:=$(BUILD_DIR)/cairo-$(CAIRO_VERSION)-host
|
||||
|
||||
$(DL_DIR)/$(CAIRO_SOURCE):
|
||||
$(call DOWNLOAD,$(CAIRO_SITE),$(CAIRO_SOURCE))
|
||||
|
||||
$(STAMP_DIR)/host_cairo_unpacked: $(DL_DIR)/$(CAIRO_SOURCE)
|
||||
mkdir -p $(CAIRO_HOST_DIR)
|
||||
$(INFLATE$(suffix $(CAIRO_SOURCE))) $< | \
|
||||
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(CAIRO_HOST_DIR) $(TAR_OPTIONS) -
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_cairo_configured: $(STAMP_DIR)/host_cairo_unpacked $(STAMP_DIR)/host_pkgconfig_installed $(STAMP_DIR)/host_fontconfig_installed $(STAMP_DIR)/host_pixman_installed
|
||||
(cd $(CAIRO_HOST_DIR); rm -rf config.cache; \
|
||||
$(HOST_CONFIGURE_OPTS) \
|
||||
CFLAGS="$(HOST_CFLAGS)" \
|
||||
LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
./configure \
|
||||
--prefix="$(HOST_DIR)/usr" \
|
||||
--sysconfdir="$(HOST_DIR)/etc" \
|
||||
--enable-ps \
|
||||
--enable-pdf \
|
||||
--enable-xlib \
|
||||
--with-x \
|
||||
--disable-png \
|
||||
--disable-svg \
|
||||
)
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_cairo_compiled: $(STAMP_DIR)/host_cairo_configured
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR)
|
||||
touch $@
|
||||
|
||||
$(STAMP_DIR)/host_cairo_installed: $(STAMP_DIR)/host_cairo_compiled
|
||||
$(HOST_MAKE_ENV) $(MAKE) -C $(CAIRO_HOST_DIR) install
|
||||
touch $@
|
||||
|
||||
host-cairo: $(STAMP_DIR)/host_cairo_installed
|
||||
|
||||
host-cairo-source: cairo-source
|
||||
|
||||
host-cairo-clean:
|
||||
rm -f $(addprefix $(STAMP_DIR)/host_cairo_,unpacked configured compiled installed)
|
||||
-$(MAKE) -C $(CAIRO_HOST_DIR) uninstall
|
||||
-$(MAKE) -C $(CAIRO_HOST_DIR) clean
|
||||
|
||||
host-cairo-dirclean:
|
||||
rm -rf $(CAIRO_HOST_DIR)
|
||||
|
||||
10
package/config/.gitignore
vendored
Normal file
10
package/config/.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/buildroot-config
|
||||
/conf
|
||||
/mconf
|
||||
/qconf
|
||||
/qconf.moc
|
||||
/.tmp_qtcheck
|
||||
/lkc_defs.h
|
||||
/lex.zconf.c
|
||||
/zconf.hash.c
|
||||
/zconf.tab.c
|
||||
@@ -14,7 +14,10 @@ __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
|
||||
host-csingle := $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
|
||||
host-cmulti := $(foreach m,$(__hostprogs),\
|
||||
$(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
|
||||
host-cxxmulti := $(foreach m,$(__hostprogs),\
|
||||
$(if $($(m)-cxxobjs),$(m),$(if $($(m)-objs),)))
|
||||
host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
|
||||
host-cxxobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-cxxobjs)))
|
||||
|
||||
$(host-csingle): %: %.c
|
||||
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $< $(HOST_LOADLIBES) -o $@
|
||||
@@ -22,9 +25,15 @@ $(host-csingle): %: %.c
|
||||
$(host-cmulti): %: $(host-cobjs) $(host-cshlib)
|
||||
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $(HOST_LOADLIBES) -o $@
|
||||
|
||||
$(host-cxxmulti): %: $(host-cxxobjs) $(host-cobjs) $(host-cshlib)
|
||||
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) $($@-objs) $($@-cxxobjs) $(HOSTLOADLIBES_$@) -o $@
|
||||
|
||||
$(host-cobjs): %.o: %.c
|
||||
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCFLAGS_$@) -c $< -o $@
|
||||
|
||||
$(host-cxxobjs): %.o: %.cc
|
||||
$(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS) $(HOSTCXXFLAGS_$@) -c $< -o $@
|
||||
|
||||
$(obj)/%:: $(src)/%_shipped
|
||||
$(Q)cat $< > $@
|
||||
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
|
||||
PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
|
||||
|
||||
ifdef KBUILD_KCONFIG
|
||||
Kconfig := $(KBUILD_KCONFIG)
|
||||
else
|
||||
Kconfig := arch/$(SRCARCH)/Kconfig
|
||||
endif
|
||||
|
||||
xconfig: $(obj)/qconf
|
||||
$< $(Kconfig)
|
||||
@@ -24,22 +28,25 @@ oldconfig: $(obj)/conf
|
||||
silentoldconfig: $(obj)/conf
|
||||
$< -s $(Kconfig)
|
||||
|
||||
# Create new linux.po file
|
||||
# Create new linux.pot file
|
||||
# Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
|
||||
# The symlink is used to repair a deficiency in arch/um
|
||||
update-po-config: $(obj)/kxgettext
|
||||
xgettext --default-domain=linux \
|
||||
update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
|
||||
$(Q)echo " GEN config"
|
||||
$(Q)xgettext --default-domain=linux \
|
||||
--add-comments --keyword=_ --keyword=N_ \
|
||||
--from-code=UTF-8 \
|
||||
--files-from=scripts/kconfig/POTFILES.in \
|
||||
--output $(obj)/config.pot
|
||||
$(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
|
||||
$(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
|
||||
(for i in `ls arch/`; \
|
||||
do \
|
||||
$(obj)/kxgettext arch/$$i/Kconfig; \
|
||||
done ) >> $(obj)/config.pot
|
||||
msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
|
||||
$(Q)(for i in `ls arch/*/Kconfig`; \
|
||||
do \
|
||||
echo " GEN $$i"; \
|
||||
$(obj)/kxgettext $$i \
|
||||
>> $(obj)/config.pot; \
|
||||
done )
|
||||
$(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
|
||||
--output $(obj)/linux.pot
|
||||
$(Q)rm -f arch/um/Kconfig.arch
|
||||
$(Q)rm -f $(obj)/config.pot
|
||||
@@ -76,7 +83,7 @@ help:
|
||||
@echo ' xconfig - Update current config utilising a QT based front-end'
|
||||
@echo ' gconfig - Update current config utilising a GTK based front-end'
|
||||
@echo ' oldconfig - Update current config utilising a provided .config as base'
|
||||
@echo ' silentoldconfig - Same as oldconfig, but quietly'
|
||||
@echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
|
||||
@echo ' randconfig - New config with random answer to all options'
|
||||
@echo ' defconfig - New config with default answer to all options'
|
||||
@echo ' allmodconfig - New config selecting modules when possible'
|
||||
@@ -93,17 +100,11 @@ HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
|
||||
|
||||
HOST_EXTRACFLAGS += -DLOCALE
|
||||
|
||||
PHONY += $(obj)/dochecklxdialog
|
||||
$(obj)/dochecklxdialog:
|
||||
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
|
||||
|
||||
always := dochecklxdialog
|
||||
|
||||
|
||||
# ===========================================================================
|
||||
# Shared Makefile for the various kconfig executables:
|
||||
# conf: Used for defconfig, oldconfig and related targets
|
||||
# mconf: Used for the mconfig target.
|
||||
# mconf: Used for the menuconfig target
|
||||
# Utilizes the lxdialog package
|
||||
# qconf: Used for the xconfig target
|
||||
# Based on QT which needs to be installed to compile it
|
||||
@@ -124,12 +125,16 @@ ifeq ($(MAKECMDGOALS),menuconfig)
|
||||
hostprogs-y += mconf
|
||||
endif
|
||||
ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
|
||||
hostprogs-y += mconf
|
||||
hostprogs-y += mconf
|
||||
endif
|
||||
|
||||
ifeq ($(MAKECMDGOALS),xconfig)
|
||||
qconf-target := 1
|
||||
endif
|
||||
ifeq ($(findstring qconf,$(MAKECMDGOALS)),qconf)
|
||||
qconf-target := 1
|
||||
endif
|
||||
|
||||
ifeq ($(MAKECMDGOALS),gconfig)
|
||||
gconf-target := 1
|
||||
endif
|
||||
@@ -145,8 +150,17 @@ gconf-objs := gconf.o kconfig_load.o zconf.tab.o
|
||||
endif
|
||||
|
||||
clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
|
||||
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c
|
||||
.tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
|
||||
clean-files += mconf qconf gconf
|
||||
clean-files += config.pot linux.pot
|
||||
|
||||
# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
|
||||
PHONY += $(obj)/dochecklxdialog
|
||||
$(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
|
||||
$(obj)/dochecklxdialog:
|
||||
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
|
||||
|
||||
always := dochecklxdialog
|
||||
|
||||
# Add environment specific flags
|
||||
HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
|
||||
@@ -184,8 +198,8 @@ $(obj)/.tmp_qtcheck:
|
||||
done; \
|
||||
if [ -z "$$dir" ]; then \
|
||||
echo "*"; \
|
||||
echo "* Unable to find the QT installation. Please make sure that"; \
|
||||
echo "* the QT development package is correctly installed and"; \
|
||||
echo "* Unable to find the QT3 installation. Please make sure that"; \
|
||||
echo "* the QT3 development package is correctly installed and"; \
|
||||
echo "* either install pkg-config or set the QTDIR environment"; \
|
||||
echo "* variable to the correct location."; \
|
||||
echo "*"; \
|
||||
@@ -251,6 +265,9 @@ $(obj)/%.moc: $(src)/%.h
|
||||
$(obj)/lkc_defs.h: $(src)/lkc_proto.h
|
||||
sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
|
||||
|
||||
# Extract gconf menu items for I18N support
|
||||
$(obj)/gconf.glade.h: $(obj)/gconf.glade
|
||||
intltool-extract --type=gettext/glade $(obj)/gconf.glade
|
||||
|
||||
###
|
||||
# The following requires flex/bison/gperf
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
scripts/kconfig/lxdialog/checklist.c
|
||||
scripts/kconfig/lxdialog/inputbox.c
|
||||
scripts/kconfig/lxdialog/menubox.c
|
||||
scripts/kconfig/lxdialog/textbox.c
|
||||
scripts/kconfig/lxdialog/util.c
|
||||
scripts/kconfig/lxdialog/yesno.c
|
||||
scripts/kconfig/mconf.c
|
||||
scripts/kconfig/conf.c
|
||||
scripts/kconfig/confdata.c
|
||||
scripts/kconfig/gconf.c
|
||||
scripts/kconfig/gconf.glade.h
|
||||
scripts/kconfig/qconf.cc
|
||||
|
||||
@@ -3,13 +3,15 @@
|
||||
* Released under the terms of the GNU GPL v2.0.
|
||||
*/
|
||||
|
||||
#include <locale.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
@@ -31,6 +33,7 @@ char *defconfig_file;
|
||||
|
||||
static int indent = 1;
|
||||
static int valid_stdin = 1;
|
||||
static int sync_kconfig;
|
||||
static int conf_cnt;
|
||||
static char line[128];
|
||||
static struct menu *rootEntry;
|
||||
@@ -40,7 +43,7 @@ static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"
|
||||
static const char *get_help(struct menu *menu)
|
||||
{
|
||||
if (menu_has_help(menu))
|
||||
return menu_get_help(menu);
|
||||
return _(menu_get_help(menu));
|
||||
else
|
||||
return nohelp_text;
|
||||
}
|
||||
@@ -64,7 +67,7 @@ static void strip(char *str)
|
||||
|
||||
static void check_stdin(void)
|
||||
{
|
||||
if (!valid_stdin && input_mode == ask_silent) {
|
||||
if (!valid_stdin) {
|
||||
printf(_("aborted!\n\n"));
|
||||
printf(_("Console input/output is redirected. "));
|
||||
printf(_("Run 'make oldconfig' to update configuration.\n\n"));
|
||||
@@ -75,10 +78,9 @@ static void check_stdin(void)
|
||||
static int conf_askvalue(struct symbol *sym, const char *def)
|
||||
{
|
||||
enum symbol_type type = sym_get_type(sym);
|
||||
tristate val;
|
||||
|
||||
if (!sym_has_value(sym))
|
||||
printf("(NEW) ");
|
||||
printf(_("(NEW) "));
|
||||
|
||||
line[0] = '\n';
|
||||
line[1] = 0;
|
||||
@@ -91,15 +93,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
|
||||
}
|
||||
|
||||
switch (input_mode) {
|
||||
case set_no:
|
||||
case set_mod:
|
||||
case set_yes:
|
||||
case set_random:
|
||||
if (sym_has_value(sym)) {
|
||||
printf("%s\n", def);
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
case ask_new:
|
||||
case ask_silent:
|
||||
if (sym_has_value(sym)) {
|
||||
@@ -111,9 +104,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
|
||||
fflush(stdout);
|
||||
fgets(line, 128, stdin);
|
||||
return 1;
|
||||
case set_default:
|
||||
printf("%s\n", def);
|
||||
return 1;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -127,52 +117,6 @@ static int conf_askvalue(struct symbol *sym, const char *def)
|
||||
default:
|
||||
;
|
||||
}
|
||||
switch (input_mode) {
|
||||
case set_yes:
|
||||
if (sym_tristate_within_range(sym, yes)) {
|
||||
line[0] = 'y';
|
||||
line[1] = '\n';
|
||||
line[2] = 0;
|
||||
break;
|
||||
}
|
||||
case set_mod:
|
||||
if (type == S_TRISTATE) {
|
||||
if (sym_tristate_within_range(sym, mod)) {
|
||||
line[0] = 'm';
|
||||
line[1] = '\n';
|
||||
line[2] = 0;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (sym_tristate_within_range(sym, yes)) {
|
||||
line[0] = 'y';
|
||||
line[1] = '\n';
|
||||
line[2] = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
case set_no:
|
||||
if (sym_tristate_within_range(sym, no)) {
|
||||
line[0] = 'n';
|
||||
line[1] = '\n';
|
||||
line[2] = 0;
|
||||
break;
|
||||
}
|
||||
case set_random:
|
||||
do {
|
||||
val = (tristate)(random() % 3);
|
||||
} while (!sym_tristate_within_range(sym, val));
|
||||
switch (val) {
|
||||
case no: line[0] = 'n'; break;
|
||||
case mod: line[0] = 'm'; break;
|
||||
case yes: line[0] = 'y'; break;
|
||||
}
|
||||
line[1] = '\n';
|
||||
line[2] = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
printf("%s", line);
|
||||
return 1;
|
||||
}
|
||||
@@ -183,7 +127,7 @@ int conf_string(struct menu *menu)
|
||||
const char *def;
|
||||
|
||||
while (1) {
|
||||
printf("%*s%s ", indent - 1, "", menu->prompt->text);
|
||||
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
|
||||
printf("(%s) ", sym->name);
|
||||
def = sym_get_string_value(sym);
|
||||
if (sym_get_string_value(sym))
|
||||
@@ -216,7 +160,7 @@ static int conf_sym(struct menu *menu)
|
||||
tristate oldval, newval;
|
||||
|
||||
while (1) {
|
||||
printf("%*s%s ", indent - 1, "", menu->prompt->text);
|
||||
printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
|
||||
if (sym->name)
|
||||
printf("(%s) ", sym->name);
|
||||
type = sym_get_type(sym);
|
||||
@@ -306,7 +250,7 @@ static int conf_choice(struct menu *menu)
|
||||
case no:
|
||||
return 1;
|
||||
case mod:
|
||||
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
|
||||
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
|
||||
return 0;
|
||||
case yes:
|
||||
break;
|
||||
@@ -316,7 +260,7 @@ static int conf_choice(struct menu *menu)
|
||||
while (1) {
|
||||
int cnt, def;
|
||||
|
||||
printf("%*s%s\n", indent - 1, "", menu_get_prompt(menu));
|
||||
printf("%*s%s\n", indent - 1, "", _(menu_get_prompt(menu)));
|
||||
def_sym = sym_get_choice_value(sym);
|
||||
cnt = def = 0;
|
||||
line[0] = 0;
|
||||
@@ -324,7 +268,7 @@ static int conf_choice(struct menu *menu)
|
||||
if (!menu_is_visible(child))
|
||||
continue;
|
||||
if (!child->sym) {
|
||||
printf("%*c %s\n", indent, '*', menu_get_prompt(child));
|
||||
printf("%*c %s\n", indent, '*', _(menu_get_prompt(child)));
|
||||
continue;
|
||||
}
|
||||
cnt++;
|
||||
@@ -333,14 +277,14 @@ static int conf_choice(struct menu *menu)
|
||||
printf("%*c", indent, '>');
|
||||
} else
|
||||
printf("%*c", indent, ' ');
|
||||
printf(" %d. %s", cnt, menu_get_prompt(child));
|
||||
printf(" %d. %s", cnt, _(menu_get_prompt(child)));
|
||||
if (child->sym->name)
|
||||
printf(" (%s)", child->sym->name);
|
||||
if (!sym_has_value(child->sym))
|
||||
printf(" (NEW)");
|
||||
printf(_(" (NEW)"));
|
||||
printf("\n");
|
||||
}
|
||||
printf("%*schoice", indent - 1, "");
|
||||
printf(_("%*schoice"), indent - 1, "");
|
||||
if (cnt == 1) {
|
||||
printf("[1]: 1\n");
|
||||
goto conf_childs;
|
||||
@@ -373,15 +317,7 @@ static int conf_choice(struct menu *menu)
|
||||
else
|
||||
continue;
|
||||
break;
|
||||
case set_random:
|
||||
if (is_new)
|
||||
def = (random() % cnt) + 1;
|
||||
case set_default:
|
||||
case set_yes:
|
||||
case set_mod:
|
||||
case set_no:
|
||||
cnt = def;
|
||||
printf("%d\n", cnt);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -399,9 +335,9 @@ static int conf_choice(struct menu *menu)
|
||||
continue;
|
||||
}
|
||||
sym_set_choice_value(sym, child->sym);
|
||||
if (child->list) {
|
||||
for (child = child->list; child; child = child->next) {
|
||||
indent += 2;
|
||||
conf(child->list);
|
||||
conf(child);
|
||||
indent -= 2;
|
||||
}
|
||||
return 1;
|
||||
@@ -433,7 +369,7 @@ static void conf(struct menu *menu)
|
||||
if (prompt)
|
||||
printf("%*c\n%*c %s\n%*c\n",
|
||||
indent, '*',
|
||||
indent, '*', prompt,
|
||||
indent, '*', _(prompt),
|
||||
indent, '*');
|
||||
default:
|
||||
;
|
||||
@@ -495,30 +431,29 @@ static void check_conf(struct menu *menu)
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
int i = 1;
|
||||
int opt;
|
||||
const char *name;
|
||||
struct stat tmpstat;
|
||||
|
||||
if (ac > i && av[i][0] == '-') {
|
||||
switch (av[i++][1]) {
|
||||
setlocale(LC_ALL, "");
|
||||
bindtextdomain(PACKAGE, LOCALEDIR);
|
||||
textdomain(PACKAGE);
|
||||
|
||||
while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
|
||||
switch (opt) {
|
||||
case 'o':
|
||||
input_mode = ask_new;
|
||||
input_mode = ask_silent;
|
||||
break;
|
||||
case 's':
|
||||
input_mode = ask_silent;
|
||||
valid_stdin = isatty(0) && isatty(1) && isatty(2);
|
||||
sync_kconfig = 1;
|
||||
break;
|
||||
case 'd':
|
||||
input_mode = set_default;
|
||||
break;
|
||||
case 'D':
|
||||
input_mode = set_default;
|
||||
defconfig_file = av[i++];
|
||||
if (!defconfig_file) {
|
||||
printf(_("%s: No default config file specified\n"),
|
||||
av[0]);
|
||||
exit(1);
|
||||
}
|
||||
defconfig_file = optarg;
|
||||
break;
|
||||
case 'n':
|
||||
input_mode = set_no;
|
||||
@@ -530,44 +465,63 @@ int main(int ac, char **av)
|
||||
input_mode = set_yes;
|
||||
break;
|
||||
case 'r':
|
||||
{
|
||||
struct timeval now;
|
||||
unsigned int seed;
|
||||
|
||||
/*
|
||||
* Use microseconds derived seed,
|
||||
* compensate for systems where it may be zero
|
||||
*/
|
||||
gettimeofday(&now, NULL);
|
||||
|
||||
seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
|
||||
srand(seed);
|
||||
|
||||
input_mode = set_random;
|
||||
srandom(time(NULL));
|
||||
break;
|
||||
}
|
||||
case 'h':
|
||||
case '?':
|
||||
fprintf(stderr, "See README for usage info\n");
|
||||
printf(_("See README for usage info\n"));
|
||||
exit(0);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, _("See README for usage info\n"));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
name = av[i];
|
||||
if (!name) {
|
||||
if (ac == optind) {
|
||||
printf(_("%s: Kconfig file missing\n"), av[0]);
|
||||
exit(1);
|
||||
}
|
||||
name = av[optind];
|
||||
conf_parse(name);
|
||||
/*zconfdump(stdout);*/
|
||||
if (sync_kconfig) {
|
||||
name = conf_get_configname();
|
||||
if (stat(name, &tmpstat)) {
|
||||
fprintf(stderr, _("***\n"
|
||||
"*** You have not yet configured Buildroot!\n"
|
||||
"*** (missing .config file \"%s\")\n"
|
||||
"***\n"
|
||||
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
|
||||
"*** \"make menuconfig\" or \"make xconfig\").\n"
|
||||
"***\n"), name);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
switch (input_mode) {
|
||||
case set_default:
|
||||
if (!defconfig_file)
|
||||
defconfig_file = conf_get_default_confname();
|
||||
if (conf_read(defconfig_file)) {
|
||||
printf("***\n"
|
||||
printf(_("***\n"
|
||||
"*** Can't find default configuration \"%s\"!\n"
|
||||
"***\n", defconfig_file);
|
||||
"***\n"), defconfig_file);
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
case ask_silent:
|
||||
if (stat(".config", &tmpstat)) {
|
||||
printf(_("***\n"
|
||||
"*** You have not yet configured Buildroot!\n"
|
||||
"*** (missing .config file)\n"
|
||||
"***\n"
|
||||
"*** Please run some configurator (e.g. \"make oldconfig\" or\n"
|
||||
"*** \"make menuconfig\" or \"make config\").\n"
|
||||
"***\n"));
|
||||
exit(1);
|
||||
}
|
||||
case ask_all:
|
||||
case ask_new:
|
||||
conf_read(NULL);
|
||||
@@ -597,35 +551,66 @@ int main(int ac, char **av)
|
||||
break;
|
||||
}
|
||||
|
||||
if (input_mode != ask_silent) {
|
||||
if (sync_kconfig) {
|
||||
if (conf_get_changed()) {
|
||||
name = getenv("KCONFIG_NOSILENTUPDATE");
|
||||
if (name && *name) {
|
||||
fprintf(stderr,
|
||||
_("\n*** Buildroot configuration requires explicit update.\n\n"));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
valid_stdin = isatty(0) && isatty(1) && isatty(2);
|
||||
}
|
||||
|
||||
switch (input_mode) {
|
||||
case set_no:
|
||||
conf_set_all_new_symbols(def_no);
|
||||
break;
|
||||
case set_yes:
|
||||
conf_set_all_new_symbols(def_yes);
|
||||
break;
|
||||
case set_mod:
|
||||
conf_set_all_new_symbols(def_mod);
|
||||
break;
|
||||
case set_random:
|
||||
conf_set_all_new_symbols(def_random);
|
||||
break;
|
||||
case set_default:
|
||||
conf_set_all_new_symbols(def_default);
|
||||
break;
|
||||
case ask_new:
|
||||
case ask_all:
|
||||
rootEntry = &rootmenu;
|
||||
conf(&rootmenu);
|
||||
if (input_mode == ask_all) {
|
||||
input_mode = ask_silent;
|
||||
valid_stdin = 1;
|
||||
input_mode = ask_silent;
|
||||
/* fall through */
|
||||
case ask_silent:
|
||||
/* Update until a loop caused no more changes */
|
||||
do {
|
||||
conf_cnt = 0;
|
||||
check_conf(&rootmenu);
|
||||
} while (conf_cnt);
|
||||
break;
|
||||
}
|
||||
|
||||
if (sync_kconfig) {
|
||||
/* silentoldconfig is used during the build so we shall update autoconf.
|
||||
* All other commands are only used to generate a config.
|
||||
*/
|
||||
if (conf_get_changed() && conf_write(NULL)) {
|
||||
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
|
||||
exit(1);
|
||||
}
|
||||
} else if (conf_get_changed()) {
|
||||
name = getenv("KCONFIG_NOSILENTUPDATE");
|
||||
if (name && *name) {
|
||||
fprintf(stderr, _("\n*** Buildroot configuration requires explicit update.\n\n"));
|
||||
if (conf_write_autoconf()) {
|
||||
fprintf(stderr, _("\n*** Error during update of the Buildroot configuration.\n\n"));
|
||||
return 1;
|
||||
}
|
||||
} else
|
||||
goto skip_check;
|
||||
|
||||
do {
|
||||
conf_cnt = 0;
|
||||
check_conf(&rootmenu);
|
||||
} while (conf_cnt);
|
||||
if (conf_write(NULL)) {
|
||||
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
|
||||
return 1;
|
||||
} else {
|
||||
if (conf_write(NULL)) {
|
||||
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
skip_check:
|
||||
if (/*input_mode == ask_silent &&*/ conf_write_autoconf()) {
|
||||
fprintf(stderr, _("\n*** Error during writing of the Buildroot configuration.\n\n"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -42,6 +42,13 @@ const char *conf_get_configname(void)
|
||||
return name ? name : ".config";
|
||||
}
|
||||
|
||||
const char *conf_get_autoconfig_name(void)
|
||||
{
|
||||
char *name = getenv("BUILDROOT_AUTOCONFIG");
|
||||
|
||||
return name ? name : "$(BR2_DEPENDS_DIR)/config/auto.conf";
|
||||
}
|
||||
|
||||
static char *conf_expand_value(const char *in)
|
||||
{
|
||||
struct symbol *sym;
|
||||
@@ -224,7 +231,7 @@ load:
|
||||
if (def == S_DEF_USER) {
|
||||
sym = sym_find(line + 2);
|
||||
if (!sym) {
|
||||
conf_warning("trying to assign nonexistent symbol %s", line + 2);
|
||||
sym_add_change_count(1);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@@ -233,8 +240,7 @@ load:
|
||||
sym->type = S_BOOLEAN;
|
||||
}
|
||||
if (sym->flags & def_flags) {
|
||||
conf_warning("trying to reassign symbol %s", sym->name);
|
||||
break;
|
||||
conf_warning("override: reassigning to symbol %s", sym->name);
|
||||
}
|
||||
switch (sym->type) {
|
||||
case S_BOOLEAN:
|
||||
@@ -260,7 +266,7 @@ load:
|
||||
if (def == S_DEF_USER) {
|
||||
sym = sym_find(line);
|
||||
if (!sym) {
|
||||
conf_warning("trying to assign nonexistent symbol %s", line);
|
||||
sym_add_change_count(1);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@@ -269,8 +275,7 @@ load:
|
||||
sym->type = S_OTHER;
|
||||
}
|
||||
if (sym->flags & def_flags) {
|
||||
conf_warning("trying to reassign symbol %s", sym->name);
|
||||
break;
|
||||
conf_warning("override: reassigning to symbol %s", sym->name);
|
||||
}
|
||||
if (conf_set_sym_val(sym, def, def_flags, p))
|
||||
continue;
|
||||
@@ -294,14 +299,12 @@ load:
|
||||
}
|
||||
break;
|
||||
case yes:
|
||||
if (cs->def[def].tri != no) {
|
||||
conf_warning("%s creates inconsistent choice state", sym->name);
|
||||
cs->flags &= ~def_flags;
|
||||
} else
|
||||
cs->def[def].val = sym;
|
||||
if (cs->def[def].tri != no)
|
||||
conf_warning("override: %s changes choice state", sym->name);
|
||||
cs->def[def].val = sym;
|
||||
break;
|
||||
}
|
||||
cs->def[def].tri = E_OR(cs->def[def].tri, sym->def[def].tri);
|
||||
cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
|
||||
}
|
||||
}
|
||||
fclose(in);
|
||||
@@ -313,7 +316,7 @@ load:
|
||||
|
||||
int conf_read(const char *name)
|
||||
{
|
||||
struct symbol *sym;
|
||||
struct symbol *sym, *choice_sym;
|
||||
struct property *prop;
|
||||
struct expr *e;
|
||||
int i, flags;
|
||||
@@ -354,9 +357,9 @@ int conf_read(const char *name)
|
||||
*/
|
||||
prop = sym_get_choice_prop(sym);
|
||||
flags = sym->flags;
|
||||
for (e = prop->expr; e; e = e->left.expr)
|
||||
if (e->right.sym->visible != no)
|
||||
flags &= e->right.sym->flags;
|
||||
expr_list_for_each_sym(prop->expr, e, choice_sym)
|
||||
if (choice_sym->visible != no)
|
||||
flags &= choice_sym->flags;
|
||||
sym->flags &= flags | ~SYMBOL_DEF_USER;
|
||||
}
|
||||
|
||||
@@ -554,15 +557,15 @@ int conf_write(const char *name)
|
||||
|
||||
int conf_split_config(void)
|
||||
{
|
||||
char *name, path[128], *opwd, *dir, *_name;
|
||||
const char *name;
|
||||
char path[128];
|
||||
char *opwd, *dir, *_name;
|
||||
char *s, *d, c;
|
||||
struct symbol *sym;
|
||||
struct stat sb;
|
||||
int res, i, fd;
|
||||
|
||||
name = getenv("KCONFIG_AUTOCONFIG");
|
||||
if (!name)
|
||||
name = "include/config/auto.conf";
|
||||
name = conf_get_autoconfig_name();
|
||||
conf_read_simple(name, S_DEF_AUTO);
|
||||
|
||||
opwd = malloc(256);
|
||||
@@ -683,7 +686,7 @@ int conf_write_autoconf(void)
|
||||
{
|
||||
struct symbol *sym;
|
||||
const char *str;
|
||||
char *name;
|
||||
const char *name;
|
||||
FILE *out, *out_h;
|
||||
time_t now;
|
||||
int i, l;
|
||||
@@ -783,9 +786,7 @@ int conf_write_autoconf(void)
|
||||
name = "include/linux/autoconf.h";
|
||||
if (rename(".tmpconfig.h", name))
|
||||
return 1;
|
||||
name = getenv("KCONFIG_AUTOCONFIG");
|
||||
if (!name)
|
||||
name = "include/config/auto.conf";
|
||||
name = conf_get_autoconfig_name();
|
||||
/*
|
||||
* This must be the last step, kbuild has a dependency on auto.conf
|
||||
* and this marks the successful completion of the previous steps.
|
||||
@@ -822,3 +823,93 @@ void conf_set_changed_callback(void (*fn)(void))
|
||||
{
|
||||
conf_changed_callback = fn;
|
||||
}
|
||||
|
||||
|
||||
void conf_set_all_new_symbols(enum conf_def_mode mode)
|
||||
{
|
||||
struct symbol *sym, *csym;
|
||||
struct property *prop;
|
||||
struct expr *e;
|
||||
int i, cnt, def;
|
||||
|
||||
for_all_symbols(i, sym) {
|
||||
if (sym_has_value(sym))
|
||||
continue;
|
||||
switch (sym_get_type(sym)) {
|
||||
case S_BOOLEAN:
|
||||
case S_TRISTATE:
|
||||
switch (mode) {
|
||||
case def_yes:
|
||||
sym->def[S_DEF_USER].tri = yes;
|
||||
break;
|
||||
case def_mod:
|
||||
sym->def[S_DEF_USER].tri = mod;
|
||||
break;
|
||||
case def_no:
|
||||
sym->def[S_DEF_USER].tri = no;
|
||||
break;
|
||||
case def_random:
|
||||
sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
if (!(sym_is_choice(sym) && mode == def_random))
|
||||
sym->flags |= SYMBOL_DEF_USER;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
sym_clear_all_valid();
|
||||
|
||||
if (mode != def_random)
|
||||
return;
|
||||
/*
|
||||
* We have different type of choice blocks.
|
||||
* If curr.tri equal to mod then we can select several
|
||||
* choice symbols in one block.
|
||||
* In this case we do nothing.
|
||||
* If curr.tri equal yes then only one symbol can be
|
||||
* selected in a choice block and we set it to yes,
|
||||
* and the rest to no.
|
||||
*/
|
||||
for_all_symbols(i, csym) {
|
||||
if (sym_has_value(csym) || !sym_is_choice(csym))
|
||||
continue;
|
||||
|
||||
sym_calc_value(csym);
|
||||
|
||||
if (csym->curr.tri != yes)
|
||||
continue;
|
||||
|
||||
prop = sym_get_choice_prop(csym);
|
||||
|
||||
/* count entries in choice block */
|
||||
cnt = 0;
|
||||
expr_list_for_each_sym(prop->expr, e, sym)
|
||||
cnt++;
|
||||
|
||||
/*
|
||||
* find a random value and set it to yes,
|
||||
* set the rest to no so we have only one set
|
||||
*/
|
||||
def = (rand() % cnt);
|
||||
|
||||
cnt = 0;
|
||||
expr_list_for_each_sym(prop->expr, e, sym) {
|
||||
if (def == cnt++) {
|
||||
sym->def[S_DEF_USER].tri = yes;
|
||||
csym->def[S_DEF_USER].val = sym;
|
||||
}
|
||||
else {
|
||||
sym->def[S_DEF_USER].tri = no;
|
||||
}
|
||||
}
|
||||
csym->flags |= SYMBOL_DEF_USER;
|
||||
/* clear VALID to get value calculated */
|
||||
csym->flags &= ~(SYMBOL_VALID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ struct expr *expr_copy(struct expr *org)
|
||||
break;
|
||||
case E_AND:
|
||||
case E_OR:
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
e->left.expr = expr_copy(org->left.expr);
|
||||
e->right.expr = expr_copy(org->right.expr);
|
||||
break;
|
||||
@@ -217,7 +217,7 @@ int expr_eq(struct expr *e1, struct expr *e2)
|
||||
expr_free(e2);
|
||||
trans_count = old_count;
|
||||
return res;
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
case E_RANGE:
|
||||
case E_NONE:
|
||||
/* panic */;
|
||||
@@ -648,7 +648,7 @@ struct expr *expr_transform(struct expr *e)
|
||||
case E_EQUAL:
|
||||
case E_UNEQUAL:
|
||||
case E_SYMBOL:
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
break;
|
||||
default:
|
||||
e->left.expr = expr_transform(e->left.expr);
|
||||
@@ -932,7 +932,7 @@ struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symb
|
||||
break;
|
||||
case E_SYMBOL:
|
||||
return expr_alloc_comp(type, e->left.sym, sym);
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
case E_RANGE:
|
||||
case E_NONE:
|
||||
/* panic */;
|
||||
@@ -955,14 +955,14 @@ tristate expr_calc_value(struct expr *e)
|
||||
case E_AND:
|
||||
val1 = expr_calc_value(e->left.expr);
|
||||
val2 = expr_calc_value(e->right.expr);
|
||||
return E_AND(val1, val2);
|
||||
return EXPR_AND(val1, val2);
|
||||
case E_OR:
|
||||
val1 = expr_calc_value(e->left.expr);
|
||||
val2 = expr_calc_value(e->right.expr);
|
||||
return E_OR(val1, val2);
|
||||
return EXPR_OR(val1, val2);
|
||||
case E_NOT:
|
||||
val1 = expr_calc_value(e->left.expr);
|
||||
return E_NOT(val1);
|
||||
return EXPR_NOT(val1);
|
||||
case E_EQUAL:
|
||||
sym_calc_value(e->left.sym);
|
||||
sym_calc_value(e->right.sym);
|
||||
@@ -1000,9 +1000,9 @@ int expr_compare_type(enum expr_type t1, enum expr_type t2)
|
||||
if (t2 == E_OR)
|
||||
return 1;
|
||||
case E_OR:
|
||||
if (t2 == E_CHOICE)
|
||||
if (t2 == E_LIST)
|
||||
return 1;
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
if (t2 == 0)
|
||||
return 1;
|
||||
default:
|
||||
@@ -1034,12 +1034,18 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
|
||||
expr_print(e->left.expr, fn, data, E_NOT);
|
||||
break;
|
||||
case E_EQUAL:
|
||||
fn(data, e->left.sym, e->left.sym->name);
|
||||
if (e->left.sym->name)
|
||||
fn(data, e->left.sym, e->left.sym->name);
|
||||
else
|
||||
fn(data, NULL, "<choice>");
|
||||
fn(data, NULL, "=");
|
||||
fn(data, e->right.sym, e->right.sym->name);
|
||||
break;
|
||||
case E_UNEQUAL:
|
||||
fn(data, e->left.sym, e->left.sym->name);
|
||||
if (e->left.sym->name)
|
||||
fn(data, e->left.sym, e->left.sym->name);
|
||||
else
|
||||
fn(data, NULL, "<choice>");
|
||||
fn(data, NULL, "!=");
|
||||
fn(data, e->right.sym, e->right.sym->name);
|
||||
break;
|
||||
@@ -1053,11 +1059,11 @@ void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *
|
||||
fn(data, NULL, " && ");
|
||||
expr_print(e->right.expr, fn, data, E_AND);
|
||||
break;
|
||||
case E_CHOICE:
|
||||
case E_LIST:
|
||||
fn(data, e->right.sym, e->right.sym->name);
|
||||
if (e->left.expr) {
|
||||
fn(data, NULL, " ^ ");
|
||||
expr_print(e->left.expr, fn, data, E_CHOICE);
|
||||
expr_print(e->left.expr, fn, data, E_LIST);
|
||||
}
|
||||
break;
|
||||
case E_RANGE:
|
||||
|
||||
@@ -25,14 +25,13 @@ struct file {
|
||||
|
||||
#define FILE_BUSY 0x0001
|
||||
#define FILE_SCANNED 0x0002
|
||||
#define FILE_PRINTED 0x0004
|
||||
|
||||
typedef enum tristate {
|
||||
no, mod, yes
|
||||
} tristate;
|
||||
|
||||
enum expr_type {
|
||||
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_CHOICE, E_SYMBOL, E_RANGE
|
||||
E_NONE, E_OR, E_AND, E_NOT, E_EQUAL, E_UNEQUAL, E_LIST, E_SYMBOL, E_RANGE
|
||||
};
|
||||
|
||||
union expr_data {
|
||||
@@ -45,9 +44,12 @@ struct expr {
|
||||
union expr_data left, right;
|
||||
};
|
||||
|
||||
#define E_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
|
||||
#define E_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
|
||||
#define E_NOT(dep) (2-(dep))
|
||||
#define EXPR_OR(dep1, dep2) (((dep1)>(dep2))?(dep1):(dep2))
|
||||
#define EXPR_AND(dep1, dep2) (((dep1)<(dep2))?(dep1):(dep2))
|
||||
#define EXPR_NOT(dep) (2-(dep))
|
||||
|
||||
#define expr_list_for_each_sym(l, e, s) \
|
||||
for (e = (l); e && (s = e->right.sym); e = e->left.expr)
|
||||
|
||||
struct expr_value {
|
||||
struct expr *expr;
|
||||
@@ -63,9 +65,13 @@ enum symbol_type {
|
||||
S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
|
||||
};
|
||||
|
||||
/* enum values are used as index to symbol.def[] */
|
||||
enum {
|
||||
S_DEF_USER, /* main user value */
|
||||
S_DEF_AUTO
|
||||
S_DEF_AUTO, /* values read from auto.conf */
|
||||
S_DEF_DEF3, /* Reserved for UI usage */
|
||||
S_DEF_DEF4, /* Reserved for UI usage */
|
||||
S_DEF_COUNT
|
||||
};
|
||||
|
||||
struct symbol {
|
||||
@@ -73,7 +79,7 @@ struct symbol {
|
||||
char *name;
|
||||
enum symbol_type type;
|
||||
struct symbol_value curr;
|
||||
struct symbol_value def[4];
|
||||
struct symbol_value def[S_DEF_COUNT];
|
||||
tristate visible;
|
||||
int flags;
|
||||
struct property *prop;
|
||||
@@ -82,42 +88,64 @@ struct symbol {
|
||||
|
||||
#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
|
||||
|
||||
#define SYMBOL_CONST 0x0001
|
||||
#define SYMBOL_CHECK 0x0008
|
||||
#define SYMBOL_CHOICE 0x0010
|
||||
#define SYMBOL_CHOICEVAL 0x0020
|
||||
#define SYMBOL_PRINTED 0x0040
|
||||
#define SYMBOL_VALID 0x0080
|
||||
#define SYMBOL_OPTIONAL 0x0100
|
||||
#define SYMBOL_WRITE 0x0200
|
||||
#define SYMBOL_CHANGED 0x0400
|
||||
#define SYMBOL_AUTO 0x1000
|
||||
#define SYMBOL_CHECKED 0x2000
|
||||
#define SYMBOL_WARNED 0x8000
|
||||
#define SYMBOL_DEF 0x10000
|
||||
#define SYMBOL_DEF_USER 0x10000
|
||||
#define SYMBOL_DEF_AUTO 0x20000
|
||||
#define SYMBOL_DEF3 0x40000
|
||||
#define SYMBOL_DEF4 0x80000
|
||||
#define SYMBOL_CONST 0x0001 /* symbol is const */
|
||||
#define SYMBOL_CHECK 0x0008 /* used during dependency checking */
|
||||
#define SYMBOL_CHOICE 0x0010 /* start of a choice block (null name) */
|
||||
#define SYMBOL_CHOICEVAL 0x0020 /* used as a value in a choice block */
|
||||
#define SYMBOL_VALID 0x0080 /* set when symbol.curr is calculated */
|
||||
#define SYMBOL_OPTIONAL 0x0100 /* choice is optional - values can be 'n' */
|
||||
#define SYMBOL_WRITE 0x0200 /* ? */
|
||||
#define SYMBOL_CHANGED 0x0400 /* ? */
|
||||
#define SYMBOL_AUTO 0x1000 /* value from environment variable */
|
||||
#define SYMBOL_CHECKED 0x2000 /* used during dependency checking */
|
||||
#define SYMBOL_WARNED 0x8000 /* warning has been issued */
|
||||
|
||||
/* Set when symbol.def[] is used */
|
||||
#define SYMBOL_DEF 0x10000 /* First bit of SYMBOL_DEF */
|
||||
#define SYMBOL_DEF_USER 0x10000 /* symbol.def[S_DEF_USER] is valid */
|
||||
#define SYMBOL_DEF_AUTO 0x20000 /* symbol.def[S_DEF_AUTO] is valid */
|
||||
#define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */
|
||||
#define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */
|
||||
|
||||
#define SYMBOL_MAXLENGTH 256
|
||||
#define SYMBOL_HASHSIZE 257
|
||||
#define SYMBOL_HASHMASK 0xff
|
||||
|
||||
/* A property represent the config options that can be associated
|
||||
* with a config "symbol".
|
||||
* Sample:
|
||||
* config FOO
|
||||
* default y
|
||||
* prompt "foo prompt"
|
||||
* select BAR
|
||||
* config BAZ
|
||||
* int "BAZ Value"
|
||||
* range 1..255
|
||||
*/
|
||||
enum prop_type {
|
||||
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE
|
||||
P_UNKNOWN,
|
||||
P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
|
||||
P_COMMENT, /* text associated with a comment */
|
||||
P_MENU, /* prompt associated with a menuconfig option */
|
||||
P_DEFAULT, /* default y */
|
||||
P_CHOICE, /* choice value */
|
||||
P_SELECT, /* select BAR */
|
||||
P_RANGE, /* range 7..100 (for a symbol) */
|
||||
P_ENV, /* value from environment variable */
|
||||
};
|
||||
|
||||
struct property {
|
||||
struct property *next;
|
||||
struct symbol *sym;
|
||||
enum prop_type type;
|
||||
const char *text;
|
||||
struct property *next; /* next property - null if last */
|
||||
struct symbol *sym; /* the symbol for which the property is associated */
|
||||
enum prop_type type; /* type of property */
|
||||
const char *text; /* the prompt value - P_PROMPT, P_MENU, P_COMMENT */
|
||||
struct expr_value visible;
|
||||
struct expr *expr;
|
||||
struct menu *menu;
|
||||
struct file *file;
|
||||
int lineno;
|
||||
struct expr *expr; /* the optional conditional part of the property */
|
||||
struct menu *menu; /* the menu the property are associated with
|
||||
* valid for: P_SELECT, P_RANGE, P_CHOICE,
|
||||
* P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT */
|
||||
struct file *file; /* what file was this property defined */
|
||||
int lineno; /* what lineno was this property defined */
|
||||
};
|
||||
|
||||
#define for_all_properties(sym, st, tok) \
|
||||
|
||||
@@ -119,8 +119,6 @@ const char *dbg_print_flags(int val)
|
||||
strcat(buf, "choice/");
|
||||
if (val & SYMBOL_CHOICEVAL)
|
||||
strcat(buf, "choiceval/");
|
||||
if (val & SYMBOL_PRINTED)
|
||||
strcat(buf, "printed/");
|
||||
if (val & SYMBOL_VALID)
|
||||
strcat(buf, "valid/");
|
||||
if (val & SYMBOL_OPTIONAL)
|
||||
@@ -457,14 +455,18 @@ static void text_insert_help(struct menu *menu)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
GtkTextIter start, end;
|
||||
const char *prompt = menu_get_prompt(menu);
|
||||
const char *prompt = _(menu_get_prompt(menu));
|
||||
gchar *name;
|
||||
const char *help;
|
||||
|
||||
help = _(menu_get_help(menu));
|
||||
help = menu_get_help(menu);
|
||||
|
||||
/* Gettextize if the help text not empty */
|
||||
if ((help != 0) && (help[0] != 0))
|
||||
help = _(help);
|
||||
|
||||
if (menu->sym && menu->sym->name)
|
||||
name = g_strdup_printf(_(menu->sym->name));
|
||||
name = g_strdup_printf(menu->sym->name);
|
||||
else
|
||||
name = g_strdup("");
|
||||
|
||||
@@ -1171,7 +1173,7 @@ static gchar **fill_row(struct menu *menu)
|
||||
bzero(row, sizeof(row));
|
||||
|
||||
row[COL_OPTION] =
|
||||
g_strdup_printf("%s %s", menu_get_prompt(menu),
|
||||
g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
|
||||
sym && sym_has_value(sym) ? "(NEW)" : "");
|
||||
|
||||
if (show_all && !menu_is_visible(menu))
|
||||
@@ -1221,7 +1223,7 @@ static gchar **fill_row(struct menu *menu)
|
||||
|
||||
if (def_menu)
|
||||
row[COL_VALUE] =
|
||||
g_strdup(menu_get_prompt(def_menu));
|
||||
g_strdup(_(menu_get_prompt(def_menu)));
|
||||
}
|
||||
if (sym->flags & SYMBOL_CHOICEVAL)
|
||||
row[COL_BTNRAD] = GINT_TO_POINTER(TRUE);
|
||||
|
||||
@@ -24,7 +24,7 @@ visible if its parent entry is also visible.
|
||||
Menu entries
|
||||
------------
|
||||
|
||||
Most entries define a config option, all other entries help to organize
|
||||
Most entries define a config option; all other entries help to organize
|
||||
them. A single configuration option is defined like this:
|
||||
|
||||
config MODVERSIONS
|
||||
@@ -50,7 +50,7 @@ applicable everywhere (see syntax).
|
||||
|
||||
- type definition: "bool"/"tristate"/"string"/"hex"/"int"
|
||||
Every config option must have a type. There are only two basic types:
|
||||
tristate and string, the other types are based on these two. The type
|
||||
tristate and string; the other types are based on these two. The type
|
||||
definition optionally accepts an input prompt, so these two examples
|
||||
are equivalent:
|
||||
|
||||
@@ -104,14 +104,15 @@ applicable everywhere (see syntax).
|
||||
Reverse dependencies can only be used with boolean or tristate
|
||||
symbols.
|
||||
Note:
|
||||
select is evil.... select will by brute force set a symbol
|
||||
equal to 'y' without visiting the dependencies. So abusing
|
||||
select you are able to select a symbol FOO even if FOO depends
|
||||
on BAR that is not set. In general use select only for
|
||||
non-visible symbols (no promts anywhere) and for symbols with
|
||||
no dependencies. That will limit the usefulness but on the
|
||||
other hand avoid the illegal configurations all over. kconfig
|
||||
should one day warn about such things.
|
||||
select should be used with care. select will force
|
||||
a symbol to a value without visiting the dependencies.
|
||||
By abusing select you are able to select a symbol FOO even
|
||||
if FOO depends on BAR that is not set.
|
||||
In general use select only for non-visible symbols
|
||||
(no prompts anywhere) and for symbols with no dependencies.
|
||||
That will limit the usefulness but on the other hand avoid
|
||||
the illegal configurations all over.
|
||||
kconfig should one day warn about such things.
|
||||
|
||||
- numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
|
||||
This allows to limit the range of possible input values for int
|
||||
@@ -127,6 +128,27 @@ applicable everywhere (see syntax).
|
||||
used to help visually separate configuration logic from help within
|
||||
the file as an aid to developers.
|
||||
|
||||
- misc options: "option" <symbol>[=<value>]
|
||||
Various less common options can be defined via this option syntax,
|
||||
which can modify the behaviour of the menu entry and its config
|
||||
symbol. These options are currently possible:
|
||||
|
||||
- "defconfig_list"
|
||||
This declares a list of default entries which can be used when
|
||||
looking for the default configuration (which is used when the main
|
||||
.config doesn't exists yet.)
|
||||
|
||||
- "modules"
|
||||
This declares the symbol to be used as the MODULES symbol, which
|
||||
enables the third modular state for all config symbols.
|
||||
|
||||
- "env"=<value>
|
||||
This imports the environment variable into Kconfig. It behaves like
|
||||
a default, except that the value comes from the environment, this
|
||||
also means that the behaviour when mixing it with normal defaults is
|
||||
undefined at this point. The symbol is currently not exported back
|
||||
to the build environment (if this is desired, it can be done via
|
||||
another symbol).
|
||||
|
||||
Menu dependencies
|
||||
-----------------
|
||||
@@ -162,9 +184,9 @@ An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
|
||||
respectively for calculations). A menu entry becomes visible when it's
|
||||
expression evaluates to 'm' or 'y'.
|
||||
|
||||
There are two types of symbols: constant and nonconstant symbols.
|
||||
Nonconstant symbols are the most common ones and are defined with the
|
||||
'config' statement. Nonconstant symbols consist entirely of alphanumeric
|
||||
There are two types of symbols: constant and non-constant symbols.
|
||||
Non-constant symbols are the most common ones and are defined with the
|
||||
'config' statement. Non-constant symbols consist entirely of alphanumeric
|
||||
characters or underscores.
|
||||
Constant symbols are only part of expressions. Constant symbols are
|
||||
always surrounded by single or double quotes. Within the quote, any
|
||||
@@ -301,3 +323,57 @@ mainmenu:
|
||||
|
||||
This sets the config program's title bar if the config program chooses
|
||||
to use it.
|
||||
|
||||
|
||||
Kconfig hints
|
||||
-------------
|
||||
This is a collection of Kconfig tips, most of which aren't obvious at
|
||||
first glance and most of which have become idioms in several Kconfig
|
||||
files.
|
||||
|
||||
Adding common features and make the usage configurable
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
It is a common idiom to implement a feature/functionality that are
|
||||
relevant for some architectures but not all.
|
||||
The recommended way to do so is to use a config variable named HAVE_*
|
||||
that is defined in a common Kconfig file and selected by the relevant
|
||||
architectures.
|
||||
An example is the generic IOMAP functionality.
|
||||
|
||||
We would in lib/Kconfig see:
|
||||
|
||||
# Generic IOMAP is used to ...
|
||||
config HAVE_GENERIC_IOMAP
|
||||
|
||||
config GENERIC_IOMAP
|
||||
depends on HAVE_GENERIC_IOMAP && FOO
|
||||
|
||||
And in lib/Makefile we would see:
|
||||
obj-$(CONFIG_GENERIC_IOMAP) += iomap.o
|
||||
|
||||
For each architecture using the generic IOMAP functionality we would see:
|
||||
|
||||
config X86
|
||||
select ...
|
||||
select HAVE_GENERIC_IOMAP
|
||||
select ...
|
||||
|
||||
Note: we use the existing config option and avoid creating a new
|
||||
config variable to select HAVE_GENERIC_IOMAP.
|
||||
|
||||
Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is
|
||||
introduced to overcome the limitation of select which will force a
|
||||
config option to 'y' no matter the dependencies.
|
||||
The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the
|
||||
situation where select forces a symbol equals to 'y'.
|
||||
|
||||
Build as module only
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
To restrict a component build to module-only, qualify its config symbol
|
||||
with "depends on m". E.g.:
|
||||
|
||||
config FOO
|
||||
depends on BAR && m
|
||||
|
||||
limits FOO to module (=m) or disabled (=n).
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -43,6 +43,10 @@ static char *escape(const char* text, char *bf, int len)
|
||||
++text;
|
||||
goto next;
|
||||
}
|
||||
else if (*text == '\\') {
|
||||
*bfp++ = '\\';
|
||||
len--;
|
||||
}
|
||||
*bfp++ = *text++;
|
||||
next:
|
||||
--len;
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
#define YY_FLEX_SUBMINOR_VERSION 33
|
||||
#define YY_FLEX_SUBMINOR_VERSION 35
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
|
||||
|
||||
#if __STDC_VERSION__ >= 199901L
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
|
||||
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
|
||||
* if you want the limit (max/min) macros for int types.
|
||||
@@ -72,7 +72,6 @@ typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@@ -103,6 +102,8 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -112,11 +113,12 @@ typedef unsigned int flex_uint32_t;
|
||||
|
||||
#else /* ! __cplusplus */
|
||||
|
||||
#if __STDC__
|
||||
/* C99 requires __STDC__ to be defined as 1. */
|
||||
#if defined (__STDC__)
|
||||
|
||||
#define YY_USE_CONST
|
||||
|
||||
#endif /* __STDC__ */
|
||||
#endif /* defined (__STDC__) */
|
||||
#endif /* ! __cplusplus */
|
||||
|
||||
#ifdef YY_USE_CONST
|
||||
@@ -196,14 +198,9 @@ extern FILE *zconfin, *zconfout;
|
||||
|
||||
#define unput(c) yyunput( c, (yytext_ptr) )
|
||||
|
||||
/* The following is because we cannot portably get our hands on size_t
|
||||
* (without autoconf's help, which isn't available because we want
|
||||
* flex-generated scanners to compile on their own).
|
||||
*/
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef unsigned int yy_size_t;
|
||||
typedef size_t yy_size_t;
|
||||
#endif
|
||||
|
||||
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
||||
@@ -767,6 +764,7 @@ int zconf_flex_debug = 0;
|
||||
#define YY_MORE_ADJ 0
|
||||
#define YY_RESTORE_YY_MORE_OFFSET
|
||||
char *zconftext;
|
||||
#define YY_NO_INPUT 1
|
||||
|
||||
/*
|
||||
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
|
||||
@@ -815,12 +813,6 @@ void new_string(void)
|
||||
void append_string(const char *str, int size)
|
||||
{
|
||||
int new_size = text_size + size + 1;
|
||||
|
||||
if ((YY_START == 2 /* HELP */) && (size > 70)) {
|
||||
fprintf (stderr, "%s:%d warning: Overlong line\n",
|
||||
current_file->name, current_file->lineno);
|
||||
}
|
||||
|
||||
if (new_size > text_asize) {
|
||||
new_size += START_STRSIZE - 1;
|
||||
new_size &= -START_STRSIZE;
|
||||
@@ -859,6 +851,35 @@ void alloc_string(const char *str, int size)
|
||||
|
||||
static int yy_init_globals (void );
|
||||
|
||||
/* Accessor methods to globals.
|
||||
These are made visible to non-reentrant scanners for convenience. */
|
||||
|
||||
int zconflex_destroy (void );
|
||||
|
||||
int zconfget_debug (void );
|
||||
|
||||
void zconfset_debug (int debug_flag );
|
||||
|
||||
YY_EXTRA_TYPE zconfget_extra (void );
|
||||
|
||||
void zconfset_extra (YY_EXTRA_TYPE user_defined );
|
||||
|
||||
FILE *zconfget_in (void );
|
||||
|
||||
void zconfset_in (FILE * in_str );
|
||||
|
||||
FILE *zconfget_out (void );
|
||||
|
||||
void zconfset_out (FILE * out_str );
|
||||
|
||||
int zconfget_leng (void );
|
||||
|
||||
char *zconfget_text (void );
|
||||
|
||||
int zconfget_lineno (void );
|
||||
|
||||
void zconfset_lineno (int line_number );
|
||||
|
||||
/* Macros after this point can all be overridden by user definitions in
|
||||
* section 1.
|
||||
*/
|
||||
@@ -901,7 +922,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO (void) fwrite( zconftext, zconfleng, 1, zconfout )
|
||||
#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -1281,6 +1302,11 @@ YY_RULE_SETUP
|
||||
case 32:
|
||||
YY_RULE_SETUP
|
||||
{
|
||||
while (zconfleng) {
|
||||
if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
|
||||
break;
|
||||
zconfleng--;
|
||||
}
|
||||
append_string(zconftext, zconfleng);
|
||||
if (!first_ts)
|
||||
first_ts = last_ts;
|
||||
@@ -1536,7 +1562,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
/* Read in more data. */
|
||||
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
|
||||
(yy_n_chars), num_to_read );
|
||||
(yy_n_chars), (size_t) num_to_read );
|
||||
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
|
||||
}
|
||||
@@ -1560,6 +1586,14 @@ static int yy_get_next_buffer (void)
|
||||
else
|
||||
ret_val = EOB_ACT_CONTINUE_SCAN;
|
||||
|
||||
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
|
||||
/* Extend the array by 50%, plus the number we really need. */
|
||||
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
|
||||
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
|
||||
}
|
||||
|
||||
(yy_n_chars) += number_to_move;
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
|
||||
@@ -1946,7 +1980,9 @@ static void zconfensure_buffer_stack (void)
|
||||
(yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
|
||||
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
||||
);
|
||||
|
||||
if ( ! (yy_buffer_stack) )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
|
||||
|
||||
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
|
||||
|
||||
(yy_buffer_stack_max) = num_to_alloc;
|
||||
@@ -1964,6 +2000,8 @@ static void zconfensure_buffer_stack (void)
|
||||
((yy_buffer_stack),
|
||||
num_to_alloc * sizeof(struct yy_buffer_state*)
|
||||
);
|
||||
if ( ! (yy_buffer_stack) )
|
||||
YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
|
||||
|
||||
/* zero only the new slots.*/
|
||||
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
|
||||
@@ -2008,7 +2046,7 @@ YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
|
||||
|
||||
/** Setup the input buffer state to scan a string. The next call to zconflex() will
|
||||
* scan from a @e copy of @a str.
|
||||
* @param str a NUL-terminated string to scan
|
||||
* @param yystr a NUL-terminated string to scan
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
* @note If you want to scan bytes that may contain NUL values, then use
|
||||
@@ -2332,11 +2370,14 @@ void zconf_nextfile(const char *name)
|
||||
current_buf = buf;
|
||||
|
||||
if (file->flags & FILE_BUSY) {
|
||||
printf("recursive scan (%s)?\n", name);
|
||||
printf("%s:%d: do not source '%s' from itself\n",
|
||||
zconf_curname(), zconf_lineno(), name);
|
||||
exit(1);
|
||||
}
|
||||
if (file->flags & FILE_SCANNED) {
|
||||
printf("file %s already scanned?\n", name);
|
||||
printf("%s:%d: file '%s' is already sourced from '%s'\n",
|
||||
zconf_curname(), zconf_lineno(), name,
|
||||
file->parent->name);
|
||||
exit(1);
|
||||
}
|
||||
file->flags |= FILE_BUSY;
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
#ifndef KBUILD_NO_NLS
|
||||
# include <libintl.h>
|
||||
#else
|
||||
# define gettext(Msgid) ((const char *) (Msgid))
|
||||
# define textdomain(Domainname) ((const char *) (Domainname))
|
||||
# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
|
||||
static inline const char *gettext(const char *txt) { return txt; }
|
||||
static inline void textdomain(const char *domainname) {}
|
||||
static inline void bindtextdomain(const char *name, const char *dir) {}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -42,8 +42,17 @@ extern "C" {
|
||||
#define TF_PARAM 0x0002
|
||||
#define TF_OPTION 0x0004
|
||||
|
||||
enum conf_def_mode {
|
||||
def_default,
|
||||
def_yes,
|
||||
def_mod,
|
||||
def_no,
|
||||
def_random
|
||||
};
|
||||
|
||||
#define T_OPT_MODULES 1
|
||||
#define T_OPT_DEFCONFIG_LIST 2
|
||||
#define T_OPT_ENV 3
|
||||
|
||||
struct kconf_id {
|
||||
int name;
|
||||
@@ -65,15 +74,18 @@ char *zconf_curname(void);
|
||||
|
||||
/* confdata.c */
|
||||
const char *conf_get_configname(void);
|
||||
const char *conf_get_autoconfig_name(void);
|
||||
char *conf_get_default_confname(void);
|
||||
void sym_set_change_count(int count);
|
||||
void sym_add_change_count(int count);
|
||||
void conf_set_all_new_symbols(enum conf_def_mode mode);
|
||||
|
||||
/* kconfig_load.c */
|
||||
void kconfig_load(void);
|
||||
|
||||
/* menu.c */
|
||||
void menu_init(void);
|
||||
void menu_warn(struct menu *menu, const char *fmt, ...);
|
||||
struct menu *menu_add_menu(void);
|
||||
void menu_end_menu(void);
|
||||
void menu_add_entry(struct symbol *sym);
|
||||
@@ -103,6 +115,8 @@ void str_printf(struct gstr *gs, const char *fmt, ...);
|
||||
const char *str_get(struct gstr *gs);
|
||||
|
||||
/* symbol.c */
|
||||
extern struct expr *sym_env_list;
|
||||
|
||||
void sym_init(void);
|
||||
void sym_clear_all_valid(void);
|
||||
void sym_set_all_changed(void);
|
||||
@@ -110,6 +124,7 @@ void sym_set_changed(struct symbol *sym);
|
||||
struct symbol *sym_check_deps(struct symbol *sym);
|
||||
struct property *prop_alloc(enum prop_type type, struct symbol *sym);
|
||||
struct symbol *prop_get_symbol(struct property *prop);
|
||||
struct property *sym_get_env_prop(struct symbol *sym);
|
||||
|
||||
static inline tristate sym_get_tristate_value(struct symbol *sym)
|
||||
{
|
||||
|
||||
@@ -21,7 +21,7 @@ P(menu_get_help,const char *,(struct menu *menu));
|
||||
/* symbol.c */
|
||||
P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
|
||||
|
||||
P(sym_lookup,struct symbol *,(const char *name, int isconst));
|
||||
P(sym_lookup,struct symbol *,(const char *name, int flags));
|
||||
P(sym_find,struct symbol *,(const char *name));
|
||||
P(sym_re_search,struct symbol **,(const char *pattern));
|
||||
P(sym_type_name,const char *,(enum symbol_type type));
|
||||
|
||||
@@ -36,19 +36,23 @@ trap "rm -f $tmp" 0 1 2 3 15
|
||||
|
||||
# Check if we can link to ncurses
|
||||
check() {
|
||||
echo "main() {}" | $cc -xc - -o $tmp 2> /dev/null
|
||||
$cc -xc - -o $tmp 2>/dev/null <<'EOF'
|
||||
#include CURSES_LOC
|
||||
main() {}
|
||||
EOF
|
||||
if [ $? != 0 ]; then
|
||||
echo " *** Unable to find the ncurses libraries." 1>&2
|
||||
echo " *** make menuconfig require the ncurses libraries" 1>&2
|
||||
echo " *** " 1>&2
|
||||
echo " *** Install ncurses (ncurses-devel) and try again" 1>&2
|
||||
echo " *** " 1>&2
|
||||
exit 1
|
||||
echo " *** Unable to find the ncurses libraries or the" 1>&2
|
||||
echo " *** required header files." 1>&2
|
||||
echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2
|
||||
echo " *** " 1>&2
|
||||
echo " *** Install ncurses (ncurses-devel) and try again." 1>&2
|
||||
echo " *** " 1>&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
usage() {
|
||||
printf "Usage: $0 [-check compiler options|-header|-library]\n"
|
||||
printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n"
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
|
||||
@@ -41,7 +41,8 @@ static void print_item(WINDOW * win, int choice, int selected)
|
||||
wmove(win, choice, check_x);
|
||||
wattrset(win, selected ? dlg.check_selected.atr
|
||||
: dlg.check.atr);
|
||||
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
|
||||
if (!item_is_tag(':'))
|
||||
wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
|
||||
|
||||
wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
|
||||
mvwaddch(win, choice, item_x, item_str()[0]);
|
||||
@@ -97,8 +98,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
|
||||
int x = width / 2 - 11;
|
||||
int y = height - 2;
|
||||
|
||||
print_button(dialog, "Select", y, x, selected == 0);
|
||||
print_button(dialog, " Help ", y, x + 14, selected == 1);
|
||||
print_button(dialog, gettext("Select"), y, x, selected == 0);
|
||||
print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
|
||||
|
||||
wmove(dialog, y, x + 1 + 14 * selected);
|
||||
wrefresh(dialog);
|
||||
|
||||
@@ -26,6 +26,12 @@
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifndef KBUILD_NO_NLS
|
||||
# include <libintl.h>
|
||||
#else
|
||||
# define gettext(Msgid) ((const char *) (Msgid))
|
||||
#endif
|
||||
|
||||
#ifdef __sun__
|
||||
#define CURS_MACROS
|
||||
#endif
|
||||
@@ -187,10 +193,9 @@ int item_is_tag(char tag);
|
||||
int on_key_esc(WINDOW *win);
|
||||
int on_key_resize(void);
|
||||
|
||||
void init_dialog(const char *backtitle);
|
||||
int init_dialog(const char *backtitle);
|
||||
void set_dialog_backtitle(const char *backtitle);
|
||||
void reset_dialog(void);
|
||||
void end_dialog(void);
|
||||
void end_dialog(int x, int y);
|
||||
void attr_clear(WINDOW * win, int height, int width, chtype attr);
|
||||
void dialog_clear(void);
|
||||
void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x);
|
||||
|
||||
@@ -31,8 +31,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
|
||||
int x = width / 2 - 11;
|
||||
int y = height - 2;
|
||||
|
||||
print_button(dialog, " Ok ", y, x, selected == 0);
|
||||
print_button(dialog, " Help ", y, x + 14, selected == 1);
|
||||
print_button(dialog, gettext(" Ok "), y, x, selected == 0);
|
||||
print_button(dialog, gettext(" Help "), y, x + 14, selected == 1);
|
||||
|
||||
wmove(dialog, y, x + 1 + 14 * selected);
|
||||
wrefresh(dialog);
|
||||
@@ -89,7 +89,7 @@ do_resize:
|
||||
box_y = y + 2;
|
||||
box_x = (width - box_width) / 2;
|
||||
draw_box(dialog, y + 1, box_x - 1, 3, box_width + 2,
|
||||
dlg.border.atr, dlg.dialog.atr);
|
||||
dlg.dialog.atr, dlg.border.atr);
|
||||
|
||||
print_buttons(dialog, height, width, 0);
|
||||
|
||||
|
||||
@@ -157,9 +157,9 @@ static void print_buttons(WINDOW * win, int height, int width, int selected)
|
||||
int x = width / 2 - 16;
|
||||
int y = height - 2;
|
||||
|
||||
print_button(win, "Select", y, x, selected == 0);
|
||||
print_button(win, " Exit ", y, x + 12, selected == 1);
|
||||
print_button(win, " Help ", y, x + 24, selected == 2);
|
||||
print_button(win, gettext("Select"), y, x, selected == 0);
|
||||
print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
|
||||
print_button(win, gettext(" Help "), y, x + 24, selected == 2);
|
||||
|
||||
wmove(win, y, x + 1 + 12 * selected);
|
||||
wrefresh(win);
|
||||
|
||||
@@ -114,7 +114,7 @@ do_resize:
|
||||
|
||||
print_title(dialog, title, width);
|
||||
|
||||
print_button(dialog, " Exit ", height - 2, width / 2 - 4, TRUE);
|
||||
print_button(dialog, gettext(" Exit "), height - 2, width / 2 - 4, TRUE);
|
||||
wnoutrefresh(dialog);
|
||||
getyx(dialog, cur_y, cur_x); /* Save cursor position */
|
||||
|
||||
|
||||
@@ -266,10 +266,26 @@ void dialog_clear(void)
|
||||
/*
|
||||
* Do some initialization for dialog
|
||||
*/
|
||||
void init_dialog(const char *backtitle)
|
||||
int init_dialog(const char *backtitle)
|
||||
{
|
||||
int height, width;
|
||||
|
||||
initscr(); /* Init curses */
|
||||
getmaxyx(stdscr, height, width);
|
||||
if (height < 19 || width < 80) {
|
||||
endwin();
|
||||
return -ERRDISPLAYTOOSMALL;
|
||||
}
|
||||
|
||||
dlg.backtitle = backtitle;
|
||||
color_setup(getenv("MENUCONFIG_COLOR"));
|
||||
|
||||
keypad(stdscr, TRUE);
|
||||
cbreak();
|
||||
noecho();
|
||||
dialog_clear();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void set_dialog_backtitle(const char *backtitle)
|
||||
@@ -277,20 +293,14 @@ void set_dialog_backtitle(const char *backtitle)
|
||||
dlg.backtitle = backtitle;
|
||||
}
|
||||
|
||||
void reset_dialog(void)
|
||||
{
|
||||
initscr(); /* Init curses */
|
||||
keypad(stdscr, TRUE);
|
||||
cbreak();
|
||||
noecho();
|
||||
dialog_clear();
|
||||
}
|
||||
|
||||
/*
|
||||
* End using dialog functions.
|
||||
*/
|
||||
void end_dialog(void)
|
||||
void end_dialog(int x, int y)
|
||||
{
|
||||
/* move cursor back to original position */
|
||||
move(y, x);
|
||||
refresh();
|
||||
endwin();
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ static void print_buttons(WINDOW * dialog, int height, int width, int selected)
|
||||
int x = width / 2 - 10;
|
||||
int y = height - 2;
|
||||
|
||||
print_button(dialog, " Yes ", y, x, selected == 0);
|
||||
print_button(dialog, " No ", y, x + 13, selected == 1);
|
||||
print_button(dialog, gettext(" Yes "), y, x, selected == 0);
|
||||
print_button(dialog, gettext(" No "), y, x + 13, selected == 1);
|
||||
|
||||
wmove(dialog, y, x + 1 + 13 * selected);
|
||||
wrefresh(dialog);
|
||||
|
||||
@@ -8,17 +8,13 @@
|
||||
* i18n, 2005, Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
*/
|
||||
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/wait.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <signal.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <locale.h>
|
||||
|
||||
@@ -274,8 +270,6 @@ search_help[] = N_(
|
||||
"\n");
|
||||
|
||||
static int indent;
|
||||
static struct termios ios_org;
|
||||
static int rows = 0, cols = 0;
|
||||
static struct menu *current_menu;
|
||||
static int child_count;
|
||||
static int single_menu_mode;
|
||||
@@ -289,51 +283,16 @@ static void show_textbox(const char *title, const char *text, int r, int c);
|
||||
static void show_helptext(const char *title, const char *text);
|
||||
static void show_help(struct menu *menu);
|
||||
|
||||
static void init_wsize(void)
|
||||
{
|
||||
struct winsize ws;
|
||||
char *env;
|
||||
|
||||
if (!ioctl(STDIN_FILENO, TIOCGWINSZ, &ws)) {
|
||||
rows = ws.ws_row;
|
||||
cols = ws.ws_col;
|
||||
}
|
||||
|
||||
if (!rows) {
|
||||
env = getenv("LINES");
|
||||
if (env)
|
||||
rows = atoi(env);
|
||||
if (!rows)
|
||||
rows = 24;
|
||||
}
|
||||
if (!cols) {
|
||||
env = getenv("COLUMNS");
|
||||
if (env)
|
||||
cols = atoi(env);
|
||||
if (!cols)
|
||||
cols = 80;
|
||||
}
|
||||
|
||||
if (rows < 19 || cols < 80) {
|
||||
fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
|
||||
fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
rows -= 4;
|
||||
cols -= 5;
|
||||
}
|
||||
|
||||
static void get_prompt_str(struct gstr *r, struct property *prop)
|
||||
{
|
||||
int i, j;
|
||||
struct menu *submenu[8], *menu;
|
||||
|
||||
str_printf(r, "Prompt: %s\n", prop->text);
|
||||
str_printf(r, " Defined at %s:%d\n", prop->menu->file->name,
|
||||
str_printf(r, _("Prompt: %s\n"), _(prop->text));
|
||||
str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
|
||||
prop->menu->lineno);
|
||||
if (!expr_is_yes(prop->visible.expr)) {
|
||||
str_append(r, " Depends on: ");
|
||||
str_append(r, _(" Depends on: "));
|
||||
expr_gstr_print(prop->visible.expr, r);
|
||||
str_append(r, "\n");
|
||||
}
|
||||
@@ -341,13 +300,13 @@ static void get_prompt_str(struct gstr *r, struct property *prop)
|
||||
for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
|
||||
submenu[i++] = menu;
|
||||
if (i > 0) {
|
||||
str_printf(r, " Location:\n");
|
||||
str_printf(r, _(" Location:\n"));
|
||||
for (j = 4; --i >= 0; j += 2) {
|
||||
menu = submenu[i];
|
||||
str_printf(r, "%*c-> %s", j, ' ', menu_get_prompt(menu));
|
||||
str_printf(r, "%*c-> %s", j, ' ', _(menu_get_prompt(menu)));
|
||||
if (menu->sym) {
|
||||
str_printf(r, " (%s [=%s])", menu->sym->name ?
|
||||
menu->sym->name : "<choice>",
|
||||
menu->sym->name : _("<choice>"),
|
||||
sym_get_string_value(menu->sym));
|
||||
}
|
||||
str_append(r, "\n");
|
||||
@@ -377,7 +336,7 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
|
||||
if (hit)
|
||||
str_append(r, "\n");
|
||||
if (sym->rev_dep.expr) {
|
||||
str_append(r, " Selected by: ");
|
||||
str_append(r, _(" Selected by: "));
|
||||
expr_gstr_print(sym->rev_dep.expr, r);
|
||||
str_append(r, "\n");
|
||||
}
|
||||
@@ -393,7 +352,7 @@ static struct gstr get_relations_str(struct symbol **sym_arr)
|
||||
for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
|
||||
get_symbol_str(&res, sym);
|
||||
if (!i)
|
||||
str_append(&res, "No matches found.\n");
|
||||
str_append(&res, _("No matches found.\n"));
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -473,6 +432,7 @@ static void build_conf(struct menu *menu)
|
||||
switch (prop->type) {
|
||||
case P_MENU:
|
||||
child_count++;
|
||||
prompt = _(prompt);
|
||||
if (single_menu_mode) {
|
||||
item_make("%s%*c%s",
|
||||
menu->data ? "-->" : "++>",
|
||||
@@ -488,7 +448,7 @@ static void build_conf(struct menu *menu)
|
||||
case P_COMMENT:
|
||||
if (prompt) {
|
||||
child_count++;
|
||||
item_make(" %*c*** %s ***", indent + 1, ' ', prompt);
|
||||
item_make(" %*c*** %s ***", indent + 1, ' ', _(prompt));
|
||||
item_set_tag(':');
|
||||
item_set_data(menu);
|
||||
}
|
||||
@@ -496,7 +456,7 @@ static void build_conf(struct menu *menu)
|
||||
default:
|
||||
if (prompt) {
|
||||
child_count++;
|
||||
item_make("---%*c%s", indent + 1, ' ', prompt);
|
||||
item_make("---%*c%s", indent + 1, ' ', _(prompt));
|
||||
item_set_tag(':');
|
||||
item_set_data(menu);
|
||||
}
|
||||
@@ -540,10 +500,10 @@ static void build_conf(struct menu *menu)
|
||||
item_set_data(menu);
|
||||
}
|
||||
|
||||
item_add_str("%*c%s", indent + 1, ' ', menu_get_prompt(menu));
|
||||
item_add_str("%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
|
||||
if (val == yes) {
|
||||
if (def_menu) {
|
||||
item_add_str(" (%s)", menu_get_prompt(def_menu));
|
||||
item_add_str(" (%s)", _(menu_get_prompt(def_menu)));
|
||||
item_add_str(" --->");
|
||||
if (def_menu->list) {
|
||||
indent += 2;
|
||||
@@ -555,7 +515,7 @@ static void build_conf(struct menu *menu)
|
||||
}
|
||||
} else {
|
||||
if (menu == current_menu) {
|
||||
item_make("---%*c%s", indent + 1, ' ', menu_get_prompt(menu));
|
||||
item_make("---%*c%s", indent + 1, ' ', _(menu_get_prompt(menu)));
|
||||
item_set_tag(':');
|
||||
item_set_data(menu);
|
||||
goto conf_childs;
|
||||
@@ -598,17 +558,17 @@ static void build_conf(struct menu *menu)
|
||||
tmp = indent - tmp + 4;
|
||||
if (tmp < 0)
|
||||
tmp = 0;
|
||||
item_add_str("%*c%s%s", tmp, ' ', menu_get_prompt(menu),
|
||||
item_add_str("%*c%s%s", tmp, ' ', _(menu_get_prompt(menu)),
|
||||
(sym_has_value(sym) || !sym_is_changable(sym)) ?
|
||||
"" : " (NEW)");
|
||||
"" : _(" (NEW)"));
|
||||
item_set_tag('s');
|
||||
item_set_data(menu);
|
||||
goto conf_childs;
|
||||
}
|
||||
}
|
||||
item_add_str("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu),
|
||||
item_add_str("%*c%s%s", indent + 1, ' ', _(menu_get_prompt(menu)),
|
||||
(sym_has_value(sym) || !sym_is_changable(sym)) ?
|
||||
"" : " (NEW)");
|
||||
"" : _(" (NEW)"));
|
||||
if (menu->prompt->type == P_MENU) {
|
||||
item_add_str(" --->");
|
||||
return;
|
||||
@@ -646,7 +606,7 @@ static void conf(struct menu *menu)
|
||||
item_set_tag('S');
|
||||
}
|
||||
dialog_clear();
|
||||
res = dialog_menu(prompt ? prompt : _("Main Menu"),
|
||||
res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
|
||||
_(menu_instructions),
|
||||
active_menu, &s_scroll);
|
||||
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
|
||||
@@ -693,7 +653,7 @@ static void conf(struct menu *menu)
|
||||
if (sym)
|
||||
show_help(submenu);
|
||||
else
|
||||
show_helptext("README", _(mconf_readme));
|
||||
show_helptext(_("README"), _(mconf_readme));
|
||||
break;
|
||||
case 3:
|
||||
if (item_is_tag('t')) {
|
||||
@@ -743,7 +703,7 @@ static void show_help(struct menu *menu)
|
||||
if (menu_has_help(menu))
|
||||
{
|
||||
if (sym->name) {
|
||||
str_printf(&help, "%s:\n\n", sym->name);
|
||||
str_printf(&help, "CONFIG_%s:\n\n", sym->name);
|
||||
str_append(&help, _(menu_get_help(menu)));
|
||||
str_append(&help, "\n");
|
||||
}
|
||||
@@ -751,13 +711,13 @@ static void show_help(struct menu *menu)
|
||||
str_append(&help, nohelp_text);
|
||||
}
|
||||
get_symbol_str(&help, sym);
|
||||
show_helptext(menu_get_prompt(menu), str_get(&help));
|
||||
show_helptext(_(menu_get_prompt(menu)), str_get(&help));
|
||||
str_free(&help);
|
||||
}
|
||||
|
||||
static void conf_choice(struct menu *menu)
|
||||
{
|
||||
const char *prompt = menu_get_prompt(menu);
|
||||
const char *prompt = _(menu_get_prompt(menu));
|
||||
struct menu *child;
|
||||
struct symbol *active;
|
||||
|
||||
@@ -771,7 +731,12 @@ static void conf_choice(struct menu *menu)
|
||||
for (child = menu->list; child; child = child->next) {
|
||||
if (!menu_is_visible(child))
|
||||
continue;
|
||||
item_make("%s", menu_get_prompt(child));
|
||||
if (child->sym)
|
||||
item_make("%s", _(menu_get_prompt(child)));
|
||||
else {
|
||||
item_make("*** %s ***", _(menu_get_prompt(child)));
|
||||
item_set_tag(':');
|
||||
}
|
||||
item_set_data(child);
|
||||
if (child->sym == active)
|
||||
item_set_selected(1);
|
||||
@@ -779,7 +744,7 @@ static void conf_choice(struct menu *menu)
|
||||
item_set_tag('X');
|
||||
}
|
||||
dialog_clear();
|
||||
res = dialog_checklist(prompt ? prompt : _("Main Menu"),
|
||||
res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
|
||||
_(radiolist_instructions),
|
||||
15, 70, 6);
|
||||
selected = item_activate_selected();
|
||||
@@ -787,6 +752,9 @@ static void conf_choice(struct menu *menu)
|
||||
case 0:
|
||||
if (selected) {
|
||||
child = item_data();
|
||||
if (!child->sym)
|
||||
break;
|
||||
|
||||
sym_set_tristate_value(child->sym, yes);
|
||||
}
|
||||
return;
|
||||
@@ -812,7 +780,7 @@ static void conf_string(struct menu *menu)
|
||||
|
||||
while (1) {
|
||||
int res;
|
||||
char *heading;
|
||||
const char *heading;
|
||||
|
||||
switch (sym_get_type(menu->sym)) {
|
||||
case S_INT:
|
||||
@@ -825,10 +793,10 @@ static void conf_string(struct menu *menu)
|
||||
heading = _(inputbox_instructions_string);
|
||||
break;
|
||||
default:
|
||||
heading = "Internal mconf error!";
|
||||
heading = _("Internal mconf error!");
|
||||
}
|
||||
dialog_clear();
|
||||
res = dialog_inputbox(prompt ? prompt : _("Main Menu"),
|
||||
res = dialog_inputbox(prompt ? _(prompt) : _("Main Menu"),
|
||||
heading, 10, 75,
|
||||
sym_get_string_value(menu->sym));
|
||||
switch (res) {
|
||||
@@ -860,6 +828,7 @@ static void conf_load(void)
|
||||
return;
|
||||
if (!conf_read(dialog_input_result)) {
|
||||
set_config_filename(dialog_input_result);
|
||||
sym_set_change_count(1);
|
||||
return;
|
||||
}
|
||||
show_textbox(NULL, _("File does not exist!"), 5, 38);
|
||||
@@ -899,13 +868,9 @@ static void conf_save(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void conf_cleanup(void)
|
||||
{
|
||||
tcsetattr(1, TCSAFLUSH, &ios_org);
|
||||
}
|
||||
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
int saved_x, saved_y;
|
||||
char *mode;
|
||||
int res;
|
||||
|
||||
@@ -922,11 +887,13 @@ int main(int ac, char **av)
|
||||
single_menu_mode = 1;
|
||||
}
|
||||
|
||||
tcgetattr(1, &ios_org);
|
||||
atexit(conf_cleanup);
|
||||
init_wsize();
|
||||
reset_dialog();
|
||||
init_dialog(NULL);
|
||||
getyx(stdscr, saved_y, saved_x);
|
||||
if (init_dialog(NULL)) {
|
||||
fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
|
||||
fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
set_config_filename(conf_get_configname());
|
||||
do {
|
||||
conf(&rootmenu);
|
||||
@@ -940,7 +907,7 @@ int main(int ac, char **av)
|
||||
else
|
||||
res = -1;
|
||||
} while (res == KEY_ESC);
|
||||
end_dialog();
|
||||
end_dialog(saved_x, saved_y);
|
||||
|
||||
switch (res) {
|
||||
case 0:
|
||||
@@ -965,3 +932,4 @@ int main(int ac, char **av)
|
||||
|
||||
return conf_write_autoconf();
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ static struct menu **last_entry_ptr;
|
||||
struct file *file_list;
|
||||
struct file *current_file;
|
||||
|
||||
static void menu_warn(struct menu *menu, const char *fmt, ...)
|
||||
void menu_warn(struct menu *menu, const char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
@@ -172,6 +172,9 @@ void menu_add_option(int token, char *arg)
|
||||
else if (sym_defconfig_list != current_entry->sym)
|
||||
zconf_error("trying to redefine defconfig symbol");
|
||||
break;
|
||||
case T_OPT_ENV:
|
||||
prop_add_env(arg);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,12 +203,9 @@ void sym_check_prop(struct symbol *sym)
|
||||
prop_warn(prop,
|
||||
"config symbol '%s' uses select, but is "
|
||||
"not boolean or tristate", sym->name);
|
||||
else if (sym2->type == S_UNKNOWN)
|
||||
prop_warn(prop,
|
||||
"'select' used by config symbol '%s' "
|
||||
"refers to undefined symbol '%s'",
|
||||
sym->name, sym2->name);
|
||||
else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
|
||||
else if (sym2->type != S_UNKNOWN &&
|
||||
sym2->type != S_BOOLEAN &&
|
||||
sym2->type != S_TRISTATE)
|
||||
prop_warn(prop,
|
||||
"'%s' has wrong type. 'select' only "
|
||||
"accept arguments of boolean and "
|
||||
@@ -235,16 +235,22 @@ void menu_finalize(struct menu *parent)
|
||||
sym = parent->sym;
|
||||
if (parent->list) {
|
||||
if (sym && sym_is_choice(sym)) {
|
||||
/* find the first choice value and find out choice type */
|
||||
for (menu = parent->list; menu; menu = menu->next) {
|
||||
if (menu->sym) {
|
||||
current_entry = parent;
|
||||
menu_set_type(menu->sym->type);
|
||||
current_entry = menu;
|
||||
menu_set_type(sym->type);
|
||||
break;
|
||||
if (sym->type == S_UNKNOWN) {
|
||||
/* find the first choice value to find out choice type */
|
||||
current_entry = parent;
|
||||
for (menu = parent->list; menu; menu = menu->next) {
|
||||
if (menu->sym && menu->sym->type != S_UNKNOWN) {
|
||||
menu_set_type(menu->sym->type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* set the type of the remaining choice values */
|
||||
for (menu = parent->list; menu; menu = menu->next) {
|
||||
current_entry = menu;
|
||||
if (menu->sym && menu->sym->type == S_UNKNOWN)
|
||||
menu_set_type(sym->type);
|
||||
}
|
||||
parentdep = expr_alloc_symbol(sym);
|
||||
} else if (parent->prompt)
|
||||
parentdep = parent->prompt->visible.expr;
|
||||
@@ -311,27 +317,43 @@ void menu_finalize(struct menu *parent)
|
||||
}
|
||||
}
|
||||
for (menu = parent->list; menu; menu = menu->next) {
|
||||
if (sym && sym_is_choice(sym) && menu->sym) {
|
||||
if (sym && sym_is_choice(sym) &&
|
||||
menu->sym && !sym_is_choice_value(menu->sym)) {
|
||||
current_entry = menu;
|
||||
menu->sym->flags |= SYMBOL_CHOICEVAL;
|
||||
if (!menu->prompt)
|
||||
menu_warn(menu, "choice value must have a prompt");
|
||||
for (prop = menu->sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type == P_PROMPT && prop->menu != menu) {
|
||||
prop_warn(prop, "choice values "
|
||||
"currently only support a "
|
||||
"single prompt");
|
||||
}
|
||||
if (prop->type == P_DEFAULT)
|
||||
prop_warn(prop, "defaults for choice "
|
||||
"values not supported");
|
||||
"values not supported");
|
||||
if (prop->menu == menu)
|
||||
continue;
|
||||
if (prop->type == P_PROMPT &&
|
||||
prop->menu->parent->sym != sym)
|
||||
prop_warn(prop, "choice value used outside its choice group");
|
||||
}
|
||||
/* Non-tristate choice values of tristate choices must
|
||||
* depend on the choice being set to Y. The choice
|
||||
* values' dependencies were propagated to their
|
||||
* properties above, so the change here must be re-
|
||||
* propagated.
|
||||
*/
|
||||
if (sym->type == S_TRISTATE && menu->sym->type != S_TRISTATE) {
|
||||
basedep = expr_alloc_comp(E_EQUAL, sym, &symbol_yes);
|
||||
menu->dep = expr_alloc_and(basedep, menu->dep);
|
||||
for (prop = menu->sym->prop; prop; prop = prop->next) {
|
||||
if (prop->menu != menu)
|
||||
continue;
|
||||
prop->visible.expr = expr_alloc_and(expr_copy(basedep),
|
||||
prop->visible.expr);
|
||||
}
|
||||
}
|
||||
current_entry = menu;
|
||||
menu_set_type(sym->type);
|
||||
menu_add_symbol(P_CHOICE, sym, NULL);
|
||||
prop = sym_get_choice_prop(sym);
|
||||
for (ep = &prop->expr; *ep; ep = &(*ep)->left.expr)
|
||||
;
|
||||
*ep = expr_alloc_one(E_CHOICE, NULL);
|
||||
*ep = expr_alloc_one(E_LIST, NULL);
|
||||
(*ep)->right.sym = menu->sym;
|
||||
}
|
||||
if (menu->list && (!menu->prompt || !menu->prompt->text)) {
|
||||
@@ -394,9 +416,9 @@ bool menu_is_visible(struct menu *menu)
|
||||
const char *menu_get_prompt(struct menu *menu)
|
||||
{
|
||||
if (menu->prompt)
|
||||
return _(menu->prompt->text);
|
||||
return menu->prompt->text;
|
||||
else if (menu->sym)
|
||||
return _(menu->sym->name);
|
||||
return menu->sym->name;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <qapplication.h>
|
||||
#include <qmainwindow.h>
|
||||
#include <qdesktopwidget.h>
|
||||
#include <qtoolbar.h>
|
||||
#include <qlayout.h>
|
||||
#include <qvbox.h>
|
||||
@@ -114,7 +115,7 @@ void ConfigItem::updateMenu(void)
|
||||
|
||||
sym = menu->sym;
|
||||
prop = menu->prompt;
|
||||
prompt = QString::fromLocal8Bit(menu_get_prompt(menu));
|
||||
prompt = _(menu_get_prompt(menu));
|
||||
|
||||
if (prop) switch (prop->type) {
|
||||
case P_MENU:
|
||||
@@ -208,7 +209,7 @@ void ConfigItem::updateMenu(void)
|
||||
break;
|
||||
}
|
||||
if (!sym_has_value(sym) && visible)
|
||||
prompt += " (NEW)";
|
||||
prompt += _(" (NEW)");
|
||||
set_prompt:
|
||||
setText(promptColIdx, prompt);
|
||||
}
|
||||
@@ -297,10 +298,10 @@ void ConfigLineEdit::show(ConfigItem* i)
|
||||
void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
|
||||
{
|
||||
switch (e->key()) {
|
||||
case Key_Escape:
|
||||
case Qt::Key_Escape:
|
||||
break;
|
||||
case Key_Return:
|
||||
case Key_Enter:
|
||||
case Qt::Key_Return:
|
||||
case Qt::Key_Enter:
|
||||
sym_set_string_value(item->menu->sym, text().latin1());
|
||||
parent()->updateList(item);
|
||||
break;
|
||||
@@ -346,7 +347,7 @@ ConfigList::ConfigList(ConfigView* p, const char *name)
|
||||
|
||||
for (i = 0; i < colNr; i++)
|
||||
colMap[i] = colRevMap[i] = -1;
|
||||
addColumn(promptColIdx, "Option");
|
||||
addColumn(promptColIdx, _("Option"));
|
||||
|
||||
reinit();
|
||||
}
|
||||
@@ -360,14 +361,14 @@ void ConfigList::reinit(void)
|
||||
removeColumn(nameColIdx);
|
||||
|
||||
if (showName)
|
||||
addColumn(nameColIdx, "Name");
|
||||
addColumn(nameColIdx, _("Name"));
|
||||
if (showRange) {
|
||||
addColumn(noColIdx, "N");
|
||||
addColumn(modColIdx, "M");
|
||||
addColumn(yesColIdx, "Y");
|
||||
}
|
||||
if (showData)
|
||||
addColumn(dataColIdx, "Value");
|
||||
addColumn(dataColIdx, _("Value"));
|
||||
|
||||
updateListAll();
|
||||
}
|
||||
@@ -639,7 +640,7 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
|
||||
struct menu *menu;
|
||||
enum prop_type type;
|
||||
|
||||
if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) {
|
||||
if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) {
|
||||
emit parentSelected();
|
||||
ev->accept();
|
||||
return;
|
||||
@@ -652,8 +653,8 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
|
||||
item = (ConfigItem*)i;
|
||||
|
||||
switch (ev->key()) {
|
||||
case Key_Return:
|
||||
case Key_Enter:
|
||||
case Qt::Key_Return:
|
||||
case Qt::Key_Enter:
|
||||
if (item->goParent) {
|
||||
emit parentSelected();
|
||||
break;
|
||||
@@ -667,16 +668,16 @@ void ConfigList::keyPressEvent(QKeyEvent* ev)
|
||||
emit menuSelected(menu);
|
||||
break;
|
||||
}
|
||||
case Key_Space:
|
||||
case Qt::Key_Space:
|
||||
changeValue(item);
|
||||
break;
|
||||
case Key_N:
|
||||
case Qt::Key_N:
|
||||
setValue(item, no);
|
||||
break;
|
||||
case Key_M:
|
||||
case Qt::Key_M:
|
||||
setValue(item, mod);
|
||||
break;
|
||||
case Key_Y:
|
||||
case Qt::Key_Y:
|
||||
setValue(item, yes);
|
||||
break;
|
||||
default:
|
||||
@@ -803,7 +804,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
|
||||
QAction *action;
|
||||
|
||||
headerPopup = new QPopupMenu(this);
|
||||
action = new QAction(NULL, "Show Name", 0, this);
|
||||
action = new QAction(NULL, _("Show Name"), 0, this);
|
||||
action->setToggleAction(TRUE);
|
||||
connect(action, SIGNAL(toggled(bool)),
|
||||
parent(), SLOT(setShowName(bool)));
|
||||
@@ -811,7 +812,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
|
||||
action, SLOT(setOn(bool)));
|
||||
action->setOn(showName);
|
||||
action->addTo(headerPopup);
|
||||
action = new QAction(NULL, "Show Range", 0, this);
|
||||
action = new QAction(NULL, _("Show Range"), 0, this);
|
||||
action->setToggleAction(TRUE);
|
||||
connect(action, SIGNAL(toggled(bool)),
|
||||
parent(), SLOT(setShowRange(bool)));
|
||||
@@ -819,7 +820,7 @@ void ConfigList::contextMenuEvent(QContextMenuEvent *e)
|
||||
action, SLOT(setOn(bool)));
|
||||
action->setOn(showRange);
|
||||
action->addTo(headerPopup);
|
||||
action = new QAction(NULL, "Show Data", 0, this);
|
||||
action = new QAction(NULL, _("Show Data"), 0, this);
|
||||
action->setToggleAction(TRUE);
|
||||
connect(action, SIGNAL(toggled(bool)),
|
||||
parent(), SLOT(setShowData(bool)));
|
||||
@@ -920,7 +921,7 @@ void ConfigView::updateListAll(void)
|
||||
}
|
||||
|
||||
ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
|
||||
: Parent(parent, name), menu(0), sym(0)
|
||||
: Parent(parent, name), sym(0), menu(0)
|
||||
{
|
||||
if (name) {
|
||||
configSettings->beginGroup(name);
|
||||
@@ -1041,7 +1042,12 @@ void ConfigInfoView::menuInfo(void)
|
||||
if (showDebug())
|
||||
debug = debug_info(sym);
|
||||
|
||||
help = print_filter(_(menu_get_help(menu)));
|
||||
help = menu_get_help(menu);
|
||||
/* Gettextize if the help text not empty */
|
||||
if (help.isEmpty())
|
||||
help = print_filter(menu_get_help(menu));
|
||||
else
|
||||
help = print_filter(_(menu_get_help(menu)));
|
||||
} else if (menu->prompt) {
|
||||
head += "<big><b>";
|
||||
head += print_filter(_(menu->prompt->text));
|
||||
@@ -1083,7 +1089,11 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
|
||||
debug += "</a><br>";
|
||||
break;
|
||||
case P_DEFAULT:
|
||||
debug += "default: ";
|
||||
case P_SELECT:
|
||||
case P_RANGE:
|
||||
case P_ENV:
|
||||
debug += prop_get_type_name(prop->type);
|
||||
debug += ": ";
|
||||
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
|
||||
debug += "<br>";
|
||||
break;
|
||||
@@ -1094,16 +1104,6 @@ QString ConfigInfoView::debug_info(struct symbol *sym)
|
||||
debug += "<br>";
|
||||
}
|
||||
break;
|
||||
case P_SELECT:
|
||||
debug += "select: ";
|
||||
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
|
||||
debug += "<br>";
|
||||
break;
|
||||
case P_RANGE:
|
||||
debug += "range: ";
|
||||
expr_print(prop->expr, expr_print_help, &debug, E_NONE);
|
||||
debug += "<br>";
|
||||
break;
|
||||
default:
|
||||
debug += "unknown property: ";
|
||||
debug += prop_get_type_name(prop->type);
|
||||
@@ -1167,7 +1167,7 @@ void ConfigInfoView::expr_print_help(void *data, struct symbol *sym, const char
|
||||
QPopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
|
||||
{
|
||||
QPopupMenu* popup = Parent::createPopupMenu(pos);
|
||||
QAction* action = new QAction(NULL,"Show Debug Info", 0, popup);
|
||||
QAction* action = new QAction(NULL, _("Show Debug Info"), 0, popup);
|
||||
action->setToggleAction(TRUE);
|
||||
connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
|
||||
connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
|
||||
@@ -1189,18 +1189,18 @@ ConfigSearchWindow::ConfigSearchWindow(ConfigMainWindow* parent, const char *nam
|
||||
|
||||
QVBoxLayout* layout1 = new QVBoxLayout(this, 11, 6);
|
||||
QHBoxLayout* layout2 = new QHBoxLayout(0, 0, 6);
|
||||
layout2->addWidget(new QLabel("Find:", this));
|
||||
layout2->addWidget(new QLabel(_("Find:"), this));
|
||||
editField = new QLineEdit(this);
|
||||
connect(editField, SIGNAL(returnPressed()), SLOT(search()));
|
||||
layout2->addWidget(editField);
|
||||
searchButton = new QPushButton("Search", this);
|
||||
searchButton = new QPushButton(_("Search"), this);
|
||||
searchButton->setAutoDefault(FALSE);
|
||||
connect(searchButton, SIGNAL(clicked()), SLOT(search()));
|
||||
layout2->addWidget(searchButton);
|
||||
layout1->addLayout(layout2);
|
||||
|
||||
split = new QSplitter(this);
|
||||
split->setOrientation(QSplitter::Vertical);
|
||||
split->setOrientation(Qt::Vertical);
|
||||
list = new ConfigView(split, name);
|
||||
list->list->mode = listMode;
|
||||
info = new ConfigInfoView(split, name);
|
||||
@@ -1276,9 +1276,8 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
int x, y, width, height;
|
||||
char title[256];
|
||||
|
||||
QWidget *d = configApp->desktop();
|
||||
snprintf(title, sizeof(title), _("Linux Kernel v%s Configuration"),
|
||||
getenv("KERNELVERSION"));
|
||||
QDesktopWidget *d = configApp->desktop();
|
||||
snprintf(title, sizeof(title), _("Buildroot Configuration"));
|
||||
setCaption(title);
|
||||
|
||||
width = configSettings->readNumEntry("/window width", d->width() - 64);
|
||||
@@ -1291,14 +1290,14 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
move(x, y);
|
||||
|
||||
split1 = new QSplitter(this);
|
||||
split1->setOrientation(QSplitter::Horizontal);
|
||||
split1->setOrientation(Qt::Horizontal);
|
||||
setCentralWidget(split1);
|
||||
|
||||
menuView = new ConfigView(split1, "menu");
|
||||
menuList = menuView->list;
|
||||
|
||||
split2 = new QSplitter(split1);
|
||||
split2->setOrientation(QSplitter::Vertical);
|
||||
split2->setOrientation(Qt::Vertical);
|
||||
|
||||
// create config tree
|
||||
configView = new ConfigView(split2, "config");
|
||||
@@ -1313,58 +1312,58 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
menu = menuBar();
|
||||
toolBar = new QToolBar("Tools", this);
|
||||
|
||||
backAction = new QAction("Back", QPixmap(xpm_back), "Back", 0, this);
|
||||
backAction = new QAction("Back", QPixmap(xpm_back), _("Back"), 0, this);
|
||||
connect(backAction, SIGNAL(activated()), SLOT(goBack()));
|
||||
backAction->setEnabled(FALSE);
|
||||
QAction *quitAction = new QAction("Quit", "&Quit", CTRL+Key_Q, this);
|
||||
QAction *quitAction = new QAction("Quit", _("&Quit"), Qt::CTRL + Qt::Key_Q, this);
|
||||
connect(quitAction, SIGNAL(activated()), SLOT(close()));
|
||||
QAction *loadAction = new QAction("Load", QPixmap(xpm_load), "&Load", CTRL+Key_L, this);
|
||||
QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), Qt::CTRL + Qt::Key_L, this);
|
||||
connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
|
||||
saveAction = new QAction("Save", QPixmap(xpm_save), "&Save", CTRL+Key_S, this);
|
||||
saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), Qt::CTRL + Qt::Key_S, this);
|
||||
connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
|
||||
conf_set_changed_callback(conf_changed);
|
||||
// Set saveAction's initial state
|
||||
conf_changed();
|
||||
QAction *saveAsAction = new QAction("Save As...", "Save &As...", 0, this);
|
||||
QAction *saveAsAction = new QAction("Save As...", _("Save &As..."), 0, this);
|
||||
connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
|
||||
QAction *searchAction = new QAction("Find", "&Find", CTRL+Key_F, this);
|
||||
QAction *searchAction = new QAction("Find", _("&Find"), Qt::CTRL + Qt::Key_F, this);
|
||||
connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
|
||||
QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), "Split View", 0, this);
|
||||
QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
|
||||
connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView()));
|
||||
QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), "Split View", 0, this);
|
||||
QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
|
||||
connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
|
||||
QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), "Full View", 0, this);
|
||||
QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
|
||||
connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
|
||||
|
||||
QAction *showNameAction = new QAction(NULL, "Show Name", 0, this);
|
||||
QAction *showNameAction = new QAction(NULL, _("Show Name"), 0, this);
|
||||
showNameAction->setToggleAction(TRUE);
|
||||
connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
|
||||
connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, SLOT(setOn(bool)));
|
||||
showNameAction->setOn(configView->showName());
|
||||
QAction *showRangeAction = new QAction(NULL, "Show Range", 0, this);
|
||||
QAction *showRangeAction = new QAction(NULL, _("Show Range"), 0, this);
|
||||
showRangeAction->setToggleAction(TRUE);
|
||||
connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
|
||||
connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, SLOT(setOn(bool)));
|
||||
showRangeAction->setOn(configList->showRange);
|
||||
QAction *showDataAction = new QAction(NULL, "Show Data", 0, this);
|
||||
QAction *showDataAction = new QAction(NULL, _("Show Data"), 0, this);
|
||||
showDataAction->setToggleAction(TRUE);
|
||||
connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
|
||||
connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, SLOT(setOn(bool)));
|
||||
showDataAction->setOn(configList->showData);
|
||||
QAction *showAllAction = new QAction(NULL, "Show All Options", 0, this);
|
||||
QAction *showAllAction = new QAction(NULL, _("Show All Options"), 0, this);
|
||||
showAllAction->setToggleAction(TRUE);
|
||||
connect(showAllAction, SIGNAL(toggled(bool)), configView, SLOT(setShowAll(bool)));
|
||||
connect(showAllAction, SIGNAL(toggled(bool)), menuView, SLOT(setShowAll(bool)));
|
||||
showAllAction->setOn(configList->showAll);
|
||||
QAction *showDebugAction = new QAction(NULL, "Show Debug Info", 0, this);
|
||||
QAction *showDebugAction = new QAction(NULL, _("Show Debug Info"), 0, this);
|
||||
showDebugAction->setToggleAction(TRUE);
|
||||
connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
|
||||
connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, SLOT(setOn(bool)));
|
||||
showDebugAction->setOn(helpText->showDebug());
|
||||
|
||||
QAction *showIntroAction = new QAction(NULL, "Introduction", 0, this);
|
||||
QAction *showIntroAction = new QAction(NULL, _("Introduction"), 0, this);
|
||||
connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
|
||||
QAction *showAboutAction = new QAction(NULL, "About", 0, this);
|
||||
QAction *showAboutAction = new QAction(NULL, _("About"), 0, this);
|
||||
connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
|
||||
|
||||
// init tool bar
|
||||
@@ -1379,7 +1378,7 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
|
||||
// create config menu
|
||||
QPopupMenu* config = new QPopupMenu(this);
|
||||
menu->insertItem("&File", config);
|
||||
menu->insertItem(_("&File"), config);
|
||||
loadAction->addTo(config);
|
||||
saveAction->addTo(config);
|
||||
saveAsAction->addTo(config);
|
||||
@@ -1388,12 +1387,12 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
|
||||
// create edit menu
|
||||
QPopupMenu* editMenu = new QPopupMenu(this);
|
||||
menu->insertItem("&Edit", editMenu);
|
||||
menu->insertItem(_("&Edit"), editMenu);
|
||||
searchAction->addTo(editMenu);
|
||||
|
||||
// create options menu
|
||||
QPopupMenu* optionMenu = new QPopupMenu(this);
|
||||
menu->insertItem("&Option", optionMenu);
|
||||
menu->insertItem(_("&Option"), optionMenu);
|
||||
showNameAction->addTo(optionMenu);
|
||||
showRangeAction->addTo(optionMenu);
|
||||
showDataAction->addTo(optionMenu);
|
||||
@@ -1404,7 +1403,7 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
// create help menu
|
||||
QPopupMenu* helpMenu = new QPopupMenu(this);
|
||||
menu->insertSeparator();
|
||||
menu->insertItem("&Help", helpMenu);
|
||||
menu->insertItem(_("&Help"), helpMenu);
|
||||
showIntroAction->addTo(helpMenu);
|
||||
showAboutAction->addTo(helpMenu);
|
||||
|
||||
@@ -1448,27 +1447,27 @@ ConfigMainWindow::ConfigMainWindow(void)
|
||||
|
||||
void ConfigMainWindow::loadConfig(void)
|
||||
{
|
||||
QString s = QFileDialog::getOpenFileName(".config", NULL, this);
|
||||
QString s = QFileDialog::getOpenFileName(conf_get_configname(), NULL, this);
|
||||
if (s.isNull())
|
||||
return;
|
||||
if (conf_read(QFile::encodeName(s)))
|
||||
QMessageBox::information(this, "qconf", "Unable to load configuration!");
|
||||
QMessageBox::information(this, "qconf", _("Unable to load configuration!"));
|
||||
ConfigView::updateListAll();
|
||||
}
|
||||
|
||||
void ConfigMainWindow::saveConfig(void)
|
||||
{
|
||||
if (conf_write(NULL))
|
||||
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
||||
QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
|
||||
}
|
||||
|
||||
void ConfigMainWindow::saveConfigAs(void)
|
||||
{
|
||||
QString s = QFileDialog::getSaveFileName(".config", NULL, this);
|
||||
QString s = QFileDialog::getSaveFileName(conf_get_configname(), NULL, this);
|
||||
if (s.isNull())
|
||||
return;
|
||||
if (conf_write(QFile::encodeName(s)))
|
||||
QMessageBox::information(this, "qconf", "Unable to save configuration!");
|
||||
QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
|
||||
}
|
||||
|
||||
void ConfigMainWindow::searchConfig(void)
|
||||
@@ -1525,6 +1524,8 @@ void ConfigMainWindow::setMenuLink(struct menu *menu)
|
||||
case fullMode:
|
||||
list = configList;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (list) {
|
||||
@@ -1610,16 +1611,18 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
|
||||
{
|
||||
if (!conf_get_changed()) {
|
||||
e->accept();
|
||||
conf_write_autoconf();
|
||||
return;
|
||||
}
|
||||
QMessageBox mb("qconf", "Save configuration?", QMessageBox::Warning,
|
||||
QMessageBox mb("qconf", _("Save configuration?"), QMessageBox::Warning,
|
||||
QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape);
|
||||
mb.setButtonText(QMessageBox::Yes, "&Save Changes");
|
||||
mb.setButtonText(QMessageBox::No, "&Discard Changes");
|
||||
mb.setButtonText(QMessageBox::Cancel, "Cancel Exit");
|
||||
mb.setButtonText(QMessageBox::Yes, _("&Save Changes"));
|
||||
mb.setButtonText(QMessageBox::No, _("&Discard Changes"));
|
||||
mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
|
||||
switch (mb.exec()) {
|
||||
case QMessageBox::Yes:
|
||||
conf_write(NULL);
|
||||
conf_write_autoconf();
|
||||
case QMessageBox::No:
|
||||
e->accept();
|
||||
break;
|
||||
@@ -1631,7 +1634,7 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
|
||||
|
||||
void ConfigMainWindow::showIntro(void)
|
||||
{
|
||||
static char str[] = "Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
|
||||
static const QString str = _("Welcome to the qconf graphical kernel configuration tool for Linux.\n\n"
|
||||
"For each option, a blank box indicates the feature is disabled, a check\n"
|
||||
"indicates it is enabled, and a dot indicates that it is to be compiled\n"
|
||||
"as a module. Clicking on the box will cycle through the three states.\n\n"
|
||||
@@ -1641,15 +1644,15 @@ void ConfigMainWindow::showIntro(void)
|
||||
"options must be enabled to support the option you are interested in, you can\n"
|
||||
"still view the help of a grayed-out option.\n\n"
|
||||
"Toggling Show Debug Info under the Options menu will show the dependencies,\n"
|
||||
"which you can then match by examining other options.\n\n";
|
||||
"which you can then match by examining other options.\n\n");
|
||||
|
||||
QMessageBox::information(this, "qconf", str);
|
||||
}
|
||||
|
||||
void ConfigMainWindow::showAbout(void)
|
||||
{
|
||||
static char str[] = "qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
|
||||
"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n";
|
||||
static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
|
||||
"Bug reports and feature request can also be entered at http://bugzilla.kernel.org/\n");
|
||||
|
||||
QMessageBox::information(this, "qconf", str);
|
||||
}
|
||||
@@ -1674,6 +1677,9 @@ void ConfigMainWindow::saveSettings(void)
|
||||
case fullMode :
|
||||
entry = "full";
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
configSettings->writeEntry("/listMode", entry);
|
||||
|
||||
@@ -1707,7 +1713,7 @@ static const char *progname;
|
||||
|
||||
static void usage(void)
|
||||
{
|
||||
printf("%s <config>\n", progname);
|
||||
printf(_("%s <config>\n"), progname);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,18 +34,19 @@ struct symbol *sym_defconfig_list;
|
||||
struct symbol *modules_sym;
|
||||
tristate modules_val;
|
||||
|
||||
struct expr *sym_env_list;
|
||||
|
||||
void sym_add_default(struct symbol *sym, const char *def)
|
||||
{
|
||||
struct property *prop = prop_alloc(P_DEFAULT, sym);
|
||||
|
||||
prop->expr = expr_alloc_symbol(sym_lookup(def, 1));
|
||||
prop->expr = expr_alloc_symbol(sym_lookup(def, SYMBOL_CONST));
|
||||
}
|
||||
|
||||
void sym_init(void)
|
||||
{
|
||||
struct symbol *sym;
|
||||
struct utsname uts;
|
||||
char *p;
|
||||
static bool inited = false;
|
||||
|
||||
if (inited)
|
||||
@@ -54,20 +55,6 @@ void sym_init(void)
|
||||
|
||||
uname(&uts);
|
||||
|
||||
sym = sym_lookup("ARCH", 0);
|
||||
sym->type = S_STRING;
|
||||
sym->flags |= SYMBOL_AUTO;
|
||||
p = getenv("ARCH");
|
||||
if (p)
|
||||
sym_add_default(sym, p);
|
||||
|
||||
sym = sym_lookup("BR2_VERSION", 0);
|
||||
sym->type = S_STRING;
|
||||
sym->flags |= SYMBOL_AUTO;
|
||||
p = getenv("BR2_VERSION");
|
||||
if (p)
|
||||
sym_add_default(sym, p);
|
||||
|
||||
sym = sym_lookup("UNAME_RELEASE", 0);
|
||||
sym->type = S_STRING;
|
||||
sym->flags |= SYMBOL_AUTO;
|
||||
@@ -117,6 +104,15 @@ struct property *sym_get_choice_prop(struct symbol *sym)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct property *sym_get_env_prop(struct symbol *sym)
|
||||
{
|
||||
struct property *prop;
|
||||
|
||||
for_all_properties(sym, prop, P_ENV)
|
||||
return prop;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct property *sym_get_default_prop(struct symbol *sym)
|
||||
{
|
||||
struct property *prop;
|
||||
@@ -199,7 +195,7 @@ static void sym_calc_visibility(struct symbol *sym)
|
||||
tri = no;
|
||||
for_all_prompts(sym, prop) {
|
||||
prop->visible.tri = expr_calc_value(prop->visible.expr);
|
||||
tri = E_OR(tri, prop->visible.tri);
|
||||
tri = EXPR_OR(tri, prop->visible.tri);
|
||||
}
|
||||
if (tri == mod && (sym->type != S_TRISTATE || modules_val == no))
|
||||
tri = yes;
|
||||
@@ -247,8 +243,7 @@ static struct symbol *sym_calc_choice(struct symbol *sym)
|
||||
|
||||
/* just get the first visible value */
|
||||
prop = sym_get_choice_prop(sym);
|
||||
for (e = prop->expr; e; e = e->left.expr) {
|
||||
def_sym = e->right.sym;
|
||||
expr_list_for_each_sym(prop->expr, e, def_sym) {
|
||||
sym_calc_visibility(def_sym);
|
||||
if (def_sym->visible != no)
|
||||
return def_sym;
|
||||
@@ -303,22 +298,30 @@ void sym_calc_value(struct symbol *sym)
|
||||
if (sym_is_choice_value(sym) && sym->visible == yes) {
|
||||
prop = sym_get_choice_prop(sym);
|
||||
newval.tri = (prop_get_symbol(prop)->curr.val == sym) ? yes : no;
|
||||
} else if (E_OR(sym->visible, sym->rev_dep.tri) != no) {
|
||||
sym->flags |= SYMBOL_WRITE;
|
||||
if (sym_has_value(sym))
|
||||
newval.tri = sym->def[S_DEF_USER].tri;
|
||||
else if (!sym_is_choice(sym)) {
|
||||
prop = sym_get_default_prop(sym);
|
||||
if (prop)
|
||||
newval.tri = expr_calc_value(prop->expr);
|
||||
}
|
||||
newval.tri = E_OR(E_AND(newval.tri, sym->visible), sym->rev_dep.tri);
|
||||
} else if (!sym_is_choice(sym)) {
|
||||
prop = sym_get_default_prop(sym);
|
||||
if (prop) {
|
||||
} else {
|
||||
if (sym->visible != no) {
|
||||
/* if the symbol is visible use the user value
|
||||
* if available, otherwise try the default value
|
||||
*/
|
||||
sym->flags |= SYMBOL_WRITE;
|
||||
newval.tri = expr_calc_value(prop->expr);
|
||||
if (sym_has_value(sym)) {
|
||||
newval.tri = EXPR_AND(sym->def[S_DEF_USER].tri,
|
||||
sym->visible);
|
||||
goto calc_newval;
|
||||
}
|
||||
}
|
||||
if (sym->rev_dep.tri != no)
|
||||
sym->flags |= SYMBOL_WRITE;
|
||||
if (!sym_is_choice(sym)) {
|
||||
prop = sym_get_default_prop(sym);
|
||||
if (prop) {
|
||||
sym->flags |= SYMBOL_WRITE;
|
||||
newval.tri = EXPR_AND(expr_calc_value(prop->expr),
|
||||
prop->visible.tri);
|
||||
}
|
||||
}
|
||||
calc_newval:
|
||||
newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
|
||||
}
|
||||
if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
|
||||
newval.tri = yes;
|
||||
@@ -361,14 +364,19 @@ void sym_calc_value(struct symbol *sym)
|
||||
}
|
||||
|
||||
if (sym_is_choice(sym)) {
|
||||
struct symbol *choice_sym;
|
||||
int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
|
||||
|
||||
prop = sym_get_choice_prop(sym);
|
||||
for (e = prop->expr; e; e = e->left.expr) {
|
||||
e->right.sym->flags |= flags;
|
||||
expr_list_for_each_sym(prop->expr, e, choice_sym) {
|
||||
choice_sym->flags |= flags;
|
||||
if (flags & SYMBOL_CHANGED)
|
||||
sym_set_changed(e->right.sym);
|
||||
sym_set_changed(choice_sym);
|
||||
}
|
||||
}
|
||||
|
||||
if (sym->flags & SYMBOL_AUTO)
|
||||
sym->flags &= ~SYMBOL_WRITE;
|
||||
}
|
||||
|
||||
void sym_clear_all_valid(void)
|
||||
@@ -643,7 +651,7 @@ bool sym_is_changable(struct symbol *sym)
|
||||
return sym->visible > sym->rev_dep.tri;
|
||||
}
|
||||
|
||||
struct symbol *sym_lookup(const char *name, int isconst)
|
||||
struct symbol *sym_lookup(const char *name, int flags)
|
||||
{
|
||||
struct symbol *symbol;
|
||||
const char *ptr;
|
||||
@@ -663,11 +671,10 @@ struct symbol *sym_lookup(const char *name, int isconst)
|
||||
hash &= 0xff;
|
||||
|
||||
for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
|
||||
if (!strcmp(symbol->name, name)) {
|
||||
if ((isconst && symbol->flags & SYMBOL_CONST) ||
|
||||
(!isconst && !(symbol->flags & SYMBOL_CONST)))
|
||||
return symbol;
|
||||
}
|
||||
if (!strcmp(symbol->name, name) &&
|
||||
(flags ? symbol->flags & flags
|
||||
: !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE))))
|
||||
return symbol;
|
||||
}
|
||||
new_name = strdup(name);
|
||||
} else {
|
||||
@@ -679,8 +686,7 @@ struct symbol *sym_lookup(const char *name, int isconst)
|
||||
memset(symbol, 0, sizeof(*symbol));
|
||||
symbol->name = new_name;
|
||||
symbol->type = S_UNKNOWN;
|
||||
if (isconst)
|
||||
symbol->flags |= SYMBOL_CONST;
|
||||
symbol->flags |= flags;
|
||||
|
||||
symbol->next = symbol_hash[hash];
|
||||
symbol_hash[hash] = symbol;
|
||||
@@ -754,8 +760,6 @@ struct symbol **sym_re_search(const char *pattern)
|
||||
}
|
||||
|
||||
|
||||
struct symbol *sym_check_deps(struct symbol *sym);
|
||||
|
||||
static struct symbol *sym_check_expr_deps(struct expr *e)
|
||||
{
|
||||
struct symbol *sym;
|
||||
@@ -787,6 +791,65 @@ static struct symbol *sym_check_expr_deps(struct expr *e)
|
||||
}
|
||||
|
||||
/* return NULL when dependencies are OK */
|
||||
static struct symbol *sym_check_sym_deps(struct symbol *sym)
|
||||
{
|
||||
struct symbol *sym2;
|
||||
struct property *prop;
|
||||
|
||||
sym2 = sym_check_expr_deps(sym->rev_dep.expr);
|
||||
if (sym2)
|
||||
return sym2;
|
||||
|
||||
for (prop = sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type == P_CHOICE || prop->type == P_SELECT)
|
||||
continue;
|
||||
sym2 = sym_check_expr_deps(prop->visible.expr);
|
||||
if (sym2)
|
||||
break;
|
||||
if (prop->type != P_DEFAULT || sym_is_choice(sym))
|
||||
continue;
|
||||
sym2 = sym_check_expr_deps(prop->expr);
|
||||
if (sym2)
|
||||
break;
|
||||
}
|
||||
|
||||
return sym2;
|
||||
}
|
||||
|
||||
static struct symbol *sym_check_choice_deps(struct symbol *choice)
|
||||
{
|
||||
struct symbol *sym, *sym2;
|
||||
struct property *prop;
|
||||
struct expr *e;
|
||||
|
||||
prop = sym_get_choice_prop(choice);
|
||||
expr_list_for_each_sym(prop->expr, e, sym)
|
||||
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
|
||||
|
||||
choice->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
|
||||
sym2 = sym_check_sym_deps(choice);
|
||||
choice->flags &= ~SYMBOL_CHECK;
|
||||
if (sym2)
|
||||
goto out;
|
||||
|
||||
expr_list_for_each_sym(prop->expr, e, sym) {
|
||||
sym2 = sym_check_sym_deps(sym);
|
||||
if (sym2) {
|
||||
fprintf(stderr, " -> %s", sym->name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
out:
|
||||
expr_list_for_each_sym(prop->expr, e, sym)
|
||||
sym->flags &= ~SYMBOL_CHECK;
|
||||
|
||||
if (sym2 && sym_is_choice_value(sym2) &&
|
||||
prop_get_symbol(sym_get_choice_prop(sym2)) == choice)
|
||||
sym2 = choice;
|
||||
|
||||
return sym2;
|
||||
}
|
||||
|
||||
struct symbol *sym_check_deps(struct symbol *sym)
|
||||
{
|
||||
struct symbol *sym2;
|
||||
@@ -794,33 +857,34 @@ struct symbol *sym_check_deps(struct symbol *sym)
|
||||
|
||||
if (sym->flags & SYMBOL_CHECK) {
|
||||
fprintf(stderr, "%s:%d:error: found recursive dependency: %s",
|
||||
sym->prop->file->name, sym->prop->lineno, sym->name);
|
||||
sym->prop->file->name, sym->prop->lineno,
|
||||
sym->name ? sym->name : "<choice>");
|
||||
return sym;
|
||||
}
|
||||
if (sym->flags & SYMBOL_CHECKED)
|
||||
return NULL;
|
||||
|
||||
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
|
||||
sym2 = sym_check_expr_deps(sym->rev_dep.expr);
|
||||
if (sym2)
|
||||
goto out;
|
||||
|
||||
for (prop = sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type == P_CHOICE || prop->type == P_SELECT)
|
||||
continue;
|
||||
sym2 = sym_check_expr_deps(prop->visible.expr);
|
||||
if (sym2)
|
||||
goto out;
|
||||
if (prop->type != P_DEFAULT || sym_is_choice(sym))
|
||||
continue;
|
||||
sym2 = sym_check_expr_deps(prop->expr);
|
||||
if (sym2)
|
||||
goto out;
|
||||
if (sym_is_choice_value(sym)) {
|
||||
/* for choice groups start the check with main choice symbol */
|
||||
prop = sym_get_choice_prop(sym);
|
||||
sym2 = sym_check_deps(prop_get_symbol(prop));
|
||||
} else if (sym_is_choice(sym)) {
|
||||
sym2 = sym_check_choice_deps(sym);
|
||||
} else {
|
||||
sym->flags |= (SYMBOL_CHECK | SYMBOL_CHECKED);
|
||||
sym2 = sym_check_sym_deps(sym);
|
||||
sym->flags &= ~SYMBOL_CHECK;
|
||||
}
|
||||
out:
|
||||
if (sym2)
|
||||
fprintf(stderr, " -> %s%s", sym->name, sym2 == sym? "\n": "");
|
||||
sym->flags &= ~SYMBOL_CHECK;
|
||||
|
||||
if (sym2) {
|
||||
fprintf(stderr, " -> %s", sym->name ? sym->name : "<choice>");
|
||||
if (sym2 == sym) {
|
||||
fprintf(stderr, "\n");
|
||||
zconfnerrs++;
|
||||
sym2 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return sym2;
|
||||
}
|
||||
|
||||
@@ -849,7 +913,7 @@ struct property *prop_alloc(enum prop_type type, struct symbol *sym)
|
||||
struct symbol *prop_get_symbol(struct property *prop)
|
||||
{
|
||||
if (prop->expr && (prop->expr->type == E_SYMBOL ||
|
||||
prop->expr->type == E_CHOICE))
|
||||
prop->expr->type == E_LIST))
|
||||
return prop->expr->left.sym;
|
||||
return NULL;
|
||||
}
|
||||
@@ -859,6 +923,8 @@ const char *prop_get_type_name(enum prop_type type)
|
||||
switch (type) {
|
||||
case P_PROMPT:
|
||||
return "prompt";
|
||||
case P_ENV:
|
||||
return "env";
|
||||
case P_COMMENT:
|
||||
return "comment";
|
||||
case P_MENU:
|
||||
@@ -876,3 +942,32 @@ const char *prop_get_type_name(enum prop_type type)
|
||||
}
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
void prop_add_env(const char *env)
|
||||
{
|
||||
struct symbol *sym, *sym2;
|
||||
struct property *prop;
|
||||
char *p;
|
||||
|
||||
sym = current_entry->sym;
|
||||
sym->flags |= SYMBOL_AUTO;
|
||||
for_all_properties(sym, prop, P_ENV) {
|
||||
sym2 = prop_get_symbol(prop);
|
||||
if (strcmp(sym2->name, env))
|
||||
menu_warn(current_entry, "redefining environment symbol from %s",
|
||||
sym2->name);
|
||||
return;
|
||||
}
|
||||
|
||||
prop = prop_alloc(P_ENV, sym);
|
||||
prop->expr = expr_alloc_symbol(sym_lookup(env, SYMBOL_CONST));
|
||||
|
||||
sym_env_list = expr_alloc_one(E_LIST, sym_env_list);
|
||||
sym_env_list->right.sym = sym;
|
||||
|
||||
p = getenv(env);
|
||||
if (p)
|
||||
sym_add_default(sym, p);
|
||||
else
|
||||
menu_warn(current_entry, "environment variable %s undefined", env);
|
||||
}
|
||||
|
||||
@@ -132,6 +132,8 @@ next:
|
||||
/* write a dependency file as used by kbuild to track dependencies */
|
||||
int file_write_dep(const char *name)
|
||||
{
|
||||
struct symbol *sym, *env_sym;
|
||||
struct expr *e;
|
||||
struct file *file;
|
||||
FILE *out;
|
||||
|
||||
@@ -147,12 +149,28 @@ int file_write_dep(const char *name)
|
||||
else
|
||||
fprintf(out, "\t%s\n", file->name);
|
||||
}
|
||||
fprintf(out, "\n$(BR2_DEPENDS_DIR)/config/auto.conf: \\\n"
|
||||
"\t$(deps_config)\n\n"
|
||||
"$(deps_config): ;\n");
|
||||
fprintf(out, "\n%s: \\\n"
|
||||
"\t$(deps_config)\n\n", conf_get_autoconfig_name());
|
||||
|
||||
expr_list_for_each_sym(sym_env_list, e, sym) {
|
||||
struct property *prop;
|
||||
const char *value;
|
||||
|
||||
prop = sym_get_env_prop(sym);
|
||||
env_sym = prop_get_symbol(prop);
|
||||
if (!env_sym)
|
||||
continue;
|
||||
value = getenv(env_sym->name);
|
||||
if (!value)
|
||||
value = "";
|
||||
fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
|
||||
fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
|
||||
fprintf(out, "endif\n");
|
||||
}
|
||||
|
||||
fprintf(out, "\n$(deps_config): ;\n");
|
||||
fclose(out);
|
||||
rename("..config.tmp", name);
|
||||
|
||||
return write_make_deps(NULL);
|
||||
}
|
||||
|
||||
@@ -162,7 +180,7 @@ struct gstr str_new(void)
|
||||
{
|
||||
struct gstr gs;
|
||||
gs.s = malloc(sizeof(char) * 64);
|
||||
gs.len = 16;
|
||||
gs.len = 64;
|
||||
strcpy(gs.s, "\0");
|
||||
return gs;
|
||||
}
|
||||
|
||||
@@ -35,10 +35,10 @@ int, T_TYPE, TF_COMMAND, S_INT
|
||||
hex, T_TYPE, TF_COMMAND, S_HEX
|
||||
string, T_TYPE, TF_COMMAND, S_STRING
|
||||
select, T_SELECT, TF_COMMAND
|
||||
enable, T_SELECT, TF_COMMAND
|
||||
range, T_RANGE, TF_COMMAND
|
||||
option, T_OPTION, TF_COMMAND
|
||||
on, T_ON, TF_PARAM
|
||||
modules, T_OPT_MODULES, TF_OPTION
|
||||
defconfig_list, T_OPT_DEFCONFIG_LIST,TF_OPTION
|
||||
env, T_OPT_ENV, TF_OPTION
|
||||
%%
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user