Compare commits
1077 Commits
R3.13.0-be
...
R3.13.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56fee671fe | ||
|
|
4c7cfd7b2f | ||
|
|
28cdb2b5e1 | ||
|
|
f006ec6a8e | ||
|
|
f468f0e33c | ||
|
|
3cfd9a79f5 | ||
|
|
0c0b5d44ba | ||
|
|
95a399e4a2 | ||
|
|
4daf75e295 | ||
|
|
0ef60ec09a | ||
|
|
42bd805108 | ||
|
|
5e7ec2be6c | ||
|
|
2c1609e2ed | ||
|
|
4d0785b899 | ||
|
|
1fc97eb429 | ||
|
|
54f3de4b0d | ||
|
|
4907dfd43d | ||
|
|
14414ab86f | ||
|
|
08761bebff | ||
|
|
6619c06109 | ||
|
|
5ba5209891 | ||
|
|
5d4eddf424 | ||
|
|
1982c777be | ||
|
|
842f9e33cf | ||
|
|
d4f44b9bc9 | ||
|
|
d2acbb21b5 | ||
|
|
4ab910abd1 | ||
|
|
6f8e2cd675 | ||
|
|
9658302528 | ||
|
|
1b8da9848e | ||
|
|
4f983714c7 | ||
|
|
31d5dee317 | ||
|
|
e1bc747104 | ||
|
|
82d119fcef | ||
|
|
2ef8e387e0 | ||
|
|
baedd6deb2 | ||
|
|
7debd1da9d | ||
|
|
2ab3555c08 | ||
|
|
bf5f43d8f0 | ||
|
|
30c1e46737 | ||
|
|
e919e85aab | ||
|
|
94f7436672 | ||
|
|
6d5074138f | ||
|
|
a79d5fa471 | ||
|
|
12a36129a9 | ||
|
|
d2392d1bfa | ||
|
|
aafad7cc01 | ||
|
|
6e548431a6 | ||
|
|
ebdc30a5a3 | ||
|
|
35d18ac92c | ||
|
|
475b8a66be | ||
|
|
80545b9431 | ||
|
|
46be0d449a | ||
|
|
1e262417be | ||
|
|
1fea4b4097 | ||
|
|
a1af039631 | ||
|
|
c266df258b | ||
|
|
d1d589da72 | ||
|
|
7977848096 | ||
|
|
7a7bd7a6b9 | ||
|
|
12d767c98a | ||
|
|
2ce2fc4c86 | ||
|
|
7bf6530254 | ||
|
|
7c947639a5 | ||
|
|
03fb90cee8 | ||
|
|
6f47cbbe03 | ||
|
|
5c9baa5d00 | ||
|
|
c425cea48d | ||
|
|
041a9ad82b | ||
|
|
c598b8fbad | ||
|
|
eec3ca68ef | ||
|
|
93745fa03c | ||
|
|
3c43b78e77 | ||
|
|
0562cf545b | ||
|
|
ef02f8224e | ||
|
|
1c214dc407 | ||
|
|
f91bfc1e1c | ||
|
|
409d2c2aaf | ||
|
|
18c24640c7 | ||
|
|
a80f223736 | ||
|
|
36b70e243f | ||
|
|
624f3e2284 | ||
|
|
4ae1a330bd | ||
|
|
5eab74508e | ||
|
|
1d5bb33527 | ||
|
|
1ba75e94e8 | ||
|
|
2bd9693676 | ||
|
|
a175ac0518 | ||
|
|
e334526dec | ||
|
|
23f88290b1 | ||
|
|
c3cfcd6f7a | ||
|
|
cd8da10fa8 | ||
|
|
c9ca2a362d | ||
|
|
5dc5113919 | ||
|
|
61e74ab5bb | ||
|
|
163853f5bc | ||
|
|
f9fdb88d73 | ||
|
|
ae43db8152 | ||
|
|
444f4c0bcc | ||
|
|
c0fc5c1860 | ||
|
|
486d616af1 | ||
|
|
8d76efbb30 | ||
|
|
d7df83132c | ||
|
|
85629b8908 | ||
|
|
58cb660fd8 | ||
|
|
161e66adc4 | ||
|
|
aefa82520a | ||
|
|
20773a6037 | ||
|
|
acf112999a | ||
|
|
429b7ae7a2 | ||
|
|
7eca88fcf8 | ||
|
|
b2dcaf3113 | ||
|
|
e189a30222 | ||
|
|
ef42291613 | ||
|
|
3801cf0b81 | ||
|
|
75b61caa96 | ||
|
|
b40864bf6d | ||
|
|
fe16f5bd01 | ||
|
|
16f6f6e39e | ||
|
|
fd088bfa83 | ||
|
|
607157e99a | ||
|
|
2b21b5608d | ||
|
|
851b153afa | ||
|
|
c36de7d61d | ||
|
|
461e1f3844 | ||
|
|
69ae776409 | ||
|
|
b5e4de9cff | ||
|
|
857a19ddef | ||
|
|
608228b328 | ||
|
|
421ad0d456 | ||
|
|
a2bb878d29 | ||
|
|
2e7a0f1922 | ||
|
|
42ea5f2413 | ||
|
|
c0ed618531 | ||
|
|
fd67b63b75 | ||
|
|
9162b6c404 | ||
|
|
8500db7307 | ||
|
|
3a58071733 | ||
|
|
46d989507f | ||
|
|
71112a41df | ||
|
|
cffb3ce69e | ||
|
|
6dacae6103 | ||
|
|
df5f2235f1 | ||
|
|
f903d29c73 | ||
|
|
8c4e600953 | ||
|
|
652a8b289e | ||
|
|
b48235c925 | ||
|
|
3ac0769562 | ||
|
|
4207b67727 | ||
|
|
a3a8bae82f | ||
|
|
660db2e523 | ||
|
|
8808b28571 | ||
|
|
e7af37a2a1 | ||
|
|
239061a09c | ||
|
|
17d233c2d7 | ||
|
|
a8dfe7b4f4 | ||
|
|
ffc026ca61 | ||
|
|
597d2209ff | ||
|
|
8b6eaf6a0f | ||
|
|
eca09fb129 | ||
|
|
d331954168 | ||
|
|
90f9be472c | ||
|
|
94fdaba021 | ||
|
|
3c5875c821 | ||
|
|
25a4b6a96c | ||
|
|
f505578397 | ||
|
|
f0a76674af | ||
|
|
4626994388 | ||
|
|
82b2cbc4f0 | ||
|
|
d8c4ebda03 | ||
|
|
0f2fb17864 | ||
|
|
b719362755 | ||
|
|
c5cd953aba | ||
|
|
be88672134 | ||
|
|
84efd88c45 | ||
|
|
081769088a | ||
|
|
5c0775883e | ||
|
|
5e0bfbc9f7 | ||
|
|
c39be663e2 | ||
|
|
e3b1b2fa59 | ||
|
|
eebf5ef09d | ||
|
|
529c35ff73 | ||
|
|
3c675f2565 | ||
|
|
c2cbd31fc0 | ||
|
|
7d81061b60 | ||
|
|
4dac09744e | ||
|
|
beaab56d90 | ||
|
|
98644b2ac8 | ||
|
|
5e3d212189 | ||
|
|
420dc30a5c | ||
|
|
485da02820 | ||
|
|
c8be1c9e5e | ||
|
|
0fe034cf64 | ||
|
|
3fc95f0542 | ||
|
|
65d95867a9 | ||
|
|
5c201c73d0 | ||
|
|
40f415f5c3 | ||
|
|
4935efd6b1 | ||
|
|
e2b7a442d8 | ||
|
|
436be2d448 | ||
|
|
9100c5dd7e | ||
|
|
3733b9bd40 | ||
|
|
261479ad0a | ||
|
|
75d4d73f57 | ||
|
|
6aa6cdd606 | ||
|
|
a9b8a161f4 | ||
|
|
65e1e8203e | ||
|
|
233dc670a3 | ||
|
|
78fc9f07f0 | ||
|
|
bf73514dd9 | ||
|
|
5658c714d0 | ||
|
|
5e5c4e20cd | ||
|
|
d42468dd1e | ||
|
|
f14e74c6b6 | ||
|
|
38bacaa84a | ||
|
|
f9e6130f17 | ||
|
|
644320cbc3 | ||
|
|
4aad75a87b | ||
|
|
6bd5b857e7 | ||
|
|
1acfbc1f00 | ||
|
|
a1f2ed3e5f | ||
|
|
076140f20d | ||
|
|
b3c6e4371e | ||
|
|
6f8bc78233 | ||
|
|
fc231af5ed | ||
|
|
29c90caa54 | ||
|
|
8968c33bdb | ||
|
|
b439063760 | ||
|
|
a0be9a16b3 | ||
|
|
625ffa65cb | ||
|
|
220f428e42 | ||
|
|
e3ad99226e | ||
|
|
e134af5b80 | ||
|
|
4183105e2e | ||
|
|
3dfea10337 | ||
|
|
aa06b8a593 | ||
|
|
0967370546 | ||
|
|
2cbfb7e787 | ||
|
|
5c48817b29 | ||
|
|
2a7ac18626 | ||
|
|
1b00ec96fb | ||
|
|
0f45593c6d | ||
|
|
ca1f46765a | ||
|
|
742c4fd425 | ||
|
|
00cc1caf40 | ||
|
|
fc660b3027 | ||
|
|
b610c8b3fe | ||
|
|
7e68daea68 | ||
|
|
f4ca56523f | ||
|
|
02b4de9715 | ||
|
|
469f1b29c2 | ||
|
|
728220c0cf | ||
|
|
d71f35e88e | ||
|
|
43978efcf1 | ||
|
|
a17ec624c6 | ||
|
|
dcc8fe5ed2 | ||
|
|
6054d34f16 | ||
|
|
045aca1db0 | ||
|
|
443cf5af58 | ||
|
|
52a6c09b7d | ||
|
|
c60822d5e7 | ||
|
|
fdfbab644f | ||
|
|
e20247ec11 | ||
|
|
c1999c0cbd | ||
|
|
1a78b3eeb6 | ||
|
|
da0800af39 | ||
|
|
7107a2031b | ||
|
|
cd16fbc3f2 | ||
|
|
53fab670ea | ||
|
|
aea3386205 | ||
|
|
ee6a29d3a3 | ||
|
|
3711d3ad06 | ||
|
|
aecd94eb41 | ||
|
|
e5cc6ad87c | ||
|
|
682656a794 | ||
|
|
4f41a4dd60 | ||
|
|
1eb01cd0f8 | ||
|
|
392e749476 | ||
|
|
ce878ffdd8 | ||
|
|
3995dbafdb | ||
|
|
fdb0b29c0a | ||
|
|
69e0ffe36f | ||
|
|
52e35dde60 | ||
|
|
cb73e1f672 | ||
|
|
7f3b0f64b0 | ||
|
|
142aa9571a | ||
|
|
d4cf4cdaf7 | ||
|
|
25fe26e168 | ||
|
|
92fcba48f2 | ||
|
|
e642dbe685 | ||
|
|
e41c83d2de | ||
|
|
937c7ff4f0 | ||
|
|
fb88316392 | ||
|
|
68b9fe501e | ||
|
|
df0653ee53 | ||
|
|
6d1ecdeb96 | ||
|
|
b5d3aaa231 | ||
|
|
f54959c473 | ||
|
|
56e607be7e | ||
|
|
0d51d99642 | ||
|
|
2c9cf0f8cd | ||
|
|
4b42bb7db9 | ||
|
|
55c2134ef7 | ||
|
|
71d5c73977 | ||
|
|
83163779c1 | ||
|
|
3258b789dc | ||
|
|
92e7023880 | ||
|
|
06f35bf4db | ||
|
|
47c5e55831 | ||
|
|
2ff9c8ca94 | ||
|
|
b4f37d7eca | ||
|
|
10551ddcb8 | ||
|
|
a5a8b8d263 | ||
|
|
4d8587a382 | ||
|
|
f30571ed6d | ||
|
|
8f2a7b538c | ||
|
|
ec3df62672 | ||
|
|
3ccf720f96 | ||
|
|
f844b2c5af | ||
|
|
ad68af66f9 | ||
|
|
1eb7d4f45b | ||
|
|
67648998e6 | ||
|
|
eb3b8d8834 | ||
|
|
a2698c7828 | ||
|
|
3437531581 | ||
|
|
7dae2cd25b | ||
|
|
134fe51682 | ||
|
|
085895a0e3 | ||
|
|
e262507653 | ||
|
|
c94ddfe13f | ||
|
|
4ebc71c349 | ||
|
|
8fe0f0dbef | ||
|
|
258633fbaa | ||
|
|
cce25a0f8a | ||
|
|
c1cfc9f31d | ||
|
|
6cce35a1c2 | ||
|
|
11681240b6 | ||
|
|
b0c667db4b | ||
|
|
47837552b0 | ||
|
|
5e83b24f01 | ||
|
|
96f5e6984d | ||
|
|
d96af74f38 | ||
|
|
13b7753cf4 | ||
|
|
30d9bf6dfe | ||
|
|
abb249e574 | ||
|
|
fce25316dd | ||
|
|
b6f4b661cd | ||
|
|
c8308d51b7 | ||
|
|
d47b64445c | ||
|
|
a1c5820561 | ||
|
|
601de8c5e5 | ||
|
|
07362375e4 | ||
|
|
79e96213e0 | ||
|
|
69fadca2bb | ||
|
|
a7045a039e | ||
|
|
35f054e17f | ||
|
|
7a01eaff4c | ||
|
|
c71c933f98 | ||
|
|
467ad6a5a5 | ||
|
|
09f66ce08a | ||
|
|
5452422689 | ||
|
|
9806688d97 | ||
|
|
51a907fbc6 | ||
|
|
ccf7bf9ebc | ||
|
|
13133ba9c9 | ||
|
|
7424bcfeda | ||
|
|
d65fce5b3f | ||
|
|
5dfa5ca37d | ||
|
|
0fd0552bb7 | ||
|
|
e6888bdf2b | ||
|
|
2444ab3036 | ||
|
|
4b1237cda7 | ||
|
|
c9d031f75e | ||
|
|
82974bbadb | ||
|
|
a6d64486d1 | ||
|
|
6d545abe33 | ||
|
|
291146fd4e | ||
|
|
266a038484 | ||
|
|
525a506801 | ||
|
|
15b6c1db6d | ||
|
|
1fc6f092bd | ||
|
|
d6e1aed936 | ||
|
|
8dca7ebe56 | ||
|
|
946c3c7886 | ||
|
|
0a0b6d7880 | ||
|
|
073c5a48ae | ||
|
|
4d20d420f6 | ||
|
|
f0ed7be469 | ||
|
|
ec619b727c | ||
|
|
e24a712347 | ||
|
|
bcf1d37465 | ||
|
|
197b185351 | ||
|
|
13345373bc | ||
|
|
b5927401bc | ||
|
|
5f2780f773 | ||
|
|
41b32088a6 | ||
|
|
18184eb1ba | ||
|
|
e68a326277 | ||
|
|
69c5f8749c | ||
|
|
b5290a8f11 | ||
|
|
049944e51e | ||
|
|
33980c5cc3 | ||
|
|
1d4fae8d0a | ||
|
|
3b479b2028 | ||
|
|
9be74199ab | ||
|
|
933bd23a67 | ||
|
|
b40d56badf | ||
|
|
8c495183cf | ||
|
|
31ecd3c0db | ||
|
|
64a267df1a | ||
|
|
601cbcfb0b | ||
|
|
3ec4a67b82 | ||
|
|
d496c9dee6 | ||
|
|
f0b0319778 | ||
|
|
18c023cc9c | ||
|
|
a08022db51 | ||
|
|
bd388eb50e | ||
|
|
8964b27ee1 | ||
|
|
3006dd8d9f | ||
|
|
d4dbaec3c5 | ||
|
|
52712bf7b7 | ||
|
|
9febbc8247 | ||
|
|
363115921d | ||
|
|
fbba753e9e | ||
|
|
287f2777a3 | ||
|
|
ec2732b058 | ||
|
|
e0944b7e39 | ||
|
|
b5f7ea85b4 | ||
|
|
9e10969c81 | ||
|
|
f47bf2c9e0 | ||
|
|
d11f4d1cdf | ||
|
|
2d4b230a83 | ||
|
|
1ba094353f | ||
|
|
7f6d8e2822 | ||
|
|
23a184261a | ||
|
|
7ac76c980c | ||
|
|
cea6ad4710 | ||
|
|
0079f71bce | ||
|
|
3da421560b | ||
|
|
2e52bb9c1e | ||
|
|
eb74e8d5cc | ||
|
|
6a50e1835a | ||
|
|
e91bd4e018 | ||
|
|
e4ea112d5a | ||
|
|
f76ae5019b | ||
|
|
83f6dc4f25 | ||
|
|
97191cfb50 | ||
|
|
b79a25c249 | ||
|
|
eb254da63b | ||
|
|
4486982ee6 | ||
|
|
54cd86e819 | ||
|
|
94d36a5f4f | ||
|
|
f9aecdd7fb | ||
|
|
2163b7e60e | ||
|
|
49f9a3b462 | ||
|
|
f67a5108d7 | ||
|
|
0fabbd1e33 | ||
|
|
2e7e64db55 | ||
|
|
00c0d5218a | ||
|
|
8bad8eebff | ||
|
|
d462fea5fb | ||
|
|
844d2d8293 | ||
|
|
2fe41fa67f | ||
|
|
ae3538ae43 | ||
|
|
011804166b | ||
|
|
ae6110465b | ||
|
|
9a938f9626 | ||
|
|
e4f000b3cf | ||
|
|
f91fa643ba | ||
|
|
e795e4edbd | ||
|
|
713d7fd361 | ||
|
|
c6304512eb | ||
|
|
e0144c5776 | ||
|
|
9cb14b5f13 | ||
|
|
c62b683f13 | ||
|
|
b9dc729011 | ||
|
|
769c340d64 | ||
|
|
55a206cb47 | ||
|
|
2a075c0353 | ||
|
|
fac1096850 | ||
|
|
7385472689 | ||
|
|
c301129071 | ||
|
|
67679b3ac4 | ||
|
|
82ec39512d | ||
|
|
5276e19d59 | ||
|
|
7fb514e73e | ||
|
|
f546858d47 | ||
|
|
58e3e8cc9d | ||
|
|
329445119c | ||
|
|
29a0eb0210 | ||
|
|
17f92394b6 | ||
|
|
c1a37d518a | ||
|
|
2faf339f99 | ||
|
|
267247a5ce | ||
|
|
986d451fab | ||
|
|
5bd1407214 | ||
|
|
ae1a1dc7b8 | ||
|
|
41655d995b | ||
|
|
87bad70571 | ||
|
|
53ff524e67 | ||
|
|
7c6af324ec | ||
|
|
bc48b09009 | ||
|
|
3dc326d89a | ||
|
|
fa690a7776 | ||
|
|
6baa5568a8 | ||
|
|
27c4d0574f | ||
|
|
ee11ef0c1b | ||
|
|
82a24516fb | ||
|
|
5fea5bc173 | ||
|
|
c67f0cdfde | ||
|
|
5874c2d808 | ||
|
|
101ae89e5f | ||
|
|
5e4780164f | ||
|
|
9fb8f58040 | ||
|
|
147ccecd00 | ||
|
|
98cd03c75a | ||
|
|
a50d7ad1da | ||
|
|
2a53e1fcfe | ||
|
|
66aa22f9eb | ||
|
|
88d36c7db3 | ||
|
|
cb3be0edd7 | ||
|
|
d7e1d16536 | ||
|
|
b3f706af3b | ||
|
|
9a49eab8f8 | ||
|
|
2bddbfeedc | ||
|
|
6b1be2ea5c | ||
|
|
45291dbb90 | ||
|
|
828ac6ef19 | ||
|
|
7434d3315d | ||
|
|
b1051b3c53 | ||
|
|
a6cc071443 | ||
|
|
91006b6f79 | ||
|
|
7a5abd5635 | ||
|
|
98d91076aa | ||
|
|
f923e83ab5 | ||
|
|
08c394a384 | ||
|
|
76d0ec6e75 | ||
|
|
c4bc7b07c4 | ||
|
|
9b5fbcae9e | ||
|
|
381c7db9bb | ||
|
|
9edc539d43 | ||
|
|
294a1fb43d | ||
|
|
5aa2aee0ea | ||
|
|
3dd76200fc | ||
|
|
2bcd1ad238 | ||
|
|
f9aae0438f | ||
|
|
a4754b7774 | ||
|
|
b08073064e | ||
|
|
2a491c9c63 | ||
|
|
c0cdc975d9 | ||
|
|
8af4189f4a | ||
|
|
ff8445b094 | ||
|
|
59f6f20366 | ||
|
|
f7aff12384 | ||
|
|
1ea5f73986 | ||
|
|
edb0d0a879 | ||
|
|
1de8dc42f6 | ||
|
|
b891975e81 | ||
|
|
e472b2de05 | ||
|
|
41d8e66609 | ||
|
|
54835f8b55 | ||
|
|
a6bda8fe0c | ||
|
|
33435fb5d1 | ||
|
|
e9b961bf28 | ||
|
|
59c65644df | ||
|
|
1ee791571f | ||
|
|
d477a67750 | ||
|
|
45f6f2da71 | ||
|
|
7eb0757790 | ||
|
|
8fb78fd187 | ||
|
|
459e9fa1c1 | ||
|
|
c3503f6541 | ||
|
|
173f39b6fa | ||
|
|
ee812ff899 | ||
|
|
6957237fa1 | ||
|
|
66e5942b5c | ||
|
|
5bf27c9d79 | ||
|
|
79375295b8 | ||
|
|
8c968bb0fa | ||
|
|
1c805b073c | ||
|
|
39edab9046 | ||
|
|
e8856b480e | ||
|
|
104c5960ab | ||
|
|
2fac2b68b1 | ||
|
|
7a560d4795 | ||
|
|
cba017d4c9 | ||
|
|
887059f618 | ||
|
|
1507c97f34 | ||
|
|
935d7f3146 | ||
|
|
da17a3cf81 | ||
|
|
b06272fbf4 | ||
|
|
55210b7a7f | ||
|
|
df1d467188 | ||
|
|
94b3a7f5f9 | ||
|
|
d99f23e050 | ||
|
|
77ca6d0df1 | ||
|
|
f3eb906bf3 | ||
|
|
fe2d8d5564 | ||
|
|
6b43dc7a84 | ||
|
|
909c0bb190 | ||
|
|
a2033259b3 | ||
|
|
f51f395d82 | ||
|
|
c57c4b562a | ||
|
|
8df9f0bbb8 | ||
|
|
6257cdd29c | ||
|
|
c618ea173e | ||
|
|
276d661ce4 | ||
|
|
75be8d5de3 | ||
|
|
0f7623ad77 | ||
|
|
fe4649e044 | ||
|
|
06325e34bb | ||
|
|
bec2b11d04 | ||
|
|
2f3a295d5d | ||
|
|
7563f566ca | ||
|
|
529703ef54 | ||
|
|
5415d39249 | ||
|
|
30d8a2d528 | ||
|
|
9c8779c150 | ||
|
|
10bad1d091 | ||
|
|
d892d7cba5 | ||
|
|
290eeda605 | ||
|
|
47477269bf | ||
|
|
34f56a6c66 | ||
|
|
c773d20bca | ||
|
|
730f0e7b2e | ||
|
|
8a81103901 | ||
|
|
4bfe2bf8ee | ||
|
|
fa408da672 | ||
|
|
af15099122 | ||
|
|
126c9da8ba | ||
|
|
ef53dd7069 | ||
|
|
9a6af026a5 | ||
|
|
b736f540cf | ||
|
|
3febbc8791 | ||
|
|
899fe2ff7b | ||
|
|
07ab4e3d5d | ||
|
|
18000fb9f6 | ||
|
|
dc274bb8f6 | ||
|
|
35096c4d5a | ||
|
|
eda286d572 | ||
|
|
6fbbef45d1 | ||
|
|
68fb4bbf96 | ||
|
|
024544a7fd | ||
|
|
d677d61d81 | ||
|
|
5008542e01 | ||
|
|
5d1fb04d46 | ||
|
|
44918762d5 | ||
|
|
68522430b3 | ||
|
|
457851b7ae | ||
|
|
ff122e6a06 | ||
|
|
3b4bde6b7f | ||
|
|
eb4b867ea4 | ||
|
|
bc8ea3d567 | ||
|
|
d450236074 | ||
|
|
499b4271cf | ||
|
|
f2518ff9d4 | ||
|
|
ed18159b0a | ||
|
|
204c8b9fb3 | ||
|
|
6c32c9833f | ||
|
|
5031b294b2 | ||
|
|
d0a8812231 | ||
|
|
61f1e8b12f | ||
|
|
2d8de8ae0f | ||
|
|
0514607df6 | ||
|
|
7096b5d0c3 | ||
|
|
e655b37cbd | ||
|
|
1601030b7d | ||
|
|
0aa8e9fee0 | ||
|
|
3786da9b05 | ||
|
|
14e196ad40 | ||
|
|
41bcd2cff5 | ||
|
|
425aa806bb | ||
|
|
f1e6a5e07c | ||
|
|
d69f6169ae | ||
|
|
96d696085a | ||
|
|
86305c8680 | ||
|
|
8b97305072 | ||
|
|
1e8abfda04 | ||
|
|
8944d5ac55 | ||
|
|
0ecc5418bd | ||
|
|
86f23791fe | ||
|
|
ecdd53438e | ||
|
|
d024459140 | ||
|
|
42e4a0f668 | ||
|
|
4f77b1966a | ||
|
|
49eff8ad41 | ||
|
|
38e3cd15a3 | ||
|
|
4563d3e0a2 | ||
|
|
4022ae6480 | ||
|
|
fda59fe268 | ||
|
|
9c2e2a9d9b | ||
|
|
2e9dd7b93b | ||
|
|
b832b8822e | ||
|
|
28f9bcce32 | ||
|
|
4d6068e62b | ||
|
|
24ecb97b5b | ||
|
|
a97f9903eb | ||
|
|
2a90bef451 | ||
|
|
628f555a55 | ||
|
|
29ba0655a9 | ||
|
|
0ef23d7ff7 | ||
|
|
4ffa56b43f | ||
|
|
972707174a | ||
|
|
993c285456 | ||
|
|
f55d861f40 | ||
|
|
1166ced8dd | ||
|
|
fa08892c57 | ||
|
|
f9f501eaae | ||
|
|
818ca7a335 | ||
|
|
ec662b2888 | ||
|
|
18a36406b4 | ||
|
|
a983d85e4d | ||
|
|
eea6343b41 | ||
|
|
ed3cefacef | ||
|
|
b9f80350e0 | ||
|
|
8dafadc276 | ||
|
|
9879337178 | ||
|
|
0e12d558f8 | ||
|
|
51ea2db4bc | ||
|
|
495a981971 | ||
|
|
f5733cd3af | ||
|
|
5101067bcc | ||
|
|
5e90bc7d9c | ||
|
|
773ed271e1 | ||
|
|
402695bd97 | ||
|
|
0e89c83296 | ||
|
|
10c615951a | ||
|
|
49da0a0217 | ||
|
|
6f4962853b | ||
|
|
00da316456 | ||
|
|
cd20d8d662 | ||
|
|
9ae05dc580 | ||
|
|
bdc4e828ef | ||
|
|
f95b8bf7d9 | ||
|
|
cd6204a63d | ||
|
|
9135cf7cce | ||
|
|
cd3e9a7baa | ||
|
|
32f895bde5 | ||
|
|
71617fdcf7 | ||
|
|
f230abdb8e | ||
|
|
b8e27a117f | ||
|
|
7bcedb00c0 | ||
|
|
030ddafd68 | ||
|
|
e22074d616 | ||
|
|
50f65a1709 | ||
|
|
7811995c84 | ||
|
|
579d974d9e | ||
|
|
0679667891 | ||
|
|
78e9f3592c | ||
|
|
d840379e05 | ||
|
|
52c292f13a | ||
|
|
c8ec70de08 | ||
|
|
d5476089b1 | ||
|
|
3d1fdefe34 | ||
|
|
43468a04d8 | ||
|
|
b67fb3c48a | ||
|
|
017ba5731f | ||
|
|
1f63baf549 | ||
|
|
13a13ed914 | ||
|
|
8fdfb8738a | ||
|
|
50a059f6a4 | ||
|
|
a461022100 | ||
|
|
bab390ddab | ||
|
|
7a0890fb97 | ||
|
|
e84d7f342f | ||
|
|
24e2120e7c | ||
|
|
c633b4fd70 | ||
|
|
3179fc2211 | ||
|
|
b28a06a474 | ||
|
|
d5048d7237 | ||
|
|
4b66e7e181 | ||
|
|
d7868a20f1 | ||
|
|
c5fc3bb8de | ||
|
|
4457eb453f | ||
|
|
24b582bf0f | ||
|
|
d52b7fadd4 | ||
|
|
49d2c6e784 | ||
|
|
ba437ba591 | ||
|
|
0db241b85b | ||
|
|
e6f97007ad | ||
|
|
3fd93fc6f4 | ||
|
|
bfa29ec02b | ||
|
|
c1a16243db | ||
|
|
9bf8c54adf | ||
|
|
ca3f51269d | ||
|
|
510b32ccfc | ||
|
|
5c430b24a4 | ||
|
|
c8a8f4c0e1 | ||
|
|
7a809e2e1e | ||
|
|
fdbfab2da2 | ||
|
|
50e53c3b60 | ||
|
|
6c974f9cf5 | ||
|
|
a48efbd861 | ||
|
|
2752749f5e | ||
|
|
d3bce294c3 | ||
|
|
6a51de27e5 | ||
|
|
779eea486e | ||
|
|
2b67d03514 | ||
|
|
830d2ff061 | ||
|
|
84b35b89ef | ||
|
|
6d0f7e878a | ||
|
|
951d97e7ff | ||
|
|
ccb8a554ab | ||
|
|
2cc65e1912 | ||
|
|
84544919cf | ||
|
|
f29a18fb06 | ||
|
|
373963601e | ||
|
|
03225a337e | ||
|
|
009ec62aab | ||
|
|
5f79145db6 | ||
|
|
592eb7a0d5 | ||
|
|
8d33c7127c | ||
|
|
19a8c56a69 | ||
|
|
daeb1247d8 | ||
|
|
fce5bb7398 | ||
|
|
e0122a1f18 | ||
|
|
fe782e3e4e | ||
|
|
5824a6096c | ||
|
|
4908e28d31 | ||
|
|
423e24fe8b | ||
|
|
db49a2babb | ||
|
|
e11c120f6b | ||
|
|
9155de5b30 | ||
|
|
599b22b70b | ||
|
|
6509cf77bf | ||
|
|
3c6ac06cff | ||
|
|
eba09bd6af | ||
|
|
b95644e9d7 | ||
|
|
6b415ddb49 | ||
|
|
88f27261f0 | ||
|
|
de29d6868d | ||
|
|
6e143c1b3c | ||
|
|
ffe28c21d6 | ||
|
|
4abdee5635 | ||
|
|
ae42cd5dfd | ||
|
|
dbd9309810 | ||
|
|
5d78536ad5 | ||
|
|
c41f2e9514 | ||
|
|
757be61d57 | ||
|
|
df10654f77 | ||
|
|
e7773db7a7 | ||
|
|
9f6dc20fd8 | ||
|
|
f654800370 | ||
|
|
f810436bb1 | ||
|
|
5593db0caf | ||
|
|
e9a04e688f | ||
|
|
b8fe2ed007 | ||
|
|
115f2b8a1e | ||
|
|
fefb8454c7 | ||
|
|
e4cf1df857 | ||
|
|
f3bd38caca | ||
|
|
c104460654 | ||
|
|
fc3db2c3bf | ||
|
|
41e02220d1 | ||
|
|
8f5061b28e | ||
|
|
5898d94c4c | ||
|
|
b2ced4889b | ||
|
|
a65e5f1f73 | ||
|
|
839b8bdb5f | ||
|
|
421d98a936 | ||
|
|
95b6d4a998 | ||
|
|
cc2ea961d7 | ||
|
|
3a0de109a3 | ||
|
|
41aad467a6 | ||
|
|
ebf6c4932a | ||
|
|
b587d3639f | ||
|
|
7408f7f29f | ||
|
|
e2baae4281 | ||
|
|
b61b816c49 | ||
|
|
5257374a73 | ||
|
|
f732ff2505 | ||
|
|
8e2e15194a | ||
|
|
4a3993c4e5 | ||
|
|
f11dadd032 | ||
|
|
881cbd60e3 | ||
|
|
598e87d598 | ||
|
|
6e8fc4f9c1 | ||
|
|
1be3c39e50 | ||
|
|
fc48d2dd1d | ||
|
|
11084a5dfc | ||
|
|
7946e9b921 | ||
|
|
2a1f06cd2a | ||
|
|
ccf3271fe1 | ||
|
|
c99ee0317c | ||
|
|
5bf13da02c | ||
|
|
cbd5d9a36e | ||
|
|
bb8e8f46cb | ||
|
|
6b6e5e7515 | ||
|
|
0b0b23c6d6 | ||
|
|
1ed2559cc3 | ||
|
|
9a068b824d | ||
|
|
32a847087d | ||
|
|
67fbf5b746 | ||
|
|
a0e8290c50 | ||
|
|
7cde4f8f2b | ||
|
|
437142b5bb | ||
|
|
42adbd20c8 | ||
|
|
85a2ef6e4d | ||
|
|
62ce79e147 | ||
|
|
3a840f6e2f | ||
|
|
69c62573b0 | ||
|
|
e1e8a34b2f | ||
|
|
13c9ae5fe3 | ||
|
|
6912ff4929 | ||
|
|
0e387c8936 | ||
|
|
e8e3b5226e | ||
|
|
b87f049c2d | ||
|
|
0d7698e0d4 | ||
|
|
ebbaee5ed2 | ||
|
|
bff266bef3 | ||
|
|
1d6f9f80f6 | ||
|
|
8a298ab07c | ||
|
|
7f317f4d55 | ||
|
|
50b19bc74f | ||
|
|
9f35f8043e | ||
|
|
19091f245b | ||
|
|
0bc395108d | ||
|
|
2b6367e1d4 | ||
|
|
6fb8477b3a | ||
|
|
39c22d2ee0 | ||
|
|
721840498c | ||
|
|
56e35d8305 | ||
|
|
a42a244aed | ||
|
|
b8dba0a4ad | ||
|
|
fe9f9b91fb | ||
|
|
206a04e15f | ||
|
|
db11fd957d | ||
|
|
2517d52437 | ||
|
|
f85aba61ed | ||
|
|
147403b0e5 | ||
|
|
afa84f396b | ||
|
|
9888b965d8 | ||
|
|
c3e2f58d96 | ||
|
|
697200e942 | ||
|
|
33b940562e | ||
|
|
08f2298215 | ||
|
|
8c992ed466 | ||
|
|
c442950e5f | ||
|
|
0a5dffc069 | ||
|
|
744a0de15d | ||
|
|
7c42f005db | ||
|
|
652cb0d66c | ||
|
|
9f77fbccd1 | ||
|
|
de2864a5a5 | ||
|
|
2caf1628ca | ||
|
|
f1865a507c | ||
|
|
8013fecb61 | ||
|
|
8d6deea83d | ||
|
|
da3eed2a6f | ||
|
|
5de817b531 | ||
|
|
a173792b1f | ||
|
|
6af690f524 | ||
|
|
1891940018 | ||
|
|
6adb68d7d6 | ||
|
|
c1225d880e | ||
|
|
017686e0f6 | ||
|
|
f61f401683 | ||
|
|
3a5e5fc5d7 | ||
|
|
8d0712bea4 | ||
|
|
0804f7fb08 | ||
|
|
7a8878dec6 | ||
|
|
92ae7b14c4 | ||
|
|
eda3aae608 | ||
|
|
8e363122b3 | ||
|
|
ff378e17c9 | ||
|
|
5e1157d363 | ||
|
|
d3c6310bb1 | ||
|
|
5c4d82cacc | ||
|
|
414c8ed603 | ||
|
|
603c598e14 | ||
|
|
a3cad9563f | ||
|
|
cb95ba41ac | ||
|
|
8e000eb634 | ||
|
|
b00f152456 | ||
|
|
566d70bf9c | ||
|
|
bc6bf59bda | ||
|
|
6fcbfa15b3 | ||
|
|
121a2dc9ae | ||
|
|
35f9a872f7 | ||
|
|
0efb9a0c8c | ||
|
|
63da245439 | ||
|
|
8b83afc1bb | ||
|
|
54e6f9aed1 | ||
|
|
4c99a53852 | ||
|
|
b95f7afd3c | ||
|
|
a2db2d88ca | ||
|
|
cbe00bb737 | ||
|
|
7efb007b53 | ||
|
|
4e7917d9fe | ||
|
|
ee8fad1e7a | ||
|
|
0fa8b1e62d | ||
|
|
117f75eac4 | ||
|
|
85432e6307 | ||
|
|
cdbbf69a1e | ||
|
|
fb8e026551 | ||
|
|
5f1b0c19a8 | ||
|
|
bbef91c39e | ||
|
|
f0120adba4 | ||
|
|
457d64640e | ||
|
|
eae68a0872 | ||
|
|
48bbe65f60 | ||
|
|
6e04d47209 | ||
|
|
02dc1c300c | ||
|
|
2d1c1d3e09 | ||
|
|
5e9ebd8b9b | ||
|
|
c5bc89f11b | ||
|
|
bd2407153c | ||
|
|
2b42b3eab0 | ||
|
|
77146706a6 | ||
|
|
b6d0f183de | ||
|
|
4f649964de | ||
|
|
f565901231 | ||
|
|
9821aaa612 | ||
|
|
a364fbe125 | ||
|
|
0500ccb4da | ||
|
|
3db726ddac | ||
|
|
edff0569b6 | ||
|
|
cbbeb7ea25 | ||
|
|
ccb055cf78 | ||
|
|
4ddd63d141 | ||
|
|
fdd89be534 | ||
|
|
ed77e687a3 | ||
|
|
f5e2c72b18 | ||
|
|
1e4e78d6bc | ||
|
|
3ede2a2512 | ||
|
|
1995c735a1 | ||
|
|
79a2ef7ad1 | ||
|
|
11b9be6dfd | ||
|
|
d21c4ba0ab | ||
|
|
a23b0be5a5 | ||
|
|
199fdff643 | ||
|
|
d762ed7af6 | ||
|
|
85e3a6e0a1 | ||
|
|
74f253820a | ||
|
|
3c73143f3a | ||
|
|
18cafc2d06 | ||
|
|
6f6e34dced | ||
|
|
a16f99b8d0 | ||
|
|
46a180f755 | ||
|
|
cebd5f3cf8 | ||
|
|
2ced0242bd | ||
|
|
7edc0cd149 | ||
|
|
417411ab62 | ||
|
|
ea589a75a9 | ||
|
|
d00b72f3e8 | ||
|
|
56cf313613 | ||
|
|
98498419c0 | ||
|
|
653d8f1dae | ||
|
|
8405cf7323 | ||
|
|
80a8d9c37f | ||
|
|
ce87cee840 | ||
|
|
0ca6bf3ecc | ||
|
|
8e0a2c9e0f | ||
|
|
fad67f380d | ||
|
|
4dc12e992d | ||
|
|
bf6f69065c | ||
|
|
be09fad901 | ||
|
|
0b07bf8094 | ||
|
|
d2c38b8db5 | ||
|
|
7f1249ae45 | ||
|
|
617b4dd26f | ||
|
|
ef7b658bc0 | ||
|
|
ef6adf90fc | ||
|
|
ca2a66514f | ||
|
|
ce3095d1fc | ||
|
|
2869b388dd | ||
|
|
dc03deead7 | ||
|
|
99a0613092 | ||
|
|
38044917f4 | ||
|
|
2092f9faee | ||
|
|
f0ea531cc4 | ||
|
|
54de9067ee | ||
|
|
dcbf2a6331 | ||
|
|
63d0339d05 | ||
|
|
8d88cf2277 | ||
|
|
450f76d205 | ||
|
|
890de43c91 |
19
MakeRelease
19
MakeRelease
@@ -10,6 +10,12 @@
|
||||
# [-b] - For fully built release
|
||||
#
|
||||
# $Log$
|
||||
# Revision 1.11 1997/07/01 18:29:17 jba
|
||||
# Changed Tar to tar in output filename.
|
||||
#
|
||||
# Revision 1.10 1997/01/17 19:59:37 jba
|
||||
# Use config/CONFIG_BASE_VERSION to get version info.
|
||||
#
|
||||
# Revision 1.9 1996/09/04 21:41:36 jba
|
||||
# Top level dir no longer passed to MakeRelease
|
||||
#
|
||||
@@ -101,25 +107,26 @@ if [ -z "${EPICS_VERSION}" ];
|
||||
|
||||
RELS="R${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}";
|
||||
|
||||
echo TOP: Creating ../${RELS}.Tar;
|
||||
echo TOP: Creating ../${RELS}.tar;
|
||||
|
||||
if [ -f ${RELS}.Tar* ];
|
||||
if [ -f ${RELS}.tar* ];
|
||||
then
|
||||
echo "TOP: This release has already been created.";
|
||||
echo "TOP: Remove Tar file or edit config/CONFIG_BASE_VERSION.";
|
||||
echo "TOP: Remove tar file or edit config/CONFIG_BASE_VERSION.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Create list of files and dirs to include in Tar file
|
||||
# Create list of files and dirs to include in tar file
|
||||
|
||||
cd ..
|
||||
|
||||
ls base/README* | xargs tar cvf ${RELS}.Tar
|
||||
ls base/README* base/*.bat | xargs tar cvf ${RELS}.tar
|
||||
|
||||
ls base/Make* > /tmp/make_release.out.$$;
|
||||
|
||||
ls base/*COPYRIGHT* >> /tmp/make_release.out.$$;
|
||||
|
||||
|
||||
if [ -d startup ];
|
||||
then
|
||||
find startup -name CVS -prune -o ! -type d -print \
|
||||
@@ -152,7 +159,7 @@ find base/config -name CVS -prune -o -name SCCS -prune -o ! -type d -print \
|
||||
find base/src -name CVS -prune -o -name SCCS -prune -o ! -type d -print \
|
||||
| grep -v '/O\..*$' >> /tmp/make_release.out.$$
|
||||
|
||||
cat /tmp/make_release.out.$$ | xargs tar rvf ${RELS}.Tar
|
||||
cat /tmp/make_release.out.$$ | xargs tar rvf ${RELS}.tar
|
||||
|
||||
rm /tmp/make_release.out.$$
|
||||
|
||||
|
||||
15
Makefile
15
Makefile
@@ -18,6 +18,16 @@ include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
DIRS = src config
|
||||
|
||||
INSTALL_BIN = $(INSTALL_LOCATION)/bin/$(HOST_ARCH)
|
||||
|
||||
#
|
||||
# this bootstraps in makeMakefile.pl (and others) so that it can
|
||||
# be used to create the first O.xxxx/Makefile
|
||||
#
|
||||
PERL_BOOTSTRAP_SCRIPTS = $(notdir $(wildcard $(TOP)/src/tools/*.pl))
|
||||
PERL_BOOTSTRAP_SCRIPTS_INSTALL = $(PERL_BOOTSTRAP_SCRIPTS:%=$(INSTALL_BIN)/%)
|
||||
all host cross inc rebuild uninstall clean depends buildInstall :: $(PERL_BOOTSTRAP_SCRIPTS_INSTALL)
|
||||
|
||||
include $(TOP)/config/RULES_TOP
|
||||
|
||||
release:
|
||||
@@ -28,7 +38,6 @@ built_release:
|
||||
@echo TOP: Creating Fully Built Release...
|
||||
@./MakeRelease -b $(INSTALL_LOCATION)
|
||||
|
||||
uninstall::
|
||||
@DIR1=`pwd`;cd $(INSTALL_LOCATION);DIR2=`pwd`;cd $$DIR1;\
|
||||
if [ "$$DIR1" != "$$DIR2" ]; then rm -fr $(INSTALL_LOCATION)/config; fi
|
||||
$(INSTALL_BIN)/%.pl: $(TOP)/src/tools/%.pl
|
||||
$(PERL) $(TOP)/src/tools/installEpics.pl -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
|
||||
191
README
191
README
@@ -7,36 +7,53 @@ $Id$
|
||||
|
||||
Notes:
|
||||
|
||||
1. Before you can build or really use EPICS, you must properly set the
|
||||
environemnt variable HOST_ARCH. The epics/startup/HostArch script file
|
||||
has been provided to set HOST_ARCH.
|
||||
1. Before you can build or use EPICS, the environemnt variable HOST_ARCH
|
||||
must be set. The epics/startup/HostArch script file has been provided
|
||||
to set HOST_ARCH.
|
||||
|
||||
2. You must use GNU make (which is now THE supported make utility) for
|
||||
the build, gnumake. Set your path so that a recent version (e.g.
|
||||
V3.70) of gnumake is available.
|
||||
|
||||
3. You must have perl installed. See the README.Perl in this directory. The
|
||||
config files specify the perl full pathname as /usr/bin/perl for
|
||||
unix builds and C:\Perl\bin\perl for WIN95/NT builds. You can override
|
||||
these specifications with a CONFIG_SITE_HOST_ARCH.<host_arch> file.
|
||||
|
||||
4. You may need vendors C and C++ compilers in your search path. (Check
|
||||
the definitions of ACC and CCC in CONFIG.Host.<host_arch> or gnu GCC
|
||||
and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified in CONFIG_SITE).
|
||||
|
||||
4. For building base you must have echo in your search path. For unix host
|
||||
builds you must also have ar, cp, rm, mv, ranlib, and mkdir in your search
|
||||
path and /bin/chmod must exist.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Part 1 - Configuring and Building EPICS Base
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
1.1 To configure EPICS, edit the following files:
|
||||
1.1 To configure EPICS, edit the following file:
|
||||
|
||||
config/CONFIG_SITE - Build choices/HOST_ARCH/Vx location.
|
||||
config/CONFIG_SITE.* - Location of X, etc.
|
||||
config/CONFIG - For overriding specific variables.
|
||||
config/CONFIG_SITE_ENV - For site-specific environment settings
|
||||
|
||||
For a specific host architecture you may want to edit the following file
|
||||
config/CONFIG_SITE.Host.<arch> - Override Host build settings for a host arch
|
||||
config/CONFIG_SITE.Vx.<arch> - Override Vx build settings for a host arch
|
||||
config/CONFIG_SITE_HOST_ARCH.<arch> - Override build settings for a host arch
|
||||
|
||||
Optionally you may want to edit the following files
|
||||
config/CONFIG_SITE.Host - Override Host build settings for all host archs.
|
||||
config/CONFIG_SITE.Vx - Override Vx build settings for all host archs.
|
||||
config/CONFIG - Override build settings for all host archs.
|
||||
|
||||
1.2 To add a target architecture to EPICS:
|
||||
|
||||
cd base/config
|
||||
cp CONFIG.mv167 CONFIG.YOUR_ARCH
|
||||
edit CONFIG.YOUR_ARCH - For compiler flags / etc.
|
||||
cp CONFIG.Vx.mv167 CONFIG.Vx.YOUR_ARCH
|
||||
edit CONFIG.Vx.YOUR_ARCH - For compiler flags / etc.
|
||||
|
||||
cp CONFIG.Vx.68k CONFIG.Vx.YOUR_ARCH_CLASS
|
||||
cp CONFIG_SITE.Vx.68k CONFIG_SITE.Vx.YOUR_ARCH_CLASS
|
||||
- ONLY IF you are adding a new architecture class,
|
||||
see note in Appendix A.
|
||||
|
||||
edit CONFIG_BASE - Add architecture to list.
|
||||
edit CONFIG_SITE - Add architecture to CROSS_COMPILER_TARGET_ARCHS list.
|
||||
|
||||
1.3 To build EPICS:
|
||||
|
||||
@@ -45,11 +62,11 @@ Notes:
|
||||
(Same as "gnumake inc install")
|
||||
gnumake all - Same as "gnumake"
|
||||
gnumake clean - To clean temporary object files. Top level
|
||||
clean will remove all the O.ARCH dirs, not
|
||||
only those specified in BUILD_ARCHS.
|
||||
clean will remove the O.ARCH dirs specified
|
||||
in BUILD_ARCHS.
|
||||
gnumake uninstall - Only available at the top level directory.
|
||||
Cleans directories created by the install.
|
||||
gnumake rebuild - Same as "gnumake clean uninstall all"
|
||||
gnumake rebuild - Same as "gnumake clean all"
|
||||
|
||||
1.4 "Partial" build commands:
|
||||
|
||||
@@ -123,26 +140,48 @@ manager. It specifies:
|
||||
etc.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG.ARCH - This file defines a particular architecture. It
|
||||
CONFIG.Host.ARCH - This file defines a particular host architecture. It
|
||||
contains the following variables:
|
||||
|
||||
BUILD_TYPE: Unix / Vx
|
||||
ARCH_CLASS: 68k / sun4 / hp700 / etc.
|
||||
ARCH_CLASS: solaris / sun4 / hp700 / etc.
|
||||
Host architecture OS vendor C and C++ complier variables.
|
||||
Architecture dependent build flags. The flag names / contents
|
||||
depend on your architecture class.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_HOST_ARCH.ARCH - This file contains the following variable:
|
||||
|
||||
WIND_HOST_TYPE: sun4-solaris2 / sun4-sunos4 / x86-win32 / etc.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_SITE.ARCH - Contains site specific definitions pertaining to a
|
||||
particular architecture. This file's primary usefulness is to
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG.Vx.ARCH - This file defines a particular target architecture. It
|
||||
contains the following variables:
|
||||
|
||||
ARCH_CLASS: 68k / sun4 / hp700 / etc.
|
||||
Architecture dependent build flags. The flag names / contents
|
||||
depend on your architecture class.
|
||||
CMPLR_SUFFIX: Vx GNU cross compiler suffix definition.
|
||||
----------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_SITE.BUILD_TYPE.ARCH - Contains site specific definitions pertaining to a
|
||||
particular architecture and build type. This file's primary usefulness is to
|
||||
define site specific compile and link flags.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_COMMON - Contains definitions describing the layout of base.
|
||||
CONFIG_COMMON - Contains definitions describing the layout of base
|
||||
and definitions common to all builds.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG.Host.UnixCommon - Contains host definitions common to all Unix archs.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_BASE - Defines what subdirectories get built by default under base.
|
||||
----------------------------------------------------------------------------
|
||||
RULES.Vx - Rules for building with VxWorks makefiles.
|
||||
CONFIG_BASE_VERSION - Defines the version of base.
|
||||
----------------------------------------------------------------------------
|
||||
RULES.Unix - Rules for building with Unix makefiles.
|
||||
CONFIG_ENV - EPICS Environment Parameter configuration file.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_SITE_ENV - EPICS Environment Parameter Site configuration file
|
||||
----------------------------------------------------------------------------
|
||||
RULES.Vx - Rules for building with Makefile.Vx makefiles.
|
||||
----------------------------------------------------------------------------
|
||||
RULES.Host - Rules for building with Makefile.Host makefiles.
|
||||
----------------------------------------------------------------------------
|
||||
RULES_TOP - Top level rules for building.
|
||||
----------------------------------------------------------------------------
|
||||
@@ -158,12 +197,16 @@ Filename SYS_MGR ADD_VX_ARCH ADD_UNIX_ARCH DEVELOPER
|
||||
CONFIG m - - m
|
||||
CONFIG_SITE m m m -
|
||||
CONFIG_SITE_ENV m - - -
|
||||
CONFIG.ARCH - c c -
|
||||
CONFIG.Host.ARCH - c c -
|
||||
CONFIG_HOST_ARCH.ARCH - c c -
|
||||
CONFIG_SITE.Host.ARCH - - - -
|
||||
CONFIG.Vx.ARCH - c c -
|
||||
CONFIG_SITE.ARCH - c c -
|
||||
CONFIG.Vx.ARCH_CLASS - c* - -
|
||||
RULES.Vx - - - -
|
||||
RULES.Unix - - - -
|
||||
RULES.Host - - - -
|
||||
CONFIG_BASE - - - -
|
||||
CONFIG_BASE_VERSION - - - -
|
||||
CONFIG_COMMON - - - -
|
||||
CONFIG_ENV - - - -
|
||||
RULES_ARCHS - - - -
|
||||
@@ -187,59 +230,61 @@ RULES_TOP - - - -
|
||||
|
||||
src/db/Makefile.Vx (An example EPICS makefile)
|
||||
^ ^
|
||||
| +--- 3. RULES.Vx
|
||||
| +--- 2. RULES.Vx
|
||||
| Default rules.
|
||||
+------- 2. CONFIG
|
||||
^ ^ ^ ^
|
||||
| | | |
|
||||
| | | +- 1. CONFIG_SITE
|
||||
| | | HOST_ARCH = sun4
|
||||
| | | BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
|
||||
| | | VX_DIR = /vxworks
|
||||
| | | More.
|
||||
| | +--- 2. CONFIG_COMMON
|
||||
| | General info about base.
|
||||
| +----- 3. CONFIG.hkv2f
|
||||
| ^ BUILD_TYPE = Vx
|
||||
| | ARCH_CLASS = 68k
|
||||
| | Arch Specific Compiler Flag Setup
|
||||
| +--- a. CONFIG.Vx.68k
|
||||
| Compiler/utility setup for ARCH_CLASS
|
||||
+------- 4. CONFIG_SITE.hkv2f
|
||||
Site Specific setup
|
||||
+----1. CONFIG_BASE
|
||||
^
|
||||
|
|
||||
+ 1. CONFIG
|
||||
^^^^^^^
|
||||
||||||+- 1. CONFIG_COMMON
|
||||
|||||| General info about base.
|
||||
|||||+-- 2. CONFIG_BASE_VERSION
|
||||
||||| Base version.
|
||||
||||+--- 3. CONFIG_SITE
|
||||
|||| HOST_ARCH = sun4
|
||||
|||| CROSS_COMPILER_TARGET_ARCHS = mv167 hkv2f
|
||||
|||| VX_DIR = /vxworks
|
||||
|||| More.
|
||||
|||+---- 4. CONFIG_HOST_ARCH.sun4
|
||||
||| WIND_HOST_TYPE = sun4-sunos4
|
||||
||+----- 5. CONFIG.Vx
|
||||
|| Definitions for Vx builds
|
||||
|+------ 6. CONFIG.Vx.hkv2f
|
||||
| ARCH_CLASS = 68k
|
||||
| Arch Specific Compiler Flag Setup
|
||||
| Vx GNU cross compiler suffix
|
||||
+------- 7. CONFIG_SITE.Vx.hkv2f
|
||||
Site Specific setup
|
||||
|
||||
---------------------------- sun4 example --------------------------------
|
||||
(files are numbered in the order of their inclusion)
|
||||
|
||||
src/db/Makefile.Unix (An example EPICS makefile)
|
||||
^ ^
|
||||
| +--- 3. RULES.Unix
|
||||
| +--- 2. RULES.Vx
|
||||
| Default rules.
|
||||
+------- 2. CONFIG
|
||||
^ ^ ^ ^
|
||||
| | | |
|
||||
| | | +- 1. CONFIG_SITE
|
||||
| | | HOST_ARCH = sun4
|
||||
| | | BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
|
||||
| | | VX_DIR = /vxworks
|
||||
| | | More.
|
||||
| | +--- 2. CONFIG_COMMON
|
||||
| | General info about base.
|
||||
| +----- 3. CONFIG.sun4
|
||||
| BUILD_TYPE = Unix
|
||||
| ARCH_CLASS = sun4
|
||||
| Arch Specific Compiler Flag Setup
|
||||
+------- 4. CONFIG_SITE.sun4
|
||||
Directory locations
|
||||
+----1. CONFIG_BASE
|
||||
^
|
||||
|
|
||||
+ 1. CONFIG
|
||||
^^^^^
|
||||
|||||+- 1. CONFIG_COMMON
|
||||
||||| General info about base.
|
||||
||||+-- 2. CONFIG_BASE_VERSION
|
||||
|||| Base version.
|
||||
|||+--- 3. CONFIG_SITE
|
||||
||| HOST_ARCH = sun4
|
||||
||| CROSS_COMPILER_TARGET_ARCHS = mv167 hkv2f
|
||||
||| VX_DIR = /vxworks
|
||||
||| More.
|
||||
||+---- 4. CONFIG_HOST_ARCH.sun4
|
||||
|| WIND_HOST_TYPE = sun4-sunos4
|
||||
|+----- 5. CONFIG.Host.sun4
|
||||
| ARCH_CLASS = sun4
|
||||
| Arch Specific Compiler Flag Setup
|
||||
| Vx GNU cross compiler suffix
|
||||
+------ 6. CONFIG_SITE.Host.sun4
|
||||
Site Specific setup
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Part 4 --- EPICS makefile rules
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Rules supported by lower level Makefiles:
|
||||
|
||||
depends - Generate include dependencies
|
||||
build - Builds objects, using libraries from "build_libs"
|
||||
install - Installs executables in bin/ARCH
|
||||
clean - Cleans objects
|
||||
|
||||
|
||||
14
README.Linux
14
README.Linux
@@ -1,16 +1,10 @@
|
||||
Special Notes on Linux
|
||||
1) The epics makefiles use GNU make which is the make that comes
|
||||
with Linux. You need to make a link from make to gnumake and
|
||||
have it in your path. After you have defined the EPICS environement
|
||||
variable, you can use:
|
||||
|
||||
ln -s /usr/bin/make $EPICS/base/tools/gnumake
|
||||
At this point, support for Linux only involves channel access
|
||||
clients. Since Vxworks is not available for Linux, you must
|
||||
use other platforms for developing server side code.
|
||||
|
||||
2) At this point, support for Linux only involves channel access
|
||||
clients. Since Vxworks is not available for Linux, you must
|
||||
use other platforms for developing server side code.
|
||||
|
||||
3) You MUST start caRepeater by hand before running a client.
|
||||
You MUST start caRepeater by hand before running a client.
|
||||
Prior to running a client, you must run:
|
||||
|
||||
caRepeater &
|
||||
|
||||
44
README.Perl
Normal file
44
README.Perl
Normal file
@@ -0,0 +1,44 @@
|
||||
Perl
|
||||
====
|
||||
|
||||
A number of shell scripts are now Perl scripts,
|
||||
most important:
|
||||
|
||||
tools/installEpics.pl
|
||||
include/makeEpicsVersion.pl
|
||||
libCom/bldEnvData.pl
|
||||
libCom/makeStatSymTbl.pl
|
||||
sequencer/makeVersion.pl
|
||||
|
||||
WIN32 also uses
|
||||
tools/cp.pl, mv.pl, rm.pl, mkdir.pl
|
||||
which should behave like the UNIX cp, mv, rm, rmdir.
|
||||
All systems could use the Perl versions but that seems
|
||||
to be overkill for UNIX.
|
||||
|
||||
Advantages:
|
||||
* no need for ls, date, basename, grep, awk, sed, ...,
|
||||
which made the make UNIX-specific.
|
||||
* Perl is currently available for Unix, OS/2, WIN32, VMS
|
||||
and the scripts should work on all those systems
|
||||
|
||||
Disadvantage:
|
||||
* You have to get Perl, look e.g. at http://www.perl.com
|
||||
* Perl version 5.003_02 works, we don't know about earlier versions.
|
||||
|
||||
|
||||
Compile Perl:
|
||||
No big deal,
|
||||
* on UNIX say 'configure' and 'gnumake',
|
||||
* on Windows use MX Visual C++,
|
||||
use File/Open Workspace to open the Makefile {PERL}/perl5i.mak,
|
||||
use Build/Batch build to select eiher the Release or Debug targets.
|
||||
|
||||
You can do the same with the Makefile {Perl}/Ext/WIN32/win32.mak
|
||||
- nice tools but not necessary for EPICS.
|
||||
|
||||
Then call {PERL}/bin/perlw32-install.bat
|
||||
|
||||
In any case, read the texts that come with perl!
|
||||
|
||||
|
||||
196
README.WIN32
196
README.WIN32
@@ -1,103 +1,88 @@
|
||||
Compiling EPICS on WIN32 (Windows95/NT)
|
||||
---------------------------------------
|
||||
|
||||
-kuk- 11/18/96 questions & comments please
|
||||
mailto:kasemir@atdiv.lanl.gov
|
||||
Compiling EPICS and Building IOC Applications on WIN32 (Windows95/NT)
|
||||
---------------------------------------------------------------------
|
||||
|
||||
Original port of EPICS base to WIN32 (Windows95/NT)
|
||||
was done by Kay-Uwe Kasemir 11/96
|
||||
|
||||
please mail questions, comments, corrections, additional examples, etc
|
||||
to johill@lanl.gov
|
||||
|
||||
0) what you will get
|
||||
--------------------
|
||||
|
||||
Right now this port of EPICS to WIN32 should allow you to
|
||||
|
||||
* compile almost all EPICS base using Tornado, MS Visual C
|
||||
and some additional tools: gnumake, a UNIX-like shell, awk, sed, ...
|
||||
(See below where to get these.)
|
||||
* load EPICS on a PC IOC (486, pentium),
|
||||
load simple databases
|
||||
* compile almost all of EPICS base using {Tornado, MS Visual C, perl,
|
||||
GNU make} (only {MS Visual C, perl, GNU make} if you prefer
|
||||
to compile only the host portions of EPICS base).
|
||||
* load EPICS on an IOC (486, pentium, 68k, ...),
|
||||
load databases
|
||||
(no drivers/devices for real I/O available, yet.
|
||||
Some Greenspring IP support [Relay, Dig, ADC, DAC] is in progress)
|
||||
* build and use ca.dll on NT or Win95 to access all IOCs,
|
||||
as well as the Com-library as a DLL.
|
||||
The remaining libraries are statically linked and
|
||||
therefore only accessible from programming languages like C,
|
||||
not general WIN32 apps.
|
||||
as well as the Com-library, gdd-library, cas-library,
|
||||
and all other EPICS base libraries as DLLs.
|
||||
* build gdd, cas and a demo of the new portable CA server on WIN32.
|
||||
* missing: the sequencer, makeExampleApp etc. and long term tests
|
||||
|
||||
1) see what you have
|
||||
--------------------
|
||||
|
||||
To compiler EPICS on WIN32, we need
|
||||
To compile EPICS on WIN32, we need
|
||||
|
||||
WindRiver Systems Tornado (used: 1.0)
|
||||
Microsoft Visual C (used: 4.0)
|
||||
WindRiver System's Tornado (used: 1.0) (not required if host only build)
|
||||
Microsoft's Visual C/C++ (used: 4.0) (borland C++ rumored to work also)
|
||||
|
||||
and some tools:
|
||||
|
||||
a Unix-like shell
|
||||
gnumake
|
||||
basename
|
||||
date
|
||||
mv
|
||||
touch
|
||||
sort
|
||||
gnu make - www.gnu.org (we used 3.76)
|
||||
perl - www.perl.org (we used 5.003)
|
||||
|
||||
All the above except. the shell are available 'on the net'
|
||||
The perl interpreter and gnu make are available 'on the net'
|
||||
as sources which compile with MS Visual C++.
|
||||
If you cannot/don't want to find them, contact me, please!
|
||||
|
||||
I could not find a shell that's fully operational.
|
||||
The best one seems to be the Cygnus bash for WIN32, though it
|
||||
still has errors and doesn't come with sources that compile
|
||||
under MS VC++.
|
||||
I use a small self-written shell called knts,
|
||||
again: Contact me if you need it.
|
||||
|
||||
* The final solution to make the shell, basename, date, ...
|
||||
* obsolete:
|
||||
* Use
|
||||
* 1) no shell scripts
|
||||
* 2) Perl which is available for Unix and WIN32
|
||||
|
||||
In addition we need some binaries that I have no sources
|
||||
for, yet, but that come with Tornado if and only if you
|
||||
INSTALL THE FULL PACKAGE (!)
|
||||
Including the 'WTX Test Suite i386/i486'
|
||||
(under "Select Sub-components" when installing Tornado)
|
||||
|
||||
You should find in your <Tornado>/host/x86-win32/bin dir:
|
||||
|
||||
awk, cat, cp, rm, mkdir
|
||||
|
||||
(There is also a bash and a GNU-make which are really poor,
|
||||
and WindRiver told me that they do not consider to support
|
||||
those in the future, so I no longer use them.)
|
||||
|
||||
2) set environment variables
|
||||
----------------------------
|
||||
|
||||
(Setting env. vars. is different: for NT, use Settings/System,
|
||||
for Win95 use autoexec.bat)
|
||||
|
||||
When setting paths in the EPICS CONFIG files for WIN32:
|
||||
|
||||
** Note that that each "\" in any path variables
|
||||
must be replaced with a "\\" (this is because GNU make treats
|
||||
all "\" characters as line continuation)
|
||||
|
||||
** Note that that each space in any file name or
|
||||
path name variable must be replaced with
|
||||
a "\ " (this is because GNU make treats all " " separated
|
||||
input as independent tokens in the input stream.
|
||||
|
||||
** WIN32 will generally allow "/" and "\" interchangeably in file paths,
|
||||
but the DOS shell appears to only accept "\".
|
||||
|
||||
Your path should include:
|
||||
- The EPICS-binaries that we are about to build in base/bin/WIN32
|
||||
- The NTtools that you've built in step 1
|
||||
- The EPICS-binaries that we are about to build in <EPICS>base/bin/WIN32
|
||||
- The System (for me it's in NT40...)
|
||||
- The MS Visual C compiler binaries
|
||||
- The Tornado binaries
|
||||
|
||||
Check with e.g.:
|
||||
|
||||
/users/kay/Src/epics/nttools >echo $Path
|
||||
c:\users\kay\src\epics\base\bin\WIN32;c:\users\kay\src\epics\NTtools\bin;C:\NT40
|
||||
\system32;C:\NT40;c:\msdev\bin;C:\users\Tornado\host\x86-win32\bin
|
||||
>echo %Path%
|
||||
C:\WINNT35.0\system32;
|
||||
C:\WINNT35.0;
|
||||
c:\msdev\bin;
|
||||
c:\perl5\bin;
|
||||
c:\make-3.75\WinRel;
|
||||
c:\epics\base\bin\win32 (really where INSTALL_LOCATION specifies)
|
||||
|
||||
On NT, $Path is defined by the operatin system, on Win95, it's $PATH instead.
|
||||
knts tries to use PATH and falls back on Path,
|
||||
what should wok on both systems.
|
||||
On NT, "Path" is defined by the operating system, on Win95, it's "PATH" instead.
|
||||
|
||||
MS Visual C and Tornado should be installed properly with
|
||||
these env. variables set:
|
||||
|
||||
WIND_BASE=c:\usersTornado
|
||||
WIND_HOST_TYPE=x86-win32
|
||||
WIND_BASE=c:\Tornado (required for cross development only)
|
||||
WIND_HOST_TYPE=x86-win32 (required for cross development only)
|
||||
|
||||
This way the EPICS makesystem can locate Tornado
|
||||
without any changes to the files in base/config.
|
||||
@@ -109,29 +94,26 @@ MSDevDir=C:\MSDEV
|
||||
include=c:\msdev\include;c:\msdev\mfc\include
|
||||
lib=c:\msdev\lib;c:\msdev\mfc\lib
|
||||
|
||||
(Setting env. vars. is different: for NT, use Settings/System,
|
||||
for Win95 use autoexec.bat)
|
||||
Select host arch to build:
|
||||
HOST_ARCH=WIN32 (used by the make system)
|
||||
|
||||
For EPICS, set:
|
||||
Set the "TMP" environment variable if you need to specify where
|
||||
temporary files are created.
|
||||
|
||||
# select host arch to build:
|
||||
HOST_ARCH=WIN32
|
||||
Directory Used For Temporary Files Conditions
|
||||
---------------------------------- ----------
|
||||
Directory specified by TMP TMP environment variable is set,
|
||||
and directory specified by TMP exists.
|
||||
dir argument to _tempnam TMP environment variable is not set, or
|
||||
directory specified by TMP does not exist.
|
||||
P_tmpdir in STDIO.H dir argument is NULL, or dir is name of
|
||||
nonexistent directory.
|
||||
Current working directory P_tmpdir does not exist.
|
||||
|
||||
EPICS_CA_ADDR_LIST 128.165.32.255 (addr of WIN32 host)
|
||||
EPICS_CA_AUTO_CA_ADDR_LIST NO
|
||||
EPICS_CA_CONN_TMO 30.0
|
||||
EPICS_CA_BEACON_PERIOD 15.0
|
||||
EPICS_CA_REPEATER_PORT 5065
|
||||
EPICS_CA_SERVER_PORT 5064
|
||||
EPICS_TS_MIN_WEST 420 (Germany: -120)
|
||||
|
||||
|
||||
To debug knts, set KNTS to 5:
|
||||
KNTS=5
|
||||
export KNTS
|
||||
|
||||
You should do this, however, only if you really want the debugging info.
|
||||
On my system I see in stdio.h that _P_tmpdir is "/". Here is a common
|
||||
setting for "TMP" (the C:\TEMP directory must exist).
|
||||
|
||||
TMP=C:\TEMP
|
||||
|
||||
3) building EPICS
|
||||
-----------------
|
||||
@@ -139,23 +121,61 @@ You should do this, however, only if you really want the debugging info.
|
||||
Prepare apx. 2 ltr. Tee and type:
|
||||
|
||||
cd <epics>/base
|
||||
gnumake
|
||||
make (use gnu make)
|
||||
|
||||
Watch for errors and send them to me.
|
||||
|
||||
There might be loads of compiler warnings.
|
||||
Known errors:
|
||||
Known problems:
|
||||
* gnumake seems to be faster than WIN32 sometimes
|
||||
which results in warnings/errors like
|
||||
"file has modification date in the future"
|
||||
for newly vreated things.
|
||||
for newly created things.
|
||||
Very seldom this is fatal, so you have to
|
||||
stop gnumake and restart it.
|
||||
* This is strange because Windows95/NT don't care
|
||||
* This is strange because Windows95/NT doesn't care
|
||||
about upper/lower case:
|
||||
WIN32 is WIN32, not win32. Gnumake fails
|
||||
if e.g. base/src/include/os/WIN32 is ...win32.
|
||||
|
||||
4) Creating EPICS IOC applications under WIN32
|
||||
|
||||
o create application development folder
|
||||
|
||||
o start a DOS window and change your working directory to the folder
|
||||
created above (with the DOS "cd" command)
|
||||
|
||||
o to create an example application type:
|
||||
"perl c:\epics\bin\win32\makeBaseApp.pl -b c:\\epics -e
|
||||
|
||||
** Note that that each "\" above in any path arguments to makeBaseApp.pl
|
||||
must be replaced with a "\\" (this is because GNU make treats
|
||||
all "\" characters as line continuation)
|
||||
|
||||
** Note that that each space in any file name or
|
||||
path name argument to makeBaseApp.pl must be replaced with
|
||||
a "\ " (this is because GNU make treats all " " separated
|
||||
input as independent tokens in the input stream.
|
||||
|
||||
** Note that c:\epics above must be replaced by the path
|
||||
to your epics source installation (or where INSTALL_LOCATION
|
||||
specifies)
|
||||
|
||||
o General information on EPICS IOC application development can be found in
|
||||
the "EPICS IOC Application Developers Guide". To see all of the options
|
||||
supported by makeBaseApp.pl type "perl c:\epics\bin\win32\makeBaseApp.pl"
|
||||
|
||||
5) EPICS GNU make makefiles can be executed from within a Visual C++ "makefile"
|
||||
style project. This allows EPICS programs to be developed directly inside of
|
||||
the visual C++ environment. To do this create a "makefile" project and place your
|
||||
gnu make command in the build configuration (accessed from the project/settings menu).
|
||||
You will also need to add GNU make and <EPICS>/bin/win32 into the Visual C++
|
||||
executable search path (from the tools/options menu). I have not so far determined
|
||||
how to configure visual C++ so that it is possible to double click on the compiler
|
||||
error messages generated within an EPICS "makefile" style project and have visual
|
||||
C++ immediately position the cursor on the corresponding line in the source (as is
|
||||
normally the case in the visual C++ environment). If you solve this problem please
|
||||
forward the details to johill@lanl.gov.
|
||||
|
||||
Good luck !
|
||||
|
||||
-Kay
|
||||
|
||||
46
README.cxxTemplates
Normal file
46
README.cxxTemplates
Normal file
@@ -0,0 +1,46 @@
|
||||
|
||||
The C++ templates supplied with EPICS base are in
|
||||
"$(EPICS)/base/src/cxxTemplates".
|
||||
|
||||
In Stroustrups's "The C++ Programming Language" Appendix A: r.14.9
|
||||
(ANSI/ISO resolutions) a mechanism is described for the explicit
|
||||
instantiation of template member functions (that are not inline).
|
||||
At this time some compilers do not support this mechanism (and use
|
||||
a template database snd/or smart linker instead). Other compilers
|
||||
(such as g++) provide only limited support for other forms of
|
||||
instantiation (g++ does not yet provide a template database or
|
||||
a smart linker for templates).
|
||||
|
||||
Since there is no defacto standard mechanism for instatiating
|
||||
templates at this time we are defining the preprocessor flag
|
||||
EXPL_TEMPL in the build system when the compiler supports
|
||||
explicit instantiation and the compiler does not support
|
||||
automatic instantiation via a smart linker and/or template
|
||||
database (currently this is only g++).
|
||||
|
||||
EPICS codes that use templates may need to include a code block
|
||||
as follow that instantiates the template only once into each
|
||||
program.
|
||||
|
||||
#include <classXYZ.h>
|
||||
#include <templXXX.h>
|
||||
|
||||
//
|
||||
// if the compiler supports explicit instantiation of
|
||||
// template member functions
|
||||
//
|
||||
#if defined(EXPL_TEMPL)
|
||||
//
|
||||
// From Stroustrups's "The C++ Programming Language"
|
||||
// Appendix A: r.14.9
|
||||
//
|
||||
// This explicitly instantiates the template class's member
|
||||
// functions into "templInst.o"
|
||||
//
|
||||
template class templXXX <classXYZ>;
|
||||
#endif
|
||||
|
||||
Jeff Hill 3-6-97
|
||||
johill@lanl.gov
|
||||
|
||||
|
||||
87
README.cygwin32
Normal file
87
README.cygwin32
Normal file
@@ -0,0 +1,87 @@
|
||||
Compiling EPICS on cygwin32 (Windows95/NT)
|
||||
------------------------------------------
|
||||
|
||||
Right now this port of EPICS to cygwin32 it is possible to
|
||||
compile the EPICS base for the cygwin32 Host using Cygnus' beta19
|
||||
release of the GNU-win32 tools.
|
||||
|
||||
To build EPICS on Win95 or NT using cygwin32, we need
|
||||
|
||||
EPICS base distribution, R3.12.0.beta12 or later, available
|
||||
from http://aps.anl.gov/...
|
||||
Cygnus's latest gnu-win32 distribution, available from
|
||||
http://www.cygnus.com/misc/gnu-win32/ (release b19 or later)
|
||||
Perl,version 5.003 or later, available from
|
||||
http://www.perl.org/CPAN/ports/win32/
|
||||
|
||||
Optional items
|
||||
CVS, version 1.9 or later, available from
|
||||
http:/download.cyclic.com
|
||||
windows-nt - cvs-1.9.10.tar.gz
|
||||
patch.exe
|
||||
win32gnu.dll
|
||||
vim ( Vi IMproved), version 4.5 or later, available from
|
||||
http://www.cygnus.com/misc/gnu-win32/
|
||||
|
||||
|
||||
BUILD INSTRUCTIONS
|
||||
------------------
|
||||
|
||||
|
||||
1) Install the gnu-win32 binary release
|
||||
---------------------------------------
|
||||
Download the whole release, cdk.exe, to get the developemnt tools
|
||||
|
||||
First move out of the way any older versions of gnuwin32
|
||||
|
||||
Run cdk.exe and follow the install instructions.
|
||||
|
||||
Don't forget to create a \tmp dir and setup the \bin dir.
|
||||
(Create a \temp dir if you install cvs.)
|
||||
mkdir \tmp
|
||||
mkdir \temp
|
||||
mkdir \bin
|
||||
cd \bin
|
||||
copy C:\cygnus\b19\H-i386-cygwin32\bin\sh.exe sh.exe
|
||||
|
||||
Install the b19.1 bug fix update to the Cygwin32 library.
|
||||
|
||||
(Optional: Install the GNU-WIN32 compiler replacement from
|
||||
the ECGS project)
|
||||
|
||||
2) Install the perl distribution
|
||||
--------------------------------
|
||||
pw32i316.exe (Execute and follow instructions)
|
||||
|
||||
3) Install the epics base distribution
|
||||
--------------------------------------
|
||||
mkdir <epicsBaseReleaseDir>
|
||||
chdir <epicsBaseReleaseDir>
|
||||
cp <dirname>\<basereleasename>.gz .
|
||||
gunzip -d <basereleasename>.gz
|
||||
chmod +w -R *
|
||||
|
||||
4) Set environment variables and path using cygwin32.bat
|
||||
-------------------------------------------------------------
|
||||
<edit cygwin32.bat changing paths if necessary>
|
||||
cd <epicsBaseReleaseDir>\startup
|
||||
cygwin32.bat
|
||||
|
||||
5) Set site specific parms in epics base\config files
|
||||
-----------------------------------------------------
|
||||
cd <epicsBaseReleaseDir>\base\config
|
||||
<edit CONFIG_SITE* files>
|
||||
|
||||
6) Build epics base
|
||||
-------------------
|
||||
cd <epicsBaseReleaseDir>\base
|
||||
make
|
||||
|
||||
7) Create an EPICS application area (note forward slashes on perl cmd)
|
||||
---------------------------------------------------------------------
|
||||
mkdir <epicsappdir>
|
||||
cd <epicsappdir>
|
||||
perl <epicsBaseReleaseDir>/bin/cygwin32/makeBaseApp.pl -l
|
||||
perl <epicsBaseReleaseDir>/bin/cygwin32/makeBaseApp.pl -t example example
|
||||
|
||||
|
||||
@@ -1,12 +1,28 @@
|
||||
#
|
||||
# supplement README for HP700 and Alpha OSF/1 builds
|
||||
# supplement README for HP700
|
||||
#
|
||||
# Johnny Tang 5-29-97
|
||||
#
|
||||
# M. Anderson and J. Tang
|
||||
|
||||
1. VxWorks 5.2 for HP-UX
|
||||
|
||||
- Directory permissions may not be correct across multiple machines, so a
|
||||
- Make sure that you have set VX_DIR and VX_GNU to your
|
||||
VxWorks root directory.
|
||||
|
||||
% chmod -R ugo+rw base extensions
|
||||
- Under $(VX_DIR), create a soft link:
|
||||
hp700.68k -> hp9700.68k
|
||||
|
||||
might be necessary.
|
||||
2. Modify base/config/CONFIG_SITE file
|
||||
|
||||
- ANSI=HPACC
|
||||
- STANDARD=HPCC
|
||||
- CPLUSPLUS=G++
|
||||
|
||||
3. HP native c++ compiler has problem to handle the head files
|
||||
in which a inline function is used in conjuction with template
|
||||
|
||||
base/src/cas, the portable CA server can't be compiled successfully
|
||||
because of the above limitation.
|
||||
|
||||
This problem can be resolved by spliting the function declarations
|
||||
from the inline code in the files in base/src/cxxTemplates.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
----------------------------------------------------------------------------
|
||||
EPICS R3.12.2 Notes for Solaris
|
||||
EPICS Notes for Solaris
|
||||
- By Andrew Johnson
|
||||
|
||||
updated 12-16-96 by Jeff Hill
|
||||
|
||||
1399
RELEASE_NOTES.html
Normal file
1399
RELEASE_NOTES.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -2,30 +2,60 @@
|
||||
# $Id$
|
||||
#
|
||||
# The developer may edit this file.
|
||||
# assume T_A is the host arch if not specified
|
||||
|
||||
# Site-specific build options
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_SITE
|
||||
|
||||
# EPICS base definitions
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_COMMON
|
||||
|
||||
# assume T_A is the host arch if not specified
|
||||
ifndef T_A
|
||||
T_A = $(HOST_ARCH)
|
||||
endif
|
||||
#
|
||||
# EPICS version definitions
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_BASE_VERSION
|
||||
|
||||
# Site-specific build options
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_SITE
|
||||
|
||||
# Host architecture specific definitions
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
#
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE_HOST_ARCH.$(HOST_ARCH)
|
||||
|
||||
ifdef T_A
|
||||
|
||||
# Build type specific definitions
|
||||
#
|
||||
-include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE)
|
||||
#
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE)
|
||||
|
||||
# Architecture specific definitions
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG.$(T_A)
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(T_A)
|
||||
#
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.$(T_A)
|
||||
ifneq ($(HOST_ARCH),$(T_A))
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE).$(HOST_ARCH)
|
||||
endif
|
||||
#
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE).$(T_A)
|
||||
|
||||
endif
|
||||
|
||||
# User specific definitions
|
||||
#
|
||||
-include $(HOME)/.EPICS_CONFIG
|
||||
-include $(HOME)/.EPICS_CONFIG.$(HOST_ARCH)
|
||||
-include $(HOME)/EPICS_CONFIG
|
||||
-include $(HOME)/EPICS_CONFIG.$(HOST_ARCH)
|
||||
-include $(HOME)/EPICS_CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
ifdef T_A
|
||||
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE)
|
||||
ifneq ($(HOST_ARCH),$(T_A))
|
||||
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE).$(HOST_ARCH)
|
||||
endif
|
||||
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE).$(T_A)
|
||||
endif
|
||||
|
||||
# All EPICS options other than BUILD_TYPE
|
||||
# may be overridden here.
|
||||
@@ -35,7 +65,7 @@ include $(EPICS_BASE)/config/CONFIG.$(T_A)
|
||||
# Build client objects statically ? must be either YES or NO
|
||||
#STATIC_BUILD=NO
|
||||
# Unix Optimization, must be either YES or NO
|
||||
#UNIX_OPT=YES
|
||||
#HOST_OPT=YES
|
||||
# VxWorks Optimization, must be either YES or NO
|
||||
#VX_OPT=YES
|
||||
# Generate Verbose Compiler Warnings for Unix, must be either YES or NO
|
||||
@@ -43,4 +73,10 @@ include $(EPICS_BASE)/config/CONFIG.$(T_A)
|
||||
# Generate Verbose Compiler Warnings for VxWorks, must be either YES or NO
|
||||
#VX_WARN=YES
|
||||
#etc.
|
||||
#
|
||||
|
||||
#CROSS_COMPILER_TARGET_ARCHS=mv167
|
||||
#ANSI=GCC
|
||||
#CPLUSPLUS=G++
|
||||
#CMPLR=STRICT
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
|
||||
77
config/CONFIG.Host.Linux
Normal file
77
config/CONFIG.Host.Linux
Normal file
@@ -0,0 +1,77 @@
|
||||
# CONFIG.Host.Linux
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.Linux
|
||||
|
||||
ARCH_CLASS = Linux
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
RANLIB = ranlib -t
|
||||
|
||||
#OP_SYS_FLAGS = -D_BSD_SOURCE -D_POSIX_SOURCE
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = gcc
|
||||
ACC_ANSI = $(ACC)
|
||||
#ACC_ANSI = $(ACC) -ansi -D_SVID_SOURCE
|
||||
#ACC_STRICT = $(ACC) -Xc
|
||||
ACC_STRICT = $(ACC) -pedantic
|
||||
#ACC_STRICT = $(ACC) -ansi -pedantic -D_SVID_SOURCE
|
||||
ACC_TRAD = $(ACC)
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES = -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES = -fPIC
|
||||
#ACC_SHRLIB_CFLAGS_YES = -fPIC -D_BSD_SOURCE
|
||||
ACC_SHRLIB_LDFLAGS_YES = -shared -Wl,-soname,$@
|
||||
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC = g++
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
CCC_TEMPL_INST_FLAG = -DEXPL_TEMPL
|
||||
CCC_WARN_YES =
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES = -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -MM
|
||||
|
||||
# added smh 6/5/98 : when building fdmgr - seems to use this not ACC
|
||||
# in effect this overides orig def in CONFIG_COMMON :
|
||||
# which is GCC_STRICT = $(GCC) -ansi -pedantic
|
||||
GCC_STRICT = $(GCC)
|
||||
G++_STRICT = $(G++) -Wtraditional
|
||||
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux -D_USE_BSD
|
||||
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux
|
||||
ARCH_DEP_LDFLAGS =
|
||||
|
||||
#glibc FAQ
|
||||
# "_GNU_SOURCE: glibc does not make the GNU extensions available
|
||||
# automatically. If a program depends on the GNU extensions or some other
|
||||
# non-standard functionality, it is necessary to compile it with the C
|
||||
# compiler option -D_GNU_SOURCE, or better to put #define _GNU_SOURCE at
|
||||
# the beginning of your source files, before any C library header files
|
||||
# are included. This difference normally manifests itself in the form
|
||||
# of missing prototypes and/or data type definitions. Thus, if you get
|
||||
# such errors, the first thing you should do is try defining _GNU_SOURCE
|
||||
# and see if that makes the problem go away."
|
||||
#ARCH_DEP_CFLAGS += -D_GNU_SOURCE
|
||||
|
||||
|
||||
|
||||
58
config/CONFIG.Host.LynxOS
Normal file
58
config/CONFIG.Host.LynxOS
Normal file
@@ -0,0 +1,58 @@
|
||||
# CONFIG.Host.LynxOS
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.LynxOS
|
||||
|
||||
ARCH_CLASS = LynxOS
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
RANLIB = ranlib -t
|
||||
|
||||
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC_ANSI = $(ACC) -ansi -mposix -D_X86_
|
||||
ACC_STRICT = $(ACC) -ansi -mposix -D_X86_ -pedantic
|
||||
ACC_TRAD = $(ACC)
|
||||
ACC_WARN_YES = -Wall
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES = -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES =
|
||||
ACC_SHRLIB_LDFLAGS_YES =
|
||||
|
||||
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
CCC_TEMPL_INST_FLAG = -pedantic -mposix -D_X86_ -DEXPL_TEMP
|
||||
CCC_WARN_YES = -Wall
|
||||
CCC_WARN_NO = -w
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES = -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -pedantic -mposix -D_X86_
|
||||
|
||||
|
||||
# added smh 6/5/98 : when building fdmgr - seems to use this not ACC
|
||||
# in effect this overides orig def in CONFIG_COMMON :
|
||||
# which is GCC_STRICT = $(GCC) -ansi -pedantic
|
||||
GCC_STRICT = $(GCC)
|
||||
G++_STRICT = $(G++) -Wtraditional -mposix -D_X86_ -DEXPL_TEMP
|
||||
|
||||
|
||||
|
||||
ARCH_DEP_CFLAGS = -DLynxOS -mposix -D_X86_
|
||||
ARCH_DEP_LDFLAGS = -lc -lbsd -lnsl -lm -lposix4d9 -llynx
|
||||
80
config/CONFIG.Host.UnixCommon
Normal file
80
config/CONFIG.Host.UnixCommon
Normal file
@@ -0,0 +1,80 @@
|
||||
# CONFIG.Host.UnixCommon
|
||||
#
|
||||
# Contains definitions common to all Unix archs
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.UnixCommon
|
||||
|
||||
|
||||
#-------------------------------------------------------
|
||||
# adjust names of libraries to build
|
||||
#
|
||||
# <lib> -> lib<lib>.a
|
||||
LIBNAME = $(LIBRARY:%=lib%.a)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Shared library definitions
|
||||
|
||||
# CONFIG.Host.<arch> files may override
|
||||
SHRLIB_SUFFIX = .so
|
||||
|
||||
SHRLIBNAME = lib$(LIBRARY)$(SHRLIB_SUFFIX)$(SHRLIB_VERSION:%=.%)
|
||||
SHRLIB_LDFLAGS = $($(ANSI)_SHRLIB_LDFLAGS_$(strip $(SHARED_LIBRARIES)))
|
||||
|
||||
DLL_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)
|
||||
|
||||
INSTALL_SHRLIB = $(INSTALL_LIB)
|
||||
|
||||
LINK.shrlib= $(SHRLIB_LINKER) -o $@ $(CFLAGS) $(CPPFLAGS) $(SHRLIB_LDFLAGS) $(LDFLAGS)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Unix command definitions
|
||||
|
||||
CPP = cpp
|
||||
RANLIB = ranlib
|
||||
|
||||
# GNU compilers
|
||||
GCC = gcc
|
||||
G++ = g++
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Unix suffix definitions
|
||||
EXE =
|
||||
OBJ = .o
|
||||
|
||||
#--------------------------------------------------
|
||||
# Dependancy definitions
|
||||
COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a))
|
||||
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
|
||||
|
||||
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Determine ld flags
|
||||
USR_DIRS = $(dir $(PRODNAME_DEPLIBS)) $(dir $(PROD_DEPLIBS))\
|
||||
$(dir $(USR_DEPLIBS))
|
||||
USR_LDFLAGS += $(sort $(USR_DIRS:%=-L%))
|
||||
|
||||
# Determine ld libs
|
||||
USR_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
|
||||
$(SYS_PROD_LIBS:%=-l%)
|
||||
|
||||
#USR_LDLIBS = $(PRODNAME_DEPLIBS:%=-L%) $(PROD_DEPLIBS:%=-L%) $(USR_DEPLIBS)\
|
||||
# $(USR_XLDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system definitions
|
||||
OP_SYS_INCLUDES =
|
||||
OP_SYS_CFLAGS = -DUNIX
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_LDLIBS = -lm
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.c = $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.Host.UnixCommon
|
||||
258
config/CONFIG.Host.WIN32
Normal file
258
config/CONFIG.Host.WIN32
Normal file
@@ -0,0 +1,258 @@
|
||||
# CONFIG.Host.WIN32
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.WIN32
|
||||
|
||||
# Use std path variables from ms
|
||||
HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
|
||||
#
|
||||
# You currently get Visual C++ even if you ask for GNU.
|
||||
#
|
||||
# !! borlund support needed here !!
|
||||
#
|
||||
ANSI = ACC
|
||||
CPLUSPLUS = CCC
|
||||
|
||||
#
|
||||
# "\ " forces gnu make to keep this as one token
|
||||
#
|
||||
MSVISC = c:\\Program\ Files\\DevStudio\\Vc
|
||||
WINLINK = link
|
||||
|
||||
RCCMD = rc -l 0x409 -fo $@ $<
|
||||
|
||||
ARCMD = lib /nologo /verbose /out:$@
|
||||
|
||||
#
|
||||
# Configure OS vendor C compiler
|
||||
ACC = cl
|
||||
|
||||
#
|
||||
# __STDC__=0 is a real great idea of Jeff that gives us both:
|
||||
# 1) define STDC for EPICS code (pretend ANSI conformance)
|
||||
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
|
||||
# because MS uses: if __STDC__ ... disable many nice things
|
||||
#
|
||||
# Use of /Za would dissable DLL import/export keywords which
|
||||
# EPICS include/excludes using architecture neutral macros
|
||||
ACC_ANSI = $(ACC) /nologo /D__STDC__=0
|
||||
ACC_STRICT = $(ACC) /nologo /D__STDC__=0
|
||||
ACC_TRAD = $(ACC) /nologo
|
||||
|
||||
#
|
||||
# /W<N> use warning level N
|
||||
# (maximum (lint type) warnings at level 4)
|
||||
ACC_WARN_YES = /W3
|
||||
ACC_WARN_NO = /W1
|
||||
|
||||
#
|
||||
# /Ox maximum optimizations
|
||||
# /MD use MSVCRT (run-time as DLL, multi-thread support)
|
||||
ACC_OPT_YES = /Ox
|
||||
|
||||
#
|
||||
# /Zi include debugging info in object files
|
||||
# /Fr create source browser file
|
||||
ACC_OPT_NO = /Zi /Fr
|
||||
|
||||
#
|
||||
# the following options are required when
|
||||
# vis c++ compiles the code (and includes
|
||||
# the header files)
|
||||
#
|
||||
# /MT static multithreaded C RTL
|
||||
# /MTd static multithreaded C RTL (debug version)
|
||||
# /MD multithreaded C RTL in DLL
|
||||
# /MDd multithreaded C RTL in DLL (debug version)
|
||||
VISC_EPICS_DLL_NO = -DEPICS_DLL_NO
|
||||
VISC_EPICS_DLL_YES =
|
||||
VISC_EPICS_DLL = $(VISC_EPICS_DLL_$(SHARED_LIBRARIES))
|
||||
VISC_SFLAGS_DEBUG_NO = d
|
||||
VISC_SFLAGS_DEBUG_YES =
|
||||
VISC_SFLAGS_DEBUG = $(VISC_SFLAGS_DEBUG_$(HOST_OPT))
|
||||
ACC_SFLAGS_YES= /MT$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
|
||||
ACC_SFLAGS_NO= /MD$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
|
||||
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
ACC_SLIBS_YES=
|
||||
ACC_SLIBS_NO=
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
#
|
||||
# __STDC__=0 is a real great idea of Jeff that gives us both:
|
||||
# 1) define STDC for EPICS code (pretend ANSI conformance)
|
||||
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
|
||||
# because MS uses: if __STDC__ ... disable many nice things
|
||||
#
|
||||
# Use of /Za would dissable DLL import/export keywords which
|
||||
# EPICS include/excludes using architecture neutral macros
|
||||
CCC = cl
|
||||
CCC_NORMAL = $(CCC) /nologo /D__STDC__=0
|
||||
CCC_STRICT = $(CCC) /nologo /D__STDC__=0
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
|
||||
#
|
||||
# /W<N> use warning level N
|
||||
# (maximum lint level warnings at level 4)
|
||||
CCC_WARN_YES = /W3
|
||||
CCC_WARN_NO = /W1
|
||||
|
||||
#
|
||||
# /Ox maximum optimizations
|
||||
CCC_OPT_YES = /Ox
|
||||
|
||||
#
|
||||
# /Zi include debugging info in object files
|
||||
# /Fr create source browser file
|
||||
CCC_OPT_NO = /Zi /Fr
|
||||
|
||||
#
|
||||
# the following options are required when
|
||||
# vis c++ compiles the code (and includes
|
||||
# the header files)
|
||||
#
|
||||
# /MT static multithreaded C RTL
|
||||
# /MTd static multithreaded C RTL (debug version)
|
||||
# /MD multithreaded C RTL in DLL
|
||||
# /MDd multithreaded C RTL in DLL (debug version)
|
||||
CCC_SFLAGS_YES= /MT$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
|
||||
CCC_SFLAGS_NO= /MD$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
|
||||
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
CCC_SLIBS_YES=
|
||||
CCC_SLIBS_NO=
|
||||
|
||||
LINK_OPT_FLAGS_YES = /WARN:3 /incremental:no /opt:ref\
|
||||
/release $(PROD_VERSION:%=/version:%)
|
||||
LINK_OPT_FLAGS_NO = /WARN:3 /debug
|
||||
OPT_LDFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
|
||||
|
||||
ARCH_DEP_CFLAGS=
|
||||
|
||||
# to identify the general architecture class:
|
||||
# should be BSD, SYSV, WIN32, ...
|
||||
# is: WIN32, sun4, hpux, linux, ...
|
||||
#
|
||||
ARCH_CLASS=WIN32
|
||||
|
||||
# ifdef WIN32 looks better that ifeq ($(ARCH_CLASS),WIN32) ??
|
||||
WIN32=1
|
||||
|
||||
EXE=.exe
|
||||
OBJ=.obj
|
||||
RES=.res
|
||||
|
||||
# Problem: MS Visual C++ does not recognize *.cc as C++ source,
|
||||
# we have to compile xx.cc using the flag -Tp xx.cc,
|
||||
# i.e. -Tp has to be immediately before the source file name
|
||||
SOURCE_CXXFLAG = /Tp
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_CFLAGS =
|
||||
|
||||
#
|
||||
# WIN32 specific include files
|
||||
#
|
||||
OP_SYS_INCLUDES = -I$(EPICS_BASE_INCLUDE)\\os\\WIN32
|
||||
|
||||
#
|
||||
# These are now added to the individual makefiles that use them in order to
|
||||
# speed up the build
|
||||
#
|
||||
#OP_SYS_LDLIBS = user32.lib kernel32.lib advapi32.lib winmm.lib
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
# Files and flags needed to link DLLs (used in RULES.Host)
|
||||
#
|
||||
# Strange but seems to work without: WIN32_DLLFLAGS should contain
|
||||
# an entry point:
|
||||
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
|
||||
DLLENTRY = @12
|
||||
|
||||
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS)
|
||||
|
||||
#
|
||||
# specify dll .def file only if it exists
|
||||
#
|
||||
DLL_DEF_FLAG = $(addprefix /def:,$(wildcard ../$(LIBRARY).def))
|
||||
|
||||
# HOST_OPT_FLAGS is part of CFLAGS/CXXFLAGS,
|
||||
# which in turn are used in COMPILE.c[c]
|
||||
#
|
||||
# If we compile a .c, .cc into an $(OBJ),
|
||||
# we test if this object is part of the
|
||||
# library objects LIBOBJS.
|
||||
# If so, we define _WINDLL so that
|
||||
# e.g. include/shareLib.h works correctly.
|
||||
#
|
||||
HOST_OPT_FLAGS += $(subst $@, /_WINDLL, $(findstring $@,$(LIBOBJS)))
|
||||
|
||||
#
|
||||
# A WIN32 dll has three parts:
|
||||
# x.dll: the real dll (SHRLIBNAME)
|
||||
# x.lib: what you link to progs that use the dll (LIBNAME)
|
||||
# x.exp: what you need to build the dll (in no variable)
|
||||
#
|
||||
LINK.shrlib = $(WINLINK) /nologo $(WIN32_DLLFLAGS) /implib:$(DLL_LINK_LIBNAME) /out:$(SHRLIBNAME) $(DLL_DEF_FLAG)
|
||||
|
||||
# adjust names of libraries to build
|
||||
#
|
||||
# But: if there are no objects LIBOBJS to include
|
||||
# in this library (may be for e.g. base/src/libCompat
|
||||
# on some archs), don't define (and build) any library!
|
||||
SHRLIBNAME = $(LIBRARY).dll
|
||||
|
||||
#
|
||||
# Under WIN32 we have the unique situation where the DLL link creates the
|
||||
# DLL link library xxx.lib and we need to be very careful to avoid replacing
|
||||
# the xxx.lib created by the dll link with an xxx.lib created by $(AR).
|
||||
# Therefore, the object library is named xxxObj.lib
|
||||
#
|
||||
# SHARED_LIBRARIES is YES if we are building a DLL and NO if we aren't
|
||||
#
|
||||
DLL_LINK_LIBNAME_YES = $(LIBRARY).lib
|
||||
DLL_LINK_LIBNAME = $(DLL_LINK_LIBNAME_$(SHARED_LIBRARIES))
|
||||
LIBNAME = $(LIBRARY)Obj.lib
|
||||
|
||||
# dll install location
|
||||
INSTALL_SHRLIB = $(INSTALL_BIN)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Dependancy definitions
|
||||
OBJECT_LIB_EXT_YES = Obj.lib # object library extension for static build
|
||||
OBJECT_LIB_EXT_NO = .lib # object library extension for dynamic build
|
||||
OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
|
||||
COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))_LIBS),\
|
||||
$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT)))
|
||||
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
|
||||
|
||||
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
|
||||
|
||||
# by default the libraries used when linking the DLL are just
|
||||
# PROD_LIBS ans SYS_PROD_LIBS minus the DLL name
|
||||
DLL_LIBS = $(subst $(LIBRARY),, $(PROD_LIBS))
|
||||
|
||||
#
|
||||
# EPICS libs that we need to link the DLL with
|
||||
# (it isnt necessary to rebuild the dll if these change)
|
||||
DLL_DEPLIBS = $(foreach lib,$(DLL_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib).lib)
|
||||
|
||||
USR_LDLIBS = $(PRODNAME_DEPLIBS) $(PROD_DEPLIBS) $(USR_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib)
|
||||
|
||||
DLL_LDLIBS = $(DLL_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
|
||||
|
||||
LINK.c = $(WINLINK) -nologo $(LDFLAGS) -out:$@
|
||||
LINK.cc = $(WINLINK) -nologo $(LDFLAGS) -out:$@
|
||||
|
||||
#--------------------------------------------------
|
||||
# Determine ld flags
|
||||
#USR_DIRS = $(dir $(PRODNAME_DEPLIBS)) $(dir $(PROD_DEPLIBS))\
|
||||
# $(dir $(USR_DEPLIBS))
|
||||
#USR_LDFLAGS += $(sort $(USR_DIRS:%=-L%))
|
||||
|
||||
46
config/CONFIG.Host.alpha
Normal file
46
config/CONFIG.Host.alpha
Normal file
@@ -0,0 +1,46 @@
|
||||
# CONFIG.Host.alpha
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.alpha
|
||||
|
||||
ARCH_CLASS = alpha
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = cc
|
||||
ACC_ANSI = $(ACC) -std
|
||||
ACC_STRICT = $(ACC) -std1
|
||||
ACC_TRAD = $(ACC) -std0
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -non_shared
|
||||
ACC_SFLAGS_NO= -call_shared
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES =
|
||||
ACC_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC = cxx
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
CCC_TEMPL_INST_FLAG = -DEXPL_TEMPL
|
||||
CCC_WARN_YES =
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES=
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG =
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_OSF_SOURCE
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
28
config/CONFIG.Host.cygwin32
Normal file
28
config/CONFIG.Host.cygwin32
Normal file
@@ -0,0 +1,28 @@
|
||||
# CONFIG.Host.cygwin32
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.cygwin32
|
||||
|
||||
ARCH_CLASS = cygwin32
|
||||
|
||||
# cygwin32 is a unix-like arch
|
||||
# include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
EXE=.exe
|
||||
|
||||
#==========================
|
||||
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
|
||||
# since OS vendor compilers ACC and CCC are not defined here for cygwin32
|
||||
ANSI=GCC
|
||||
CPLUSPLUS=G++
|
||||
# Shared libraries not implemented yet
|
||||
SHARED_LIBRARIES=NO
|
||||
#==========================
|
||||
# Fix for cygwin32 beta17.1 includes
|
||||
#OP_SYS_INCLUDES += /usr/local/include/g++
|
||||
#==========================
|
||||
|
||||
ARCH_DEP_CFLAGS = -DCYGWIN32 -U_WIN32
|
||||
ARCH_DEP_LDLIBS = -lm
|
||||
|
||||
63
config/CONFIG.Host.hp700
Normal file
63
config/CONFIG.Host.hp700
Normal file
@@ -0,0 +1,63 @@
|
||||
# CONFIG.Host.hp700
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.hp700
|
||||
|
||||
ARCH_CLASS = hp700
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
SHRLIB_SUFFIX = .sl
|
||||
|
||||
AR = ar
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = cc
|
||||
ACC_ANSI = $(ACC) -Aa
|
||||
ACC_STRICT = $(ACC) -Aa
|
||||
ACC_TRAD = $(ACC)
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Wl,-a,archive
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES = +Z
|
||||
ACC_SHRLIB_LDFLAGS_YES = -b
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
HPCC = cc
|
||||
HPCC_ANSI = $(HPCC) -Aa
|
||||
HPCC_STRICT = $(HPCC) -Aa
|
||||
HPCC_TRAD = $(HPCC) -Ac
|
||||
HPCC_WARN_YES =
|
||||
HPCC_WARN_NO = -w
|
||||
HPCC_OPT_YES = -O
|
||||
HPCC_OPT_NO = -g
|
||||
HPCC_SFLAGS_YES= -Wl,-a,archive
|
||||
HPCC_SFLAGS_NO=
|
||||
HPCC_SLIBS_YES =
|
||||
HPCC_SLIBS_NO=
|
||||
HPCC_SHRLIB_CFLAGS_YES = +Z
|
||||
HPCC_SHRLIB_LDFLAGS_YES = -b
|
||||
|
||||
CCC = CC
|
||||
CCC_NORMAL = $(CCC) +p
|
||||
CCC_STRICT = $(CCC) +p
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = +w
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Wl,-a,archive
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG =
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
48
config/CONFIG.Host.sgi
Normal file
48
config/CONFIG.Host.sgi
Normal file
@@ -0,0 +1,48 @@
|
||||
# CONFIG.Host.sgi
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.sgi
|
||||
|
||||
ARCH_CLASS = sgi
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = cc
|
||||
ACC_ANSI = $(ACC) -xansi
|
||||
ACC_STRICT = $(ACC) -xansi
|
||||
ACC_TRAD = $(ACC) -cckr -Xs
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES = -KPIC
|
||||
ACC_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC = CC
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES =
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG =
|
||||
|
||||
####KRCC = ??
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSGI
|
||||
ARCH_DEP_LDFLAGS =
|
||||
|
||||
61
config/CONFIG.Host.solaris
Normal file
61
config/CONFIG.Host.solaris
Normal file
@@ -0,0 +1,61 @@
|
||||
# CONFIG.Host.solaris
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.solaris
|
||||
|
||||
ARCH_CLASS = solaris
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
#
|
||||
# required by sun's C++ compiler
|
||||
#
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR) $@
|
||||
|
||||
RANLIB =
|
||||
|
||||
SPARCWORKS = /opt/SUNWspro
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = $(SPARCWORKS)/bin/cc
|
||||
ACC_ANSI = $(ACC) -Xa
|
||||
ACC_STRICT = $(ACC) -Xc -v
|
||||
ACC_TRAD = $(ACC) -Xs
|
||||
ACC_DEP_CFLAGS = -KPIC -D_REENTRANT
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES =
|
||||
ACC_SHRLIB_LDFLAGS_YES = -G -h $@
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC = $(SPARCWORKS)/bin/CC
|
||||
CCC_NORMAL = $(CCC) +p
|
||||
CCC_STRICT = $(CCC) +p
|
||||
CCC_DEP_CFLAGS = -KPIC -D_REENTRANT
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = +w
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -xM1
|
||||
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSOLARIS
|
||||
# socket and nsl needed by libca.a
|
||||
ARCH_DEP_LDLIBS = -lsocket -lnsl
|
||||
|
||||
84
config/CONFIG.Host.sun4
Normal file
84
config/CONFIG.Host.sun4
Normal file
@@ -0,0 +1,84 @@
|
||||
# CONFIG.Host.sun4
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.sun4
|
||||
|
||||
ARCH_CLASS = sun4
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
#
|
||||
# required by sun's C++ compiler
|
||||
#
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR) $@
|
||||
|
||||
RANLIB = ranlib
|
||||
RANLIBFLAGS = -t
|
||||
|
||||
# Configure OS vendor C compilers
|
||||
ACC = /usr/lang/acc
|
||||
ACC_ANSI = $(ACC) -Xa
|
||||
ACC_STRICT = $(ACC) -Xc
|
||||
ACC_TRAD = $(ACC) -Xs
|
||||
ACC_WARN_YES = -vc
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES=
|
||||
ACC_SLIBS_NO=
|
||||
#ACC_OP_SYS_LDFLAGS = -L$(SPECIAL_LANG)
|
||||
ACC_SHRLIB_CFLAGS_YES = -pic
|
||||
ACC_SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
|
||||
|
||||
SUNCC = cc
|
||||
SUNCC_ANSI = echo SUNCC_ANSI not defined
|
||||
SUNCC_STRICT = echo SUNCC_STRICT not defined
|
||||
SUNCC_TRAD = $(SUNCC)
|
||||
SUNCC_WARN_YES =
|
||||
SUNCC_WARN_NO = -w
|
||||
SUNCC_OPT_YES = -O
|
||||
SUNCC_OPT_NO = -g
|
||||
SUNCC_SFLAGS_YES= -Bstatic
|
||||
SUNCC_SFLAGS_NO=
|
||||
SUNCC_SLIBS_YES=
|
||||
SUNCC_SLIBS_NO=
|
||||
SUNCC_SHRLIB_CFLAGS_YES = -pic
|
||||
SUNCC_SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CCC = /usr/lang/CC
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES =
|
||||
CCC_WARN_NO =
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = +w
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES=
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -xM1
|
||||
|
||||
GCC_ANSI += -D__USE_FIXED_PROTOTYPES__
|
||||
GCC_STRICT += -D__USE_FIXED_PROTOTYPES__
|
||||
|
||||
ACC_ARCH_DEP_LDLIBS =
|
||||
GCC_ARCH_DEP_LDLIBS = -liberty
|
||||
ARCH_DEP_LDLIBS = $($(ANSI)_ARCH_DEP_LDLIBS)
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSUNOS4
|
||||
|
||||
#SPECIAL_LANG = /usr/lang/SC3.0.1
|
||||
#SPECIAL_LANG = /usr/lang/lib
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Unix
|
||||
|
||||
GCC = gcc
|
||||
ACC = acc
|
||||
SUNCC = cc
|
||||
AR = ar
|
||||
ARFLAGS = r
|
||||
ARCMD = $(AR) $(ARFLAGS)
|
||||
RANLIB = ranlib
|
||||
RANLIBFLAGS = -t
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = g++
|
||||
CCC = CC
|
||||
MV = mv
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
|
||||
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
|
||||
ACC_STRICT_INVOKE_W_NO = $(ACC) -Xc -w
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc
|
||||
SUNCC_TRAD_INVOKE_W_NO = $(SUNCC) -w
|
||||
SUNCC_TRAD_INVOKE_W_YES = $(SUNCC)
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
|
||||
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
|
||||
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS =
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
# Static Build options
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
CC_SFLAGS_YES= -Bstatic
|
||||
CC_SFLAGS_NO=
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
|
||||
UNIX_LDLIBS = -lm
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override SUN defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.Linux
|
||||
136
config/CONFIG.LynxOS
Normal file
136
config/CONFIG.LynxOS
Normal file
@@ -0,0 +1,136 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file contains definitions for Vx builds
|
||||
|
||||
#--------------------------------------------------
|
||||
# operating system class (include/os/<os_class>)
|
||||
OS_CLASS = LynxOS
|
||||
|
||||
lynx_pc486 =YES
|
||||
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
|
||||
#--------------------------------------------------
|
||||
# vxWorks directory definitions
|
||||
|
||||
# The definitions VX_DIR, VX_GNU, GNU_DIR and GNU_LIB
|
||||
# can be overridden for specific host architectures
|
||||
# by creating a CONFIG_SITE.Vx.<host_arch> file with
|
||||
# the override definitions.
|
||||
|
||||
# Tornado directory definitions
|
||||
VX_CONFIG_DIR_YES =
|
||||
VX_INCLUDE_YES =
|
||||
VX_GNU_YES =
|
||||
VX_GNU_BIN_YES =
|
||||
VX_GNU_LIB_YES =
|
||||
|
||||
|
||||
# pre Torando directory definitions
|
||||
VX_CONFIG_DIR_NO =
|
||||
VX_INCLUDE_NO =
|
||||
VX_GNU_NO =
|
||||
VX_GNU_BIN_NO =
|
||||
|
||||
# directory definitions
|
||||
VX_DIR =
|
||||
VX_CONFIG_DIR =
|
||||
VX_INCLUDE =
|
||||
VX_GNU =
|
||||
|
||||
GNU_BIN = /usr/local/bin
|
||||
GNU_LIB = /usr/local/lib
|
||||
|
||||
#--------------------------------------------------
|
||||
# VxWorks command definitions
|
||||
|
||||
#GCC = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
#AR = $(GNU_BIN)/ar$(CMPLR_SUFFIX)
|
||||
#CPP = $(GNU_BIN)/cpp$(CMPLR_SUFFIX) -nostdinc
|
||||
#RANLIB = $(GNU_BIN)/ranlib$(CMPLR_SUFFIX)
|
||||
#LD = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
RANLIB = ranlib -t
|
||||
GCC = gcc
|
||||
CPP = cpp
|
||||
LD = ld -r
|
||||
|
||||
|
||||
#--------------------------------------------------
|
||||
# Tornado C++ crosscompiler definitions
|
||||
|
||||
#CPLUSPLUS_YES = G++
|
||||
#G++ = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
#LD_G++ = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
|
||||
#NM = $(GNU_BIN)/nm$(CMPLR_SUFFIX)
|
||||
#MUNCH = $(GNU_BIN)/munch
|
||||
|
||||
CPLUSPLUS_YES = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
|
||||
G++ = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
|
||||
LD_G++ = ld -r
|
||||
NM = nm
|
||||
|
||||
#--------------------------------------------------
|
||||
# Pre Tornado C++ crosscompiler definitions
|
||||
# These are pre tornado definitions for Hideos builds (defined for 68k only)
|
||||
|
||||
#CPLUSPLUS_NO = CCC
|
||||
#CCC = $(GNU_DIR)/bin/sun3-g++ -B$(GNU_DIR)/lib/gcc-lib/ -nostdinc -DEXPL_TEMPL
|
||||
#LD_CCC = $(GNU_DIR)/bin/sun3-ld $(OLD_ARCH_DEP_LDFLAGS) -r
|
||||
|
||||
CPLUSPLUS_NO = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
|
||||
CCC = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
|
||||
LD_CCC = ld -r
|
||||
|
||||
CCC_NORMAL = $(CCC) $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_STRICT = $(CCC) -ansi -pedantic -Wall -traditional $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_TRAD = $(CCC) -traditional $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_TEMPL_INST_FLAG = -DEXPL_TEMP
|
||||
CCC_WARN_YES = -Wall
|
||||
CCC_WARN_NO = -w
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_DEPENDS_FLAG = -pedantic -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
|
||||
CPU = i486
|
||||
OS = lynxos
|
||||
OLD_ARCH_DEP_CFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
|
||||
# --no-builtin -Wa,"-m68040" -DOS_EQ_$(OS) \
|
||||
# -DBOARD_EQ_$(BOARD) -DCPU_EQ_$(CPU) -DBOARD=$(BOARD)
|
||||
OLD_ARCH_DEP_LDFLAGS = -mposix -lc -lbsd -lnsl -lm -lposix4d9 -llynx
|
||||
# -Ur -N -T$(EPICS_BASE_BIN)/vxldscript.MRI
|
||||
|
||||
#--------------------------------------------------
|
||||
# C compiler definitions
|
||||
ANSI = gcc -ansi
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command definitions
|
||||
CPLUSPLUS = g++
|
||||
# $(CPLUSPLUS_$(TORNADO))
|
||||
LD_CXX = ld -r
|
||||
# $(LD_$(CPLUSPLUS))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_INCLUDES =
|
||||
# -I$(VX_INCLUDE)
|
||||
OP_SYS_CFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
|
||||
# -DvxWorks -DV5_vxWorks -fno-builtin
|
||||
OP_SYS_LDFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
|
||||
OP_SYS_LDLIBS = -lc -lbsd -lnsl -lm -lposix4d9 -llynx
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization flag overrides
|
||||
GCC_OPT_YES = -O
|
||||
# 2 -fstrength-reduce
|
||||
G++_OPT_YES = -O
|
||||
# 2 -fstrength-reduce
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.c = $(LD) $(LDFLAGS) -o
|
||||
LINK.cc = $(LD_CXX) $(LDFLAGS) -o
|
||||
|
||||
119
config/CONFIG.Vx
Normal file
119
config/CONFIG.Vx
Normal file
@@ -0,0 +1,119 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file contains definitions for Vx builds
|
||||
|
||||
#--------------------------------------------------
|
||||
# operating system class (include/os/<os_class>)
|
||||
OS_CLASS = vxWorks
|
||||
|
||||
#--------------------------------------------------
|
||||
# vxWorks directory definitions
|
||||
|
||||
# The definitions VX_DIR, VX_GNU, GNU_DIR and GNU_LIB
|
||||
# can be overridden for specific host architectures
|
||||
# by creating a CONFIG_SITE.Vx.<host_arch> file with
|
||||
# the override definitions.
|
||||
|
||||
# Tornado directory definitions
|
||||
VX_CONFIG_DIR_YES = $(VX_DIR)/target/config
|
||||
VX_INCLUDE_YES = $(VX_DIR)/target/h
|
||||
VX_GNU_YES = $(VX_DIR)/host/$(WIND_HOST_TYPE)
|
||||
VX_GNU_BIN_YES = $(VX_GNU)/bin
|
||||
VX_GNU_LIB_YES = $(VX_GNU)/lib
|
||||
|
||||
# pre Torando directory definitions
|
||||
VX_CONFIG_DIR_NO = $(VX_DIR)/config
|
||||
VX_INCLUDE_NO = $(VX_DIR)/h
|
||||
VX_GNU_BIN_NO = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
VX_GNU_LIB_NO = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/lib
|
||||
|
||||
# directory definitions
|
||||
VX_DIR = $(VX_DIR_$(TORNADO))
|
||||
VX_CONFIG_DIR = $(VX_CONFIG_DIR_$(TORNADO))
|
||||
VX_INCLUDE = $(VX_INCLUDE_$(TORNADO))
|
||||
VX_GNU = $(VX_GNU_$(TORNADO))
|
||||
GNU_BIN = $(VX_GNU_BIN_$(TORNADO))
|
||||
GNU_LIB = $(VX_GNU_LIB_$(TORNADO))
|
||||
|
||||
#--------------------------------------------------
|
||||
# VxWorks command definitions
|
||||
|
||||
GCC = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
AR = $(GNU_BIN)/ar$(CMPLR_SUFFIX)
|
||||
CPP = $(GNU_BIN)/cpp$(CMPLR_SUFFIX) -nostdinc
|
||||
RANLIB = $(GNU_BIN)/ranlib$(CMPLR_SUFFIX)
|
||||
LD = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
|
||||
|
||||
#--------------------------------------------------
|
||||
# Tornado C++ crosscompiler definitions
|
||||
|
||||
CPLUSPLUS_YES = G++
|
||||
G++ = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
LD_G++ = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
|
||||
NM = $(GNU_BIN)/nm$(CMPLR_SUFFIX)
|
||||
MUNCH = $(GNU_BIN)/munch
|
||||
|
||||
#--------------------------------------------------
|
||||
# Pre Tornado C++ crosscompiler definitions
|
||||
# These are pre tornado definitions for Hideos builds (defined for 68k only)
|
||||
|
||||
CPLUSPLUS_NO = CCC
|
||||
CCC = $(GNU_DIR)/bin/sun3-g++ -B$(GNU_DIR)/lib/gcc-lib/ -nostdinc -DEXPL_TEMPL
|
||||
LD_CCC = $(GNU_DIR)/bin/sun3-ld $(OLD_ARCH_DEP_LDFLAGS) -r
|
||||
|
||||
CCC_NORMAL = $(CCC) $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_STRICT = $(CCC) -ansi -pedantic -Wtraditional $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_TRAD = $(CCC) -traditional $(OLD_ARCH_DEP_CFLAGS)
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = -Wall
|
||||
CCC_WARN_NO = -w
|
||||
CCC_OPT_YES = -O2 -fstrength-reduce
|
||||
CCC_OPT_NO =
|
||||
CCC_DEPENDS_FLAG = -MM
|
||||
CPU = 68000
|
||||
OS = VXWORKS
|
||||
OLD_ARCH_DEP_CFLAGS = --no-builtin -Wa,"-m68040" -DOS_EQ_$(OS) \
|
||||
-DBOARD_EQ_$(BOARD) -DCPU_EQ_$(CPU) -DBOARD=$(BOARD)
|
||||
OLD_ARCH_DEP_LDFLAGS = -Ur -N -T$(EPICS_BASE_BIN)/vxldscript.MRI
|
||||
|
||||
#--------------------------------------------------
|
||||
# C compiler definitions
|
||||
ANSI = GCC
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command definitions
|
||||
CPLUSPLUS = $(CPLUSPLUS_$(TORNADO))
|
||||
LD_CXX = $(LD_$(CPLUSPLUS))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_INCLUDES = -I$(VX_INCLUDE)
|
||||
OP_SYS_CFLAGS = -DvxWorks -DV5_vxWorks -fno-builtin
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization flag overrides
|
||||
GCC_OPT_YES = -O2 -fstrength-reduce
|
||||
GCC_OPT_NO =
|
||||
G++_OPT_YES = -O2 -fstrength-reduce
|
||||
G++_OPT_NO =
|
||||
|
||||
OPT_CFLAGS = $($(ANSI)_OPT_$(VX_OPT))
|
||||
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$(VX_OPT))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Warning flag overrides
|
||||
GCC_WARN_YES = -Wall
|
||||
GCC_WARN_NO = -w
|
||||
G++_WARN_YES = -Wall
|
||||
G++_WARN_NO = -w
|
||||
|
||||
WARN_CFLAGS = $($(ANSI)_WARN_$(VX_WARN))
|
||||
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$(VX_WARN))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.c = $(LD) $(LDFLAGS) -o
|
||||
LINK.cc = $(LD_CXX) $(LDFLAGS) -o
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
AR = $(VX_GNU_BIN)/ar68k
|
||||
RANLIB = $(VX_GNU_BIN)/ranlib68k
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
CC = $(VX_GNU_BIN)/cc68k -B$(VX_GNU_LIB)/gcc-lib/ -nostdinc
|
||||
CXX = $(VX_GNU_BIN)/cc68k -B$(VX_GNU_LIB)/gcc-lib/ -nostdinc
|
||||
CPP = $(VX_GNU_BIN)/cpp68k -nostdinc
|
||||
#CPP = $(CC) -E
|
||||
GCC = $(CC)
|
||||
LD = $(VX_GNU_BIN)/ld68k -r
|
||||
EPICS_LDLIBS =
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
MKDIR = mkdir
|
||||
RMDIR=rm -rf
|
||||
|
||||
# special c library requirements
|
||||
SPECIAL_LANG =
|
||||
|
||||
# Compiler flags, don't mess with this
|
||||
# Optimization flags
|
||||
VX_OPT_YES = -O
|
||||
VX_OPT_NO =
|
||||
VX_OPT_FLAGS = $(VX_OPT_$(VX_OPT))
|
||||
|
||||
# Include files
|
||||
VX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/vxWorks -I$(VX_INCLUDE)
|
||||
|
||||
# Warnings
|
||||
#At some time we should turn on pedantic
|
||||
#VX_WARN_YES = -Wall -pedantic
|
||||
VX_WARN_YES = -W
|
||||
VX_WARN_NO =
|
||||
VX_WARN_FLAGS = $(VX_WARN_$(VX_WARN))
|
||||
|
||||
# Operating system flags
|
||||
VX_OP_SYS_FLAGS = -DvxWorks -DV5_vxWorks
|
||||
|
||||
# Arch dependent flags are set in CONFIG_ARCH.*
|
||||
VX_CFLAGS = $(VX_OPT_FLAGS) $(VX_WARN_FLAGS) \
|
||||
$(VX_INCLUDES) $(VX_OP_SYS_FLAGS)
|
||||
|
||||
#VX_LDFLAGS = -T$(EPICS_BASE)/src/libvxWorks/vxldscript.MRI -o
|
||||
VX_LDFLAGS = -o
|
||||
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS)
|
||||
CXXFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS)
|
||||
LDFLAGS = $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(VX_LDFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
# Build compile line here
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(LD) $(LDFLAGS)
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.cc = $(LD) $(LDFLAGS)
|
||||
|
||||
CPPSNCFLAGS = $(VX_INCLUDES)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
|
||||
DEPENDS_RULE.cc = -$(COMPILE.cc) -M $(SRCS.cc) > .DEPENDS
|
||||
|
||||
15
config/CONFIG.Vx.frc40
Normal file
15
config/CONFIG.Vx.frc40
Normal file
@@ -0,0 +1,15 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
21
config/CONFIG.Vx.frc5ce
Normal file
21
config/CONFIG.Vx.frc5ce
Normal file
@@ -0,0 +1,21 @@
|
||||
# CONFIG.Vx.frc5ce
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = sparc
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = sparc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=SPARC -DCPU_FAMILY=SPARC
|
||||
ARCH_DEP_CFLAGS =
|
||||
# Removed -O2 [24/12/96 PMM]
|
||||
OLD_ARCH_DEP_CXXFLAGS = -fno-builtin -ansi -pipe -nostdinc -DCPU=SPARC \
|
||||
-DVXWORKS -Dsigned= -Dvolatile= +V
|
||||
|
||||
# Definitions for pre Tornado c++ builds
|
||||
CCC = CENTERLINE
|
||||
CCC_NORMAL = $(VX_DIR)/bin/sun4/CCsparc
|
||||
CCC_STRICT = $(VX_DIR)/bin/sun4/CCsparc
|
||||
|
||||
20
config/CONFIG.Vx.hkbaja47
Normal file
20
config/CONFIG.Vx.hkbaja47
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = mips
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = mips
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=R4000
|
||||
ARCH_DEP_CFLAGS = -EB -mcpu=r4000 -mips3 -mgp32 -mfp32 -non_shared -G 0
|
||||
|
||||
# Arch specific flags
|
||||
GCC += -fsigned-char
|
||||
LD += -EB -X
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68030 -m68030 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68020 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68020
|
||||
|
||||
16
config/CONFIG.Vx.mv147
Normal file
16
config/CONFIG.Vx.mv147
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68030 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68030
|
||||
|
||||
15
config/CONFIG.Vx.mv1604
Normal file
15
config/CONFIG.Vx.mv1604
Normal file
@@ -0,0 +1,15 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags (TRUE=1 via LBL; needed in camessage.c)
|
||||
ARCH_DEP_CPPFLAGS = -DCPU_FAMILY=PPC -DCPU=PPC604 -D_GNU_TOOL -DTRUE=1
|
||||
ARCH_DEP_CFLAGS = -fno-for-scope
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68040 -m68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
15
config/CONFIG.Vx.mv162lc
Normal file
15
config/CONFIG.Vx.mv162lc
Normal file
@@ -0,0 +1,15 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -msoft-float
|
||||
@@ -3,15 +3,14 @@
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68020 -m68020 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
@@ -3,15 +3,14 @@
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68040 -m68040 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68060 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
16
config/CONFIG.Vx.niCpu030
Normal file
16
config/CONFIG.Vx.niCpu030
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
# CONFIG.Vx.niCpu030
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68030 -DCPU_FAMILY=MC680X0
|
||||
ARCH_DEP_CFLAGS = -m68030
|
||||
|
||||
@@ -1,91 +1,17 @@
|
||||
# $Id$
|
||||
|
||||
# CONFIG.Vx.pc486
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# OLDINSTALL def used only for releases prior to R3.12.2.2
|
||||
# Unix Compiler and other Utilities
|
||||
OLDINSTALL = echo CONFIG.Vx.486 OLDINSTALL
|
||||
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
CP=cp
|
||||
RMDIR=rm -rf
|
||||
MKDIR=mkdir
|
||||
|
||||
# overrides defines in CONFIG_SITE that don't fit Tornado
|
||||
#
|
||||
# We are lucky because
|
||||
# this should not really be site specific
|
||||
#
|
||||
# (if Tornado is installed correctly
|
||||
# -> WIND_BASE, WIND_HOST_TYPE set )
|
||||
#
|
||||
# At first we hack a little bit on WIND_BASE
|
||||
# to convert the DOS style into a Unix style path:
|
||||
#
|
||||
# If C: was in WIND_BASE, it's converted into c: (lowercase),
|
||||
# then c: is removed and all '\' are converted into '/'.
|
||||
SANE_WIND_BASE := $(subst \,/,$(subst c:,,$(subst C:,c:,$(WIND_BASE))))
|
||||
VX_DIR := $(SANE_WIND_BASE)/target
|
||||
VX_GNU := $(SANE_WIND_BASE)/host/$(WIND_HOST_TYPE)
|
||||
VX_GNU_BIN := $(VX_GNU)/bin
|
||||
VX_GNU_LIB := $(VX_GNU)/lib
|
||||
VX_IMAGE = $(VX_CONFIG_DIR)/$(T_A)/vxWorks
|
||||
VX_IMAGE_SYM = $(VX_CONFIG_DIR)/$(T_A)/vxWorks.sym
|
||||
|
||||
|
||||
AR = $(VX_GNU_BIN)/ar386
|
||||
RANLIB = $(VX_GNU_BIN)/ranlib386
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
CC = $(VX_GNU_BIN)/cc386 -B$(VX_GNU_LIB)/gcc-lib/ -nostdinc -fno-builtin -fno-defer-pop
|
||||
CPP = $(VX_GNU_BIN)/cpp386 -nostdinc
|
||||
#CPP = $(CC) -E
|
||||
GCC = $(CC)
|
||||
LD = $(VX_GNU_BIN)/ld386 -r
|
||||
EPICS_LDLIBS =
|
||||
|
||||
# special c library requirements
|
||||
SPECIAL_LANG =
|
||||
|
||||
# Compiler flags, don't mess with this
|
||||
# Optimization flags
|
||||
VX_OPT_YES = -O
|
||||
VX_OPT_NO = -O0
|
||||
VX_OPT_FLAGS = $(VX_OPT_$(VX_OPT))
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 386
|
||||
|
||||
# Include files
|
||||
VX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/vxWorks -I$(VX_INCLUDE)
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = pc486
|
||||
|
||||
# Warnings
|
||||
#At some time we should turn on pedantic
|
||||
#VX_WARN_YES = -Wall -pedantic
|
||||
VX_WARN_YES = -W
|
||||
VX_WARN_NO =
|
||||
VX_WARN_FLAGS = $(VX_WARN_$(VX_WARN))
|
||||
|
||||
# Operating system flags
|
||||
VX_OP_SYS_FLAGS = -DvxWorks -DV5_vxWorks
|
||||
|
||||
# Arch dependent flags are set in CONFIG_ARCH.*
|
||||
VX_CFLAGS = $(VX_OPT_FLAGS) $(VX_WARN_FLAGS) \
|
||||
$(VX_INCLUDES) $(VX_OP_SYS_FLAGS)
|
||||
|
||||
VX_LDFLAGS = -o
|
||||
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -DCPU_FAMILY=I80x86 -D_X86_
|
||||
ARCH_DEP_CFLAGS = -m486
|
||||
ARCH_DEP_CXXFLAGS += -x 'c++'
|
||||
ARCH_DEP_CFLAGS += -fno-builtin -fno-defer-pop
|
||||
|
||||
CFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS)
|
||||
LDFLAGS = $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(VX_LDFLAGS)
|
||||
|
||||
# Build compile line here
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CC) -x 'c++' $(CFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(LD) $(LDFLAGS)
|
||||
|
||||
CPPSNCFLAGS = $(USR_INCLUDES) $(VX_INCLUDES)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) >> .DEPENDS
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.68k
|
||||
|
||||
17
config/CONFIG.Vx.vxipc
Normal file
17
config/CONFIG.Vx.vxipc
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
# CONFIG.Vx.VXIpc
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 386
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = pc486
|
||||
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -DCPU_FAMILY=I80x86 -D_X86_
|
||||
ARCH_DEP_CFLAGS = -m486
|
||||
ARCH_DEP_CXXFLAGS += -x 'c++'
|
||||
ARCH_DEP_CFLAGS += -fno-builtin -fno-defer-pop
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
# CONFIG.WIN32 -kuk-
|
||||
#
|
||||
# The current make-system for WIN32
|
||||
# needs
|
||||
# * gnumake (OK, sources for WIN32 are available)
|
||||
# * several UNIX tools: sed, grep, ... (dito)
|
||||
# * a UNIX-like shell (ouch!)
|
||||
#
|
||||
# I found no fully operational shell and no sources for WIN32 so far,
|
||||
# Cygnus' bash e.g. cannot handle this:
|
||||
# (echo a>a; echo b>>a)
|
||||
# Right now I use the knts that I wrote and simplified scripts.
|
||||
# Jeff eliminated many shell-lines in Makefile.*,
|
||||
# the final solution could be:
|
||||
# 1) replace shell, awk, grep, sed, ... by Perl!
|
||||
# 2) use C code
|
||||
#
|
||||
|
||||
# Set this to the UNIX-like shell that you have:
|
||||
SHELL=knts
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Host (latter used to be Unix)
|
||||
BUILD_TYPE=Host
|
||||
|
||||
# to identify the general architecture class:
|
||||
# should be BSD, SYSV, WIN32, ...
|
||||
# is: WIN32, sun4, hpux, linux, ...
|
||||
#
|
||||
ARCH_CLASS=WIN32
|
||||
|
||||
|
||||
EXE=.exe
|
||||
OBJ=.obj
|
||||
|
||||
# ifdef WIN32 looks better that ifeq ($(ARCH_CLASS),WIN32) ??
|
||||
WIN32=1
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
CC = cl -nologo
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
MKDIR=mkdir
|
||||
RMDIR=rm -rf
|
||||
|
||||
# Include files
|
||||
HOST_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(ARCH_CLASS)
|
||||
|
||||
# Operating system flags (from win32.mak)
|
||||
#
|
||||
# __STDC__=0 is a real great idea of Jeff that gives us both:
|
||||
# 1) define STDC for EPICS code (pretend ANSI conformance)
|
||||
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
|
||||
# because MS uses: if __STDC__ ... disable many nice things
|
||||
#
|
||||
# -MDd : use MSVCRTD (run-time as DLL, multi-thread support)
|
||||
# this also calls for _DLL
|
||||
# -Zi : included debugging info
|
||||
#
|
||||
OP_SYS_FLAGS:=-MDd -Zi -VMG -VMV -DWIN32 -D_WIN32 -D_DEBUG -D_WINDOWS \
|
||||
-D_X86_ -D_NTSDK -D_DLL -D__STDC__=0
|
||||
|
||||
# Files and flags needed to link DLLs (used in RULES.Host)
|
||||
#
|
||||
# Strange but seems to work without: WIN32LDFLAGS should contain
|
||||
# an entry point:
|
||||
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
|
||||
DLLENTRY:=@12
|
||||
WIN32SYSTEMLIBS := user32.lib kernel32.lib wsock32.lib advapi32.lib winmm.lib
|
||||
|
||||
# yes, for MS it's I386 for 386, 486, Pentium!
|
||||
# don't mix this with VxWorks which has different BSPs for [34]86 !
|
||||
WIN32LDFLAGS := $(WIN32SYSTEMLIBS) -nologo -subsystem:windows -dll\
|
||||
-incremental:no -debug -machine:I386
|
||||
|
||||
#
|
||||
# The remaining lines are very similar to
|
||||
# all other CONFIG.xxx files.
|
||||
# This includes the GCC lines which may be removed?
|
||||
#
|
||||
|
||||
HOST_LDLIBS:=$(WIN32SYSTEMLIBS)
|
||||
ARCH_DEP_CFLAGS =
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
HOST_CFLAGS = $(HOST_SFLAGS) $(HOST_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
HOST_CXXFLAGS = $(HOST_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(HOST_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(HOST_CFLAGS)
|
||||
CXXFLAGS = $(HOST_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(HOST_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
CXX = cl
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(HOST_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(HOST_LDLIBS)
|
||||
|
||||
# Override SUN defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
|
||||
# Problem: MS Visual C++ does not recognize *.cc as C++ source,
|
||||
# we have to compile xx.cc using the flag -Tp xx.cc,
|
||||
# i.e. -Tp has to be immediately before the source file name
|
||||
# -kuk-
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -Tp
|
||||
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -Fe$@
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) -Fe$@
|
||||
|
||||
# The DEPENDS_RULE may be a script on other systems,
|
||||
# if you need different rules for .c and .cc,
|
||||
# that script has to figure out what to call.
|
||||
#
|
||||
DEPENDS_RULE = @echo no DEPENDS_RULE defined in CONFIG.WIN32
|
||||
@@ -1,120 +0,0 @@
|
||||
# CONFIG.Unix.alpha
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Unix
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
GCC = gcc
|
||||
ACC = cc -std
|
||||
TRADCC = cc -traditional
|
||||
AR = ar
|
||||
ARCMD = $(AR) $(ARFLAGS)
|
||||
RANLIB = ranlib
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = g++
|
||||
CCC = CC
|
||||
MV = mv
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC)
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC) -stdl -w
|
||||
ACC_STRICT_INVOKE_W_NO = $(ACC) -stdl
|
||||
ACC_TRAD_INVOKE_W_NO = $(ACC) -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(ACC)
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
|
||||
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
|
||||
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS =
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
# Static Build options
|
||||
ACC_SFLAGS_YES= -non_shared
|
||||
ACC_SFLAGS_NO= -call_shared
|
||||
CC_SFLAGS_YES= -non_shared
|
||||
CC_SFLAGS_NO= -call_shared
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
SPECIAL_LDFLAGS =
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
|
||||
UNIX_LDLIBS = -lm
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_OSF_SOURCE -DLITTLE_ENDIAN
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
DEPEND_RULE.c = @echo no DEPENDS_RULE.c defined in CONFIG.alpha
|
||||
DEPEND_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.alpha
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
# CONFIG.Unix.hp700
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Unix
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
GCC = gcc
|
||||
ACC = cc -Aa
|
||||
HPACC = cc -Aa
|
||||
HPCC = cc -Ac
|
||||
TRADCC = cc
|
||||
AR = ar
|
||||
ARCMD = $(AR) $(ARFLAGS)
|
||||
RANLIB = ranlib
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = g++
|
||||
CCC = CC
|
||||
MV = mv
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC)
|
||||
ACC_TRAD_INVOKE_W_NO = $(TRADCC) -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(TRADCC)
|
||||
ACC_STRICT_INVOKE_W_NO = $(ACC) -w
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC)
|
||||
HPACC_ANSI_INVOKE_W_NO = $(HPACC) -w
|
||||
HPACC_ANSI_INVOKE_W_YES = $(HPACC)
|
||||
HPCC_TRAD_INVOKE_W_NO = $(HPCC) -w
|
||||
HPCC_TRAD_INVOKE_W_YES = $(HPCC)
|
||||
HPACC_STRICT_INVOKE_W_NO = $(HPACC) -w
|
||||
HPACC_STRICT_INVOKE_W_YES = $(HPACC)
|
||||
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS =
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
# Static Build options
|
||||
ACC_SFLAGS_YES= -Wl,-a,archive
|
||||
ACC_SFLAGS_NO=
|
||||
CC_SFLAGS_YES= -Wl,-a,archive
|
||||
CC_SFLAGS_NO=
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
SPECIAL_LDFLAGS =
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
|
||||
UNIX_LDLIBS = -lm
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
ARFLAGS = rv
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
DEPENDS_RULE.c = @echo no DEPENDS_RULE.c defined in CONFIG.hp700
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.hp700
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# For Vx directories of form:
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68040 -msoft-float -DCPU_FAMILY=MC680X0
|
||||
@@ -1,16 +0,0 @@
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# For Vx directories of form:
|
||||
#
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
#
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DCPU=MC68030 -m68030 -DCPU_FAMILY=MC680X0
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
SHELL=knts
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Vx
|
||||
|
||||
# For Vx directories of form:
|
||||
#
|
||||
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
#
|
||||
# And configuration files:
|
||||
#
|
||||
# CONFIG_SITE.Vx.68k -or- CONFIG_SITE.Unix.sun4
|
||||
#
|
||||
ARCH_CLASS = pc486
|
||||
|
||||
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
|
||||
|
||||
# Architecture specific build flags
|
||||
# Defines:
|
||||
# CPU, CPU_FAMILY is used by VxWorks header files,
|
||||
# _X86_ is used in base/src/ca
|
||||
#
|
||||
# -g is for debugging information, I didn't know where elso to put it
|
||||
#
|
||||
ARCH_DEP_CFLAGS = -DCPU=I80486 -m486 -DCPU_FAMILY=I80x86 -D_X86_ -g
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Unix
|
||||
BUILD_TYPE = Unix
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
GCC = cc
|
||||
ACC = cc
|
||||
KRCC = cc -cckr
|
||||
AR = ar
|
||||
ARCMD = $(AR) $(ARFLAGS)
|
||||
ARFLAGS = r
|
||||
RANLIB = ls
|
||||
RANLIBFLAGS =
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = g++
|
||||
CCC = CC
|
||||
MV = mv
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -xansi -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC) -xansi
|
||||
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -xansi -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs -xansi
|
||||
KRCC_TRAD_INVOKE_W_NO = $(KRCC) -w
|
||||
KRCC_TRAD_INVOKE_W_YES = $(KRCC)
|
||||
ACC_STRICT_INVOKE_W_NO = $(ACC) -ansi -w
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC) -ansi
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
|
||||
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
|
||||
C_OLD = $(KRCC_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS =
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
|
||||
# Static Build options
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
CC_SFLAGS_YES= -Bstatic
|
||||
CC_SFLAGS_NO=
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
|
||||
UNIX_LDLIBS = -lm
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSGI
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LOAD.c = ld -shared $(LDFLAGS)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.sgi
|
||||
@@ -1,164 +0,0 @@
|
||||
#
|
||||
# $Id$: CONFIG.Unix.solaris,v $
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Host
|
||||
BUILD_TYPE = Host
|
||||
|
||||
ARCH_CLASS = solaris
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
GCC = /opt/gnu/bin/gcc
|
||||
ACC = $(SPARCWORKS)/bin/cc
|
||||
# SUNCC doesn't exist under Solaris
|
||||
|
||||
#
|
||||
# required by sun's C++ compiler
|
||||
#
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR)
|
||||
|
||||
RANLIB =
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = /opt/gnu/bin/g++
|
||||
CCC = /opt/SUNWspro/bin/CC
|
||||
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
CP=cp
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
MKDIR=mkdir
|
||||
RMDIR=rm -rf
|
||||
EXE=
|
||||
OBJ=.o
|
||||
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc -v
|
||||
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
|
||||
ACC_LD_FLAGS =
|
||||
ACC_LD_LIBS =
|
||||
SUNCC_TRAD_INVOKE_W_NO = $(ACC_TRAD_INVOKE_W_NO)
|
||||
SUNCC_TRAD_INVOKE_W_YES = $(ACC_TRAD_INVOKE_W_YES)
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
GCC_LD_LIBS =
|
||||
GCC_LD_FLAGS =
|
||||
|
||||
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
LD_LIBS_OLD = $($(STANDARD)_LD_LIBS)
|
||||
LD_LIBS_ANSI = $($(ANSI)_LD_LIBS)
|
||||
LD_LIBS_STRICT = $($(ANSI)_LD_LIBS)
|
||||
CCOMPILER_LDLIBS = $(LD_LIBS_$(CMPLR))
|
||||
LD_FLAGS_OLD = $($(STANDARD)_LD_FLAGS)
|
||||
LD_FLAGS_ANSI = $($(ANSI)_LD_FLAGS)
|
||||
LD_FLAGS_STRICT = $($(ANSI)_LD_FLAGS)
|
||||
CCOMPILER_LDFLAGS = $(LD_FLAGS_$(CMPLR))
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS = -L$(SPECIAL_LANG)
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
# Static Build options
|
||||
#ACC_SFLAGS_YES= -dn
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SFLAGS_NO=
|
||||
CC_SFLAGS_YES= -dn
|
||||
CC_SFLAGS_NO=
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
SL_OLD = $($(STANDARD)_SLIBS_$(STATIC_BUILD))
|
||||
SL_ANSI = $($(ANSI)_SLIBS_$(STATIC_BUILD))
|
||||
SL_STRICT = $(SL_ANSI)
|
||||
UNIX_SLIBS = $(SL_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB) $(CCOMPILER_LDFLAGS)
|
||||
UNIX_LDLIBS = $(UNIX_SLIBS) -lm $(CCOMPILER_LDLIBS)
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CFLAGS = -DSOLARIS
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
ARCH_DEP_LDLIBS = -lsocket -lnsl
|
||||
# -lsocket needed by libca.a
|
||||
# -lnsl needed by libca.a
|
||||
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override SUN defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
# Unlike the 'Unix' makesystem, output flags -o .. are now part of LINK.c[c]
|
||||
LINK.c = $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -xM $(SRCS.c) > .DEPENDS
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.solaris
|
||||
@@ -1,161 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# BUILD_TYPE
|
||||
# Currently either Vx or Host
|
||||
|
||||
BUILD_TYPE = Host
|
||||
|
||||
ARCH_CLASS=sun4
|
||||
|
||||
# Compiler and utility invocation (supply path to compiler here)
|
||||
# (with warning flags built in)
|
||||
# Paths to compilers
|
||||
GCC = gcc
|
||||
ACC = /usr/lang/acc
|
||||
SUNCC = cc
|
||||
RANLIB = ranlib
|
||||
RANLIBFLAGS = -t
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
G++ = g++
|
||||
CCC = /usr/lang/CC
|
||||
|
||||
RMDIR = rm -rf
|
||||
MKDIR = mkdir
|
||||
CP=cp
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
EXE=
|
||||
OBJ=.o
|
||||
|
||||
#
|
||||
# original before use of sun C++
|
||||
#
|
||||
|
||||
#
|
||||
# required by sun's C++ compiler
|
||||
#
|
||||
ARFLAGS = r
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR)
|
||||
|
||||
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
|
||||
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
|
||||
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
|
||||
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
|
||||
ACC_STRICT_INVOKE_W_NO = $(ACC) -Xc -w
|
||||
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc -vc
|
||||
ACC_LD_FLAGS = -L$(SPECIAL_LANG)
|
||||
ACC_LD_LIBS =
|
||||
SUNCC_TRAD_INVOKE_W_NO = $(SUNCC) -w
|
||||
SUNCC_TRAD_INVOKE_W_YES = $(SUNCC)
|
||||
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w -D__USE_FIXED_PROTOTYPES__
|
||||
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi -D__USE_FIXED_PROTOTYPES__
|
||||
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic -D__USE_FIXED_PROTOTYPES__
|
||||
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic -D__USE_FIXED_PROTOTYPES__
|
||||
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
|
||||
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
|
||||
GCC_LD_LIBS = -liberty
|
||||
GCC_LD_FLAGS =
|
||||
|
||||
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
|
||||
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
|
||||
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
|
||||
CC = $(C_$(CMPLR))
|
||||
|
||||
LD_LIBS_OLD = $($(STANDARD)_LD_LIBS)
|
||||
LD_LIBS_ANSI = $($(ANSI)_LD_LIBS)
|
||||
LD_LIBS_STRICT = $($(ANSI)_LD_LIBS)
|
||||
CCOMPILER_LDLIBS = $(LD_LIBS_$(CMPLR))
|
||||
LD_FLAGS_OLD = $($(STANDARD)_LD_FLAGS)
|
||||
LD_FLAGS_ANSI = $($(ANSI)_LD_FLAGS)
|
||||
LD_FLAGS_STRICT = $($(ANSI)_LD_FLAGS)
|
||||
CCOMPILER_LDFLAGS = $(LD_FLAGS_$(CMPLR))
|
||||
|
||||
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
|
||||
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
|
||||
CCC_LD_FLAGS = -L$(SPECIAL_LANG)
|
||||
CCC_LD_LIBS =
|
||||
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
|
||||
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
|
||||
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
|
||||
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
|
||||
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
|
||||
|
||||
# GNU make likes CXX instead of CCC
|
||||
CXX = $(CXX_$(CXXCMPLR))
|
||||
|
||||
|
||||
# Static Build options
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
CC_SFLAGS_YES= -Bstatic
|
||||
CC_SFLAGS_NO=
|
||||
GCC_SFLAGS_YES= -static
|
||||
GCC_SFLAGS_NO=
|
||||
|
||||
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
SF_STRICT = $(SF_ANSI)
|
||||
UNIX_SFLAGS = $(SF_$(CMPLR))
|
||||
|
||||
# Optimization
|
||||
OPTIM_YES = -O
|
||||
OPTIM_NO =
|
||||
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
|
||||
|
||||
# Include files
|
||||
UNIX_INCLUDES = -I. -I.. $(USR_INCLUDES) -I$(EPICS_BASE_INCLUDE) \
|
||||
-I$(EPICS_BASE_INCLUDE)/os/$(T_A)
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_FLAGS = -DUNIX
|
||||
|
||||
|
||||
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB) $(CCOMPILER_LDFLAGS)
|
||||
|
||||
UNIX_LDLIBS = -lm $(CCOMPILER_LDLIBS)
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSUNOS4
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
|
||||
|
||||
UNIX_CXXFLAGS = $(UNIX_CFLAGS)
|
||||
|
||||
# Target specific flags
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
|
||||
CXXFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(UNIX_CXXFLAGS)
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
|
||||
|
||||
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
|
||||
|
||||
# Override SUN defaults
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
|
||||
# changed from 'Unix' makesystem:
|
||||
# link command now contains the output flag '-o $@'
|
||||
LINK.c = $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
|
||||
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.sun4
|
||||
@@ -8,43 +8,54 @@
|
||||
# for c++ build add the dirs gdd and cas after ca
|
||||
# (and uncomment the c++ files in src/lbCom/Makefile.Unix)
|
||||
#
|
||||
DIRS = \
|
||||
tools \
|
||||
include \
|
||||
cxxTemplates \
|
||||
toolsComm\
|
||||
libCom \
|
||||
libvxWorks\
|
||||
cvtDctsdr \
|
||||
dbStatic \
|
||||
db \
|
||||
bpt \
|
||||
ca \
|
||||
util \
|
||||
misc \
|
||||
sequencer \
|
||||
dbtools \
|
||||
rsrv\
|
||||
rec\
|
||||
as \
|
||||
drv\
|
||||
dev\
|
||||
devOpt\
|
||||
iocCore
|
||||
DIRS = tools
|
||||
DIRS += include
|
||||
DIRS += cxxTemplates
|
||||
DIRS += toolsComm
|
||||
DIRS += makeBaseApp
|
||||
DIRS += libCom
|
||||
DIRS += libvxWorks
|
||||
DIRS += cvtDctsdr
|
||||
DIRS += dbStatic
|
||||
DIRS += db
|
||||
DIRS += bpt
|
||||
DIRS += ca
|
||||
DIRS += util
|
||||
DIRS += misc
|
||||
DIRS += sequencer
|
||||
DIRS += dbtools
|
||||
DIRS += rsrv
|
||||
DIRS += rec
|
||||
DIRS += as
|
||||
DIRS += drv
|
||||
DIRS += dev
|
||||
DIRS += devOpt
|
||||
DIRS += iocCore
|
||||
|
||||
#
|
||||
# if CPLUSPLUS isnt empty then include C++ src codes
|
||||
#
|
||||
DIRS += $(patsubst %,gdd,$(strip $(CPLUSPLUS)))
|
||||
DIRS += $(patsubst %,cas,$(strip $(CPLUSPLUS)))
|
||||
|
||||
EPICS_BASE = $(TOP)
|
||||
|
||||
# EPICS include config file
|
||||
include $(EPICS_BASE)/config/CONFIG
|
||||
|
||||
ifdef INSTALL_LOCATION_BASE
|
||||
INSTALL_LOCATION = $(INSTALL_LOCATION_BASE)
|
||||
endif
|
||||
|
||||
EPICS_BASE = $(INSTALL_LOCATION)
|
||||
|
||||
#
|
||||
# this speeds up the build by turning off implicit rules search
|
||||
#
|
||||
.PHONY:: $(EPICS_BASE)/config/CONFIG
|
||||
.PHONY:: $(EPICS_BASE)/config/CONFIG.* $(EPICS_BASE)/config/CONFIG_*
|
||||
.PHONY:: $(EPICS_BASE)/config/RULES.* $(EPICS_BASE)/config/RULES_* .DEPENDS
|
||||
.PHONY:: $(HOME)/.EPICS_CONFIG $(HOME)/.EPICS_CONFIG.$(HOST_ARCH)
|
||||
# for EPICS Makefiles (which are not created from other files)
|
||||
.PHONY:: $(TOP)/config/CONFIG
|
||||
.PHONY:: $(TOP)/config/CONFIG.* $(TOP)/config/CONFIG_*
|
||||
.PHONY:: $(TOP)/config/RULES.* $(TOP)/config/RULES_* DEPENDS
|
||||
.PHONY:: $(HOME)/EPICS_CONFIG $(HOME)/EPICS_CONFIG.$(HOST_ARCH)
|
||||
.PHONY:: ../Makefile.Vx ../Makefile.Unix ../Makefile.Host Makefile
|
||||
|
||||
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
EPICS_VERSION=3
|
||||
EPICS_REVISION=13
|
||||
EPICS_MODIFICATION=0
|
||||
EPICS_UPDATE_NAME=beta
|
||||
EPICS_UPDATE_LEVEL=5
|
||||
EPICS_MODIFICATION=1
|
||||
EPICS_UPDATE_NAME=
|
||||
EPICS_UPDATE_LEVEL=1
|
||||
|
||||
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}"
|
||||
|
||||
|
||||
@@ -9,15 +9,15 @@
|
||||
|
||||
# Common Configuration Information
|
||||
|
||||
BUILD_ARCHS=$(HOST_ARCH)
|
||||
ifndef CROSS_COMPILER_HOST_ARCHS
|
||||
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
|
||||
else
|
||||
ifeq ($(HOST_ARCH),$(findstring $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))
|
||||
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# CROSS1 will be defined only when CROSS_COMPILER_HOST_ARCHS is NOT defined
|
||||
CROSS1 = $(CROSS_COMPILER_TARGET_ARCHS$(word 1,$(CROSS_COMPILER_HOST_ARCHS)))
|
||||
|
||||
# CROSS2 will be defined only when CROSS_COMPILER_HOST_ARCHS is defined
|
||||
# and HOST_ARCH is one of it's words
|
||||
CROSS2 = $(CROSS_COMPILER_TARGET_ARCHS$(filter-out 1,$(words $(filter $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))))
|
||||
|
||||
BUILD_ARCHS = $(HOST_ARCH) $(CROSS1) $(CROSS2)
|
||||
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
|
||||
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
|
||||
@@ -25,37 +25,39 @@ INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin
|
||||
|
||||
INSTALL_INCLUDE = $(INSTALL_LOCATION)/include
|
||||
INSTALL_DOC = $(INSTALL_LOCATION)/doc
|
||||
INSTALL_HTML = $(INSTALL_LOCATION)/html
|
||||
INSTALL_MAN = $(INSTALL_LOCATION)/man
|
||||
INSTALL_TEMPLATES = $(INSTALL_LOCATION)/templates
|
||||
INSTALL_DBD = $(INSTALL_LOCATION)/dbd
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/config
|
||||
|
||||
EPICS_BASE_INCLUDE = $(EPICS_BASE)/include
|
||||
EPICS_BASE_DBD = $(EPICS_BASE)/dbd
|
||||
|
||||
EPICS_EXTENSIONS_INCLUDE = $(EPICS_EXTENSIONS)/include
|
||||
EPICS_EXTENSIONS_TEMPLATES = $(EPICS_EXTENSIONS)/templates
|
||||
|
||||
DIVIDER = .
|
||||
OBJ = .
|
||||
RES = .
|
||||
|
||||
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(HOST_ARCH)
|
||||
|
||||
|
||||
# private versions of lex/yacc from EPICS
|
||||
EYACC = $(EPICS_BASE)/bin/$(HOST_ARCH)/antelope
|
||||
ELEX = $(EPICS_BASE)/bin/$(HOST_ARCH)/e_flex -S$(EPICS_BASE_INCLUDE)/flex.skel.static
|
||||
EYACC = $(EPICS_BASE_HOST_BIN)/antelope$(EXE)
|
||||
ELEX = $(EPICS_BASE_HOST_BIN)/e_flex$(EXE) -S$(EPICS_BASE_INCLUDE)/flex.skel.static
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
|
||||
# Default for perl if it's on the PATH,
|
||||
# otherwise override this in CONFIG_SITE_HOST_ARCH.<host_arch>
|
||||
PERL=perl
|
||||
|
||||
# install from EPICS
|
||||
INSTALL = $(EPICS_BASE)/bin/$(HOST_ARCH)/installEpics
|
||||
INSTALL = $(PERL) $(EPICS_BASE_HOST_BIN)/installEpics.pl
|
||||
INSTALL_PRODUCT = $(INSTALL)
|
||||
|
||||
# dbtools from EPICS
|
||||
|
||||
# state notation language compiler (installed from base/src/sequencer)
|
||||
SNC = $(EPICS_BASE)/bin/$(HOST_ARCH)/snc
|
||||
|
||||
# vxWorks definitions
|
||||
VX_CONFIG_DIR = $(VX_DIR)/config
|
||||
VX_INCLUDE = $(VX_DIR)/h
|
||||
VX_GNU_BIN = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/bin
|
||||
VX_GNU_LIB = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/lib
|
||||
SNC = $(EPICS_BASE_HOST_BIN)/snc$(EXE)
|
||||
|
||||
ifdef T_A
|
||||
|
||||
@@ -66,15 +68,161 @@ INSTALL_BIN = $(INSTALL_LOCATION_BIN)/$(T_A)
|
||||
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
|
||||
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
|
||||
|
||||
EPICS_EXTENSIONS_LIB = $(EPICS_EXTENSIONS)/lib/$(T_A)
|
||||
EPICS_EXTENSIONS_BIN = $(EPICS_EXTENSIONS)/bin/$(T_A)
|
||||
#--------------------------------------------------
|
||||
# GNU compiler defaults
|
||||
|
||||
VX_IMAGE = $(VX_CONFIG_DIR)/$(T_A)/vxWorks
|
||||
VX_IMAGE_SYM = $(VX_CONFIG_DIR)/$(T_A)/vxWorks.sym
|
||||
GCC_ANSI = $(GCC) -ansi
|
||||
GCC_STRICT = $(GCC) -ansi -pedantic
|
||||
GCC_TRAD = $(GCC) -traditional
|
||||
GCC_WARN_YES = -Wall
|
||||
GCC_WARN_NO = -w
|
||||
GCC_OPT_YES = -O
|
||||
GCC_OPT_NO = -g
|
||||
GCC_SFLAGS_YES = -static
|
||||
GCC_SFLAGS_NO =
|
||||
GCC_SLIBS_YES =
|
||||
GCC_SLIBS_NO =
|
||||
GCC_SHRLIB_CFLAGS_YES = -fPIC
|
||||
GCC_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
# location of installed vxWorks image
|
||||
EPICS_VX_IMAGE = $(EPICS_BASE_BIN)/vxWorks
|
||||
EPICS_VX_IMAGE_SYM = $(EPICS_BASE_BIN)/vxWorks.sym
|
||||
G++_NORMAL = $(G++) -ansi -pedantic
|
||||
G++_STRICT = $(G++) -ansi -pedantic -Wtraditional
|
||||
G++_TRAD = $(G++) -traditional
|
||||
G++_TEMPL_INST_FLAG = -DEXPL_TEMPL
|
||||
G++_WARN_YES = -Wall \
|
||||
-Wmissing-prototypes -Woverloaded-virtual \
|
||||
-Wwrite-strings -Wconversion -Wstrict-prototypes\
|
||||
-Wpointer-arith -Winline
|
||||
G++_WARN_NO = -w
|
||||
G++_OPT_YES = -O
|
||||
G++_OPT_NO = -g
|
||||
G++_SFLAGS_YES = -static
|
||||
G++_SFLAGS_NO =
|
||||
G++_SLIBS_YES =
|
||||
G++_SLIBS_NO =
|
||||
G++_DEPENDS_FLAG = -MM
|
||||
G++_SHRLIB_CFLAGS_YES = -fPIC
|
||||
G++_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
#--------------------------------------------------
|
||||
# C compiler
|
||||
|
||||
CC = $($(ANSI)_$(CMPLR))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Vendor compiler dependent options
|
||||
VENDOR_DEP_CFLAGS = $($(ANSI)_DEP_CFLAGS)
|
||||
VENDOR_DEP_CXXFLAGS = $($(CPLUSPLUS)_DEP_CFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C++ compiler
|
||||
|
||||
CXX = $($(CPLUSPLUS)_$(CXXCMPLR))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Architecture dependent options (solaris,sun4,mv167,...)
|
||||
ARCH_DEP_CFLAGS =
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
ARCH_DEP_LDFLAGS =
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Operating system dependent options (Unix,Vx,WIN32...)
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_INCLUDES =
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# SOURCE* used by WIN32 only
|
||||
SOURCE_CFLAG =
|
||||
SOURCE_CXXCFLAG =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Makefile specific options
|
||||
USR_INCLUDES =
|
||||
USR_CFLAGS =
|
||||
USR_CXXFLAGS =
|
||||
USR_LDFLAGS =
|
||||
USR_LDLIBS =
|
||||
USR_CPPFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Target specific options
|
||||
TARGET_INCLUDES = $($(basename $@)_INCLUDES)
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
|
||||
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
|
||||
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
|
||||
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Depends flag
|
||||
DEPENDS_FLAG = $($(CPLUSPLUS)_DEPENDS_FLAG)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C++ template flag option
|
||||
TEMPL_INST_CXXFLAG = $($(CPLUSPLUS)_TEMPL_INST_FLAG)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Epics includes (CONFIG.Vx will override OS_CLASS)
|
||||
OS_CLASS = $(ARCH_CLASS)
|
||||
EPICS_INCLUDES = -I$(INSTALL_INCLUDE) -I$(INSTALL_INCLUDE)/os/$(OS_CLASS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Warnings flags (CONFIG.Vx will override)
|
||||
WARN_CFLAGS = $($(ANSI)_WARN_$(HOST_WARN))
|
||||
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$(HOST_WARN))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization flags (CONFIG.Vx will override)
|
||||
OPT_CFLAGS = $($(ANSI)_OPT_$(HOST_OPT))
|
||||
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$(HOST_OPT))
|
||||
OPT_LDFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Static build options
|
||||
STATIC_CFLAGS = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
|
||||
STATIC_CXXCFLAGS = $($(CPLUSPLUS)_SFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDFLAGS = $($(ANSI)_SLDFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDLIBS = $($(ANSI)_SLIBS_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# ar definition default
|
||||
ARCMD = $(AR) $(ARFLAGS) $@
|
||||
|
||||
#--------------------------------------------------
|
||||
# depends definition
|
||||
DEPENDS_RULE = -$(COMPILE.cc) $(DEPENDS_FLAG) $^ > DEPENDS
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
# Include files
|
||||
|
||||
INCLUDES = -I. -I.. $(USR_INCLUDES) $(TARGET_INCLUDES) $(EPICS_INCLUDES) $(OP_SYS_INCLUDES)
|
||||
|
||||
CFLAGS = $(OPT_CFLAGS) $(DEBUG_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
|
||||
$(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VENDOR_DEP_CFLAGS) $(STATIC_CFLAGS)\
|
||||
$(OP_SYS_CFLAGS) $(INCLUDES)
|
||||
|
||||
CXXFLAGS = $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
|
||||
$(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(VENDOR_DEP_CXXFLAGS) $(STATIC_CXXCFLAGS)\
|
||||
$(OP_SYS_CFLAGS) $(TEMPL_INST_CXXFLAG) $(INCLUDES)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS)\
|
||||
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS)
|
||||
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS)\
|
||||
$(STATIC_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
|
||||
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)
|
||||
|
||||
CPPSNCFLAGS = $(INCLUDES)
|
||||
|
||||
# Build compile line here
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c $(SOURCE_FLAG)
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(SOURCE_CXXFLAG)
|
||||
|
||||
endif
|
||||
|
||||
|
||||
@@ -10,19 +10,28 @@
|
||||
# not allowed around the '=' signs or in unquoted values.
|
||||
# Makefile variables are not defined here.
|
||||
#
|
||||
# Note: This file is read by base/src/libCom/bldEnvdata.pl,
|
||||
# so the variable definitions in here should be kept 'simple':
|
||||
# VAR=VALUE
|
||||
# each one on a single line.
|
||||
#
|
||||
|
||||
|
||||
# Default environment settings
|
||||
|
||||
# Channel Access:
|
||||
# EPICS_CA_ADDR_LIST augment beacon/search dest ip addr list
|
||||
# EPICS_CA_ADDR_LIST
|
||||
# Augment beacon/search dest ip addr list
|
||||
# from white space separated ip addresses in this
|
||||
# environment variable. "Quote" if more than one addr.
|
||||
# EPICS_CA_AUTO_ADDR_LIST YES = augment beacon/search dest ip
|
||||
# EPICS_CA_AUTO_ADDR_LIST
|
||||
# YES = augment beacon/search dest ip
|
||||
# addr list from network interfaces found; NO = only use
|
||||
# EPICS_CA_ADDR_LIST to create this list.
|
||||
# EPICS_CA_CONN_TMO sec before sending echo request from client.
|
||||
# EPICS_CA_CONN_TMO
|
||||
# after not seeing a server beacon for this number
|
||||
# of seconds the clients will send an echo request over
|
||||
# tcp/ip to verify the connection.
|
||||
# EPICS_CA_REPEATER_PORT CA repeater port number.
|
||||
# EPICS_CA_SERVER_PORT CA server port number.
|
||||
|
||||
@@ -35,23 +44,73 @@ EPICS_CA_SERVER_PORT=5064
|
||||
#
|
||||
# These parameters are only used by the CA server library
|
||||
#
|
||||
# EPICS_CA_BEACON_PERIOD quiescent sec between server beacons.
|
||||
# EPICS_CA_BEACON_PERIOD
|
||||
# quiescent sec between server beacons.
|
||||
# EPICS_CAS_INTF_ADDR_LIST - list of IP addresses identifying
|
||||
# a limited set of interfaces that the server should bind to.
|
||||
# If this parameter is empty then connections are accepted
|
||||
# from any interface. Beacons are sent only to the broadcast
|
||||
# address of each interface in this list (or the destination
|
||||
# address of point to point interfaces) if EPICS_CA_AUTO_ADDR_LIST
|
||||
# is YES. Type "ifconfig -a" in order to determine which
|
||||
# interfaces are available.
|
||||
# a limited set of network interfaces for server communication.
|
||||
# Specifically, this parameter specifies the interfaces from
|
||||
# which the server will accept TCP/IP connections. It also
|
||||
# specifies that UDP search messages addressed to both
|
||||
# the IP addresses in EPICS_CAS_INTF_ADDR_LIST and also
|
||||
# the broadcast addresses (or the destination addresses of
|
||||
# point to point interfaces) of the corresponding interfaces
|
||||
# will be accepted by the server. If this parameter is empty
|
||||
# then TCP/IP connections are accepted from any interface
|
||||
# (and any search messages addressed to the host are accepted).
|
||||
# Beacons are sent only to the broadcast address of each interface
|
||||
# in this list (or the destination address of point to point
|
||||
# interfaces) if EPICS_CA_AUTO_ADDR_LIST is YES.
|
||||
# Type "ifconfig -a" in order to determine which interfaces
|
||||
# are available.
|
||||
# EPICS_CAS_BEACON_ADDR_LIST - If this parameter is specified
|
||||
# or if EPICS_CAS_INTF_ADDR_LIST isnt empty then this parameter
|
||||
# is used instead of EPICS_CA_ADDR_LIST by the server library
|
||||
# to augment the list of addresses to send beacons to.
|
||||
# EPICS_CAS_SERVER_PORT - If this parameter is specified then it
|
||||
# and not EPICS_CA_SERVER_PORT is used to determine the server's
|
||||
# port number.
|
||||
# port number. It is possible to have multiple servers on the
|
||||
# same host on the same EPICS_CAS_SERVER_PORT port if the IP
|
||||
# kernel is modern (if it has multicast enhancements). In this
|
||||
# situation all servers will share the same user specified
|
||||
# UDP port number and will be assigned unique TCP port numbers.
|
||||
# The fact that the servers may not be using the user specified
|
||||
# port number for TCP will be completely transparent to EPICS
|
||||
# 3.13 or higher clients that will be locating the servers
|
||||
# using the user specified UDP port number, but will be connecting to
|
||||
# the servers using whatever TCP port has been assigned.
|
||||
#
|
||||
# If experiencing trouble getting clients to connect
|
||||
# --------------------------------------------------
|
||||
#
|
||||
# o Make sure that the broadcast addresses are identical on the
|
||||
# server's host and on the client's host. This can be checked with
|
||||
# "netstat -i" or "ifconfig -a".
|
||||
#
|
||||
# o Make sure that the client and server are using the same UDP
|
||||
# port. Check the server's port by running "netstat -a | grep nnn"
|
||||
# where nnn is the port number involved. If you do not set
|
||||
# EPICS_CA_SERVER_PORT or EPICS_CAS_SERVER_PORT
|
||||
# then the default port will be 5064.
|
||||
#
|
||||
# o Two servers can run on the same host with the same server port number
|
||||
# if the following restrictions are understood (good luck). If the host has a
|
||||
# modern IP kernel it is possible to have two servers on the same UDP port.
|
||||
# It is not possible for two servers to run on the same host using the same
|
||||
# TCP IP server port. If the CA server library detects that a 2nd server is attempting
|
||||
# to start on the same port as an existing CA server then both servers will use the
|
||||
# same UDP port if it is a modern IP kernel, and the 2nd server will
|
||||
# be allocated a new TCP port. In this situation the clients will still be
|
||||
# configured to use the same port number for both servers. The clients
|
||||
# will find the 2nd server via the shared UDP port, and transparently
|
||||
# connect to the 2nd server's allocated TCP port. Be aware that If there are
|
||||
# two server's running on the same host on the same UDP port then they will
|
||||
# both receive all UDP search requests sent as broadcasts, but will unfortunately (due to
|
||||
# what I consider to be a real weakness of most IP kernel implementations) only one
|
||||
# of the servers will typically receive UDP search requests sent to unicast addresses (i.e.
|
||||
# a specific host's ip address).
|
||||
#
|
||||
|
||||
|
||||
EPICS_CA_BEACON_PERIOD=15.0
|
||||
EPICS_CAS_INTF_ADDR_LIST=""
|
||||
EPICS_CAS_BEACON_ADDR_LIST=""
|
||||
@@ -59,11 +118,9 @@ EPICS_CAS_SERVER_PORT=
|
||||
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_PORT Log server port number.
|
||||
|
||||
# EPICS_IOC_LOG_PORT Log server port number etc.
|
||||
EPICS_IOC_LOG_PORT=7004
|
||||
|
||||
|
||||
# Other services:
|
||||
|
||||
EPICS_CMD_PROTO_PORT=
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.Linux
Normal file
9
config/CONFIG_HOST_ARCH.Linux
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.Linux
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = Linux
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.LynxOS
Normal file
9
config/CONFIG_HOST_ARCH.LynxOS
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.LynxOS
|
||||
#
|
||||
# Override values in CONFIG.LynxOS
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = LynxOS
|
||||
|
||||
12
config/CONFIG_HOST_ARCH.UnixCommon
Normal file
12
config/CONFIG_HOST_ARCH.UnixCommon
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
# CONFIG_HOST_ARCH.UnixCommon
|
||||
#
|
||||
|
||||
# Unix command definitions
|
||||
CP = cp
|
||||
MV = mv
|
||||
RM = rm -f
|
||||
MKDIR = mkdir
|
||||
RMDIR = rm -rf
|
||||
CHMOD = "/bin/chmod"
|
||||
|
||||
18
config/CONFIG_HOST_ARCH.WIN32
Normal file
18
config/CONFIG_HOST_ARCH.WIN32
Normal file
@@ -0,0 +1,18 @@
|
||||
# CONFIG_HOST_ARCH.WIN32
|
||||
#
|
||||
|
||||
EXE=.exe
|
||||
|
||||
CP =$(PERL) $(EPICS_BASE_HOST_BIN)/cp.pl
|
||||
MV =$(PERL) $(EPICS_BASE_HOST_BIN)/mv.pl
|
||||
RM =$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -f
|
||||
MKDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/mkdir.pl
|
||||
RMDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -rf
|
||||
CHMOD=echo
|
||||
ECHO=echo
|
||||
|
||||
WIND_HOST_TYPE = x86-win32
|
||||
|
||||
# Use std path variables from ms
|
||||
HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.alpha
Normal file
9
config/CONFIG_HOST_ARCH.alpha
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.alpha
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = alpha
|
||||
|
||||
13
config/CONFIG_HOST_ARCH.cygwin32
Normal file
13
config/CONFIG_HOST_ARCH.cygwin32
Normal file
@@ -0,0 +1,13 @@
|
||||
# CONFIG_HOST_ARCH.cygwin32
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
EXE=.exe
|
||||
|
||||
TORNADO=YES
|
||||
|
||||
WIND_HOST_TYPE = cygwin32
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.hp700
Normal file
9
config/CONFIG_HOST_ARCH.hp700
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.hp700
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = hp700
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.sgi
Normal file
9
config/CONFIG_HOST_ARCH.sgi
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.sgi
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = sgi
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.solaris
Normal file
9
config/CONFIG_HOST_ARCH.solaris
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.solaris
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = sun4-solaris2
|
||||
|
||||
14
config/CONFIG_HOST_ARCH.sun4
Normal file
14
config/CONFIG_HOST_ARCH.sun4
Normal file
@@ -0,0 +1,14 @@
|
||||
# CONFIG_HOST_ARCH.sun4
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = sun4-sunos4
|
||||
|
||||
##########################
|
||||
# added temporarily because gdd will not compile - 2/18/98
|
||||
CPLUSPLUS =
|
||||
##########################
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
# sgi
|
||||
# Linux
|
||||
# WIN32
|
||||
# LynxOS
|
||||
#
|
||||
# HOST_ARCH now an environment variable
|
||||
# HOST_ARCH=$(shell /usr/local/epics/startup/HostArch)
|
||||
@@ -37,8 +38,11 @@ endif
|
||||
# hkv2f
|
||||
# niCpu030
|
||||
# pc486
|
||||
# frc5ce
|
||||
# hkbaja47
|
||||
#
|
||||
CROSS_COMPILER_TARGET_ARCHS=mv167 mv162
|
||||
CROSS_COMPILER_TARGET_ARCHS=mv167
|
||||
|
||||
|
||||
# If only a subset of the host architectures perform
|
||||
# the build for the CROSS_COMPILER_TARGET_ARCHS
|
||||
@@ -46,44 +50,76 @@ CROSS_COMPILER_TARGET_ARCHS=mv167 mv162
|
||||
#
|
||||
#CROSS_COMPILER_HOST_ARCHS=sun4
|
||||
|
||||
# VxWorks directory
|
||||
#VX_DIR=/usr/csite/vw/5.1.1/vw
|
||||
#VX_DIR=/usr/local/vw/vxV51.mm
|
||||
#VX_DIR=/usr/local/vw/vxV52/vw
|
||||
VX_DIR=/usr/local/vw/vxV52p1/vw
|
||||
# Vx release Tornado?
|
||||
# must be either YES or NO
|
||||
TORNADO=YES
|
||||
#TORNADO=NO
|
||||
|
||||
# VxWorks directory for TORNADO=YES
|
||||
#VX_DIR_YES=c:\\Tornado
|
||||
VX_DIR_YES = /usr/local/vw/tornado101
|
||||
|
||||
#VX_GNU = $(VX_DIR)
|
||||
VX_GNU = $(VX_DIR)/../vxgccV2.2.3.1
|
||||
# VxWorks directory for TORNADO=NO
|
||||
#VX_DIR_NO=$(VW)
|
||||
#VX_DIR_NO=/usr/local/vw/vxV51.mm
|
||||
#VX_DIR_NO=/usr/local/vw/vxV52/vw
|
||||
#VX_DIR_NO=c:/Tornado/target
|
||||
VX_DIR_NO=/usr/local/vw/vxV52p1/vw
|
||||
|
||||
# Directory for TORNADO=NO gnu gcc crosscompiler
|
||||
VX_GNU_NO = $(VX_DIR_NO)/../vxgccV2.2.3.1
|
||||
|
||||
# Directory for TORNADO=NO gnu g++ crosscompiler
|
||||
# used by applications for hideos builds only
|
||||
#GNU_DIR = $(LOCAL_GNU)
|
||||
GNU_DIR = /usr/local/hideos/gnu_install-2.7.2
|
||||
|
||||
# Client ANSI Compiler
|
||||
# GCC (gcc -ansi)
|
||||
# ACC (acc)
|
||||
# HPACC (cc -Aa)
|
||||
#ANSI=HPACC
|
||||
# Client ANSI C Compiler (for Host builds)
|
||||
# GCC (gcc -ansi) GNU
|
||||
# ACC (acc) OS VENDOR
|
||||
# HPACC (cc -Aa) OTHER VENDOR
|
||||
ANSI=ACC
|
||||
|
||||
# Client Standard C Compiler choice
|
||||
# GCC (gcc -traditional)
|
||||
# ACC (acc -Xs)
|
||||
# SUNCC (cc)
|
||||
# HPCC (cc -Ac)
|
||||
#STANDARD=HPCC
|
||||
STANDARD=ACC
|
||||
|
||||
# Client C++ Compiler (Not supported yet)
|
||||
# C++ Compiler (for Host builds)
|
||||
# G++ (g++) GNU C++
|
||||
# CCC (CC) SUN C++
|
||||
#CPLUSPLUS=G++
|
||||
# CCC (CC) OS VENDOR C++
|
||||
#Note: if CPLUSPLUS is empty then C++ src codes are not built
|
||||
#CPLUSPLUS= # use this if site does not have C++ compiler
|
||||
CPLUSPLUS=CCC
|
||||
|
||||
# Default ANSI level, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=STRICT
|
||||
|
||||
# Default C++ compiler ANSI level
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
# Individual Makefiles may override
|
||||
CXXCMPLR=STRICT
|
||||
|
||||
# Build shared libraries?
|
||||
# (archive libraries will also be built)
|
||||
# must be either YES or NO
|
||||
# NOTE: CONFIG_SITE.Host.$(HOST_ARCH) files may override
|
||||
#
|
||||
# NOTE WIN32: YES results in a DLL. CONFIG_SITE.Host.WIN32
|
||||
# distribution file contains YES override
|
||||
#
|
||||
# NOTE solaris and sun4: If YES then LD_LIBRARY_PATH must
|
||||
# include fullpathname $(INSTALL_LOCATION)/lib/$(HOST_ARCH)
|
||||
# for both the base build and when invoking base executables
|
||||
SHARED_LIBRARIES=NO
|
||||
|
||||
# Build client objects statically ?
|
||||
# must be either YES or NO
|
||||
STATIC_BUILD=NO
|
||||
|
||||
# Unix Optimization
|
||||
# must be either YES or NO
|
||||
UNIX_OPT=YES
|
||||
HOST_OPT=YES
|
||||
|
||||
# VxWorks Optimization
|
||||
# must be either YES or NO
|
||||
@@ -91,12 +127,15 @@ VX_OPT=YES
|
||||
|
||||
# Generate Verbose Compiler Warnings for Unix
|
||||
# must be either YES or NO
|
||||
UNIX_WARN=YES
|
||||
HOST_WARN=YES
|
||||
|
||||
# Generate Verbose Compiler Warnings for VxWorks
|
||||
# must be either YES or NO
|
||||
VX_WARN=YES
|
||||
|
||||
# adl2dl
|
||||
ADL2DL = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/adl2dl
|
||||
|
||||
# sch2edif compiler and flags
|
||||
SCH2EDIF = sch2edif
|
||||
SCH2EDIF_PATH =
|
||||
@@ -109,3 +148,6 @@ E2DB = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/e2db
|
||||
E2DB_SYSFLAGS = -ate -d $(EPICS_EXTENSIONS)/templates/capfast/edb.def
|
||||
E2DB_FLAGS =
|
||||
|
||||
#dbst
|
||||
DBST = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/dbst
|
||||
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
|
||||
# APS overrides of definitions
|
||||
|
||||
GCC = gcc
|
||||
G++ = g++
|
||||
CC = gcc
|
||||
CCC = g++
|
||||
ACC = gcc
|
||||
PLUSPLUS = g++
|
||||
CXX = g++
|
||||
@@ -3,5 +3,6 @@
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
# APS overrides of definitions
|
||||
|
||||
GCC = /opt/gnu/bin/gcc
|
||||
G++ = /opt/gnu/bin/g++
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default SUN compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#
|
||||
# CONFIG_SITE.Unix.alpha
|
||||
#
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#
|
||||
# CONFIG_SITE.Unix.hp700
|
||||
#
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Epics defs
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
# $Log$
|
||||
# Revision 1.1.2.1 1996/11/25 20:20:22 jhill
|
||||
# installed
|
||||
#
|
||||
# -kuk-
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Revision 1.2 1994/06/28 00:02:32 bordua
|
||||
# First cut at the RULES and CONFIGS.
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default SUN compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
# Special C library requirements
|
||||
SPECIAL_LANG = /usr/lang/SC2.0.1patch
|
||||
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default SUN compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
# Unbundled C compiler stuff
|
||||
SPARCWORKS = /opt/SUNWspro
|
||||
#SPECIAL_LANG = $(SPARCWORKS)/lib
|
||||
SPECIAL_LANG = .
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Default SUN compiler, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# OLD - Standard C - Not appropriate here.
|
||||
|
||||
CMPLR=ANSI
|
||||
|
||||
# Default SUN C++ compiler, individual Makefiles will override
|
||||
# if they are coded to a higher standard.
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
CXXCMPLR=NORMAL
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
#CMPLR=STRICT
|
||||
#ANSI=GCC
|
||||
#STANDARD=GCC
|
||||
#CPLUSPLUS=G++
|
||||
|
||||
# Special C library requirements
|
||||
#SPECIAL_LANG = /usr/lang/SC3.0.1
|
||||
#SPECIAL_LANG = /usr/lang/lib
|
||||
SPECIAL_LANG = .
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
# not allowed around the '=' signs or in unquoted values.
|
||||
# Makefile variables are not defined here.
|
||||
#
|
||||
# Note: This file is read by base/src/libCom/bldEnvdata.pl,
|
||||
# so the variable definitions in here should be kept 'simple':
|
||||
# VAR=VALUE
|
||||
# each one on a single line.
|
||||
#
|
||||
|
||||
# Site-specific environment settings
|
||||
|
||||
@@ -33,8 +38,8 @@ EPICS_TS_NTP_INET=
|
||||
# path name in response to SIGHUP - the new path name will
|
||||
# replace any path name supplied in EPICS_IOC_LOG_FILE_NAME
|
||||
|
||||
EPICS_IOC_LOG_INET=164.54.8.167
|
||||
EPICS_IOC_LOG_FILE_NAME=/home/phebos1/epics/apple/log/iocLog.text
|
||||
EPICS_IOC_LOG_INET=
|
||||
EPICS_IOC_LOG_FILE_NAME=
|
||||
EPICS_IOC_LOG_FILE_COMMAND=
|
||||
EPICS_IOC_LOG_FILE_LIMIT=1000000
|
||||
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
Short Description of the "Host" (vs. "Unix") Build System
|
||||
---------------------------------------------------------
|
||||
|
||||
7-30-96 -kuk-
|
||||
questions/comments please mailto:kasemir@atdiv.lanl.gov
|
||||
|
||||
|
||||
To build EPICS on the WIN32 architecture
|
||||
the "old" make-system using Makefile.Unix in each
|
||||
subdir and RULES.Host was not suitable because
|
||||
it is too much Unix-dependent.
|
||||
|
||||
A "new" system using Makefile.Host and RULES.Host
|
||||
was used instead. This "host" system should work
|
||||
on all other architectures as well.
|
||||
The idea is that ALL architectures should be able to use
|
||||
the "host" system in future because.
|
||||
|
||||
The syntax of the 'Host' Makefiles is described
|
||||
in 'Sample.Makefile.Host'. Any suggestions for a
|
||||
better syntax (in connection whith ideas how to
|
||||
implement this in RULES.Host!) are very welcome!
|
||||
|
||||
To use it, only a few changes should be necessary:
|
||||
|
||||
A) In CONFIG.<WIN32, sun4, hp700, ... whatever you are using>:
|
||||
|
||||
1) Set
|
||||
BUILD_TYPE=Host
|
||||
instead of 'Unix'. This switches you over to using
|
||||
Makefile.Host instead of Makefile.Unix.
|
||||
|
||||
2) Set ARCH_CLASS to the correct architecture class.
|
||||
(ARCH_CLASS used to be defined in the past, right now
|
||||
it seems it's only set for VxWorks targets, not hosts).
|
||||
|
||||
ARCH_CLASS is used to define system-dependent
|
||||
CFLAGS, library contents etc. in Makefile.Host,
|
||||
so it should describe the general architecture,
|
||||
maybe
|
||||
WIN32 : this is the only one really supported in Makefile.Host by now
|
||||
BSD for sun4,
|
||||
SYSV for ??,
|
||||
|
||||
Maybe this "general arch" is not sufficient, so we will
|
||||
end up using
|
||||
ARCH_CLASS=WIN32, sun4, hp700, ....
|
||||
as it used to be.
|
||||
|
||||
3) Make sure that the following (new) macros are defined:
|
||||
|
||||
CP=cp
|
||||
MV=mv
|
||||
RM=rm -f
|
||||
MKDIR=mkdir
|
||||
RMDIR=rm -rf
|
||||
EXE=
|
||||
OBJ=.o
|
||||
|
||||
4) LINK.c and LINK.cc must now include the target-flag, e.g.:
|
||||
|
||||
LINK.c = $(CC) $(LDFLAGS) -o $@
|
||||
|
||||
because the "-o $@" is also system dependent (it's -Fe$@ for WIN32)
|
||||
|
||||
5) The bin directory for the host based epics tools
|
||||
$(EPICS)/base/bin/$(HOST_ARCH)
|
||||
must be in your PATH.
|
||||
|
||||
|
||||
B) Adjust Makefile.Host
|
||||
|
||||
If you are trying to build EPICS now, there might be errors
|
||||
because the Makefile.Host files are only tested on WIN32, yet.
|
||||
|
||||
If changes are necessare in some base/src/???/Makefile.Host,
|
||||
refer to Sample.Makefile.Host in the base/config dir.
|
||||
|
||||
|
||||
|
||||
|
||||
The current make-system for WIN32
|
||||
needs
|
||||
* gnumake (OK, sources for WIN32 are available)
|
||||
* several UNIX tools: sed, grep, ... (dito)
|
||||
* a UNIX-like shell (ouch!)
|
||||
|
||||
I found no fully operational shell and no sources for WIN32 so far,
|
||||
Cygnus' bash e.g. cannot handle this:
|
||||
(echo a>a; echo b>>a)
|
||||
Right now I use the knts that I wrote and simplified scripts.
|
||||
Jeff eliminated many shell-lines in Makefile.*,
|
||||
the final solution could be:
|
||||
1) replace shell, awk, grep, sed, ... by Perl!
|
||||
2) use C code
|
||||
|
||||
Perl looks like a real option because it's available
|
||||
for many platforms and maybe the best idea for
|
||||
'portable scripts'.
|
||||
@@ -7,45 +7,24 @@ include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_BASE_VERSION
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.WIN32
|
||||
CONFIGS += CONFIG.pc486
|
||||
CONFIGS += CONFIG.Linux
|
||||
CONFIGS += CONFIG.alpha
|
||||
CONFIGS += CONFIG.hp700
|
||||
CONFIGS += CONFIG.sgi
|
||||
CONFIGS += CONFIG.solaris
|
||||
CONFIGS += CONFIG.sun4
|
||||
CONFIGS += CONFIG.hkv2f
|
||||
CONFIGS += CONFIG.mv147
|
||||
CONFIGS += CONFIG.mv162
|
||||
CONFIGS += CONFIG.mv162lc
|
||||
CONFIGS += CONFIG.mv167
|
||||
CONFIGS += CONFIG.niCpu030
|
||||
CONFIGS += CONFIG.Host.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG.Host.UnixCommon
|
||||
CONFIGS += CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
CONFIGS += CONFIG.Vx.68k
|
||||
CONFIGS += CONFIG.Vx
|
||||
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.Vx.%)
|
||||
|
||||
CONFIGS += CONFIG_SITE
|
||||
CONFIGS += CONFIG_SITE_ENV
|
||||
|
||||
CONFIGS += CONFIG_SITE.WIN32
|
||||
CONFIGS += CONFIG_SITE.pc486
|
||||
CONFIGS += CONFIG_SITE.Linux
|
||||
CONFIGS += CONFIG_SITE.alpha
|
||||
CONFIGS += CONFIG_SITE.hp700
|
||||
CONFIGS += CONFIG_SITE.sgi
|
||||
CONFIGS += CONFIG_SITE.solaris
|
||||
CONFIGS += CONFIG_SITE.sun4
|
||||
CONFIGS += CONFIG_SITE.hkv2f
|
||||
CONFIGS += CONFIG_SITE.mv147
|
||||
CONFIGS += CONFIG_SITE.mv162lc
|
||||
CONFIGS += CONFIG_SITE.mv162
|
||||
CONFIGS += CONFIG_SITE.mv167
|
||||
CONFIGS += CONFIG_SITE.niCpu030
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
|
||||
|
||||
CONFIGS += RULES.Host
|
||||
CONFIGS += RULES.Unix
|
||||
CONFIGS += RULES.Vx
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_DIRS
|
||||
@@ -53,5 +32,3 @@ CONFIGS += RULES_TOP
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP = ../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.Vx.68k
|
||||
|
||||
CONFIGS += CONFIG_SITE
|
||||
CONFIGS += CONFIG_SITE_ENV
|
||||
|
||||
CONFIGS += $(HOST_ARCH:%=CONFIG.%)
|
||||
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.%)
|
||||
CONFIGS += $(HOST_ARCH:%=CONFIG_SITE.%)
|
||||
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG_SITE.%)
|
||||
|
||||
CONFIGS += RULES.Unix
|
||||
CONFIGS += RULES.Vx
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_DIRS
|
||||
CONFIGS += RULES_TOP
|
||||
|
||||
include $(TOP)/config/RULES.Unix
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
#RULES.Db
|
||||
SUBTOOL = $(EPICS_BASE_BIN)/subtool
|
||||
PREFIX=$(shell echo $* | sed -e 's-[0-9]--g' | sed -e 's-\.db--g')
|
||||
|
||||
install: .DEPENDS dbd $(DBFROMTEMPLATE) $(INDDBFROMTEMPLATE) $(PROD)
|
||||
|
||||
buildInstall:: install
|
||||
|
||||
inc build depends:
|
||||
|
||||
dbd:
|
||||
@if [ ! -d $(TOP)/dbd ]; then \
|
||||
mkdir $(TOP)/dbd ; \
|
||||
fi
|
||||
@if [ ! -d dbd ]; then \
|
||||
echo "ln -s $(TOP)/dbd dbd" ; \
|
||||
ln -s $(TOP)/dbd dbd ; \
|
||||
fi
|
||||
|
||||
|
||||
$(DBFROMTEMPLATE):%.db: %.template %.substitutions
|
||||
$(RM) $@
|
||||
$(SUBTOOL) $*.template $*.substitutions > $@
|
||||
|
||||
|
||||
$(INDDBFROMTEMPLATE):%.db: %.substitutions
|
||||
$(RM) $@
|
||||
$(SUBTOOL) $(PREFIX).template $*.substitutions > $@
|
||||
|
||||
.DEPENDS: Makefile
|
||||
@$(RM) $@
|
||||
@for NAME in $(INDDBFROMTEMPLATE) garbage_marty ; do \
|
||||
if [ $$NAME != garbage_marty ] ; then \
|
||||
PREFIX="`echo $$NAME | sed -e 's-[0-9]--g' | sed -e 's-\.db--g'`";\
|
||||
echo "$$NAME: $$PREFIX.template" >> $@;\
|
||||
fi ; \
|
||||
done
|
||||
|
||||
clean::
|
||||
@$(RM) dbd $(DBFROMTEMPLATE) $(INDDBFROMTEMPLATE) .DEPENDS $(PROD)
|
||||
|
||||
-include .DEPENDS
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
# $Id$
|
||||
#
|
||||
# Rules for making things specified in Makefile.Host
|
||||
@@ -27,8 +28,10 @@
|
||||
# to break several times.
|
||||
# vpath, of course, has the disadvantage that we need explicit rules
|
||||
# for scripts or similar os-specific filed which have _no_ suffix...
|
||||
vpath %.h $(USER_VPATH)
|
||||
vpath %.c $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
vpath %.cc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
vpath %.rc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
# This prevents base/src/include/*.h from being installed. Why??
|
||||
#vpath %.h ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
vpath %.h $(USER_VPATH)
|
||||
@@ -43,31 +46,33 @@ vpath %.h $(USER_VPATH)
|
||||
# this one is appended
|
||||
# 4) if you have the special case that your USR_CFLAGS_$(ARCH_CLASS) is
|
||||
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
|
||||
# USR_CFLAGS := <defines for all systems>
|
||||
# USR_CFLAGS_sun4 := -nil-
|
||||
# USR_CFLAGS_DEFAULT := <defines for most systems, not sun4>
|
||||
# USR_CFLAGS = <defines for all systems>
|
||||
# USR_CFLAGS_sun4 = -nil-
|
||||
# USR_CFLAGS_DEFAULT = <defines for most systems, not sun4>
|
||||
#
|
||||
# These rules apply to these Makefile-variables:
|
||||
# USR_CFLAGS C flags
|
||||
# USR_CXXFLAGS C++ flags
|
||||
# INC include-files to install
|
||||
# LIBSRCS source files for building library
|
||||
# PROD_LIBS libs needed by PROD
|
||||
# PROD_LIBS EPICS libs needed by PROD and TESTPROD
|
||||
# USR_LIBS NONEPICS libs needed by PROD and TESTPROD
|
||||
# SYS_PROD_LIBS system libs needed by PROD and TESTPROD
|
||||
# PROD products to build and install
|
||||
# SCRIPTS scripts to install
|
||||
#
|
||||
# Remark:
|
||||
# If you define a special INC, e.g. INC_WIN32 := getopt.h,
|
||||
# If you define a special INC, e.g. INC_WIN32 = getopt.h,
|
||||
# the source (getopt.h) has to be in os/WIN32 (or os/<your ARCH_CLASS>)
|
||||
#
|
||||
# This makes INC_$(ARCH_CLASS) slightly different from OSINC:
|
||||
# OSINC := a_file.h
|
||||
# OSINC = a_file.h
|
||||
# means that you have a special os/$(ARCH_CLASS)/a_file.h
|
||||
# for _every_ ARCH_CLASS.
|
||||
# If you use INC_$(ARCH_CLASS), you need the special include
|
||||
# only for the specified ARCH_CLASS!
|
||||
#
|
||||
ifneq (x$(USR_CFLAGS_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(USR_CFLAGS_$(ARCH_CLASS))),)
|
||||
USR_CFLAGS+=$(subst -nil-,,$(USR_CFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_CFLAGS_DEFAULT
|
||||
@@ -75,7 +80,7 @@ USR_CFLAGS+=$(USR_CFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (x$(USR_CXXFLAGS_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(ARCH_CLASS))),)
|
||||
USR_CXXFLAGS+=$(subst -nil-,,$(USR_CXXFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_DEFAULT
|
||||
@@ -83,9 +88,25 @@ USR_CXXFLAGS+=$(USR_CXXFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CPPFLAGS_$(ARCH_CLASS))),)
|
||||
USR_CPPFLAGS+=$(subst -nil-,,$(USR_CPPFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_CPPFLAGS_DEFAULT
|
||||
USR_CPPFLAGS+=$(USR_CPPFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_LDFLAGS_$(ARCH_CLASS))),)
|
||||
USR_LDFLAGS+=$(subst -nil-,,$(USR_LDFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_LDFLAGS_DEFAULT
|
||||
USR_LDFLAGS+=$(USR_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# check for special includes:
|
||||
#
|
||||
ifneq (x$(INC_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(INC_$(ARCH_CLASS))),)
|
||||
# os-specific includes go to the include/os-directory:
|
||||
OSINC += $(subst -nil-,,$(INC_$(ARCH_CLASS)))
|
||||
else
|
||||
@@ -96,7 +117,7 @@ endif
|
||||
|
||||
# concat specific library contents (if defined) to LIBCONTENS
|
||||
#
|
||||
ifneq (x$(LIBSRCS_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(LIBSRCS_$(ARCH_CLASS))),)
|
||||
LIBSRCS += $(subst -nil-,,$(LIBSRCS_$(ARCH_CLASS)))
|
||||
else
|
||||
|
||||
@@ -115,7 +136,7 @@ endif
|
||||
#
|
||||
# concat specific library contents (if defined) to PROD_LIBS
|
||||
#
|
||||
ifneq (x$(PROD_LIBS_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(PROD_LIBS_$(ARCH_CLASS))),)
|
||||
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
@@ -126,10 +147,38 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific library contents (if defined) to USR_LIBS
|
||||
#
|
||||
ifneq ($(strip $(USR_LIBS_$(ARCH_CLASS))),)
|
||||
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
|
||||
ifdef USR_LIBS_DEFAULT
|
||||
USR_LIBS += $(USR_LIBS_DEFAULT)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific library contents (if defined) to SYS_PROD_LIBS
|
||||
#
|
||||
ifneq ($(strip $(SYS_PROD_LIBS_$(ARCH_CLASS))),)
|
||||
SYS_PROD_LIBS += $(subst -nil-,,$(SYS_PROD_LIBS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
|
||||
ifdef SYS_PROD_LIBS_DEFAULT
|
||||
SYS_PROD_LIBS += $(SYS_PROD_LIBS_DEFAULT)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific products
|
||||
#
|
||||
ifneq (x$(PROD_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(PROD_$(ARCH_CLASS))),)
|
||||
PROD += $(subst -nil-,,$(PROD_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
@@ -143,7 +192,7 @@ endif
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq (x$(SCRIPTS_$(ARCH_CLASS)),x)
|
||||
ifneq ($(strip $(SCRIPTS_$(ARCH_CLASS))),)
|
||||
SCRIPTS += $(subst -nil-,,$(SCRIPTS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
@@ -154,66 +203,37 @@ endif
|
||||
|
||||
endif
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# adjust names to platform specific pre-/postfixes,
|
||||
# this is ugly (ifdef XXX...) but hopefully get's you there...
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# adjust names of libraries to build
|
||||
#
|
||||
# But: if there are no objects LIBOBJS to include
|
||||
# in this library (may be for e.g. base/src/libCompat
|
||||
# on some archs), don't define (and build) any library!
|
||||
ifdef LIBRARY
|
||||
ifdef LIBOBJS
|
||||
|
||||
ifndef WIN32
|
||||
# handle plain Unix first because it's easy: <lib> -> lib<lib>.a
|
||||
LIBNAME:=$(LIBRARY:%=lib%.a)
|
||||
|
||||
else
|
||||
# WIN32 library name:
|
||||
LIBNAME:=$(LIBRARY).lib
|
||||
# check if DLL or plain lib requested:
|
||||
ifeq ($(LIBTYPE),SHARED)
|
||||
# create name for dll, import file
|
||||
DLLNAME:=$(LIBRARY).dll
|
||||
# libs defined that we need to link the DLL with?
|
||||
DLL_DEP_LIBS:=$(DLL_LIBS:%=$(INSTALL_LIB)/%.lib)
|
||||
endif # LIBTYPE=SHARED
|
||||
endif # WIN32
|
||||
|
||||
endif
|
||||
endif # LIBRARY and LIBOBJS
|
||||
|
||||
# dito for libraries used by PROD
|
||||
# concat specific resource files
|
||||
#
|
||||
ifdef PROD_LIBS
|
||||
|
||||
ifdef WIN32
|
||||
PRODDEPLIBS:=$(PROD_LIBS:%=$(INSTALL_LIB)/%.lib)
|
||||
# add to USR_LDLIBS so that the libs are linked
|
||||
# we need the full path because there is no "-L" option on WIN32....
|
||||
USR_LDLIBS += $(PRODDEPLIBS)
|
||||
ifneq ($(strip $(RCS_$(ARCH_CLASS))),)
|
||||
RCS += $(subst -nil-,,$(RCS_$(ARCH_CLASS)))
|
||||
else
|
||||
# On Unix: library "ca" is linked with "-lca" etc.
|
||||
# A library may be just newly build in the local dir: add "-L."
|
||||
PRODDEPLIBS=$(PROD_LIBS:%=lib%.a)
|
||||
USR_LDLIBS += -L. $(PROD_LIBS:%=-l%)
|
||||
ifdef RCS_DEFAULT
|
||||
RCS += $(RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# adjust executables
|
||||
ifdef TESTPROD
|
||||
TESTPROD := $(addsuffix $(EXE), $(TESTPROD))
|
||||
endif
|
||||
|
||||
|
||||
# adjust executables
|
||||
ifdef PROD
|
||||
PROD := $(addsuffix $(EXE), $(PROD))
|
||||
endif
|
||||
|
||||
ifdef TESTPROD
|
||||
TESTPROD := $(addsuffix $(EXE), $(TESTPROD))
|
||||
#---------------------------------------------------------------
|
||||
# if we are not building base add base includes and ld dirs
|
||||
# (convenience for extensions and applications)
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# ----------------------------------------------------
|
||||
# create names (lists) for installed things
|
||||
# ----------------------------------------------------
|
||||
@@ -221,21 +241,25 @@ endif
|
||||
# each list starts with the destination directory name(s)
|
||||
# to make sure it's there
|
||||
|
||||
|
||||
INCREC +=$(RECTYPES) $(MENUS)
|
||||
|
||||
INSTALL_PROD= $(PROD:%= $(INSTALL_BIN)/%)
|
||||
|
||||
# DLLs (only defined on WIN32) are like executables:
|
||||
ifdef DLLNAME
|
||||
INSTALL_DLLS=$(DLLNAME:%=$(INSTALL_BIN)/%)
|
||||
endif
|
||||
|
||||
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
|
||||
|
||||
INSTALL_INC= $(INC:%=$(INSTALL_INCLUDE)/%)
|
||||
INSTALL_OSINCLUDE=$(INSTALL_INCLUDE)/os/$(ARCH_CLASS)
|
||||
INSTALL_OSINC= $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
|
||||
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
|
||||
MANLIST = 1 2 3 4 5 6 7 8 9
|
||||
INSTALL_MANS = $(foreach n, \
|
||||
$(MANLIST),$(INSTALL_MAN)/man$(n) $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
$(MANLIST), $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
ifdef TEMPLATES_DIR
|
||||
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
@@ -244,166 +268,299 @@ INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)
|
||||
endif
|
||||
INSTALL_TEMPLATE = $(TEMPLATES:%= $(INSTALL_TEMPLATES_SUBDIR)/%)
|
||||
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
|
||||
|
||||
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
|
||||
$(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\
|
||||
$(MENUS:%.h= $(INSTALL_DBD)/%.dbd)
|
||||
|
||||
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
|
||||
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
|
||||
|
||||
DIRECTORY_TARGETS = $(INSTALL_INCLUDE) $(INSTALL_INCLUDE)/os \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_DOC) \
|
||||
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) $(INSTALL_LIB) \
|
||||
$(INSTALL_LOCATION_LIB) $(INSTALL_CONFIG) \
|
||||
$(MAN_DIRECTORY_TARGETS) $(INSTALL_MAN) \
|
||||
$(INSTALL_TEMPLATES)
|
||||
|
||||
ifdef TEMPLATES_DIR
|
||||
DIRECTORY_TARGETS += $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
#---------------------------------------------------------------
|
||||
ifneq ($(strip $(SHARED_LIBRARIES_$(ARCH_CLASS))),)
|
||||
SHARED_LIBRARIES+=$(subst -nil-,,$(SHARED_LIBRARIES_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef SHARED_LIBRARIES_DEFAULT
|
||||
SHARED_LIBRARIES_+=$(SHARED_LIBRARIES_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# must use c++ linker if linking to shared libs with c++ code
|
||||
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
||||
ifneq ($(strip $(CPLUSPLUS)),)
|
||||
LINK.c = $(LINK.cc)
|
||||
endif # CPLUSPLUS
|
||||
endif # LIBTYPE
|
||||
|
||||
# Main target
|
||||
#---------------------------------------------------------------
|
||||
# Version number for base shared libraries (and win32 products)
|
||||
ifeq ($(EPICS_BASE),$(TOP))
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
|
||||
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
|
||||
endif # EPICS_BASE
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Libraries
|
||||
#
|
||||
# if there are no objects LIBOBJS to include
|
||||
# in this library (may be for e.g. base/src/libCompat
|
||||
# on some archs), don't define (and build) any library!
|
||||
ifdef LIBRARY
|
||||
ifdef LIBOBJS
|
||||
LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS)
|
||||
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
CXXFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
|
||||
# check if shared libraries requested
|
||||
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
||||
|
||||
PROD_VERSION =$(SHRLIB_VERSION)
|
||||
ifeq ($(findstring cc,$(suffix $(LIBSRCS))),cc)
|
||||
SHRLIB_LINKER = $(CXX)
|
||||
else
|
||||
SHRLIB_LINKER = $(CC)
|
||||
endif
|
||||
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
|
||||
|
||||
endif # SHARED_LIBRARIES=YES
|
||||
|
||||
endif # LIBOBJS
|
||||
endif # LIBRARY
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Main targets
|
||||
|
||||
all:: install
|
||||
|
||||
# Problem on WIN32:
|
||||
# There seems to be no -L switch, so we have to specify the
|
||||
# full library names (including the path).
|
||||
# OK, so we prefix all libs by $(INSTALL_LIB) to be able to link
|
||||
# with the installed libraries. This means, however, that
|
||||
# libs have to be installed _before_ we build any PROD that uses them,
|
||||
# because we cannot use them from the current O.WIN32 directory any more.
|
||||
# Example: dbExpand etc. in dbStatic all need the db library.
|
||||
#
|
||||
# Solution: place INSTALL_DLLS and _LIBS in build
|
||||
#
|
||||
build:: $(LIBNAME) $(DLLNAME) \
|
||||
$(INSTALL_LOCATION_LIB) $(INSTALL_LIB)\
|
||||
$(INSTALL_LIBS) $(INSTALL_DLLS) $(PROD) $(TESTPROD)
|
||||
build:: $(LIBTARGETS) $(PROD) $(TESTPROD) \
|
||||
$(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
|
||||
|
||||
inc:: $(INSTALL_INCLUDE) $(INSTALL_INC) \
|
||||
$(INSTALL_INCLUDE)/os $(INSTALL_OSINCLUDE) $(INSTALL_OSINC)
|
||||
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
install:: inc buildInstall
|
||||
|
||||
buildInstall :: build $(TARGETS) $(INSTALL_LOCATION_BIN) \
|
||||
$(INSTALL_BIN) $(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MAN) $(INSTALL_MANS) \
|
||||
$(INSTALL_DOC) $(INSTALL_DOCS) \
|
||||
$(INSTALL_TEMPLATES) $(INSTALL_TEMPLATES_SUBDIR) $(INSTALL_TEMPLATE) \
|
||||
$(INSTALL_CONFIG) $(INSTALL_CONFIGS)
|
||||
|
||||
depends:: $(LIBSRCS) $(SRCS)
|
||||
$(RM) .DEPENDS
|
||||
touch .DEPENDS
|
||||
ifdef DEPENDS_RULE
|
||||
$(DEPENDS_RULE)
|
||||
else
|
||||
@echo RULES.Host: You have no DEPENDS_RULE defined for $(ARCH_CLASS)
|
||||
@echo (DEPENDS_RULE should be able to handle both C and C++ files,
|
||||
@echo use a script if all else failes)
|
||||
@exit
|
||||
endif
|
||||
|
||||
buildInstall :: build $(TARGETS) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MANS) \
|
||||
$(INSTALL_DOCS) \
|
||||
$(INSTALL_HTMLS) \
|
||||
$(INSTALL_TEMPLATE) \
|
||||
$(INSTALL_CONFIGS) \
|
||||
$(INSTALL_DBS) $(INSTALL_BPTS) \
|
||||
$(INSTALL_DBDNAME) $(INSTALL_INCREC) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX)
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *$(OBJ) *.a $(PROD) $(LIBNAME) $(INC)
|
||||
@$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME) $(SHRLIBNAME) $(INC) *$(RES) $(TARGETS) \
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Products
|
||||
#
|
||||
|
||||
PROD += $(TESTPROD)
|
||||
ifdef PROD
|
||||
|
||||
COND_PROD_SRCS=$(foreach prod, $(basename $(PROD)), $($(prod)_SRCS))
|
||||
COND_PROD_RCS=$(foreach prod, $(basename $(PROD)), $($(prod)_RCS) $($(prod)_RCS_$(ARCH_CLASS)))
|
||||
COND_PROD_LIBS=$(foreach prod, $(basename $(PROD)), $($(prod)_LIBS))
|
||||
|
||||
ifdef PRODNAME
|
||||
|
||||
ifneq ($(strip $(PRODNAME_SRCS_$(ARCH_CLASS))),)
|
||||
PRODNAME_SRCS += $(subst -nil-,,$(PRODNAME_SRCS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef PRODNAME_SRCS_DEFAULT
|
||||
PRODNAME_SRCS += $(PRODNAME_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PRODNAME_RCS_$(ARCH_CLASS))),)
|
||||
PRODNAME_RCS += $(subst -nil-,,$(PRODNAME_RCS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef PRODNAME_RCS_DEFAULT
|
||||
PRODNAME_RCS += $(PRODNAME_RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(PRODNAME): $(PROD_DEPLIBS) $(PRODNAME_DEPLIBS)
|
||||
|
||||
ifdef PRODNAME_SRCS
|
||||
|
||||
ifeq ($(findstring cc,$(suffix $(PRODNAME_SRCS))),cc)
|
||||
PRODNAME_LINKER = $(LINK.cc)
|
||||
else
|
||||
PRODNAME_LINKER = $(LINK.c)
|
||||
endif
|
||||
|
||||
PRODNAME_OBJS=$(addsuffix $(OBJ), $(basename $(PRODNAME_SRCS)))
|
||||
PRODNAME_RESS=$(addsuffix $(RES), $(basename $(PRODNAME_RCS)))
|
||||
|
||||
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
|
||||
@$(RM) $@
|
||||
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
|
||||
|
||||
endif # ifdef PRODNAME_SRCS
|
||||
|
||||
else # PRODNAME not defined
|
||||
|
||||
# We have to use the product's true dependancies and
|
||||
# call make again to determine if product should be rebuilt
|
||||
|
||||
ifneq ($(strip $(SRCS) $(COND_PROD_SRCS)),)
|
||||
PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS) $(COND_PROD_SRCS)))
|
||||
|
||||
PROD_RESS=$(addsuffix $(RES), $(basename $(RCS) $(COND_PROD_RCS)))
|
||||
|
||||
PROD_MAKE_COMMAND=$(MAKE) $@\
|
||||
PRODNAME="$@"\
|
||||
PRODNAME_SRCS="$(SRCS) $($(basename $@)_SRCS)"\
|
||||
PRODNAME_SRCS_DEFAULT="$($(basename $@)_SRCS_DEFAULT)"\
|
||||
PRODNAME_SRCS_$(ARCH_CLASS)="$($(basename $@)_SRCS_$(ARCH_CLASS))"\
|
||||
PRODNAME_RCS="$(RCS) $($(basename $@)_RCS)"\
|
||||
PRODNAME_RCS_DEFAULT="$($(basename $@)_RCS_DEFAULT)"\
|
||||
PRODNAME_RCS_$(ARCH_CLASS)="$($(basename $@)_RCS_$(ARCH_CLASS))"\
|
||||
PRODNAME_LIBS="$($(basename $@)_LIBS)"
|
||||
|
||||
$(PROD): $(PROD_OBJS) $(PROD_RESS) $(PROD_DEPLIBS) $(COND_PROD_DEPLIBS)
|
||||
@$(PROD_MAKE_COMMAND)
|
||||
|
||||
endif
|
||||
endif #ifdef PRODNAME
|
||||
|
||||
endif #ifdef PROD
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Java classes and packages
|
||||
#
|
||||
|
||||
INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
|
||||
|
||||
DIRECTORY_TARGETS += $(INSTALL_JAVA)
|
||||
ifdef PACKAGE
|
||||
DIRECTORY_TARGETS += $(INSTALL_JAVA)/$(PACKAGE)
|
||||
endif
|
||||
|
||||
vpath %.class $(INSTALL_JAVA)/$(PACKAGE)
|
||||
|
||||
CLASSES += $(subst .java,.class,$(JAVA))
|
||||
TESTCLASSES += $(subst .java,.class,$(TESTJAVA))
|
||||
INSTALL_CLASSES =$(CLASSES:%=$(INSTALL_JAVA)/$(PACKAGE)/%)
|
||||
INSTALL_JAR =$(JAR:%=$(INSTALL_JAVA)/%)
|
||||
|
||||
JAR_OPTIONS = cvf
|
||||
ifdef MANIFEST
|
||||
JAR_OPTIONS = cvmf
|
||||
endif
|
||||
JAR_DEPFILES += $(wildcard $(JAR_INPUT) $(addsuffix /*,$(JAR_INPUT)))
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) $@
|
||||
|
||||
# Problem: PRODDEPLIBS may contain libm.a etc. which we cannot locate
|
||||
# But: The order in build/install should make sure that libs are
|
||||
# in place before we build PROD anyway.
|
||||
# $(PROD): $(PRODDEPLIBS)
|
||||
build:: $(TESTCLASSES) $(JAR)
|
||||
|
||||
# The order of the following dependencies is
|
||||
buildInstall :: $(DIRECTORY_TARGETS) $(INSTALL_CLASSES) $(INSTALL_JAR)
|
||||
|
||||
clean::
|
||||
@$(RM) $(TESTCLASSES) $(JAR)
|
||||
|
||||
%.class:%.java
|
||||
@echo Creating java class file $@
|
||||
$(RM) $@
|
||||
$(JAVACCMD) $<
|
||||
|
||||
$(INSTALL_JAVA)/$(PACKAGE)/%.class:%.java
|
||||
@echo Creating java class file $@
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(INSTALL_JAVA) $<
|
||||
|
||||
$(JAR):%.jar: $(JAR_DEPFILES)
|
||||
@echo Creating java jar file $@
|
||||
@$(RM) $@
|
||||
$(JARCMD)
|
||||
|
||||
$(INSTALL_JAVA)/%.jar: %.jar
|
||||
@echo "Installing jar file $@"
|
||||
$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#---------------------------------------------------------------
|
||||
# Generic Rules for 'simple' targets that
|
||||
# can be generated from a single source with same basename.
|
||||
#
|
||||
# The usual two rules .c* -> $(OBJ) and then $(OBJ) -> $(EXE)
|
||||
# do not work because the $(OBJ)->$(EXE) rule wouldn't
|
||||
# know if the original source was C or C++.
|
||||
#
|
||||
# Hint: The $(subst...) construct removes the .c or .cc
|
||||
# as well as the '../' from the filename and adds $(OBJ):
|
||||
# e.g. $< = '../abc.c' -> 'abc.o'
|
||||
#
|
||||
# The order of the following rules is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
# generic rule to build executable from same-name-object:
|
||||
# (this should be handled by the implicit rule below)
|
||||
#
|
||||
#%$(EXE): %$(OBJ)
|
||||
#ifdef WIN32
|
||||
# $(LINK.c) $< $(LDLIBS)
|
||||
#else
|
||||
# $(RM) $@
|
||||
# echo LINKING:
|
||||
# $(LINK.c) $< $(LDLIBS)
|
||||
#endif
|
||||
|
||||
# explicit list of source files given for PROD ?
|
||||
# (otherwise implicit rule .c -> $(OBJ) -> $(EXE)
|
||||
ifdef SRCS
|
||||
|
||||
ifeq ($(findstring cc,$(suffix $(SRCS))),cc)
|
||||
PROD_LINKER = $(LINK.cc)
|
||||
else
|
||||
PROD_LINKER = $(LINK.c)
|
||||
endif
|
||||
|
||||
PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS)))
|
||||
|
||||
$(PROD): $(PROD_OBJS)
|
||||
$(RM) $@
|
||||
echo $(LDLIBS)
|
||||
$(PROD_LINKER) $(PROD_OBJS) $(LDLIBS)
|
||||
endif
|
||||
|
||||
# explicit list of source files given for TESTPROD ?
|
||||
# (otherwise implicit rule .c -> $(OBJ) -> $(EXE)
|
||||
ifdef TESTPROD_SRCS
|
||||
|
||||
ifeq ($(findstring cc,$(suffix $(TESTPROD_SRCS))),cc)
|
||||
TESTPROD_LINKER = $(LINK.cc)
|
||||
else
|
||||
TESTPROD_LINKER = $(LINK.c)
|
||||
endif
|
||||
|
||||
TESTPROD_OBJS=$(addsuffix $(OBJ), $(basename $(TESTPROD_SRCS)))
|
||||
|
||||
$(TESTPROD): $(TESTPROD_OBJS)
|
||||
$(RM) $@
|
||||
$(TESTPROD_LINKER) $(TESTPROD_OBJS) $(LDLIBS)
|
||||
endif
|
||||
depends:: $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS)
|
||||
$(RM) DEPENDS
|
||||
touch DEPENDS
|
||||
$(DEPENDS_RULE)
|
||||
|
||||
%$(EXE): %.c
|
||||
$(RM) $@
|
||||
$(LINK.c) $< $(LDLIBS)
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
$(LINK.c) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.cc
|
||||
$(RM) $@
|
||||
$(LINK.cc) $< $(LDLIBS)
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.C
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(OBJ): %.c
|
||||
$(RM) $@
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%$(OBJ): %.cc
|
||||
$(RM) $@
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%.c %.h: ../%.y
|
||||
$(RM) y.tab.c y.tab.h
|
||||
%$(OBJ): %.C
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
# WIN95/NT resource compiler
|
||||
%$(RES): %.rc
|
||||
@$(RM) $@
|
||||
$(RCCMD)
|
||||
|
||||
#
|
||||
# rename the y.tab.h file only if we
|
||||
# are creating it
|
||||
#
|
||||
%.h %.c: ../%.y
|
||||
$(RM) $*.c y.tab.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(RM) $*.h y.tab.h
|
||||
endif
|
||||
$(YACC) $(YACCOPT) $<
|
||||
@if [ -f y.tab.c ]; \
|
||||
then \
|
||||
echo "$(MV) y.tab.c $*.c"; \
|
||||
$(RM) $*.c; \
|
||||
$(MV) y.tab.c $*.c; \
|
||||
fi
|
||||
@if [ -f y.tab.h ]; \
|
||||
then \
|
||||
echo "$(MV) y.tab.h $*.h"; \
|
||||
$(RM) $*.h; \
|
||||
$(MV) y.tab.h $*.h; \
|
||||
fi
|
||||
$(MV) y.tab.c $*.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(MV) y.tab.h $*.h
|
||||
endif
|
||||
|
||||
%.c: ../%.l
|
||||
$(RM) lex.yy.c
|
||||
@$(RM) lex.yy.c
|
||||
$(LEX) $(LEXOPT) $<
|
||||
$(RM) $@
|
||||
@$(RM) $@
|
||||
$(MV) lex.yy.c $@
|
||||
|
||||
#state notation language rule
|
||||
@@ -416,167 +573,176 @@ endif
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: %.stt
|
||||
@echo "converting $<"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $<
|
||||
@echo "converting $<
|
||||
ln -s $< $*.st
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
||||
@$(RM) $*.st
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.edf: ../%.sch $(DEPSCHS)
|
||||
%.edf: ../%.sch
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
||||
|
||||
# Adl2dl rule
|
||||
%.dl : ../%.adl
|
||||
-$(ADL2DL) $< $@
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:%
|
||||
$(RM) $(<F)
|
||||
$(RM) $(<F).nr
|
||||
ln -s $<
|
||||
$(MANGEN) -s $(<F)
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:../%
|
||||
$(RM) $(<F)
|
||||
$(RM) $(<F).nr
|
||||
ln -s $<
|
||||
$(MANGEN) -s $(<F)
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
%Record.h: %Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
|
||||
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo expanding dbd
|
||||
@$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@
|
||||
|
||||
# Rules for building LIBRARY with LIBSRCS
|
||||
# (which are now LIBNAME, LIBOBJS)
|
||||
#
|
||||
ifdef WIN32
|
||||
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS)
|
||||
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS)
|
||||
|
||||
ifeq ($(LIBTYPE),SHARED)
|
||||
# A WIN32 dll has tree parts:
|
||||
# x.dll: the real dll (DLLNAME)
|
||||
# x.lib: what you link to progs that use the dll (LIBNAME)
|
||||
# x.exp: what you need to build the dll (in no variable)
|
||||
#
|
||||
# the latter two are created automatically when building the dll:
|
||||
$(LIBNAME): $(DLLNAME)
|
||||
|
||||
# test if there is a def file for this dll:
|
||||
#
|
||||
DLL_DEF_FILE := ../$(LIBRARY).def
|
||||
|
||||
ifeq ($(DLL_DEF_FILE), $(wildcard $(DLL_DEF_FILE)))
|
||||
DLL_DEF := -def:$(DLL_DEF_FILE)
|
||||
endif
|
||||
|
||||
# Ugly trick:
|
||||
# HOST_OPT_FLAGS is part of CFLAGS/CXXFLAGS,
|
||||
# which in turn are used in COMPILE.c[c]
|
||||
#
|
||||
# If we compile a .c, .cc into an $(OBJ),
|
||||
# we test if this object is part of the
|
||||
# library objects LIBOBJS.
|
||||
# If so, we define _WINDLL so that
|
||||
# e.g. include/shareLib.h works correctly.
|
||||
#
|
||||
#HOST_OPT_FLAGS += $(subst $@, -D_WINDLL, $(findstring $@,$(LIBOBJS)))
|
||||
|
||||
$(DLLNAME): $(LIBOBJS)
|
||||
link $(WIN32LDFLAGS)\
|
||||
-implib:$(LIBNAME) -out:$(DLLNAME) $(DLL_DEF) \
|
||||
$(DLL_DEP_LIBS) $(LIBOBJS)
|
||||
else
|
||||
# still on WIN32, this time no DLL but plain lib requested:
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
lib -nologo -verbose -out:$(LIBNAME)\
|
||||
$(LIBOBJS)
|
||||
lib -nologo -list $(LIBNAME)
|
||||
|
||||
endif # LIBTYPE is SHARED ?
|
||||
|
||||
else # not WIN32
|
||||
|
||||
# usual Unix rule for lib creation
|
||||
# rule for lib (archive of object files) creation
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
$(RM) $@
|
||||
$(ARCMD) $@ $(LIBOBJS)
|
||||
@if [ ! -z "$(RANLIB)" ] ; then\
|
||||
echo $(RANLIB) $@; \
|
||||
$(RANLIB) $@; \
|
||||
fi
|
||||
endif # ifdef WIN32
|
||||
# end of library creation rules
|
||||
|
||||
$(ARCMD) $(LIBOBJS)
|
||||
ifdef RANLIB
|
||||
$(RANLIB) $@;
|
||||
endif # RANLIB
|
||||
|
||||
$(INSTALL_BIN)/%: ../os/$(ARCH_CLASS)/%
|
||||
@echo "Installing os-specific script $@"
|
||||
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing binary $@"
|
||||
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing script $@"
|
||||
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%.a: %.a
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_LIB)
|
||||
@if [ ! -z "$(RANLIB)" ] ; then\
|
||||
$(RANLIB) $(RANLIBFLAGS) $@; \
|
||||
fi
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
|
||||
ifdef RANLIB
|
||||
$(RANLIB) $(RANLIBFLAGS) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(INSTALL_LIB)/%.lib: %.lib
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_LIB)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
|
||||
|
||||
$(INSTALL_SHRLIB)/lib%: lib%
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_SHRLIB)
|
||||
ifdef SHRLIB_VERSION
|
||||
@$(RM) $(@:%.$(SHRLIB_VERSION)=%)
|
||||
ln -s $< $(@:%.$(SHRLIB_VERSION)=%)
|
||||
endif # SHRLIB_VERSION
|
||||
|
||||
$(INSTALL_TCLLIB)/%: %
|
||||
@echo "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_TCLLIB)/%: ../%
|
||||
@echo "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_CONFIG)/%: %
|
||||
@echo "Installing config file $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_CONFIG)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
@echo "Installing config file $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_CONFIG)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing include file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing include file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing doc $@"
|
||||
@testmkdir $(INSTALL_DOC)
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing doc $@"
|
||||
@testmkdir $(INSTALL_DOC)
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
||||
@echo "Installing html $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
||||
@echo "Installing html $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
.PRECIOUS: %.o %.c
|
||||
|
||||
-include .DEPENDS
|
||||
-include DEPENDS
|
||||
|
||||
.PHONY:: all inc depends build install clean rebuild buildInstall
|
||||
|
||||
|
||||
@@ -1,19 +1,31 @@
|
||||
# $Id$
|
||||
|
||||
INCREC +=$(RECTYPES) $(MENUS)
|
||||
INSTALL_PROD = $(PROD:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_LIBS = $(LIBNAME:%= $(INSTALL_LIB)/%)
|
||||
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_INC = $(INC:%= $(INSTALL_INCLUDE)/%)
|
||||
INSTALL_OSINCLUDE = $(INSTALL_INCLUDE)/os/$(T_A)
|
||||
INSTALL_OSINC = $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
|
||||
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
|
||||
MANLIST = 1 2 3 4 5 6 7 8 9
|
||||
INSTALL_MANS = $(foreach n, \
|
||||
$(MANLIST),$(INSTALL_MAN)/man$(n) $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
INSTALL_TEMPLATE = $(TEMPLATES:%= $(INSTALL_TEMPLATES_SUBDIR)/%)
|
||||
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
|
||||
|
||||
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
|
||||
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
|
||||
$(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\
|
||||
$(MENUS:%.h= $(INSTALL_DBD)/%.dbd)
|
||||
|
||||
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
|
||||
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
|
||||
|
||||
DIRECTORY_TARGETS = $(INSTALL_INCLUDE) $(INSTALL_INCLUDE)/os \
|
||||
@@ -29,7 +41,8 @@ pre_build::
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
build:: pre_build $(LIBNAME) $(TARGETS) $(PROD)
|
||||
build:: pre_build $(LIBNAME) $(TARGETS) $(PROD)\
|
||||
$(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
|
||||
inc:: $(INSTALL_INCLUDE) $(INSTALL_INC) $(INSTALL_INCLUDE)/os \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_OSINC)
|
||||
@@ -41,10 +54,13 @@ buildInstall :: build \
|
||||
$(TARGETS) \
|
||||
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MAN) $(INSTALL_MANS) \
|
||||
$(INSTALL_MAN) $(INSTALL_MANS) $(INSTALL_HTMLS) \
|
||||
$(INSTALL_DOC) $(INSTALL_DOCS) $(INSTALL_TEMPLATES) \
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR) $(INSTALL_TEMPLATE) \
|
||||
$(INSTALL_CONFIG) $(INSTALL_CONFIGS)
|
||||
$(INSTALL_CONFIG) $(INSTALL_CONFIGS) \
|
||||
$(INSTALL_DBD) $(INSTALL_DBS) $(INSTALL_BPTS) \
|
||||
$(INSTALL_DBDNAME) $(INSTALL_INCREC) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX)
|
||||
|
||||
depends:: $(SRCS.c) $(SRCS.cc)
|
||||
ifdef SRCS
|
||||
@@ -130,35 +146,72 @@ $(TARGETS) $(PROD): $(DEPLIBS)
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.edf: ../%.sch $(DEPSCHS)
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
||||
|
||||
# Adl2dl rule
|
||||
%.dl : ../%.adl
|
||||
-$(ADL2DL) $< $@
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:%
|
||||
$(RM) $(<F)
|
||||
$(RM) $(<F).nr
|
||||
ln -s $<
|
||||
$(MANGEN) -s $(<F)
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:../%
|
||||
$(RM) $(<F)
|
||||
$(RM) $(<F).nr
|
||||
ln -s $<
|
||||
$(MANGEN) -s $(<F)
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
%Record.h: %Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
|
||||
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo expanding dbd
|
||||
@$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand $(USER_DBDFLAGS) $< > $@
|
||||
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
@echo Building library $@
|
||||
$(RM) $@
|
||||
$(ARCMD) $@ $(LIBOBJS)
|
||||
$(ARCMD) $(LIBOBJS)
|
||||
@if [ ! -z "$(RANLIB)" ] ; then\
|
||||
echo $(RANLIB) $@; \
|
||||
$(RANLIB) $@; \
|
||||
@@ -166,58 +219,78 @@ $(LIBNAME): $(LIBOBJS)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing Binary $@"
|
||||
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing Binary $@"
|
||||
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%.a: %.a
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_LIB)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
|
||||
@if [ ! -z "$(RANLIB)" ] ; then\
|
||||
$(RANLIB) $(RANLIBFLAGS) $@; \
|
||||
fi
|
||||
|
||||
$(INSTALL_TCLLIB)/%: %
|
||||
@echo "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_TCLLIB)/%: ../%
|
||||
@echo "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
|
||||
@echo "Updating $@"
|
||||
@echo eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
|
||||
|
||||
$(INSTALL_CONFIG)/%: %
|
||||
@echo "Installing Config File $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_CONFIG)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
@echo "Installing Config File $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_CONFIG)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing Include File $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing Include File $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing doc $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing doc $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
||||
@echo "Installing html $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
||||
@echo "Installing html $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: ../%
|
||||
@echo "Installing template $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
|
||||
@echo "Installing template $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
.PRECIOUS: %.o %.c
|
||||
|
||||
|
||||
193
config/RULES.Vx
193
config/RULES.Vx
@@ -1,16 +1,26 @@
|
||||
# $Id$
|
||||
|
||||
ifneq ($(strip $(LIBOBJS_$(ARCH_CLASS))),)
|
||||
LIBOBJS+=$(subst -nil-,,$(LIBOBJS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef LIBOBJS_DEFAULT
|
||||
LIBOBJS+=$(LIBOBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
INCREC +=$(RECTYPES) $(MENUS)
|
||||
INSTALL_PROD = $(PROD:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_LIBS = $(LIBNAME:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_LIBS_CXX = $(LIBNAME_CXX:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_INC = $(INC:%= $(INSTALL_INCLUDE)/%)
|
||||
INSTALL_OSINCLUDE = $(INSTALL_INCLUDE)/os/vxWorks
|
||||
INSTALL_OSINC = $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
|
||||
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
|
||||
MANLIST = 1 2 3 4 5 6 7 8 9
|
||||
INSTALL_MANS = $(foreach n, \
|
||||
$(MANLIST),$(INSTALL_MAN)/man$(n) $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
$(MANLIST),$(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_INSTALLS = $(INSTALLS:%= $(INSTALL_BIN)/%)
|
||||
|
||||
@@ -23,10 +33,13 @@ INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
|
||||
|
||||
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
|
||||
|
||||
DIRECTORY_TARGETS = $(INSTALL_INCLUDE) $(INSTALL_DOC) $(INSTALL_DBD) \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_INCLUDE)/os \
|
||||
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) \
|
||||
$(MAN_DIRECTORY_TARGETS) $(INSTALL_MAN)
|
||||
# if we are not building base add base includes
|
||||
#
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
|
||||
endif
|
||||
endif
|
||||
|
||||
all:: install
|
||||
|
||||
@@ -35,48 +48,41 @@ rebuild:: clean install
|
||||
pre_build::
|
||||
|
||||
build:: pre_build $(MENUS) $(RECTYPES) $(BPTS)\
|
||||
$(LIBNAME) $(TARGETS) $(PROD) $(DBDNAME)
|
||||
|
||||
inc:: $(INSTALL_INCLUDE) $(INSTALL_INC) $(INSTALL_INCLUDE)/os \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_OSINC)
|
||||
$(LIBNAME) $(LIBNAME_CXX) $(TARGETS) $(PROD) $(DBDNAME)
|
||||
|
||||
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
|
||||
|
||||
install:: inc buildInstall
|
||||
|
||||
buildInstall :: build $(INSTALL_INCREC)\
|
||||
$(INSTALL_LOCATION_BIN) \
|
||||
$(INSTALL_BIN) $(INSTALL_LIBS) \
|
||||
$(INSTALL_LIBS) $(INSTALL_LIBS_CXX) \
|
||||
$(TARGETS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MAN) $(INSTALL_MANS)\
|
||||
$(INSTALL_DOC) $(INSTALL_DOCS) \
|
||||
$(INSTALL_MANS) $(INSTALL_DOCS) \
|
||||
$(INSTALL_HTMLS) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_INSTALLS)\
|
||||
$(INSTALL_DBD) $(INSTALL_DBS) $(INSTALL_BPTS) $(INSTALL_DBDNAME)
|
||||
$(INSTALL_DBS) $(INSTALL_BPTS) \
|
||||
$(INSTALL_DBDNAME)
|
||||
|
||||
ifdef BIN_INSTALLS
|
||||
buildInstall :: binInstalls
|
||||
endif
|
||||
|
||||
depends:: $(SRCS.c) $(SRCS.cc)
|
||||
ifdef SRCS
|
||||
echo you have a SRCS in your Makefile
|
||||
exit 2
|
||||
endif
|
||||
ifdef SRCS.c
|
||||
$(DEPENDS_RULE.c)
|
||||
endif
|
||||
ifdef SRCS.cc
|
||||
$(DEPENDS_RULE.cc)
|
||||
endif
|
||||
$(RM) DEPENDS
|
||||
touch DEPENDS
|
||||
$(DEPENDS_RULE)
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *.o *.a $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
|
||||
@$(RM) *.i *.o *.a *.out $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
@$(MKDIR) $@
|
||||
|
||||
# The order of the following dependencies is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
%: %.o
|
||||
$(RM) $@
|
||||
$(LINK.c) $@ $<
|
||||
$(LINK.c) $@ $< $(LDLIBS)
|
||||
|
||||
#$(PROD): $(OBJS)
|
||||
# $(RM) $@
|
||||
@@ -98,19 +104,28 @@ $(DIRECTORY_TARGETS) :
|
||||
$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%.c: ../%.y
|
||||
$(RM) y.tab.c y.tab.h
|
||||
# C++ munching
|
||||
%.out : %.o
|
||||
@ $(RM) ctct.o ctdt.c
|
||||
$(NM) $< | $(MUNCH) > ctdt.c
|
||||
$(COMPILE.c) -traditional ctdt.c
|
||||
$(LINK.c) $@ $< ctdt.o
|
||||
@ $(RM) ctdt.c ctdt.o
|
||||
|
||||
#
|
||||
# rename the y.tab.h file only if we
|
||||
# are creating it
|
||||
#
|
||||
%.h %.c: ../%.y
|
||||
$(RM) $*.c y.tab.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(RM) $*.h y.tab.h
|
||||
endif
|
||||
$(YACC) $(YACCOPT) $<
|
||||
@if [ -f y.tab.c ]; \
|
||||
then \
|
||||
echo "$(MV) y.tab.c $*.c"; \
|
||||
$(MV) y.tab.c $*.c; \
|
||||
fi
|
||||
@if [ -f y.tab.h ]; \
|
||||
then \
|
||||
echo "$(MV) y.tab.h $*.h"; \
|
||||
$(MV) y.tab.h $*.h; \
|
||||
fi
|
||||
$(MV) y.tab.c $*.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(MV) y.tab.h $*.h
|
||||
endif
|
||||
|
||||
%.c: ../%.l
|
||||
$(RM) lex.yy.c
|
||||
@@ -122,88 +137,101 @@ $(DIRECTORY_TARGETS) :
|
||||
%.c: ../%.st
|
||||
@echo "preprocessing $*.st"
|
||||
@$(RM) $*.i
|
||||
$(CPP) $(CPPFLAGS) $< $*.i
|
||||
$(CPP) $(CPPFLAGS) $(CPPSNCFLAGS) $< $*.i
|
||||
@echo "converting $*.i"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: %.stt
|
||||
@echo "converting $<
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $<
|
||||
|
||||
ln -s $< $*.st
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
||||
@$(RM) $*.st
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.edf: ../%.sch $(DEPSCHS)
|
||||
%.edf: ../%.sch
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
|
||||
|
||||
# Adl2dl rule
|
||||
%.dl : ../%.adl
|
||||
-$(ADL2DL) $< $@
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:%
|
||||
$(RM) $(<F)
|
||||
$(RM) $(<F).nr
|
||||
ln -s $<
|
||||
$(MANGEN) -s $(<F)
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:../%
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
binInstalls: $(BIN_INSTALLS)
|
||||
$(INSTALL) -d -m 555 $^ $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DBD)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DBD)
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
%Record.h: %Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
|
||||
$(USER_DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
|
||||
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo expanding dbd
|
||||
@$(RM) $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand\
|
||||
$(USER_DBDFLAGS) $< > $@
|
||||
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@
|
||||
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
@echo Building library $@
|
||||
@$(RM) $@
|
||||
$(LINK.c) $@ $(LIBOBJS)
|
||||
$(LINK.c) $@ $(LIBOBJS) $(LDLIBS)
|
||||
|
||||
$(LIBNAME_CXX): $(LIBOBJS_CXX)
|
||||
@echo Building CXX library $@
|
||||
@$(RM) $@
|
||||
$(LINK.cc) $@ $(LIBOBJS_CXX) $(LDLIBS)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 555 $< $(INSTALL_BIN)
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
#
|
||||
# avoid confusing circular dependency message when
|
||||
@@ -211,37 +239,52 @@ $(INSTALL_BIN)/%: ../%
|
||||
#
|
||||
ifneq ($(INSTALL_BIN),$(EPICS_BASE_BIN))
|
||||
$(INSTALL_BIN)/%: $(EPICS_BASE_BIN)/%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 555 $< $(INSTALL_BIN)
|
||||
@echo "Installing $@ from EPICS base"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
endif
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(@D)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
.PRECIOUS: %.o %.c
|
||||
|
||||
.PHONY:: all inc depends build install pre_build clean rebuild buildInstall
|
||||
.PHONY:: all inc depends build install pre_build clean rebuild buildInstall binInstalls
|
||||
|
||||
-include .DEPENDS
|
||||
-include DEPENDS
|
||||
|
||||
ifneq (,$(wildcard ../baseLIBOBJS))
|
||||
$(LIBNAME): ../baseLIBOBJS
|
||||
endif
|
||||
#=====> ???? the following line causes a rebuild every time
|
||||
#=====> $(LIBNAME): ../Makefile.Vx
|
||||
$(DBDNAME): ../base.dbd $(RECTYPES:%.h=../%.dbd)
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#RULES.ioc
|
||||
APPDIR := $(shell grep '.*".*App/' st.* | sed -e 's/.*"\(.*App\).*/\1/' | sort -u )
|
||||
ASCF = $(TOP)/../ascf
|
||||
TARGETBIN = $(TOP)/bin/$(ARCH)
|
||||
|
||||
install: makelinks
|
||||
|
||||
buildInstall:: install
|
||||
|
||||
inc build depends:
|
||||
|
||||
makelinks:
|
||||
@$(RM) ascf bin vxWorks vxWorks.sym dbd share $(APPDIR)
|
||||
ln -s $(ASCF) ascf
|
||||
ln -s $(TARGETBIN) bin
|
||||
ln -s $(TARGETBIN)/vxWorks vxWorks
|
||||
ln -s $(TARGETBIN)/vxWorks.sym vxWorks.sym
|
||||
ln -s $(TOP)/dbd dbd
|
||||
ln -s $(SHARE) share
|
||||
@for dir in $(APPDIR) ; do \
|
||||
if [ -d $(TOP)/$$dir ]; then \
|
||||
ln -s $(TOP)/$$dir $$dir ; \
|
||||
echo "ln -s $(TOP)/$$dir $$dir" ; \
|
||||
elif [ -d $(MASTER_IOCAPPS)/$$dir ]; then \
|
||||
ln -s $(MASTER_IOCAPPS)/$$dir $$dir ; \
|
||||
echo "ln -s $(MASTER_IOCAPPS)/$$dir $$dir" ; \
|
||||
else \
|
||||
echo "$$dir not found" ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
clean::
|
||||
@$(RM) ascf bin vxWorks vxWorks.sym dbd share $(APPDIR)
|
||||
@@ -2,7 +2,7 @@
|
||||
# $Id$
|
||||
#
|
||||
# EPICS RULES_ARCH
|
||||
# by Matthew Needes and Mike Bordua and Janet Andersoni and Jeff Hill
|
||||
# by Matthew Needes and Mike Bordua and Janet Anderson and Jeff Hill
|
||||
#
|
||||
|
||||
all:: install
|
||||
@@ -23,12 +23,12 @@ archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
hostArchs = $(HOST_ARCH)
|
||||
hostActionArchTargets = $(foreach x, $(ACTIONS),\
|
||||
$(foreach arch,$(hostArchs), $(x)$(DIVIDER)$(arch)))
|
||||
ifeq (Makefile.$(BUILD_TYPE), $(wildcard Makefile.$(BUILD_TYPE)))
|
||||
ifeq (Makefile.Host, $(wildcard Makefile.Host))
|
||||
hostDirs = $(addprefix O.,$(hostArchs))
|
||||
$(hostActionArchTargets) : $(hostDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.$(BUILD_TYPE) T_A=$(archPart) $(actionPart)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.Host T_A=$(archPart) BUILD_TYPE=Host $(actionPart)
|
||||
$(hostArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile.$(BUILD_TYPE) T_A=$@
|
||||
$(MAKE) -C O.$@ -f ../Makefile.Host T_A=$@ BUILD_TYPE=Host
|
||||
else
|
||||
$(hostActionArchTargets) :
|
||||
$(hostArchs) :
|
||||
@@ -43,28 +43,24 @@ crossActionArchTargets = $(foreach x, $(ACTIONS), \
|
||||
ifeq (Makefile.Vx, $(wildcard Makefile.Vx))
|
||||
crossDirs = $(addprefix O.,$(crossArchs))
|
||||
$(crossActionArchTargets) : $(crossDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.Vx T_A=$(archPart) $(actionPart)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.Vx T_A=$(archPart) BUILD_TYPE=Vx $(actionPart)
|
||||
$(crossArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile.Vx T_A=$@
|
||||
$(MAKE) -C O.$@ -f ../Makefile.Vx T_A=$@ BUILD_TYPE=Vx
|
||||
else
|
||||
$(crossActionArchTargets) :
|
||||
$(crossArchs) :
|
||||
endif
|
||||
|
||||
$(hostDirs) :
|
||||
$(MKDIR) $@
|
||||
echo "T_A=$(subst O.,,$@)" > $@/Makefile
|
||||
echo "include ../Makefile.$(BUILD_TYPE)" >> $@/Makefile
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Host
|
||||
|
||||
$(crossDirs) :
|
||||
$(MKDIR) $@
|
||||
echo "T_A=$(subst O.,,$@)" > $@/Makefile
|
||||
echo "include ../Makefile.Vx" >> $@/Makefile
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Vx
|
||||
|
||||
#
|
||||
# host/cross action targets
|
||||
#
|
||||
$(ACTIONS) clean : % : %$(DIVIDER)host %$(DIVIDER)cross
|
||||
$(ACTIONS) :: % : %$(DIVIDER)host %$(DIVIDER)cross
|
||||
HostActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)host)
|
||||
CrossActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)cross)
|
||||
$(HostActionTargets) : %$(DIVIDER)host : $(addprefix %$(DIVIDER), $(hostArchs))
|
||||
@@ -80,6 +76,8 @@ cross : $(crossArchs)
|
||||
#
|
||||
# special clean rule
|
||||
#
|
||||
clean ::
|
||||
$(RMDIR) $(hostDirs) $(crossDirs)
|
||||
clean$(DIVIDER)% :
|
||||
$(RMDIR) O.$*
|
||||
|
||||
|
||||
@@ -23,18 +23,20 @@ actionArchTargets = $(foreach action, $(ACTIONS) install,\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
installArchTargets = $(foreach action, install,\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
all install :: inc buildInstall
|
||||
|
||||
rebuild:: clean all
|
||||
|
||||
$(ARCHS) $(installArchTargets) :: inc
|
||||
|
||||
$(DIRS) $(dirActionTargets) $(dirArchTargets)$(dirActionArchTargets) ::
|
||||
$(MAKE) -C $(dirPart) $(actionArchPart)
|
||||
|
||||
$(ARCHS) $(installArchTargets) :%: \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)inc) \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
|
||||
$(ACTIONS) $(actionArchTargets) :%: \
|
||||
$(ARCHS) $(ACTIONS) $(actionArchTargets) ::%: \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
|
||||
|
||||
@@ -43,4 +45,6 @@ $(ACTIONS) $(actionArchTargets) :%: \
|
||||
.PHONY :: $(dirActionTargets) $(dirArchTargets)
|
||||
.PHONY :: $(dirActionArchTargets)
|
||||
.PHONY :: $(actionArchTargets)
|
||||
.PHONY :: $(installArchTargets)
|
||||
|
||||
|
||||
|
||||
@@ -5,46 +5,46 @@
|
||||
include $(TOP)/config/RULES_DIRS
|
||||
|
||||
uninstall$(DIVIDER)%::
|
||||
@$(RMDIR) $(INSTALL_LOCATION_BIN)/$* $(INSTALL_LOCATION_LIB)/$* \
|
||||
$(INSTALL_LOCATION)/dbd $(INSTALL_MAN) $(INSTALL_INCLUDE) \
|
||||
$(INSTALL_DOC) $(INSTALL_DBD) $(INSTALL_TEMPLATES)
|
||||
@$(RMDIR) rec.bak rec
|
||||
@$(RMDIR) $(INSTALL_LOCATION_BIN)/$* $(INSTALL_LOCATION_LIB)/$* \
|
||||
$(INSTALL_DBD) $(INSTALL_MAN) $(INSTALL_INCLUDE) \
|
||||
$(INSTALL_HTML) $(INSTALL_JAVA) $(INSTALL_TEMPLATES)
|
||||
|
||||
uninstall:: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
|
||||
|
||||
tar:
|
||||
@DIRNAME=$(notdir $(shell pwd)); \
|
||||
echo "TOP: Creating $$DIRNAME.Tar file..."; \
|
||||
ls Makefile* | xargs tar vcf $$DIRNAME.Tar; \
|
||||
echo "TOP: Creating $$DIRNAME.tar file..."; \
|
||||
ls Makefile* | xargs tar vcf $$DIRNAME.tar; \
|
||||
if [ -f .current_rel_hist ]; then \
|
||||
ls .current_rel_hist | xargs tar vrf $$DIRNAME.Tar ; \
|
||||
ls .current_rel_hist | xargs tar vrf $$DIRNAME.tar ; \
|
||||
fi ;\
|
||||
if [ -f EPICS_BASE ]; then \
|
||||
ls EPICS_BASE | xargs tar vrf $$DIRNAME.Tar ; \
|
||||
ls EPICS_BASE | xargs tar vrf $$DIRNAME.tar ; \
|
||||
fi ;\
|
||||
for DIR in ${DIRS}; do \
|
||||
find $${DIR} -name CVS -prune -o ! -type d -print \
|
||||
| grep -v "/O\..*$$" | xargs tar vrf $$DIRNAME.Tar; \
|
||||
| grep -v "/O\..*$$" | xargs tar vrf $$DIRNAME.tar; \
|
||||
done
|
||||
|
||||
help:
|
||||
@echo "Usage: gnumake [options] [target] ..."
|
||||
@echo "Targets supported by all Makefiles:"
|
||||
@echo " install - Installs executables in bin/<arch> (default rule)"
|
||||
@echo " build - Builds objects, using libraries from "build_libs"
|
||||
@echo " clean - Cleans objects. Clean removes the" O.<arch> dirs
|
||||
@echo " build - Builds objects, using libraries from build_libs"
|
||||
@echo " clean - Cleans objects. Clean removes the O.<arch> dirs"
|
||||
@echo " in all except the O.<arch> level Makefile"
|
||||
@echo " depends - Generates include dependencies"
|
||||
@echo "\"Partial\" build targets supported by Makefiles:"
|
||||
@echo " install.<arch> - Builds and installs <arch> only.
|
||||
@echo " install.<arch> - Builds and installs <arch> only."
|
||||
@echo " clean.<arch> - Cleans <arch> binaries in O.<arch> dirs only."
|
||||
@echo " build.<arch> - Builds <arch> only.
|
||||
@echo " depends.<arch> - Generates <arch> dependencies only.
|
||||
@echo " build.<arch> - Builds <arch> only."
|
||||
@echo " depends.<arch> - Generates <arch> dependencies only."
|
||||
@echo "Targets supported by top level Makefile:"
|
||||
@echo " uninstall - Cleans directories created by the install."
|
||||
@echo " tar - Create tar file "
|
||||
@echo "Indiv. object targets are supported by O.<arch> level Makefile .e.g"
|
||||
@echo " xxxRecord.o
|
||||
@echo " xxxRecord.o"
|
||||
|
||||
.PHONY :: uninstall tar help
|
||||
.PHONY :: $(addprefix uninstall$(DIVIDER), $(BUILDARCHS))
|
||||
|
||||
@@ -4,28 +4,25 @@
|
||||
# Sample Makefile.Host showing all possible entries
|
||||
# that are allowed using RULES.Host.
|
||||
#
|
||||
# 8-01-96 -kuk-
|
||||
#
|
||||
#
|
||||
|
||||
TOP = ../../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
CMPLR = STRICT
|
||||
|
||||
# Add-on CFLAGS that are needed in this subproject.
|
||||
# Add-on CFLAGS that are needed by this Makefile.
|
||||
# (If possible, all system specific flags should be
|
||||
# defined in CONFIG.$(ARCH_CLASS))
|
||||
# defined in CONFIG.Host.$(ARCH_CLASS))
|
||||
#
|
||||
# Whenever possible, ONLY USR_CFLAGS should be
|
||||
# used. If you need special flags for your system,
|
||||
# try to put them in CONFIG.YourSystem!
|
||||
# These CFLAGS rules also apply to these Makefile-variables:
|
||||
# CXXFLAGS C++ flags
|
||||
# LDFLAGS link flags
|
||||
#
|
||||
# This is used on all systems:
|
||||
USR_CFLAGS := -DVAR=value -Ddefine_for_all_systems
|
||||
USR_CFLAGS = -DVAR=value -Ddefine_for_all_systems
|
||||
# This is added to the above, but only for ARCH_CLASS=BSD:
|
||||
USR_CFLAGS_BSD := -DVERSION='Berkeley enhanced'
|
||||
USR_CFLAGS_BSD = -DVERSION='Berkeley enhanced'
|
||||
# ..only for WIN32:
|
||||
USR_CFLAGS_WIN32 := -DVERSION='WIN32 port'
|
||||
USR_CFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
#
|
||||
# -nil- is special:
|
||||
# if USR_CFLAGS_SYSV was undefined or empty, .._DEFAULT would have
|
||||
@@ -33,13 +30,14 @@ USR_CFLAGS_WIN32 := -DVERSION='WIN32 port'
|
||||
# To indicate
|
||||
# "yes, there is a special USR_CFLAGS for SYSV, but it's empty"
|
||||
# you have to set it to -nil-:
|
||||
USR_CFLAGS_SYSV := -nil-
|
||||
USR_CFLAGS_SYSV = -nil-
|
||||
# .. for all other arch classes:
|
||||
USR_CFLAGS_DEFAULT := -DVERSION='generic Unix'
|
||||
USR_CFLAGS_DEFAULT = -DVERSION='generic Unix'
|
||||
|
||||
# CFLAGS that are only used to compile a_file.c or a_file.cc:
|
||||
#
|
||||
a_file_CFLAGS := -DIN_A_FILE
|
||||
a_file_CFLAGS = -DIN_A_FILE
|
||||
a_file_CFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# general rule for all .c .cc .h .hh files and scripts:
|
||||
@@ -54,15 +52,15 @@ a_file_CFLAGS := -DIN_A_FILE
|
||||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
# includes to install from this sub-project
|
||||
# includes to install from this Makefile
|
||||
#
|
||||
# again: if INC_$(ARCH_CLASS) is defined, it is added to INC,
|
||||
# otherwise INC_DEFAULT (if defined) is added:
|
||||
#
|
||||
INC_DEFAULT := for_all_but_WIN32_or_hp700.h
|
||||
INC_WIN32 := only_for_WIN32.h
|
||||
INC_hp700 := -nil- # hp700 uses no special include
|
||||
INC := file.h
|
||||
INC_DEFAULT = for_all_but_WIN32_or_hp700.h
|
||||
INC_WIN32 = only_for_WIN32.h
|
||||
INC_hp700 = -nil- # hp700 uses no special include
|
||||
INC = file.h
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# defining a library
|
||||
@@ -84,36 +82,26 @@ INC := file.h
|
||||
# .
|
||||
# So usually only LIBSRCS should be sufficient!
|
||||
#
|
||||
LIBSRCS := file_for_lib.c another_file.cc
|
||||
LIBSRCS_DEFAULT := posix.c
|
||||
LIBSRCS_WIN32 := win32_special.c
|
||||
LIBSRCS_BSD := -nil-
|
||||
|
||||
# Type of library to build.
|
||||
# On WIN32, SHARED results in a DLL, others may ignore this.
|
||||
LIBTYPE:=SHARED
|
||||
|
||||
# Ugly but necessary for WIN32:
|
||||
# If LIBRARY is build as a dll, it may need other libraries
|
||||
# to link with that you specify here.
|
||||
# (because a dll is similar to a program:
|
||||
# all references have to be resolved)
|
||||
#
|
||||
# If there is a file ../$(LIBRARY).def, it will
|
||||
# be used as the dll-def-file on WIN32
|
||||
#
|
||||
# We need this flag because
|
||||
# 1) you may not use a def file ('proper' code needs no def files)
|
||||
# 2) you may have one and still not want a DLL (for testing etc.)
|
||||
#
|
||||
DLL_LIBS:=some_dll
|
||||
LIBSRCS = file_for_lib.c another_file.cc
|
||||
LIBSRCS_DEFAULT = posix.c
|
||||
LIBSRCS_WIN32 = win32_special.c
|
||||
LIBSRCS_BSD = -nil-
|
||||
|
||||
# Library to build:
|
||||
# lib$(LIBRARY).a or ..dll/..exp/..lib
|
||||
#
|
||||
# Currently you can build only one (1) lib per Makefile.Host!
|
||||
#
|
||||
LIBRARY:=libname
|
||||
LIBRARY=libname
|
||||
|
||||
# if SHARED_LIBRARIES is YES then shared and archive libraries will
|
||||
# both be built
|
||||
#SHARED_LIBRARIES = YES
|
||||
#
|
||||
# Library version
|
||||
SHRLIB_VERSION =
|
||||
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
|
||||
# On Unix type hosts .$(SHRLIB_VERSION) is appended to library name
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# defining products (executable programs)
|
||||
@@ -122,63 +110,73 @@ LIBRARY:=libname
|
||||
# if SRCS is undefined, it defaults to $(PROD).c
|
||||
SRCS=a.c b.c c.c
|
||||
|
||||
# libs needed to link PROD and TESTPROD
|
||||
# SRCS that are only used for PROD a_file
|
||||
#
|
||||
a_file_SRCS = aa.c bb.c
|
||||
|
||||
# EPICS libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# note that DLL_LIBS (the libraries needed to link a shareable
|
||||
# library) is created by default from the PROD/SYS libraries specified
|
||||
# below minus the name of the sharable library (LIBRARY)
|
||||
#
|
||||
#
|
||||
# for all systems:
|
||||
PROD_LIBS := Com Ca
|
||||
PROD_LIBS = Com Ca
|
||||
# for most systems:
|
||||
PROD_LIBS_DEFAULT := mathlib
|
||||
PROD_LIBS_WIN32 := -nil-
|
||||
PROD_LIBS_DEFAULT = mathlib
|
||||
PROD_LIBS_WIN32 = -nil-
|
||||
|
||||
# system libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# for all systems:
|
||||
SYS_PROD_LIBS = m
|
||||
# for most systems:
|
||||
SYS_PROD_LIBS_DEFAULT = foolib
|
||||
SYS_PROD_LIBS_WIN32 = -nil-
|
||||
|
||||
# other libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# for all systems:
|
||||
USR_LIBS = Xm Xt X11
|
||||
Xm_DIR = $(MOTIF_LIB)
|
||||
Xt_DIR = $(X11_LIB)
|
||||
X11_DIR = $(X11_LIB)
|
||||
|
||||
# for most systems:
|
||||
USR_LIBS_DEFAULT = foolib
|
||||
USR_LIBS_WIN32 = -nil-
|
||||
foolib_DIR = $(FOO_LIB)
|
||||
|
||||
# Product,
|
||||
# may be caRepeater.o -> caRepeater
|
||||
# or caRepeater.obj -> caRepeater.exe
|
||||
PROD := prod
|
||||
PROD_DEFAULT := product_for_rest
|
||||
PROD_WIN32 := product_only_for_WIN32
|
||||
PROD_BSD := product_only_for_BSD
|
||||
PROD_SYSV := product_only_for_SYSV
|
||||
PROD = prod
|
||||
PROD_DEFAULT = product_for_rest
|
||||
PROD_WIN32 = product_only_for_WIN32
|
||||
PROD_BSD = product_only_for_BSD
|
||||
PROD_SYSV = product_only_for_SYSV
|
||||
|
||||
# Product version
|
||||
PROD_VERSION =
|
||||
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
|
||||
# On Unix type hosts PROD_VERSION) is ignored
|
||||
|
||||
# Scripts to install
|
||||
#
|
||||
# If there is both ../$(SCRIPT) and ../$(ARCH_CLASS)/$(SCRIPT),
|
||||
# the latter, system specific version will be installed!
|
||||
#
|
||||
SCRIPTS_DEFAULT := script_for_rest
|
||||
SCRIPTS_WIN32 := script_only_for_WIN32
|
||||
SCRIPTS_BSD := script_only_for_BSD
|
||||
SCRIPTS := script
|
||||
SCRIPTS_DEFAULT = script_for_rest
|
||||
SCRIPTS_WIN32 = script_only_for_WIN32
|
||||
SCRIPTS_BSD = script_only_for_BSD
|
||||
SCRIPTS = script
|
||||
|
||||
|
||||
# uncomment if you want to build these locally without installing:
|
||||
# if you want to build products locally without installing:
|
||||
# TESTPROD = test
|
||||
|
||||
|
||||
# Unfortunately the above allows you only to
|
||||
# 1) build one PROD:=p from many SRCS:=a.c b.c c.c
|
||||
# or
|
||||
# 2) build many PROD:=a b c each from a single source (a.c, b.c, c.c)
|
||||
#
|
||||
# If you have several multi-source products in the same dir
|
||||
# you have to fall back to explicit rules.
|
||||
# (suggestions for a better syntax welcome!)
|
||||
#
|
||||
# The explicit rules, however, should look like the following:
|
||||
|
||||
# be careful if you add rules and dependencies:
|
||||
# use $(MV) $(RM) $(CP) $(MKDIR) $(RMDIR) $(OBJ) $(EXE) $(LINK.c) ....
|
||||
|
||||
xxxxx$(OBJ): c1.c c2.c h1.h
|
||||
|
||||
# because the output-flag (mostly '-o $@' on Unix, '-Fe$@' on WIN32)
|
||||
# is also system dependend, it's included in $(LINK.c) and $(LINK.cc) !
|
||||
#
|
||||
prog$(EXE): a$(OBJ) b$(OBJ)
|
||||
$(LINK.c) a$(OBJ) b$(OBJ) $(LDLIBS)
|
||||
|
||||
|
||||
clean::
|
||||
$(RM) dbLex.c
|
||||
# put all definitions before the following include line
|
||||
# put all rules after the following include line
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
TOP = ../../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
USR_CFLAGS = -D_NO_PROTO
|
||||
USR_CFLAGS += -D_NO_PROTO
|
||||
|
||||
INC := asDbLib.h asLib.h
|
||||
|
||||
@@ -14,8 +14,8 @@ LIBRARY := As
|
||||
# All systems link the libs As, Com, Db (and again Com ??),
|
||||
# generic Unix needs also lib m:
|
||||
#
|
||||
PROD_LIBS_DEFAULT := m
|
||||
PROD_LIBS_WIN32 := -nil-
|
||||
SYS_PROD_LIBS_DEFAULT := m
|
||||
SYS_PROD_LIBS_WIN32 := -nil-
|
||||
PROD_LIBS := As Com Db Com
|
||||
|
||||
PROD := ascheck
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
TOP = ../../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
USR_CFLAGS = -D_NO_PROTO
|
||||
USR_LDLIBS = -lAs -lCom -lDb -lCom -lm -s
|
||||
USR_LDFLAGS = -L.
|
||||
|
||||
DEPLIBS_BASE = $(INSTALL_LIB)
|
||||
DEPLIBS = ./libAs.a\
|
||||
$(DEPLIBS_BASE)/libCom.a\
|
||||
$(DEPLIBS_BASE)/libDb.a
|
||||
|
||||
INC += asDbLib.h
|
||||
INC += asLib.h
|
||||
|
||||
SRCS.c = ../ascheck.c asLib.c
|
||||
OBJS = ascheck.o
|
||||
LIBOBJS = asLib.o
|
||||
LIBNAME = libAs.a
|
||||
PROD = ascheck
|
||||
|
||||
include $(TOP)/config/RULES.Unix
|
||||
|
||||
# Extra rule since asLib_lex.c is included in asLib.c
|
||||
# In my opinion, these objects should really be built
|
||||
# independently.
|
||||
asLib.o: asLib_lex.c ../asLibRoutines.c
|
||||
|
||||
clean::
|
||||
@$(RM) asLib.c asLib_lex.c
|
||||
|
||||
346
src/as/asCa.c
346
src/as/asCa.c
@@ -5,53 +5,19 @@
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
|
||||
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
|
||||
AND IN ALL SOURCE LISTINGS OF THE CODE.
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
Argonne National Laboratory (ANL), with facilities in the States of
|
||||
Illinois and Idaho, is owned by the United States Government, and
|
||||
operated by the University of Chicago under provision of a contract
|
||||
with the Department of Energy.
|
||||
|
||||
Portions of this material resulted from work developed under a U.S.
|
||||
Government contract and are subject to the following license: For
|
||||
a period of five years from March 30, 1993, the Government is
|
||||
granted for itself and others acting on its behalf a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. With the approval of DOE, this
|
||||
period may be renewed for two additional five year periods.
|
||||
Following the expiration of this period or periods, the Government
|
||||
is granted for itself and others acting on its behalf, a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, distribute copies
|
||||
to the public, perform publicly and display publicly, and to permit
|
||||
others to do so.
|
||||
|
||||
*****************************************************************
|
||||
DISCLAIMER
|
||||
*****************************************************************
|
||||
|
||||
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
|
||||
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
|
||||
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
|
||||
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
|
||||
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
|
||||
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
|
||||
OWNED RIGHTS.
|
||||
|
||||
*****************************************************************
|
||||
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
|
||||
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
/*
|
||||
*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 03-22-94 mrk Initial Implementation
|
||||
*/
|
||||
|
||||
|
||||
/*This module is separate from asDbLib because CA uses old database access*/
|
||||
#include <vxWorks.h>
|
||||
#include <taskLib.h>
|
||||
@@ -59,96 +25,105 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <dbDefs.h>
|
||||
#include <taskwd.h>
|
||||
#include <asDbLib.h>
|
||||
#include <cadef.h>
|
||||
#include <caerr.h>
|
||||
#include <caeventmask.h>
|
||||
#include <task_params.h>
|
||||
#include <alarm.h>
|
||||
#include <semLib.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "errlog.h"
|
||||
#include "taskwd.h"
|
||||
#include "asDbLib.h"
|
||||
#include "cadef.h"
|
||||
#include "caerr.h"
|
||||
#include "caeventmask.h"
|
||||
#include "task_params.h"
|
||||
#include "alarm.h"
|
||||
|
||||
int asCaDebug = 0;
|
||||
extern ASBASE volatile *pasbase;
|
||||
LOCAL int firstTime = TRUE;
|
||||
LOCAL int taskid=0;
|
||||
LOCAL int caInitializing=FALSE;
|
||||
extern ASBASE *pasbase;
|
||||
LOCAL SEM_ID asCaTaskLock; /*lock access to task */
|
||||
LOCAL SEM_ID asCaTaskWait; /*Wait for task to respond*/
|
||||
LOCAL SEM_ID asCaTaskAddChannels; /*Tell asCaTask to add channels*/
|
||||
LOCAL SEM_ID asCaTaskClearChannels; /*Tell asCaTask to clear channels*/
|
||||
|
||||
typedef struct {
|
||||
struct dbr_sts_double rtndata;
|
||||
chid chid;
|
||||
evid evid;
|
||||
} CAPVT;
|
||||
|
||||
LOCAL void accessRightsCallback(struct access_rights_handler_args arha)
|
||||
/*connectCallback only handles disconnects*/
|
||||
LOCAL void connectCallback(struct connection_handler_args arg)
|
||||
{
|
||||
chid chid = arha.chid;
|
||||
ASGINP *pasginp;
|
||||
ASG *pasg;
|
||||
CAPVT *pcapvt;
|
||||
int Ilocked=FALSE;
|
||||
chid chid = arg.chid;
|
||||
ASGINP *pasginp = (ASGINP *)ca_puser(chid);
|
||||
ASG *pasg = pasginp->pasg;
|
||||
|
||||
if(!caInitializing) {
|
||||
FASTLOCK(&asLock);
|
||||
Ilocked = TRUE;
|
||||
}
|
||||
pasginp = (ASGINP *)ca_puser(chid);
|
||||
pasg = (ASG *)pasginp->pasg;
|
||||
pcapvt = pasginp->capvt;
|
||||
if(!ca_read_access(chid)) {
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
} /*eventCallback will set inpBad false*/
|
||||
if(Ilocked) FASTUNLOCK(&asLock);
|
||||
}
|
||||
|
||||
LOCAL void connectCallback(struct connection_handler_args cha)
|
||||
{
|
||||
chid chid = cha.chid;
|
||||
ASGINP *pasginp;
|
||||
ASG *pasg;
|
||||
CAPVT *pcapvt;
|
||||
int Ilocked=FALSE;
|
||||
|
||||
if(!caInitializing) {
|
||||
FASTLOCK(&asLock);
|
||||
Ilocked = TRUE;
|
||||
}
|
||||
pasginp = (ASGINP *)ca_puser(chid);
|
||||
pasg = (ASG *)pasginp->pasg;
|
||||
pcapvt = pasginp->capvt;
|
||||
if(ca_state(chid)!=cs_conn) {
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
} /*eventCallback will set inpBad false*/
|
||||
if(Ilocked) FASTUNLOCK(&asLock);
|
||||
}
|
||||
|
||||
LOCAL void eventCallback(struct event_handler_args eha)
|
||||
{
|
||||
ASGINP *pasginp;
|
||||
CAPVT *pcapvt;
|
||||
ASG *pasg;
|
||||
struct dbr_sts_double *pdata = eha.dbr;
|
||||
int Ilocked=FALSE;
|
||||
|
||||
if(!caInitializing) {
|
||||
FASTLOCK(&asLock);
|
||||
Ilocked = TRUE;
|
||||
}
|
||||
pasginp = (ASGINP *)eha.usr;
|
||||
pcapvt = (CAPVT *)pasginp->capvt;
|
||||
if(ca_read_access(pcapvt->chid)) {
|
||||
pasg = (ASG *)pasginp->pasg;
|
||||
pcapvt->rtndata = *pdata; /*structure copy*/
|
||||
if(pdata->severity==INVALID_ALARM) {
|
||||
if(!(pasg->inpBad & (1<<pasginp->inpIndex))) {
|
||||
/*was good so lets make it bad*/
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
} else {
|
||||
pasg->inpBad &= ~((1<<pasginp->inpIndex));
|
||||
pasg->pavalue[pasginp->inpIndex] = pdata->value;
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
if(asCaDebug) printf("as connectCallback disconnect %s\n",
|
||||
ca_name(chid));
|
||||
}
|
||||
pasg->inpChanged |= (1<<pasginp->inpIndex);
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
}
|
||||
if(Ilocked) FASTUNLOCK(&asLock);
|
||||
}
|
||||
|
||||
LOCAL void eventCallback(struct event_handler_args arg)
|
||||
{
|
||||
int caStatus = arg.status;
|
||||
chid chid = arg.chid;
|
||||
ASGINP *pasginp = (ASGINP *)arg.usr;
|
||||
ASG *pasg;
|
||||
CAPVT *pcapvt;
|
||||
READONLY struct dbr_sts_double *pdata;
|
||||
|
||||
if(caStatus!=ECA_NORMAL) {
|
||||
if(chid) {
|
||||
epicsPrintf("asCa: eventCallback error %s channel %s\n",
|
||||
ca_message(caStatus),ca_name(chid));
|
||||
} else {
|
||||
epicsPrintf("asCa: eventCallback error %s chid is null\n",
|
||||
ca_message(caStatus));
|
||||
}
|
||||
return;
|
||||
}
|
||||
pasg = pasginp->pasg;
|
||||
pcapvt = (CAPVT *)pasginp->capvt;
|
||||
if(chid!=pcapvt->chid) {
|
||||
epicsPrintf("asCa: eventCallback error pcapvt->chid != arg.chid\n");
|
||||
return;
|
||||
}
|
||||
if(ca_state(chid)!=cs_conn || !ca_read_access(chid)) {
|
||||
if(!(pasg->inpBad & (1<<pasginp->inpIndex))) {
|
||||
/*was good so lets make it bad*/
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
if(asCaDebug) {
|
||||
printf("as eventCallback %s inpBad ca_state %d"
|
||||
" ca_read_access %d\n",
|
||||
ca_name(chid),ca_state(chid),ca_read_access(chid));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
pdata = arg.dbr;
|
||||
pcapvt->rtndata = *pdata; /*structure copy*/
|
||||
if(pdata->severity==INVALID_ALARM) {
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
if(asCaDebug)
|
||||
printf("as eventCallback %s inpBad because INVALID_ALARM\n",
|
||||
ca_name(chid));
|
||||
} else {
|
||||
pasg->inpBad &= ~((1<<pasginp->inpIndex));
|
||||
pasg->pavalue[pasginp->inpIndex] = pdata->value;
|
||||
if(asCaDebug)
|
||||
printf("as eventCallback %s inpGood data %f\n",
|
||||
ca_name(chid),pdata->value);
|
||||
}
|
||||
pasg->inpChanged |= (1<<pasginp->inpIndex);
|
||||
if(!caInitializing) asComputeAsg(pasg);
|
||||
}
|
||||
|
||||
LOCAL void asCaTask(void)
|
||||
@@ -156,69 +131,106 @@ LOCAL void asCaTask(void)
|
||||
ASG *pasg;
|
||||
ASGINP *pasginp;
|
||||
CAPVT *pcapvt;
|
||||
int status;
|
||||
|
||||
taskwdInsert(taskIdSelf(),NULL,NULL);
|
||||
SEVCHK(ca_task_initialize(),"ca_task_initialize");
|
||||
caInitializing = TRUE;
|
||||
FASTLOCK(&asLock);
|
||||
pasg = (ASG *)ellFirst(&pasbase->asgList);
|
||||
while(pasg) {
|
||||
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
|
||||
while(pasginp) {
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
pcapvt = pasginp->capvt = asCalloc(1,sizeof(CAPVT));
|
||||
/*Note calls connectCallback immediately called for local Pvs*/
|
||||
SEVCHK(ca_search_and_connect(pasginp->inp,&pcapvt->chid,
|
||||
connectCallback,pasginp),"ca_build_and_connect");
|
||||
/*Note calls accessRightsCallback immediately called for local Pvs*/
|
||||
SEVCHK(ca_replace_access_rights_event(pcapvt->chid,accessRightsCallback),
|
||||
"ca_replace_access_rights_event");
|
||||
/*Note calls eventCallback immediately called for local Pvs*/
|
||||
SEVCHK(ca_add_event(DBR_STS_DOUBLE,pcapvt->chid,
|
||||
eventCallback,pasginp,&pcapvt->evid),
|
||||
"ca_add_event");
|
||||
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
|
||||
while(TRUE) {
|
||||
if(semTake(asCaTaskAddChannels,WAIT_FOREVER)!=OK) {
|
||||
epicsPrintf("asCa semTake error for asCaTaskClearChannels\n");
|
||||
taskSuspend(0);
|
||||
}
|
||||
pasg = (ASG *)ellNext((ELLNODE *)pasg);
|
||||
caInitializing = TRUE;
|
||||
pasg = (ASG *)ellFirst(&pasbase->asgList);
|
||||
while(pasg) {
|
||||
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
|
||||
while(pasginp) {
|
||||
pasg->inpBad |= (1<<pasginp->inpIndex);
|
||||
pcapvt = pasginp->capvt = asCalloc(1,sizeof(CAPVT));
|
||||
/*Note calls connectCallback immediately for local Pvs*/
|
||||
status = ca_search_and_connect(pasginp->inp,&pcapvt->chid,
|
||||
connectCallback,pasginp);
|
||||
if(status!=ECA_NORMAL) {
|
||||
epicsPrintf("asCa ca_search_and_connect error %s\n",
|
||||
ca_message(status));
|
||||
}
|
||||
/*Note calls eventCallback immediately for local Pvs*/
|
||||
status = ca_add_event(DBR_STS_DOUBLE,pcapvt->chid,
|
||||
eventCallback,pasginp,0);
|
||||
if(status!=ECA_NORMAL) {
|
||||
epicsPrintf("asCa ca_add_event error %s\n",
|
||||
ca_message(status));
|
||||
}
|
||||
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
|
||||
}
|
||||
pasg = (ASG *)ellNext((ELLNODE *)pasg);
|
||||
}
|
||||
asComputeAllAsg();
|
||||
caInitializing = FALSE;
|
||||
if(asCaDebug) printf("asCaTask initialized\n");
|
||||
semGive(asCaTaskWait);
|
||||
while(TRUE) {
|
||||
if(semTake(asCaTaskClearChannels,NO_WAIT)==OK) break;
|
||||
ca_pend_event(2.0);
|
||||
}
|
||||
pasg = (ASG *)ellFirst(&pasbase->asgList);
|
||||
while(pasg) {
|
||||
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
|
||||
while(pasginp) {
|
||||
pcapvt = (CAPVT *)pasginp->capvt;
|
||||
status = ca_clear_channel(pcapvt->chid);
|
||||
if(status!=ECA_NORMAL) {
|
||||
epicsPrintf("asCa ca_clear_channel error %s\n",
|
||||
ca_message(status));
|
||||
}
|
||||
free(pasginp->capvt);
|
||||
pasginp->capvt = 0;
|
||||
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
|
||||
}
|
||||
pasg = (ASG *)ellNext((ELLNODE *)pasg);
|
||||
}
|
||||
if(asCaDebug) printf("asCaTask has cleared all channels\n");
|
||||
semGive(asCaTaskWait);
|
||||
}
|
||||
asComputeAllAsg();
|
||||
caInitializing = FALSE;
|
||||
FASTUNLOCK(&asLock);
|
||||
SEVCHK(ca_pend_event(0.0),"ca_pend_event");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
void asCaStart(void)
|
||||
{
|
||||
taskid = taskSpawn("asCaTask",CA_CLIENT_PRI-1,VX_FP_TASK,CA_CLIENT_STACK,
|
||||
(FUNCPTR)asCaTask,0,0,0,0,0,0,0,0,0,0);
|
||||
if(taskid==ERROR) {
|
||||
errMessage(0,"asCaStart: taskSpawn Failure\n");
|
||||
} else {
|
||||
taskDelay(1);
|
||||
if(asCaDebug) printf("asCaStart called\n");
|
||||
if(firstTime) {
|
||||
firstTime = FALSE;
|
||||
if((asCaTaskLock=semBCreate(SEM_Q_FIFO,SEM_FULL))==NULL)
|
||||
epicsPrintf("asCa semBCreate failure\n");
|
||||
if((asCaTaskWait=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
|
||||
epicsPrintf("asCa semBCreate failure\n");
|
||||
if((asCaTaskAddChannels=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
|
||||
epicsPrintf("asCa semBCreate failure\n");
|
||||
if((asCaTaskClearChannels=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
|
||||
epicsPrintf("asCa semBCreate failure\n");
|
||||
taskid = taskSpawn("asCaTask",CA_CLIENT_PRI-1,VX_FP_TASK,
|
||||
CA_CLIENT_STACK, (FUNCPTR)asCaTask,0,0,0,0,0,0,0,0,0,0);
|
||||
if(taskid==ERROR) {
|
||||
errMessage(0,"asCaStart: taskSpawn Failure\n");
|
||||
}
|
||||
}
|
||||
if(semTake(asCaTaskLock,WAIT_FOREVER)!=OK)
|
||||
epicsPrintf("asCa semTake error\n");
|
||||
semGive(asCaTaskAddChannels);
|
||||
if(semTake(asCaTaskWait,WAIT_FOREVER)!=OK)
|
||||
epicsPrintf("asCa semTake error\n");
|
||||
if(asCaDebug) printf("asCaStart done\n");
|
||||
semGive(asCaTaskLock);
|
||||
}
|
||||
|
||||
|
||||
void asCaStop(void)
|
||||
{
|
||||
ASG *pasg;
|
||||
ASGINP *pasginp;
|
||||
STATUS status;
|
||||
|
||||
if(taskid==0 || taskid==ERROR) return;
|
||||
taskwdRemove(taskid);
|
||||
status = taskDelete(taskid);
|
||||
if(status!=OK) errMessage(0,"asCaStop: taskDelete Failure\n");
|
||||
while(taskIdVerify(taskid)==OK) {
|
||||
taskDelay(5);
|
||||
}
|
||||
pasg = (ASG *)ellFirst(&pasbase->asgList);
|
||||
while(pasg) {
|
||||
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
|
||||
while(pasginp) {
|
||||
free(pasginp->capvt);
|
||||
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
|
||||
}
|
||||
pasg = (ASG *)ellNext((ELLNODE *)pasg);
|
||||
}
|
||||
if(asCaDebug) printf("asCaStop called\n");
|
||||
if(semTake(asCaTaskLock,WAIT_FOREVER)!=OK)
|
||||
epicsPrintf("asCa semTake error\n");
|
||||
semGive(asCaTaskClearChannels);
|
||||
if(semTake(asCaTaskWait,WAIT_FOREVER)!=OK)
|
||||
epicsPrintf("asCa semTake error\n");
|
||||
if(asCaDebug) printf("asCaStop done\n");
|
||||
semGive(asCaTaskLock);
|
||||
}
|
||||
|
||||
166
src/as/asDbLib.c
166
src/as/asDbLib.c
@@ -5,53 +5,19 @@
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
|
||||
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
|
||||
AND IN ALL SOURCE LISTINGS OF THE CODE.
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
Argonne National Laboratory (ANL), with facilities in the States of
|
||||
Illinois and Idaho, is owned by the United States Government, and
|
||||
operated by the University of Chicago under provision of a contract
|
||||
with the Department of Energy.
|
||||
|
||||
Portions of this material resulted from work developed under a U.S.
|
||||
Government contract and are subject to the following license: For
|
||||
a period of five years from March 30, 1993, the Government is
|
||||
granted for itself and others acting on its behalf a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. With the approval of DOE, this
|
||||
period may be renewed for two additional five year periods.
|
||||
Following the expiration of this period or periods, the Government
|
||||
is granted for itself and others acting on its behalf, a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, distribute copies
|
||||
to the public, perform publicly and display publicly, and to permit
|
||||
others to do so.
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
|
||||
*****************************************************************
|
||||
DISCLAIMER
|
||||
*****************************************************************
|
||||
|
||||
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
|
||||
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
|
||||
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
|
||||
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
|
||||
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
|
||||
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
|
||||
OWNED RIGHTS.
|
||||
|
||||
*****************************************************************
|
||||
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
|
||||
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
*
|
||||
/*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 02-11-94 mrk Initial Implementation
|
||||
*/
|
||||
|
||||
|
||||
#include <vxWorks.h>
|
||||
#include <taskLib.h>
|
||||
#include <stdlib.h>
|
||||
@@ -59,45 +25,27 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <dbDefs.h>
|
||||
#include <taskwd.h>
|
||||
#include <alarm.h>
|
||||
#include <caeventmask.h>
|
||||
#include <dbStaticLib.h>
|
||||
#include <dbAccess.h>
|
||||
#include <asLib.h>
|
||||
#include <asDbLib.h>
|
||||
#include <dbCommon.h>
|
||||
#include <recSup.h>
|
||||
#include <subRecord.h>
|
||||
#include <task_params.h>
|
||||
#include "dbDefs.h"
|
||||
#include "errlog.h"
|
||||
#include "taskwd.h"
|
||||
#include "alarm.h"
|
||||
#include "caeventmask.h"
|
||||
#include "dbStaticLib.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "asLib.h"
|
||||
#include "asDbLib.h"
|
||||
#include "dbCommon.h"
|
||||
#include "recSup.h"
|
||||
#include "subRecord.h"
|
||||
#include "task_params.h"
|
||||
|
||||
extern struct dbBase *pdbbase;
|
||||
static FILE *stream;
|
||||
|
||||
#define BUF_SIZE 100
|
||||
FAST_LOCK asLock;
|
||||
static char *my_buffer;
|
||||
static char *my_buffer_ptr=NULL;
|
||||
static char *pacf=NULL;
|
||||
static int asLockInit=TRUE;
|
||||
static char *psubstitutions=NULL;
|
||||
static int initTaskId=0;
|
||||
|
||||
|
||||
static int my_yyinput(char *buf, int max_size)
|
||||
{
|
||||
int l,n;
|
||||
|
||||
if(*my_buffer_ptr==0) {
|
||||
if(fgets(my_buffer,BUF_SIZE,stream)==NULL) return(0);
|
||||
my_buffer_ptr = my_buffer;
|
||||
}
|
||||
l = strlen(my_buffer_ptr);
|
||||
n = (l<=max_size ? l : max_size);
|
||||
memcpy(buf,my_buffer_ptr,n);
|
||||
my_buffer_ptr += n;
|
||||
return(n);
|
||||
}
|
||||
static int firstTime = TRUE;
|
||||
|
||||
static long asDbAddRecords(void)
|
||||
{
|
||||
@@ -127,11 +75,6 @@ static long asDbAddRecords(void)
|
||||
|
||||
int asSetFilename(char *acf)
|
||||
{
|
||||
if(asLockInit) {
|
||||
FASTLOCKINIT(&asLock);
|
||||
asLockInit = FALSE;
|
||||
}
|
||||
FASTLOCK(&asLock);
|
||||
if(pacf) free ((void *)pacf);
|
||||
if(acf) {
|
||||
pacf = calloc(1,strlen(acf)+1);
|
||||
@@ -143,41 +86,46 @@ int asSetFilename(char *acf)
|
||||
} else {
|
||||
pacf = NULL;
|
||||
}
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int asSetSubstitutions(char *substitutions)
|
||||
{
|
||||
if(psubstitutions) free ((void *)psubstitutions);
|
||||
if(substitutions) {
|
||||
psubstitutions = calloc(1,strlen(substitutions)+1);
|
||||
if(!psubstitutions) {
|
||||
errMessage(0,"asSetSubstitutions calloc failure");
|
||||
} else {
|
||||
strcpy(psubstitutions,substitutions);
|
||||
}
|
||||
} else {
|
||||
psubstitutions = NULL;
|
||||
}
|
||||
return(0);
|
||||
}
|
||||
|
||||
static long asInitCommon(void)
|
||||
{
|
||||
long status;
|
||||
char buffer[BUF_SIZE];
|
||||
int asWasActive = asActive;
|
||||
|
||||
if(asLockInit) {
|
||||
FASTLOCKINIT(&asLock);
|
||||
asLockInit = FALSE;
|
||||
if(firstTime) {
|
||||
firstTime = FALSE;
|
||||
if(!pacf) return(0); /*access security will NEVER be turned on*/
|
||||
} else {
|
||||
if(!asActive) return(S_asLib_asNotActive);
|
||||
if(pacf) {
|
||||
asCaStop();
|
||||
} else { /*Just leave everything as is */
|
||||
return(S_asLib_badConfig);
|
||||
}
|
||||
}
|
||||
FASTLOCK(&asLock);
|
||||
if(asActive)asCaStop();
|
||||
if(!pacf) {
|
||||
asActive = FALSE;
|
||||
return(0);
|
||||
}
|
||||
buffer[0] = 0;
|
||||
my_buffer = buffer;
|
||||
my_buffer_ptr = my_buffer;
|
||||
stream = fopen(pacf,"r");
|
||||
if(!stream) {
|
||||
errMessage(0,"asInit failure");
|
||||
FASTUNLOCK(&asLock);
|
||||
return(-1);
|
||||
}
|
||||
status = asInitialize(my_yyinput);
|
||||
if(fclose(stream)==EOF) errMessage(0,"asInit fclose failure");
|
||||
status = asInitFile(pacf,psubstitutions);
|
||||
if(asActive) {
|
||||
asDbAddRecords();
|
||||
if(!asWasActive) asDbAddRecords();
|
||||
asCaStart();
|
||||
}
|
||||
FASTUNLOCK(&asLock);
|
||||
return(status);
|
||||
}
|
||||
|
||||
@@ -298,7 +246,7 @@ ASMEMBERPVT asDbGetMemberPvt(void *paddress)
|
||||
precord = paddr->precord;
|
||||
return((ASMEMBERPVT)precord->asp);
|
||||
}
|
||||
|
||||
|
||||
static void astacCallback(ASCLIENTPVT clientPvt,asClientStatus status)
|
||||
{
|
||||
char *recordname;
|
||||
@@ -348,41 +296,31 @@ static void myMemberCallback(ASMEMBERPVT memPvt)
|
||||
|
||||
int asdbdump(void)
|
||||
{
|
||||
FASTLOCK(&asLock);
|
||||
asDump(myMemberCallback,NULL,1);
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int aspuag(char *uagname)
|
||||
{
|
||||
|
||||
FASTLOCK(&asLock);
|
||||
asDumpUag(uagname);
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int asphag(char *hagname)
|
||||
{
|
||||
FASTLOCK(&asLock);
|
||||
asDumpHag(hagname);
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int asprules(char *asgname)
|
||||
{
|
||||
FASTLOCK(&asLock);
|
||||
asDumpRules(asgname);
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
int aspmem(char *asgname,int clients)
|
||||
{
|
||||
FASTLOCK(&asLock);
|
||||
asDumpMem(asgname,myMemberCallback,clients);
|
||||
FASTUNLOCK(&asLock);
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -5,48 +5,14 @@
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
|
||||
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
|
||||
AND IN ALL SOURCE LISTINGS OF THE CODE.
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
Argonne National Laboratory (ANL), with facilities in the States of
|
||||
Illinois and Idaho, is owned by the United States Government, and
|
||||
operated by the University of Chicago under provision of a contract
|
||||
with the Department of Energy.
|
||||
|
||||
Portions of this material resulted from work developed under a U.S.
|
||||
Government contract and are subject to the following license: For
|
||||
a period of five years from March 30, 1993, the Government is
|
||||
granted for itself and others acting on its behalf a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. With the approval of DOE, this
|
||||
period may be renewed for two additional five year periods.
|
||||
Following the expiration of this period or periods, the Government
|
||||
is granted for itself and others acting on its behalf, a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, distribute copies
|
||||
to the public, perform publicly and display publicly, and to permit
|
||||
others to do so.
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
|
||||
*****************************************************************
|
||||
DISCLAIMER
|
||||
*****************************************************************
|
||||
|
||||
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
|
||||
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
|
||||
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
|
||||
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
|
||||
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
|
||||
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
|
||||
OWNED RIGHTS.
|
||||
|
||||
*****************************************************************
|
||||
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
|
||||
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
*
|
||||
/*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 02-23-94 mrk Initial Implementation
|
||||
@@ -63,6 +29,7 @@ typedef struct {
|
||||
} ASDBCALLBACK;
|
||||
|
||||
int asSetFilename(char *acf);
|
||||
int asSetSubstitutions(char *substitutions);
|
||||
int asInit(void);
|
||||
int asInitAsyn(ASDBCALLBACK *pcallback);
|
||||
int asDbGetAsl( void *paddr);
|
||||
|
||||
129
src/as/asLib.h
129
src/as/asLib.h
@@ -4,48 +4,14 @@
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
|
||||
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
|
||||
AND IN ALL SOURCE LISTINGS OF THE CODE.
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
Argonne National Laboratory (ANL), with facilities in the States of
|
||||
Illinois and Idaho, is owned by the United States Government, and
|
||||
operated by the University of Chicago under provision of a contract
|
||||
with the Department of Energy.
|
||||
|
||||
Portions of this material resulted from work developed under a U.S.
|
||||
Government contract and are subject to the following license: For
|
||||
a period of five years from March 30, 1993, the Government is
|
||||
granted for itself and others acting on its behalf a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. With the approval of DOE, this
|
||||
period may be renewed for two additional five year periods.
|
||||
Following the expiration of this period or periods, the Government
|
||||
is granted for itself and others acting on its behalf, a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, distribute copies
|
||||
to the public, perform publicly and display publicly, and to permit
|
||||
others to do so.
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
|
||||
*****************************************************************
|
||||
DISCLAIMER
|
||||
*****************************************************************
|
||||
|
||||
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
|
||||
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
|
||||
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
|
||||
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
|
||||
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
|
||||
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
|
||||
OWNED RIGHTS.
|
||||
|
||||
*****************************************************************
|
||||
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
|
||||
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
*
|
||||
/*
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
* .01 09-27-93 mrk Initial Implementation
|
||||
@@ -55,9 +21,10 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <errMdef.h>
|
||||
#include <ellLib.h>
|
||||
|
||||
|
||||
typedef struct asgMember *ASMEMBERPVT;
|
||||
typedef struct asgClient *ASCLIENTPVT;
|
||||
typedef int (*ASINPUTFUNCPTR)(char *buf,int max_size);
|
||||
@@ -65,40 +32,54 @@ typedef enum{
|
||||
asClientCOAR /*Change of access rights*/
|
||||
/*For now this is all*/
|
||||
} asClientStatus;
|
||||
|
||||
typedef void (*ASCLIENTCALLBACK) (ASCLIENTPVT,asClientStatus);
|
||||
/* The following routines are macros with the following syntax
|
||||
long asCheckGet(ASCLIENTPVT asClientPvt);
|
||||
long asCheckPut(ASCLIENTPVT asClientPvt);
|
||||
end of macros
|
||||
*/
|
||||
int asInit(void);
|
||||
long asInitialize(ASINPUTFUNCPTR inputfunction);
|
||||
#define asCheckGet(asClientPvt)\
|
||||
(asActive ?\
|
||||
((asClientPvt)->access>=asREAD ? TRUE : FALSE)\
|
||||
: TRUE)
|
||||
#define asCheckPut(asClientPvt)\
|
||||
(asActive ?\
|
||||
((asClientPvt)->access>=asWRITE ? TRUE : FALSE)\
|
||||
: TRUE)
|
||||
|
||||
epicsShareFunc int epicsShareAPI asInit(void);
|
||||
epicsShareFunc long epicsShareAPI asInitialize(ASINPUTFUNCPTR inputfunction);
|
||||
epicsShareFunc long epicsShareAPI asInitFile(const char *filename,const char *substitutions);
|
||||
epicsShareFunc long epicsShareAPI asInitFP(FILE *fp,const char *substitutions);
|
||||
/*caller must provide permanent storage for asgName*/
|
||||
long asAddMember(ASMEMBERPVT *asMemberPvt,char *asgName);
|
||||
long asRemoveMember(ASMEMBERPVT *asMemberPvt);
|
||||
epicsShareFunc long epicsShareAPI asAddMember(ASMEMBERPVT *asMemberPvt,char *asgName);
|
||||
epicsShareFunc long epicsShareAPI asRemoveMember(ASMEMBERPVT *asMemberPvt);
|
||||
/*caller must provide permanent storage for newAsgName*/
|
||||
long asChangeGroup(ASMEMBERPVT *asMemberPvt,char *newAsgName);
|
||||
void *asGetMemberPvt(ASMEMBERPVT asMemberPvt);
|
||||
void asPutMemberPvt(ASMEMBERPVT asMemberPvt,void *userPvt);
|
||||
epicsShareFunc long epicsShareAPI asChangeGroup(ASMEMBERPVT *asMemberPvt,char *newAsgName);
|
||||
epicsShareFunc void * epicsShareAPI asGetMemberPvt(ASMEMBERPVT asMemberPvt);
|
||||
epicsShareFunc void epicsShareAPI asPutMemberPvt(ASMEMBERPVT asMemberPvt,void *userPvt);
|
||||
/*client must provide permanent storage for user and host*/
|
||||
long asAddClient(ASCLIENTPVT *asClientPvt,ASMEMBERPVT asMemberPvt,
|
||||
epicsShareFunc long epicsShareAPI asAddClient(ASCLIENTPVT *asClientPvt,ASMEMBERPVT asMemberPvt,
|
||||
int asl,char *user,char *host);
|
||||
/*client must provide permanent storage for user and host*/
|
||||
long asChangeClient(ASCLIENTPVT asClientPvt,int asl,char *user,char *host);
|
||||
long asRemoveClient(ASCLIENTPVT *asClientPvt);
|
||||
void *asGetClientPvt(ASCLIENTPVT asClientPvt);
|
||||
void asPutClientPvt(ASCLIENTPVT asClientPvt,void *userPvt);
|
||||
long asRegisterClientCallback(ASCLIENTPVT asClientPvt,
|
||||
epicsShareFunc long epicsShareAPI asChangeClient(ASCLIENTPVT asClientPvt,int asl,char *user,char *host);
|
||||
epicsShareFunc long epicsShareAPI asRemoveClient(ASCLIENTPVT *asClientPvt);
|
||||
epicsShareFunc void * epicsShareAPI asGetClientPvt(ASCLIENTPVT asClientPvt);
|
||||
epicsShareFunc void epicsShareAPI asPutClientPvt(ASCLIENTPVT asClientPvt,void *userPvt);
|
||||
epicsShareFunc long epicsShareAPI asRegisterClientCallback(ASCLIENTPVT asClientPvt,
|
||||
ASCLIENTCALLBACK pcallback);
|
||||
long asComputeAllAsg(void);
|
||||
/*asComputeAsg is defined after ASG is defined*/
|
||||
long asCompute(ASCLIENTPVT asClientPvt);
|
||||
int asDump(void (*memcallback)(ASMEMBERPVT),void (*clientcallback)(ASCLIENTPVT),int verbose);
|
||||
int asDumpUag(char *uagname);
|
||||
int asDumpHag(char *hagname);
|
||||
int asDumpRules(char *asgname);
|
||||
int asDumpMem(char *asgname,void (*memcallback)(ASMEMBERPVT),int clients);
|
||||
int asDumpHash(void);
|
||||
epicsShareFunc long epicsShareAPI asComputeAllAsg(void);
|
||||
/* following declared below after ASG is declared
|
||||
epicsShareFunc long epicsShareAPI asComputeAsg(ASG *pasg);
|
||||
*/
|
||||
epicsShareFunc long epicsShareAPI asCompute(ASCLIENTPVT asClientPvt);
|
||||
epicsShareFunc int epicsShareAPI asDump(void (*memcallback)(ASMEMBERPVT),
|
||||
void (*clientcallback)(ASCLIENTPVT),int verbose);
|
||||
epicsShareFunc int epicsShareAPI asDumpUag(char *uagname);
|
||||
epicsShareFunc int epicsShareAPI asDumpHag(char *hagname);
|
||||
epicsShareFunc int epicsShareAPI asDumpRules(char *asgname);
|
||||
epicsShareFunc int epicsShareAPI asDumpMem(char *asgname,void (*memcallback)(ASMEMBERPVT),int clients);
|
||||
epicsShareFunc int epicsShareAPI asDumpHash(void);
|
||||
|
||||
#define S_asLib_clientsExist (M_asLib| 1) /*Client Exists*/
|
||||
#define S_asLib_noUag (M_asLib| 2) /*User Access Group does not exist*/
|
||||
@@ -117,11 +98,6 @@ int asDumpHash(void);
|
||||
|
||||
/*Private declarations */
|
||||
#define ASMAXINP 12
|
||||
#ifdef vxWorks
|
||||
#include <fast_lock.h>
|
||||
extern FAST_LOCK asLock;
|
||||
extern int asLockInit;
|
||||
#endif
|
||||
extern int asActive;
|
||||
/* definition of access rights*/
|
||||
typedef enum{asNOACCESS,asREAD,asWRITE} asAccessRights;
|
||||
@@ -180,6 +156,7 @@ typedef struct{
|
||||
struct asg *pasg;
|
||||
int inpIndex;
|
||||
}ASGINP;
|
||||
|
||||
typedef struct asg{
|
||||
ELLNODE node;
|
||||
char *name;
|
||||
@@ -207,17 +184,9 @@ typedef struct asgClient {
|
||||
int level;
|
||||
asAccessRights access;
|
||||
} ASGCLIENT;
|
||||
/* function prototypes*/
|
||||
void *asCalloc(size_t nobj,size_t size);
|
||||
long asComputeAsg(ASG *pasg);
|
||||
/*macros*/
|
||||
#define asCheckGet(asClientPvt)\
|
||||
(asActive ?\
|
||||
((asClientPvt)->access>=asREAD ? TRUE : FALSE)\
|
||||
: TRUE)
|
||||
#define asCheckPut(asClientPvt)\
|
||||
(asActive ?\
|
||||
((asClientPvt)->access>=asWRITE ? TRUE : FALSE)\
|
||||
: TRUE)
|
||||
|
||||
epicsShareFunc long epicsShareAPI asComputeAsg(ASG *pasg);
|
||||
/*following is "friend" function*/
|
||||
void * asCalloc(size_t nobj,size_t size);
|
||||
|
||||
#endif /*INCasLibh*/
|
||||
|
||||
@@ -16,7 +16,7 @@ static ASGRULE *yyAsgRule=NULL;
|
||||
%token tokenUAG tokenHAG tokenASG tokenRULE tokenCALC
|
||||
%token <Str> tokenINP
|
||||
%token <Int> tokenINTEGER
|
||||
%token <Str> tokenNAME tokenPVNAME tokenSTRING
|
||||
%token <Str> tokenNAME tokenSTRING
|
||||
|
||||
%union
|
||||
{
|
||||
@@ -42,7 +42,7 @@ asconfig_item: tokenUAG uag_head uag_body
|
||||
uag_head: '(' tokenNAME ')'
|
||||
{
|
||||
yyUag = asUagAdd($2);
|
||||
if(!yyUag) yyerror($2);
|
||||
if(!yyUag) yyerror("");
|
||||
free((void *)$2);
|
||||
}
|
||||
;
|
||||
@@ -63,7 +63,6 @@ uag_user_list_name: tokenNAME
|
||||
|
||||
status = asUagAddUser(yyUag,$1);
|
||||
if(status) {
|
||||
errMessage(status,"Error while adding UAG");
|
||||
yyerror($1);
|
||||
}
|
||||
free((void *)$1);
|
||||
@@ -73,7 +72,7 @@ uag_user_list_name: tokenNAME
|
||||
hag_head: '(' tokenNAME ')'
|
||||
{
|
||||
yyHag = asHagAdd($2);
|
||||
if(!yyHag) yyerror($2);
|
||||
if(!yyHag) yyerror("");
|
||||
free((void *)$2);
|
||||
}
|
||||
;
|
||||
@@ -91,8 +90,7 @@ hag_user_list_name: tokenNAME
|
||||
|
||||
status = asHagAddHost(yyHag,$1);
|
||||
if(status) {
|
||||
errMessage(status,"Error while adding HAG");
|
||||
yyerror($1);
|
||||
yyerror("");
|
||||
}
|
||||
free((void *)$1);
|
||||
}
|
||||
@@ -101,7 +99,7 @@ hag_user_list_name: tokenNAME
|
||||
asg_head: '(' tokenNAME ')'
|
||||
{
|
||||
yyAsg = asAsgAdd($2);
|
||||
if(!yyAsg) yyerror($2);
|
||||
if(!yyAsg) yyerror("");
|
||||
free((void *)$2);
|
||||
}
|
||||
;
|
||||
@@ -122,14 +120,13 @@ inp_config: tokenINP '(' inp_body ')'
|
||||
|
||||
status = asAsgAddInp(yyAsg,$<Str>3,$<Int>1);
|
||||
if(status) {
|
||||
errMessage(status,"Error while adding INP");
|
||||
yyerror($1);
|
||||
yyerror("");
|
||||
}
|
||||
free((void *)$<Str>3);
|
||||
}
|
||||
;
|
||||
|
||||
inp_body: tokenNAME | tokenPVNAME
|
||||
inp_body: tokenNAME
|
||||
;
|
||||
|
||||
rule_config: tokenRULE rule_head rule_body
|
||||
@@ -170,8 +167,7 @@ rule_list_item: tokenUAG '(' rule_uag_list ')'
|
||||
|
||||
status = asAsgRuleCalc(yyAsgRule,$3);
|
||||
if(status){
|
||||
errMessage(status,$3);
|
||||
yyerror("CALC failure");
|
||||
yyerror("access security CALC failure");
|
||||
}
|
||||
free((void *)$3);
|
||||
}
|
||||
@@ -187,8 +183,7 @@ rule_uag_list_name: tokenNAME
|
||||
|
||||
status = asAsgRuleUagAdd(yyAsgRule,$1);
|
||||
if(status) {
|
||||
errMessage(status,"Error while adding UAG");
|
||||
yyerror($1);
|
||||
yyerror("");
|
||||
}
|
||||
free((void *)$1);
|
||||
}
|
||||
@@ -204,8 +199,7 @@ rule_hag_list_name: tokenNAME
|
||||
|
||||
status = asAsgRuleHagAdd(yyAsgRule,$1);
|
||||
if(status) {
|
||||
errMessage(status,"Error while adding HAG");
|
||||
yyerror($1);
|
||||
yyerror("");
|
||||
}
|
||||
free((void *)$1);
|
||||
}
|
||||
@@ -217,7 +211,8 @@ rule_hag_list_name: tokenNAME
|
||||
static int yyerror(str)
|
||||
char *str;
|
||||
{
|
||||
fprintf(stderr,"Error line %d : %s %s\n",line_num,str,yytext);
|
||||
epicsPrintf("Access Security Error(%s) line %d token %s\n",
|
||||
str,line_num,yytext);
|
||||
yyFailed = TRUE;
|
||||
return(0);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,14 +1,15 @@
|
||||
integer [0-9]
|
||||
name [a-zA-Z0-9_\.]
|
||||
pvname [a-zA-Z0-9_\-:\.\[\]<>;]
|
||||
string [a-zA-Z0-9_\,\./\*#\[\]%: ;!|\'\-&\(\)@\?\+<>=\$]
|
||||
name [a-zA-Z0-9_\-:\.\[\]<>;]
|
||||
notquote [^\"]
|
||||
escapequote \\\"
|
||||
string {notquote}|{escapequote}
|
||||
|
||||
%{
|
||||
static ASINPUTFUNCPTR *my_yyinput;
|
||||
#undef YY_INPUT
|
||||
#define YY_INPUT(b,r,ms) (r=(*my_yyinput)(b,ms))
|
||||
|
||||
yyreset()
|
||||
static int yyreset()
|
||||
{
|
||||
line_num=1;
|
||||
BEGIN INITIAL;
|
||||
@@ -35,19 +36,13 @@ INP[A-L] {/* If A-L is changed then ASMAXINP must also be changed*/
|
||||
return(tokenINTEGER);
|
||||
}
|
||||
|
||||
{name}+ {
|
||||
{name}+ { /*unquoted string*/
|
||||
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
|
||||
strcpy(yylval.Str,yytext);
|
||||
return(tokenNAME);
|
||||
}
|
||||
|
||||
{pvname}+ {
|
||||
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
|
||||
strcpy(yylval.Str,yytext);
|
||||
return(tokenPVNAME);
|
||||
}
|
||||
|
||||
\"{string}*\" {
|
||||
\"{string}*\" { /*quoted string*/
|
||||
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
|
||||
/* making sure that neither double quote gets passed back */
|
||||
strcpy(yylval.Str,yytext+1);
|
||||
@@ -66,9 +61,13 @@ INP[A-L] {/* If A-L is changed then ASMAXINP must also be changed*/
|
||||
\n { line_num ++;}
|
||||
. {
|
||||
char message[20];
|
||||
YY_BUFFER_STATE *dummy=0;
|
||||
|
||||
sprintf(message,"invalid character '%c'",yytext[0]);
|
||||
yyerror(message);
|
||||
/*The following suppresses compiler warning messages*/
|
||||
if(FALSE) yyunput('c',message);
|
||||
if(FALSE) yy_switch_to_buffer(*dummy);
|
||||
}
|
||||
|
||||
%%
|
||||
|
||||
101
src/as/ascheck.c
101
src/as/ascheck.c
@@ -5,48 +5,13 @@
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
|
||||
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
|
||||
AND IN ALL SOURCE LISTINGS OF THE CODE.
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
Argonne National Laboratory (ANL), with facilities in the States of
|
||||
Illinois and Idaho, is owned by the United States Government, and
|
||||
operated by the University of Chicago under provision of a contract
|
||||
with the Department of Energy.
|
||||
|
||||
Portions of this material resulted from work developed under a U.S.
|
||||
Government contract and are subject to the following license: For
|
||||
a period of five years from March 30, 1993, the Government is
|
||||
granted for itself and others acting on its behalf a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, and perform
|
||||
publicly and display publicly. With the approval of DOE, this
|
||||
period may be renewed for two additional five year periods.
|
||||
Following the expiration of this period or periods, the Government
|
||||
is granted for itself and others acting on its behalf, a paid-up,
|
||||
nonexclusive, irrevocable worldwide license in this computer
|
||||
software to reproduce, prepare derivative works, distribute copies
|
||||
to the public, perform publicly and display publicly, and to permit
|
||||
others to do so.
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
|
||||
*****************************************************************
|
||||
DISCLAIMER
|
||||
*****************************************************************
|
||||
|
||||
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
|
||||
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
|
||||
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
|
||||
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
|
||||
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
|
||||
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
|
||||
OWNED RIGHTS.
|
||||
|
||||
*****************************************************************
|
||||
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
|
||||
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
*/
|
||||
/* Modification Log:
|
||||
* -----------------
|
||||
* .01 03-24-94 mrk Initial Implementation
|
||||
@@ -55,30 +20,44 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
|
||||
#include <stdlib.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include <asLib.h>
|
||||
static char my_buffer[100];
|
||||
static char *my_buffer_ptr="\0";
|
||||
#include <string.h>
|
||||
|
||||
static int my_yyinput(char *buf, int max_size)
|
||||
#include "dbDefs.h"
|
||||
#include "errlog.h"
|
||||
#include "asLib.h"
|
||||
#include "dbStaticLib.h"
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
int l,n;
|
||||
|
||||
if(*my_buffer_ptr==0) {
|
||||
if(gets(my_buffer)==NULL) return(0);
|
||||
my_buffer_ptr = &my_buffer[0];
|
||||
strcat(my_buffer_ptr,"\n");
|
||||
int i;
|
||||
int strip;
|
||||
char *sub = NULL;
|
||||
int subLength = 0;
|
||||
char **pstr;
|
||||
char *psep;
|
||||
int *len;
|
||||
long status;
|
||||
static char *subSep = ",";
|
||||
|
||||
/*Look for options*/
|
||||
while(argc>1 && (strncmp(argv[1],"-S",2)==0)) {
|
||||
pstr = ⊂
|
||||
psep = subSep;
|
||||
len = &subLength;
|
||||
if(strlen(argv[1])==2) {
|
||||
dbCatString(pstr,len,argv[2],psep);
|
||||
strip = 2;
|
||||
} else {
|
||||
dbCatString(pstr,len,argv[1]+2,psep);
|
||||
strip = 1;
|
||||
}
|
||||
argc -= strip;
|
||||
for(i=1; i<argc; i++) argv[i] = argv[i + strip];
|
||||
}
|
||||
l = strlen(my_buffer_ptr);
|
||||
n = (l<=max_size ? l : max_size);
|
||||
memcpy(buf,my_buffer_ptr,n);
|
||||
my_buffer_ptr += n;
|
||||
return(n);
|
||||
}
|
||||
int main()
|
||||
{
|
||||
long status;
|
||||
|
||||
status = asInitialize(my_yyinput);
|
||||
if(status) errMessage(status,"from asInitialize");
|
||||
if(argc!=1) {
|
||||
printf("usage: ascheck -Smacsub < file\n");
|
||||
exit(0);
|
||||
}
|
||||
status = asInitFP(stdin,sub);
|
||||
if(status) errMessage(status,"from asInitFP");
|
||||
return(0);
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user