Compare commits
498 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72fdd8bc2e | ||
|
|
414cb8d62c | ||
|
|
e0106fd010 | ||
|
|
0d0aa7de73 | ||
|
|
6285f33fda | ||
|
|
e22fbab104 | ||
|
|
a184041ea0 | ||
|
|
37c1049e47 | ||
|
|
ec9686d945 | ||
|
|
7009ea2784 | ||
|
|
b307ef1746 | ||
|
|
e5461a72b0 | ||
|
|
e54a016e9c | ||
|
|
5dc8213385 | ||
|
|
6ce3e959ee | ||
|
|
731e413fe6 | ||
|
|
f3086ac02f | ||
|
|
bcaa5e05c3 | ||
|
|
43028c644e | ||
|
|
5eabcef78c | ||
|
|
168e33b7b4 | ||
|
|
51a1314f31 | ||
|
|
9fc20984ec | ||
|
|
565ec952fe | ||
|
|
5bbf333ad3 | ||
|
|
9a99e447a8 | ||
|
|
f3dfc7f4e9 | ||
|
|
265597698e | ||
|
|
64d9557d17 | ||
|
|
fcc317ccdf | ||
|
|
15072fb71c | ||
|
|
8828487ee7 | ||
|
|
7304b138a2 | ||
|
|
bff391d85c | ||
|
|
2619a00eee | ||
|
|
459cfe4cc6 | ||
|
|
0dfef26c23 | ||
|
|
eaaeb78f3d | ||
|
|
6f8ff1ea68 | ||
|
|
5942ff01c5 | ||
|
|
13b19bade4 | ||
|
|
57a87ac96d | ||
|
|
0b2771c5f4 | ||
|
|
5f2e18a009 | ||
|
|
16ac672973 | ||
|
|
797f2ae524 | ||
|
|
8004aeb729 | ||
|
|
9835753cb6 | ||
|
|
4e1fd091ea | ||
|
|
7ad5347f7f | ||
|
|
74824c5ff2 | ||
|
|
1bda6aff08 | ||
|
|
461cac2e1d | ||
|
|
081a96160f | ||
|
|
886759cffa | ||
|
|
4abc96759d | ||
|
|
e083f41963 | ||
|
|
04998e378b | ||
|
|
a97876092e | ||
|
|
56c7e2401f | ||
|
|
a1cbc57cc0 | ||
|
|
2a5a175196 | ||
|
|
319328d6fe | ||
|
|
fd16d1bb65 | ||
|
|
21ff7e5613 | ||
|
|
0940a35086 | ||
|
|
f8f2b44c6c | ||
|
|
0e182d8c1a | ||
|
|
4f659b6581 | ||
|
|
bc03c1cca9 | ||
|
|
39cfb6b05a | ||
|
|
9cd9257c4a | ||
|
|
71d1b80224 | ||
|
|
0e47da7e57 | ||
|
|
092746d36a | ||
|
|
d55d54d235 | ||
|
|
2d08f5abac | ||
|
|
54cc4cec31 | ||
|
|
0e0c2c7ac3 | ||
|
|
9d1e7f7da4 | ||
|
|
5a5a0fd0cc | ||
|
|
9805e6a8e9 | ||
|
|
fe55b04449 | ||
|
|
09733655f8 | ||
|
|
9cbf577382 | ||
|
|
94b408425b | ||
|
|
7347132973 | ||
|
|
87c3103022 | ||
|
|
b11d547699 | ||
|
|
73c303192d | ||
|
|
4cb08f797a | ||
|
|
459cdc0829 | ||
|
|
551e87f15d | ||
|
|
e628e95d2c | ||
|
|
68120ccb74 | ||
|
|
47b044d257 | ||
|
|
78ad1feec8 | ||
|
|
ba6b7f6e21 | ||
|
|
5c162ad7c3 | ||
|
|
64fc54cbaa | ||
|
|
a570a5c17f | ||
|
|
0048405ec0 | ||
|
|
c7c74a8aab | ||
|
|
e1bfd021c1 | ||
|
|
ec827cb25f | ||
|
|
b1dc7d2848 | ||
|
|
1994e47492 | ||
|
|
ef610d2784 | ||
|
|
7a85d0f66c | ||
|
|
432d454e28 | ||
|
|
ebfd8538bc | ||
|
|
d6be272269 | ||
|
|
f3ee15a96b | ||
|
|
f690464dc0 | ||
|
|
3b1c83ed6b | ||
|
|
70d8342312 | ||
|
|
71e3ea1a07 | ||
|
|
1450bdd32d | ||
|
|
92b552bf52 | ||
|
|
948d3e5f15 | ||
|
|
5547db3bf0 | ||
|
|
91755f9cfd | ||
|
|
95670b8dc5 | ||
|
|
b8ceff8342 | ||
|
|
0e268963b7 | ||
|
|
2c9f78350a | ||
|
|
b18f2118f2 | ||
|
|
9794d68fcb | ||
|
|
f33b1d6989 | ||
|
|
a335ff38a2 | ||
|
|
c4f2c23246 | ||
|
|
34b24889cc | ||
|
|
4f383d1bca | ||
|
|
9257e2b295 | ||
|
|
c66e10e725 | ||
|
|
5b2af16fad | ||
|
|
fd289990db | ||
|
|
5600501e7b | ||
|
|
01f16118ac | ||
|
|
e68384b7e2 | ||
|
|
325548b80f | ||
|
|
b8600aab3e | ||
|
|
fc39d4f879 | ||
|
|
9800be7c04 | ||
|
|
7b250b9ec9 | ||
|
|
7aa6a39955 | ||
|
|
1a59789871 | ||
|
|
522e46036d | ||
|
|
053cfb39df | ||
|
|
8195098e49 | ||
|
|
2ad833fd1f | ||
|
|
69d504a657 | ||
|
|
d5c5baad83 | ||
|
|
795cb4c46d | ||
|
|
5d8742632b | ||
|
|
979ce1be90 | ||
|
|
5c3da28b5e | ||
|
|
e3f52845d0 | ||
|
|
2bd00b3e41 | ||
|
|
06a0fa1708 | ||
|
|
3c76d41b70 | ||
|
|
ad81dee1a1 | ||
|
|
a4ca46b051 | ||
|
|
b94329db3f | ||
|
|
6d427b7b8b | ||
|
|
5aff3b2d44 | ||
|
|
9ada9d9630 | ||
|
|
2cbee21119 | ||
|
|
cd6f33ef27 | ||
|
|
4434ba4d6e | ||
|
|
69ffb18e7a | ||
|
|
347fed2bad | ||
|
|
365243a2b0 | ||
|
|
355d2b0f42 | ||
|
|
6a663c83c5 | ||
|
|
57476bb56a | ||
|
|
b99c4d2f6c | ||
|
|
ca76aa0524 | ||
|
|
dcf48cea38 | ||
|
|
a2fad6e62e | ||
|
|
2054e9299a | ||
|
|
6a3ddb3076 | ||
|
|
094a79fcd0 | ||
|
|
a29cf1b411 | ||
|
|
36a977becd | ||
|
|
73f35c8167 | ||
|
|
47bbac99ce | ||
|
|
e6850d62db | ||
|
|
567b220ea7 | ||
|
|
ab090ce4ea | ||
|
|
b8553b00d8 | ||
|
|
27f82a6284 | ||
|
|
af570b2b23 | ||
|
|
87bfe60ee7 | ||
|
|
a778863602 | ||
|
|
3916d4e459 | ||
|
|
aecaf46c53 | ||
|
|
a33f03c6ea | ||
|
|
866a410f23 | ||
|
|
f67bdb4668 | ||
|
|
8973bbdc3a | ||
|
|
0fb4075a62 | ||
|
|
bedbab8965 | ||
|
|
a82f4c4c43 | ||
|
|
3ee0ea750a | ||
|
|
717384dbdb | ||
|
|
a06a26bf2d | ||
|
|
34e5e5432b | ||
|
|
cc5791cbbd | ||
|
|
fb22efdc54 | ||
|
|
b74047a296 | ||
|
|
e573033c7e | ||
|
|
d121fb00a7 | ||
|
|
b9b5e7f826 | ||
|
|
2582f37da0 | ||
|
|
e1c108b14a | ||
|
|
fbf3e7630a | ||
|
|
2d298e60c2 | ||
|
|
fbabce651f | ||
|
|
ea1d5039e8 | ||
|
|
64cbf3ce00 | ||
|
|
9a99bb114f | ||
|
|
a6a395861e | ||
|
|
804f240d05 | ||
|
|
8a477f7f95 | ||
|
|
8a93905515 | ||
|
|
d401dcdfab | ||
|
|
d56ca7f02e | ||
|
|
b1725b380b | ||
|
|
70d0303f78 | ||
|
|
5a83c766e8 | ||
|
|
f3b833912f | ||
|
|
bdc546a8c3 | ||
|
|
c02d807a3d | ||
|
|
5cba098b1b | ||
|
|
ed5d521400 | ||
|
|
360fca950d | ||
|
|
511e0f3ed6 | ||
|
|
1959f42c41 | ||
|
|
f1d8472118 | ||
|
|
8d4adef787 | ||
|
|
560e9d5bf2 | ||
|
|
3eaa0b0e9c | ||
|
|
c78c305dde | ||
|
|
def5fcf7c2 | ||
|
|
c4a14a940d | ||
|
|
9d4540bf96 | ||
|
|
55422049a5 | ||
|
|
41263e4136 | ||
|
|
631f522d75 | ||
|
|
006c7eda64 | ||
|
|
83420814a0 | ||
|
|
ef15667182 | ||
|
|
405fff7f58 | ||
|
|
54fee9f016 | ||
|
|
9e451e8f32 | ||
|
|
11fb4abef3 | ||
|
|
6a8ad88933 | ||
|
|
7e9882e62d | ||
|
|
50e67354ce | ||
|
|
bfb770040e | ||
|
|
a7cbe6320c | ||
|
|
930f5d64ec | ||
|
|
adb2d574a3 | ||
|
|
9875370d92 | ||
|
|
558e7a3947 | ||
|
|
3a74d55e6c | ||
|
|
cd0cf5f214 | ||
|
|
4aa81c5344 | ||
|
|
55a9e3b202 | ||
|
|
cf08dffbe3 | ||
|
|
83e5824c82 | ||
|
|
b4a3060bcc | ||
|
|
359cac2a7a | ||
|
|
932ee82378 | ||
|
|
54f8c4b16e | ||
|
|
c869181371 | ||
|
|
e9a73b4672 | ||
|
|
4810331f30 | ||
|
|
a45cccca31 | ||
|
|
dec31ae490 | ||
|
|
af758921ca | ||
|
|
f26211bc90 | ||
|
|
4c4eeee2d1 | ||
|
|
ff21da6b48 | ||
|
|
743edfea17 | ||
|
|
d030dc6c79 | ||
|
|
602510cef7 | ||
|
|
f04f56750a | ||
|
|
9b6d834852 | ||
|
|
443228c030 | ||
|
|
1782f96fdf | ||
|
|
ecfc4209a5 | ||
|
|
9392890198 | ||
|
|
07d184b7cf | ||
|
|
703c3a838f | ||
|
|
1fca6cb348 | ||
|
|
983ec9605c | ||
|
|
8289ea132c | ||
|
|
5d19a030a8 | ||
|
|
105f1107f1 | ||
|
|
c83434b82a | ||
|
|
a1d0bfda5a | ||
|
|
d0f57e2c5b | ||
|
|
e0444c15cf | ||
|
|
20b4796d5b | ||
|
|
1c546579c0 | ||
|
|
97e0200a96 | ||
|
|
bfead72b3f | ||
|
|
a8cef4a3f3 | ||
|
|
c07663f336 | ||
|
|
d26b946bcd | ||
|
|
2bbd8e82f0 | ||
|
|
01b9401694 | ||
|
|
d8707e17d7 | ||
|
|
ee118b800e | ||
|
|
08b3fba1d2 | ||
|
|
da1359e352 | ||
|
|
357a58a976 | ||
|
|
4dfcfb92d3 | ||
|
|
d387f10f98 | ||
|
|
0ec95fe1d7 | ||
|
|
a25736f934 | ||
|
|
489cda3f4a | ||
|
|
cc04722d6f | ||
|
|
5f8f321cba | ||
|
|
67da742a41 | ||
|
|
18dbd6153f | ||
|
|
67c073dd50 | ||
|
|
07793f462b | ||
|
|
e12e6c5511 | ||
|
|
12bd694be3 | ||
|
|
3a833feb34 | ||
|
|
c2096fee0f | ||
|
|
368eb29e24 | ||
|
|
59252092fc | ||
|
|
466cdaf012 | ||
|
|
7948ab440f | ||
|
|
177224595a | ||
|
|
5b61fb0a92 | ||
|
|
32f6dc1070 | ||
|
|
871a0d2f5b | ||
|
|
8f1b6b071b | ||
|
|
2ea7efe2ea | ||
|
|
789ad68afd | ||
|
|
cfc8647108 | ||
|
|
5ed27edaa3 | ||
|
|
1adff7f6c7 | ||
|
|
c71cbc4f36 | ||
|
|
c8029c6597 | ||
|
|
15ba66a654 | ||
|
|
ebc676aea6 | ||
|
|
e8a396074c | ||
|
|
335fc3aaee | ||
|
|
77049dd60d | ||
|
|
903c568990 | ||
|
|
21f9ce34ff | ||
|
|
ce0f7e1fc3 | ||
|
|
6421264b9e | ||
|
|
4d04a3bda1 | ||
|
|
b2da4eed3e | ||
|
|
2853eb9066 | ||
|
|
af7ae9694f | ||
|
|
a2df5adfae | ||
|
|
e49648170e | ||
|
|
6272f98eef | ||
|
|
b520b21015 | ||
|
|
0cace42008 | ||
|
|
dedc7c00a0 | ||
|
|
9caa93a5aa | ||
|
|
67ba2be514 | ||
|
|
0e9a80746b | ||
|
|
840cb1154d | ||
|
|
b41c25c31a | ||
|
|
5c084c6ca7 | ||
|
|
3eca7fcc87 | ||
|
|
065a7eb4e7 | ||
|
|
64eb66f6d8 | ||
|
|
9c5f9df16b | ||
|
|
5b33376c9f | ||
|
|
1287657634 | ||
|
|
0697f3d609 | ||
|
|
3ef5dd4365 | ||
|
|
022d8cbef2 | ||
|
|
a8905acdaf | ||
|
|
96f1563b75 | ||
|
|
0457e9fb20 | ||
|
|
af2f551e58 | ||
|
|
004854183e | ||
|
|
d8117bc035 | ||
|
|
bc9ab2acb3 | ||
|
|
1f972cfa3d | ||
|
|
09931eaec6 | ||
|
|
0caf235b4a | ||
|
|
280b396b51 | ||
|
|
e5ecba33cf | ||
|
|
71a3df9d04 | ||
|
|
ebd17b7918 | ||
|
|
b9b7da40ac | ||
|
|
99e36b6dd1 | ||
|
|
ee9d4a4d0d | ||
|
|
3435e0c38a | ||
|
|
6d851ae852 | ||
|
|
37ad0c3445 | ||
|
|
cac8d1f5bf | ||
|
|
9e67db7af0 | ||
|
|
e56b154b4c | ||
|
|
a686a5bd8c | ||
|
|
77cc55e4f9 | ||
|
|
8955a3c1c7 | ||
|
|
6324cbf82c | ||
|
|
104ba85ebc | ||
|
|
9b5fbf099a | ||
|
|
63e9665e8d | ||
|
|
df5ae40387 | ||
|
|
b48f5f410e | ||
|
|
d7dfd29cc6 | ||
|
|
d6ba9f1bc7 | ||
|
|
ea7582b20f | ||
|
|
51847ba684 | ||
|
|
3eaee4daca | ||
|
|
d6ee79d742 | ||
|
|
894f9a53ec | ||
|
|
425f1bab9f | ||
|
|
5c4143d3fe | ||
|
|
65f755a5e2 | ||
|
|
9f346cf216 | ||
|
|
8cf0e35e80 | ||
|
|
2183d4bc98 | ||
|
|
d83d6bc033 | ||
|
|
3a8d557e4c | ||
|
|
5437eb4cfc | ||
|
|
06b4e4b151 | ||
|
|
7110b36b77 | ||
|
|
524cf39786 | ||
|
|
b2a69aeb07 | ||
|
|
7a9dbe8730 | ||
|
|
cf8edbd069 | ||
|
|
de014e8e9b | ||
|
|
3fb42aaeb1 | ||
|
|
5db26d6537 | ||
|
|
ad0526e5c1 | ||
|
|
4b650b296c | ||
|
|
d32907b8c8 | ||
|
|
171e63d7fa | ||
|
|
52809fa559 | ||
|
|
c4c0d30095 | ||
|
|
41a8c83eb4 | ||
|
|
0636b2e7ac | ||
|
|
ced94a4998 | ||
|
|
e55317a334 | ||
|
|
5c20a5182c | ||
|
|
40450af3c9 | ||
|
|
36ca2234bc | ||
|
|
89d52c190f | ||
|
|
28a2cbb289 | ||
|
|
2724d25016 | ||
|
|
0166de83da | ||
|
|
7811c1fc08 | ||
|
|
cc56524957 | ||
|
|
7cd173d2f7 | ||
|
|
4a960b4a68 | ||
|
|
cc04d07a18 | ||
|
|
7ca6a58ccb | ||
|
|
2cb1f213f0 | ||
|
|
f9589b7b66 | ||
|
|
868519a8c0 | ||
|
|
de7bca98f3 | ||
|
|
b06d31de70 | ||
|
|
7bcee16fe9 | ||
|
|
18fdef33f4 | ||
|
|
d8ac98888d | ||
|
|
ff0a29c7c8 | ||
|
|
fc4633a085 | ||
|
|
7585e7492c | ||
|
|
96ab0192ae | ||
|
|
137abe0fa9 | ||
|
|
d2d09a48f0 | ||
|
|
0a18a0ccea | ||
|
|
95f88e2ad1 | ||
|
|
6ff3c930ad | ||
|
|
74e548968f | ||
|
|
7f35cd0050 | ||
|
|
db6fe79dac | ||
|
|
a001aa24d8 | ||
|
|
cb0209f493 | ||
|
|
57a1ebfa50 | ||
|
|
7d649345c2 | ||
|
|
ffb229e321 | ||
|
|
ee9a42638a | ||
|
|
680d138809 | ||
|
|
2718646d11 | ||
|
|
0ba0aa26cd | ||
|
|
806be5e259 | ||
|
|
446621f87a | ||
|
|
41228df369 | ||
|
|
0d43a37b85 | ||
|
|
0ceb42cc74 |
@@ -1,9 +0,0 @@
|
||||
./bin
|
||||
./lib
|
||||
./db
|
||||
./dbd
|
||||
./html
|
||||
./include
|
||||
./templates
|
||||
**/O.*
|
||||
./QtC-*
|
||||
9
LICENSE
9
LICENSE
@@ -1,14 +1,11 @@
|
||||
Copyright (c) 1991-2011 UChicago Argonne LLC.
|
||||
Copyright (c) 1991-2006 The Regents of the University of California.
|
||||
Copyright (c) 2006-2011. Los Alamos National Security, LLC. Some of this
|
||||
material was produced under U.S. Government contract DE-AC52-06NA25396
|
||||
for Los Alamos National Laboratory (LANL), which is operated by Los Alamos
|
||||
National Security, LLC for the U.S. Department of Energy.
|
||||
Copyright (c) 1991-2004 University of Chicago and The Regents of the
|
||||
University of California. All rights reserved.
|
||||
|
||||
EPICS BASE is distributed subject to the following license conditions:
|
||||
|
||||
SOFTWARE LICENSE AGREEMENT
|
||||
Software: EPICS BASE
|
||||
Versions: 3.13.7 and higher
|
||||
|
||||
1. The "Software", below, refers to EPICS BASE (in either source code, or
|
||||
binary form and accompanying documentation). Each licensee is
|
||||
|
||||
96
MakeRelease
Executable file
96
MakeRelease
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Make Release - Creates an EPICS release
|
||||
# By Matthew Needes and Bob Zieman
|
||||
#
|
||||
# MakeRelease [-b]
|
||||
#
|
||||
# [-b] - For fully built release
|
||||
#
|
||||
|
||||
|
||||
if [ ! -d src ]; then
|
||||
echo "Cannot find src directory, are you at the top of EPICS base ?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
FULLY_BUILT=NO
|
||||
if [ "${1}" = "-b" ]; then
|
||||
FULLY_BUILT=YES
|
||||
shift
|
||||
if [ "${1}" != "." ]; then
|
||||
echo "TOP: Cannot create a fully built release.";
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
|
||||
# Retrieve EPICS release string from config/CONFIG_BASE_VERSION
|
||||
. config/CONFIG_BASE_VERSION
|
||||
|
||||
if [ -z "${EPICS_VERSION}" ];
|
||||
then
|
||||
echo "TOP: Cannot retrieve release number from config/CONFIG_BASE_VERSION";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
RELS="R${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}";
|
||||
|
||||
echo TOP: Creating ../${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.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# Create list of files and dirs to include in tar file
|
||||
|
||||
cd ..
|
||||
|
||||
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 \
|
||||
>> /tmp/make_release.out.$$;
|
||||
fi
|
||||
|
||||
# binary / library / default.dctsdr / <rec>Record.h / etc.
|
||||
if [ $FULLY_BUILT = "YES" ];
|
||||
then
|
||||
find base/include -name CVS -prune -o ! -type d -print \
|
||||
>> /tmp/make_release.out.$$;
|
||||
|
||||
find base/man -name CVS -prune -o ! -type d -print \
|
||||
>> /tmp/make_release.out.$$;
|
||||
|
||||
find base/bin -name CVS -prune -o ! -type d -print \
|
||||
>> /tmp/make_release.out.$$;
|
||||
|
||||
find base/lib -name CVS -prune -o ! -type d -print \
|
||||
>> /tmp/make_release.out.$$;
|
||||
|
||||
find base/dbd -name CVS -prune -o ! -type d -print \
|
||||
>> /tmp/make_release.out.$$;
|
||||
|
||||
fi
|
||||
|
||||
find base/config -name CVS -prune -o -name SCCS -prune -o ! -type d -print \
|
||||
| grep -v '/O\..*$' >> /tmp/make_release.out.$$
|
||||
|
||||
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
|
||||
|
||||
rm /tmp/make_release.out.$$
|
||||
|
||||
48
Makefile
48
Makefile
@@ -3,22 +3,52 @@
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
# Top Level EPICS Makefile
|
||||
# by Matthew Needes and Mike Bordua
|
||||
#
|
||||
# Notes:
|
||||
# The build, clean, install, and depends "commands" do not have
|
||||
# their own dependency lists; they are instead handled by
|
||||
# the build.%, clean.%, etc. dependencies.
|
||||
#
|
||||
# However, the release dependencies DOES require a complete
|
||||
# install because the release.% syntax is illegal.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP = .
|
||||
include $(TOP)/configure/CONFIG
|
||||
TOP=.
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
# Bootstrap resolution: tools not installed yet
|
||||
TOOLS = $(TOP)/src/tools
|
||||
DIRS = src config
|
||||
|
||||
DIRS += configure src
|
||||
INSTALL_BIN = $(INSTALL_LOCATION)/bin/$(HOST_ARCH)
|
||||
|
||||
src_DEPEND_DIRS = configure
|
||||
#
|
||||
# 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 clean depends buildInstall :: $(PERL_BOOTSTRAP_SCRIPTS_INSTALL)
|
||||
|
||||
include $(TOP)/configure/RULES_TOP
|
||||
RMDIR=$(PERL) $(TOP)/src/tools/rm.pl -rf
|
||||
|
||||
include $(TOP)/config/RULES_TOP
|
||||
|
||||
release:
|
||||
@echo TOP: Creating Release...
|
||||
@./MakeRelease
|
||||
|
||||
built_release:
|
||||
@echo TOP: Creating Fully Built Release...
|
||||
@./MakeRelease -b $(INSTALL_LOCATION)
|
||||
|
||||
$(INSTALL_BIN)/%.pl: $(TOP)/src/tools/%.pl
|
||||
$(PERL) $(TOP)/src/tools/installEpics.pl -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
|
||||
302
README
302
README
@@ -1,24 +1,290 @@
|
||||
---------------------------------------------------------
|
||||
EPICS Base - the central core of a control system toolkit
|
||||
---------------------------------------------------------
|
||||
$Id$
|
||||
|
||||
Copyright (c) 1991-2003 The University of Chicago, as Operator
|
||||
of Argonne National Laboratory.
|
||||
Copyright (c) 1991-2003 The Regents of the University of
|
||||
California, as Operator of Los Alamos National Laboratory.
|
||||
----------------------------------------------------------------------------
|
||||
3.13 EPICS BASE Notes and Build Instructions.
|
||||
- By Matthew Needes
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
EPICS Base Versions 3.13.7 and higher are distributed
|
||||
subject to a Software License Agreement found in the
|
||||
file LICENSE that is included with this distribution.
|
||||
Notes:
|
||||
|
||||
---------------------------------------------------------
|
||||
1. Before you can build or use EPICS, the environemnt variable HOST_ARCH
|
||||
must be set. The base/startup/HostArch script file has been provided
|
||||
to set HOST_ARCH.
|
||||
|
||||
Installation and release information can be found in the
|
||||
various files in the documentation subdirectory.
|
||||
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 file:
|
||||
|
||||
config/CONFIG_SITE - Build choices/HOST_ARCH/Vx location.
|
||||
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.Vx.mv167 CONFIG.Vx.YOUR_ARCH
|
||||
edit CONFIG.Vx.YOUR_ARCH - For compiler flags / etc.
|
||||
|
||||
edit CONFIG_SITE - Add architecture to CROSS_COMPILER_TARGET_ARCHS list.
|
||||
|
||||
1.3 To build EPICS:
|
||||
|
||||
cd epics/base
|
||||
gnumake - To install include files, build and install EPICS.
|
||||
(Same as "gnumake inc install")
|
||||
gnumake all - Same as "gnumake"
|
||||
gnumake clean - To clean temporary object files. Top level
|
||||
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 all"
|
||||
|
||||
1.4 "Partial" build commands:
|
||||
|
||||
The complete set of targets now supported are:
|
||||
|
||||
action
|
||||
arch
|
||||
action.arch
|
||||
dir
|
||||
dir.action
|
||||
dir.arch
|
||||
dir.action.arch
|
||||
|
||||
where:
|
||||
action can be clean, inc, install, depends, or build
|
||||
action can also be uninstall or rebuild at top level only
|
||||
dir is the name of a subdirectory.
|
||||
arch can be host, cross, sun4, solaris, mv167, ...
|
||||
|
||||
Examples are:
|
||||
|
||||
gnumake inc - To install include files
|
||||
gnumake install.host - To build and install EPICS for host arch.
|
||||
gnumake install.cross - To build and install EPICS for Vx archs.
|
||||
gnumake clean.sun4 - Cleans sun4 binaries in O.sun4 dirs only.
|
||||
gnumake install.sun4 - Builds sun4 only.
|
||||
gnumake install.mv167 - Builds mv167 only (a HOST_ARCH build must
|
||||
be complete before this can be issued).
|
||||
|
||||
NOTES:
|
||||
|
||||
1. EPICS binaries and shell scripts are installed into the directory
|
||||
$(INSTALL_LOCATION)/bin/ARCH.
|
||||
|
||||
2. EPICS libraries are installed into the $(INSTALL_LOCATION)/lib/ARCH
|
||||
directory.
|
||||
|
||||
3. During a normal build (a "make" or "make install"), the "depends"
|
||||
dependency will NOT be invoked. Only if "make depends" is run
|
||||
explicitly, or a "make built_release" is performed will dependencies
|
||||
be generated automatically.
|
||||
|
||||
4. Temporary objects are stored in src/DIR/O.ARCH, This allows objects
|
||||
for multiple architectures to be maintained at the same time.
|
||||
While developing source for EPICS, merely cd src/DIR/O.ARCH, and
|
||||
invoke "make":
|
||||
|
||||
cd epics/base/src/db/O.mv167
|
||||
make dbAccess.o
|
||||
|
||||
The above example instructs make to build dbAccess.o for the
|
||||
mv167 target.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Part 2 --- Configuration Files in epics/base/config
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG - This file is meant to be included in the low-level EPICS Makefiles.
|
||||
It includes the other EPICS makefiles, and allows individual developers
|
||||
and the EPICS system manager to override specific variables in the rest of
|
||||
the configuration.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_SITE - This file is meant to be changed only by the EPICS system
|
||||
manager. It specifies:
|
||||
|
||||
HOST_ARCH: The system's host architecture (sun4/hp700/etc).
|
||||
This now come from an environment variable.
|
||||
CROSS_COMPILER_HOST_ARCHS: List of unix architectures with cross_compilers.
|
||||
CROSS_COMPILER_TARGET_ARCHS: List of architectures to build epics for.
|
||||
VX_DIR: Location of vxWorks.
|
||||
STATIC_BUILD: Whether or not to build clients statically.
|
||||
etc.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG.Host.ARCH - This file defines a particular host architecture. It
|
||||
contains the following variables:
|
||||
|
||||
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.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
|
||||
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.
|
||||
----------------------------------------------------------------------------
|
||||
CONFIG_BASE_VERSION - Defines the version of base.
|
||||
----------------------------------------------------------------------------
|
||||
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.
|
||||
----------------------------------------------------------------------------
|
||||
RULES_ARCHS
|
||||
RULES_DIRS - Allows top-level type command syntax in low-level directories.
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Table of files to change when building and adding architectures.
|
||||
etc.
|
||||
|
||||
Filename SYS_MGR ADD_VX_ARCH ADD_UNIX_ARCH DEVELOPER
|
||||
|
||||
CONFIG m - - m
|
||||
CONFIG_SITE m m m -
|
||||
CONFIG_SITE_ENV m - - -
|
||||
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.Host - - - -
|
||||
CONFIG_BASE - - - -
|
||||
CONFIG_BASE_VERSION - - - -
|
||||
CONFIG_COMMON - - - -
|
||||
CONFIG_ENV - - - -
|
||||
RULES_ARCHS - - - -
|
||||
RULES_DIRS - - - -
|
||||
RULES_TOP - - - -
|
||||
|
||||
m - Modify an existing file.
|
||||
c - Create a new file.
|
||||
|
||||
* - Create an ARCH_CLASS file only if you are adding a
|
||||
fundamentally new architecture, such as hp700 or
|
||||
a SPARC VME board. If your board is 68k based,
|
||||
you will not need to create CONFIG.Vx.68k,
|
||||
since it already exists !
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
Part 3 --- Configuration File Inclusion Tree Examples
|
||||
----------------------------------------------------------------------------
|
||||
---------------------------- hkv2f example --------------------------------
|
||||
(files are numbered in the order of their inclusion)
|
||||
|
||||
src/db/Makefile.Vx (An example EPICS makefile)
|
||||
^ ^
|
||||
| +--- 2. RULES.Vx
|
||||
| Default rules.
|
||||
+----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)
|
||||
^ ^
|
||||
| +--- 2. RULES.Vx
|
||||
| Default rules.
|
||||
+----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
|
||||
|
||||
Additional information about EPICS including mailing list
|
||||
archives and subscription instructions, documentation and
|
||||
training materials, additional components, links to other
|
||||
websites etc. is available on the EPICS home page at
|
||||
http://www.aps.anl.gov/epics/
|
||||
|
||||
|
||||
17
README.Linux
Normal file
17
README.Linux
Normal file
@@ -0,0 +1,17 @@
|
||||
Special Notes on Linux
|
||||
|
||||
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.
|
||||
|
||||
You MUST start caRepeater by hand before running a client.
|
||||
Prior to running a client, you must run:
|
||||
|
||||
caRepeater &
|
||||
|
||||
---
|
||||
jpq@nwu.edu
|
||||
|
||||
|
||||
|
||||
|
||||
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/makeStatTbl.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!
|
||||
|
||||
|
||||
181
README.WIN32
Normal file
181
README.WIN32
Normal file
@@ -0,0 +1,181 @@
|
||||
|
||||
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 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, 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.
|
||||
|
||||
1) see what you have
|
||||
--------------------
|
||||
|
||||
To compile EPICS on WIN32, we need
|
||||
|
||||
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:
|
||||
|
||||
gnu make - www.gnu.org (we used 3.76)
|
||||
perl - www.perl.org (we used 5.003)
|
||||
|
||||
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!
|
||||
|
||||
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 <EPICS>base/bin/WIN32
|
||||
- The System (for me it's in NT40...)
|
||||
- The MS Visual C compiler binaries
|
||||
|
||||
Check with e.g.:
|
||||
|
||||
>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 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:\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.
|
||||
So for pc486 the settings in CONFIG_SITE where
|
||||
you specify the location of VxWorks are ignored,
|
||||
this information is taken from WIND_BASE and _HOST_TYPE!!
|
||||
|
||||
MSDevDir=C:\MSDEV
|
||||
include=c:\msdev\include;c:\msdev\mfc\include
|
||||
lib=c:\msdev\lib;c:\msdev\mfc\lib
|
||||
|
||||
Select host arch to build:
|
||||
HOST_ARCH=WIN32 (used by the make system)
|
||||
|
||||
Set the "TMP" environment variable if you need to specify where
|
||||
temporary files are created.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
-----------------
|
||||
|
||||
Prepare apx. 2 ltr. Tee and type:
|
||||
|
||||
cd <epics>/base
|
||||
make (use gnu make)
|
||||
|
||||
Watch for errors and send them to me.
|
||||
|
||||
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 created things.
|
||||
Very seldom this is fatal, so you have to
|
||||
stop gnumake and restart it.
|
||||
* 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
|
||||
|
||||
|
||||
54
README.cygwin32
Normal file
54
README.cygwin32
Normal file
@@ -0,0 +1,54 @@
|
||||
Compiling EPICS on cygwin32 (Windows95/NT)
|
||||
------------------------------------------
|
||||
|
||||
Right now this port of EPICS base to cygwin32 R1.3.3 fails
|
||||
because cygwin does not yet support point-to-point interfaces.
|
||||
|
||||
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/...
|
||||
The latest cygwin distribution, available from
|
||||
http://www.cygwin.com
|
||||
|
||||
BUILD INSTRUCTIONS
|
||||
------------------
|
||||
|
||||
|
||||
1) Install the cygwin binary release
|
||||
------------------------------------
|
||||
|
||||
2) Install the epics base distribution
|
||||
--------------------------------------
|
||||
cp <dirname>\<basereleasename>.tar.gz .
|
||||
gunzip -d <basereleasename>.tar.gz
|
||||
tar xvf <basereleasename>.tar
|
||||
chmod +w -R *
|
||||
cd <epicsBaseDir>
|
||||
|
||||
3) Set environment variables and path using cygwin32.bat
|
||||
-------------------------------------------------------------
|
||||
<edit <epicsBaseDir>/startup/cygwin32.bat changing paths if necessary>
|
||||
cd <epicsBaseDir>\startup
|
||||
edit cygwin32.bat
|
||||
<execute cygwin32.bat>
|
||||
cygwin
|
||||
|
||||
4) Set site specific parms in epics config files
|
||||
------------------------------------------------
|
||||
cd <epicsBaseDir>\config
|
||||
<edit CONFIG_SITE* files>
|
||||
|
||||
5) Build epics base
|
||||
-------------------
|
||||
cd <epicsBaseDir>
|
||||
make
|
||||
|
||||
6) Create an example EPICS application (<epicsBaseDir> needs drive letter)
|
||||
--------------------------------------------------------------------------
|
||||
mkdir <epicsappdir>
|
||||
cd <epicsappdir>
|
||||
perl <epicsBaseDir>\bin\cygwin32\makeBaseApp.pl -l
|
||||
perl <epicsBaseDir>\bin\cygwin32\makeBaseApp.pl -t example example
|
||||
make
|
||||
|
||||
28
README.hp700_alpha
Normal file
28
README.hp700_alpha
Normal file
@@ -0,0 +1,28 @@
|
||||
#
|
||||
# supplement README for HP700
|
||||
#
|
||||
# Johnny Tang 5-29-97
|
||||
#
|
||||
|
||||
1. VxWorks 5.2 for HP-UX
|
||||
|
||||
- Make sure that you have set VX_DIR and VX_GNU to your
|
||||
VxWorks root directory.
|
||||
|
||||
- Under $(VX_DIR), create a soft link:
|
||||
hp700.68k -> hp9700.68k
|
||||
|
||||
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.
|
||||
34
README.niCpu030
Normal file
34
README.niCpu030
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
The CPU030 may need to have the nivxi path set correctly:
|
||||
From the vxWorks shell type "vxitedit" (you may need to
|
||||
loading the NI vxitedit package first)
|
||||
take option 2
|
||||
take option 3
|
||||
type list
|
||||
type modify 0
|
||||
type in the correct path when promped
|
||||
(the path should end in nivxi
|
||||
and should traverse the niCpu030
|
||||
directories shipped with the 030
|
||||
ie something of the form "???/config/niCPU030/nivxi"
|
||||
type save
|
||||
type exit
|
||||
.
|
||||
.
|
||||
.
|
||||
|
||||
see "Getting Started with Your VXIcpu-030" from NI
|
||||
|
||||
You may may need to setup front panel to backplane trigger
|
||||
routing:
|
||||
|
||||
To take a TTL input and map it to VXI backplane ECL trigger 0
|
||||
type in (to the vxWorks shell):
|
||||
|
||||
epvxiRouteTriggerECL(<logical address>, 1, 0)
|
||||
|
||||
where <logical address> specifies the card with the
|
||||
front panel trigger connection.
|
||||
|
||||
johill@lanl.gov
|
||||
|
||||
25
README.solaris
Normal file
25
README.solaris
Normal file
@@ -0,0 +1,25 @@
|
||||
----------------------------------------------------------------------------
|
||||
EPICS Notes for Solaris
|
||||
- By Andrew Johnson
|
||||
|
||||
updated 12-16-96 by Jeff Hill
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Notes:
|
||||
|
||||
1. In order to build EPICS under Solaris 2, you must ensure that the
|
||||
solaris directory /usr/ccs/bin is in your search path.
|
||||
|
||||
2. It is now possible to compile EPICS under Solaris 2 using either the
|
||||
GNU gcc compiler or the Sun SPARCworks ANSI C compiler. The g++/
|
||||
Sun SPARCworks ANSI C compiler combination has compiled and linked
|
||||
without errors but has not been extensively tested.
|
||||
|
||||
3. EPICS under Solaris 2 no longer uses the UCB compatability libraries.
|
||||
In order to ensure that the /usr/ucblib files are not inherited, you
|
||||
should ensure that your LD_LIBRARY_PATH environment variable does not
|
||||
include /usr/ucblib when you build any of the host tools.
|
||||
|
||||
--
|
||||
anj@ast.cam.ac.uk
|
||||
2358
RELEASE_NOTES.html
Normal file
2358
RELEASE_NOTES.html
Normal file
File diff suppressed because it is too large
Load Diff
10
SkeletonCOPYRIGHT_UniversityOfChicago
Normal file
10
SkeletonCOPYRIGHT_UniversityOfChicago
Normal file
@@ -0,0 +1,10 @@
|
||||
/*****************************************************************
|
||||
COPYRIGHT NOTIFICATION
|
||||
*****************************************************************
|
||||
|
||||
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
|
||||
|
||||
This software was developed under a United States Government license
|
||||
described on the COPYRIGHT_UniversityOfChicago file included as part
|
||||
of this distribution.
|
||||
**********************************************************************/
|
||||
91
config/CONFIG
Normal file
91
config/CONFIG
Normal file
@@ -0,0 +1,91 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# The developer may edit this file.
|
||||
# assume T_A is the host arch if not specified
|
||||
|
||||
#
|
||||
# EPICS base definitions
|
||||
#
|
||||
include $(EPICS_BASE)/config/CONFIG_COMMON
|
||||
|
||||
#
|
||||
# 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.$(BUILD_TYPE).$(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_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.
|
||||
#
|
||||
# EXAMPLES
|
||||
# --------
|
||||
# Build client objects statically ? must be either YES or NO
|
||||
#STATIC_BUILD=NO
|
||||
# Unix Optimization, must be either YES or NO
|
||||
#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
|
||||
#UNIX_WARN=YES
|
||||
# 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
|
||||
|
||||
261
config/CONFIG.Host.Borland
Normal file
261
config/CONFIG.Host.Borland
Normal file
@@ -0,0 +1,261 @@
|
||||
# CONFIG.Host.Borland
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Borland
|
||||
|
||||
BORLAND_LIB = $(BORLAND)\\lib
|
||||
BORLAND_INC = $(BORLAND)\\include
|
||||
BORLAND_BIN = $(BORLAND)\\bin
|
||||
|
||||
#
|
||||
#
|
||||
ANSI = ACC
|
||||
CPLUSPLUS = CCC
|
||||
|
||||
#
|
||||
# -q supress command line banner
|
||||
WINLINK = $(BORLAND_BIN)/ilink32 -q
|
||||
|
||||
# -l specifies default language
|
||||
# -fo Renames the output .RES file
|
||||
RCCMD = $(BORLAND_BIN)/brcc32 $(subst -I,-i,$(INCLUDES)) -l0x409 -fo$@ $<
|
||||
|
||||
ARCMD = $(BORLAND_BIN)/tlib $@
|
||||
|
||||
#
|
||||
# Configure Borland C compiler
|
||||
# -q suppress compiler identification banner
|
||||
# -tWM generate a 32-bit multi-threaded target
|
||||
# -tWD generate a .DLL executable
|
||||
# -a8 quad word alignment
|
||||
# -D_WIN32 macro defined to be consistant with Microsoft Visual C++
|
||||
# -D_RTLDLL macro defined to use Borland C++ RTL library
|
||||
CCLINKOPT = -q -tWM -tWD -a8 -D_WIN32 -D_RTLDLL
|
||||
ACC = $(BORLAND_BIN)/bcc32 $(CCLINKOPT)
|
||||
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.Host.
|
||||
#
|
||||
ifdef NO_BORLAND_STDC
|
||||
ACC_ANSI = $(ACC)
|
||||
ACC_STRICT = $(ACC)
|
||||
else
|
||||
ACC_ANSI = $(ACC) -D__STDC__=0
|
||||
ACC_STRICT = $(ACC) -D__STDC__=0
|
||||
endif
|
||||
ACC_TRAD = $(ACC)
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
# some warning message here are always disabled because they are
|
||||
# trivial and numerous
|
||||
# -w-8012 Comparing signed and unsigned values
|
||||
# -w-8060 Possibly incorrect assignment
|
||||
# -w-8071 Conversion may lose significant digits
|
||||
ACC_WARN_YES = -w -g0 -w-8012 -w-8060 -w-8071
|
||||
# -w- display warnings off
|
||||
ACC_WARN_NO = -w-
|
||||
|
||||
#
|
||||
# -k- turn off standard stack frame
|
||||
# -H- turn off precompiled headers
|
||||
# -R- don't include browser info in .obj files
|
||||
# -O1 optimization for size
|
||||
# -v- turn off source debugging
|
||||
# -vi control expansion of inline functions
|
||||
ACC_OPT_YES = -k- -H- -R- -O1 -v- -vi
|
||||
|
||||
#
|
||||
ACC_OPT_NO =
|
||||
|
||||
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
ACC_SLIBS_YES=
|
||||
ACC_SLIBS_NO=
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.Host.
|
||||
#
|
||||
CCC = $(BORLAND_BIN)/bcc32 $(CCLINKOPT)
|
||||
ifdef NO_BORLAND_STDC
|
||||
CCC_NORMAL = $(CCC)
|
||||
CCC_STRICT = $(CCC)
|
||||
else
|
||||
CCC_NORMAL = $(CCC) -D__STDC__=0
|
||||
CCC_STRICT = $(CCC) -D__STDC__=0
|
||||
endif
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
# -w-8012 Comparing signed and unsigned values
|
||||
# -w-8060 Possibly incorrect assignment
|
||||
# -w-8071 Conversion may lose significant digits
|
||||
CCC_WARN_YES = -w -g0 -w-8012 -w-8060 -w-8071 -w-8008 -w-8027 -w-8066 -w-8080 -w-8004
|
||||
# -w- display warnings off
|
||||
CCC_WARN_NO = -w-
|
||||
|
||||
#
|
||||
# -k- turn off standard stack frame
|
||||
# -H- Turn off precompiled headers
|
||||
# -R- Don't include browser info in .obj files
|
||||
# -O1 optimization for size
|
||||
# -v- turn off source debugging
|
||||
# -vi control expansion of inline functions
|
||||
CCC_OPT_YES = -k- -H- -R- -O1 -v- -vi
|
||||
|
||||
#
|
||||
CCC_OPT_NO =
|
||||
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
CCC_SLIBS_YES=
|
||||
CCC_SLIBS_NO=
|
||||
|
||||
PROD_VERSION=3.13
|
||||
# -c case sensitive linking
|
||||
# -C clear state before linking
|
||||
# -Gi generate import library
|
||||
# -Gn no state files
|
||||
# -Tpd targets a Windows .DLL file
|
||||
# -x no map
|
||||
# -w display warnings on
|
||||
LINK_OPT_FLAGS_YES = -c -C -Gi -Gn -Tpd -x -w
|
||||
LINK_OPT_FLAGS_NO = -c -C -Gi -Gn -Tpd -x -w-
|
||||
WIN32_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
|
||||
OPT_LDFLAGS =
|
||||
|
||||
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
|
||||
BORLANDC=1
|
||||
|
||||
EXE=.exe
|
||||
OBJ=.obj
|
||||
RES=.res
|
||||
|
||||
# Problem: BorlandC does not recognize *.cc as C++ source,
|
||||
# we have to compile xx.cc using the flag -P xx.cc,
|
||||
SOURCE_CXXFLAG = -P -D__cplusplus
|
||||
|
||||
# Operating system flags
|
||||
OP_SYS_CFLAGS =
|
||||
|
||||
#
|
||||
# Borland specific include files
|
||||
#
|
||||
OP_SYS_INCLUDES = -I$(BORLAND_INC)
|
||||
#
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
#
|
||||
# specify dll .def file only if it exists
|
||||
#
|
||||
#DLL_DEF_FLAG = $(addprefix /def:,$(wildcard ../$(LIBRARY).def))
|
||||
DLL_DEF_FLAG = $(subst /,\\,$(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) $(WIN32_DLLFLAGS) -L$(BORLAND_LIB) -L$(BORLAND_LIB)\\Psdk c0d32.obj
|
||||
|
||||
# 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))
|
||||
|
||||
#ifeq ($(strip $(SHARED_LIBRARIES)),NO)
|
||||
#LIBNAME = $(LIBRARY).lib
|
||||
#else
|
||||
LIBNAME = $(LIBRARY)Obj.lib
|
||||
#endif
|
||||
|
||||
# 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 $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
|
||||
|
||||
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib ) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(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 = $(patsubst $(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 $(wildcard $($(lib)_DIR)/$(lib).lib $($(lib)_DIR)/$(lib)Obj.lib $(EPICS_BASE_LIB)/$(lib).lib $(EPICS_BASE_LIB)/$(lib)Obj.lib) $(filter $(LIBRARY)$(OBJECT_LIB_EXT), $(lib)$(OBJECT_LIB_EXT)) ))
|
||||
|
||||
USR_LDLIBS = $(PRODNAME_DEPLIBS) $(PROD_DEPLIBS) $(USR_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib)
|
||||
|
||||
DLL_LDLIBS = $(DLL_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
|
||||
|
||||
#multithreaded import library
|
||||
LIBSUF=mti
|
||||
# -c case sensitive linking
|
||||
# -C clear state before linking
|
||||
# -Gn no state files
|
||||
# -Tpe targets a Windows .EXE file
|
||||
# -x no map
|
||||
# -w display warnings on
|
||||
LDFLAGS += -c -C -Gn -Tpe -x -w -L$(BORLAND_LIB) -L$(BORLAND_LIB)\\Psdk
|
||||
LINKSTARTUP = c0x32.obj
|
||||
LINKLIBS=import32.lib cw32$(LIBSUF).lib
|
||||
|
||||
LINK.c = $(WINLINK) $(LDFLAGS) $(LINKSTARTUP)
|
||||
LINK.cc = $(WINLINK) $(LDFLAGS) $(LINKSTARTUP)
|
||||
|
||||
78
config/CONFIG.Host.Linux
Normal file
78
config/CONFIG.Host.Linux
Normal file
@@ -0,0 +1,78 @@
|
||||
# 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 = -Wall
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES = -static
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES = -fPIC
|
||||
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 = -Wall
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES = -static
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES =
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -MM
|
||||
CCC_SHRLIB_CFLAGS_YES = -fPIC
|
||||
CCC_SHRLIB_LDFLAGS_YES = -shared -Wl,-soname,$@
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
|
||||
77
config/CONFIG.Host.UnixCommon
Normal file
77
config/CONFIG.Host.UnixCommon
Normal file
@@ -0,0 +1,77 @@
|
||||
|
||||
#
|
||||
# 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:%=.%)
|
||||
|
||||
DLL_LIBS = $(patsubst $(LIBRARY),, $(PROD_LIBS) $(USR_LIBS))
|
||||
DLL_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(DLL_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 $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*))))
|
||||
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
|
||||
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $(wildcard $($(lib)_DIR)/lib$(lib).* $(EPICS_BASE_LIB)/lib$(lib).*)))
|
||||
|
||||
#--------------------------------------------------
|
||||
# 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%)
|
||||
|
||||
#--------------------------------------------------
|
||||
# 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
|
||||
255
config/CONFIG.Host.WIN32
Normal file
255
config/CONFIG.Host.WIN32
Normal file
@@ -0,0 +1,255 @@
|
||||
# CONFIG.Host.WIN32
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.WIN32
|
||||
|
||||
#
|
||||
# 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 -i . -i .. -I$(INSTALL_INCLUDE)/os/$(OS_CLASS) -I$(INSTALL_INCLUDE) $(INSTALL_INCLUDES) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS) -I$(EPICS_BASE_INCLUDE) -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 = $(patsubst $(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%))
|
||||
|
||||
48
config/CONFIG.Host.alpha
Normal file
48
config/CONFIG.Host.alpha
Normal file
@@ -0,0 +1,48 @@
|
||||
# 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_SHRLIB_CFLAGS_YES =
|
||||
CCC_SHRLIB_LDFLAGS_YES = -shared
|
||||
CCC_DEPENDS_FLAG =
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_OSF_SOURCE
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
34
config/CONFIG.Host.cygwin32
Normal file
34
config/CONFIG.Host.cygwin32
Normal file
@@ -0,0 +1,34 @@
|
||||
# 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 =
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
# cygwin32 overrides to eliminate following warning message -
|
||||
# -fPIC ignored for target (all code is position independent)
|
||||
GCC_DEP_CFLAGS = -D_REENTRANT
|
||||
G++_DEP_CFLAGS = -D_REENTRANT
|
||||
|
||||
83
config/CONFIG.Host.hp700
Normal file
83
config/CONFIG.Host.hp700
Normal file
@@ -0,0 +1,83 @@
|
||||
# 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
|
||||
ACC_DEP_CFLAGS=+DAportable
|
||||
|
||||
# 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
|
||||
HPCC_DEP_CFLAGS=+DAportable
|
||||
|
||||
#Old HP C++ compiler
|
||||
#CCC = CC
|
||||
#CCC_NORMAL = $(CCC) +p
|
||||
|
||||
#New HP C++ compiler
|
||||
CCC = aCC
|
||||
# avoid treating "future errors" as actual errors
|
||||
CCC_NORMAL = $(CCC) -AA -Aa +W302 +W829 +W818 +W392 +W469 +W495 +W749 +W667 +W392 +W684
|
||||
CCC_STRICT = $(CCC) -AA -Aa +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_SHRLIB_CFLAGS_YES = +Z
|
||||
# shared libs will be found by searching environment variable SHLIB_PATH,
|
||||
# then by searching the specified path (see below)
|
||||
CCC_SHRLIB_LDFLAGS_YES = -b
|
||||
CCC_DEPENDS_FLAG = +m
|
||||
CCC_DEP_CFLAGS=+DAportable
|
||||
|
||||
# +DAportable causes portable object code to be created for execution
|
||||
# on different PA-Risc machines
|
||||
|
||||
empty:=
|
||||
space:= $(empty) $(empty)
|
||||
|
||||
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_CXXFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_LDLIBS =
|
||||
ARCH_DEP_LDFLAGS = -Wl,+b,$(subst $(space),:,$(DEFAULT_SHRLIB_SEARCH_PATH)),+s
|
||||
50
config/CONFIG.Host.sgi
Normal file
50
config/CONFIG.Host.sgi
Normal file
@@ -0,0 +1,50 @@
|
||||
# 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 =
|
||||
CCC_SHRLIB_CFLAGS_YES = -KPIC
|
||||
CCC_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
####KRCC = ??
|
||||
|
||||
ARCH_DEP_CFLAGS = -DSGI
|
||||
ARCH_DEP_LDFLAGS =
|
||||
|
||||
66
config/CONFIG.Host.solaris
Normal file
66
config/CONFIG.Host.solaris
Normal file
@@ -0,0 +1,66 @@
|
||||
# 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
|
||||
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
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -xM1
|
||||
CCC_SHRLIB_CFLAGS_YES =
|
||||
CCC_SHRLIB_LDFLAGS_YES = -G -h $@
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
ARCH_DEP_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
POSIX_CPPFLAGS_YES += -D__EXTENSIONS__
|
||||
|
||||
# socket and nsl needed by libca.a
|
||||
ARCH_DEP_LDLIBS = -lsocket -lnsl
|
||||
|
||||
10
config/CONFIG.Host.solaris-x86
Normal file
10
config/CONFIG.Host.solaris-x86
Normal file
@@ -0,0 +1,10 @@
|
||||
# CONFIG.Host.solaris-x86
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.solaris-x86
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG.Host.solaris
|
||||
|
||||
# Solaris on x86
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
29
config/CONFIG.Host.solarisGnu
Normal file
29
config/CONFIG.Host.solarisGnu
Normal file
@@ -0,0 +1,29 @@
|
||||
# CONFIG.Host.solarisGnu
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.solarisGnu
|
||||
|
||||
ARCH_CLASS = solaris
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar
|
||||
_AR = $(AR) $(ARFLAGS)
|
||||
G++_AR = $(_AR)
|
||||
CCC_AR = $(CCC) -xar -o
|
||||
ARCMD = $($(CPLUSPLUS)_AR) $@
|
||||
RANLIB =
|
||||
|
||||
#==========================
|
||||
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
|
||||
ANSI=GCC
|
||||
CPLUSPLUS=G++
|
||||
#==========================
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
ARCH_DEP_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
|
||||
# socket and nsl needed by libca.a
|
||||
ARCH_DEP_LDLIBS += -lsocket -lnsl
|
||||
|
||||
86
config/CONFIG.Host.sun4
Normal file
86
config/CONFIG.Host.sun4
Normal file
@@ -0,0 +1,86 @@
|
||||
# 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_SHRLIB_CFLAGS_YES = -pic
|
||||
CCC_SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
|
||||
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
|
||||
|
||||
142
config/CONFIG.LynxOS
Normal file
142
config/CONFIG.LynxOS
Normal file
@@ -0,0 +1,142 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $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_INCLUDE_YES =
|
||||
VX_GNU_YES =
|
||||
VX_GNU_BIN_YES =
|
||||
VX_GNU_LIB_YES =
|
||||
|
||||
|
||||
# pre Torando directory definitions
|
||||
VX_INCLUDE_NO =
|
||||
VX_GNU_NO =
|
||||
VX_GNU_BIN_NO =
|
||||
|
||||
# directory definitions
|
||||
VX_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
|
||||
|
||||
138
config/CONFIG.Vx
Normal file
138
config/CONFIG.Vx
Normal file
@@ -0,0 +1,138 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $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_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_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_INCLUDE = $(VX_INCLUDE_$(TORNADO))
|
||||
VX_GNU = $(VX_GNU_$(TORNADO))
|
||||
GNU_BIN = $(VX_GNU_BIN_$(TORNADO))
|
||||
GNU_LIB = $(VX_GNU_LIB_$(TORNADO))
|
||||
export GCC_EXEC_PREFIX = $(GNU_LIB)/gcc-lib/
|
||||
export WIND_BASE = $(VX_DIR)
|
||||
|
||||
#--------------------------------------------------
|
||||
# VxWorks command definitions
|
||||
|
||||
GCC = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
AR = $(GNU_BIN)/ar$(CMPLR_SUFFIX)
|
||||
CPP = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc -x c -E
|
||||
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))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Override flags in CONFIG_COMMON
|
||||
GCC_DEP_CFLAGS = -D_REENTRANT
|
||||
G++_DEP_CFLAGS = -D_REENTRANT
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_INCLUDES = -I$(VX_INCLUDE)
|
||||
OP_SYS_CFLAGS = -DvxWorks -DV5_vxWorks -fno-builtin
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
# Fix for vxWorks headers using macros defined in
|
||||
# vxWorks.h but not including vxWorks.h
|
||||
ifeq ($(TORNADO), YES)
|
||||
OP_SYS_CFLAGS += -include $(VX_INCLUDE)/vxWorks.h
|
||||
endif
|
||||
|
||||
#--------------------------------------------------
|
||||
# Optimization flag overrides
|
||||
GCC_OPT_YES = -O2 -fstrength-reduce
|
||||
GCC_OPT_NO = -g
|
||||
G++_OPT_YES = -O2 -fstrength-reduce
|
||||
G++_OPT_NO = -g
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
16
config/CONFIG.Vx.hkv2f
Normal file
16
config/CONFIG.Vx.hkv2f
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=MC68020
|
||||
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
|
||||
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
|
||||
|
||||
16
config/CONFIG.Vx.mv162
Normal file
16
config/CONFIG.Vx.mv162
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=MC68040
|
||||
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=MC68LC040
|
||||
ARCH_DEP_CFLAGS = -m68040 -msoft-float
|
||||
16
config/CONFIG.Vx.mv167
Normal file
16
config/CONFIG.Vx.mv167
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=MC68040
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
16
config/CONFIG.Vx.mv177
Normal file
16
config/CONFIG.Vx.mv177
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=MC68060
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
16
config/CONFIG.Vx.mv2700
Normal file
16
config/CONFIG.Vx.mv2700
Normal file
@@ -0,0 +1,16 @@
|
||||
|
||||
# $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 = mv2700
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
|
||||
ARCH_DEP_CFLAGS = -mcpu=604
|
||||
|
||||
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 -DNICPU030
|
||||
ARCH_DEP_CFLAGS = -m68030
|
||||
|
||||
17
config/CONFIG.Vx.pc486
Normal file
17
config/CONFIG.Vx.pc486
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
# CONFIG.Vx.pc486
|
||||
#
|
||||
# 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
|
||||
|
||||
16
config/CONFIG.Vx.ppc603
Normal file
16
config/CONFIG.Vx.ppc603
Normal file
@@ -0,0 +1,16 @@
|
||||
# $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
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC603 -DTRUE=1
|
||||
ARCH_DEP_CFLAGS = -mcpu=603 --no-builtin -mstrict-align
|
||||
|
||||
# ARCH_DEP_CFLAGS+= -fsigned-char #May need for calcPerform.c
|
||||
16
config/CONFIG.Vx.ppc603_long
Normal file
16
config/CONFIG.Vx.ppc603_long
Normal file
@@ -0,0 +1,16 @@
|
||||
# $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
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC603 -DTRUE=1
|
||||
ARCH_DEP_CFLAGS = -mcpu=603 --no-builtin -mstrict-align -mlongcall
|
||||
|
||||
# ARCH_DEP_CFLAGS+= -fsigned-char #May need for calcPerform.c
|
||||
17
config/CONFIG.Vx.ppc604
Normal file
17
config/CONFIG.Vx.ppc604
Normal file
@@ -0,0 +1,17 @@
|
||||
# $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
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC604 -D_GNU_TOOL -DTRUE=1
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 --no-builtin -mstrict-align
|
||||
|
||||
# ARCH_DEP_CFLAGS+= -fsigned-char #May need for calcPerform.c
|
||||
|
||||
17
config/CONFIG.Vx.ppc604_long
Normal file
17
config/CONFIG.Vx.ppc604_long
Normal file
@@ -0,0 +1,17 @@
|
||||
# $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
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC604 -D_GNU_TOOL -DTRUE=1
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 --no-builtin -mstrict-align -mlongcall
|
||||
|
||||
# ARCH_DEP_CFLAGS+= -fsigned-char #May need for calcPerform.c
|
||||
|
||||
16
config/CONFIG.Vx.sbs_pc6
Normal file
16
config/CONFIG.Vx.sbs_pc6
Normal file
@@ -0,0 +1,16 @@
|
||||
# Created by Korobov for SBS PC6
|
||||
# CONFIG.Vx.sbs_pc6
|
||||
#
|
||||
# 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 = sbs_pc6
|
||||
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PENTIUM -DCPU_VARIANT=PENTIUM -D_X86_
|
||||
ARCH_DEP_CFLAGS = -mpentium
|
||||
ARCH_DEP_CXXFLAGS += -x 'c++'
|
||||
ARCH_DEP_CFLAGS += -fno-builtin -fno-defer-pop
|
||||
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
|
||||
|
||||
60
config/CONFIG_BASE
Normal file
60
config/CONFIG_BASE
Normal file
@@ -0,0 +1,60 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# the order of following list is important
|
||||
|
||||
#
|
||||
# for c++ build add the dirs gdd and cas after ca
|
||||
# (and uncomment the c++ files in src/lbCom/Makefile.Unix)
|
||||
#
|
||||
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)
|
||||
|
||||
31
config/CONFIG_BASE_VERSION
Normal file
31
config/CONFIG_BASE_VERSION
Normal file
@@ -0,0 +1,31 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# EPICS Version information
|
||||
#
|
||||
# This file is interpreted by the Bourne Shell (MakeRelease), so spaces are
|
||||
# not allowed around the '=' signs or in unquoted values.
|
||||
#
|
||||
|
||||
EPICS_VERSION=3
|
||||
EPICS_REVISION=13
|
||||
EPICS_MODIFICATION=10
|
||||
EPICS_UPDATE_NAME=
|
||||
EPICS_UPDATE_LEVEL=0
|
||||
|
||||
EPICS_LOCAL_NAME=B
|
||||
EPICS_LOCAL_VERSION=0
|
||||
|
||||
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}.$(EPICS_LOCAL_NAME)$(EPICS_LOCAL_VERSION)"
|
||||
|
||||
CVS_DATE="\$$Date$$"
|
||||
|
||||
247
config/CONFIG_COMMON
Normal file
247
config/CONFIG_COMMON
Normal file
@@ -0,0 +1,247 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# CONFIG_COMMON - Another EPICS BASE config file
|
||||
# by Matthew Needes and Mike Bordua
|
||||
#
|
||||
# This file is to be maintained by the EPICS community.
|
||||
#
|
||||
|
||||
# Common Configuration Information
|
||||
|
||||
# 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
|
||||
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
|
||||
INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
|
||||
|
||||
EPICS_BASE_INCLUDE = $(EPICS_BASE)/include
|
||||
|
||||
DIVIDER = .
|
||||
OBJ = .
|
||||
RES = .
|
||||
|
||||
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(HOST_ARCH)
|
||||
EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(HOST_ARCH)
|
||||
INSTALL_HOST_LIB = $(INSTALL_LOCATION)/lib/$(HOST_ARCH)
|
||||
|
||||
|
||||
# private versions of lex/yacc from EPICS
|
||||
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 = $(PERL) $(EPICS_BASE_HOST_BIN)/installEpics.pl
|
||||
INSTALL_PRODUCT = $(INSTALL)
|
||||
INSTALL_LIBRARY = $(INSTALL)
|
||||
|
||||
# dbtools from EPICS
|
||||
|
||||
# state notation language compiler (installed from base/src/sequencer)
|
||||
SNC = $(EPICS_BASE_HOST_BIN)/snc$(EXE)
|
||||
|
||||
ifdef T_A
|
||||
|
||||
INSTALL_LIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_TCLLIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_BIN = $(INSTALL_LOCATION_BIN)/$(T_A)
|
||||
|
||||
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
|
||||
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
|
||||
|
||||
#--------------------------------------------------
|
||||
# GNU compiler defaults
|
||||
|
||||
GCC_ANSI = $(GCC) -ansi
|
||||
GCC_STRICT = $(GCC) -ansi -pedantic
|
||||
GCC_TRAD = $(GCC) -traditional
|
||||
GCC_DEP_CFLAGS = -fPIC -D_REENTRANT
|
||||
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 =
|
||||
GCC_SHRLIB_LDFLAGS_YES = -shared
|
||||
|
||||
G++_NORMAL = $(G++) -ansi -pedantic
|
||||
G++_STRICT = $(G++) -ansi -pedantic -Wtraditional
|
||||
G++_TRAD = $(G++) -traditional
|
||||
G++_TEMPL_INST_FLAG = -DEXPL_TEMPL
|
||||
G++_DEP_CFLAGS = -fPIC -D_REENTRANT
|
||||
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 =
|
||||
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 =
|
||||
USR_DBDFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# 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)
|
||||
EPICS_DBDFLAGS = -I $(INSTALL_LOCATION)/dbd
|
||||
|
||||
#--------------------------------------------------
|
||||
# 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) $(EPICS_INCLUDES) $(TARGET_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)
|
||||
|
||||
DBDFLAGS = -I . -I .. $(USR_DBDFLAGS) $(EPICS_DBDFLAGS)
|
||||
|
||||
# Build compile line here
|
||||
COMPILE.c = $(CC) $(CPPFLAGS) $(CFLAGS) -c $(SOURCE_FLAG)
|
||||
COMPILE.cc = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(SOURCE_CXXFLAG)
|
||||
|
||||
endif
|
||||
|
||||
137
config/CONFIG_ENV
Normal file
137
config/CONFIG_ENV
Normal file
@@ -0,0 +1,137 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
# Author: Andrew Johnson
|
||||
# Date: 20 April 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_ENV - EPICS Environment Parameter configuration file
|
||||
#
|
||||
# This file is interpreted by the Bourne Shell, so spaces are
|
||||
# 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
|
||||
# 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
|
||||
# addr list from network interfaces found; NO = only use
|
||||
# EPICS_CA_ADDR_LIST to create this list.
|
||||
# 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.
|
||||
|
||||
EPICS_CA_ADDR_LIST=""
|
||||
EPICS_CA_AUTO_ADDR_LIST=YES
|
||||
EPICS_CA_CONN_TMO=30.0
|
||||
EPICS_CA_REPEATER_PORT=5065
|
||||
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_CAS_INTF_ADDR_LIST - list of IP addresses identifying
|
||||
# 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. 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=""
|
||||
EPICS_CAS_SERVER_PORT=
|
||||
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_PORT Log server port number etc.
|
||||
EPICS_IOC_LOG_PORT=7004
|
||||
|
||||
# Other services:
|
||||
|
||||
EPICS_CMD_PROTO_PORT=
|
||||
EPICS_AR_PORT=7002
|
||||
|
||||
22
config/CONFIG_HOST_ARCH.Borland
Normal file
22
config/CONFIG_HOST_ARCH.Borland
Normal file
@@ -0,0 +1,22 @@
|
||||
# CONFIG_HOST_ARCH.Borland
|
||||
#
|
||||
|
||||
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
|
||||
FN =$(PERL) $(EPICS_BASE_HOST_BIN)/fullName.pl
|
||||
CHMOD=echo
|
||||
ECHO=echo
|
||||
|
||||
WIND_HOST_TYPE = x86-win32
|
||||
|
||||
# Does not work if using cygwin make
|
||||
# because HOME is always defined
|
||||
ifndef HOME
|
||||
HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
endif
|
||||
|
||||
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 = x86-linux
|
||||
|
||||
20
config/CONFIG_HOST_ARCH.UnixCommon
Normal file
20
config/CONFIG_HOST_ARCH.UnixCommon
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
# CONFIG_HOST_ARCH.UnixCommon
|
||||
#
|
||||
|
||||
# Unix command definitions
|
||||
CP = cp
|
||||
MV = mv
|
||||
RM = rm -f
|
||||
MKDIR = mkdir
|
||||
RMDIR = rm -rf
|
||||
CHMOD = "/bin/chmod"
|
||||
|
||||
# Set LD_LIBRARY_PATH for shared library builds
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
export LD_LIBRARY_PATH := $(INSTALL_HOST_LIB):$(EPICS_BASE_HOST_LIB):$(LD_LIBRARY_PATH)
|
||||
else
|
||||
export LD_LIBRARY_PATH := $(EPICS_BASE_HOST_LIB):$(LD_LIBRARY_PATH)
|
||||
endif
|
||||
|
||||
|
||||
21
config/CONFIG_HOST_ARCH.WIN32
Normal file
21
config/CONFIG_HOST_ARCH.WIN32
Normal file
@@ -0,0 +1,21 @@
|
||||
# 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
|
||||
|
||||
# Does not work if using cygwin make
|
||||
# because HOME is always defined
|
||||
ifndef HOME
|
||||
HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
endif
|
||||
|
||||
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 = x86-win32
|
||||
|
||||
8
config/CONFIG_HOST_ARCH.hp700
Normal file
8
config/CONFIG_HOST_ARCH.hp700
Normal file
@@ -0,0 +1,8 @@
|
||||
# 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 = parisc-hpux10
|
||||
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
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.solaris-x86
Normal file
9
config/CONFIG_HOST_ARCH.solaris-x86
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.solaris-x86
|
||||
#
|
||||
# Override values in CONFIG.Vx
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
WIND_HOST_TYPE = x86-solaris2
|
||||
|
||||
9
config/CONFIG_HOST_ARCH.solarisGnu
Normal file
9
config/CONFIG_HOST_ARCH.solarisGnu
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_HOST_ARCH.solarisGnu
|
||||
#
|
||||
# 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 =
|
||||
##########################
|
||||
|
||||
171
config/CONFIG_SITE
Normal file
171
config/CONFIG_SITE
Normal file
@@ -0,0 +1,171 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# CONFIG_SITE - EPICS BASE config file
|
||||
# by Matthew Needes and Mike Bordua
|
||||
#
|
||||
# This file is to be modified by the EPICS system manager
|
||||
# only.
|
||||
#
|
||||
|
||||
|
||||
# The host architecture performing the build,
|
||||
# i.e.: the arch running DCT/getrel/etc.
|
||||
#
|
||||
# Currently Supporting:
|
||||
# Borland
|
||||
# Linux
|
||||
# WIN32
|
||||
# alpha
|
||||
# cygwin32
|
||||
# hp700
|
||||
# sgi
|
||||
# solaris
|
||||
# solarisGnu (GNU compiler)
|
||||
# solaris-x86
|
||||
# sun4
|
||||
#
|
||||
# HOST_ARCH now an environment variable
|
||||
# HOST_ARCH=$(shell /usr/local/epics/startup/HostArch)
|
||||
ifndef HOST_ARCH
|
||||
HOST_ARCH=unsupported
|
||||
endif
|
||||
|
||||
# The architectures to build EPICS for
|
||||
#
|
||||
# Currently Supporting:
|
||||
# frc40
|
||||
# frc5ce
|
||||
# hkbaja47
|
||||
# hkv2f
|
||||
# mv147
|
||||
# mv1604
|
||||
# mv162
|
||||
# mv162lc
|
||||
# mv167
|
||||
# mv177
|
||||
# mv2700
|
||||
# niCpu030
|
||||
# pc486
|
||||
# ppc603
|
||||
# ppc604
|
||||
# ppc603_long (over 32MB)
|
||||
# ppc604_long (over 32MB)
|
||||
# sbs_pc6
|
||||
# vxipc
|
||||
#
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
|
||||
|
||||
# If only a subset of the host architectures perform
|
||||
# the build for the CROSS_COMPILER_TARGET_ARCHS
|
||||
# uncomment the following line and specify them.
|
||||
#
|
||||
#CROSS_COMPILER_HOST_ARCHS=sun4
|
||||
|
||||
# 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/tornado202p1
|
||||
|
||||
|
||||
# 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 C Compiler (for Host builds)
|
||||
# GCC (gcc -ansi) GNU
|
||||
# ACC (acc) OS VENDOR
|
||||
# HPACC (cc -Aa) OTHER VENDOR
|
||||
ANSI=ACC
|
||||
|
||||
# C++ Compiler (for Host builds)
|
||||
# G++ (g++) GNU C++
|
||||
# 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 should install all include files first?
|
||||
# must be either YES or NO
|
||||
MAKE_INC_TARGET_FIRST=NO
|
||||
|
||||
# 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,Linux, 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
|
||||
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
|
||||
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 =
|
||||
SCH2EDIF_SYSFLAGS = -n -ap -p.+..+$(SCH2EDIF_PATH)+$(EPICS_EXTENSIONS)/templates/capfast/sym+
|
||||
SCH2EDIF_FLAGS =
|
||||
|
||||
# e2db and flags
|
||||
# - again there is an assumption where edb.def is installed.
|
||||
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
|
||||
|
||||
10
config/CONFIG_SITE.Host.Borland
Normal file
10
config/CONFIG_SITE.Host.Borland
Normal file
@@ -0,0 +1,10 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
BORLAND=C:\\Borland\\bcc55
|
||||
|
||||
8
config/CONFIG_SITE.Host.WIN32
Normal file
8
config/CONFIG_SITE.Host.WIN32
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
26
config/CONFIG_SITE.Host.hp700
Normal file
26
config/CONFIG_SITE.Host.hp700
Normal file
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# by default, build and use shared libraries
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# where we expect to find shared libraries if not found elsewhere
|
||||
#DEFAULT_SHRLIB_SEARCH_PATH = /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/support/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)/lib/hp700
|
||||
DEFAULT_SHRLIB_SEARCH_PATH = /cs/lib/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION).$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL):$(INSTALL_LIB)
|
||||
|
||||
#No special action should be required to build or use shared libraries.
|
||||
#However, when a new shared library is built using the above configuration,
|
||||
#it should be copied into the location specified by DEFAULT_SHRLIB_SEARCH_PATH
|
||||
#which in this specific case is: /cs/lib/R3.13.1.1/
|
||||
|
||||
# cal added this so that libraries can be built with position
|
||||
# independent code even if shared libraries aren't being built
|
||||
ifeq ($(RELOCATABLE), YES)
|
||||
ARCH_DEP_CFLAGS += +Z
|
||||
ARCH_DEP_CXXFLAGS += +Z
|
||||
endif
|
||||
|
||||
|
||||
11
config/CONFIG_SITE.Host.solaris
Normal file
11
config/CONFIG_SITE.Host.solaris
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# APS overrides of definitions
|
||||
|
||||
#GCC = /opt/gnu/bin/gcc
|
||||
#G++ = /opt/gnu/bin/g++
|
||||
|
||||
28
config/CONFIG_SITE.Vx.Linux
Normal file
28
config/CONFIG_SITE.Vx.Linux
Normal file
@@ -0,0 +1,28 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file contains overrides for Vx builds
|
||||
|
||||
# The definitions VX_DIR, VX_GNU, GNU_DIR, GNU_LIB, etc.
|
||||
# can be overridden for specific Linux-target architecture
|
||||
# combinations by creating a CONFIG_SITE.Vx.Linux.<T_A>
|
||||
# file with the override definitions.
|
||||
|
||||
## ---- jba overrides for cross compiler
|
||||
## VX_DIR needed for "export WIND_BASE = $(VX_DIR)"
|
||||
#VX_DIR_YES = /home/phoebus/JBA/gnu
|
||||
#VX_GNU_YES = $(VX_DIR)
|
||||
#VX_INCLUDE_YES = $(VX_GNU)/$(GNU_TARGET)/include
|
||||
#
|
||||
#CMPLR_PREFIX= $(GNU_TARGET)-
|
||||
#CMPLR_SUFFIX=
|
||||
#GCC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
#AR = $(GNU_BIN)/$(CMPLR_PREFIX)ar$(CMPLR_SUFFIX)
|
||||
#CPP = $(GNU_BIN)/$(CMPLR_PREFIX)gcc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc -x c -E
|
||||
#RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
|
||||
#LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
#G++ = $(GNU_BIN)/$(CMPLR_PREFIX)g++$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
|
||||
#LD_G++ = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
#NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)
|
||||
## ---- end jba overrides
|
||||
|
||||
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE).$(HOST_ARCH).$(T_A)
|
||||
14
config/CONFIG_SITE.Vx.Linux.mv167
Normal file
14
config/CONFIG_SITE.Vx.Linux.mv167
Normal file
@@ -0,0 +1,14 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file contains overrides for Vx builds
|
||||
|
||||
## ---- jba overrides for cross compiler
|
||||
#GNU_TARGET=m68k-wrs-vxworks
|
||||
## ---- end jba overrides
|
||||
|
||||
# ORNL SNS overrides for cross compilers
|
||||
#VX_DIR_YES = /opt/tornado20/
|
||||
#VX_INCLUDE_YES = /usr/local/crossgcc/m68k/m68k-wrs-vxworks/sys-include
|
||||
#VX_GNU_YES = /usr/local/crossgcc/m68k/
|
||||
#VX_GNU_BIN_YES = $(VX_GNU)/bin
|
||||
#VX_GNU_LIB_YES = /usr/local/crossgcc/m68k/lib/gcc-lib/m68k-wrs-vxworks/2.95.2
|
||||
10
config/CONFIG_SITE.Vx.Linux.ppc603
Normal file
10
config/CONFIG_SITE.Vx.Linux.ppc603
Normal file
@@ -0,0 +1,10 @@
|
||||
# $Id$
|
||||
#
|
||||
# This file contains overrides for Vx builds
|
||||
|
||||
# ORNL SNS overrides for cross compilers
|
||||
#VX_DIR_YES = /opt/tornado20/
|
||||
#VX_INCLUDE_YES = /usr/local/crossgcc/ppc/powerpc-wrs-vxworks/sys-include
|
||||
#VX_GNU_YES = /usr/local/crossgcc/ppc/
|
||||
#VX_GNU_BIN_YES = $(VX_GNU)/bin
|
||||
#VX_GNU_LIB_YES = /usr/local/crossgcc/ppc/lib/gcc-lib/powerpc-wrs-vxworks/2.95.2
|
||||
3
config/CONFIG_SITE.Vx.ppc604
Normal file
3
config/CONFIG_SITE.Vx.ppc604
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
# APS override of tornado directory for ppc
|
||||
#VX_DIR_YES = /usr/local/vw/tornado101ppc2
|
||||
45
config/CONFIG_SITE_ENV
Normal file
45
config/CONFIG_SITE_ENV
Normal file
@@ -0,0 +1,45 @@
|
||||
# $Id$
|
||||
# Author: Andrew Johnson
|
||||
# Date: 1 May 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_SITE_ENV - EPICS Environment Parameter Site configuration file
|
||||
#
|
||||
# This file is interpreted by the Bourne Shell, so spaces are
|
||||
# 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
|
||||
|
||||
# Time service:
|
||||
# EPICS_TS_MIN_WEST the local time difference from GMT.
|
||||
# EPICS_TS_NTP_INET ntp or Unix time server ip addr.
|
||||
|
||||
EPICS_TS_MIN_WEST=360
|
||||
EPICS_TS_NTP_INET=
|
||||
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_INET
|
||||
# Log server ip addr.
|
||||
# EPICS_IOC_LOG_FILE_NAME
|
||||
# pathname to the log file.
|
||||
# EPICS_IOC_LOG_FILE_LIMIT
|
||||
# maximum log file size.
|
||||
# EPICS_IOC_LOG_FILE_COMMAND
|
||||
# A shell command string used to obtain a new
|
||||
# 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=
|
||||
EPICS_IOC_LOG_FILE_NAME=
|
||||
EPICS_IOC_LOG_FILE_COMMAND=
|
||||
EPICS_IOC_LOG_FILE_LIMIT=1000000
|
||||
|
||||
19
config/Makefile
Normal file
19
config/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP=..
|
||||
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
include $(TOP)/config/RULES_ARCHS
|
||||
|
||||
43
config/Makefile.Host
Normal file
43
config/Makefile.Host
Normal file
@@ -0,0 +1,43 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
TOP = ../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
|
||||
CONFIGS += CONFIG
|
||||
CONFIGS += CONFIG_BASE
|
||||
CONFIGS += CONFIG_BASE_VERSION
|
||||
CONFIGS += CONFIG_COMMON
|
||||
CONFIGS += CONFIG_ENV
|
||||
|
||||
CONFIGS += CONFIG.Host.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG_HOST_ARCH.$(HOST_ARCH)
|
||||
CONFIGS += CONFIG.Host.UnixCommon
|
||||
CONFIGS += CONFIG_HOST_ARCH.UnixCommon
|
||||
|
||||
CONFIGS += CONFIG.Vx
|
||||
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.Vx.%)
|
||||
|
||||
CONFIGS += CONFIG_SITE
|
||||
CONFIGS += CONFIG_SITE_ENV
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
|
||||
|
||||
CONFIGS += RULES.Host
|
||||
CONFIGS += RULES.Unix
|
||||
CONFIGS += RULES.Vx
|
||||
CONFIGS += RULES_ARCHS
|
||||
CONFIGS += RULES_DIRS
|
||||
CONFIGS += RULES_TOP
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
|
||||
854
config/RULES.Host
Normal file
854
config/RULES.Host
Normal file
@@ -0,0 +1,854 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Id$
|
||||
#
|
||||
# Rules for making things specified in Makefile.Host
|
||||
# Some rules for filename-massage are system specific
|
||||
# and have "ifdefs" here instead of using definitions
|
||||
# from CONFIG.Host.$(ARCH_CLASS) - sorry about this,
|
||||
# but so far the rules are quite similar on all systems
|
||||
# except WIN32 has some specials.
|
||||
#
|
||||
# Maybe there is a way to use indentation to make it
|
||||
# easier to read this file?
|
||||
#
|
||||
# Most things may also work if you say e.g.
|
||||
# VAR+=ADD
|
||||
# even if ADD is not there, but this way "VAR" would
|
||||
# be defined in any case, that's why I try to use
|
||||
# ifdef ADD
|
||||
# VAR+=ADD
|
||||
# endif
|
||||
#
|
||||
# -kuk-
|
||||
|
||||
# we are in O.$(ARCH_CLASS), but most sources are one dir above:
|
||||
#
|
||||
# The use of VPATH (no suffix specification) caused everything
|
||||
# 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 %.cpp $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
vpath %.rc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
|
||||
vpath %.jar $(USER_VPATH) ..
|
||||
|
||||
# check for add-on CFLAGS and CXXFLAGS
|
||||
#
|
||||
# Rules:
|
||||
# 1) USR_CFLAGS is used
|
||||
# 2) if there is a special USR_CFLAGS_$(ARCH_CLASS), it's
|
||||
# appended to 1)
|
||||
# 3) if there is no special defined, but a generic USR_CFLAGS_DEFAULT,
|
||||
# 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>
|
||||
#
|
||||
# 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 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,
|
||||
# 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
|
||||
# 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 ($(strip $(USR_CFLAGS_$(ARCH_CLASS))),)
|
||||
USR_CFLAGS+=$(subst -nil-,,$(USR_CFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_CFLAGS_DEFAULT
|
||||
USR_CFLAGS+=$(USR_CFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(ARCH_CLASS))),)
|
||||
USR_CXXFLAGS+=$(subst -nil-,,$(USR_CXXFLAGS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_DEFAULT
|
||||
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 ($(strip $(INC_$(ARCH_CLASS))),)
|
||||
# os-specific includes go to the include/os-directory:
|
||||
OSINC += $(subst -nil-,,$(INC_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef INC_DEFAULT
|
||||
INC += $(INC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# concat specific library contents (if defined) to LIBCONTENS
|
||||
#
|
||||
ifneq ($(strip $(LIBSRCS_$(ARCH_CLASS))),)
|
||||
LIBSRCS += $(subst -nil-,,$(LIBSRCS_$(ARCH_CLASS)))
|
||||
else
|
||||
|
||||
ifdef LIBSRCS_DEFAULT
|
||||
LIBSRCS+=$(LIBSRCS_DEFAULT)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# adjust object names for library contents
|
||||
#
|
||||
ifdef LIBSRCS
|
||||
LIBOBJS=$(addsuffix $(OBJ), $(basename $(LIBSRCS)))
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific library contents (if defined) to PROD_LIBS
|
||||
#
|
||||
ifneq ($(strip $(PROD_LIBS_$(ARCH_CLASS))),)
|
||||
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
|
||||
ifdef PROD_LIBS_DEFAULT
|
||||
PROD_LIBS += $(PROD_LIBS_DEFAULT)
|
||||
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 ($(strip $(PROD_$(ARCH_CLASS))),)
|
||||
PROD += $(subst -nil-,,$(PROD_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
|
||||
ifdef PROD_DEFAULT
|
||||
PROD += $(PROD_DEFAULT)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq ($(strip $(SCRIPTS_$(ARCH_CLASS))),)
|
||||
SCRIPTS += $(subst -nil-,,$(SCRIPTS_$(ARCH_CLASS)))
|
||||
|
||||
else
|
||||
|
||||
ifdef SCRIPTS_DEFAULT
|
||||
SCRIPTS += $(SCRIPTS_DEFAULT)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific resource files
|
||||
#
|
||||
ifneq ($(strip $(RCS_$(ARCH_CLASS))),)
|
||||
RCS += $(subst -nil-,,$(RCS_$(ARCH_CLASS)))
|
||||
else
|
||||
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
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
# if we are not building base add base includes and dbd dirs
|
||||
# (convenience for extensions and applications)
|
||||
ifneq ($(EPICS_BASE),$(TOP))
|
||||
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
|
||||
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS) -I$(EPICS_BASE_INCLUDE)
|
||||
EPICS_DBDFLAGS += -I $(EPICS_BASE)/dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# ----------------------------------------------------
|
||||
# create names (lists) for installed things
|
||||
# ----------------------------------------------------
|
||||
|
||||
INCREC +=$(RECTYPES) $(MENUS)
|
||||
|
||||
INSTALL_PROD= $(PROD:%= $(INSTALL_BIN)/%)
|
||||
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), $(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)
|
||||
else
|
||||
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))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
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
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# always use c++ linker
|
||||
ifneq ($(strip $(CPLUSPLUS)),)
|
||||
LINK.c = $(LINK.cc)
|
||||
endif # CPLUSPLUS
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# 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)
|
||||
|
||||
LIBNAME_RCS=$(foreach lib, $(basename $(LIBRARY)), $(RCS) $($(lib)_RCS) $($(lib)_RCS_$(ARCH_CLASS)))
|
||||
LIBNAME_RESS=$(addsuffix $(RES), $(basename $(LIBNAME_RCS)))
|
||||
|
||||
# check if shared libraries requested
|
||||
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
|
||||
|
||||
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
|
||||
CXXFLAGS += $($(CPLUSPLUS)_SHRLIB_CFLAGS_YES)
|
||||
SHRLIB_LDFLAGS = $($(CPLUSPLUS)_SHRLIB_LDFLAGS_YES)
|
||||
|
||||
PROD_VERSION =$(SHRLIB_VERSION)
|
||||
# always use c++ linker
|
||||
SHRLIB_LINKER = $(CXX)
|
||||
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
|
||||
|
||||
endif # SHARED_LIBRARIES=YES
|
||||
|
||||
endif # LIBOBJS
|
||||
endif # LIBRARY
|
||||
|
||||
#---------------------------------------------------------------
|
||||
all:: install
|
||||
|
||||
build:: inc
|
||||
|
||||
build:: $(LIBTARGETS) $(PROD) $(TESTPROD) $(INSTALLS) \
|
||||
$(MENUS) $(RECTYPES) $(BPTS)
|
||||
ifdef DBDEXPAND
|
||||
build:: $(DBDNAME)
|
||||
endif
|
||||
|
||||
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
install:: buildInstall
|
||||
|
||||
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) $(TESTPROD) $(LIBNAME) $(SHRLIBNAME) $(INC) \
|
||||
*$(RES) $(TARGETS) *.dbd $(MENUS) $(RECTYPES) $(BPTS)
|
||||
ifdef DBDEXPAND
|
||||
@$(RM) $(DBDNAME)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# 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)))
|
||||
|
||||
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_OBJS_$(ARCH_CLASS))),)
|
||||
PRODNAME_OBJS += $(subst -nil-,,$(PRODNAME_OBJS_$(ARCH_CLASS)))
|
||||
else
|
||||
ifdef PRODNAME_OBJS_DEFAULT
|
||||
PRODNAME_OBJS += $(PRODNAME_OBJS_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)))
|
||||
|
||||
ifdef BORLANDC
|
||||
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
|
||||
@$(RM) $@
|
||||
$(PRODNAME_LINKER) $(PRODNAME_OBJS) , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS)),, $(PRODNAME_RESS)
|
||||
|
||||
else
|
||||
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
|
||||
@$(RM) $@
|
||||
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
|
||||
|
||||
endif
|
||||
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): $(SRCS) $(PROD_OBJS) $(COND_PROD_SRCS) $(PROD_RESS) $(PROD_DEPLIBS) $(COND_PROD_DEPLIBS)
|
||||
@$(PROD_MAKE_COMMAND)
|
||||
|
||||
endif
|
||||
endif #ifdef PRODNAME
|
||||
|
||||
endif #ifdef PROD
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Java classes and packages
|
||||
#
|
||||
|
||||
ifdef JAVA
|
||||
DIRECTORY_TARGETS += $(INSTALL_JAVA)
|
||||
ifdef PACKAGE
|
||||
DIRECTORY_TARGETS += $(INSTALL_JAVA)/$(PACKAGE)
|
||||
endif
|
||||
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)/%)
|
||||
|
||||
ifeq ($(strip $(JAVADOC)),YES)
|
||||
DIRECTORY_TARGETS += $(INSTALL_HTML)
|
||||
INSTALL_JAVADOC = $(CLASSES:%.class=$(INSTALL_HTML)/%.html)
|
||||
ifdef PACKAGE
|
||||
DIRECTORY_TARGETS += $(INSTALL_HTML)/$(PACKAGE)
|
||||
INSTALL_JAVADOC = $(CLASSES:%.class=$(INSTALL_HTML)/$(PACKAGE)/$(PACKAGE)/%.html)
|
||||
endif
|
||||
endif
|
||||
|
||||
JAR_OPTIONS = cvf
|
||||
ifdef MANIFEST
|
||||
JAR_OPTIONS = cvmf
|
||||
endif
|
||||
#JAR_DEPFILES += $(wildcard $(JAR_INPUT) $(addsuffix /*,$(JAR_INPUT)))
|
||||
JAR_DEPFILES += $(JAR_INPUT)
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) $@
|
||||
|
||||
build:: $(TESTCLASSES) $(JAR)
|
||||
|
||||
buildInstall :: $(DIRECTORY_TARGETS) $(INSTALL_CLASSES) $(INSTALL_JAR) $(INSTALL_JAVADOC)
|
||||
|
||||
clean::
|
||||
@$(RM) $(TESTCLASSES) $(JAR) $(INSTALL_CLASSES) $(INSTALL_JAVADOC)
|
||||
|
||||
%.class:%.java
|
||||
@echo Creating java class file $@
|
||||
$(RM) $@
|
||||
$(JAVACCMD) $<
|
||||
|
||||
$(INSTALL_JAVA)/$(PACKAGE)/%.class:%.java
|
||||
@echo Creating java class file $@
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(INSTALL_JAVA) $<
|
||||
|
||||
$(INSTALL_JAVADOC):$(JAVA)
|
||||
@echo Creating javadoc html files $@
|
||||
@$(RM) $@
|
||||
$(JAVADOCCMD) -d $(INSTALL_HTML)/$(PACKAGE) $(PACKAGE)
|
||||
|
||||
$(JAR):%.jar: $(JAR_DEPFILES)
|
||||
@echo Creating java jar file $@
|
||||
@$(RM) $@
|
||||
$(JARCMD)
|
||||
|
||||
$(INSTALL_JAVA)/%.jar: %.jar
|
||||
@echo "Installing jar file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(PACKAGE)_%.h:$(INSTALL_JAVA)/$(PACKAGE)/%.class
|
||||
$(JAVAHCMD) $(PACKAGE).$*
|
||||
|
||||
.PRECIOUS: $(INSTALL_CLASSES) $(INSTALL_JAVADOC)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#---------------------------------------------------------------
|
||||
# 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 !!!!
|
||||
|
||||
depends:: $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS) $(SRCS.c) $(SRCS.cc)
|
||||
$(RM) DEPENDS
|
||||
ifneq ($(strip $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS) $(SRCS.c) $(SRCS.cc)),)
|
||||
$(DEPENDS_RULE)
|
||||
endif
|
||||
|
||||
ifdef BORLANDC
|
||||
%$(EXE): %.c
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
$(LINK.c) $(subst ../,,$(basename $<))$(OBJ) , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
|
||||
|
||||
%$(EXE): %.cc
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
|
||||
|
||||
%$(EXE): %.cpp
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
|
||||
|
||||
%$(EXE): %.C
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
|
||||
|
||||
else
|
||||
|
||||
%$(EXE): %.c
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
$(LINK.c) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.cc
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.cpp
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
%$(EXE): %.C
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
|
||||
|
||||
endif
|
||||
|
||||
%$(OBJ): %.c
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%$(OBJ): %.cc
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%$(OBJ): %.cpp
|
||||
@$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%$(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) $<
|
||||
$(MV) y.tab.c $*.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(MV) y.tab.h $*.h
|
||||
endif
|
||||
|
||||
%.c: ../%.l
|
||||
@$(RM) lex.yy.c
|
||||
$(LEX) $(LEXOPT) $<
|
||||
@$(RM) $@
|
||||
$(MV) lex.yy.c $@
|
||||
|
||||
#state notation language rule
|
||||
%.c: ../%.st
|
||||
@echo "preprocessing $*.st"
|
||||
@$(RM) $*.i
|
||||
$(CPP) $(CPPFLAGS) $< $*.i
|
||||
@echo "converting $*.i"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: ../%.stt
|
||||
@echo "converting $<"
|
||||
ln -s $< $*.st
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
||||
@$(RM) $*.st
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(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:%
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:../%
|
||||
$(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_HOST_BIN)/dbToRecordtypeH$(EXE) \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToRecordtypeH$(EXE) \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH$(EXE) $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH$(EXE) $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt$(EXE) $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt$(EXE) $<
|
||||
|
||||
# Patch for old applications
|
||||
ifdef USER_DBDFLAGS
|
||||
DBDFLAGS = $(USER_DBDFLAGS)
|
||||
endif
|
||||
|
||||
ifdef DBDEXPAND
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo Expanding dbd
|
||||
@$(RM) $@ $@-new
|
||||
$(EPICS_BASE_HOST_BIN)/dbExpand$(EXE) $(DBDFLAGS) $< > $@-new
|
||||
@$(MV) $@-new $@
|
||||
|
||||
ifneq (,$(wildcard ../base.dbd))
|
||||
$(DBDNAME): ../base.dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef BORLANDC
|
||||
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS) $(LIBNAME_RESS)
|
||||
$(LINK.shrlib) $(LIBOBJS) , $@ ,,$(LINKLIBS) $(subst /,\\,$(DLL_LDLIBS)), $(DLL_DEF_FLAG), $(LIBNAME_RESS)
|
||||
|
||||
else
|
||||
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS) $(LIBNAME_RESS)
|
||||
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS) $(LIBNAME_RESS)
|
||||
|
||||
endif
|
||||
ifdef BORLANDC
|
||||
# rule for lib (archive of object files) creation
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
$(RM) $@
|
||||
$(ARCMD) $(foreach lib,$(LIBOBJS),+$(lib))
|
||||
|
||||
else
|
||||
# rule for lib (archive of object files) creation
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
$(RM) $@
|
||||
$(ARCMD) $(LIBOBJS)
|
||||
ifdef RANLIB
|
||||
$(RANLIB) $@;
|
||||
endif # RANLIB
|
||||
|
||||
endif
|
||||
|
||||
$(INSTALL_BIN)/%: ../os/$(ARCH_CLASS)/%
|
||||
@echo "Installing os-specific script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing binary $@"
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%.a: %.a
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m 644 $< $(INSTALL_LIB)
|
||||
ifdef RANLIB
|
||||
$(RANLIB) $(RANLIBFLAGS) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(INSTALL_LIB)/%.lib: %.lib
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m 644 $< $(INSTALL_LIB)
|
||||
|
||||
$(INSTALL_SHRLIB)/lib%: lib%
|
||||
@echo "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m 555 $< $(INSTALL_SHRLIB)
|
||||
ifdef SHRLIB_VERSION
|
||||
$(RM) $(subst .$(SHRLIB_VERSION),,$@)
|
||||
ln -s $< $(subst .$(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) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
@echo "Installing config file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing include file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing include file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing doc $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing 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) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
.PRECIOUS: %.o %.c
|
||||
|
||||
-include DEPENDS
|
||||
|
||||
.PHONY:: all inc depends build install clean rebuild buildInstall
|
||||
|
||||
# EOF RULES.Host
|
||||
321
config/RULES.Unix
Normal file
321
config/RULES.Unix
Normal file
@@ -0,0 +1,321 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $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 \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_DOC) \
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR) $(INSTALL_TEMPLATES) \
|
||||
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) $(INSTALL_LIB) \
|
||||
$(INSTALL_LOCATION_LIB) $(INSTALL_CONFIG) \
|
||||
$(MAN_DIRECTORY_TARGETS) $(INSTALL_MAN)
|
||||
|
||||
all:: install
|
||||
|
||||
pre_build::
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
build:: pre_build $(LIBNAME) $(TARGETS) $(PROD)\
|
||||
$(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
|
||||
inc:: $(INSTALL_INCLUDE) $(INSTALL_INC) $(INSTALL_INCLUDE)/os \
|
||||
$(INSTALL_OSINCLUDE) $(INSTALL_OSINC)
|
||||
|
||||
install:: inc buildInstall
|
||||
|
||||
buildInstall :: build \
|
||||
$(INSTALL_LOCATION_LIB) $(INSTALL_LIB) $(INSTALL_LIBS) \
|
||||
$(TARGETS) \
|
||||
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MAN) $(INSTALL_MANS) $(INSTALL_HTMLS) \
|
||||
$(INSTALL_DOC) $(INSTALL_DOCS) $(INSTALL_TEMPLATES) \
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR) $(INSTALL_TEMPLATE) \
|
||||
$(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
|
||||
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
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *.o *.a $(TARGETS) $(PROD) $(LIBNAME) $(INC)
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
@$(MKDIR) $@
|
||||
|
||||
$(TARGETS) $(PROD): $(DEPLIBS)
|
||||
|
||||
# The order of the following dependencies is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
%: %.o
|
||||
$(RM) $@
|
||||
$(LINK.c) -o $@ $< $(LDLIBS)
|
||||
|
||||
#$(PROD): $(OBJS)
|
||||
# $(RM) $@
|
||||
# $(LINK.c) -o $@ ${OBJS} $(LDLIBS)
|
||||
|
||||
%.o: %.c
|
||||
$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%.o: ../%.c
|
||||
$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%.o: %.cc
|
||||
$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%.o: ../%.cc
|
||||
$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%.c: ../%.y
|
||||
$(RM) y.tab.c y.tab.h
|
||||
$(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
|
||||
|
||||
%.c: ../%.l
|
||||
$(RM) lex.yy.c
|
||||
$(LEX) $(LEXOPT) $<
|
||||
$(RM) $@
|
||||
$(MV) lex.yy.c $@
|
||||
|
||||
#state notation language rule
|
||||
%.c: ../%.st
|
||||
@echo "preprocessing $*.st"
|
||||
@$(RM) $*.i
|
||||
$(CPP) $(CPPFLAGS) $< $*.i
|
||||
@echo "converting $*.i"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: ../%.stt
|
||||
@echo "converting $<"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $<
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(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:%
|
||||
$(MANGEN) -s $<
|
||||
$(MV) $(<F).nr $(<F).1
|
||||
|
||||
# Mangen Rule:
|
||||
%.1:../%
|
||||
$(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_HOST_BIN)/dbToRecordtypeH \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToRecordtypeH \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt $<
|
||||
|
||||
# Patch for old applications
|
||||
ifdef USER_DBDFLAGS
|
||||
DBDFLAGS = $(USER_DBDFLAGS)
|
||||
endif
|
||||
|
||||
ifdef DBDEXPAND
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo expanding dbd
|
||||
@$(RM) $@ $@-new
|
||||
$(EPICS_BASE_HOST_BIN)/dbExpand $(DBDFLAGS) $< > $@-new
|
||||
@$(MV) $@-new $@
|
||||
|
||||
ifneq (,$(wildcard ../base.dbd))
|
||||
$(DBDNAME): ../base.dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
@echo Building library $@
|
||||
$(RM) $@
|
||||
$(ARCMD) $(LIBOBJS)
|
||||
@if [ ! -z "$(RANLIB)" ] ; then\
|
||||
echo $(RANLIB) $@; \
|
||||
$(RANLIB) $@; \
|
||||
fi
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing Binary $@"
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing Binary $@"
|
||||
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%.a: %.a
|
||||
@echo "Installing library $@"
|
||||
@$(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) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
@echo "Installing Config File $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing man file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing Include File $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing Include File $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing doc $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing 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 $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
|
||||
@echo "Installing template $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
.PRECIOUS: %.o %.c
|
||||
|
||||
.PHONY:: all inc depends build install pre-build clean rebuild
|
||||
|
||||
-include .DEPENDS
|
||||
|
||||
321
config/RULES.Vx
Normal file
321
config/RULES.Vx
Normal file
@@ -0,0 +1,321 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $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),$(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)/%)
|
||||
|
||||
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))
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
# if we are not building base add base includes and dbd 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)
|
||||
EPICS_DBDFLAGS += -I $(EPICS_BASE)/dbd
|
||||
endif
|
||||
endif
|
||||
|
||||
all:: install
|
||||
|
||||
build:: inc
|
||||
|
||||
rebuild:: clean install
|
||||
|
||||
pre_build::
|
||||
|
||||
build:: pre_build $(MENUS) $(RECTYPES) $(BPTS)\
|
||||
$(LIBNAME) $(LIBNAME_CXX) $(TARGETS) $(PROD)
|
||||
ifdef DBDEXPAND
|
||||
build:: $(DBDNAME)
|
||||
endif
|
||||
|
||||
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
|
||||
|
||||
install:: buildInstall
|
||||
|
||||
buildInstall :: build $(INSTALL_INCREC)\
|
||||
$(INSTALL_LIBS) $(INSTALL_LIBS_CXX) \
|
||||
$(TARGETS) $(INSTALL_PROD) \
|
||||
$(INSTALL_MANS) $(INSTALL_DOCS) \
|
||||
$(INSTALL_HTMLS) \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_INSTALLS)\
|
||||
$(INSTALL_DBS) $(INSTALL_BPTS) \
|
||||
$(INSTALL_DBDNAME)
|
||||
|
||||
ifdef BIN_INSTALLS
|
||||
buildInstall :: binInstalls
|
||||
endif
|
||||
|
||||
depends:: $(SRCS.c) $(SRCS.cc)
|
||||
$(RM) DEPENDS
|
||||
ifneq ($(strip $(SRCS.c) $(SRCS.cc)),)
|
||||
$(DEPENDS_RULE)
|
||||
endif
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *.o *.a *.out $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME) *.c
|
||||
|
||||
# The order of the following dependencies is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
%: %.o
|
||||
$(RM) $@
|
||||
$(LINK.c) $@ $< $(LDLIBS)
|
||||
|
||||
#$(PROD): $(OBJS)
|
||||
# $(RM) $@
|
||||
# $(LINK.c) $@ $(OBJS)
|
||||
|
||||
%.o: %.c
|
||||
$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%.o: ../%.c
|
||||
$(RM) $@
|
||||
$(COMPILE.c) $<
|
||||
|
||||
%.o: %.cc
|
||||
$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
%.o: ../%.cc
|
||||
$(RM) $@
|
||||
$(COMPILE.cc) $<
|
||||
|
||||
# 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) $<
|
||||
$(MV) y.tab.c $*.c
|
||||
ifeq ($(findstring -d, $(YACCOPT)),-d)
|
||||
$(MV) y.tab.h $*.h
|
||||
endif
|
||||
|
||||
%.c: ../%.l
|
||||
$(RM) lex.yy.c
|
||||
$(LEX) $(LEXOPT) $<
|
||||
$(RM) $@
|
||||
$(MV) lex.yy.c $@
|
||||
|
||||
#state notation language rules
|
||||
%.c: ../%.st
|
||||
@echo "preprocessing $*.st"
|
||||
@$(RM) $*.i
|
||||
$(CPP) $(CPPFLAGS) $(CPPSNCFLAGS) $< > $*.i
|
||||
@echo "converting $*.i"
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: ../%.stt
|
||||
@echo "converting $<"
|
||||
ln -s $< $*.st
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
||||
@$(RM) $*.st
|
||||
|
||||
# Capfast Rules:
|
||||
%.db: %.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.db: ../%.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
|
||||
|
||||
%.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:%
|
||||
$(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) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
|
||||
|
||||
%Record.h: %Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToRecordtypeH$(EXE) \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
%Record.h: ../%Record.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToRecordtypeH$(EXE) \
|
||||
$(DBDFLAGS) $<
|
||||
|
||||
menu%.h: menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH$(EXE) $<
|
||||
|
||||
menu%.h: ../menu%.dbd
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/dbToMenuH$(EXE) $<
|
||||
|
||||
bpt%.dbd: bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt$(EXE) $<
|
||||
|
||||
bpt%.dbd: ../bpt%.data
|
||||
$(RM) $@
|
||||
$(EPICS_BASE_HOST_BIN)/makeBpt$(EXE) $<
|
||||
|
||||
# Patch for old applications
|
||||
ifdef USER_DBDFLAGS
|
||||
DBDFLAGS = $(USER_DBDFLAGS)
|
||||
endif
|
||||
|
||||
ifdef DBDEXPAND
|
||||
$(DBDNAME): ../$(DBDEXPAND)
|
||||
@echo Expanding dbd
|
||||
@$(RM) $@ $@-new
|
||||
$(EPICS_BASE_HOST_BIN)/dbExpand$(EXE) $(DBDFLAGS) $< > $@-new
|
||||
@$(MV) $@-new $@
|
||||
endif
|
||||
|
||||
$(LIBNAME): $(LIBOBJS)
|
||||
@echo Building library $@
|
||||
@$(RM) $@
|
||||
$(LINK.c) $@ $(LIBOBJS) $(LDLIBS)
|
||||
|
||||
$(LIBNAME_CXX): $(LIBOBJS_CXX)
|
||||
@echo Building CXX library $@
|
||||
@$(RM) $@
|
||||
$(LINK.cc) $@ $(LIBOBJS_CXX) $(LDLIBS)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
|
||||
#
|
||||
# avoid confusing circular dependency message when
|
||||
# INSTALL_BIN and EPICS_BASE_BIN are the same (in base)
|
||||
#
|
||||
ifneq ($(INSTALL_BIN),$(EPICS_BASE_BIN))
|
||||
$(INSTALL_BIN)/%: $(EPICS_BASE_BIN)/%
|
||||
@echo "Installing $@ from EPICS base"
|
||||
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
|
||||
endif
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing $@"
|
||||
@$(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 binInstalls
|
||||
|
||||
-include DEPENDS
|
||||
|
||||
ifneq (,$(wildcard ../baseLIBOBJS))
|
||||
$(LIBNAME): ../baseLIBOBJS
|
||||
endif
|
||||
|
||||
ifneq (,$(wildcard ../base.dbd))
|
||||
$(DBDNAME): ../base.dbd $(RECTYPES:%.h=../%.dbd)
|
||||
else
|
||||
$(DBDNAME): $(RECTYPES:%.h=../%.dbd)
|
||||
endif
|
||||
|
||||
#=====> ???? the following line causes a rebuild every time
|
||||
#=====> $(LIBNAME): ../Makefile.Vx
|
||||
|
||||
99
config/RULES_ARCHS
Normal file
99
config/RULES_ARCHS
Normal file
@@ -0,0 +1,99 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# EPICS RULES_ARCH
|
||||
# by Matthew Needes and Mike Bordua and Janet Anderson and Jeff Hill
|
||||
#
|
||||
|
||||
all:: install
|
||||
|
||||
ACTIONS += inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += depends
|
||||
ACTIONS += rebuild
|
||||
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
|
||||
#
|
||||
# hostActionArchTargets
|
||||
#
|
||||
hostArchs = $(HOST_ARCH)
|
||||
hostActionArchTargets = $(foreach x, $(ACTIONS),\
|
||||
$(foreach arch,$(hostArchs), $(x)$(DIVIDER)$(arch)))
|
||||
ifeq (Makefile.Host, $(wildcard Makefile.Host))
|
||||
hostDirs = $(addprefix O.,$(hostArchs))
|
||||
$(hostActionArchTargets) : $(hostDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.Host T_A=$(archPart) BUILD_TYPE=Host $(actionPart)
|
||||
$(hostArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile.Host T_A=$@ BUILD_TYPE=Host
|
||||
else
|
||||
$(hostActionArchTargets) :
|
||||
$(hostArchs) :
|
||||
endif
|
||||
|
||||
#
|
||||
# crossActionArchTargets
|
||||
#
|
||||
crossArchs = $(filter-out $(hostArchs),$(BUILD_ARCHS))
|
||||
crossActionArchTargets = $(foreach x, $(ACTIONS), \
|
||||
$(foreach arch, $(CROSS_COMPILER_TARGET_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
ifeq (Makefile.Vx, $(wildcard Makefile.Vx))
|
||||
crossDirs = $(addprefix O.,$(crossArchs))
|
||||
$(crossActionArchTargets) : $(crossDirs)
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile.Vx T_A=$(archPart) BUILD_TYPE=Vx $(actionPart)
|
||||
$(crossArchs) : % : O.%
|
||||
$(MAKE) -C O.$@ -f ../Makefile.Vx T_A=$@ BUILD_TYPE=Vx
|
||||
else
|
||||
$(crossActionArchTargets) :
|
||||
$(crossArchs) :
|
||||
endif
|
||||
|
||||
$(hostDirs) :
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Host
|
||||
|
||||
$(crossDirs) :
|
||||
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Vx
|
||||
|
||||
#
|
||||
# host/cross action targets
|
||||
#
|
||||
$(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))
|
||||
$(CrossActionTargets) : %$(DIVIDER)cross : $(addprefix %$(DIVIDER), $(crossArchs))
|
||||
|
||||
|
||||
#
|
||||
# arch targets
|
||||
#
|
||||
host : $(hostArchs)
|
||||
cross : $(crossArchs)
|
||||
|
||||
#
|
||||
# special clean rule
|
||||
#
|
||||
clean ::
|
||||
$(RMDIR) $(hostDirs) $(crossDirs)
|
||||
clean$(DIVIDER)% :
|
||||
$(RMDIR) O.$*
|
||||
|
||||
.PHONY :: $(HostActionTargets)
|
||||
.PHONY :: $(CrossActionTargets)
|
||||
.PHONY :: $(crossActionArchTargets)
|
||||
.PHONY :: $(hostActionArchTargets)
|
||||
.PHONY :: $(hostArchs) $(crossArchs)
|
||||
.PHONY :: $(ACTIONS) clean all host cross
|
||||
|
||||
57
config/RULES_DIRS
Normal file
57
config/RULES_DIRS
Normal file
@@ -0,0 +1,57 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
|
||||
ARCHS += $(BUILD_ARCHS) host cross
|
||||
ACTIONS += clean inc depends build install buildInstall
|
||||
|
||||
dirPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$@)), \
|
||||
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$@))))
|
||||
|
||||
dirActionArchTargets = $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
|
||||
dirArchTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach arch, $(ARCHS),\
|
||||
$(dir)$(DIVIDER)$(arch)))
|
||||
dirActionTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS),\
|
||||
$(dir)$(DIVIDER)$(action)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS),\
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
ifeq ($(MAKE_INC_TARGET_FIRST),YES)
|
||||
all install :: inc buildInstall
|
||||
$(ARCHS) $(installArchTargets) :: inc
|
||||
else
|
||||
all install :: buildInstall
|
||||
endif
|
||||
|
||||
|
||||
rebuild:: clean all
|
||||
|
||||
$(DIRS) $(dirActionTargets) $(dirArchTargets)$(dirActionArchTargets) ::
|
||||
$(MAKE) -C $(dirPart) $(actionArchPart)
|
||||
|
||||
$(ARCHS) $(ACTIONS) $(actionArchTargets) ::%: \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
|
||||
|
||||
.PHONY :: $(DIRS) all rebuild
|
||||
.PHONY :: $(ARCHS) $(ACTIONS)
|
||||
.PHONY :: $(dirActionTargets) $(dirArchTargets)
|
||||
.PHONY :: $(dirActionArchTargets)
|
||||
.PHONY :: $(actionArchTargets)
|
||||
|
||||
73
config/RULES_TOP
Normal file
73
config/RULES_TOP
Normal file
@@ -0,0 +1,73 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
include $(TOP)/config/RULES_DIRS
|
||||
|
||||
uninstall$(DIVIDER)%: uninstallDirs
|
||||
@$(RMDIR) $(INSTALL_LOCATION_BIN)/$* $(INSTALL_LOCATION_LIB)/$*
|
||||
|
||||
cleandirs:
|
||||
@echo " " #stops "nothing to be done for cleandirs" message
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_BIN)/*),)
|
||||
@$(RMDIR) $(INSTALL_LOCATION_BIN)
|
||||
endif
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_LIB)/*),)
|
||||
@$(RMDIR) $(INSTALL_LOCATION_LIB)
|
||||
endif
|
||||
|
||||
distclean: clean uninstall
|
||||
|
||||
uninstall:: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
|
||||
@$(MAKE) -f Makefile cleandirs
|
||||
|
||||
uninstallDirs:
|
||||
@$(RMDIR) rec.bak rec
|
||||
@$(RMDIR) $(INSTALL_DBD) $(INSTALL_MAN) $(INSTALL_INCLUDE) $(INSTALL_DOC)\
|
||||
$(INSTALL_HTML) $(INSTALL_JAVA) $(INSTALL_TEMPLATES)
|
||||
|
||||
tar:
|
||||
@DIRNAME=$(notdir $(shell pwd)); \
|
||||
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 ; \
|
||||
fi ;\
|
||||
if [ -f EPICS_BASE ]; then \
|
||||
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; \
|
||||
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 " 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 " clean.<arch> - Cleans <arch> binaries in O.<arch> dirs 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"
|
||||
|
||||
.PHONY :: uninstall tar help cleandirs distclean uninstallDirs
|
||||
|
||||
192
config/Sample.Makefile.Host
Normal file
192
config/Sample.Makefile.Host
Normal file
@@ -0,0 +1,192 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Makefile.Host for base/src/sample
|
||||
#
|
||||
#
|
||||
# Sample Makefile.Host showing all possible entries
|
||||
# that are allowed using RULES.Host.
|
||||
#
|
||||
|
||||
TOP = ../../..
|
||||
include $(TOP)/config/CONFIG_BASE
|
||||
CMPLR = STRICT
|
||||
|
||||
# Add-on CFLAGS that are needed by this Makefile.
|
||||
# (If possible, all system specific flags should be
|
||||
# defined in CONFIG.Host.$(ARCH_CLASS))
|
||||
#
|
||||
# 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
|
||||
# This is added to the above, but only for ARCH_CLASS=BSD:
|
||||
USR_CFLAGS_BSD = -DVERSION='Berkeley enhanced'
|
||||
# ..only for WIN32:
|
||||
USR_CFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
#
|
||||
# -nil- is special:
|
||||
# if USR_CFLAGS_SYSV was undefined or empty, .._DEFAULT would have
|
||||
# been used.
|
||||
# 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-
|
||||
# .. for all other arch classes:
|
||||
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_WIN32 = -DVERSION='WIN32 port'
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# general rule for all .c .cc .h .hh files and scripts:
|
||||
#
|
||||
# In here you supply just the filename without '../' etc.
|
||||
# While building in an O.xxx subdir, the
|
||||
# sources are extracted from either the
|
||||
# '..'
|
||||
# dir or - if it exists - the dir
|
||||
# '../$(ARCH_CLASS)'
|
||||
# is preferred.
|
||||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# defining a library
|
||||
# --------------------------------------------------------------------
|
||||
#
|
||||
# Contents of a library are specified via LIBSRCS.
|
||||
# From this the platform specific object names (.o, .obj, ...)
|
||||
# are derived automatically.
|
||||
#
|
||||
# Platform specific objects:
|
||||
# use LIBOBJS_$(ARCH_CLASS) or .._DEFAULT
|
||||
#
|
||||
# Platform specific files can also be put in
|
||||
# separate os/ARCH_CLASS directories!
|
||||
#
|
||||
# For almost every file the seach order is:
|
||||
# ./os/ARCH_CLASS
|
||||
# ./os/generic
|
||||
# .
|
||||
# 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-
|
||||
|
||||
# Library to build:
|
||||
# lib$(LIBRARY).a or ..dll/..exp/..lib
|
||||
#
|
||||
# Currently you can build only one (1) lib per Makefile.Host!
|
||||
#
|
||||
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)
|
||||
# --------------------------------------------------------------------
|
||||
#
|
||||
# if SRCS is undefined, it defaults to $(PROD).c
|
||||
SRCS=a.c b.c c.c
|
||||
|
||||
# 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
|
||||
# for most systems:
|
||||
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
|
||||
|
||||
# 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
|
||||
|
||||
# if you want to build products locally without installing:
|
||||
# TESTPROD = test
|
||||
|
||||
# put all definitions before the following include line
|
||||
# put all rules after the following include line
|
||||
|
||||
include $(TOP)/config/RULES.Host
|
||||
|
||||
# EOF Makefile.Host
|
||||
119
configure/CONFIG
119
configure/CONFIG
@@ -1,119 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
|
||||
#
|
||||
# Common build definitions
|
||||
#
|
||||
|
||||
ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
|
||||
EPICS_BASE = $(INSTALL_LOCATION)
|
||||
CONFIG = $(TOP)/configure
|
||||
BASE_TOP=YES
|
||||
else
|
||||
CONFIG ?= $(EPICS_BASE)/configure
|
||||
endif
|
||||
|
||||
# Provide a default if the user hasn't set EPICS_HOST_ARCH
|
||||
ifeq ($(origin EPICS_HOST_ARCH), undefined)
|
||||
# NB: We use a simply expanded variable here for performance:
|
||||
EPICS_HOST_ARCH := $(shell $(CONFIG)/../startup/EpicsHostArch.pl)
|
||||
endif
|
||||
#
|
||||
|
||||
-include $(CONFIG)/RELEASE
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).Common
|
||||
ifdef T_A
|
||||
-include $(CONFIG)/RELEASE.Common.$(T_A)
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
endif
|
||||
|
||||
include $(CONFIG)/CONFIG_COMMON
|
||||
include $(CONFIG)/CONFIG_FILE_TYPE
|
||||
|
||||
# Base-specific build options
|
||||
#
|
||||
include $(CONFIG)/CONFIG_BASE
|
||||
|
||||
# Site-specific build options
|
||||
#
|
||||
include $(CONFIG)/CONFIG_SITE
|
||||
|
||||
# Version numbering
|
||||
#
|
||||
include $(CONFIG)/CONFIG_BASE_VERSION
|
||||
|
||||
# Host architecture specific definitions
|
||||
#
|
||||
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
|
||||
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
|
||||
|
||||
ifdef T_A
|
||||
|
||||
# Cross compile specific definitions
|
||||
#
|
||||
ifneq ($(EPICS_HOST_ARCH),$(T_A))
|
||||
include $(CONFIG)/CONFIG.CrossCommon
|
||||
endif
|
||||
|
||||
# Target architecture specific definitions
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG.Common.$(T_A)
|
||||
|
||||
# Host-Target architecture specific definitions
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
# RELEASE file specific definitions
|
||||
#
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
-include $(CONFIG)/CONFIG_APP_INCLUDE
|
||||
endif
|
||||
|
||||
# Site specific target and host-target definitions
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.$(T_A)
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
endif # ifdef T_A
|
||||
|
||||
|
||||
# Include <top>/cfg/CONFIG* definitions from tops defined in RELEASE* files
|
||||
#
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
RELEASE_TOPS_REVERSE := $(shell \
|
||||
$(PERL) -e '$$,=" ";print reverse @ARGV' $(RELEASE_TOPS))
|
||||
RELEASE_CFG_CONFIGS = $(foreach top, $(RELEASE_TOPS_REVERSE), \
|
||||
$(wildcard $($(top))/cfg/CONFIG*))
|
||||
ifneq ($(RELEASE_CFG_CONFIGS),)
|
||||
include $(RELEASE_CFG_CONFIGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Include $(INSTALL_CFG)/CONFIG* definitions
|
||||
#
|
||||
TOP_CFG_CONFIGS = $(wildcard $(INSTALL_CFG)/CONFIG*)
|
||||
ifneq ($(TOP_CFG_CONFIGS),)
|
||||
include $(TOP_CFG_CONFIGS)
|
||||
endif
|
||||
|
||||
# User specific definitions
|
||||
#
|
||||
-include $(HOME)/configure/CONFIG_USER
|
||||
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH)
|
||||
ifdef T_A
|
||||
-include $(HOME)/configure/CONFIG_USER.Common.$(T_A)
|
||||
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH).$(T_A)
|
||||
endif
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Cross compiler default definitions
|
||||
|
||||
# Build class: either HOST or CROSS
|
||||
# Used to determine OPT and WARN compiler flags
|
||||
BUILD_CLASS = CROSS
|
||||
|
||||
# Cross build: either defined or not
|
||||
# Used in os/CONFIG.Common.<arch> files
|
||||
# ifdef CROSS looks better than ifeq ($(BUILD_CLASS),CROSS)
|
||||
CROSS = YES
|
||||
|
||||
GNU_TARGET_INCLUDE_DIR = $(GNU_TARGET:%= $(GNU_DIR)/%/include)
|
||||
GNU_TARGET_LIB_DIR = $(GNU_TARGET:%= $(GNU_DIR)/%/lib)
|
||||
|
||||
CROSS_INCLUDES = $(addprefix -I,$(GNU_TARGET_INCLUDE_DIR))
|
||||
CROSS_LDFLAGS = $(addprefix -L,$(GNU_TARGET_LIB_DIR))
|
||||
|
||||
CMPLR_PREFIX_CROSS=$(addsuffix -,$(GNU_TARGET))
|
||||
CMPLR_PREFIX=$(CMPLR_PREFIX_$(BUILD_CLASS))
|
||||
|
||||
# All cross builds use the gnu compiler
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#--------------------------------------------------
|
||||
# GNU compiler defaults
|
||||
|
||||
GNU = YES
|
||||
|
||||
CMPLR_CLASS = gcc
|
||||
|
||||
GNU_BIN = $(GNU_DIR)/bin
|
||||
GNU_LIB = $(GNU_DIR)/lib
|
||||
|
||||
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc$(CMPLR_SUFFIX)
|
||||
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++$(CMPLR_SUFFIX)
|
||||
AR = $(GNU_BIN)/$(CMPLR_PREFIX)ar$(CMPLR_SUFFIX) -rc
|
||||
LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
CPP = $(CC) -x c -E
|
||||
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
|
||||
|
||||
PROF_CFLAGS_YES = -p
|
||||
GPROF_CFLAGS_YES = -pg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
WARN_CFLAGS_YES = -Wall
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -O3
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
GPROF_CXXFLAGS_YES = -pg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
WARN_CXXFLAGS_YES = -Wall
|
||||
WARN_CXXFLAGS_NO = -w
|
||||
OPT_CXXFLAGS_YES = -O3
|
||||
OPT_CXXFLAGS_NO = -g
|
||||
|
||||
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
|
||||
PIPE_CFLAGS_YES_YES = -pipe
|
||||
PIPE_CFLAGS = $(PIPE_CFLAGS_$(GCC_PIPE)_$(GNU))
|
||||
PIPE_CXXFLAGS = $(PIPE_CFLAGS)
|
||||
|
||||
STATIC_LDFLAGS_YES = -static
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
SHRLIB_CFLAGS = -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc
|
||||
|
||||
# Use compiler flags to generate header dependancies files
|
||||
HDEPENDS_METHOD = COMP
|
||||
HDEPENDS_COMPFLAGS = -MM -MF $@
|
||||
|
||||
@@ -1,585 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Revision-Id$
|
||||
#
|
||||
# check for add-on CFLAGS and CXXFLAGS
|
||||
#
|
||||
# Rules:
|
||||
# 1) USR_CFLAGS is used
|
||||
# 2) if there is a special USR_CFLAGS_$(OS_CLASS), it's
|
||||
# appended to 1)
|
||||
# 3) if there is no special defined, but a generic USR_CFLAGS_DEFAULT,
|
||||
# this one is appended
|
||||
# 4) if you have the special case that your USR_CFLAGS_$(OS_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_WIN = -nil-
|
||||
# USR_CFLAGS_DEFAULT = <defines for most systems, not WIN32>
|
||||
#
|
||||
# These rules apply to these Makefile-variables:
|
||||
# USR_CFLAGS C flags
|
||||
# USR_CXXFLAGS C++ flags
|
||||
# USR_CPPFLAGS c preprocesser flags
|
||||
# SRCS source files for building libraries and prods
|
||||
# USR_SRCS source files for building libraries and prods
|
||||
# PROD_SRCS source files for building prods
|
||||
# LIB_SRCS source files for building libraries
|
||||
# LIBSRCS source files for building libraries (deprecated)
|
||||
# PROD_OBJS object files for building prods
|
||||
# LIB_OBJS object files for building libraries
|
||||
# USR_OBJS object files for building libraries and prods
|
||||
# USR_LIBS libs needed by PROD and TESTPROD and LIBRARY
|
||||
# PROD_LIBS libs needed by PROD and TESTPROD
|
||||
# LIB_LIBS libs needed by shared LIBRARY
|
||||
# SHRLIB_LIBS libs needed by shared LIBRARY
|
||||
# USR_OBJLIBS R3.13 vxWorks object libs needed building libraries and prods
|
||||
# PROD_OBJLIBS R3.13 vxWorks object libs needed for building prods
|
||||
# LIB_OBJLIBS R3.13 vxWorks object libs needed for building libraries
|
||||
# USR_SYS_LIBS system libs needed building libraries and prods
|
||||
# PROD_SYS_LIBS system libs needed for building prods
|
||||
# LIB_SYS_LIBS system libs needed for building libraries
|
||||
# USR_LDFLAGS ld flags for building libraries and prods
|
||||
# PROD_LDFLAGS ld flags for building prods
|
||||
# LIB_LDFLAGS ld flags for building libraries
|
||||
# PROD products to build and install
|
||||
# PROD_HOST products to build and install
|
||||
# PROD_IOC products to build and install
|
||||
# TESTPROD products to build
|
||||
# TESTPROD_HOST products to build
|
||||
# TESTPROD_IOC products to build
|
||||
# LIBRARY libraries to build and install
|
||||
# LIBRARY_HOST libraries to build and install
|
||||
# LIBRARY_IOC libraries to build and install
|
||||
# TESTLIBRARY libraries to build
|
||||
# TESTLIBRARY_HOST libraries to build
|
||||
# TESTLIBRARY_IOC libraries to build
|
||||
# LOADABLE_LIBRARY libraries to build and install
|
||||
# LOADABLE_LIBRARY_HOST libraries to build and install
|
||||
# LOADABLE_LIBRARY_IOC libraries to build and install
|
||||
# SCRIPTS scripts and install
|
||||
# SCRIPTS_HOST host system scripts to install
|
||||
# SCRIPTS_IOC ioc system scripts to install
|
||||
# TESTSCRIPTS scripts
|
||||
# TESTSCRIPTS_HOST host system scripts
|
||||
# TESTSCRIPTS_IOC ioc system scripts
|
||||
# OBJS object files to build and install
|
||||
# OBJS_HOST host system object files to build and install
|
||||
# OBJS_IOC ioc system object files to build and install
|
||||
# USR_INCLUDES include directories
|
||||
# BIN_INSTALLS binaries to install
|
||||
# LIB_INSTALLS library binaries to install
|
||||
# RCS win32 resource files for building libraries and prods
|
||||
# PROD_RCS win32 resource files for building prods
|
||||
# LIB_RCS win32 resource files for building libraries
|
||||
#
|
||||
# Remark:
|
||||
# If you define INC, e.g. INC = getopt.h, the source
|
||||
# (getopt.h) must be in the source directory (..) and/or
|
||||
# in one or more ../os/<OS_CLASS> directories.
|
||||
#
|
||||
# Additional target architecture, T_A, Rules for USR_CFLAGS, USR_CXXFLAGS,
|
||||
# and USR_CPPFLAGS which are applied before the above os_class Rules:
|
||||
# 1) USR_CFLAGS_$(OS_CLASS) is used
|
||||
# 2) if there is a special $(USR_CFLAGS_$(T_A)), it's
|
||||
# appended to 1)
|
||||
# 3) if there is no special defined, but a generic USR_CFLAGS_$(OS_CLASS)_DEFAULT,
|
||||
# this one is appended
|
||||
# 4) if you have the special case that your $(USR_CFLAGS_$(T_A)) is
|
||||
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
|
||||
# USR_CFLAGS_vxWorks = <defines for all OS_CLASS=vxWorks target systems>
|
||||
# USR_CFLAGS_vxWorks-68040 = -nil-
|
||||
# USR_CFLAGS_vxWorks_DEFAULT = <defines for most vxWorks systems, not 68040>
|
||||
#
|
||||
#
|
||||
|
||||
ifneq ($(strip $(USR_CFLAGS_$(T_A))),)
|
||||
USR_CFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CFLAGS_$(OS_CLASS)+=$(USR_CFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CFLAGS_$(OS_CLASS))),)
|
||||
USR_CFLAGS+=$(subst -nil-,,$(USR_CFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CFLAGS_DEFAULT
|
||||
USR_CFLAGS+=$(USR_CFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_INCLUDES_$(OS_CLASS))),)
|
||||
USR_INCLUDES+=$(subst -nil-,,$(USR_INCLUDES_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_INCLUDES_DEFAULT
|
||||
USR_INCLUDES+=$(USR_INCLUDES_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(T_A))),)
|
||||
USR_CXXFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CXXFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CXXFLAGS_$(OS_CLASS)+=$(USR_CXXFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(OS_CLASS))),)
|
||||
USR_CXXFLAGS+=$(subst -nil-,,$(USR_CXXFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_DEFAULT
|
||||
USR_CXXFLAGS+=$(USR_CXXFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CPPFLAGS_$(T_A))),)
|
||||
USR_CPPFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CPPFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CPPFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CPPFLAGS_$(OS_CLASS)+=$(USR_CPPFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CPPFLAGS_$(OS_CLASS))),)
|
||||
USR_CPPFLAGS+=$(subst -nil-,,$(USR_CPPFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CPPFLAGS_DEFAULT
|
||||
USR_CPPFLAGS+=$(USR_CPPFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_LDFLAGS_$(OS_CLASS))),)
|
||||
USR_LDFLAGS+=$(subst -nil-,,$(USR_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_LDFLAGS_DEFAULT
|
||||
USR_LDFLAGS+=$(USR_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_LDFLAGS_$(OS_CLASS))),)
|
||||
PROD_LDFLAGS+=$(subst -nil-,,$(PROD_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_LDFLAGS_DEFAULT
|
||||
PROD_LDFLAGS+=$(PROD_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_LDFLAGS_$(OS_CLASS))),)
|
||||
LIB_LDFLAGS+=$(subst -nil-,,$(LIB_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_LDFLAGS_DEFAULT
|
||||
LIB_LDFLAGS+=$(LIB_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBSRCS_$(OS_CLASS))),)
|
||||
LIBSRCS += $(subst -nil-,,$(LIBSRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIBSRCS_DEFAULT
|
||||
LIBSRCS+=$(LIBSRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_SRCS_$(OS_CLASS))),)
|
||||
LIB_SRCS += $(subst -nil-,,$(LIB_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_SRCS_DEFAULT
|
||||
LIB_SRCS+=$(LIB_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SRCS_$(OS_CLASS))),)
|
||||
SRCS += $(subst -nil-,,$(SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SRCS_DEFAULT
|
||||
SRCS+=$(SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_SRCS_$(OS_CLASS))),)
|
||||
USR_SRCS += $(subst -nil-,,$(USR_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_SRCS_DEFAULT
|
||||
USR_SRCS+=$(USR_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_SRCS_$(OS_CLASS))),)
|
||||
PROD_SRCS += $(subst -nil-,,$(PROD_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_SRCS_DEFAULT
|
||||
PROD_SRCS+=$(PROD_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(BIN_INSTALLS_$(OS_CLASS))),)
|
||||
BIN_INSTALLS+=$(subst -nil-,,$(BIN_INSTALLS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef BIN_INSTALLS_DEFAULT
|
||||
BIN_INSTALLS+=$(BIN_INSTALLS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_INSTALLS_$(OS_CLASS))),)
|
||||
LIB_INSTALLS+=$(subst -nil-,,$(LIB_INSTALLS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_INSTALLS_DEFAULT
|
||||
LIB_INSTALLS+=$(LIB_INSTALLS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_OBJS_$(OS_CLASS))),)
|
||||
PROD_OBJS+=$(subst -nil-,,$(PROD_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_OBJS_DEFAULT)))
|
||||
PROD_OBJS+=$(PROD_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_OBJS_$(OS_CLASS))),)
|
||||
USR_OBJS+=$(subst -nil-,,$(USR_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(USR_OBJS_DEFAULT)))
|
||||
USR_OBJS+=$(USR_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_$(OS_CLASS))),)
|
||||
OBJS+=$(subst -nil-,,$(OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_DEFAULT)))
|
||||
OBJS+=$(OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_IOC_$(OS_CLASS))),)
|
||||
OBJS_IOC+=$(subst -nil-,,$(OBJS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_IOC_DEFAULT)))
|
||||
OBJS_IOC+=$(OBJS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_HOST_$(OS_CLASS))),)
|
||||
OBJS_HOST+=$(subst -nil-,,$(OBJS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_HOST_DEFAULT)))
|
||||
OBJS_HOST+=$(OBJS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),)
|
||||
PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_OBJLIBS_DEFAULT
|
||||
PROD_OBJLIBS+=$(PROD_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_OBJLIBS_$(OS_CLASS))),)
|
||||
LIB_OBJLIBS+=$(subst -nil-,,$(LIB_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_OBJLIBS_DEFAULT
|
||||
LIB_OBJLIBS+=$(LIB_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_OBJLIBS_$(OS_CLASS))),)
|
||||
USR_OBJLIBS+=$(subst -nil-,,$(USR_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_OBJLIBS_DEFAULT
|
||||
USR_OBJLIBS+=$(USR_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_OBJS_$(OS_CLASS))),)
|
||||
LIB_OBJS+=$(subst -nil-,,$(LIB_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIB_OBJS_DEFAULT)))
|
||||
LIB_OBJS+=$(LIB_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_$(OS_CLASS))),)
|
||||
LIBRARY+=$(subst -nil-,,$(LIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_DEFAULT)))
|
||||
LIBRARY+=$(LIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_IOC_$(OS_CLASS))),)
|
||||
LIBRARY_IOC+=$(subst -nil-,,$(LIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_IOC_DEFAULT)))
|
||||
LIBRARY_IOC+=$(LIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_HOST_$(OS_CLASS))),)
|
||||
LIBRARY_HOST+=$(subst -nil-,,$(LIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_HOST_DEFAULT)))
|
||||
LIBRARY_HOST+=$(LIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_$(OS_CLASS))),)
|
||||
TESTLIBRARY+=$(subst -nil-,,$(TESTLIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_DEFAULT)))
|
||||
TESTLIBRARY+=$(TESTLIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_IOC_$(OS_CLASS))),)
|
||||
TESTLIBRARY_IOC+=$(subst -nil-,,$(TESTLIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_IOC_DEFAULT)))
|
||||
TESTLIBRARY_IOC+=$(TESTLIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_HOST_$(OS_CLASS))),)
|
||||
TESTLIBRARY_HOST+=$(subst -nil-,,$(TESTLIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_HOST_DEFAULT)))
|
||||
TESTLIBRARY_HOST+=$(TESTLIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY+=$(subst -nil-,,$(LOADABLE_LIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_DEFAULT)))
|
||||
LOADABLE_LIBRARY+=$(LOADABLE_LIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_HOST_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY_HOST+=$(subst -nil-,,$(LOADABLE_LIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_HOST_DEFAULT)))
|
||||
LOADABLE_LIBRARY_HOST+=$(LOADABLE_LIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_IOC_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY_IOC+=$(subst -nil-,,$(LOADABLE_LIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_IOC_DEFAULT)))
|
||||
LOADABLE_LIBRARY_IOC+=$(LOADABLE_LIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),)
|
||||
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_LIBS_DEFAULT
|
||||
PROD_LIBS += $(PROD_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# SHRLIB_LIBS deprecated
|
||||
ifneq ($(strip $(SHRLIB_LIBS_$(OS_CLASS))),)
|
||||
SHRLIB_LIBS += $(subst -nil-,,$(SHRLIB_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SHRLIB_LIBS_DEFAULT
|
||||
SHRLIB_LIBS += $(SHRLIB_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_LIBS_$(OS_CLASS))),)
|
||||
LIB_LIBS += $(subst -nil-,,$(LIB_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_LIBS_DEFAULT
|
||||
LIB_LIBS += $(LIB_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
|
||||
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_LIBS_DEFAULT
|
||||
USR_LIBS += $(USR_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific library contents (if defined) to SYS_PROD_LIBS
|
||||
#
|
||||
# SYS_PROD_LIBS deprecated
|
||||
ifneq ($(strip $(SYS_PROD_LIBS_$(OS_CLASS))),)
|
||||
SYS_PROD_LIBS += $(subst -nil-,,$(SYS_PROD_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SYS_PROD_LIBS_DEFAULT
|
||||
SYS_PROD_LIBS += $(SYS_PROD_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
PROD_SYS_LIBS+=$(SYS_PROD_LIBS)
|
||||
|
||||
ifneq ($(strip $(PROD_SYS_LIBS_$(OS_CLASS))),)
|
||||
PROD_SYS_LIBS += $(subst -nil-,,$(PROD_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_SYS_LIBS_DEFAULT
|
||||
PROD_SYS_LIBS += $(PROD_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_SYS_LIBS_$(OS_CLASS))),)
|
||||
LIB_SYS_LIBS += $(subst -nil-,,$(LIB_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_SYS_LIBS_DEFAULT
|
||||
LIB_SYS_LIBS += $(LIB_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_SYS_LIBS_$(OS_CLASS))),)
|
||||
USR_SYS_LIBS += $(subst -nil-,,$(USR_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_SYS_LIBS_DEFAULT
|
||||
USR_SYS_LIBS += $(USR_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific products
|
||||
#
|
||||
ifneq ($(strip $(PROD_$(OS_CLASS))),)
|
||||
PROD+=$(subst -nil-,,$(PROD_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_DEFAULT)))
|
||||
PROD+=$(PROD_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_IOC_$(OS_CLASS))),)
|
||||
PROD_IOC+=$(subst -nil-,,$(PROD_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_IOC_DEFAULT)))
|
||||
PROD_IOC+=$(PROD_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_HOST_$(OS_CLASS))),)
|
||||
PROD_HOST+=$(subst -nil-,,$(PROD_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_HOST_DEFAULT)))
|
||||
PROD_HOST+=$(PROD_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific products
|
||||
#
|
||||
ifneq ($(strip $(TESTPROD_$(OS_CLASS))),)
|
||||
TESTPROD+=$(subst -nil-,,$(TESTPROD_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_DEFAULT)))
|
||||
TESTPROD+=$(TESTPROD_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTPROD_IOC_$(OS_CLASS))),)
|
||||
TESTPROD_IOC+=$(subst -nil-,,$(TESTPROD_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_IOC_DEFAULT)))
|
||||
TESTPROD_IOC+=$(TESTPROD_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTPROD_HOST_$(OS_CLASS))),)
|
||||
TESTPROD_HOST+=$(subst -nil-,,$(TESTPROD_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_HOST_DEFAULT)))
|
||||
TESTPROD_HOST+=$(TESTPROD_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq ($(strip $(SCRIPTS_$(OS_CLASS))),)
|
||||
SCRIPTS += $(subst -nil-,,$(SCRIPTS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SCRIPTS_DEFAULT
|
||||
SCRIPTS += $(SCRIPTS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SCRIPTS_IOC_$(OS_CLASS))),)
|
||||
SCRIPTS_IOC+=$(subst -nil-,,$(SCRIPTS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(SCRIPTS_IOC_DEFAULT)))
|
||||
SCRIPTS_IOC+=$(SCRIPTS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SCRIPTS_HOST_$(OS_CLASS))),)
|
||||
SCRIPTS_HOST+=$(subst -nil-,,$(SCRIPTS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(SCRIPTS_HOST_DEFAULT)))
|
||||
SCRIPTS_HOST+=$(SCRIPTS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq ($(strip $(TESTSCRIPTS_$(OS_CLASS))),)
|
||||
TESTSCRIPTS += $(subst -nil-,,$(TESTSCRIPTS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef TESTSCRIPTS_DEFAULT
|
||||
TESTSCRIPTS += $(TESTSCRIPTS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTSCRIPTS_IOC_$(OS_CLASS))),)
|
||||
TESTSCRIPTS_IOC+=$(subst -nil-,,$(TESTSCRIPTS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTSCRIPTS_IOC_DEFAULT)))
|
||||
TESTSCRIPTS_IOC+=$(TESTSCRIPTS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTSCRIPTS_HOST_$(OS_CLASS))),)
|
||||
TESTSCRIPTS_HOST+=$(subst -nil-,,$(TESTSCRIPTS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTSCRIPTS_HOST_DEFAULT)))
|
||||
TESTSCRIPTS_HOST+=$(TESTSCRIPTS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific resource files
|
||||
#
|
||||
ifneq ($(strip $(RCS_$(OS_CLASS))),)
|
||||
RCS += $(subst -nil-,,$(RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef RCS_DEFAULT
|
||||
RCS += $(RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_RCS_$(OS_CLASS))),)
|
||||
PROD_RCS += $(subst -nil-,,$(PROD_RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_RCS_DEFAULT
|
||||
PROD_RCS+=$(PROD_RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_RCS_$(OS_CLASS))),)
|
||||
LIB_RCS += $(subst -nil-,,$(LIB_RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_RCS_DEFAULT
|
||||
LIB_RCS+=$(LIB_RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
|
||||
export TOP
|
||||
|
||||
ifneq ($(RELEASE_TOPS),)
|
||||
|
||||
define RELEASE_FLAGS_template
|
||||
export $(1)
|
||||
$(1)_HOST_BIN = $$(strip $$($(1)))/bin/$(EPICS_HOST_ARCH)
|
||||
$(1)_HOST_LIB = $$(strip $$($(1)))/lib/$(EPICS_HOST_ARCH)
|
||||
$(1)_BIN = $$(wildcard $$(strip $$($(1)))/bin/$(T_A))
|
||||
$(1)_LIB = $$(wildcard $$(strip $$($(1)))/lib/$(T_A))
|
||||
SHRLIB_SEARCH_DIRS += $$($(1)_LIB)
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/compiler/$(CMPLR_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/os/$(OS_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include))
|
||||
RELEASE_DBD_DIRS += $$(wildcard $$(strip $$($(1)))/dbd)
|
||||
RELEASE_DB_DIRS += $$(wildcard $$(strip $$($(1)))/db)
|
||||
RELEASE_PERL_MODULE_DIRS += $$(wildcard $$(strip $$($(1)))/lib/perl)
|
||||
endef
|
||||
$(foreach top, $(RELEASE_TOPS), \
|
||||
$(eval $(call RELEASE_FLAGS_template,$(top))))
|
||||
|
||||
endif
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base directories
|
||||
|
||||
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH)
|
||||
EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)
|
||||
ifdef T_A
|
||||
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
|
||||
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base Ioc libraries
|
||||
|
||||
EPICS_BASE_IOC_LIBS += dbRecStd dbCore ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base Host libraries
|
||||
|
||||
EPICS_BASE_HOST_LIBS += cas gdd
|
||||
EPICS_BASE_HOST_LIBS += ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Version number for base shared libraries (and win32 products)
|
||||
|
||||
ifdef BASE_TOP
|
||||
# Unix lib.so.<v.r.m> Darwin lib.<v.r.m>.dylib
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
# Windows only allows 2 levels of version numbering
|
||||
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
|
||||
endif # BASE_TOP
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Base c preprocessor flags
|
||||
|
||||
BASE_CPPFLAGS =
|
||||
|
||||
# osithread default stack
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
OSITHREAD_DEFAULT_STACK_FLAGS_YES = -DOSITHREAD_USE_DEFAULT_STACK
|
||||
OSITHREAD_DEFAULT_STACK_FLAGS_NO =
|
||||
BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Where to find the installed build tools
|
||||
# Windows does not like commands with relative paths starting ../
|
||||
# but the Perl scripts in TOP/src/tools are OK
|
||||
|
||||
TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
|
||||
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(TOP)/src/tools/$(1)))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base build tools and tool flags
|
||||
|
||||
MAKEBPT = $(TOOLS)/makeBpt$(HOSTEXE)
|
||||
DBEXPAND = $(PERL) $(TOOLS)/dbdExpand.pl
|
||||
DBTORECORDTYPEH = $(PERL) $(TOOLS)/dbdToRecordtypeH.pl
|
||||
DBTOMENUH = $(PERL) $(TOOLS)/dbdToMenuH.pl
|
||||
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
|
||||
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
|
||||
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
|
||||
|
||||
#-------------------------------------------------------
|
||||
# tools for installing libraries and products
|
||||
INSTALL_QUIETLY := $(if $(findstring s,$(MAKEFLAGS)),-q,)
|
||||
INSTALL = $(PERL) $(TOOLS)/installEpics.pl $(INSTALL_QUIETLY)
|
||||
INSTALL_PRODUCT = $(INSTALL)
|
||||
INSTALL_LIBRARY = $(INSTALL)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# tools for making header dependancies and variable replacement
|
||||
MKMF = $(PERL) $(TOOLS)/mkmf.pl
|
||||
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# private versions of lex/yacc from EPICS
|
||||
EYACC = $(TOOLS)/antelope$(HOSTEXE)
|
||||
ELEX = $(TOOLS)/e_flex$(HOSTEXE) -S$(EPICS_BASE)/include/flex.skel.static
|
||||
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Our use of msi is incompatible with older versions
|
||||
|
||||
MSI3_15 = $(EPICS_BASE_HOST_BIN)/msi
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# External tools and tool flags - must be in path or defined in application
|
||||
|
||||
ADL2DL ?= adl2dl
|
||||
|
||||
# sch2edif compiler and flags
|
||||
SCH2EDIF = sch2edif
|
||||
SCH2EDIF_PATH =
|
||||
SCH2EDIF_SYSFLAGS = -n -ap -p.+..+$(SCH2EDIF_PATH)+$(CAPFAST_TEMPLATES)/sym+
|
||||
SCH2EDIF_FLAGS =
|
||||
|
||||
# e2db and flags
|
||||
# - again there is an assumption where edb.def is installed.
|
||||
E2DB ?= e2db
|
||||
E2DB_SYSFLAGS = -ate -d $(CAPFAST_TEMPLATES)/edb.def
|
||||
E2DB_FLAGS =
|
||||
|
||||
DBST ?= dbst
|
||||
|
||||
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
# EPICS Version information
|
||||
#
|
||||
# Only the person making an official EPICS release should make changes in
|
||||
# this file.
|
||||
#
|
||||
# EPICS_SITE_VERSION is defined in CONFIG_SITE for sites that want a local
|
||||
# version number to be included in the reported version string.
|
||||
|
||||
# In 3.15 we still define BASE_3_14 so "ifdef BASE_3_14" means
|
||||
# 3.14 or later, but "ifeq ($(BASE_3_14),YES)" means 3.14 only.
|
||||
BASE_3_14 = NO
|
||||
BASE_3_15 = YES
|
||||
|
||||
# EPICS_VERSION must be a number >0 and <256
|
||||
EPICS_VERSION = 3
|
||||
|
||||
# EPICS_REVISION must be a number >=0 and <256
|
||||
EPICS_REVISION = 15
|
||||
|
||||
# EPICS_MODIFICATION must be a number >=0 and <256
|
||||
EPICS_MODIFICATION = 4
|
||||
|
||||
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
|
||||
# Not included if zero
|
||||
EPICS_PATCH_LEVEL = 0
|
||||
|
||||
# This will end in -DEV between official releases
|
||||
#EPICS_DEV_SNAPSHOT=-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-pre1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre2
|
||||
#EPICS_DEV_SNAPSHOT=-pre2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc1
|
||||
#EPICS_DEV_SNAPSHOT=-rc1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc2
|
||||
#EPICS_DEV_SNAPSHOT=-rc2-DEV
|
||||
EPICS_DEV_SNAPSHOT=
|
||||
|
||||
# No changes should be needed below here
|
||||
|
||||
ifneq ($(EPICS_PATCH_LEVEL),0)
|
||||
EPICS_PATCH_VSTRING=.$(EPICS_PATCH_LEVEL)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(EPICS_SITE_VERSION)),)
|
||||
EPICS_SITE_VSTRING=-$(EPICS_SITE_VERSION)
|
||||
endif
|
||||
|
||||
EPICS_SHORT_VERSION=$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
|
||||
EPICS_VERSION_NUMBER=$(EPICS_SHORT_VERSION)$(EPICS_DEV_SNAPSHOT)$(EPICS_SITE_VSTRING)
|
||||
EPICS_VERSION_STRING="EPICS Version $(EPICS_VERSION_NUMBER)"
|
||||
|
||||
COMMIT_DATE="\$$Date$$"
|
||||
@@ -1,460 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
# CONFIG_COMMON
|
||||
#
|
||||
# This file is to be maintained by the community.
|
||||
#
|
||||
# Common Configuration Information
|
||||
|
||||
#-------------------------------------------------------
|
||||
# POSIX is OS default
|
||||
POSIX=YES
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Divider symbol
|
||||
DIVIDER = .
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build architectures
|
||||
|
||||
# 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 EPICS_HOST_ARCH is one of its words
|
||||
CROSS2 = $(CROSS_COMPILER_TARGET_ARCHS$(filter-out 1,$(words $(filter $(EPICS_HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))))
|
||||
|
||||
BUILD_ARCHS = $(EPICS_HOST_ARCH) $(CROSS1) $(CROSS2)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Default for perl if it's on the PATH,
|
||||
# otherwise override this in os/CONFIG_SITE.<host_arch>.Common
|
||||
PERL = perl -CSD
|
||||
|
||||
#-------------------------------------------------------
|
||||
# dbst based database optimization default
|
||||
DB_OPT = NO
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Check configure/RELEASE file for consistency
|
||||
CHECK_RELEASE_YES = checkRelease
|
||||
CHECK_RELEASE_NO = noCheckRelease
|
||||
CHECK_RELEASE_WARN = warnRelease
|
||||
|
||||
#-------------------------------------------------------
|
||||
# GNU directory
|
||||
# GNU_DIR definition is here because it is used to find
|
||||
# READLINE library even if GNU compiler is not used
|
||||
GNU_DIR = /usr
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Directories
|
||||
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
|
||||
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
|
||||
INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin
|
||||
|
||||
INSTALL_HOST_BIN = $(INSTALL_LOCATION_BIN)/$(EPICS_HOST_ARCH)
|
||||
INSTALL_HOST_LIB = $(INSTALL_LOCATION_LIB)/$(EPICS_HOST_ARCH)
|
||||
|
||||
INSTALL_INCLUDE = $(INSTALL_LOCATION)/include
|
||||
INSTALL_DOC = $(INSTALL_LOCATION)/doc
|
||||
INSTALL_HTML = $(INSTALL_LOCATION)/html
|
||||
INSTALL_TEMPLATES = $(INSTALL_LOCATION)/templates
|
||||
INSTALL_DBD = $(INSTALL_LOCATION)/dbd
|
||||
INSTALL_DB = $(INSTALL_LOCATION)/db
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
|
||||
|
||||
# Directory for OS independant build created files
|
||||
COMMON_DIR = ../O.Common
|
||||
|
||||
# IOC's absolute path to $(TOP), may be overridden inside the application
|
||||
IOCS_APPL_TOP = $(shell $(FULLPATHNAME) $(INSTALL_LOCATION))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Make echo output - suppress echoing if make's '-s' flag is set
|
||||
NOP = :
|
||||
ECHO = @$(if $(findstring s,$(patsubst T_A=%,,$(MAKEFLAGS))),$(NOP),echo)
|
||||
|
||||
#-------------------------------------------------------
|
||||
ifdef T_A
|
||||
|
||||
INSTALL_LIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_SHRLIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_TCLLIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_BIN = $(INSTALL_LOCATION_BIN)/$(T_A)
|
||||
|
||||
#Directories for libraries
|
||||
SHRLIB_SEARCH_DIRS = $(INSTALL_LIB)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Ext, app, and module configure dir targets
|
||||
CONFIG_INSTALLS += ../RULES_BUILD ../RELEASE*
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Cross compile default, HOST or CROSS, CONFIG.crossCommon will override
|
||||
BUILD_CLASS = HOST
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build defaults, CONFIG_SITE, CONFIG, or os/CONFIG* will override
|
||||
STATIC_BUILD=NO
|
||||
SHARED_LIBRARIES=YES
|
||||
HOST_OPT=YES
|
||||
CROSS_OPT=YES
|
||||
HOST_WARN=YES
|
||||
CROSS_WARN=YES
|
||||
GNU=NO
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Run checkRelease in $(TOP)/configure/O.*
|
||||
CONFIG_TARGETS += $(CHECK_RELEASE_$(CHECK_RELEASE))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prefix and suffix
|
||||
DEP = .d
|
||||
OBJ = .o
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX =
|
||||
LIB_PREFIX =
|
||||
LIB_SUFFIX =
|
||||
SHRLIB_PREFIX = $(LIB_PREFIX)
|
||||
DLLSTUB_PREFIX = $(LIB_PREFIX)
|
||||
DLLSTUB_SUFFIX = $(LIB_SUFFIX)
|
||||
|
||||
BUILDLIB_PREFIX_YES = $(DLLSTUB_PREFIX)
|
||||
BUILDLIB_PREFIX_NO = $(LIB_PREFIX)
|
||||
BUILDLIB_SUFFIX_YES = $(DLLSTUB_SUFFIX)
|
||||
BUILDLIB_SUFFIX_NO = $(LIB_SUFFIX)
|
||||
BUILDLIB_PREFIX = $(BUILDLIB_PREFIX_$(SHARED_LIBRARIES))
|
||||
BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))
|
||||
|
||||
#--------------------------------------------------
|
||||
# vpath directories
|
||||
POSIX_YES = os/posix
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# compile line include directories
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)
|
||||
SRC_INCLUDES = -I$(COMMON_DIR) $(addprefix -I, $(wildcard $(ALL_SRC_DIRS)))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Target filename definitions
|
||||
OBJSNAME = $(addsuffix $(OBJ),$(basename $(OBJS)))
|
||||
PRODNAME = $(addsuffix $(EXE),$(basename $(PROD)))
|
||||
TESTPRODNAME = $(addsuffix $(EXE),$(basename $(TESTPROD)))
|
||||
|
||||
SHRLIBNAME = $(SHRLIBNAME_$(SHARED_LIBRARIES))
|
||||
TESTSHRLIBNAME = $(TESTSHRLIBNAME_$(SHARED_LIBRARIES))
|
||||
|
||||
#--------------------------------------------------
|
||||
# obj files
|
||||
|
||||
TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS) $($*_SRCS)))
|
||||
|
||||
PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS)))
|
||||
PROD_LD_OBJS = $(USR_OBJLIBS) $(PROD_OBJLIBS) $(TARGET_OBJS) $(PRODUCT_OBJS)
|
||||
|
||||
LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS)))
|
||||
LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Windows resource files
|
||||
|
||||
TARGET_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $($*_RCS))),)
|
||||
|
||||
PROD_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS))),)
|
||||
PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
|
||||
|
||||
LIBRARY_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))),)
|
||||
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C preprocessor, compiler, and linker flag defaults
|
||||
|
||||
# Target architecture specific flags
|
||||
ARCH_DEP_CPPFLAGS =
|
||||
ARCH_DEP_CFLAGS =
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
ARCH_DEP_LDFLAGS =
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
# Target operating system specific flags
|
||||
OP_SYS_CPPFLAGS =
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_CXXFLAGS = $(OP_SYS_CFLAGS)
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_INCLUDES =
|
||||
|
||||
# Makefile specific flags
|
||||
USR_INCLUDES =
|
||||
USR_CFLAGS =
|
||||
USR_CXXFLAGS =
|
||||
USR_LDFLAGS =
|
||||
USR_LIBS =
|
||||
USR_CPPFLAGS =
|
||||
USR_DBDFLAGS =
|
||||
USR_ARFLAGS =
|
||||
|
||||
# Variables to be set only on the command-line:
|
||||
# CMD_INCLUDES =
|
||||
# CMD_CFLAGS =
|
||||
# CMD_CXXFLAGS =
|
||||
# CMD_LDFLAGS =
|
||||
# CMD_CPPFLAGS =
|
||||
# CMD_DBFLAGS =
|
||||
# CMD_DBDFLAGS =
|
||||
# CMD_ARFLAGS =
|
||||
|
||||
# Debug specific options
|
||||
DEBUG_CPPFLAGS =
|
||||
DEBUG_CFLAGS =
|
||||
DEBUG_CXXFLAGS = $(DEBUG_CFLAGS)
|
||||
DEBUG_LDFLAGS =
|
||||
DEBUG_LDLIBS =
|
||||
|
||||
# Target specific options
|
||||
TARGET_INCLUDES = $($(basename $@)_INCLUDES_$(T_A))
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS_$(T_A))
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS_$(T_A))
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS_$(T_A))
|
||||
|
||||
TARGET_INCLUDES += $($(basename $@)_INCLUDES_$(OS_CLASS)) $($(basename $@)_INCLUDES)
|
||||
TARGET_CFLAGS += $($(basename $@)_CFLAGS_$(OS_CLASS)) $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS += $($(basename $@)_CXXFLAGS_$(OS_CLASS)) $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS += $($(basename $@)_CPPFLAGS_$(OS_CLASS)) $($(basename $@)_CPPFLAGS)
|
||||
|
||||
TARGET_LDFLAGS = $($*_LDFLAGS)
|
||||
|
||||
# Warnings flags
|
||||
WARN_CPPFLAGS = $(WARN_CPPFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CFLAGS = $(WARN_CFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CXXFLAGS = $(WARN_CXXFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
|
||||
# Optimization flags
|
||||
OPT_CPPFLAGS = $(OPT_CPPFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
OPT_CFLAGS = $(OPT_CFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
OPT_CXXFLAGS = $(OPT_CXXFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
|
||||
# Static build flags
|
||||
STATIC_CFLAGS = $(STATIC_CFLAGS_$(STATIC_BUILD))
|
||||
STATIC_CXXCFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# cflags for shared library src files (from SHRLIB_CFLAGS)
|
||||
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY),$($(lib)_OBJSNAME) $(LIBRARY_OBJS)))
|
||||
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# prefix, suffix, and ldflags for loadable shared libraries
|
||||
TARGET_LIB_LDFLAGS=$($(patsubst $*,LOADABLE_,$(findstring $*,$(LOADABLE_LIBRARY)))SHRLIB_LDFLAGS)
|
||||
LOADABLE_SHRLIB_PREFIX=$(SHRLIB_PREFIX)
|
||||
LOADABLE_SHRLIB_SUFFIX=$(SHRLIB_SUFFIX)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command-line input support default
|
||||
COMMANDLINE_LIBRARY = EPICS
|
||||
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
|
||||
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Flags
|
||||
|
||||
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
|
||||
$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES)\
|
||||
$($(BUILD_CLASS)_INCLUDES)
|
||||
|
||||
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
|
||||
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
|
||||
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
|
||||
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
|
||||
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
|
||||
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
|
||||
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
|
||||
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
|
||||
$(GNU_LDLIBS_$(GNU))
|
||||
|
||||
CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
|
||||
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
|
||||
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
|
||||
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# ar definition default
|
||||
ARFLAGS =
|
||||
ARCMD = $(AR) $(ARFLAGS) $(USR_ARFLAGS) $(CMD_ARFLAGS) $@ $(LIBRARY_LD_OBJS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# 'Munch' link-edit
|
||||
MUNCH_CMD = $(LD) $(MUNCH_LDFLAGS) -o $@ $^
|
||||
|
||||
#--------------------------------------------------
|
||||
# LEX default options
|
||||
#
|
||||
# Allow 8-bit characters
|
||||
LEXOPT += -8
|
||||
# Generate an "interactive" scanner, solves problems at EOF.
|
||||
LEXOPT += -I
|
||||
|
||||
#--------------------------------------------------
|
||||
# Build compile line here
|
||||
|
||||
COMPILE.c = $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES)
|
||||
COMPILE.cpp = $(CCC) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C preprocessor command
|
||||
PREPROCESS.cpp = $(CPP) $(CPPFLAGS) $(INCLUDES) $< > $@
|
||||
|
||||
#--------------------------------------------------
|
||||
# Header dependency file generation
|
||||
|
||||
HDEPENDS_METHOD = MKMF
|
||||
|
||||
HDEPENDS_MKMFFLAGS = -m $*$(DEP) $(INCLUDES) $@
|
||||
HDEPENDS_MKMF.c = $(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDS_MKMFFLAGS)
|
||||
HDEPENDS_MKMF.cpp = $(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDS_MKMFFLAGS)
|
||||
|
||||
HDEPENDS_COMP.c = $(COMPILE.c) $(HDEPENDS_COMPFLAGS) $(HDEPENDS_ARCHFLAGS)
|
||||
HDEPENDS_COMP.cpp = $(COMPILE.cpp) $(HDEPENDS_COMPFLAGS) $(HDEPENDS_ARCHFLAGS)
|
||||
|
||||
HDEPENDS.c = $(HDEPENDS_$(HDEPENDS_METHOD).c)
|
||||
HDEPENDS.cpp = $(HDEPENDS_$(HDEPENDS_METHOD).cpp)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Dependency files
|
||||
|
||||
TARGET_SRCS = $(foreach name, \
|
||||
$(TESTPROD) $(PROD) $(TESTLIBRARY) $(LIBRARY) $(LOADABLE_LIBRARY), \
|
||||
$($(name)_SRCS))
|
||||
SRC_FILES = $(LIB_SRCS) $(LIBSRCS) $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(TARGET_SRCS)
|
||||
HDEPENDS_FILES = $(addsuffix $(DEP),$(notdir $(basename $(SRC_FILES))))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Deprecated and no longer used in Base
|
||||
|
||||
PATH_FILTER = $(1)$(warning PATH_FILTER is deprecated; used for $(1))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Names of installed items
|
||||
#
|
||||
# each list starts with the destination directory name(s)
|
||||
# to make sure it's there
|
||||
|
||||
INSTALL_PROD= $(PRODNAME:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_LOADABLE_SHRLIBS= $(LOADABLE_SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_DLLSTUB_LIBS=$(DLLSTUB_LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_OBJS = $(OBJSNAME:%= $(INSTALL_BIN)/%)
|
||||
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
|
||||
INSTALL_TEMPLATE = $(addprefix $(INSTALL_TEMPLATES_SUBDIR)/, \
|
||||
$(subst $(CONFIG),top/configure,$(TEMPLATES)))
|
||||
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
|
||||
|
||||
INSTALL_BIN_INSTALLS = $(addprefix $(INSTALL_BIN)/,$(notdir $(BIN_INSTALLS)))
|
||||
INSTALL_LIB_INSTALLS = $(addprefix $(INSTALL_LIB)/,$(notdir $(LIB_INSTALLS)))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Installed file permissions
|
||||
BIN_PERMISSIONS = 555
|
||||
LIB_PERMISSIONS = 444
|
||||
SHRLIB_PERMISSIONS = 555
|
||||
INSTALL_PERMISSIONS = 444
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#
|
||||
# auto determine the directory paths that things are installed to
|
||||
# RULES:
|
||||
# 0) found in any one of several compiler specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)
|
||||
# 1) not found in (0) and found in any one of several OS specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/os/$(OS_CLASS)
|
||||
# 2) not found in (1) and found in generic paths
|
||||
# => install to $(INSTALL_INCLUDE)
|
||||
# 3) not found in (1) or (2) then may be (not yet) computer generated
|
||||
# => install into $(INSTALL_INCLUDE)/os/$(OS_CLASS) and let
|
||||
# build rules work on vpath
|
||||
#
|
||||
# These rules guarantee that the users include from
|
||||
# no more than three directories
|
||||
#
|
||||
INSTALL_INC += $(foreach inc, $(INC), \
|
||||
$(firstword \
|
||||
$(CMPLR_INSTALL_INC) \
|
||||
$(OS_INSTALL_INC) \
|
||||
$(GENERIC_INSTALL_INC) \
|
||||
$(GENERATED_INSTALL_INC) ) )
|
||||
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)) )
|
||||
|
||||
#
|
||||
# Rule 0
|
||||
#
|
||||
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, $(INSTALL_INC_jjj) )
|
||||
INSTALL_INC_jjj = $(foreach dir, $(CMPLR_SRC_DIRS), $(INSTALL_INC_iii) )
|
||||
INSTALL_INC_iii = $(subst $(dir)/, , $(INSTALL_INC_hhh) )
|
||||
INSTALL_INC_hhh = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 1
|
||||
#
|
||||
OS_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INSTALL_INC_ggg) )
|
||||
INSTALL_INC_ggg = $(foreach dir, $(OS_SRC_DIRS), $(INSTALL_INC_fff) )
|
||||
INSTALL_INC_fff = $(subst $(dir)/, , $(INSTALL_INC_eee) )
|
||||
INSTALL_INC_eee = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 2
|
||||
#
|
||||
GENERIC_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/, $(INSTALL_INC_ccc) )
|
||||
INSTALL_INC_ccc = $(foreach dir, .. $(SRC_DIRS), $(INSTALL_INC_bbb) )
|
||||
INSTALL_INC_bbb = $(subst $(dir)/, , $(INSTALL_INC_aaa) )
|
||||
INSTALL_INC_aaa = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 3
|
||||
#
|
||||
GENERATED_INSTALL_INC = $(INSTALL_INCLUDE)/$(inc)
|
||||
|
||||
COMMON_INC += $(filter $(COMMON_DIR)/%, $(foreach file, $(INC), \
|
||||
$(firstword $(SOURCE_INC) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_INC = $(wildcard $(file) $(SOURCE_INC_bbb) )
|
||||
SOURCE_INC_bbb = $(foreach dir, $(ALL_SRC_DIRS), $(SOURCE_INC_aaa) )
|
||||
SOURCE_INC_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
endif
|
||||
@@ -1,57 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Revision-Id$
|
||||
# Author: Andrew Johnson
|
||||
# Date: 20 April 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_ENV - EPICS Environment Parameter configuration file
|
||||
#
|
||||
# This file is read by the script base/src/libCom/env/bldEnvdata.pl
|
||||
# Variable definitions must take the form
|
||||
# VAR = VALUE
|
||||
# or
|
||||
# VAR = "Value containing spaces"
|
||||
# with each one on its own line.
|
||||
# Enclosing spaces and "" will be trimmed.
|
||||
#
|
||||
|
||||
# Default environment settings
|
||||
|
||||
# Channel Access:
|
||||
# Details are in the CA reference manual
|
||||
# (see CAref.html in this distribution)
|
||||
EPICS_CA_ADDR_LIST=""
|
||||
EPICS_CA_AUTO_ADDR_LIST=YES
|
||||
EPICS_CA_NAME_SERVERS=""
|
||||
EPICS_CA_CONN_TMO=30.0
|
||||
EPICS_CA_REPEATER_PORT=5065
|
||||
EPICS_CA_SERVER_PORT=5064
|
||||
EPICS_CA_MAX_ARRAY_BYTES=16384
|
||||
EPICS_CA_BEACON_PERIOD=15.0
|
||||
EPICS_CA_MAX_SEARCH_PERIOD=300.0
|
||||
EPICS_CAS_BEACON_PERIOD=
|
||||
EPICS_CAS_BEACON_PORT=
|
||||
EPICS_CAS_AUTO_BEACON_ADDR_LIST=""
|
||||
EPICS_CAS_BEACON_ADDR_LIST=""
|
||||
EPICS_CAS_SERVER_PORT=
|
||||
EPICS_CAS_INTF_ADDR_LIST=""
|
||||
EPICS_CAS_IGNORE_ADDR_LIST=""
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_PORT Log server port number etc.
|
||||
EPICS_IOC_LOG_PORT=7004
|
||||
|
||||
# Other services:
|
||||
|
||||
EPICS_CMD_PROTO_PORT=
|
||||
EPICS_AR_PORT=7002
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Revision-Id$
|
||||
#
|
||||
# Macros and rules to create a new installation file type
|
||||
#
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Module developers can now define a new type of file, e.g. ABC,
|
||||
# so that files of type ABC will be installed into a directory
|
||||
# defined by INSTALL_ABC. This is done by creating a new CONFIG<name>
|
||||
# file, e.g. CONFIG_ABC, with the following lines:
|
||||
#
|
||||
# FILE_TYPE += ABC
|
||||
# INSTALL_ABC = $(INSTALL_LOCATION)/abc
|
||||
#
|
||||
# The INSTALL_ABC directory should be be a subdirectory of
|
||||
# $(INSTALL_LOCATION). The file type ABC should be target
|
||||
# architecture independent (alh files, medm files, edm files).
|
||||
#
|
||||
# Files of type ABC are then installed into the INSTALL_ABC
|
||||
# directory by adding a line like the following to a Makefile.
|
||||
#
|
||||
# ABC += <filename1> <filename2> <filename3>
|
||||
#
|
||||
# Rules necessary to create files of type ABC should be put in
|
||||
# a RULES_ABC file. Variables used by those rules should appear
|
||||
# in a CONFIG_ABC file.
|
||||
#
|
||||
# The module developer installs new CONFIG* or RULES* files
|
||||
# into the directory $(INSTALL_LOCATION)/cfg by including the
|
||||
# following Makefile line:
|
||||
#
|
||||
# CFG += CONFIG_ABC RULES_ABC
|
||||
#
|
||||
# CONFIG and RULES files in the $(INSTALL_LOCATION)/cfg directory
|
||||
# are included by the Base config files so their definitions and
|
||||
# rules are available for use by later src directory Makefiles in
|
||||
# the same module, or by other modules with a RELEASE line that
|
||||
# points to the TOP of the module providing these files.
|
||||
|
||||
FILE_TYPE += ADL
|
||||
INSTALL_ADL = $(INSTALL_LOCATION)/adl
|
||||
|
||||
FILE_TYPE += ALH
|
||||
INSTALL_ALH = $(INSTALL_LOCATION)/alh
|
||||
|
||||
FILE_TYPE += CFG
|
||||
INSTALL_CFG = $(INSTALL_LOCATION)/cfg
|
||||
|
||||
FILE_TYPE += EDL
|
||||
INSTALL_EDL = $(INSTALL_LOCATION)/edl
|
||||
|
||||
FILE_TYPE += PERL_MODULES
|
||||
INSTALL_PERL_MODULES = $(INSTALL_LOCATION_LIB)/perl
|
||||
|
||||
FILE_TYPE += PKGCONFIG
|
||||
INSTALL_PKGCONFIG = $(INSTALL_LOCATION_LIB)/pkgconfig
|
||||
|
||||
INSTALLS_CFG = $(CFG:%= $(INSTALL_CFG)/%)
|
||||
DIRECTORY_TARGETS += $(foreach type, $(FILE_TYPE),$(INSTALL_$(type)))
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
# CONFIG_SITE - Global site configuration file
|
||||
#
|
||||
|
||||
# The host architecture performing the build, in the form
|
||||
# <operating system>-<architecture>[-<toolset>]
|
||||
#
|
||||
# Currently Supporting:
|
||||
# cygwin-x86 (cygwin compiler used for host builds)
|
||||
# cygwin-x86_64 (cygwin compiler used for host builds)
|
||||
# darwin-ppc (PowerPC based Apple running OSX)
|
||||
# darwin-ppcx86 (Universal binaries for both CPUs)
|
||||
# darwin-x86 (Intel based Apple running OSX)
|
||||
# freebsd-x86 (GNU compiler used for host builds)
|
||||
# freebsd-x86_64 (GNU compiler used for host builds)
|
||||
# linux-arm (GNU compiler used for host builds)
|
||||
# linux-ppc (GNU compiler used for host builds)
|
||||
# linux-ppc64 (GNU compiler used for host builds)
|
||||
# linux-x86 (GNU compiler used for host builds)
|
||||
# linux-x86_64 (GNU compiler used for host builds)
|
||||
# solaris-sparc (Sun compiler used for host builds)
|
||||
# solaris-sparc-gnu (GNU compiler used for host builds)
|
||||
# solaris-sparc64 (Sun compiler used for host builds)
|
||||
# solaris-sparc64-gnu (GNU compiler used for host builds)
|
||||
# solaris-x86 (Sun compiler used for host builds)
|
||||
# solaris-x86-gnu (GNU compiler used for host builds)
|
||||
# solaris-x86_64 (Sun compiler used for host builds)
|
||||
# solaris-x86_64-gnu (GNU compiler used for host builds)
|
||||
# win32-x86 (MS Visual C++ compiler used for host builds)
|
||||
# win32-x86-mingw (MinGW compiler used for host builds)
|
||||
# win32-x86-static (MS Visual C++ compiler used for host builds)
|
||||
# windows-x64 (MS Visual C++ compiler used for host builds)
|
||||
# windows-x64-mingw (MinGW compiler used for host builds)
|
||||
# windows-x64-static (MS Visual C++ compiler used for host builds)
|
||||
|
||||
# Debugging builds:
|
||||
# linux-arm-debug (GNU compiler used for host builds)
|
||||
# linux-x86-debug (GNU compiler with -g option for host builds)
|
||||
# linux-x86_64-debug (GNU compiler with -g option for host builds)
|
||||
# solaris-sparc-debug (sun compiler no optimization,-g for debugging info)
|
||||
# win32-x86-debug (MS Visual C++ compiler with debug option for host builds)
|
||||
# windows-x64-debug (MS Visual C++ compiler with debug option for host builds)
|
||||
|
||||
|
||||
# EPICS_HOST_ARCH is a required environment variable
|
||||
# Do not set EPICS_HOST_ARCH in this file.
|
||||
# Use base/startup files to set EPICS_HOST_ARCH or
|
||||
# provide EPICS_HOST_ARCH on the GNU make command line.
|
||||
|
||||
# The cross-compiler architectures to build EPICS for
|
||||
#
|
||||
# Currently Supporting:
|
||||
|
||||
# ios-arm (darwin-x86 host)
|
||||
# ios-386 (darwin-x86 host)
|
||||
# linux-386 (linux-x86 host)
|
||||
# linux-486 (linux-x86 host)
|
||||
# linux-586 (linux-x86 host)
|
||||
# linux-686 (linux-x86 host)
|
||||
# linux-arm (linux-x86 or -x86_64 host)
|
||||
# linux-arm_eb (linux-x86 host)
|
||||
# linux-arm_el (linux-x86 host)
|
||||
# linux-athlon (linux-x86 host)
|
||||
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-microblaze
|
||||
# linux-xscale_be
|
||||
# vxWorks-486
|
||||
# vxWorks-68040
|
||||
# vxWorks-68040lc
|
||||
# vxWorks-68060
|
||||
# vxWorks-pentium
|
||||
# vxWorks-ppc32 (32-bit PowerPC CPUs with full FPU)
|
||||
# vxWorks-ppc32sf (32-bit PowerPC CPUs without FPU)
|
||||
# vxWorks-ppc603
|
||||
# vxWorks-ppc603_long
|
||||
# vxWorks-ppc604
|
||||
# vxWorks-ppc604_long
|
||||
# vxWorks-ppc604_altivec
|
||||
# vxWorks-mpc8540
|
||||
# vxWorks-mpc8548
|
||||
# RTEMS-at91rm9200ek
|
||||
# RTEMS-beatnik
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-mvme167
|
||||
# RTEMS-mvme2100
|
||||
# RTEMS-mvme2700
|
||||
# RTEMS-mvme3100
|
||||
# RTEMS-mvme5500
|
||||
# RTEMS-pc386
|
||||
# RTEMS-psim
|
||||
# RTEMS-uC5282
|
||||
# win32-x86-mingw (linux-x86 or -x86_64 host)
|
||||
#
|
||||
|
||||
# Which target architectures to cross-compile for.
|
||||
# Definitions in configure/os/CONFIG_SITE.<host>.Common
|
||||
# may override this setting.
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
|
||||
|
||||
# If only some of your host architectures can compile the
|
||||
# above CROSS_COMPILER_TARGET_ARCHS specify those host
|
||||
# architectures here. If the combination is complicated,
|
||||
# set CROSS_COMPILER_TARGET_ARCHS in the appropriate
|
||||
# configure/os/CONFIG_SITE.<host>.Common files instead.
|
||||
CROSS_COMPILER_HOST_ARCHS=
|
||||
|
||||
# The 'make runtests' and 'make tapfiles' build targets normally only run
|
||||
# self-tests for the EPICS_HOST_ARCH architecture. If the host can execute
|
||||
# the self-test programs for any other cross-built architectures such as
|
||||
# a -debug architecture, those architectures can be named here.
|
||||
#
|
||||
CROSS_COMPILER_RUNTEST_ARCHS=
|
||||
|
||||
# Build shared libraries (DLLs on Windows).
|
||||
# Must be either YES or NO. Definitions in the target-specific
|
||||
# os/CONFIG.Common.<target> and os/CONFIG_SITE.Common.<target> files may
|
||||
# override this setting. On Windows only these combinations are valid:
|
||||
# SHARED_LIBRARIES = YES and STATIC_BUILD = NO
|
||||
# SHARED_LIBRARIES = NO and STATIC_BUILD = YES
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# Build client objects statically.
|
||||
# Must be either YES or NO.
|
||||
STATIC_BUILD=NO
|
||||
|
||||
# Host build optimization.
|
||||
# Must be either YES or NO.
|
||||
HOST_OPT=YES
|
||||
|
||||
# Cross build optimization.
|
||||
# Must be either YES or NO.
|
||||
CROSS_OPT=YES
|
||||
|
||||
# Generate verbose compiler warnings for host builds.
|
||||
# Must be either YES or NO.
|
||||
HOST_WARN=YES
|
||||
|
||||
# Generate verbose compiler warnings for cross-compiled builds.
|
||||
# Must be either YES or NO.
|
||||
CROSS_WARN=YES
|
||||
|
||||
# Installation directory, if you want Base to be installed into a
|
||||
# different location then uncomment and set this.
|
||||
#INSTALL_LOCATION=<fullpathname>
|
||||
|
||||
# Use POSIX thread priority scheduling (if available).
|
||||
# Must be either YES or NO
|
||||
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
|
||||
|
||||
# Site version number, if set will append '-' and this string to the
|
||||
# EPICS version number string that is reported by many tools.
|
||||
EPICS_SITE_VERSION =
|
||||
|
||||
# For GNU compiler, use pipes rather than temporary files for
|
||||
# communication between the various stages of compilation.
|
||||
# Must be either YES or NO
|
||||
GCC_PIPE = NO
|
||||
|
||||
# Set RPATH when linking executables and libraries.
|
||||
# Must be either YES or NO. If you set this to NO you must also provide a
|
||||
# way for Base executables to find their shared libraries when they are
|
||||
# run at build-time, e.g. set the LD_LIBRARY_PATH environment variable.
|
||||
LINKER_USE_RPATH = YES
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2010 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Revision-Id$
|
||||
# Author: Andrew Johnson
|
||||
# Date: 1 May 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_SITE_ENV - EPICS Environment Parameter Site configuration file
|
||||
#
|
||||
# This file is read by the script base/src/libCom/env/bldEnvdata.pl
|
||||
# Variable definitions must take the form
|
||||
# VAR = VALUE
|
||||
# or
|
||||
# VAR = "Value containing spaces"
|
||||
# with each one on its own line.
|
||||
# Enclosing spaces and "" will be trimmed.
|
||||
#
|
||||
|
||||
# Site-specific environment settings
|
||||
|
||||
# Time service:
|
||||
# EPICS_TIMEZONE
|
||||
# local timezone info for vxWorks and RTEMS IOCs. The format is
|
||||
# <name>::<minutesWest>:<start daylight>:<end daylight>
|
||||
# where the start and end are mmddhh - that is month,day,hour
|
||||
# e.g. for ANL in 2016: EPICS_TIMEZONE=CST/CDT::360:031302:110602
|
||||
#
|
||||
# DST for 2016 US: Mar 13 - Nov 06
|
||||
# EU: Mar 27 - Oct 30
|
||||
# DST for 2017 US: Mar 12 - Nov 05
|
||||
# EU: Mar 26 - Oct 29
|
||||
# DST for 2018 US: Mar 11 - Nov 04
|
||||
# EU: Mar 25 - Oct 28
|
||||
# DST for 2019 US: Mar 10 - Nov 03
|
||||
# EU: Mar 31 - Oct 27
|
||||
# DST for 2020 US: Mar 08 - Nov 01
|
||||
# EU: Mar 29 - Oct 25
|
||||
# DST for 2021 US: Mar 14 - Nov 07
|
||||
# EU: Mar 28 - Oct 31
|
||||
# (see: http://www.timeanddate.com/time/dst/2016.html etc. )
|
||||
#
|
||||
# These values are for 2016:
|
||||
EPICS_TIMEZONE=CST/CDT::360:031302:110602
|
||||
#EPICS_TIMEZONE=CET/CEST::-60:032702:103002
|
||||
|
||||
# EPICS_TS_NTP_INET
|
||||
# NTP time server ip address. Uses boot host if not set.
|
||||
EPICS_TS_NTP_INET=
|
||||
|
||||
# IOC Shell:
|
||||
# IOCSH_PS1
|
||||
# Prompt string
|
||||
# IOCSH_HISTSIZE
|
||||
# Number of lines of command history to keep.
|
||||
IOCSH_PS1="epics> "
|
||||
IOCSH_HISTSIZE=50
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_INET
|
||||
# Log server ip addr.
|
||||
# EPICS_IOC_LOG_FILE_NAME
|
||||
# pathname to the log file.
|
||||
# EPICS_IOC_LOG_FILE_LIMIT
|
||||
# maximum log file size.
|
||||
# EPICS_IOC_LOG_FILE_COMMAND
|
||||
# A shell command string used to obtain a new
|
||||
# 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=
|
||||
EPICS_IOC_LOG_FILE_NAME=
|
||||
EPICS_IOC_LOG_FILE_COMMAND=
|
||||
EPICS_IOC_LOG_FILE_LIMIT=1000000
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# $Revision-Id$
|
||||
#
|
||||
|
||||
TOP=..
|
||||
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
# Bootstrap resolution: tools not installed yet
|
||||
TOOLS = $(TOP)/src/tools
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# RELEASE: Define location of external EPICS products
|
||||
|
||||
# Define INSTALL_LOCATION in CONFIG_SITE
|
||||
|
||||
# VX_DIR definition now in os/CONFIG_SITE.Common.vxWorksCommon
|
||||
# RTEMS_BASE (and RTEMS_VERSION) now in os/CONFIG_SITE.Common.RTEMS
|
||||
|
||||
# NB: Settings in RELEASE files can be overridden in files named
|
||||
# RELEASE.$(EPICS_HOST_ARCH).Common
|
||||
# RELEASE.Common.$(T_A)
|
||||
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Revision-Id$
|
||||
|
||||
ifndef T_A
|
||||
|
||||
include $(CONFIG)/RULES_ARCHS
|
||||
|
||||
else #T_A
|
||||
|
||||
include $(CONFIG)/RULES_BUILD
|
||||
|
||||
endif # T_A defined
|
||||
|
||||
@@ -1,551 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#RULES.Db
|
||||
|
||||
# Set db substitutions file suffix
|
||||
SUBST_SUFFIX ?= .substitutions
|
||||
|
||||
##################################################### vpath
|
||||
|
||||
vpath %.pm $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.pod $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.dbd $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.db $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
|
||||
vpath %.vdb $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
|
||||
vpath %$(SUBST_SUFFIX) $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %.template $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath bpt%.data $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %.acf $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %.acs $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
|
||||
##################################################### dbflags dbdflags
|
||||
|
||||
DBD_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DBD) $(RELEASE_DBD_DIRS)
|
||||
DB_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DB) $(RELEASE_DB_DIRS)
|
||||
|
||||
DBDFLAGS = $(USR_DBDFLAGS) $(CMD_DBDFLAGS) $(addprefix -I,$(DBD_SEARCH_DIRS))
|
||||
DBFLAGS = $($*_DBFLAGS) $(USR_DBFLAGS) $(CMD_DBFLAGS) $(addprefix -I,$(DB_SEARCH_DIRS))
|
||||
REGRDDFLAGS = $(DBDFLAGS) $($*_REGRDDFLAGS) $(USR_REGRDDFLAGS) $(CMD_REGRDDFLAGS)
|
||||
|
||||
##################################################### Targets
|
||||
|
||||
# ---------------------------------------------------
|
||||
# To allow os specific dbd files AND have the -j option work properly,
|
||||
|
||||
CROSS_TARGET_OS_TYPES = $(sort $(foreach target, \
|
||||
$(EPICS_HOST_ARCH) $(CROSS_COMPILER_TARGET_ARCHS),$(firstword $(subst -, ,$(target)))))
|
||||
DBD += $(foreach type, $(CROSS_TARGET_OS_TYPES), $(DBD_$(type)))
|
||||
|
||||
# Users add os specific dbd files to a Makefile as follows
|
||||
#
|
||||
# DBD_vxWorks += abcVx.dbd
|
||||
# DBD_RTEMS += abcRTEMS.dbd
|
||||
# DBD_solaris += abcSolaris.dbd
|
||||
#
|
||||
# ---------------------------------------------------
|
||||
# DBD concatination files
|
||||
|
||||
COMMON_DBDCATS += $(addprefix $(COMMON_DIR)/,$(DBDCAT))
|
||||
DBDCAT_SOURCES += $(foreach file, $($*_DBD), $(DBDCAT_SOURCE) )
|
||||
DBDCAT_SOURCE = $(firstword $(wildcard $(file) $(foreach dir, \
|
||||
$(DBD_SEARCH_DIRS),$(addsuffix /$(file),$(dir)))) \
|
||||
$(COMMON_DIR)/$(file))
|
||||
|
||||
DBDCAT_COMMAND = $(if $(DBDCAT_SOURCES),\
|
||||
$(CAT) $(DBDCAT_SOURCES) > $(notdir $@),\
|
||||
@echo "No input files for $(notdir $@)")
|
||||
|
||||
INSTALL_DBDS += $(addprefix $(INSTALL_DBD)/,$(DBDCAT))
|
||||
|
||||
# ---------------------------------------------------
|
||||
|
||||
DBDINC_NAME = $(patsubst %.h,%,$(patsubst %.dbd,%,$(DBDINC)))
|
||||
DBD += $(addsuffix .dbd,$(DBDINC_NAME))
|
||||
INC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
|
||||
INSTALL_DBDS += $(addprefix $(INSTALL_DBD)/,$(notdir $(DBD)))
|
||||
|
||||
COMMON_DBDS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DBD), \
|
||||
$(firstword $(SOURCE_DBD) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_DBD = $(wildcard $(file) $(SOURCE_DBD_bbb) )
|
||||
SOURCE_DBD_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DBD_aaa) )
|
||||
SOURCE_DBD_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
INSTALL_DBS += $(addprefix $(INSTALL_DB)/,$(notdir $(DB)))
|
||||
|
||||
COMMON_DBS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DB), \
|
||||
$(firstword $(SOURCE_DB) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_DB = $(wildcard $(file) $(SOURCE_DB_bbb) )
|
||||
SOURCE_DB_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DB_aaa) )
|
||||
SOURCE_DB_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
COMMONS = $(COMMON_DIR)/*.dbd $(COMMON_DIR)/*.db $(COMMON_DIR)/*.h \
|
||||
$(COMMON_DIR)/*$(SUBST_SUFFIX) $(COMMON_DIR)/*.template
|
||||
|
||||
# Remove trailing numbers (to 99) on stem
|
||||
TEMPLATE1=$(patsubst %0,%,$(patsubst %1,%,$(patsubst %2,%,$(patsubst %3,%,$(patsubst %4,%, \
|
||||
$(patsubst %5,%,$(patsubst %6,%,$(patsubst %7,%,$(patsubst %8,%,$(patsubst %9,%, \
|
||||
$*))))))))))
|
||||
TEMPLATE2=$(patsubst %0,%,$(patsubst %1,%,$(patsubst %2,%,$(patsubst %3,%,$(patsubst %4,%, \
|
||||
$(patsubst %5,%,$(patsubst %6,%,$(patsubst %7,%,$(patsubst %8,%,$(patsubst %9,%, \
|
||||
$(TEMPLATE1)))))))))))
|
||||
TEMPLATE3=$(addsuffix .template,$(addprefix ../,$(TEMPLATE2)))
|
||||
TEMPLATE_FILENAME=$(firstword $(wildcard $($*_TEMPLATE) $(addprefix ../,$($*_TEMPLATE)) ../$*.template $(TEMPLATE3) ../template))
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
RAW=.raw
|
||||
DBS = $(filter %.db,$(DB)) $(addsuffix $(RAW),$(filter %.db,$(DB)))
|
||||
COMMON_DBS = $(addprefix $(COMMON_DIR)/,$(DBS))
|
||||
endif
|
||||
|
||||
INSTALL_DB_INSTALLS = $(addprefix $(INSTALL_DB)/,$(notdir $(DB_INSTALLS)))
|
||||
INSTALL_DBD_INSTALLS = $(addprefix $(INSTALL_DBD)/,$(notdir $(DBD_INSTALLS)))
|
||||
|
||||
COMMONDEP_TARGET = $(COMMON_DIR)/$(basename $@)
|
||||
|
||||
##################################################### acf files
|
||||
# An access security configuration file, *.acf, can be created from
|
||||
# an *.acs file (has format of acf file plus #include "filename" lines)
|
||||
|
||||
# flags for GNU compiler
|
||||
ACF_CPPFLAGS_YES = -undef -nostdinc
|
||||
ACF_CPPFLAGS = $(ACF_CPPFLAGS_$(GNU))
|
||||
|
||||
ACF_INCLUDES = -I. $(TARGET_INCLUDES) $(USR_INCLUDES)\
|
||||
$(SRC_INCLUDES) -I$(INSTALL_DB)
|
||||
ACFDEPENDS_CMD = $(MKMF) -m $@ $(ACF_INCLUDES) $(COMMONDEP_TARGET) $<
|
||||
ACF_CMD = $(CPP) $(ACF_CPPFLAGS) $(ACF_INCLUDES) $< > $@
|
||||
|
||||
##################################################### dependancies
|
||||
|
||||
HINC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
COMMON_DBDINC += $(addprefix $(COMMON_DIR)/,$(HINC))
|
||||
|
||||
DBDDEPENDS_FILES += $(addsuffix $(DEP),$(HINC) \
|
||||
$(patsubst $(COMMON_DIR)/%,%,$(COMMON_DBS)) \
|
||||
$(patsubst $(COMMON_DIR)/%,%, \
|
||||
$(filter-out $(COMMON_DIR)/bpt%.dbd,$(COMMON_DBDS))))
|
||||
|
||||
#####################################################
|
||||
|
||||
ifndef T_A
|
||||
|
||||
DEP = .d
|
||||
TEMPLATE3+=$(addsuffix .template, $(TEMPLATE2))
|
||||
|
||||
COMMON_DIR = .
|
||||
INSTALL_DBDS =
|
||||
INSTALL_DBS =
|
||||
COMMON_DBDS = $(DBD)
|
||||
COMMON_DBS = $(DB)
|
||||
COMMONS = $(DBD) $(DB)
|
||||
|
||||
ACTIONS = inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += runtests tapfiles
|
||||
|
||||
actionArchTargets = $(foreach x, $(ACTIONS),\ $(foreach arch,$(BUILD_ARCHS), $(x)$(DIVIDER)$(arch)))
|
||||
|
||||
cleanArchTargets = $(foreach arch,$(BUILD_ARCHS), clean$(DIVIDER)$(arch))
|
||||
-include $(TOP)/configure/CONFIG_APP_INCLUDE
|
||||
|
||||
all: install
|
||||
ifeq ($(EPICS_HOST_ARCH),$T_A)
|
||||
host: install
|
||||
else
|
||||
# Do nothing
|
||||
host:
|
||||
endif
|
||||
|
||||
install: buildInstall
|
||||
|
||||
buildInstall : build
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
.PHONY: all host $(ACTIONS)
|
||||
|
||||
$(actionArchTargets) $(BUILD_ARCHS): install
|
||||
$(cleanArchTargets): clean
|
||||
|
||||
.PHONY: $(BUILD_ARCHS) $(actionArchTargets) $(cleanArchTargets)
|
||||
|
||||
endif # T_A defined
|
||||
|
||||
ifneq (,$(strip $(DBDDEPENDS_FILES)))
|
||||
-include $(DBDDEPENDS_FILES)
|
||||
endif
|
||||
|
||||
##################################################### build dependancies, clean rule
|
||||
|
||||
inc : $(COMMON_INC) $(INSTALL_INC)
|
||||
|
||||
build : $(COMMON_DBDS) $(COMMON_DBS) $(COMMON_DBDCATS) \
|
||||
$(INSTALL_DBDS) $(INSTALL_DBS) \
|
||||
$(DBDDEPENDS_FILES) $(TARGETS) \
|
||||
$(INSTALL_DB_INSTALLS) $(INSTALL_DBD_INSTALLS)
|
||||
|
||||
clean: db_clean
|
||||
|
||||
db_clean :
|
||||
@$(RM) $(COMMONS) $(DBDDEPENDS_FILES)
|
||||
@$(RM) *_registerRecordDeviceDriver.cpp
|
||||
@$(RM) $(TARGETS)
|
||||
|
||||
.PHONY : db_clean
|
||||
|
||||
realclean: clean
|
||||
|
||||
##################################################### Dependency files
|
||||
|
||||
%Record.h$(DEP): $(COMMON_DIR)/%Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%Record.h$(DEP): %Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%Record.h$(DEP): ../%Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): $(COMMON_DIR)/menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): ../menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP): %.dbd.pod
|
||||
@$(RM) $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" > $@
|
||||
|
||||
%.dbd$(DEP): %Include.dbd
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP): ../%Include.dbd
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP):
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $($*_DBD) > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.db$(RAW)$(DEP): %$(SUBST_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) -S$< $(TEMPLATE_FILENAME) > $@
|
||||
|
||||
%.db$(RAW)$(DEP): ../%$(SUBST_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) -S$< $(TEMPLATE_FILENAME) > $@
|
||||
|
||||
%.db$(RAW)$(DEP): %.template
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
|
||||
%.db$(RAW)$(DEP): ../%.template
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
|
||||
%.acf$(DEP): %.acs
|
||||
@$(RM) $@
|
||||
@$(ACFDEPENDS_CMD)
|
||||
|
||||
%.acf$(DEP): ../%.acs
|
||||
@$(RM) $@
|
||||
@$(ACFDEPENDS_CMD)
|
||||
|
||||
.PRECIOUS: %$(DEP)
|
||||
|
||||
##################################################### CapFast filter
|
||||
|
||||
$(COMMON_DIR)/%.edf: ../%.sch $(DEPSCHS)
|
||||
@$(RM) $@
|
||||
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
|
||||
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) -o $@ $<
|
||||
|
||||
##################################################### Substitution files
|
||||
|
||||
# WARNING: CREATESUBSTITUTIONS script needs output dir on command line
|
||||
|
||||
ifdef CREATESUBSTITUTIONS
|
||||
$(COMMON_DIR)/%$(SUBST_SUFFIX):
|
||||
$(ECHO) "Create substitutions"
|
||||
@$(RM) $@
|
||||
$(CREATESUBSTITUTIONS) $@
|
||||
endif
|
||||
|
||||
$(INSTALL_DB)/%$(SUBST_SUFFIX): %$(SUBST_SUFFIX)
|
||||
$(ECHO) "Installing substitution file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%$(SUBST_SUFFIX): ../%$(SUBST_SUFFIX)
|
||||
$(ECHO) "Installing substitution file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%$(SUBST_SUFFIX)
|
||||
|
||||
##################################################### Template files
|
||||
|
||||
$(COMMON_DIR)/%.template: $(COMMON_DIR)/%.edf
|
||||
@$(RM) $@
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $@.VAR $<
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
$(INSTALL_DB)/%.template: %.template
|
||||
$(ECHO) "Installing template file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%.template: ../%.template
|
||||
$(ECHO) "Installing template file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.template
|
||||
|
||||
##################################################### INC files
|
||||
|
||||
$(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%Record.h: %Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%Record.h: ../%Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: ../menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.h
|
||||
|
||||
##################################################### DBD files
|
||||
|
||||
$(COMMON_DIR)/bpt%.dbd: bpt%.data
|
||||
@$(RM) $(notdir $@)
|
||||
$(MAKEBPT) $< $(notdir $@)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: %.dbd.pod
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podRemove.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: %Include.dbd
|
||||
$(ECHO) "Expanding dbd file $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: ../%Include.dbd
|
||||
$(ECHO) "Expanding dbd file $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
# Make DBDCAT file x depend on x_DBD source files
|
||||
define DBDCAT_template
|
||||
$$(COMMON_DIR)/$(1).dbd : ../Makefile $$(foreach file, $$($(1)_DBD),$$(DBDCAT_SOURCE) )
|
||||
endef
|
||||
$(foreach name,$(subst .dbd,,$(DBDCAT)), $(eval $(call DBDCAT_template,$(name))))
|
||||
|
||||
$(COMMON_DBDCATS):$(COMMON_DIR)/%.dbd:
|
||||
$(ECHO) "Creating dbd file $(notdir $@)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBDCAT_COMMAND)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd:
|
||||
$(ECHO) "Creating dbd file $(notdir $@)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $($*_DBD)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(INSTALL_DBD)/%: $(COMMON_DIR)/%
|
||||
$(ECHO) "Installing created dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
$(ECHO) "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
$(ECHO) "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DBD_INSTALLS_template
|
||||
$$(INSTALL_DBD)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DBD)
|
||||
endef
|
||||
$(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
|
||||
|
||||
.PRECIOUS: $(COMMON_DBDS) $(COMMON_DIR)/%.dbd
|
||||
|
||||
##################################################### HTML files
|
||||
|
||||
$(COMMON_DIR)/%.html: %.dbd.pod $(TOOLS)/dbdToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/dbdToHtml.pl $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: %.pod $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: %.pm $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: ../%.pm $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.html %.html
|
||||
|
||||
##################################################### DB files
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): $(COMMON_DIR)/%.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $*.VAR $<
|
||||
@$(REPLACEVAR) < $*.VAR > $@
|
||||
@$(RM) $*.VAR
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): %$(SUBST_SUFFIX)
|
||||
$(ECHO) "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) -S$< $(TEMPLATE_FILENAME)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): ../%$(SUBST_SUFFIX)
|
||||
$(ECHO) "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) -S$< $(TEMPLATE_FILENAME)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): %.template
|
||||
$(ECHO) "Inflating database from $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): ../%.template
|
||||
$(ECHO) "Inflating database from $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.acf: %.acs
|
||||
$(ECHO) "Creating acf file $@"
|
||||
@$(RM) $@
|
||||
$(ACF_CMD)
|
||||
|
||||
$(COMMON_DIR)/%.acf: ../%.acs
|
||||
$(ECHO) "Creating acf file $@"
|
||||
@$(RM) $@
|
||||
$(ACF_CMD)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.acf
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
|
||||
$(COMMON_DIR)/%.db$(RAW): ../%.db
|
||||
@$(RM) $@
|
||||
$(CP) $< $@
|
||||
|
||||
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.db$(RAW)
|
||||
$(ECHO) "Optimizing database $@"
|
||||
@$(RM) $@
|
||||
$(DBST) . $< -d > $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.db
|
||||
.PRECIOUS: $(DB:%=$(COMMON_DIR)/%$(RAW))
|
||||
else
|
||||
|
||||
$(INSTALL_DB)/%: %
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%: ../%
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
endif
|
||||
|
||||
$(INSTALL_DB)/%.db: $(COMMON_DIR)/%.db
|
||||
$(ECHO) "Installing created db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DB_INSTALLS_template
|
||||
$$(INSTALL_DB)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DB)
|
||||
endef
|
||||
$(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.edf
|
||||
.PRECIOUS: $(COMMON_DBS)
|
||||
|
||||
##################################################### register record,device,driver support
|
||||
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: %.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: ../%.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
.PRECIOUS: %_registerRecordDeviceDriver.cpp
|
||||
|
||||
##################################################### END OF FILE
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user