Compare commits
697
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2849650f11 | ||
|
|
b484ff0b6d | ||
|
|
d447fbca77 | ||
|
|
17374f345d | ||
|
|
0c991854a1 | ||
|
|
1f3bc5f20c | ||
|
|
d582d3ae5a | ||
|
|
8c82f0e5c3 | ||
|
|
219025727d | ||
|
|
f2f103b986 | ||
|
|
d6d81e6ece | ||
|
|
c01635e03e | ||
|
|
ae242720b6 | ||
|
|
11ab365324 | ||
|
|
a47eafe868 | ||
|
|
0e7ec2ffcd | ||
|
|
aedd36ac8b | ||
|
|
95015d474e | ||
|
|
2643658b6f | ||
|
|
7709cb1355 | ||
|
|
b34d26ff25 | ||
|
|
e00a07b885 | ||
|
|
5dae561d33 | ||
|
|
96efeadd6e | ||
|
|
437716c5b4 | ||
|
|
d99edade72 | ||
|
|
4dd92180c6 | ||
|
|
3628f16dd6 | ||
|
|
1eab22f0da | ||
|
|
bf80d5ad0e | ||
|
|
91662a5b69 | ||
|
|
9c9529f798 | ||
|
|
f81da5e57a | ||
|
|
31a6c2fac8 | ||
|
|
ba11d334db | ||
|
|
48f7e389fb | ||
|
|
4d1e0b4409 | ||
|
|
2a22858fe7 | ||
|
|
b8738dd623 | ||
|
|
05c85ddc21 | ||
|
|
04788421fe | ||
|
|
49003242d1 | ||
|
|
185f43afef | ||
|
|
6727b46454 | ||
|
|
03f3b95248 | ||
|
|
5641227c9b | ||
|
|
fabb84a785 | ||
|
|
e424af32b7 | ||
|
|
ac09581cc2 | ||
|
|
c9c84ca7ee | ||
|
|
cf913621f1 | ||
|
|
579f0746f0 | ||
|
|
cfbdf7757b | ||
|
|
139eb64b43 | ||
|
|
66a77d129a | ||
|
|
8899f3fbfb | ||
|
|
1110e84cce | ||
|
|
dc79d94c38 | ||
|
|
d9879c2533 | ||
|
|
5454c4eaa3 | ||
|
|
4ac47a0219 | ||
|
|
edde8eff9f | ||
|
|
e3fabe9a44 | ||
|
|
5355d387e9 | ||
|
|
e1561ed1df | ||
|
|
7e608c5728 | ||
|
|
32f503f738 | ||
|
|
d58693b0f0 | ||
|
|
837a249f01 | ||
|
|
e9f9f14f22 | ||
|
|
b301f4ea01 | ||
|
|
86a3a6475f | ||
|
|
548d000891 | ||
|
|
b2afca4560 | ||
|
|
2d1da5ab13 | ||
|
|
8777c9477a | ||
|
|
5b11e9adff | ||
|
|
ab0d4dbc69 | ||
|
|
95dff31951 | ||
|
|
447d67d5f3 | ||
|
|
95e174e2fb | ||
|
|
81f6edbfd5 | ||
|
|
3141c3976b | ||
|
|
256ebcd827 | ||
|
|
474376f30a | ||
|
|
2f1fe55f66 | ||
|
|
ef7b08ce7f | ||
|
|
e0e34f0a13 | ||
|
|
db8dbbf371 | ||
|
|
0a99e7a5c1 | ||
|
|
65884f4d9e | ||
|
|
af87944585 | ||
|
|
36dbe2d74e | ||
|
|
8d8a785bd2 | ||
|
|
d8fbfc7aa1 | ||
|
|
ddce7c28e4 | ||
|
|
fcad0ec015 | ||
|
|
730ab7b019 | ||
|
|
40317f079e | ||
|
|
c0b7d762b2 | ||
|
|
bc2e30453b | ||
|
|
fb72160caf | ||
|
|
85f57859fd | ||
|
|
7b9432d564 | ||
|
|
effab3f91a | ||
|
|
9d47ae824c | ||
|
|
ba8625a701 | ||
|
|
dd8dcb8228 | ||
|
|
061afc7993 | ||
|
|
b64402ede2 | ||
|
|
a14ada5730 | ||
|
|
33db761551 | ||
|
|
1d3e97f2ab | ||
|
|
f7a44ad101 | ||
|
|
7b7a76e161 | ||
|
|
55ecae3e58 | ||
|
|
5a99e527ff | ||
|
|
5e33dabda1 | ||
|
|
fd9b3b2260 | ||
|
|
7fd74fc7a3 | ||
|
|
4deed587e7 | ||
|
|
a3f97eeeeb | ||
|
|
db3115cee9 | ||
|
|
cc201fdcaa | ||
|
|
cec97ebc6f | ||
|
|
73636c2ed0 | ||
|
|
8f6ecbf37b | ||
|
|
4fb2eefac2 | ||
|
|
a36396992d | ||
|
|
e8e574fbe4 | ||
|
|
23e064ad29 | ||
|
|
1a94c70336 | ||
|
|
8581806558 | ||
|
|
e76ea37772 | ||
|
|
2c2deb87f8 | ||
|
|
f10a5ae4d7 | ||
|
|
4b5e39c89c | ||
|
|
cfbbb23141 | ||
|
|
a9f265d166 | ||
|
|
d3f813a14e | ||
|
|
2cda677d06 | ||
|
|
6bd86d1044 | ||
|
|
0f81ecf5f4 | ||
|
|
4e673656a1 | ||
|
|
014924ba89 | ||
|
|
82f5a4ab29 | ||
|
|
175d934cff | ||
|
|
8c86207258 | ||
|
|
d74b7eb144 | ||
|
|
482e771af1 | ||
|
|
3948fcad2d | ||
|
|
bad6c9a427 | ||
|
|
9a64fd7d55 | ||
|
|
91977159ee | ||
|
|
3fab117e4e | ||
|
|
f6f852fd93 | ||
|
|
75825a9f01 | ||
|
|
9ff0f4987f | ||
|
|
8157784483 | ||
|
|
177c401e02 | ||
|
|
0a010a59eb | ||
|
|
779b77a164 | ||
|
|
a443b9f7e7 | ||
|
|
1e4824a841 | ||
|
|
61db4cfac5 | ||
|
|
ca7a1973e2 | ||
|
|
d050f1e622 | ||
|
|
47f32a76ef | ||
|
|
8cb86a583a | ||
|
|
c0da680f13 | ||
|
|
742e059da1 | ||
|
|
97dd7d5103 | ||
|
|
8e12f4a21c | ||
|
|
7601f20d70 | ||
|
|
e8ce1db471 | ||
|
|
ee7fc26de1 | ||
|
|
2fbdee19da | ||
|
|
0e91183300 | ||
|
|
aaba8c1080 | ||
|
|
d4899bd4d5 | ||
|
|
f8132f932d | ||
|
|
33339ae595 | ||
|
|
ecdc14f535 | ||
|
|
7e12b9f47c | ||
|
|
80150a18d3 | ||
|
|
818156f6f7 | ||
|
|
be63ba99ca | ||
|
|
a26305d428 | ||
|
|
e518b22b72 | ||
|
|
9a313f767f | ||
|
|
6a0667567d | ||
|
|
36a28fcb0c | ||
|
|
05f025c075 | ||
|
|
5fd99e62ed | ||
|
|
5653bc61a4 | ||
|
|
0df34b4c96 | ||
|
|
b2fbf93df0 | ||
|
|
c5c93724fe | ||
|
|
0c749d96ea | ||
|
|
928858457b | ||
|
|
bdead39f63 | ||
|
|
702b42eaf3 | ||
|
|
43afcc0d99 | ||
|
|
fe941a26a3 | ||
|
|
ab7c09dc8e | ||
|
|
34b4a490b1 | ||
|
|
989e39d995 | ||
|
|
e2ee223dc2 | ||
|
|
69f018c49e | ||
|
|
fae09456ae | ||
|
|
9f9c3326fe | ||
|
|
21e5ffbcf8 | ||
|
|
ea1499a372 | ||
|
|
c5b5a984cd | ||
|
|
0fcf1d1ae7 | ||
|
|
5fccfed4f4 | ||
|
|
c4d060bf80 | ||
|
|
e40505e489 | ||
|
|
61cd433131 | ||
|
|
e076ae756d | ||
|
|
8215c0ac0e | ||
|
|
b222d4386e | ||
|
|
4d62de3898 | ||
|
|
0ad87649d4 | ||
|
|
9f9a9ac426 | ||
|
|
71d0615e98 | ||
|
|
f3db59d990 | ||
|
|
bc3e691a1e | ||
|
|
51b011ce24 | ||
|
|
d758f4a8a7 | ||
|
|
33ae9f5d44 | ||
|
|
ab1d761865 | ||
|
|
f2e7dda910 | ||
|
|
36b4003118 | ||
|
|
f40b08d8f0 | ||
|
|
250a3987cf | ||
|
|
9688f343a5 | ||
|
|
1fceb2207a | ||
|
|
fa76e4a8c9 | ||
|
|
4091b9c87e | ||
|
|
7d637362b7 | ||
|
|
deb9fa482d | ||
|
|
344009bf26 | ||
|
|
54ae254537 | ||
|
|
b366750e11 | ||
|
|
868b20ce4e | ||
|
|
2b255d0ebf | ||
|
|
b1d65b62db | ||
|
|
1071385896 | ||
|
|
29005ef7b1 | ||
|
|
29ef73f21d | ||
|
|
78cf6e63ff | ||
|
|
5fb63a09f9 | ||
|
|
595891729e | ||
|
|
f285c0a2e5 | ||
|
|
ae66b24369 | ||
|
|
40de3c67cd | ||
|
|
d13cfe10f6 | ||
|
|
a42caac805 | ||
|
|
0539191d18 | ||
|
|
1eb5a700f9 | ||
|
|
e61eb409fd | ||
|
|
ce7ad480f4 | ||
|
|
0e1a057449 | ||
|
|
f87e378d48 | ||
|
|
c2b004ba0e | ||
|
|
22fdcfc71a | ||
|
|
28c1ca1240 | ||
|
|
7ae5c3f7a6 | ||
|
|
5e4e5f7d9d | ||
|
|
f4ca1325ae | ||
|
|
996be85843 | ||
|
|
9a2915ce66 | ||
|
|
b2c5969aff | ||
|
|
21dc5dc92b | ||
|
|
2200ffa8b0 | ||
|
|
3345b25962 | ||
|
|
9edf2418e0 | ||
|
|
1fb87cd196 | ||
|
|
e3fb74942a | ||
|
|
c6a97eb9ce | ||
|
|
82bdbdba24 | ||
|
|
4e0c8b55fb | ||
|
|
afa9f824e7 | ||
|
|
02a2151b2b | ||
|
|
138c2a6b97 | ||
|
|
dffdee966f | ||
|
|
dec5fcd50b | ||
|
|
00e475c434 | ||
|
|
77a4276a8c | ||
|
|
7150b7f28d | ||
|
|
79c99aeb2b | ||
|
|
537f8bcbdb | ||
|
|
882b7d95cc | ||
|
|
980cdd61be | ||
|
|
65be8275da | ||
|
|
316da85818 | ||
|
|
5a6a378725 | ||
|
|
7e98ed93f4 | ||
|
|
9d85367679 | ||
|
|
827f0fd8ef | ||
|
|
23ee243113 | ||
|
|
92e9a5032b | ||
|
|
45c56b80c4 | ||
|
|
36610fb697 | ||
|
|
c97bbd3797 | ||
|
|
b82a51a5cd | ||
|
|
239c146a4b | ||
|
|
fd43c2b99a | ||
|
|
80c1f69b9e | ||
|
|
10d50aadf2 | ||
|
|
82030cd0af | ||
|
|
88dedb8824 | ||
|
|
f786feac0a | ||
|
|
17e11e2c92 | ||
|
|
f6f8436e97 | ||
|
|
3f012eb0f8 | ||
|
|
467102fa78 | ||
|
|
f37b0a10a5 | ||
|
|
12916e229c | ||
|
|
c4f8cc34df | ||
|
|
1ae4b50bde | ||
|
|
8f8d03df46 | ||
|
|
2d549662be | ||
|
|
d8e44dc685 | ||
|
|
1757a31750 | ||
|
|
d4f8f92eb0 | ||
|
|
93b1fe63e5 | ||
|
|
a8bbefbbb4 | ||
|
|
55530bfc0f | ||
|
|
e8a302017f | ||
|
|
b594c34f57 | ||
|
|
92d4cf15f0 | ||
|
|
cd8bd7f617 | ||
|
|
75d7409c4e | ||
|
|
cbedf2f7ca | ||
|
|
e4fce5d6ae | ||
|
|
e1eb298de1 | ||
|
|
82a1316f76 | ||
|
|
93582ad85e | ||
|
|
36b0169ed6 | ||
|
|
cdca9d3c8e | ||
|
|
736f4b3581 | ||
|
|
9d3d8d6fc0 | ||
|
|
e1a3f33a26 | ||
|
|
d5baa0381f | ||
|
|
18b3c49296 | ||
|
|
bf32650c83 | ||
|
|
720d566d03 | ||
|
|
9be71700eb | ||
|
|
72310c87a5 | ||
|
|
0137103f4b | ||
|
|
a74f6b2867 | ||
|
|
68d856f618 | ||
|
|
7e3a6c6b9d | ||
|
|
da62fca305 | ||
|
|
484ca368f0 | ||
|
|
a500c1f0b5 | ||
|
|
9db3099572 | ||
|
|
99d8fc975e | ||
|
|
4d18d39d99 | ||
|
|
0609a5729c | ||
|
|
ec4879ac5b | ||
|
|
6ec6fdaf8c | ||
|
|
2c722277ee | ||
|
|
f88db708ac | ||
|
|
fcf5ad1bd6 | ||
|
|
2f5789bdef | ||
|
|
37f5d8696d | ||
|
|
048dcf288a | ||
|
|
ca0ebe0f71 | ||
|
|
db833f2411 | ||
|
|
a7534dbb7e | ||
|
|
4841c48f81 | ||
|
|
d4e81f9ec8 | ||
|
|
1da0599e0e | ||
|
|
2149a04ca8 | ||
|
|
92a7740e90 | ||
|
|
795e9151a1 | ||
|
|
4569e3e430 | ||
|
|
40aab4c502 | ||
|
|
332a594fd4 | ||
|
|
7870978c2e | ||
|
|
23620b827c | ||
|
|
fa54bd542e | ||
|
|
259c5c0b5f | ||
|
|
515ba0dfb7 | ||
|
|
f84d9c55db | ||
|
|
64e36901a0 | ||
|
|
784534a31f | ||
|
|
f9136f6852 | ||
|
|
936d036ea3 | ||
|
|
e2bbb5664c | ||
|
|
9f26d96f09 | ||
|
|
05da316b9c | ||
|
|
217bc29352 | ||
|
|
a1c8991e13 | ||
|
|
0eedf3802f | ||
|
|
e6f1322b5e | ||
|
|
db117ca02b | ||
|
|
cf23e7506e | ||
|
|
1d6f9140ba | ||
|
|
4c086dfff7 | ||
|
|
020fa65724 | ||
|
|
56df93d128 | ||
|
|
ceeaf42bc8 | ||
|
|
b821f0e10f | ||
|
|
c8e0497d47 | ||
|
|
295bea21d0 | ||
|
|
a2c078fc6e | ||
|
|
c8ee919642 | ||
|
|
89535bb1ff | ||
|
|
bda0540cb9 | ||
|
|
c51b88d69a | ||
|
|
311686f63e | ||
|
|
06450206c4 | ||
|
|
a23caf677c | ||
|
|
51993c28c2 | ||
|
|
b83e0f1182 | ||
|
|
60e4990d1d | ||
|
|
8d18815f8a | ||
|
|
b939bd3768 | ||
|
|
ef43fe3571 | ||
|
|
a030120c55 | ||
|
|
02aa6f01f4 | ||
|
|
8356ecc16b | ||
|
|
bd42b8310d | ||
|
|
86dd55a74a | ||
|
|
4039f91cab | ||
|
|
87fa32dfe0 | ||
|
|
20e4708c8a | ||
|
|
1a957c2edc | ||
|
|
6c4bb3840c | ||
|
|
a07ef3d197 | ||
|
|
c5523a17e8 | ||
|
|
b3bce4d594 | ||
|
|
be002fbb96 | ||
|
|
c62965660b | ||
|
|
5e8df40523 | ||
|
|
d032aad1f4 | ||
|
|
8b1bdbb94d | ||
|
|
98a62a7652 | ||
|
|
b6539d6e90 | ||
|
|
e9ee4ae18a | ||
|
|
d086e2018c | ||
|
|
990fa8e3ee | ||
|
|
ed819fb926 | ||
|
|
48ba6b8c06 | ||
|
|
e48a25cfbb | ||
|
|
e843616cc6 | ||
|
|
4207147c24 | ||
|
|
20db5a4e84 | ||
|
|
7ca1e523f0 | ||
|
|
0e81b21dc8 | ||
|
|
eee744cd7e | ||
|
|
f1b684971d | ||
|
|
e8161a11bb | ||
|
|
889400d946 | ||
|
|
88bf1c9960 | ||
|
|
5ec65e43b2 | ||
|
|
32eddd66f5 | ||
|
|
bb492d4d69 | ||
|
|
b64d5ab966 | ||
|
|
1aa29b655a | ||
|
|
36ec47db49 | ||
|
|
94aeed2ecd | ||
|
|
5b36a432c8 | ||
|
|
9b64c05ff9 | ||
|
|
bfb329223a | ||
|
|
ca8b27d183 | ||
|
|
92d289f5d3 | ||
|
|
c6b399194d | ||
|
|
ebeb6a40c9 | ||
|
|
78b089bc1e | ||
|
|
cca74c6de6 | ||
|
|
3ae296f694 | ||
|
|
2be921d883 | ||
|
|
77d0493b70 | ||
|
|
85da28c534 | ||
|
|
7eaa849e9a | ||
|
|
fcc768e667 | ||
|
|
2943691181 | ||
|
|
1461b49385 | ||
|
|
56166e2dff | ||
|
|
d7de3aa24b | ||
|
|
2e9fef38c2 | ||
|
|
86aedc2d2a | ||
|
|
18abf6e509 | ||
|
|
024d86c07f | ||
|
|
57f36ed32a | ||
|
|
827a4a97b9 | ||
|
|
beb12d49e1 | ||
|
|
20ef1bd980 | ||
|
|
8f58f09c69 | ||
|
|
54d551c810 | ||
|
|
b1d61d10e1 | ||
|
|
a3a0f5b28d | ||
|
|
b670f6f992 | ||
|
|
e176965c1c | ||
|
|
32d149c8f6 | ||
|
|
8c847968c7 | ||
|
|
4014fe86d9 | ||
|
|
a01b659ace | ||
|
|
4e4af93d66 | ||
|
|
7a4506d6df | ||
|
|
7653d4952a | ||
|
|
aec876357c | ||
|
|
447b88a115 | ||
|
|
23461c75dd | ||
|
|
16a4a32e29 | ||
|
|
197cb1d1c1 | ||
|
|
f6b27cbb6c | ||
|
|
5abc0ea444 | ||
|
|
e36e562872 | ||
|
|
5450bed051 | ||
|
|
5f4739e2eb | ||
|
|
c3d1d597ab | ||
|
|
c3068bfd09 | ||
|
|
d1f237e28a | ||
|
|
059e8f4d1d | ||
|
|
e7e0600405 | ||
|
|
4b1a0668a8 | ||
|
|
38f421a2e7 | ||
|
|
f74e8f8f9b | ||
|
|
d305cae12c | ||
|
|
8ce53f9d1e | ||
|
|
2f2180b70d | ||
|
|
1f9d199522 | ||
|
|
9f16e25a3e | ||
|
|
943b7a4de7 | ||
|
|
075b783631 | ||
|
|
c7a21203de | ||
|
|
082419edf9 | ||
|
|
b98aa6eaa3 | ||
|
|
eb37094aa6 | ||
|
|
ba1c3810cb | ||
|
|
c2d3ccf3af | ||
|
|
92f31bd99a | ||
|
|
8fcfeb63ec | ||
|
|
77c6239465 | ||
|
|
2da148df56 | ||
|
|
6988f53fcb | ||
|
|
6d9437725a | ||
|
|
381f77c5bc | ||
|
|
4154c55eda | ||
|
|
9791c3896e | ||
|
|
eead1a7dc4 | ||
|
|
7bd49df30a | ||
|
|
984303dfe5 | ||
|
|
a789601e6d | ||
|
|
c58386f33f | ||
|
|
837d685d78 | ||
|
|
271c53ebdd | ||
|
|
a6f39a3c0c | ||
|
|
b6ff1c2f71 | ||
|
|
1abaaee658 | ||
|
|
e7bd2e97f3 | ||
|
|
0cc1db6459 | ||
|
|
31faa49bd8 | ||
|
|
4c7f38eb9b | ||
|
|
3fcffe1bb0 | ||
|
|
a1221eba70 | ||
|
|
17caddc0ab | ||
|
|
cb29a77c94 | ||
|
|
f931f61851 | ||
|
|
4e000a65e6 | ||
|
|
0f8c534502 | ||
|
|
ded667a612 | ||
|
|
ec7ce26ba8 | ||
|
|
8409dc039a | ||
|
|
178a4b059c | ||
|
|
7502b377b7 | ||
|
|
3d8817978c | ||
|
|
37cfe6bc4c | ||
|
|
e5c1e87f05 | ||
|
|
b80772a0f5 | ||
|
|
c1b8891a13 | ||
|
|
1e89ba68af | ||
|
|
020ed640e8 | ||
|
|
bcfd1f57ac | ||
|
|
6917586acf | ||
|
|
4a2cd966f5 | ||
|
|
74d830dc03 | ||
|
|
ca519fb817 | ||
|
|
65f649b7ba | ||
|
|
30dd367c0a | ||
|
|
21d3706192 | ||
|
|
e0fa94ba31 | ||
|
|
7f3298da85 | ||
|
|
8310d3634c | ||
|
|
0d79b53456 | ||
|
|
61a154e58b | ||
|
|
2d48543f2e | ||
|
|
2b5929bb13 | ||
|
|
a7bd85caba | ||
|
|
f30a9ace77 | ||
|
|
30c6c4a1be | ||
|
|
bb7978c95f | ||
|
|
23d0da5870 | ||
|
|
7c4a964002 | ||
|
|
e6668b1406 | ||
|
|
d7db7e81a5 | ||
|
|
9885b30c0e | ||
|
|
781798ccdf | ||
|
|
fbd207bd6b | ||
|
|
d809fa60c5 | ||
|
|
c5c623a546 | ||
|
|
1489b081a7 | ||
|
|
6ff0817bac | ||
|
|
64c0ca3690 | ||
|
|
aef439a175 | ||
|
|
7e57d63aeb | ||
|
|
d3c37b82a6 | ||
|
|
3620cba6d0 | ||
|
|
37e7467476 | ||
|
|
2f9091f559 | ||
|
|
b21b137805 | ||
|
|
15db9372f3 | ||
|
|
44f0f62252 | ||
|
|
0bc84fcaaf | ||
|
|
6a231e4b41 | ||
|
|
faa535386a | ||
|
|
db050901fa | ||
|
|
393085a4ba | ||
|
|
fc3d2114a6 | ||
|
|
a577ba376f | ||
|
|
7ec34c9b39 | ||
|
|
fbae8ad0ad | ||
|
|
c43871c866 | ||
|
|
a8ffbe97b0 | ||
|
|
06e52abedb | ||
|
|
e6c76dab66 | ||
|
|
276123efe0 | ||
|
|
43d2f417c7 | ||
|
|
1910225b7c | ||
|
|
a37ddcff2d | ||
|
|
20707f4e14 | ||
|
|
7a593a0fa7 | ||
|
|
0354e19c31 | ||
|
|
41e67d0f6f | ||
|
|
886c4fbebf | ||
|
|
e2e16011f0 | ||
|
|
d1342d6f2d | ||
|
|
c096f5a7d7 | ||
|
|
ac601b5b5f | ||
|
|
a503ee8217 | ||
|
|
5644272f03 | ||
|
|
252669cee6 | ||
|
|
f1ae67dbf0 | ||
|
|
bd0a567673 | ||
|
|
d34701ed38 | ||
|
|
c4dceae1c5 | ||
|
|
88ded9ceb8 | ||
|
|
f5dd43a9d1 | ||
|
|
126ad95fc4 | ||
|
|
f8663fc16f | ||
|
|
51658855fb | ||
|
|
50626cd81f | ||
|
|
09abeffda3 | ||
|
|
db92cc02b9 | ||
|
|
1363df08d2 | ||
|
|
b22565d1fd | ||
|
|
c80ba8dd42 | ||
|
|
7fb9b03ffd | ||
|
|
b1a22ac85f | ||
|
|
543bb1431f | ||
|
|
c5cbf8214a | ||
|
|
ffa742a552 | ||
|
|
9bc863ed3f | ||
|
|
24ea8c0414 | ||
|
|
6f70e44b7d | ||
|
|
95f55a761c | ||
|
|
aaec1ef3c5 | ||
|
|
266a3fd301 | ||
|
|
22dee7cb59 | ||
|
|
e8de078806 | ||
|
|
75d0f12135 | ||
|
|
e6548a3dc2 | ||
|
|
68cafad078 | ||
|
|
436aa98d67 | ||
|
|
4b831c3b2f | ||
|
|
80a6007009 | ||
|
|
8cdac64ccd | ||
|
|
a0d35c7ebf | ||
|
|
a3272546b1 | ||
|
|
14862b1ef3 | ||
|
|
c8f4a6e7de | ||
|
|
dfaf670436 | ||
|
|
ecf2c9b74b | ||
|
|
a850f8e29e | ||
|
|
837240f75f | ||
|
|
f6a6e486ff | ||
|
|
0370baa74c | ||
|
|
7b899b6dc5 | ||
|
|
4504df7117 | ||
|
|
f0d08887b8 | ||
|
|
6d59966c4e |
No files matched your search
@@ -0,0 +1,15 @@
|
|||||||
|
# EditorConfig
|
||||||
|
# http://EditorConfig.org
|
||||||
|
|
||||||
|
# top-most EditorConfig file
|
||||||
|
root = true
|
||||||
|
|
||||||
|
# LF end-of-line, insert an empty new line and UTF-8
|
||||||
|
[*]
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
charset = utf-8
|
||||||
|
|
||||||
|
# Tab indentation
|
||||||
|
[makefile,Makefile]
|
||||||
|
indent_style = tab
|
||||||
+111
@@ -0,0 +1,111 @@
|
|||||||
|
# Temp files
|
||||||
|
*~
|
||||||
|
*.swp
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
\#*
|
||||||
|
.\#*
|
||||||
|
*\#
|
||||||
|
*.sav
|
||||||
|
*.save
|
||||||
|
*.autosav
|
||||||
|
*.autosave
|
||||||
|
|
||||||
|
# Tests
|
||||||
|
/test-driver
|
||||||
|
/tests/Makefile
|
||||||
|
/tests/Makefile.in
|
||||||
|
/tests/test1
|
||||||
|
/tests/test1Formatted
|
||||||
|
/tests/test2
|
||||||
|
/tests/test2Formatted
|
||||||
|
/tests/test4
|
||||||
|
/tests/testReplaceExisting
|
||||||
|
/tests/testSubDir
|
||||||
|
/tests/test_cast
|
||||||
|
/tests/test_charcase
|
||||||
|
/tests/test_compare
|
||||||
|
/tests/test_deep_copy
|
||||||
|
/tests/test_double_serializer
|
||||||
|
/tests/test_float
|
||||||
|
/tests/test_int_add
|
||||||
|
/tests/test_json_pointer
|
||||||
|
/tests/test_locale
|
||||||
|
/tests/test_null
|
||||||
|
/tests/test_parse
|
||||||
|
/tests/test_parse_int64
|
||||||
|
/tests/test_printbuf
|
||||||
|
/tests/test_set_serializer
|
||||||
|
/tests/test_set_value
|
||||||
|
/tests/test_util_file
|
||||||
|
/tests/test_visit
|
||||||
|
/tests/*.vg.out
|
||||||
|
/tests/*.log
|
||||||
|
/tests/*.trs
|
||||||
|
|
||||||
|
# Generated folders
|
||||||
|
/Debug
|
||||||
|
/Release
|
||||||
|
/*/Debug
|
||||||
|
/*/Release
|
||||||
|
|
||||||
|
# Generated binaries
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
/libjson-c.la
|
||||||
|
/libjson.la
|
||||||
|
|
||||||
|
# Archives
|
||||||
|
*.zip
|
||||||
|
*.tar.*
|
||||||
|
*.tgz
|
||||||
|
*.gz
|
||||||
|
*.bz2
|
||||||
|
*.xz
|
||||||
|
*.lz
|
||||||
|
*.lzma
|
||||||
|
*.7z
|
||||||
|
*.dll
|
||||||
|
*.deb
|
||||||
|
*.rpm
|
||||||
|
*.apk
|
||||||
|
*.exe
|
||||||
|
*.msi
|
||||||
|
*.dmg
|
||||||
|
*.ipa
|
||||||
|
|
||||||
|
.deps/
|
||||||
|
.libs/
|
||||||
|
/aclocal.m4
|
||||||
|
/autoconf-archive
|
||||||
|
/autom4te.cache
|
||||||
|
/config.guess
|
||||||
|
/config.h.in
|
||||||
|
/json_config.h
|
||||||
|
/compile
|
||||||
|
/config.h
|
||||||
|
/config.log
|
||||||
|
/config.status
|
||||||
|
/config.sub
|
||||||
|
/configure
|
||||||
|
/depcomp
|
||||||
|
/doc
|
||||||
|
/install-sh
|
||||||
|
/json.pc
|
||||||
|
/json-c.pc
|
||||||
|
/json-c-uninstalled.pc
|
||||||
|
/libtool
|
||||||
|
/ltmain.sh
|
||||||
|
/Makefile
|
||||||
|
/Makefile.in
|
||||||
|
/missing
|
||||||
|
/stamp-h1
|
||||||
|
/stamp-h2
|
||||||
|
|
||||||
|
# cmake auto-generated files
|
||||||
|
/CMakeCache.txt
|
||||||
|
/CMakeFiles
|
||||||
|
/cmake_install.cmake
|
||||||
|
/include
|
||||||
|
/libjson-c.a
|
||||||
|
/libjson-c.so
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
language: cpp
|
||||||
|
|
||||||
|
compiler:
|
||||||
|
- gcc
|
||||||
|
- clang
|
||||||
|
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- cppcheck
|
||||||
|
|
||||||
|
os:
|
||||||
|
- linux
|
||||||
|
- osx
|
||||||
|
|
||||||
|
before_install:
|
||||||
|
- echo $LANG
|
||||||
|
- echo $LC_ALL
|
||||||
|
- set -e
|
||||||
|
|
||||||
|
install:
|
||||||
|
- sh autogen.sh
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- ./configure
|
||||||
|
|
||||||
|
script:
|
||||||
|
- make
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- make check
|
||||||
|
- if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
Jehiah Czebotar <jehiah@gmail.com>
|
||||||
|
Eric Haszlakiewicz <hawicz+json-c@gmail.com>
|
||||||
|
C. Watford (christopher.watford@gmail.com)
|
||||||
|
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
# This file is the top android makefile for all sub-modules.
|
||||||
|
#
|
||||||
|
# Suggested settings to build for Android:
|
||||||
|
#
|
||||||
|
# export PATH=$PATH:/opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/
|
||||||
|
# export SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm/usr/
|
||||||
|
# export LD=arm-linux-androideabi-ld
|
||||||
|
# export CC="arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-9/arch-arm"
|
||||||
|
#
|
||||||
|
# Then run autogen.sh, configure and make.
|
||||||
|
#
|
||||||
|
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
json_c_TOP := $(LOCAL_PATH)
|
||||||
|
|
||||||
|
JSON_C_BUILT_SOURCES := Android.mk
|
||||||
|
|
||||||
|
JSON_C_BUILT_SOURCES := $(patsubst %, $(abspath $(json_c_TOP))/%, $(JSON_C_BUILT_SOURCES))
|
||||||
|
|
||||||
|
.PHONY: json-c-configure json-c-configure-real
|
||||||
|
json-c-configure-real:
|
||||||
|
echo $(JSON_C_BUILT_SOURCES)
|
||||||
|
cd $(json_c_TOP) ; \
|
||||||
|
$(abspath $(json_c_TOP))/autogen.sh && \
|
||||||
|
CC="$(CONFIGURE_CC)" \
|
||||||
|
CFLAGS="$(CONFIGURE_CFLAGS)" \
|
||||||
|
LD=$(TARGET_LD) \
|
||||||
|
LDFLAGS="$(CONFIGURE_LDFLAGS)" \
|
||||||
|
CPP=$(CONFIGURE_CPP) \
|
||||||
|
CPPFLAGS="$(CONFIGURE_CPPFLAGS)" \
|
||||||
|
PKG_CONFIG_LIBDIR=$(CONFIGURE_PKG_CONFIG_LIBDIR) \
|
||||||
|
PKG_CONFIG_TOP_BUILD_DIR=/ \
|
||||||
|
ac_cv_func_malloc_0_nonnull=yes \
|
||||||
|
ac_cv_func_realloc_0_nonnull=yes \
|
||||||
|
$(abspath $(json_c_TOP))/$(CONFIGURE) --host=$(CONFIGURE_HOST) \
|
||||||
|
--prefix=/system \
|
||||||
|
&& \
|
||||||
|
for file in $(JSON_C_BUILT_SOURCES); do \
|
||||||
|
rm -f $$file && \
|
||||||
|
make -C $$(dirname $$file) $$(basename $$file) ; \
|
||||||
|
done
|
||||||
|
|
||||||
|
json-c-configure: json-c-configure-real
|
||||||
|
|
||||||
|
PA_CONFIGURE_TARGETS += json-c-configure
|
||||||
|
|
||||||
|
-include $(json_c_TOP)/Android.mk
|
||||||
+136
@@ -0,0 +1,136 @@
|
|||||||
|
#Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8.7)
|
||||||
|
cmake_policy(SET CMP0048 NEW)
|
||||||
|
project(json-c VERSION 0.13)
|
||||||
|
|
||||||
|
|
||||||
|
include(CheckSymbolExists)
|
||||||
|
|
||||||
|
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
||||||
|
|
||||||
|
set(cmake_strtoll "strtoll")
|
||||||
|
if (NOT HAVE_STRTOLL)
|
||||||
|
# Use _strtoi64 if strtoll is not available.
|
||||||
|
check_symbol_exists(_strtoi64 stdlib.h have_strtoi64)
|
||||||
|
if (have_strtoi64)
|
||||||
|
set(HAVE_STRTOLL 1)
|
||||||
|
set(cmake_strtoll "_strtoi64")
|
||||||
|
# could do the same for strtoull, if needed
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
|
||||||
|
set(cmake_create_config 1)
|
||||||
|
elseif(MINGW)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -D_GNU_SOURCE=1")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -D_GNU_SOURCE=1")
|
||||||
|
if (MSYS OR CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
||||||
|
execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
execute_process(COMMAND sh ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
file(COPY ./config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
file(COPY ./json_config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
else()
|
||||||
|
set(cmake_create_config 1)
|
||||||
|
endif()
|
||||||
|
elseif(UNIX)
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -D_GNU_SOURCE")
|
||||||
|
execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
file(COPY ./config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
file(COPY ./json_config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (cmake_create_config)
|
||||||
|
file(REMOVE ./config.h) # make sure any stale one is gone
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)
|
||||||
|
file(COPY ./json_config.h.win32 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
|
||||||
|
set(JSON_C_PUBLIC_HEADERS
|
||||||
|
./json.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/include/config.h
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h
|
||||||
|
./arraylist.h
|
||||||
|
./debug.h
|
||||||
|
./json_c_version.h
|
||||||
|
./json_inttypes.h
|
||||||
|
./json_object.h
|
||||||
|
./json_pointer.h
|
||||||
|
./json_tokener.h
|
||||||
|
./json_util.h
|
||||||
|
./linkhash.h
|
||||||
|
./printbuf.h
|
||||||
|
)
|
||||||
|
set(JSON_C_HEADERS
|
||||||
|
${JSON_C_PUBLIC_HEADERS}
|
||||||
|
./json_object_private.h
|
||||||
|
./random_seed.h
|
||||||
|
./strerror_override.h
|
||||||
|
./strerror_override_private.h
|
||||||
|
./math_compat.h
|
||||||
|
./snprintf_compat.h
|
||||||
|
./strdup_compat.h
|
||||||
|
./vasprintf_compat.h
|
||||||
|
)
|
||||||
|
|
||||||
|
set(JSON_C_SOURCES
|
||||||
|
./arraylist.c
|
||||||
|
./debug.c
|
||||||
|
./json_c_version.c
|
||||||
|
./json_object.c
|
||||||
|
./json_object_iterator.c
|
||||||
|
./json_pointer.c
|
||||||
|
./json_tokener.c
|
||||||
|
./json_util.c
|
||||||
|
./json_visit.c
|
||||||
|
./linkhash.c
|
||||||
|
./printbuf.c
|
||||||
|
./random_seed.c
|
||||||
|
./strerror_override.c
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(json-c
|
||||||
|
SHARED
|
||||||
|
${JSON_C_SOURCES}
|
||||||
|
${JSON_C_HEADERS}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(json-c-static
|
||||||
|
STATIC
|
||||||
|
${JSON_C_SOURCES}
|
||||||
|
${JSON_C_HEADERS}
|
||||||
|
)
|
||||||
|
|
||||||
|
set_property(TARGET json-c PROPERTY C_STANDARD 99)
|
||||||
|
set_property(TARGET json-c-static PROPERTY C_STANDARD 99)
|
||||||
|
set_target_properties(json-c-static PROPERTIES OUTPUT_NAME json-c)
|
||||||
|
|
||||||
|
install(TARGETS json-c json-c-static
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION lib
|
||||||
|
ARCHIVE DESTINATION lib
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES ${JSON_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c )
|
||||||
|
|
||||||
|
if (UNIX)
|
||||||
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
|
||||||
|
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
|
||||||
|
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
|
||||||
|
set(VERSION ${PROJECT_VERSION})
|
||||||
|
configure_file(json-c.pc.in json-c.pc @ONLY)
|
||||||
|
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
||||||
|
install(FILES ${CMAKE_BINARY_DIR}/json-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}")
|
||||||
|
endif ()
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
|
||||||
|
Copyright (c) 2009-2012 Eric Haszlakiewicz
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2004, 2005 Metaparadigm Pte Ltd
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,369 @@
|
|||||||
|
|
||||||
|
0.13 (up to commit 5dae561, 2017/11/29)
|
||||||
|
=================================
|
||||||
|
|
||||||
|
This release, being three and a half years after the 0.12 branch (f84d9c),
|
||||||
|
has quite a number of changes included. The following is a sampling of
|
||||||
|
the most significant ones.
|
||||||
|
|
||||||
|
Since the 0.12 release, 250 issues and pull requests have been closed.
|
||||||
|
See issues_closed_for_0.13.md for a complete list.
|
||||||
|
|
||||||
|
|
||||||
|
Deprecated and removed features:
|
||||||
|
--------------------------------
|
||||||
|
* All internal use of bits.h has been eliminated. The file will be removed.
|
||||||
|
Do not use: hexdigit(), error_ptr(), error_descrition() and it_error()
|
||||||
|
* lh_abort() is deprecated. It will be removed.
|
||||||
|
|
||||||
|
Behavior changes:
|
||||||
|
-----------------
|
||||||
|
* Tighten the number parsing algorithm to raise errors instead of truncating
|
||||||
|
the results. For example 12.3.4 or 2015-01-15, which now return null.
|
||||||
|
See commit 99d8fc
|
||||||
|
|
||||||
|
* Use size_t for array length and size. Platforms where sizeof(size_t) != sizeof(int) may not be backwards compatible
|
||||||
|
See commits 45c56b, 92e9a5 and others.
|
||||||
|
|
||||||
|
* Check for failue when allocating memory, returning NULL and errno=ENOMEM.
|
||||||
|
See commit 2149a04.
|
||||||
|
|
||||||
|
* Change json_object_object_add() return type from void to int, and will return -1 on failures, instead of exiting. (Note: this is not an ABI change)
|
||||||
|
|
||||||
|
New features:
|
||||||
|
-------------
|
||||||
|
* We're aiming to follow RFC 7159 now.
|
||||||
|
|
||||||
|
* Add a couple of additional option to json_object_to_json_string_ext:
|
||||||
|
JSON_C_TO_STRING_PRETTY_TAB
|
||||||
|
JSON_C_TO_STRING_NOSLASHESCAPE
|
||||||
|
|
||||||
|
* Add a json_object_object_add_ex() function to allow for performance
|
||||||
|
improvements when certain constraints are known to be true.
|
||||||
|
|
||||||
|
* Make serialization format of doubles configurable, in two different ways:
|
||||||
|
Call json_object_set_serializer with json_object_double_to_json_string and a custom
|
||||||
|
format on each double object, or
|
||||||
|
Call json_c_set_serialization_double_format() to set a global or thread-wide format.
|
||||||
|
|
||||||
|
* Add utility function for comparing json_objects - json_object_equal()
|
||||||
|
|
||||||
|
* Add a way to copy entire object trees: json_object_deep_copy()
|
||||||
|
* Add json_object_set_<type> function to modify the value of existing json_object's
|
||||||
|
without the need to recreate them. Also add a json_object_int_inc function to
|
||||||
|
adjust an int's value.
|
||||||
|
* Add support for JSON pointer, RFC 6901. See json_pointer.h
|
||||||
|
* Add a json_util_get_last_err() function to retrieve the string describing the
|
||||||
|
cause of errors, instead of printing to stderr.
|
||||||
|
* Add perllike hash function for strings, and json_global_set_string_hash() 8f8d03d
|
||||||
|
* Add a json_c_visit() function to provide a way to iterate over a tree of json-c objects.
|
||||||
|
|
||||||
|
Notable bug fixes and other improvements:
|
||||||
|
-----------------------------------------
|
||||||
|
* Make reference increment and decrement atomic to allow passing json objects between threads.
|
||||||
|
* Fix json_object_object_foreach to avoid uninitialized variable warnings.
|
||||||
|
* Improve performance by removing unneeded data items from hashtable code and reducing duplicate hash computation.
|
||||||
|
* Improve performance by storing small strings inside json_object
|
||||||
|
* Improve performance of json_object_to_json_string by removing variadic printf. commit 9ff0f49
|
||||||
|
* Issue #371: fix parsing of "-Infinity", and avoid needlessly copying the input when doing so.
|
||||||
|
* Fix stack buffer overflow in json_object_double_to_json_string_format() - commit 2c2deb87
|
||||||
|
* Fix various potential null ptr deref and int32 overflows
|
||||||
|
* Issue #332: fix a long-standing bug in array_list_put_idx() where it would attempt to free previously free'd entries due to not checking the current array length.
|
||||||
|
* Issue #195: use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments.
|
||||||
|
* Issue #275: fix out of bounds read when handling unicode surrogate pairs.
|
||||||
|
* Ensure doubles that happen to be a whole number are emitted with ".0" - commit ca7a19
|
||||||
|
* PR#331: for Visual Studio, use a snprintf/vsnprintf wrapper that ensures the string is terminated.
|
||||||
|
* Fix double to int cast overflow in json_object_get_int64.
|
||||||
|
* Clamp double to int32 when narrowing in json_object_get_int.
|
||||||
|
* Use strtoll() to parse ints - instead of sscanf
|
||||||
|
* Miscellaneous smaller changes, including removing unused variables, fixing warning
|
||||||
|
about uninitialized variables adding const qualifiers, reformatting code, etc...
|
||||||
|
|
||||||
|
Build changes:
|
||||||
|
--------------
|
||||||
|
* Add Appveyor and Travis build support
|
||||||
|
* Switch to using CMake when building on Windows with Visual Studio.
|
||||||
|
A dynamic .dll is generated instead of a .lib
|
||||||
|
config.h is now generated, config.h.win32 should no longer be manually copied
|
||||||
|
* Add support for MacOS through CMake too.
|
||||||
|
* Enable silent build by default
|
||||||
|
* Link against libm when needed
|
||||||
|
* Add support for building with AddressSanitizer
|
||||||
|
* Add support for building with Clang
|
||||||
|
* Add a --enable-threading configure option, and only use the (slower) __sync_add_and_fetch()/__sync_sub_and_fetch() function when it is specified.
|
||||||
|
|
||||||
|
List of new functions added:
|
||||||
|
----------------------------
|
||||||
|
### json_object.h
|
||||||
|
* array_list_bsearch()
|
||||||
|
* array_list_del_idx()
|
||||||
|
* json_object_to_json_string_length()
|
||||||
|
* json_object_get_userdata()
|
||||||
|
* json_object_set_userdata()
|
||||||
|
* json_object_object_add_ex()
|
||||||
|
* json_object_array_bsearch()
|
||||||
|
* json_object_array_del_idx()
|
||||||
|
* json_object_set_boolean()
|
||||||
|
* json_object_set_int()
|
||||||
|
* json_object_int_inc()
|
||||||
|
* json_object_set_int64()
|
||||||
|
* json_c_set_serialization_double_format()
|
||||||
|
* json_object_double_to_json_string()
|
||||||
|
* json_object_set_double()
|
||||||
|
* json_object_set_string()
|
||||||
|
* json_object_set_string_len()
|
||||||
|
* json_object_equal()
|
||||||
|
* json_object_deep_copy()
|
||||||
|
|
||||||
|
### json_pointer.h
|
||||||
|
* json_pointer_get()
|
||||||
|
* json_pointer_getf()
|
||||||
|
* json_pointer_set()
|
||||||
|
* json_pointer_setf()
|
||||||
|
|
||||||
|
### json_util.h
|
||||||
|
* json_object_from_fd()
|
||||||
|
* json_object_to_fd()
|
||||||
|
* json_util_get_last_err()
|
||||||
|
|
||||||
|
### json_visit.h
|
||||||
|
* json_c_visit()
|
||||||
|
|
||||||
|
### linkhash.h
|
||||||
|
* json_global_set_string_hash()
|
||||||
|
* lh_table_resize()
|
||||||
|
|
||||||
|
### printbuf.h
|
||||||
|
* printbuf_strappend()
|
||||||
|
|
||||||
|
|
||||||
|
0.12.1
|
||||||
|
======
|
||||||
|
|
||||||
|
* Minimal changes to address compile issues.
|
||||||
|
|
||||||
|
0.12
|
||||||
|
====
|
||||||
|
|
||||||
|
* Address security issues:
|
||||||
|
* CVE-2013-6371: hash collision denial of service
|
||||||
|
* CVE-2013-6370: buffer overflow if size_t is larger than int
|
||||||
|
|
||||||
|
* Avoid potential overflow in json_object_get_double
|
||||||
|
|
||||||
|
* Eliminate the mc_abort() function and MC_ABORT macro.
|
||||||
|
|
||||||
|
* Make the json_tokener_errors array local. It has been deprecated for
|
||||||
|
a while, and json_tokener_error_desc() should be used instead.
|
||||||
|
|
||||||
|
* change the floating point output format to %.17g so values with
|
||||||
|
more than 6 digits show up in the output.
|
||||||
|
|
||||||
|
* Remove the old libjson.so name compatibility support. The library is
|
||||||
|
only created as libjson-c.so now and headers are only installed
|
||||||
|
into the ${prefix}/json-c directory.
|
||||||
|
|
||||||
|
* When supported by the linker, add the -Bsymbolic-functions flag.
|
||||||
|
|
||||||
|
* Various changes to fix the build on MSVC.
|
||||||
|
|
||||||
|
* Make strict mode more strict:
|
||||||
|
* number must not start with 0
|
||||||
|
* no single-quote strings
|
||||||
|
* no comments
|
||||||
|
* trailing char not allowed
|
||||||
|
* only allow lowercase literals
|
||||||
|
|
||||||
|
* Added a json_object_new_double_s() convenience function to allow
|
||||||
|
an exact string representation of a double to be specified when
|
||||||
|
creating the object and use it in json_tokener_parse_ex() so
|
||||||
|
a re-serialized object more exactly matches the input.
|
||||||
|
|
||||||
|
* Add support NaN and Infinity
|
||||||
|
|
||||||
|
|
||||||
|
0.11
|
||||||
|
====
|
||||||
|
|
||||||
|
* IMPORTANT: the name of the library has changed to libjson-c.so and
|
||||||
|
the header files are now in include/json-c.
|
||||||
|
The pkgconfig name has also changed from json to json-c.
|
||||||
|
You should change your build to use appropriate -I and -l options.
|
||||||
|
A compatibility shim is in place so builds using the old name will
|
||||||
|
continue to work, but that will be removed in the next release.
|
||||||
|
* Maximum recursion depth is now a runtime option.
|
||||||
|
json_tokener_new() is provided for compatibility.
|
||||||
|
json_tokener_new_ex(depth)
|
||||||
|
* Include json_object_iterator.h in the installed headers.
|
||||||
|
* Add support for building on Android.
|
||||||
|
* Rewrite json_object_object_add to replace just the value if the key already exists so keys remain valid.
|
||||||
|
* Make it safe to delete keys while iterating with the json_object_object_foreach macro.
|
||||||
|
* Add a json_set_serializer() function to allow the string output of a json_object to be customized.
|
||||||
|
* Make float parsing locale independent.
|
||||||
|
* Add a json_tokener_set_flags() function and a JSON_TOKENER_STRICT flag.
|
||||||
|
* Enable -Werror when building.
|
||||||
|
* speed improvements to parsing 64-bit integers on systems with working sscanf
|
||||||
|
* Add a json_object_object_length function.
|
||||||
|
* Fix a bug (buffer overrun) when expanding arrays to more than 64 entries.
|
||||||
|
|
||||||
|
0.10
|
||||||
|
====
|
||||||
|
|
||||||
|
* Add a json_object_to_json_string_ext() function to allow output to be
|
||||||
|
formatted in a more human readable form.
|
||||||
|
* Add json_object_object_get_ex(), a NULL-safe get object method, to be able
|
||||||
|
to distinguish between a key not present and the value being NULL.
|
||||||
|
* Add an alternative iterator implementation, see json_object_iterator.h
|
||||||
|
* Make json_object_iter public to enable external use of the
|
||||||
|
json_object_object_foreachC macro.
|
||||||
|
* Add a printbuf_memset() function to provide an effecient way to set and
|
||||||
|
append things like whitespace indentation.
|
||||||
|
* Adjust json_object_is_type and json_object_get_type so they return
|
||||||
|
json_type_null for NULL objects and handle NULL passed to
|
||||||
|
json_objct_object_get().
|
||||||
|
* Rename boolean type to json_bool.
|
||||||
|
* Fix various compile issues for Visual Studio and MinGW.
|
||||||
|
* Allow json_tokener_parse_ex() to be re-used to parse multiple object.
|
||||||
|
Also, fix some parsing issues with capitalized hexadecimal numbers and
|
||||||
|
number in E notation.
|
||||||
|
* Add json_tokener_get_error() and json_tokener_error_desc() to better
|
||||||
|
encapsulate the process of retrieving errors while parsing.
|
||||||
|
* Various improvements to the documentation of many functions.
|
||||||
|
* Add new json_object_array_sort() function.
|
||||||
|
* Fix a bug in json_object_get_int(), which would incorrectly return 0
|
||||||
|
when called on a string type object.
|
||||||
|
Eric Haszlakiewicz
|
||||||
|
* Add a json_type_to_name() function.
|
||||||
|
Eric Haszlakiewicz
|
||||||
|
* Add a json_tokener_parse_verbose() function.
|
||||||
|
Jehiah Czebotar
|
||||||
|
* Improve support for null bytes within JSON strings.
|
||||||
|
Jehiah Czebotar
|
||||||
|
* Fix file descriptor leak if memory allocation fails in json_util
|
||||||
|
Zachary Blair, zack_blair at hotmail dot com
|
||||||
|
* Add int64 support. Two new functions json_object_net_int64 and
|
||||||
|
json_object_get_int64. Binary compatibility preserved.
|
||||||
|
Eric Haszlakiewicz, EHASZLA at transunion com
|
||||||
|
Rui Miguel Silva Seabra, rms at 1407 dot org
|
||||||
|
* Fix subtle bug in linkhash where lookup could hang after all slots
|
||||||
|
were filled then successively freed.
|
||||||
|
Spotted by Jean-Marc Naud, j dash m at newtraxtech dot com
|
||||||
|
* Make json_object_from_file take const char *filename
|
||||||
|
Spotted by Vikram Raj V, vsagar at attinteractive dot com
|
||||||
|
* Add handling of surrogate pairs (json_tokener.c, test4.c, Makefile.am)
|
||||||
|
Brent Miller, bdmiller at yahoo dash inc dot com
|
||||||
|
* Correction to comment describing printbuf_memappend in printbuf.h
|
||||||
|
Brent Miller, bdmiller at yahoo dash inc dot com
|
||||||
|
|
||||||
|
0.9
|
||||||
|
===
|
||||||
|
* Add README.html README-WIN32.html config.h.win32 to Makefile.am
|
||||||
|
Michael Clark, <michael@metaparadigm.com>
|
||||||
|
* Add const qualifier to the json_tokener_parse functions
|
||||||
|
Eric Haszlakiewicz, EHASZLA at transunion dot com
|
||||||
|
* Rename min and max so we can never clash with C or C++ std library
|
||||||
|
Ian Atha, thatha at yahoo dash inc dot com
|
||||||
|
* Fix any noticeable spelling or grammar errors.
|
||||||
|
* Make sure every va_start has a va_end.
|
||||||
|
* Check all pointers for validity.
|
||||||
|
Erik Hovland, erik at hovland dot org
|
||||||
|
* Fix json_object_get_boolean to return false for empty string
|
||||||
|
Spotted by Vitaly Kruglikov, Vitaly dot Kruglikov at palm dot com
|
||||||
|
* optimizations to json_tokener_parse_ex(), printbuf_memappend()
|
||||||
|
Brent Miller, bdmiller at yahoo dash inc dot com
|
||||||
|
* Disable REFCOUNT_DEBUG by default in json_object.c
|
||||||
|
* Don't use this as a variable, so we can compile with a C++ compiler
|
||||||
|
* Add casts from void* to type of assignment when using malloc
|
||||||
|
* Add #ifdef __cplusplus guards to all of the headers
|
||||||
|
* Add typedefs for json_object, json_tokener, array_list, printbuf, lh_table
|
||||||
|
Michael Clark, <michael@metaparadigm.com>
|
||||||
|
* Null pointer dereference fix. Fix json_object_get_boolean strlen test
|
||||||
|
to not return TRUE for zero length string. Remove redundant includes.
|
||||||
|
Erik Hovland, erik at hovland dot org
|
||||||
|
* Fixed warning reported by adding -Wstrict-prototypes
|
||||||
|
-Wold-style-definition to the compilatin flags.
|
||||||
|
Dotan Barak, dotanba at gmail dot com
|
||||||
|
* Add const correctness to public interfaces
|
||||||
|
Gerard Krol, g dot c dot krol at student dot tudelft dot nl
|
||||||
|
|
||||||
|
0.8
|
||||||
|
===
|
||||||
|
* Add va_end for every va_start
|
||||||
|
Dotan Barak, dotanba at gmail dot com
|
||||||
|
* Add macros to enable compiling out debug code
|
||||||
|
Geoffrey Young, geoff at modperlcookbook dot org
|
||||||
|
* Fix bug with use of capital E in numbers with exponents
|
||||||
|
Mateusz Loskot, mateusz at loskot dot net
|
||||||
|
* Add stddef.h include
|
||||||
|
* Patch allows for json-c compile with -Werror and not fail due to
|
||||||
|
-Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
|
||||||
|
Geoffrey Young, geoff at modperlcookbook dot org
|
||||||
|
|
||||||
|
0.7
|
||||||
|
===
|
||||||
|
* Add escaping of backslash to json output
|
||||||
|
* Add escaping of foward slash on tokenizing and output
|
||||||
|
* Changes to internal tokenizer from using recursion to
|
||||||
|
using a depth state structure to allow incremental parsing
|
||||||
|
|
||||||
|
0.6
|
||||||
|
===
|
||||||
|
* Fix bug in escaping of control characters
|
||||||
|
Johan Björklund, johbjo09 at kth dot se
|
||||||
|
* Remove include "config.h" from headers (should only
|
||||||
|
be included from .c files)
|
||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
|
0.5
|
||||||
|
===
|
||||||
|
* Make headers C++ compatible by change *this to *obj
|
||||||
|
* Add ifdef C++ extern "C" to headers
|
||||||
|
* Use simpler definition of min and max in bits.h
|
||||||
|
Larry Lansing, llansing at fuzzynerd dot com
|
||||||
|
|
||||||
|
* Remove automake 1.6 requirement
|
||||||
|
* Move autogen commands into autogen.sh. Update README
|
||||||
|
* Remove error pointer special case for Windows
|
||||||
|
* Change license from LGPL to MIT
|
||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
|
0.4
|
||||||
|
===
|
||||||
|
* Fix additional error case in object parsing
|
||||||
|
* Add back sign reversal in nested object parse as error pointer
|
||||||
|
value is negative, while error value is positive.
|
||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
|
0.3
|
||||||
|
===
|
||||||
|
* fix pointer arithmetic bug for error pointer check in is_error() macro
|
||||||
|
* fix type passed to printbuf_memappend in json_tokener
|
||||||
|
* update autotools bootstrap instructions in README
|
||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
|
0.2
|
||||||
|
===
|
||||||
|
* printbuf.c - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Added a Win32/Win64 compliant implementation of vasprintf
|
||||||
|
* debug.c - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Removed usage of vsyslog on Win32/Win64 systems, needs to be handled
|
||||||
|
by a configure script
|
||||||
|
* json_object.c - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Added scope operator to wrap usage of json_object_object_foreach, this
|
||||||
|
needs to be rethought to be more ANSI C friendly
|
||||||
|
* json_object.h - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Added Microsoft C friendly version of json_object_object_foreach
|
||||||
|
* json_tokener.c - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Added a Win32/Win64 compliant implementation of strndup
|
||||||
|
* json_util.c - C. Watford (christopher.watford@gmail.com)
|
||||||
|
Added cast and mask to suffice size_t v. unsigned int conversion
|
||||||
|
correctness
|
||||||
|
* json_tokener.c - sign reversal issue on error info for nested object parse
|
||||||
|
spotted by Johan Björklund (johbjo09 at kth.se)
|
||||||
|
* json_object.c - escape " in json_escape_str
|
||||||
|
* Change to automake and libtool to build shared and static library
|
||||||
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
|
0.1
|
||||||
|
===
|
||||||
|
* initial release
|
||||||
@@ -38,7 +38,7 @@ PROJECT_NAME = json-c
|
|||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
# control system is used.
|
# control system is used.
|
||||||
|
|
||||||
PROJECT_NUMBER = 0.15
|
PROJECT_NUMBER = 0.13
|
||||||
|
|
||||||
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
# Using the PROJECT_BRIEF tag one can provide an optional one line description
|
||||||
# for a project that appears at the top of each page and should give viewer a
|
# for a project that appears at the top of each page and should give viewer a
|
||||||
@@ -58,7 +58,7 @@ PROJECT_LOGO =
|
|||||||
# entered, it will be relative to the location where doxygen was started. If
|
# entered, it will be relative to the location where doxygen was started. If
|
||||||
# left blank the current directory will be used.
|
# left blank the current directory will be used.
|
||||||
|
|
||||||
OUTPUT_DIRECTORY = /home/erh/distcheck/doc
|
OUTPUT_DIRECTORY = doc
|
||||||
|
|
||||||
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
|
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
|
||||||
# directories (in 2 levels) under the output directory of each output format and
|
# directories (in 2 levels) under the output directory of each output format and
|
||||||
@@ -753,7 +753,8 @@ WARN_LOGFILE =
|
|||||||
# spaces.
|
# spaces.
|
||||||
# Note: If this tag is empty the current directory is searched.
|
# Note: If this tag is empty the current directory is searched.
|
||||||
|
|
||||||
INPUT = /home/erh/json-c-0.15 /home/erh/distcheck
|
INPUT = README.md \
|
||||||
|
.
|
||||||
|
|
||||||
# This tag can be used to specify the character encoding of the source files
|
# This tag can be used to specify the character encoding of the source files
|
||||||
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
|
||||||
@@ -805,13 +806,7 @@ EXCLUDE_SYMLINKS = NO
|
|||||||
# Note that the wildcards are matched against the file with absolute path, so to
|
# Note that the wildcards are matched against the file with absolute path, so to
|
||||||
# exclude all test directories for example use the pattern */test/*
|
# exclude all test directories for example use the pattern */test/*
|
||||||
|
|
||||||
EXCLUDE_PATTERNS = \
|
EXCLUDE_PATTERNS =
|
||||||
*/json_object_private.h \
|
|
||||||
*/debug.h \
|
|
||||||
*/*config.h \
|
|
||||||
*/random_seed.h \
|
|
||||||
*/strerror_*h \
|
|
||||||
*/*compat.h
|
|
||||||
|
|
||||||
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
||||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
# (namespaces, classes, functions, etc.) that should be excluded from the
|
||||||
@@ -822,11 +817,7 @@ EXCLUDE_PATTERNS = \
|
|||||||
# Note that the wildcards are matched against the file with absolute path, so to
|
# Note that the wildcards are matched against the file with absolute path, so to
|
||||||
# exclude all test directories use the pattern */test/*
|
# exclude all test directories use the pattern */test/*
|
||||||
|
|
||||||
EXCLUDE_SYMBOLS = \
|
EXCLUDE_SYMBOLS =
|
||||||
_json_c_* \
|
|
||||||
_LH_* \
|
|
||||||
_printbuf_* \
|
|
||||||
__STRING
|
|
||||||
|
|
||||||
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
|
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
|
||||||
# that contain example code fragments that are included (see the \include
|
# that contain example code fragments that are included (see the \include
|
||||||
@@ -869,7 +860,7 @@ IMAGE_PATH =
|
|||||||
# code is scanned, but not when the output code is generated. If lines are added
|
# code is scanned, but not when the output code is generated. If lines are added
|
||||||
# or removed, the anchors will not be placed correctly.
|
# or removed, the anchors will not be placed correctly.
|
||||||
|
|
||||||
INPUT_FILTER = /home/erh/json-c-0.15/doc/fixup_markdown.sh
|
INPUT_FILTER =
|
||||||
|
|
||||||
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
|
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
|
||||||
# basis. Doxygen will compare the file name with each pattern and apply the
|
# basis. Doxygen will compare the file name with each pattern and apply the
|
||||||
@@ -900,7 +891,7 @@ FILTER_SOURCE_PATTERNS =
|
|||||||
# (index.html). This can be useful if you have a project on for instance GitHub
|
# (index.html). This can be useful if you have a project on for instance GitHub
|
||||||
# and want to reuse the introduction page also for the doxygen output.
|
# and want to reuse the introduction page also for the doxygen output.
|
||||||
|
|
||||||
USE_MDFILE_AS_MAINPAGE = README.md
|
USE_MDFILE_AS_MAINPAGE =
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# Configuration options related to source browsing
|
# Configuration options related to source browsing
|
||||||
+118
@@ -0,0 +1,118 @@
|
|||||||
|
EXTRA_DIST = README.md README.html
|
||||||
|
EXTRA_DIST += config.h.win32
|
||||||
|
EXTRA_DIST += Doxyfile
|
||||||
|
EXTRA_DIST += issues_closed_for_0.13.md
|
||||||
|
|
||||||
|
dist-hook:
|
||||||
|
test -d "$(distdir)/doc" || mkdir "$(distdir)/doc"
|
||||||
|
chmod -R u+w "$(distdir)/doc"
|
||||||
|
cd "$(distdir)" && doxygen
|
||||||
|
|
||||||
|
SUBDIRS = . tests
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libjson-c.la
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = json-c.pc
|
||||||
|
|
||||||
|
libjson_cincludedir = $(includedir)/json-c
|
||||||
|
libjson_cinclude_HEADERS = \
|
||||||
|
arraylist.h \
|
||||||
|
bits.h \
|
||||||
|
debug.h \
|
||||||
|
json.h \
|
||||||
|
json_c_version.h \
|
||||||
|
json_config.h \
|
||||||
|
json_inttypes.h \
|
||||||
|
json_object.h \
|
||||||
|
json_object_iterator.h \
|
||||||
|
json_pointer.h \
|
||||||
|
json_tokener.h \
|
||||||
|
json_util.h \
|
||||||
|
json_visit.h \
|
||||||
|
linkhash.h \
|
||||||
|
printbuf.h
|
||||||
|
|
||||||
|
noinst_HEADERS=\
|
||||||
|
json_object_private.h \
|
||||||
|
math_compat.h \
|
||||||
|
strdup_compat.h \
|
||||||
|
snprintf_compat.h \
|
||||||
|
vasprintf_compat.h \
|
||||||
|
random_seed.h \
|
||||||
|
strerror_override.h
|
||||||
|
|
||||||
|
libjson_c_la_LDFLAGS = -version-info 3:1:0 -no-undefined @JSON_BSYMBOLIC_LDFLAGS@
|
||||||
|
|
||||||
|
libjson_c_la_SOURCES = \
|
||||||
|
arraylist.c \
|
||||||
|
debug.c \
|
||||||
|
json_c_version.c \
|
||||||
|
json_object.c \
|
||||||
|
json_object_iterator.c \
|
||||||
|
json_pointer.c \
|
||||||
|
json_tokener.c \
|
||||||
|
json_util.c \
|
||||||
|
json_visit.c \
|
||||||
|
linkhash.c \
|
||||||
|
printbuf.c \
|
||||||
|
random_seed.c \
|
||||||
|
strerror_override.c \
|
||||||
|
strerror_override_private.h
|
||||||
|
|
||||||
|
|
||||||
|
DISTCLEANFILES=
|
||||||
|
DISTCLEANFILES+= \
|
||||||
|
config.h \
|
||||||
|
json-c-uninstalled.pc \
|
||||||
|
json-c.pc \
|
||||||
|
json_config.h
|
||||||
|
|
||||||
|
distclean-local:
|
||||||
|
-rm -rf $(testsubdir)
|
||||||
|
|
||||||
|
JSON_CLEANFILES=
|
||||||
|
JSON_CLEANFILES+= \
|
||||||
|
Makefile.in \
|
||||||
|
aclocal.m4 \
|
||||||
|
autom4te.cache/ \
|
||||||
|
compile \
|
||||||
|
config.guess \
|
||||||
|
config.h.in \
|
||||||
|
config.sub \
|
||||||
|
configure \
|
||||||
|
depcomp \
|
||||||
|
install-sh \
|
||||||
|
ltmain.sh \
|
||||||
|
missing \
|
||||||
|
test-driver \
|
||||||
|
tests/Makefile.in
|
||||||
|
JSON_CLEANFILES+= \
|
||||||
|
libtool \
|
||||||
|
stamp-h1 \
|
||||||
|
stamp-h2
|
||||||
|
|
||||||
|
# There's no built-in way to remove these after all the other
|
||||||
|
# maintainer-clean steps happen, so do it explicitly here.
|
||||||
|
really-clean:
|
||||||
|
$(MAKE) maintainer-clean
|
||||||
|
rm -rf ${JSON_CLEANFILES}
|
||||||
|
|
||||||
|
uninstall-local:
|
||||||
|
rm -rf "$(DESTDIR)@includedir@/json-c"
|
||||||
|
rm -f "$(DESTDIR)@includedir@/json"
|
||||||
|
|
||||||
|
ANDROID_CFLAGS = -I$(top_srcdir) -DHAVE_CONFIG_H
|
||||||
|
|
||||||
|
Android.mk: Makefile.am
|
||||||
|
androgenizer -:PROJECT json-c \
|
||||||
|
-:SHARED libjson-c \
|
||||||
|
-:TAGS eng debug \
|
||||||
|
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
|
||||||
|
-:SOURCES $(libjson_c_la_SOURCES) $(nodist_libjson_c_la_SOURCES) \
|
||||||
|
-:CFLAGS $(DEFS) $(ANDROID_CFLAGS) $(libjson_c_la_CFLAGS) \
|
||||||
|
-:LDFLAGS $(libjson_c_la_LDFLAGS) $(libjson_c_la_LIBADD) \
|
||||||
|
-:HEADER_TARGET json-c \
|
||||||
|
-:HEADERS $(libjson_cinclude_HEADERS) \
|
||||||
|
-:PASSTHROUGH LOCAL_ARM_MODE:=arm \
|
||||||
|
> $@
|
||||||
+1113
File diff suppressed because it is too large.
Load diff
+42
@@ -0,0 +1,42 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<head>
|
||||||
|
<title>JSON-C - A JSON implementation in C</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>JSON-C - A JSON implementation in C</h2>
|
||||||
|
|
||||||
|
<h3>Overview</h3>
|
||||||
|
<p>JSON-C implements a reference counting object model that allows you to easily
|
||||||
|
construct JSON objects in C, output them as JSON formatted strings and parse
|
||||||
|
JSON formatted strings back into the C representation of JSON objects.
|
||||||
|
It aims to conform to <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Building</h3>
|
||||||
|
<p>To setup JSON-C to build on your system please run <tt>configure</tt> and <tt>make</tt>.</p>
|
||||||
|
<p>If you are on Win32 cmake is required, generally:</p>
|
||||||
|
<ul>
|
||||||
|
<li>mkdir build</li>
|
||||||
|
<li>cd build</li>
|
||||||
|
<li>cmake ..</li>
|
||||||
|
<li>msbuild "json-c.vcxproj" /m /verbosity:normal /p:OutDir=lib\</li>
|
||||||
|
<li>Or, open the project in Visual Studio</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Documentation</h3>
|
||||||
|
<P>Doxygen generated documentation exists <a href="doc/html/json__object_8h.html">here</a>
|
||||||
|
and Win32 specific notes can be found <a href="README-WIN32.html">here</a>.</P>
|
||||||
|
|
||||||
|
<h3><a href="https://github.com/json-c/json-c">GIT Reposository</a></h3>
|
||||||
|
<p><strong><code>git clone https://github.com/json-c/json-c.git</code></strong></p>
|
||||||
|
|
||||||
|
<h3><a href="http://groups.google.com/group/json-c">Mailing List</a></h3>
|
||||||
|
<pi>Send email to <strong><code>json-c <i><at></i> googlegroups <i><dot></i> com</code></strong></p>
|
||||||
|
|
||||||
|
<h3><a href="COPYING">License</a></h3>
|
||||||
|
<p>This program is free software; you can redistribute it and/or modify it under the terms of the MIT License.</p>
|
||||||
|
<hr/>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
`json-c` {#mainpage}
|
||||||
|
========
|
||||||
|
|
||||||
|
1. [Overview and Build Status](#overview)
|
||||||
|
2. [Building on Unix](#buildunix)
|
||||||
|
3. [Install Prerequisites](#installprereq)
|
||||||
|
4. [Building with partial threading support](#buildthreaded)
|
||||||
|
5. [Linking to libjson-c](#linking)
|
||||||
|
6. [Using json-c](#using)
|
||||||
|
|
||||||
|
JSON-C - A JSON implementation in C <a name="overview"></a>
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
Build Status
|
||||||
|
* [AppVeyor Build](https://ci.appveyor.com/project/hawicz/json-c) 
|
||||||
|
* [Travis Build](https://travis-ci.org/json-c/json-c) 
|
||||||
|
|
||||||
|
JSON-C implements a reference counting object model that allows you to easily
|
||||||
|
construct JSON objects in C, output them as JSON formatted strings and parse
|
||||||
|
JSON formatted strings back into the C representation of JSON objects.
|
||||||
|
It aims to conform to [RFC 7159](https://tools.ietf.org/html/rfc7159).
|
||||||
|
|
||||||
|
|
||||||
|
Building on Unix with `git`, `gcc` and `autotools` <a name="buildunix"></a>
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Home page for json-c: https://github.com/json-c/json-c/wiki
|
||||||
|
|
||||||
|
### Prerequisites:
|
||||||
|
|
||||||
|
See also the "Installing prerequisites" section below.
|
||||||
|
|
||||||
|
- `gcc`, `clang`, or another C compiler
|
||||||
|
- `libtool>=2.2.6b`
|
||||||
|
|
||||||
|
If you're not using a release tarball, you'll also need:
|
||||||
|
|
||||||
|
- `autoconf>=2.64` (`autoreconf`)
|
||||||
|
- `automake>=1.13`
|
||||||
|
|
||||||
|
Make sure you have a complete `libtool` install, including `libtoolize`.
|
||||||
|
|
||||||
|
To generate docs (e.g. as part of make distcheck) you'll also need:
|
||||||
|
- `doxygen>=1.8.13`
|
||||||
|
|
||||||
|
### Build instructions:
|
||||||
|
|
||||||
|
`json-c` GitHub repo: https://github.com/json-c/json-c
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ git clone https://github.com/json-c/json-c.git
|
||||||
|
$ cd json-c
|
||||||
|
$ sh autogen.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
followed by
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ ./configure # --enable-threading
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
```
|
||||||
|
|
||||||
|
To build and run the test programs:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ make check
|
||||||
|
$ make USE_VALGRIND=0 check # optionally skip using valgrind
|
||||||
|
```
|
||||||
|
|
||||||
|
Install prerequisites <a name="installprereq"></a>
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
If you are on a relatively modern system, you'll likely be able to install
|
||||||
|
the prerequisites using your OS's packaging system.
|
||||||
|
|
||||||
|
### Install using apt (e.g. Ubuntu 16.04.2 LTS)
|
||||||
|
```sh
|
||||||
|
sudo apt install git
|
||||||
|
sudo apt install autoconf automake libtool
|
||||||
|
sudo apt install valgrind # optional
|
||||||
|
```
|
||||||
|
|
||||||
|
Then start from the "git clone" command, above.
|
||||||
|
|
||||||
|
### Manually install and build autoconf, automake and libtool
|
||||||
|
|
||||||
|
For older OS's that don't have up-to-date version of the packages will
|
||||||
|
require a bit more work. For example, CentOS release 5.11, etc...
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
|
||||||
|
curl -O http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
|
||||||
|
curl -O http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz
|
||||||
|
|
||||||
|
tar xzf autoconf-2.69.tar.gz
|
||||||
|
tar xzf automake-1.15.tar.gz
|
||||||
|
tar xzf libtool-2.2.6b.tar.gz
|
||||||
|
|
||||||
|
export PATH=${HOME}/ac_install/bin:$PATH
|
||||||
|
|
||||||
|
(cd autoconf-2.69 && \
|
||||||
|
./configure --prefix ${HOME}/ac_install && \
|
||||||
|
make && \
|
||||||
|
make install)
|
||||||
|
|
||||||
|
(cd automake-1.15 && \
|
||||||
|
./configure --prefix ${HOME}/ac_install && \
|
||||||
|
make && \
|
||||||
|
make install)
|
||||||
|
|
||||||
|
(cd libtool-2.2.6b && \
|
||||||
|
./configure --prefix ${HOME}/ac_install && \
|
||||||
|
make && \
|
||||||
|
make install)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Building with partial threading support <a name="buildthreaded"></a>
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
Although json-c does not support fully multi-threaded access to
|
||||||
|
object trees, it has some code to help make use in threaded programs
|
||||||
|
a bit safer. Currently, this is limited to using atomic operations for
|
||||||
|
json_object_get() and json_object_put().
|
||||||
|
|
||||||
|
Since this may have a performance impact, of at least 3x slower
|
||||||
|
according to https://stackoverflow.com/a/11609063, it is disabled by
|
||||||
|
default. You may turn it on by adjusting your configure command with:
|
||||||
|
--enable-threading
|
||||||
|
|
||||||
|
Separately, the default hash function used for object field keys,
|
||||||
|
lh_char_hash, uses a compare-and-swap operation to ensure the randomly
|
||||||
|
seed is only generated once. Because this is a one-time operation, it
|
||||||
|
is always compiled in when the compare-and-swap operation is available.
|
||||||
|
|
||||||
|
|
||||||
|
Linking to `libjson-c` <a name="linking">
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
If your system has `pkgconfig`,
|
||||||
|
then you can just add this to your `makefile`:
|
||||||
|
|
||||||
|
```make
|
||||||
|
CFLAGS += $(shell pkg-config --cflags json-c)
|
||||||
|
LDFLAGS += $(shell pkg-config --libs json-c)
|
||||||
|
```
|
||||||
|
|
||||||
|
Without `pkgconfig`, you would do something like this:
|
||||||
|
|
||||||
|
```make
|
||||||
|
JSON_C_DIR=/path/to/json_c/install
|
||||||
|
CFLAGS += -I$(JSON_C_DIR)/include/json-c
|
||||||
|
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Using json-c <a name="using">
|
||||||
|
------------
|
||||||
|
|
||||||
|
To use json-c you can either include json.h, or preferrably, one of the
|
||||||
|
following more specific header files:
|
||||||
|
|
||||||
|
* json_object.h - Core types and methods.
|
||||||
|
* json_tokener.h - Methods for parsing and serializing json-c object trees.
|
||||||
|
* json_pointer.h - JSON Pointer (RFC 6901) implementation for retrieving
|
||||||
|
objects from a json-c object tree.
|
||||||
|
* json_object_iterator.h - Methods for iterating over single json_object instances.
|
||||||
|
* json_visit.h - Methods for walking a tree of json-c objects.
|
||||||
|
* json_util.h - Miscelleanous utility functions.
|
||||||
|
|
||||||
|
For a full list of headers see [files.html](files.html)
|
||||||
|
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
|
||||||
|
Release checklist:
|
||||||
|
|
||||||
|
release=0.13
|
||||||
|
git clone https://github.com/json-c/json-c json-c-${release}
|
||||||
|
cd json-c-${release}
|
||||||
|
|
||||||
|
Check that the compile works on Linux
|
||||||
|
Check that the compile works on NetBSD
|
||||||
|
Check that the compile works on Windows
|
||||||
|
Run "make distcheck" and fix any problems
|
||||||
|
(e.g. adding new files to SOURCES variables in Makefile.am)
|
||||||
|
Check ChangeLog to see if anything should be added.
|
||||||
|
Make any fixes/changes *before* branching.
|
||||||
|
|
||||||
|
git branch json-c-${release}
|
||||||
|
git checkout json-c-${release}
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Update the version in json_c_version.h
|
||||||
|
Update the version in Doxyfile
|
||||||
|
Update the version in configure.ac
|
||||||
|
Update the version in CMakeLists.txt
|
||||||
|
Use ${release}.
|
||||||
|
|
||||||
|
Update the libjson_la_LDFLAGS line in Makefile.am to the new version.
|
||||||
|
Generally, unless we're doing a major release, change:
|
||||||
|
-version-info x:y:z
|
||||||
|
to
|
||||||
|
-version-info x:y+1:z
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Generate the configure script and other files:
|
||||||
|
sh autogen.sh
|
||||||
|
git add -f Makefile.in aclocal.m4 config.guess config.h.in \
|
||||||
|
config.sub configure depcomp install-sh \
|
||||||
|
ltmain.sh missing tests/Makefile.in \
|
||||||
|
INSTALL
|
||||||
|
|
||||||
|
# check for anything else to be added:
|
||||||
|
git status --ignored
|
||||||
|
git commit
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Generate the doxygen documentation:
|
||||||
|
doxygen
|
||||||
|
git add -f doc
|
||||||
|
git commit doc
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
echo .git > excludes
|
||||||
|
echo autom4te.cache >> excludes
|
||||||
|
tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
|
||||||
|
|
||||||
|
echo doc >> excludes
|
||||||
|
tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Tag the branch:
|
||||||
|
cd json-c-${release}
|
||||||
|
git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
|
||||||
|
|
||||||
|
git push origin json-c-${release}
|
||||||
|
git push --tags
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Go to Amazon S3 service at:
|
||||||
|
https://console.aws.amazon.com/s3/
|
||||||
|
|
||||||
|
Upload the two tarballs in the json-c_releases folder.
|
||||||
|
When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
|
||||||
|
|
||||||
|
Logout of Amazon S3, and verify that the files are visible.
|
||||||
|
https://s3.amazonaws.com/json-c_releases/releases/index.html
|
||||||
|
|
||||||
|
===================================
|
||||||
|
|
||||||
|
Post-release checklist:
|
||||||
|
|
||||||
|
git checkout master
|
||||||
|
Add new section to ChangeLog
|
||||||
|
Update the version in json_c_version.h
|
||||||
|
Update the version in Doxyfile
|
||||||
|
Update the version in configure.ac
|
||||||
|
Update the version in CMakeLists.txt
|
||||||
|
Use ${release}.99 to indicate a version "newer" than anything on the branch.
|
||||||
|
|
||||||
|
Leave the libjson_la_LDFLAGS line in Makefile.am alone.
|
||||||
|
For more details see:
|
||||||
|
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Update the gh-pages branch with new docs:
|
||||||
|
|
||||||
|
cd json-c-${release}
|
||||||
|
git checkout json-c-${release}
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
git clone -b gh-pages https://github.com/json-c/json-c json-c-pages
|
||||||
|
cd json-c-pages
|
||||||
|
mkdir json-c-${release}
|
||||||
|
cp -R ../json-c-${release}/doc json-c-${release}/.
|
||||||
|
cp ../json-c-${release}/README-WIN32.html json-c-${release}/.
|
||||||
|
git add json-c-${release}
|
||||||
|
git commit
|
||||||
|
|
||||||
|
vi index.html
|
||||||
|
Add/change links to current release.
|
||||||
|
|
||||||
|
git commit index.html
|
||||||
|
|
||||||
|
git push
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Update checksums on wiki page.
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
openssl sha -sha256 json-c*gz
|
||||||
|
openssl md5 json-c*gz
|
||||||
|
|
||||||
|
Copy and paste this output into the wiki page at:
|
||||||
|
https://github.com/json-c/json-c/wiki
|
||||||
|
|
||||||
|
------------
|
||||||
|
|
||||||
|
Send an email to the mailing list.
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
In general:
|
||||||
|
For minor changes to a function, copy the existing formatting.
|
||||||
|
When changing the style, commit that separately from other changes.
|
||||||
|
For new code and major changes to a function, switch to the official json-c style.
|
||||||
|
|
||||||
|
Official json-c style:
|
||||||
|
Aim for readability, not strict conformance to fixed style rules.
|
||||||
|
These rules are not comprehensive. Look to existing code for guidelines.
|
||||||
|
Indentation is tab based, with continuations of long lines starting with tabs then spaces for alignment.
|
||||||
|
Try to line up components of continuation lines with corresponding part of the line above (i.e. "indent -lp" effect), but avoid excessive identation tha causes extra line wraps.
|
||||||
|
e.g. (T=tab, S=space):
|
||||||
|
TTTTsome_long_func_call(arg1, arg2,
|
||||||
|
TTTTSSSSSSSSSSSSSSSSSSSarg3, arg4);
|
||||||
|
TTTTsome_reallly_really_long_func_name(arg1,
|
||||||
|
TTTTTarg2, arg3, arg4);
|
||||||
|
There should be a space between "if"/"while" and the following parenthesis.
|
||||||
|
"case" lines are indented at the same level as the "switch" statement.
|
||||||
|
Commas are followed by a single space.
|
||||||
|
Include spaces around most non-unary, non-postfix operators, "=", "==', "&", "||", etc...
|
||||||
|
Function calls have no space between the name and the parenthesis.
|
||||||
|
Curly braces go on their own line.
|
||||||
|
Curly braces may be omitted.
|
||||||
|
|
||||||
|
Naming:
|
||||||
|
Words within function and variable names are separated with underscores. Avoid camel case.
|
||||||
|
Prefer longer, more descriptive names, but not excessively so. No single letter variable names.
|
||||||
|
|
||||||
|
Other:
|
||||||
|
Variables should be defined for the smallest scope needed.
|
||||||
|
Functions should be defined static when possible.
|
||||||
|
When possible, avoid exposing internals in the public API.
|
||||||
Vendored
+9756
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,39 @@
|
|||||||
|
version: '{branch}.{build}'
|
||||||
|
os: Windows Server 2012 R2
|
||||||
|
|
||||||
|
configuration:
|
||||||
|
- Debug
|
||||||
|
- Release
|
||||||
|
platform: x64
|
||||||
|
environment:
|
||||||
|
matrix:
|
||||||
|
- PlatformToolset: v140
|
||||||
|
- PlatformToolset: v120
|
||||||
|
- PlatformToolset: Windows7.1SDK
|
||||||
|
|
||||||
|
build_script:
|
||||||
|
- cmake .
|
||||||
|
- >
|
||||||
|
msbuild "json-c.vcxproj" /m /verbosity:normal
|
||||||
|
/logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
|
||||||
|
/p:PlatformToolset=%PlatformToolset% /p:OutDir=lib\
|
||||||
|
|
||||||
|
after_build:
|
||||||
|
- md include\json-c
|
||||||
|
- copy json.h include\json-c\*
|
||||||
|
- copy debug.h include\json-c\*
|
||||||
|
- copy linkhash.h include\json-c\*
|
||||||
|
- copy arraylist.h include\json-c\*
|
||||||
|
- copy json_util.h include\json-c\*
|
||||||
|
- copy json_object.h include\json-c\*
|
||||||
|
- copy json_tokener.h include\json-c\*
|
||||||
|
- copy json_object_iterator.h include\json-c\*
|
||||||
|
- copy json_c_version.h include\json-c\*
|
||||||
|
- copy json_inttypes.h include\json-c\*
|
||||||
|
- copy include\json_config.h include\json-c\*
|
||||||
|
- copy json_object_private.h include\json-c\*
|
||||||
|
- 7z a json-c.lib.zip lib\json-c.dll include\json-c\*.h
|
||||||
|
|
||||||
|
artifacts:
|
||||||
|
- path: json-c.lib.zip
|
||||||
|
name: json-c.lib.zip
|
||||||
+146
@@ -0,0 +1,146 @@
|
|||||||
|
/*
|
||||||
|
* $Id: arraylist.c,v 1.4 2006/01/26 02:16:28 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#ifdef STDC_HEADERS
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <string.h>
|
||||||
|
#endif /* STDC_HEADERS */
|
||||||
|
|
||||||
|
#if defined(HAVE_STRINGS_H) && !defined(_STRING_H) && !defined(__USE_BSD)
|
||||||
|
# include <strings.h>
|
||||||
|
#endif /* HAVE_STRINGS_H */
|
||||||
|
|
||||||
|
#ifndef SIZE_T_MAX
|
||||||
|
#if SIZEOF_SIZE_T == SIZEOF_INT
|
||||||
|
#define SIZE_T_MAX UINT_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == SIZEOF_LONG
|
||||||
|
#define SIZE_T_MAX ULONG_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
|
||||||
|
#define SIZE_T_MAX ULLONG_MAX
|
||||||
|
#else
|
||||||
|
#error Unable to determine size of size_t
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "arraylist.h"
|
||||||
|
|
||||||
|
struct array_list*
|
||||||
|
array_list_new(array_list_free_fn *free_fn)
|
||||||
|
{
|
||||||
|
struct array_list *arr;
|
||||||
|
|
||||||
|
arr = (struct array_list*)calloc(1, sizeof(struct array_list));
|
||||||
|
if(!arr) return NULL;
|
||||||
|
arr->size = ARRAY_LIST_DEFAULT_SIZE;
|
||||||
|
arr->length = 0;
|
||||||
|
arr->free_fn = free_fn;
|
||||||
|
if(!(arr->array = (void**)calloc(sizeof(void*), arr->size))) {
|
||||||
|
free(arr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void
|
||||||
|
array_list_free(struct array_list *arr)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
for(i = 0; i < arr->length; i++)
|
||||||
|
if(arr->array[i]) arr->free_fn(arr->array[i]);
|
||||||
|
free(arr->array);
|
||||||
|
free(arr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void*
|
||||||
|
array_list_get_idx(struct array_list *arr, size_t i)
|
||||||
|
{
|
||||||
|
if(i >= arr->length) return NULL;
|
||||||
|
return arr->array[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
static int array_list_expand_internal(struct array_list *arr, size_t max)
|
||||||
|
{
|
||||||
|
void *t;
|
||||||
|
size_t new_size;
|
||||||
|
|
||||||
|
if(max < arr->size) return 0;
|
||||||
|
/* Avoid undefined behaviour on size_t overflow */
|
||||||
|
if( arr->size >= SIZE_T_MAX / 2 )
|
||||||
|
new_size = max;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
new_size = arr->size << 1;
|
||||||
|
if (new_size < max)
|
||||||
|
new_size = max;
|
||||||
|
}
|
||||||
|
if (new_size > (~((size_t)0)) / sizeof(void*)) return -1;
|
||||||
|
if (!(t = realloc(arr->array, new_size*sizeof(void*)))) return -1;
|
||||||
|
arr->array = (void**)t;
|
||||||
|
(void)memset(arr->array + arr->size, 0, (new_size-arr->size)*sizeof(void*));
|
||||||
|
arr->size = new_size;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||||
|
{
|
||||||
|
if (idx > SIZE_T_MAX - 1 ) return -1;
|
||||||
|
if(array_list_expand_internal(arr, idx+1)) return -1;
|
||||||
|
if(idx < arr->length && arr->array[idx])
|
||||||
|
arr->free_fn(arr->array[idx]);
|
||||||
|
arr->array[idx] = data;
|
||||||
|
if(arr->length <= idx) arr->length = idx + 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
array_list_add(struct array_list *arr, void *data)
|
||||||
|
{
|
||||||
|
return array_list_put_idx(arr, arr->length, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
array_list_sort(struct array_list *arr, int(*sort_fn)(const void *, const void *))
|
||||||
|
{
|
||||||
|
qsort(arr->array, arr->length, sizeof(arr->array[0]), sort_fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
void* array_list_bsearch(const void **key, struct array_list *arr,
|
||||||
|
int (*sort_fn)(const void *, const void *))
|
||||||
|
{
|
||||||
|
return bsearch(key, arr->array, arr->length, sizeof(arr->array[0]),
|
||||||
|
sort_fn);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t
|
||||||
|
array_list_length(struct array_list *arr)
|
||||||
|
{
|
||||||
|
return arr->length;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
array_list_del_idx( struct array_list *arr, size_t idx, size_t count )
|
||||||
|
{
|
||||||
|
size_t i, stop;
|
||||||
|
|
||||||
|
stop = idx + count;
|
||||||
|
if ( idx >= arr->length || stop > arr->length ) return -1;
|
||||||
|
for ( i = idx; i < stop; ++i ) {
|
||||||
|
if ( arr->array[i] ) arr->free_fn( arr->array[i] );
|
||||||
|
}
|
||||||
|
memmove( arr->array + idx, arr->array + stop, (arr->length - stop) * sizeof(void*) );
|
||||||
|
arr->length -= count;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
+70
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
* $Id: arraylist.h,v 1.4 2006/01/26 02:16:28 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief Internal methods for working with json_type_array objects.
|
||||||
|
* Although this is exposed by the json_object_get_array() method,
|
||||||
|
* it is not recommended for direct use.
|
||||||
|
*/
|
||||||
|
#ifndef _arraylist_h_
|
||||||
|
#define _arraylist_h_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define ARRAY_LIST_DEFAULT_SIZE 32
|
||||||
|
|
||||||
|
typedef void (array_list_free_fn) (void *data);
|
||||||
|
|
||||||
|
struct array_list
|
||||||
|
{
|
||||||
|
void **array;
|
||||||
|
size_t length;
|
||||||
|
size_t size;
|
||||||
|
array_list_free_fn *free_fn;
|
||||||
|
};
|
||||||
|
typedef struct array_list array_list;
|
||||||
|
|
||||||
|
extern struct array_list*
|
||||||
|
array_list_new(array_list_free_fn *free_fn);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
array_list_free(struct array_list *al);
|
||||||
|
|
||||||
|
extern void*
|
||||||
|
array_list_get_idx(struct array_list *al, size_t i);
|
||||||
|
|
||||||
|
extern int
|
||||||
|
array_list_put_idx(struct array_list *al, size_t i, void *data);
|
||||||
|
|
||||||
|
extern int
|
||||||
|
array_list_add(struct array_list *al, void *data);
|
||||||
|
|
||||||
|
extern size_t
|
||||||
|
array_list_length(struct array_list *al);
|
||||||
|
|
||||||
|
extern void
|
||||||
|
array_list_sort(struct array_list *arr, int(*compar)(const void *, const void *));
|
||||||
|
|
||||||
|
extern void* array_list_bsearch(const void **key,
|
||||||
|
struct array_list *arr,
|
||||||
|
int (*sort_fn)(const void *, const void *));
|
||||||
|
|
||||||
|
extern int
|
||||||
|
array_list_del_idx(struct array_list *arr, size_t idx, size_t count);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
Autoconf Archive fetched from:
|
||||||
|
|
||||||
|
http://gnu.mirror.iweb.com/autoconf-archive/autoconf-archive-2015.09.25.tar.xz
|
||||||
|
|
||||||
|
Grabbed the minimum files needed for the AX_APPEND_COMPILE_FLAGS and
|
||||||
|
AX_COMPILE_CHECK_SIZEOF macros.
|
||||||
|
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# For every FLAG1, FLAG2 it is checked whether the compiler works with the
|
||||||
|
# flag. If it does, the flag is added FLAGS-VARIABLE
|
||||||
|
#
|
||||||
|
# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
|
||||||
|
# CFLAGS) is used. During the check the flag is always added to the
|
||||||
|
# current language's flags.
|
||||||
|
#
|
||||||
|
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||||
|
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||||
|
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||||
|
# force the compiler to issue an error when a bad flag is given.
|
||||||
|
#
|
||||||
|
# NOTE: This macro depends on the AX_APPEND_FLAG and
|
||||||
|
# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with
|
||||||
|
# AX_APPEND_LINK_FLAGS.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
|
#serial 4
|
||||||
|
|
||||||
|
AC_DEFUN([AX_APPEND_COMPILE_FLAGS],
|
||||||
|
[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
|
||||||
|
AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
|
||||||
|
for flag in $1; do
|
||||||
|
AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3])
|
||||||
|
done
|
||||||
|
])dnl AX_APPEND_COMPILE_FLAGS
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_append_flag.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
|
||||||
|
# added in between.
|
||||||
|
#
|
||||||
|
# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
|
||||||
|
# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
|
||||||
|
# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
|
||||||
|
# FLAG.
|
||||||
|
#
|
||||||
|
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||||
|
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
|
#serial 6
|
||||||
|
|
||||||
|
AC_DEFUN([AX_APPEND_FLAG],
|
||||||
|
[dnl
|
||||||
|
AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
|
||||||
|
AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
|
||||||
|
AS_VAR_SET_IF(FLAGS,[
|
||||||
|
AS_CASE([" AS_VAR_GET(FLAGS) "],
|
||||||
|
[*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
|
||||||
|
[
|
||||||
|
AS_VAR_APPEND(FLAGS,[" $1"])
|
||||||
|
AC_RUN_LOG([: FLAGS="$FLAGS"])
|
||||||
|
])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AS_VAR_SET(FLAGS,[$1])
|
||||||
|
AC_RUN_LOG([: FLAGS="$FLAGS"])
|
||||||
|
])
|
||||||
|
AS_VAR_POPDEF([FLAGS])dnl
|
||||||
|
])dnl AX_APPEND_FLAG
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# Check whether the given FLAG works with the current language's compiler
|
||||||
|
# or gives an error. (Warnings, however, are ignored)
|
||||||
|
#
|
||||||
|
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||||
|
# success/failure.
|
||||||
|
#
|
||||||
|
# If EXTRA-FLAGS is defined, it is added to the current language's default
|
||||||
|
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
|
||||||
|
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
|
||||||
|
# force the compiler to issue an error when a bad flag is given.
|
||||||
|
#
|
||||||
|
# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
|
||||||
|
#
|
||||||
|
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
|
||||||
|
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
|
||||||
|
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
# Free Software Foundation, either version 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
|
#serial 4
|
||||||
|
|
||||||
|
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
|
||||||
|
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
|
||||||
|
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
|
||||||
|
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
|
||||||
|
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
|
||||||
|
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
|
||||||
|
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
|
||||||
|
[AS_VAR_SET(CACHEVAR,[yes])],
|
||||||
|
[AS_VAR_SET(CACHEVAR,[no])])
|
||||||
|
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
|
||||||
|
AS_VAR_IF(CACHEVAR,yes,
|
||||||
|
[m4_default([$2], :)],
|
||||||
|
[m4_default([$3], :)])
|
||||||
|
AS_VAR_POPDEF([CACHEVAR])dnl
|
||||||
|
])dnl AX_CHECK_COMPILE_FLAGS
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_compile_check_sizeof.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(TYPE [, HEADERS [, EXTRA_SIZES...]])
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# This macro checks for the size of TYPE using compile checks, not run
|
||||||
|
# checks. You can supply extra HEADERS to look into. the check will cycle
|
||||||
|
# through 1 2 4 8 16 and any EXTRA_SIZES the user supplies. If a match is
|
||||||
|
# found, it will #define SIZEOF_`TYPE' to that value. Otherwise it will
|
||||||
|
# emit a configure time error indicating the size of the type could not be
|
||||||
|
# determined.
|
||||||
|
#
|
||||||
|
# The trick is that C will not allow duplicate case labels. While this is
|
||||||
|
# valid C code:
|
||||||
|
#
|
||||||
|
# switch (0) case 0: case 1:;
|
||||||
|
#
|
||||||
|
# The following is not:
|
||||||
|
#
|
||||||
|
# switch (0) case 0: case 0:;
|
||||||
|
#
|
||||||
|
# Thus, the AC_TRY_COMPILE will fail if the currently tried size does not
|
||||||
|
# match.
|
||||||
|
#
|
||||||
|
# Here is an example skeleton configure.in script, demonstrating the
|
||||||
|
# macro's usage:
|
||||||
|
#
|
||||||
|
# AC_PROG_CC
|
||||||
|
# AC_CHECK_HEADERS(stddef.h unistd.h)
|
||||||
|
# AC_TYPE_SIZE_T
|
||||||
|
# AC_CHECK_TYPE(ssize_t, int)
|
||||||
|
#
|
||||||
|
# headers='#ifdef HAVE_STDDEF_H
|
||||||
|
# #include <stddef.h>
|
||||||
|
# #endif
|
||||||
|
# #ifdef HAVE_UNISTD_H
|
||||||
|
# #include <unistd.h>
|
||||||
|
# #endif
|
||||||
|
# '
|
||||||
|
#
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(char)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(short)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(int)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(long)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(unsigned char *)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(void *)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(size_t, $headers)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(ssize_t, $headers)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(ptrdiff_t, $headers)
|
||||||
|
# AX_COMPILE_CHECK_SIZEOF(off_t, $headers)
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2008 Kaveh Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
#
|
||||||
|
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||||||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||||||
|
# need not follow the terms of the GNU General Public License when using
|
||||||
|
# or distributing such scripts, even though portions of the text of the
|
||||||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||||||
|
#
|
||||||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||||||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||||||
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
|
#serial 5
|
||||||
|
|
||||||
|
AU_ALIAS([AC_COMPILE_CHECK_SIZEOF], [AX_COMPILE_CHECK_SIZEOF])
|
||||||
|
AC_DEFUN([AX_COMPILE_CHECK_SIZEOF],
|
||||||
|
[changequote(<<, >>)dnl
|
||||||
|
dnl The name to #define.
|
||||||
|
define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
|
||||||
|
dnl The cache variable name.
|
||||||
|
define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
|
||||||
|
changequote([, ])dnl
|
||||||
|
AC_MSG_CHECKING(size of $1)
|
||||||
|
AC_CACHE_VAL(AC_CV_NAME,
|
||||||
|
[for ac_size in 4 8 1 2 16 $3 ; do # List sizes in rough order of prevalence.
|
||||||
|
AC_TRY_COMPILE([#include "confdefs.h"
|
||||||
|
#include <sys/types.h>
|
||||||
|
$2
|
||||||
|
], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
|
||||||
|
if test x$AC_CV_NAME != x ; then break; fi
|
||||||
|
done
|
||||||
|
])
|
||||||
|
if test x$AC_CV_NAME = x ; then
|
||||||
|
AC_MSG_ERROR([cannot determine a size for $1])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT($AC_CV_NAME)
|
||||||
|
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
|
||||||
|
undefine([AC_TYPE_NAME])dnl
|
||||||
|
undefine([AC_CV_NAME])dnl
|
||||||
|
])
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# ===========================================================================
|
||||||
|
# http://www.gnu.org/software/autoconf-archive/ax_require_defined.html
|
||||||
|
# ===========================================================================
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED(MACRO)
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
|
||||||
|
# been defined and thus are available for use. This avoids random issues
|
||||||
|
# where a macro isn't expanded. Instead the configure script emits a
|
||||||
|
# non-fatal:
|
||||||
|
#
|
||||||
|
# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
|
||||||
|
#
|
||||||
|
# It's like AC_REQUIRE except it doesn't expand the required macro.
|
||||||
|
#
|
||||||
|
# Here's an example:
|
||||||
|
#
|
||||||
|
# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
|
||||||
|
#
|
||||||
|
# LICENSE
|
||||||
|
#
|
||||||
|
# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
#
|
||||||
|
# Copying and distribution of this file, with or without modification, are
|
||||||
|
# permitted in any medium without royalty provided the copyright notice
|
||||||
|
# and this notice are preserved. This file is offered as-is, without any
|
||||||
|
# warranty.
|
||||||
|
|
||||||
|
#serial 1
|
||||||
|
|
||||||
|
AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
|
||||||
|
m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
|
||||||
|
])dnl AX_REQUIRE_DEFINED
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
autoreconf -v --install || exit 1
|
||||||
|
|
||||||
|
# If there are any options, assume the user wants to run configure.
|
||||||
|
# To run configure w/o any options, use ./autogen.sh --configure
|
||||||
|
if [ $# -gt 0 ] ; then
|
||||||
|
case "$1" in
|
||||||
|
--conf*)
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exec ./configure "$@"
|
||||||
|
fi
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief Do not use, only contains deprecated defines.
|
||||||
|
* @deprecated Use json_util.h instead.
|
||||||
|
*
|
||||||
|
* $Id: bits.h,v 1.10 2006/01/30 23:07:57 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _bits_h_
|
||||||
|
#define _bits_h_
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
#define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
#define error_ptr(error) ((void*)error)
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
#define error_description(error) (json_tokener_get_error(error))
|
||||||
|
/**
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
#define is_error(ptr) (ptr == NULL)
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,347 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2012-10-14.11; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
|
||||||
|
# We need space, tab and new line, in precisely that order. Quoting is
|
||||||
|
# there to prevent tools from complaining about whitespace usage.
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file lazy
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts. If the determined conversion
|
||||||
|
# type is listed in (the comma separated) LAZY, no conversion will
|
||||||
|
# take place.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv/,$2, in
|
||||||
|
*,$file_conv,*)
|
||||||
|
;;
|
||||||
|
mingw/*)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin/*)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine/*)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashL linkdir
|
||||||
|
# Make cl look for libraries in LINKDIR
|
||||||
|
func_cl_dashL ()
|
||||||
|
{
|
||||||
|
func_file_conv "$1"
|
||||||
|
if test -z "$lib_path"; then
|
||||||
|
lib_path=$file
|
||||||
|
else
|
||||||
|
lib_path="$lib_path;$file"
|
||||||
|
fi
|
||||||
|
linker_opts="$linker_opts -LIBPATH:$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashl library
|
||||||
|
# Do a library search-path lookup for cl
|
||||||
|
func_cl_dashl ()
|
||||||
|
{
|
||||||
|
lib=$1
|
||||||
|
found=no
|
||||||
|
save_IFS=$IFS
|
||||||
|
IFS=';'
|
||||||
|
for dir in $lib_path $LIB
|
||||||
|
do
|
||||||
|
IFS=$save_IFS
|
||||||
|
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.dll.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$lib.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/lib$lib.a"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/lib$lib.a
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$save_IFS
|
||||||
|
|
||||||
|
if test "$found" != yes; then
|
||||||
|
lib=$lib.lib
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_wrapper cl arg...
|
||||||
|
# Adjust compile command to suit cl
|
||||||
|
func_cl_wrapper ()
|
||||||
|
{
|
||||||
|
# Assume a capable shell
|
||||||
|
lib_path=
|
||||||
|
shared=:
|
||||||
|
linker_opts=
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.[oO][bB][jJ])
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fo"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fe"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-I)
|
||||||
|
eat=1
|
||||||
|
func_file_conv "$2" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
func_file_conv "${1#-I}" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashl "$2"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l*)
|
||||||
|
func_cl_dashl "${1#-l}"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-L)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashL "$2"
|
||||||
|
;;
|
||||||
|
-L*)
|
||||||
|
func_cl_dashL "${1#-L}"
|
||||||
|
;;
|
||||||
|
-static)
|
||||||
|
shared=false
|
||||||
|
;;
|
||||||
|
-Wl,*)
|
||||||
|
arg=${1#-Wl,}
|
||||||
|
save_ifs="$IFS"; IFS=','
|
||||||
|
for flag in $arg; do
|
||||||
|
IFS="$save_ifs"
|
||||||
|
linker_opts="$linker_opts $flag"
|
||||||
|
done
|
||||||
|
IFS="$save_ifs"
|
||||||
|
;;
|
||||||
|
-Xlinker)
|
||||||
|
eat=1
|
||||||
|
linker_opts="$linker_opts $2"
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" -Tp"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||||
|
func_file_conv "$1" mingw
|
||||||
|
set x "$@" "$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if test -n "$linker_opts"; then
|
||||||
|
linker_opts="-link$linker_opts"
|
||||||
|
fi
|
||||||
|
exec "$@" $linker_opts
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eat=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file 'INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||||
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
# So we strip '-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no '-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# '.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
+1420
File diff suppressed because it is too large.
Load diff
+196
@@ -0,0 +1,196 @@
|
|||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Enable RDRAND Hardware RNG Hash Seed */
|
||||||
|
#undef ENABLE_RDRAND
|
||||||
|
|
||||||
|
/* Enable partial threading support */
|
||||||
|
#undef ENABLE_THREADING
|
||||||
|
|
||||||
|
/* Define if .gnu.warning accepts long strings. */
|
||||||
|
#undef HAS_GNU_WARNING_LONG
|
||||||
|
|
||||||
|
/* Has atomic builtins */
|
||||||
|
#undef HAVE_ATOMIC_BUILTINS
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_INFINITY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ISINF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ISNAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
|
||||||
|
#undef HAVE_DECL_NAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_finite', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL__FINITE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL__ISNAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||||
|
#undef HAVE_DOPRNT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <endian.h> header file. */
|
||||||
|
#undef HAVE_ENDIAN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#undef HAVE_LOCALE_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `open' function. */
|
||||||
|
#undef HAVE_OPEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `realloc' function. */
|
||||||
|
#undef HAVE_REALLOC
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
|
#undef HAVE_SETLOCALE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `snprintf' function. */
|
||||||
|
#undef HAVE_SNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdarg.h> header file. */
|
||||||
|
#undef HAVE_STDARG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcasecmp' function. */
|
||||||
|
#undef HAVE_STRCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
#undef HAVE_STRDUP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strncasecmp' function. */
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/cdefs.h> header file. */
|
||||||
|
#undef HAVE_SYS_CDEFS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `uselocale' function. */
|
||||||
|
#undef HAVE_USELOCALE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vasprintf' function. */
|
||||||
|
#undef HAVE_VASPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsnprintf' function. */
|
||||||
|
#undef HAVE_VSNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsyslog' function. */
|
||||||
|
#undef HAVE_VSYSLOG
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <xlocale.h> header file. */
|
||||||
|
#undef HAVE_XLOCALE_H
|
||||||
|
|
||||||
|
/* Have __thread */
|
||||||
|
#undef HAVE___THREAD
|
||||||
|
|
||||||
|
/* Public define for json_inttypes.h */
|
||||||
|
#undef JSON_C_HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* The number of bytes in type int */
|
||||||
|
#undef SIZEOF_INT
|
||||||
|
|
||||||
|
/* The number of bytes in type int64_t */
|
||||||
|
#undef SIZEOF_INT64_T
|
||||||
|
|
||||||
|
/* The number of bytes in type long */
|
||||||
|
#undef SIZEOF_LONG
|
||||||
|
|
||||||
|
/* The number of bytes in type long long */
|
||||||
|
#undef SIZEOF_LONG_LONG
|
||||||
|
|
||||||
|
/* The number of bytes in type size_t */
|
||||||
|
#undef SIZEOF_SIZE_T
|
||||||
|
|
||||||
|
/* Specifier for __thread */
|
||||||
|
#undef SPEC___THREAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
||||||
+205
@@ -0,0 +1,205 @@
|
|||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Enable RDRANR Hardware RNG Hash Seed */
|
||||||
|
#undef ENABLE_RDRAND
|
||||||
|
|
||||||
|
/* Define if .gnu.warning accepts long strings. */
|
||||||
|
#undef HAS_GNU_WARNING_LONG
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
|
||||||
|
#define HAVE_DECL_INFINITY 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
|
||||||
|
#define HAVE_DECL_ISINF 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
|
||||||
|
#define HAVE_DECL_ISNAN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
|
||||||
|
#define HAVE_DECL_NAN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_finite', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#define HAVE_DECL__FINITE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#define HAVE_DECL__ISNAN 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#define HAVE_DLFCN_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||||
|
#define HAVE_DOPRNT 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <endian.h> header file. */
|
||||||
|
#undef HAVE_ENDIAN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#define HAVE_LIMITS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#define HAVE_LOCALE_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||||
|
to 0 otherwise. */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `open' function. */
|
||||||
|
#define HAVE_OPEN 1
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||||
|
and to 0 otherwise. */
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
|
#define HAVE_SETLOCALE 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `snprintf' function. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_SNPRINTF 1
|
||||||
|
#else
|
||||||
|
#undef HAVE_SNPRINTF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdarg.h> header file. */
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcasecmp' function. */
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
#define HAVE_STRDUP 0
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#define HAVE_STRERROR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strncasecmp' function. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_STRNCASECMP 1
|
||||||
|
#else
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#cmakedefine HAVE_STRTOLL
|
||||||
|
#cmakedefine strtoll @cmake_strtoll@
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/cdefs.h> header file. */
|
||||||
|
#define HAVE_SYS_CDEFS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_SYS_PARAM_H 1
|
||||||
|
#else
|
||||||
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_UNISTD_H 1
|
||||||
|
#else
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vasprintf' function. */
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
#define HAVE_VASPRINTF 1
|
||||||
|
#else
|
||||||
|
#undef HAVE_VASPRINTF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
|
#define HAVE_VPRINTF 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsnprintf' function. */
|
||||||
|
#define HAVE_VSNPRINTF 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsyslog' function. */
|
||||||
|
#undef HAVE_VSYSLOG
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||||
|
/* #undef NO_MINUS_C_MINUS_O */
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#define PACKAGE "json-c"
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#define PACKAGE_BUGREPORT "json-c@googlegroups.com"
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#define PACKAGE_NAME "JSON C Library"
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#define PACKAGE_STRING "JSON C Library 0.13"
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#define PACKAGE_TARNAME "json-c"
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#define PACKAGE_URL "https://github.com/json-c/json-c"
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#define PACKAGE_VERSION "0.13"
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#define VERSION "0.13"
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
/* #undef const */
|
||||||
|
|
||||||
|
/* Define to rpl_malloc if the replacement function should be used. */
|
||||||
|
/* #undef malloc */
|
||||||
|
|
||||||
|
/* Define to rpl_realloc if the replacement function should be used. */
|
||||||
|
/* #undef realloc */
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
/* #undef size_t */
|
||||||
+1799
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+186
@@ -0,0 +1,186 @@
|
|||||||
|
AC_PREREQ(2.64)
|
||||||
|
|
||||||
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
AC_INIT([json-c], 0.13, [json-c@googlegroups.com])
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
AC_CONFIG_MACRO_DIRS([autoconf-archive/m4])
|
||||||
|
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(threading,
|
||||||
|
AS_HELP_STRING([--enable-threading],
|
||||||
|
[Enable code to support partly multi-threaded use]),
|
||||||
|
[if test x$enableval = xyes; then
|
||||||
|
enable_threading=yes
|
||||||
|
AC_DEFINE(ENABLE_THREADING, 1, [Enable partial threading support])
|
||||||
|
fi])
|
||||||
|
|
||||||
|
if test "x$enable_threading" = "xyes"; then
|
||||||
|
AC_MSG_RESULT([Partial multi-threaded support enabled.])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([Multi-threaded support disabled. Use --enable-threading to enable.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(rdrand,
|
||||||
|
AS_HELP_STRING([--enable-rdrand],
|
||||||
|
[Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms.]),
|
||||||
|
[if test x$enableval = xyes; then
|
||||||
|
enable_rdrand=yes
|
||||||
|
AC_DEFINE(ENABLE_RDRAND, 1, [Enable RDRAND Hardware RNG Hash Seed])
|
||||||
|
fi])
|
||||||
|
|
||||||
|
if test "x$enable_rdrand" = "xyes"; then
|
||||||
|
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed enabled on supported x86/x64 platforms])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# enable silent build by default
|
||||||
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
|
# Checks for programs.
|
||||||
|
|
||||||
|
# Checks for libraries.
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_PROG_CC_C99
|
||||||
|
AC_CONFIG_HEADER(config.h)
|
||||||
|
AC_CONFIG_HEADER(json_config.h)
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h xlocale.h endian.h)
|
||||||
|
AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])])
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for __thread support], ac_cv___thread, [dnl
|
||||||
|
AC_LINK_IFELSE([dnl
|
||||||
|
AC_LANG_PROGRAM([[#undef __thread
|
||||||
|
static __thread int a; int foo (int b) { return a + b; }]],
|
||||||
|
[[exit (foo (0));]])],
|
||||||
|
ac_cv___thread=yes, ac_cv___thread=no)
|
||||||
|
])
|
||||||
|
AS_IF([test "x$ac_cv___thread" != xno],
|
||||||
|
[AC_DEFINE(HAVE___THREAD, 1, [Have __thread])
|
||||||
|
AC_DEFINE(SPEC___THREAD, [__thread], [Specifier for __thread])]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_FUNC_VPRINTF
|
||||||
|
AC_FUNC_MEMCMP
|
||||||
|
AC_CHECK_FUNCS([realloc])
|
||||||
|
AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
|
||||||
|
AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
|
||||||
|
AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
|
||||||
|
AC_MSG_CHECKING(for GCC atomic builtins)
|
||||||
|
AC_LINK_IFELSE(
|
||||||
|
[
|
||||||
|
AC_LANG_SOURCE([[
|
||||||
|
int main() {
|
||||||
|
volatile unsigned int val = 1;
|
||||||
|
/* Note: __sync_val_compare_and_swap isn't checked here
|
||||||
|
* because it's protected by __GCC_HAVE_SYNC_COMPARE_AND_SWAP_<n>,
|
||||||
|
* which is automatically defined by gcc.
|
||||||
|
*/
|
||||||
|
__sync_add_and_fetch(&val, 1);
|
||||||
|
__sync_sub_and_fetch(&val, 1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
]])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
AC_DEFINE([HAVE_ATOMIC_BUILTINS],[1],[Has atomic builtins])
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
AC_MSG_WARN([json-c will be built without atomic refcounts because atomic builtins are missing])
|
||||||
|
])
|
||||||
|
|
||||||
|
case "${host_os}" in
|
||||||
|
linux*)
|
||||||
|
AC_CHECK_FUNCS([uselocale])
|
||||||
|
;;
|
||||||
|
*) # Nothing
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "$ac_cv_have_decl_isnan" = "yes" ; then
|
||||||
|
AC_TRY_LINK([#include <math.h>], [float f = 0.0; return isnan(f)], [], [LIBS="$LIBS -lm"])
|
||||||
|
fi
|
||||||
|
|
||||||
|
#check if .section.gnu.warning accepts long strings (for __warn_references)
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if .gnu.warning accepts long strings])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
extern void json_object_get();
|
||||||
|
__asm__(".section .gnu.json_object_get,\n\t.ascii \"Please link against libjson-c instead of libjson\"\n\t.text");
|
||||||
|
|
||||||
|
int main(int c,char* v) {return 0;}
|
||||||
|
]])], [
|
||||||
|
AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
LT_INIT
|
||||||
|
|
||||||
|
# Check for the -Bsymbolic-functions linker flag
|
||||||
|
AC_ARG_ENABLE([Bsymbolic],
|
||||||
|
[AS_HELP_STRING([--disable-Bsymbolic], [Avoid linking with -Bsymbolic-function])],
|
||||||
|
[],
|
||||||
|
[enable_Bsymbolic=check])
|
||||||
|
|
||||||
|
AS_IF([test "x$enable_Bsymbolic" = "xcheck"],
|
||||||
|
[
|
||||||
|
saved_LDFLAGS="${LDFLAGS}"
|
||||||
|
AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
|
||||||
|
LDFLAGS=-Wl,-Bsymbolic-functions
|
||||||
|
AC_TRY_LINK([], [int main (void) { return 0; }],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
enable_Bsymbolic=yes
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
enable_Bsymbolic=no
|
||||||
|
])
|
||||||
|
LDFLAGS="${saved_LDFLAGS}"
|
||||||
|
])
|
||||||
|
|
||||||
|
AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
|
||||||
|
AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
|
||||||
|
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Wall -Werror -Wcast-qual -Wno-error=deprecated-declarations])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-Wextra -Wwrite-string -Wno-unused-parameter])
|
||||||
|
AX_APPEND_COMPILE_FLAGS([-D_GNU_SOURCE -D_REENTRANT])
|
||||||
|
|
||||||
|
AX_COMPILE_CHECK_SIZEOF(int)
|
||||||
|
AX_COMPILE_CHECK_SIZEOF(long)
|
||||||
|
AX_COMPILE_CHECK_SIZEOF(long long)
|
||||||
|
AX_COMPILE_CHECK_SIZEOF(size_t, [#include <stdint.h>])
|
||||||
|
AX_COMPILE_CHECK_SIZEOF(int64_t, [#include <stdint.h>])
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([
|
||||||
|
Makefile
|
||||||
|
json-c.pc
|
||||||
|
tests/Makefile
|
||||||
|
json-c-uninstalled.pc
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
/*
|
||||||
|
* $Id: debug.c,v 1.5 2006/01/26 02:16:28 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
#if HAVE_SYSLOG_H
|
||||||
|
# include <syslog.h>
|
||||||
|
#endif /* HAVE_SYSLOG_H */
|
||||||
|
|
||||||
|
#if HAVE_UNISTD_H
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif /* HAVE_UNISTD_H */
|
||||||
|
|
||||||
|
#if HAVE_SYS_PARAM_H
|
||||||
|
#include <sys/param.h>
|
||||||
|
#endif /* HAVE_SYS_PARAM_H */
|
||||||
|
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
static int _syslog = 0;
|
||||||
|
static int _debug = 0;
|
||||||
|
|
||||||
|
void mc_set_debug(int debug) { _debug = debug; }
|
||||||
|
int mc_get_debug(void) { return _debug; }
|
||||||
|
|
||||||
|
extern void mc_set_syslog(int syslog)
|
||||||
|
{
|
||||||
|
_syslog = syslog;
|
||||||
|
}
|
||||||
|
|
||||||
|
void mc_debug(const char *msg, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
if(_debug) {
|
||||||
|
va_start(ap, msg);
|
||||||
|
#if HAVE_VSYSLOG
|
||||||
|
if(_syslog) {
|
||||||
|
vsyslog(LOG_DEBUG, msg, ap);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
vprintf(msg, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void mc_error(const char *msg, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, msg);
|
||||||
|
#if HAVE_VSYSLOG
|
||||||
|
if(_syslog) {
|
||||||
|
vsyslog(LOG_ERR, msg, ap);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
vfprintf(stderr, msg, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mc_info(const char *msg, ...)
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
va_start(ap, msg);
|
||||||
|
#if HAVE_VSYSLOG
|
||||||
|
if(_syslog) {
|
||||||
|
vsyslog(LOG_INFO, msg, ap);
|
||||||
|
} else
|
||||||
|
#endif
|
||||||
|
vfprintf(stderr, msg, ap);
|
||||||
|
va_end(ap);
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* $Id: debug.h,v 1.5 2006/01/30 23:07:57 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
* Copyright (c) 2009 Hewlett-Packard Development Company, L.P.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief Do not use, json-c internal, may be changed or removed at any time.
|
||||||
|
*/
|
||||||
|
#ifndef _DEBUG_H_
|
||||||
|
#define _DEBUG_H_
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void mc_set_debug(int debug);
|
||||||
|
extern int mc_get_debug(void);
|
||||||
|
|
||||||
|
extern void mc_set_syslog(int syslog);
|
||||||
|
|
||||||
|
extern void mc_debug(const char *msg, ...);
|
||||||
|
extern void mc_error(const char *msg, ...);
|
||||||
|
extern void mc_info(const char *msg, ...);
|
||||||
|
|
||||||
|
#ifndef __STRING
|
||||||
|
#define __STRING(x) #x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef PARSER_BROKEN_FIXED
|
||||||
|
|
||||||
|
#define JASSERT(cond) do {} while(0)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define JASSERT(cond) do { \
|
||||||
|
if (!(cond)) { \
|
||||||
|
mc_error("cjson assert failure %s:%d : cond \"" __STRING(cond) "failed\n", __FILE__, __LINE__); \
|
||||||
|
*(int *)0 = 1;\
|
||||||
|
abort(); \
|
||||||
|
}\
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define MC_ERROR(x, ...) mc_error(x, ##__VA_ARGS__)
|
||||||
|
|
||||||
|
#ifdef MC_MAINTAINER_MODE
|
||||||
|
#define MC_SET_DEBUG(x) mc_set_debug(x)
|
||||||
|
#define MC_GET_DEBUG() mc_get_debug()
|
||||||
|
#define MC_SET_SYSLOG(x) mc_set_syslog(x)
|
||||||
|
#define MC_DEBUG(x, ...) mc_debug(x, ##__VA_ARGS__)
|
||||||
|
#define MC_INFO(x, ...) mc_info(x, ##__VA_ARGS__)
|
||||||
|
#else
|
||||||
|
#define MC_SET_DEBUG(x) if (0) mc_set_debug(x)
|
||||||
|
#define MC_GET_DEBUG() (0)
|
||||||
|
#define MC_SET_SYSLOG(x) if (0) mc_set_syslog(x)
|
||||||
|
#define MC_DEBUG(x, ...) if (0) mc_debug(x, ##__VA_ARGS__)
|
||||||
|
#define MC_INFO(x, ...) if (0) mc_info(x, ##__VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,791 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2013-05-30.07; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# 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, 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by 'PROGRAMS ARGS'.
|
||||||
|
object Object file output by 'PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputting dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Get the directory component of the given path, and save it in the
|
||||||
|
# global variables '$dir'. Note that this directory component will
|
||||||
|
# be either empty or ending with a '/' character. This is deliberate.
|
||||||
|
set_dir_from ()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||||
|
*) dir=;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the suffix-stripped basename of the given path, and save it the
|
||||||
|
# global variable '$base'.
|
||||||
|
set_base_from ()
|
||||||
|
{
|
||||||
|
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no dependency file was actually created by the compiler invocation,
|
||||||
|
# we still have to create a dummy depfile, to avoid errors with the
|
||||||
|
# Makefile "include basename.Plo" scheme.
|
||||||
|
make_dummy_depfile ()
|
||||||
|
{
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Factor out some common post-processing of the generated depfile.
|
||||||
|
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||||
|
aix_post_process_depfile ()
|
||||||
|
{
|
||||||
|
# If the compiler actually managed to produce a dependency file,
|
||||||
|
# post-process it.
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form 'foo.o: dependency.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# $object: dependency.h
|
||||||
|
# and one to simply output
|
||||||
|
# dependency.h:
|
||||||
|
# which is needed to avoid the deleted-header problem.
|
||||||
|
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||||
|
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||||
|
} > "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A tabulation character.
|
||||||
|
tab=' '
|
||||||
|
# A newline character.
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
# Character ranges might be problematic outside the C locale.
|
||||||
|
# These definitions help.
|
||||||
|
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
lower=abcdefghijklmnopqrstuvwxyz
|
||||||
|
digits=0123456789
|
||||||
|
alpha=${upper}${lower}
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Avoid interferences from the environment.
|
||||||
|
gccflag= dashmflag=
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
cygpath_u="cygpath -u -f -"
|
||||||
|
if test "$depmode" = msvcmsys; then
|
||||||
|
# This is just like msvisualcpp but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvisualcpp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = msvc7msys; then
|
||||||
|
# This is just like msvc7 but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvc7
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = xlc; then
|
||||||
|
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||||
|
gccflag=-qmakedep=gcc,-MF
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||||
|
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||||
|
## (see the conditional assignment to $gccflag above).
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say). Also, it might not be
|
||||||
|
## supported by the other compilers which use the 'gcc' depmode.
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The second -e expression handles DOS-style file names with drive
|
||||||
|
# letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the "deleted header file" problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
## Some versions of gcc put a space before the ':'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||||
|
## to the object. Take care to not repeat it in the output.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like '#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||||
|
| tr "$nl" ' ' >> "$depfile"
|
||||||
|
echo >> "$depfile"
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
xlc)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts '$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$base.u
|
||||||
|
tmpdepfile3=$dir.libs/$base.u
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$dir$base.u
|
||||||
|
tmpdepfile3=$dir$base.u
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
tcc)
|
||||||
|
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||||
|
# FIXME: That version still under development at the moment of writing.
|
||||||
|
# Make that this statement remains true also for stable, released
|
||||||
|
# versions.
|
||||||
|
# It will wrap lines (doesn't matter whether long or short) with a
|
||||||
|
# trailing '\', as in:
|
||||||
|
#
|
||||||
|
# foo.o : \
|
||||||
|
# foo.c \
|
||||||
|
# foo.h \
|
||||||
|
#
|
||||||
|
# It will put a trailing '\' even on the last line, and will use leading
|
||||||
|
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||||
|
# "Emit spaces for -MD").
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||||
|
# We have to change lines of the first kind to '$object: \'.
|
||||||
|
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||||
|
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||||
|
# dummy dependency, to avoid the deleted-header problem.
|
||||||
|
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
## The order of this option in the case statement is important, since the
|
||||||
|
## shell code in configure will try each of these formats in the order
|
||||||
|
## listed in this file. A plain '-MD' option would be understood by many
|
||||||
|
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||||
|
pgcc)
|
||||||
|
# Portland's C compiler understands '-MD'.
|
||||||
|
# Will always output deps to 'file.d' where file is the root name of the
|
||||||
|
# source file under compilation, even if file resides in a subdirectory.
|
||||||
|
# The object file name does not affect the name of the '.d' file.
|
||||||
|
# pgcc 10.2 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using '\' :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
set_dir_from "$object"
|
||||||
|
# Use the source, not the object, to determine the base name, since
|
||||||
|
# that's sadly what pgcc will do too.
|
||||||
|
set_base_from "$source"
|
||||||
|
tmpdepfile=$base.d
|
||||||
|
|
||||||
|
# For projects that build the same source file twice into different object
|
||||||
|
# files, the pgcc approach of using the *source* file root name can cause
|
||||||
|
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||||
|
# the same $tmpdepfile.
|
||||||
|
lockdir=$base.d-lock
|
||||||
|
trap "
|
||||||
|
echo '$0: caught signal, cleaning up...' >&2
|
||||||
|
rmdir '$lockdir'
|
||||||
|
exit 1
|
||||||
|
" 1 2 13 15
|
||||||
|
numtries=100
|
||||||
|
i=$numtries
|
||||||
|
while test $i -gt 0; do
|
||||||
|
# mkdir is a portable test-and-set.
|
||||||
|
if mkdir "$lockdir" 2>/dev/null; then
|
||||||
|
# This process acquired the lock.
|
||||||
|
"$@" -MD
|
||||||
|
stat=$?
|
||||||
|
# Release the lock.
|
||||||
|
rmdir "$lockdir"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
# If the lock is being held by a different process, wait
|
||||||
|
# until the winning process is done or we timeout.
|
||||||
|
while test -d "$lockdir" && test $i -gt 0; do
|
||||||
|
sleep 1
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
trap - 1 2 13 15
|
||||||
|
if test $i -le 0; then
|
||||||
|
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||||
|
echo "$0: check lockdir '$lockdir'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add 'dependent.h:' lines.
|
||||||
|
sed -ne '2,${
|
||||||
|
s/^ *//
|
||||||
|
s/ \\*$//
|
||||||
|
s/$/:/
|
||||||
|
p
|
||||||
|
}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in 'foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# Libtool generates 2 separate objects for the 2 libraries. These
|
||||||
|
# two compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||||
|
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
# Same post-processing that is required for AIX mode.
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
showIncludes=-Wc,-showIncludes
|
||||||
|
else
|
||||||
|
showIncludes=-showIncludes
|
||||||
|
fi
|
||||||
|
"$@" $showIncludes > "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The first sed program below extracts the file names and escapes
|
||||||
|
# backslashes for cygpath. The second sed program outputs the file
|
||||||
|
# name when reading, but also accumulates all include files in the
|
||||||
|
# hold buffer in order to output them again at the end. This only
|
||||||
|
# works with sed implementations that can handle large buffers.
|
||||||
|
sed < "$tmpdepfile" -n '
|
||||||
|
/^Note: including file: *\(.*\)/ {
|
||||||
|
s//\1/
|
||||||
|
s/\\/\\\\/g
|
||||||
|
p
|
||||||
|
}' | $cygpath_u | sort -u | sed -n '
|
||||||
|
s/ /\\ /g
|
||||||
|
s/\(.*\)/'"$tab"'\1 \\/p
|
||||||
|
s/.\(.*\) \\/\1:/
|
||||||
|
H
|
||||||
|
$ {
|
||||||
|
s/.*/'"$tab"'/
|
||||||
|
G
|
||||||
|
p
|
||||||
|
}' >> "$depfile"
|
||||||
|
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7msys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for ':'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no eat=no
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
if test $eat = yes; then
|
||||||
|
eat=no
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-arch)
|
||||||
|
eat=yes ;;
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
# makedepend may prepend the VPATH from the source file name to the object.
|
||||||
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||||
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed '1,2d' "$tmpdepfile" \
|
||||||
|
| tr ' ' "$nl" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E \
|
||||||
|
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
| sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E 2>/dev/null |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||||
|
echo "$tab" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvcmsys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 1103 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user