Compare commits
522 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6a001e4cb | ||
|
|
f44bc9a818 | ||
|
|
45609829f8 | ||
|
|
06064b444a | ||
|
|
9ab8596aff | ||
|
|
b6c6755918 | ||
|
|
e769ca29f1 | ||
|
|
ec411508e9 | ||
|
|
c82442b10c | ||
|
|
9cf089f0d3 | ||
|
|
6047ac5efe | ||
|
|
47363400cb | ||
|
|
b40d9ddcc3 | ||
|
|
00f28ff971 | ||
|
|
7ada50c005 | ||
|
|
b260612016 | ||
|
|
5e4a23d5be | ||
|
|
a41a72a4f4 | ||
|
|
0c7721d6ea | ||
|
|
2e3f3ba7eb | ||
|
|
f93c25f7f6 | ||
|
|
c11454ce4a | ||
|
|
f89bbee76d | ||
|
|
e978571919 | ||
|
|
f4949c8415 | ||
|
|
7673dc39ee | ||
|
|
518ec97f72 | ||
|
|
aad8fe9c94 | ||
|
|
9a0f23dfdf | ||
|
|
69a8bc6fd7 | ||
|
|
fa320889e3 | ||
|
|
738337049b | ||
|
|
72ff66925f | ||
|
|
5fe2fb480e | ||
|
|
ff1992066f | ||
|
|
1c84525a87 | ||
|
|
7b294e0d99 | ||
|
|
c6eca11921 | ||
|
|
6861be8270 | ||
|
|
ae3a888da7 | ||
|
|
a56c01378e | ||
|
|
2498b21fae | ||
|
|
45cde80ee8 | ||
|
|
4f465a1f7b | ||
|
|
52b8c02fa8 | ||
|
|
aa160c0a2b | ||
|
|
f5e2dce279 | ||
|
|
d04cfc8d03 | ||
|
|
eec0dc5ece | ||
|
|
29d0f4716c | ||
|
|
3bbec946b7 | ||
|
|
958b13368b | ||
|
|
0222a48595 | ||
|
|
d5d8241fdd | ||
|
|
c963333e78 | ||
|
|
642a582f24 | ||
|
|
d2d4f4ca6d | ||
|
|
1cfa435707 | ||
|
|
481235c41a | ||
|
|
1e93d812ac | ||
|
|
2bddff21eb | ||
|
|
5a3e4a6b5f | ||
|
|
60f4cac0d0 | ||
|
|
ffb828afda | ||
|
|
c2dbe7ddb1 | ||
|
|
12bd56b1b4 | ||
|
|
5ec41e6088 | ||
|
|
1de0a6c42d | ||
|
|
0fcf3e4fda | ||
|
|
1a451e4903 | ||
|
|
e3ceeb0eac | ||
|
|
f04fff8f83 | ||
|
|
db5c2d67f8 | ||
|
|
1be5dc154d | ||
|
|
6105888487 | ||
|
|
9408db2d54 | ||
|
|
41644804e8 | ||
|
|
ebacbfddcd | ||
|
|
817cd651c3 | ||
|
|
8b12a243a2 | ||
|
|
0c5b0c70d7 | ||
|
|
fd56498f95 | ||
|
|
ea7a1c160e | ||
|
|
5161226f81 | ||
|
|
24582e4a27 | ||
|
|
9b280179bf | ||
|
|
c0bc7a55e9 | ||
|
|
54934b1059 | ||
|
|
4c5dab8e72 | ||
|
|
6802e5154e | ||
|
|
e5928a8630 | ||
|
|
3bbc4b54c2 | ||
|
|
595eadb9f6 | ||
|
|
6b63f7c2f0 | ||
|
|
25fa8008f7 | ||
|
|
0761793165 | ||
|
|
ff9075881c | ||
|
|
913373d12d | ||
|
|
c149f17cc2 | ||
|
|
4794bf11bc | ||
|
|
b06976e69b | ||
|
|
ef5ce92ff8 | ||
|
|
a9372c4a5a | ||
|
|
88425b4433 | ||
|
|
4388d789a5 | ||
|
|
96b2d2c76f | ||
|
|
dc198c0ae0 | ||
|
|
5e20a6274f | ||
|
|
d668a2d8d2 | ||
|
|
96f8e4f323 | ||
|
|
9f09bc6b67 | ||
|
|
afdf3c9af2 | ||
|
|
2ad485368b | ||
|
|
7eda38a779 | ||
|
|
ee500e2ad8 | ||
|
|
57e941cb85 | ||
|
|
7da5f3c5c6 | ||
|
|
8e44835903 | ||
|
|
2624a16170 | ||
|
|
154ebd3153 | ||
|
|
d79b7c3880 | ||
|
|
a097eebfb1 | ||
|
|
cca00a0061 | ||
|
|
676d210340 | ||
|
|
acfeff3695 | ||
|
|
d812f89280 | ||
|
|
5bbf7bc341 | ||
|
|
9a991a3765 | ||
|
|
bf59a164b9 | ||
|
|
181d5f4ff0 | ||
|
|
884c05a15c | ||
|
|
1de5f1c3ef | ||
|
|
2d114dc5bb | ||
|
|
372528666a | ||
|
|
35d0d41f22 | ||
|
|
2399da3a1a | ||
|
|
88af86fbbd | ||
|
|
33ca9c7407 | ||
|
|
6da98f4e5e | ||
|
|
c50837d7f5 | ||
|
|
ae975a8e23 | ||
|
|
948718f253 | ||
|
|
378a70bb20 | ||
|
|
778f8936e5 | ||
|
|
40802e621c | ||
|
|
44a57584b7 | ||
|
|
d8db1abd38 | ||
|
|
2430736ff1 | ||
|
|
6b04c52f45 | ||
|
|
f484488842 | ||
|
|
0fd1f0103d | ||
|
|
6ab92a6dab | ||
|
|
3b7426e1a3 | ||
|
|
93d163ba83 | ||
|
|
1ee13af2a8 | ||
|
|
ff16932a0f | ||
|
|
b8a2f0495e | ||
|
|
a28065c900 | ||
|
|
3f28509df8 | ||
|
|
59ca167c5d | ||
|
|
a63da3e2a8 | ||
|
|
b04d6fc943 | ||
|
|
414811e98d | ||
|
|
2779547dcb | ||
|
|
b9148e0224 | ||
|
|
9e20859cfc | ||
|
|
2826afb3f9 | ||
|
|
b53f10dbb6 | ||
|
|
338d438830 | ||
|
|
ef8fb769a1 | ||
|
|
57db879905 | ||
|
|
cf80cd22da | ||
|
|
b921020943 | ||
|
|
15b35b60d1 | ||
|
|
032bb6e7fc | ||
|
|
d8e7cb5524 | ||
|
|
bd1e636fb0 | ||
|
|
ec94384106 | ||
|
|
000aaea550 | ||
|
|
ec3958a36e | ||
|
|
14f6fe08fb | ||
|
|
1f33045887 | ||
|
|
0330a9a085 | ||
|
|
f7fdc9a11e | ||
|
|
9e337cca2b | ||
|
|
6f8d94c8dd | ||
|
|
ef3a3629a5 | ||
|
|
6c07f8064a | ||
|
|
7600b37a9d | ||
|
|
fe98915920 | ||
|
|
7429e6a1de | ||
|
|
8e3b9a0453 | ||
|
|
12efe1ec2b | ||
|
|
9519c2646a | ||
|
|
48e9500f1a | ||
|
|
cb4e242b40 | ||
|
|
6958eafd44 | ||
|
|
c2480a2de6 | ||
|
|
e95d19ec1c | ||
|
|
bb431bdf7c | ||
|
|
14bd27a4f8 | ||
|
|
26fac718bf | ||
|
|
14b069660f | ||
|
|
34b8c943c5 | ||
|
|
c3cf188839 | ||
|
|
b97ef3dfeb | ||
|
|
c8c64a212c | ||
|
|
9242561f9f | ||
|
|
41e66161de | ||
|
|
b030fdeca3 | ||
|
|
e4e3945abb | ||
|
|
ef12a97150 | ||
|
|
655b95e2ba | ||
|
|
7d5128ca9b | ||
|
|
9752b0612d | ||
|
|
09c8888ccd | ||
|
|
b54793967a | ||
|
|
881ba6bb9d | ||
|
|
5b0d460260 | ||
|
|
261d9315bd | ||
|
|
09e36d5275 | ||
|
|
ab925d6878 | ||
|
|
3c94902cc0 | ||
|
|
68f93f75ed | ||
|
|
5209b3bd23 | ||
|
|
d29ba4b4dc | ||
|
|
8f59a176b9 | ||
|
|
27fcd9bf91 | ||
|
|
7ec63f6034 | ||
|
|
1d76d011a3 | ||
|
|
0cf8aa13b5 | ||
|
|
2261062c8c | ||
|
|
21375a0747 | ||
|
|
6990623a90 | ||
|
|
fa3501a4ad | ||
|
|
fcf98d1d26 | ||
|
|
3367ffaf12 | ||
|
|
994010511d | ||
|
|
9d729dbab3 | ||
|
|
04874dc353 | ||
|
|
e866170a5d | ||
|
|
d5c7dff2dd | ||
|
|
8b21143482 | ||
|
|
b9926ba931 | ||
|
|
3a877b73e2 | ||
|
|
cb3c89f1da | ||
|
|
385d813002 | ||
|
|
761cbdc882 | ||
|
|
bd53d21bd9 | ||
|
|
db8e461bf1 | ||
|
|
d17b216c73 | ||
|
|
d144a22633 | ||
|
|
d80c1a94b2 | ||
|
|
927446c261 | ||
|
|
4b95841fcd | ||
|
|
21ee244b5e | ||
|
|
499d1fa9af | ||
|
|
732d977ba0 | ||
|
|
a5af82c9ef | ||
|
|
f8175b3203 | ||
|
|
24abd0366d | ||
|
|
d7c25d1554 | ||
|
|
6c9d8e3b26 | ||
|
|
ece267dc62 | ||
|
|
9ad47b4b6a | ||
|
|
4d6c58393f | ||
|
|
9b9f61d49b | ||
|
|
37338038df | ||
|
|
6438775f6e | ||
|
|
88bbe19d70 | ||
|
|
245b7350a6 | ||
|
|
641b33129c | ||
|
|
12634b33f9 | ||
|
|
53ba74afe0 | ||
|
|
29132a9c5c | ||
|
|
5f1c656aed | ||
|
|
e3fb337b70 | ||
|
|
d0f68ee85f | ||
|
|
7b589b0e27 | ||
|
|
9d5a961ed4 | ||
|
|
534592997f | ||
|
|
c806e34d50 | ||
|
|
0ddf9a3039 | ||
|
|
7fb37da827 | ||
|
|
6500500697 | ||
|
|
73b7008a76 | ||
|
|
3050b73084 | ||
|
|
19adb1a419 | ||
|
|
e164e767b2 | ||
|
|
43a3cc4fe7 | ||
|
|
17ff237237 | ||
|
|
7013940665 | ||
|
|
3096b35961 | ||
|
|
03f495892c | ||
|
|
225970f1be | ||
|
|
652d3a41d8 | ||
|
|
f3380f81f0 | ||
|
|
ec1f3cf06f | ||
|
|
9f529f8ed0 | ||
|
|
0483b96784 | ||
|
|
80fc6bf2de | ||
|
|
cb8434c553 | ||
|
|
acb59a0a06 | ||
|
|
58627395b5 | ||
|
|
09db1430da | ||
|
|
5517c055da | ||
|
|
f41cdef0d6 | ||
|
|
e675fd2178 | ||
|
|
2f676b3e9a | ||
|
|
2598effd57 | ||
|
|
e6fd26dba3 | ||
|
|
39d3883325 | ||
|
|
2c3108c235 | ||
|
|
1388f8d0f2 | ||
|
|
76883c4a2f | ||
|
|
e808742fe1 | ||
|
|
57a22dab4d | ||
|
|
0792aebf95 | ||
|
|
4c142e759c | ||
|
|
9c4c5d887c | ||
|
|
be94e275cd | ||
|
|
83c0404bcf | ||
|
|
269e2938a2 | ||
|
|
062fdf6173 | ||
|
|
4ce05e77ab | ||
|
|
568997b573 | ||
|
|
c9fab5f830 | ||
|
|
e5dce2b256 | ||
|
|
89cfbc5e21 | ||
|
|
5f443dd538 | ||
|
|
3b4084e14c | ||
|
|
5fd1b028dd | ||
|
|
0f5ab03eb0 | ||
|
|
335269a25a | ||
|
|
63b588defb | ||
|
|
12e884b433 | ||
|
|
e23e6bc1c7 | ||
|
|
28c0170730 | ||
|
|
772e32365d | ||
|
|
ed80ec6650 | ||
|
|
700fab38df | ||
|
|
421310b544 | ||
|
|
22f533245b | ||
|
|
55b51195f4 | ||
|
|
f156dbef42 | ||
|
|
7489f53923 | ||
|
|
0226c3ff30 | ||
|
|
02485be3b5 | ||
|
|
cf0dca2100 | ||
|
|
6021e84957 | ||
|
|
1693b492f8 | ||
|
|
94347fc223 | ||
|
|
9e3e785ba6 | ||
|
|
1a2f2ad7e4 | ||
|
|
b26b70ec8e | ||
|
|
38aad33d78 | ||
|
|
18cac266cd | ||
|
|
7c4d4479ec | ||
|
|
2353e483c7 | ||
|
|
8efa36b734 | ||
|
|
04f4585891 | ||
|
|
c1128625bb | ||
|
|
4de99e49e7 | ||
|
|
5f80d74a79 | ||
|
|
b05d1db548 | ||
|
|
c13617af36 | ||
|
|
64e1a4ed0c | ||
|
|
88f4124c5b | ||
|
|
921e5b02f4 | ||
|
|
5ce6d6a723 | ||
|
|
0b6a5b3bad | ||
|
|
2ed8cf1549 | ||
|
|
fd5c03bdad | ||
|
|
b3a76e8c80 | ||
|
|
4707a60805 | ||
|
|
5dd9a8b785 | ||
|
|
eaf0c60fe5 | ||
|
|
3c02a693c7 | ||
|
|
36ffa70608 | ||
|
|
8c8be61128 | ||
|
|
0f35a43feb | ||
|
|
a1a6e8861e | ||
|
|
17624a28c3 | ||
|
|
22b33711e6 | ||
|
|
2d281841da | ||
|
|
05674860b9 | ||
|
|
f64cf11377 | ||
|
|
9cf668711b | ||
|
|
017a3c9a92 | ||
|
|
2c32590dfc | ||
|
|
c9f81cc05c | ||
|
|
30f0f765a3 | ||
|
|
162072dbd4 | ||
|
|
4f2ec7b68b | ||
|
|
2c21dd8737 | ||
|
|
385db085c7 | ||
|
|
63fdc318ac | ||
|
|
b73101f5e5 | ||
|
|
7624b0559b | ||
|
|
162fafc914 | ||
|
|
fc543b5647 | ||
|
|
4c980ea26f | ||
|
|
337e45d36c | ||
|
|
0a36ab72b6 | ||
|
|
58db479320 | ||
|
|
4ba569a03f | ||
|
|
57a9364c72 | ||
|
|
1fb29c2040 | ||
|
|
58837c8297 | ||
|
|
739bc335b7 | ||
|
|
26166e9195 | ||
|
|
003fed106b | ||
|
|
dd82684617 | ||
|
|
3f680362bb | ||
|
|
077fe6e1f3 | ||
|
|
0207edfdbd | ||
|
|
efa1cfac35 | ||
|
|
5e1df0e93b | ||
|
|
6a95724b78 | ||
|
|
7d80377cde | ||
|
|
19ae675bf0 | ||
|
|
d013a1cc95 | ||
|
|
31c67f87c5 | ||
|
|
e1629627c0 | ||
|
|
bc4957ceed | ||
|
|
31ece2df3c | ||
|
|
62ea4977f0 | ||
|
|
cf2e373436 | ||
|
|
87aca7838e | ||
|
|
90cf8344c2 | ||
|
|
4c23d311e4 | ||
|
|
14f3be7cb5 | ||
|
|
f264ba4927 | ||
|
|
96f1ac2d63 | ||
|
|
644e6eb273 | ||
|
|
234c515b05 | ||
|
|
648557b72c | ||
|
|
421e4b71b1 | ||
|
|
eb85ae1326 | ||
|
|
3f3f6963a0 | ||
|
|
27a12c8a0f | ||
|
|
33b4622a1f | ||
|
|
f8db8b4dc0 | ||
|
|
11dcec07bf | ||
|
|
517b60cb16 | ||
|
|
8e5aa40895 | ||
|
|
fb8aa21cc8 | ||
|
|
a1f332be01 | ||
|
|
57a21b390f | ||
|
|
3d68b58cbb | ||
|
|
4f2f873574 | ||
|
|
b35c92278b | ||
|
|
e359f48237 | ||
|
|
4b2ddb5e80 | ||
|
|
8eb5ff24c6 | ||
|
|
0e15ac20e3 | ||
|
|
3ed8f54151 | ||
|
|
7aacae66d4 | ||
|
|
f5170b7999 | ||
|
|
05d4a234aa | ||
|
|
dedb6c25f4 | ||
|
|
8345d76473 | ||
|
|
152d7430e8 | ||
|
|
8e64cdcd84 | ||
|
|
60d230c0b7 | ||
|
|
582e48cd6e | ||
|
|
3a4296cd4e | ||
|
|
df2451c7ee | ||
|
|
52fc660e03 | ||
|
|
8ee88feabb | ||
|
|
ad68425f39 | ||
|
|
2296613061 | ||
|
|
471bb75029 | ||
|
|
081cb42dc8 | ||
|
|
168c9c5503 | ||
|
|
0b8f25214f | ||
|
|
47c1f7b6a3 | ||
|
|
c60970a0ab | ||
|
|
6ce867d70d | ||
|
|
c5fe6a39d0 | ||
|
|
ed008a4d49 | ||
|
|
9c4d568546 | ||
|
|
e0705d2632 | ||
|
|
7c57ed82c9 | ||
|
|
92d9d53387 | ||
|
|
21058eed94 | ||
|
|
ca661479f8 | ||
|
|
69c4fe707a | ||
|
|
5a6a822e37 | ||
|
|
f119b11c57 | ||
|
|
407944854b | ||
|
|
1108c9e00a | ||
|
|
7d2390eb74 | ||
|
|
fa5a497f50 | ||
|
|
48258e1393 | ||
|
|
3c4c984954 | ||
|
|
36292e8c37 | ||
|
|
2311b4c9d5 | ||
|
|
205c0838ed | ||
|
|
f1cc9e98aa | ||
|
|
e09746cf38 | ||
|
|
2f7c14486b | ||
|
|
0b33801f3c | ||
|
|
adb0b5d9eb | ||
|
|
7cf6e3bcdd | ||
|
|
2ca9b78d56 | ||
|
|
7b5f3f85fe | ||
|
|
4994020e5e | ||
|
|
1fb9f3ca31 | ||
|
|
63d1c92aa7 | ||
|
|
eac2ab98be | ||
|
|
9421ac3696 | ||
|
|
d2ee701574 | ||
|
|
ae7a9ebfa2 | ||
|
|
c9a2188752 | ||
|
|
360204275e | ||
|
|
c3e1624478 | ||
|
|
e7a613e60a | ||
|
|
8243afe938 | ||
|
|
e8efa5b015 | ||
|
|
11ad86c68e | ||
|
|
9046d5f13c |
4
LICENSE
4
LICENSE
@@ -1,5 +1,5 @@
|
||||
Copyright (c) 2002 University of Chicago and The Regents of the University
|
||||
of California. All rights reserved.
|
||||
Copyright (c) 1991-2003 University of Chicago and The Regents of the
|
||||
University of California. All rights reserved.
|
||||
|
||||
EPICS BASE is distributed subject to the following license agreement:
|
||||
|
||||
|
||||
4
README
4
README
@@ -2,9 +2,9 @@
|
||||
EPICS Base - the central core of a control system toolkit
|
||||
---------------------------------------------------------
|
||||
|
||||
Copyright (c) 2002 The University of Chicago, as Operator
|
||||
Copyright (c) 1991-2003 The University of Chicago, as Operator
|
||||
of Argonne National Laboratory.
|
||||
Copyright (c) 2002 The Regents of the University of
|
||||
Copyright (c) 1991-2003 The Regents of the University of
|
||||
California, as Operator of Los Alamos National Laboratory.
|
||||
|
||||
EPICS Base Versions 3.13.7 and higher are distributed
|
||||
|
||||
@@ -37,7 +37,7 @@ OP_SYS_LDFLAGS += -L/sw/lib -L/usr/X11R6/lib
|
||||
#ARCH_DEP_LDLIBS += -lreadline
|
||||
|
||||
# Uncomment this if you're using the libtecla library
|
||||
ARCH_DEP_LDLIBS += -ltecla_r -ltermcap
|
||||
#ARCH_DEP_LDLIBS += -ltecla_r -ltermcap
|
||||
|
||||
#
|
||||
# Compiler/linker problems prevent the use of shared libraries at the moment
|
||||
|
||||
@@ -47,4 +47,9 @@ SYS_DLL_LIBS_Linux += pthread readline curses rt
|
||||
# and see if that makes the problem go away."
|
||||
#ARCH_DEP_CFLAGS += -D_GNU_SOURCE
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LIBS =$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH)
|
||||
RUNTIME_LDFLAGS = $(RUNTIME_LIBS:%=-Wl,-rpath,%)
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ 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
|
||||
|
||||
@@ -42,3 +42,9 @@ GCC_DEP_CFLAGS = -D_REENTRANT
|
||||
G++_DEP_CFLAGS = -D_REENTRANT
|
||||
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LIBS =$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH)
|
||||
RUNTIME_LDFLAGS = $(RUNTIME_LIBS:%=-Wl,-rpath,%)
|
||||
|
||||
|
||||
@@ -14,76 +14,60 @@
|
||||
|
||||
ARCH_CLASS = hpux
|
||||
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
SHRLIB_SUFFIX = .sl
|
||||
|
||||
AR = ar
|
||||
AR = ar -rc
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
ACC = cc
|
||||
ACC_ANSI = $(ACC) -Aa
|
||||
ACC_STRICT = $(ACC) -Aa
|
||||
ACC_TRAD = $(ACC)
|
||||
ACC_TRAD = $(ACC) -Ac
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Wl,-a,archive
|
||||
ACC_SFLAGS_NO=
|
||||
# Always keep libc shared to force using the one supplied with the
|
||||
# target machine (HP system and libc must match - important e.g. for
|
||||
# multi-CPU-systems)
|
||||
ACC_SLDFLAGS_YES= -Wl,-a,archive -l:libc.sl
|
||||
ACC_SFLAGS_NO =
|
||||
ACC_SLIBS_YES =
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES = +Z
|
||||
ACC_SLIBS_NO =
|
||||
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
|
||||
# aCC HP C++ compiler
|
||||
CCC = aCC
|
||||
# avoid treating "future errors" as actual errors
|
||||
CCC_NORMAL = $(CCC) +W302 +W829 +W818 +W392 +W469 +W495 +W749 +W667 +W392 +W684
|
||||
CCC_STRICT = $(CCC) +p
|
||||
# Suppress bogus warnings created by the aCC compiler
|
||||
CCC_NORMAL = $(CCC) -AA -Aa -mt +W302 +W829 +W818 +W392 +W469 +W495 +W749 +W667 +W392 +W684
|
||||
CCC_STRICT = $(CCC) -AA -Aa -mt
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = +w
|
||||
CCC_WARN_NO =
|
||||
CCC_OPT_YES = -O
|
||||
CCC_OPT_YES = +O3
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Wl,-a,archive
|
||||
# Always keep libc shared to force using the one supplied with the
|
||||
# target machine (HP system and libc must match - important e.g. for
|
||||
# multi-CPU-systems)
|
||||
CCC_SLDFLAGS_YES= -Wl,-a,archive -l:libc.sl
|
||||
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
|
||||
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_CXXFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
ARCH_DEP_LDLIBS =
|
||||
ARCH_DEP_LDFLAGS = -Wl,+b$(DEFAULT_SHRLIB_SEARCH_PATH),+s
|
||||
# Portability across different PA-RISC architecture versions, position
|
||||
# independent code, "-mt" (s.a.) handles all the posix stuff
|
||||
ARCH_DEP_CPPFLAGS = -DHP_UX +DAportable +z
|
||||
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
empty:= # trick from the make docs...
|
||||
space:= $(empty) $(empty)
|
||||
RUNTIME_LDFLAGS_YES = -Wl,+b$(subst $(space),:,$(sort $(SHRLIB_SEARCH_DIRS))),+s
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
49
config/CONFIG.Host.hpux-parisc-gnu
Normal file
49
config/CONFIG.Host.hpux-parisc-gnu
Normal file
@@ -0,0 +1,49 @@
|
||||
#*************************************************************************
|
||||
# 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.
|
||||
#*************************************************************************
|
||||
# CONFIG.Host.hpux-parisc-gnu
|
||||
#
|
||||
# This file is maintained by the EPICS community.
|
||||
# Sites may override these definitions in CONFIG_SITE.Host.hpux-parisc-gnu
|
||||
|
||||
ARCH_CLASS = hpux
|
||||
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# Include definitions common to all Unix archs
|
||||
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
|
||||
|
||||
AR = ar -rc
|
||||
ARCMD = $(AR) $@
|
||||
|
||||
#==========================
|
||||
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
|
||||
ANSI=GCC
|
||||
CPLUSPLUS=G++
|
||||
#==========================
|
||||
|
||||
# Always keep libc shared to force using the one supplied with the
|
||||
# target machine (HP system and libc must match - important e.g. for
|
||||
# multi-CPU-systems)
|
||||
GCC_SLDFLAGS_YES = -l:libc.sl
|
||||
G++_SLDFLAGS_YES = -l:libc.sl
|
||||
|
||||
# socket and nsl needed by libca.a
|
||||
#ARCH_DEP_LDLIBS += -lsocket -lnsl
|
||||
ARCH_DEP_LDLIBS += -lpthread
|
||||
ARCH_DEP_CPPFLAGS += -D_PTHREADS -DOSITHREAD_USE_DEFAULT_STACK
|
||||
|
||||
# Allows R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_DLL_LIBS_hpux += pthread
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
empty:= # trick from the make docs...
|
||||
space:= $(empty) $(empty)
|
||||
RUNTIME_LDFLAGS_YES = -Wl,+b$(subst $(space),:,$(sort $(SHRLIB_SEARCH_DIRS))),+s
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
@@ -35,14 +35,14 @@ ACC = $(SPARCWORKS)/bin/cc
|
||||
ACC_ANSI = $(ACC) -Xa -v
|
||||
ACC_STRICT = $(ACC) -Xc -v
|
||||
ACC_TRAD = $(ACC) -Xs
|
||||
ACC_DEP_CFLAGS = -KPIC
|
||||
ACC_DEP_CFLAGS = -KPIC -D_REENTRANT
|
||||
ACC_WARN_YES =
|
||||
ACC_WARN_NO = -w
|
||||
ACC_OPT_YES = -O
|
||||
ACC_OPT_NO = -g
|
||||
ACC_SFLAGS_YES= -Bstatic
|
||||
ACC_SFLAGS_NO=
|
||||
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
|
||||
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic
|
||||
ACC_SLIBS_NO=
|
||||
ACC_SHRLIB_CFLAGS_YES =
|
||||
ACC_SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
@@ -51,7 +51,7 @@ ACC_SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
CCC = $(SPARCWORKS)/bin/CC
|
||||
CCC_NORMAL = $(CCC) +p
|
||||
CCC_STRICT = $(CCC) +p
|
||||
CCC_DEP_CFLAGS = -KPIC
|
||||
CCC_DEP_CFLAGS = -KPIC -D_REENTRANT
|
||||
CCC_TEMPL_INST_FLAG =
|
||||
CCC_WARN_YES = +w
|
||||
CCC_WARN_NO =
|
||||
@@ -59,12 +59,12 @@ CCC_OPT_YES = -O
|
||||
CCC_OPT_NO = -g
|
||||
CCC_SFLAGS_YES= -Bstatic
|
||||
CCC_SFLAGS_NO=
|
||||
CCC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
|
||||
CCC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic
|
||||
CCC_SLIBS_NO=
|
||||
CCC_DEPENDS_FLAG = -xM1
|
||||
CCC_SHRLIB_CFLAGS_YES =
|
||||
CCC_SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
ARCH_DEP_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
POSIX_CPPFLAGS_YES += -D__EXTENSIONS__
|
||||
@@ -78,3 +78,9 @@ ARCH_DEP_LDLIBS += $(ARCH_DEP_LDLIBS_$(SOLARIS_VERSION))
|
||||
#Allows R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_DLL_LIBS_solaris_8 = Crun
|
||||
SYS_DLL_LIBS_solaris += posix4 pthread $(SYS_DLL_LIBS_solaris_$(SOLARIS_VERSION))
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LDFLAGS =$(addprefix -R,$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH))
|
||||
|
||||
|
||||
|
||||
@@ -46,3 +46,8 @@ ARCH_DEP_LDLIBS += $(ARCH_DEP_LDLIBS_$(SOLARIS_VERSION))
|
||||
#Allows R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_DLL_LIBS_solaris_8 = Crun
|
||||
SYS_DLL_LIBS_solaris += posix4 pthread $(SYS_DLL_LIBS_solaris_$(SOLARIS_VERSION))
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LDFLAGS =$(addprefix -R,$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH))
|
||||
|
||||
|
||||
@@ -93,3 +93,6 @@ ARCH_DEP_CFLAGS = -DSUNOS4
|
||||
#SPECIAL_LANG = /usr/lang/SC3.0.1
|
||||
#SPECIAL_LANG = /usr/lang/lib
|
||||
|
||||
# Runtime ldflags
|
||||
RUNTIME_LDFLAGS =$(addprefix -R,$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\
|
||||
$(EPICS_EXTENSIONS)/lib/$(EPICS_HOST_ARCH))
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
EPICS_VERSION=3
|
||||
EPICS_REVISION=14
|
||||
EPICS_MODIFICATION=1
|
||||
EPICS_MODIFICATION=2
|
||||
EPICS_UPDATE_NAME=
|
||||
EPICS_UPDATE_LEVEL=0
|
||||
|
||||
|
||||
@@ -238,7 +238,7 @@ CXXFLAGS = $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)
|
||||
$(OP_SYS_CFLAGS) $(TEMPL_INST_CXXFLAG) $(INCLUDES)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS)\
|
||||
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS)
|
||||
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS) $(RUNTIME_LDFLAGS)
|
||||
|
||||
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS)\
|
||||
$(STATIC_LDLIBS) $(OP_SYS_LDLIBS) $(POSIX_LDLIBS)
|
||||
|
||||
@@ -25,5 +25,3 @@ export LD_LIBRARY_PATH := $(INSTALL_HOST_LIB):$(EPICS_BASE_HOST_LIB):$(LD_LIBRAR
|
||||
else
|
||||
export LD_LIBRARY_PATH := $(EPICS_BASE_HOST_LIB):$(LD_LIBRARY_PATH)
|
||||
endif
|
||||
|
||||
|
||||
|
||||
13
config/CONFIG_HOST_ARCH.hpux-parisc-gnu
Normal file
13
config/CONFIG_HOST_ARCH.hpux-parisc-gnu
Normal file
@@ -0,0 +1,13 @@
|
||||
#*************************************************************************
|
||||
# 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$
|
||||
|
||||
# hpux-parisc is the new name for hp700
|
||||
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.hp700
|
||||
@@ -4,23 +4,8 @@
|
||||
# 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 = /home/controls/epics/cdev/lib/hpux-10.20:/home/controls/epics/cdev/lib/hpux-10.XX:/opt/TclTk/lib:/opt/xpm/lib/X11:/usr/lib/pa1.1:/usr/lib:/lib:/opt/csr/installed/HP-UX/lib::/opt/OPI/GUI/lib/hp700:/opt/OPI/MapperApplications/lib/hp700:/opt/OPI/cdevAppl/lib/hp700:/opt/OPI/cmlog/lib/hp700:/opt/OPI/models/lib/hp700:/opt/OPI/sddsAppl/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
|
||||
|
||||
# By default, shared libraries are built and used. Override here.
|
||||
#SHARED_LIBRARIES=NO
|
||||
|
||||
# This is the absolute path to the generic INSTALL_LOCATION, for SHARED_LIBRARY searches.
|
||||
SHRLIB_SEARCH_DIRS += /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/support/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/$(EPICS_HOST_ARCH)
|
||||
|
||||
11
config/CONFIG_SITE.Host.hpux-parisc-gnu
Normal file
11
config/CONFIG_SITE.Host.hpux-parisc-gnu
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific Configuration Information
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# By default, shared libraries are built and used. Override here.
|
||||
#SHARED_LIBRARIES=NO
|
||||
|
||||
# This is the absolute path to the generic INSTALL_LOCATION, for SHARED_LIBRARY searches.
|
||||
SHRLIB_SEARCH_DIRS += /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/support/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/$(EPICS_HOST_ARCH)
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
# APS overrides of definitions
|
||||
|
||||
GCC = /opt/gnu/bin/gcc
|
||||
G++ = /opt/gnu/bin/g++
|
||||
#GCC = /opt/gnu/bin/gcc
|
||||
#G++ = /opt/gnu/bin/g++
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ endif
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *.o *.a *.out $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
|
||||
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME) *.c
|
||||
ifdef MUNCH
|
||||
@$(RM) $(MUNCHNAME) ctdt.c ctdt.o nm.out
|
||||
endif
|
||||
@@ -171,8 +171,8 @@ endif
|
||||
@$(RM) $@
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
|
||||
|
||||
%.c: %.stt
|
||||
@echo "converting $<
|
||||
%.c: ../%.stt
|
||||
@echo "converting $<"
|
||||
ln -s $< $*.st
|
||||
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
|
||||
@$(RM) $*.st
|
||||
|
||||
@@ -104,7 +104,7 @@ sub Usage
|
||||
print "Usage:\n";
|
||||
print "\t$tool [ -m mode ] file ... directory\n";
|
||||
print "\n";
|
||||
print "\t-d Create non-exising directories\n";
|
||||
print "\t-d Create non-existing directories\n";
|
||||
print "\t-m mode Set the mode for the installed file";
|
||||
print " (0755 by default)\n";
|
||||
print "\tfile Name of file\n";
|
||||
|
||||
@@ -41,7 +41,7 @@ include $(CONFIG)/CONFIG_SITE
|
||||
#
|
||||
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
|
||||
|
||||
-include $(CONFIG)/O.$(T_A)/CONFIG_APP_INCLUDE
|
||||
|
||||
ifdef T_A
|
||||
|
||||
|
||||
@@ -22,27 +22,31 @@ LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
CPP = $(CC) -x c -E
|
||||
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
|
||||
|
||||
CODE_CFLAGS = -fPIC
|
||||
CONFORM_CFLAGS_ANSI = -ansi
|
||||
CONFORM_CFLAGS_STRICT = -ansi -pedantic
|
||||
CONFORM_CFLAGS_STRICT = -ansi
|
||||
CONFORM_CFLAGS_TRAD = -traditional
|
||||
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
|
||||
|
||||
CODE_CXXFLAGS = -fPIC
|
||||
CONFORM_CXXFLAGS_NORMAL = -ansi -pedantic
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi -pedantic
|
||||
#WARN_CXXFLAGS_YES = -Wall -Weffc++
|
||||
CONFORM_CXXFLAGS_NORMAL = -ansi
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi
|
||||
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))
|
||||
|
||||
STATIC_LDFLAGS_YES = -static
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
SHRLIB_LDFLAGS_YES += -shared
|
||||
SHRLIB_LDFLAGS_NO +=
|
||||
SHRLIB_CFLAGS = -fPIC
|
||||
|
||||
|
||||
@@ -23,6 +23,57 @@
|
||||
# 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
|
||||
# USR_CPPFLAGS c preprocesser flags
|
||||
# INC include-files to install
|
||||
# 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_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 and install
|
||||
# TESTPROD_HOST products to build and install
|
||||
# TESTPROD_IOC products to build and install
|
||||
# LIBRARY products to build and install
|
||||
# LIBRARY_HOST products to build and install
|
||||
# LIBRARY_IOC products to build and install
|
||||
# SCRIPTS scripts and install
|
||||
# SCRIPTS_HOST host system scripts to install
|
||||
# SCRIPTS_IOC ioc system scripts to install
|
||||
# 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
|
||||
# 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
|
||||
@@ -36,27 +87,6 @@
|
||||
# USR_CFLAGS_vxWorks-68040 = -nil-
|
||||
# USR_CFLAGS_vxWorks_DEFAULT = <defines for most vxWorks systems, not 68040>
|
||||
#
|
||||
# These rules apply to these Makefile-variables:
|
||||
# USR_CFLAGS C flags
|
||||
# USR_CXXFLAGS C++ flags
|
||||
# USR_CPPFLAGS c preprocesser flags
|
||||
# INC include-files to install
|
||||
# LIBSRCS source files for building library
|
||||
# LIB_SRCS source files for building library
|
||||
# SHRLIB_LIBS libs needed by shared LIBRARY
|
||||
# PROD_LIBS libs needed by PROD and TESTPROD
|
||||
# USR_LIBS libs needed by PROD and TESTPROD
|
||||
# USR_LDFLAGS ld flags
|
||||
# SYS_PROD_LIBS system libs needed by PROD and TESTPROD
|
||||
# PROD products to build and install
|
||||
# SCRIPTS scripts to install
|
||||
# USR_INCLUDES include directories
|
||||
#
|
||||
# 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.
|
||||
# The INC source files cannot be created by the build.
|
||||
#
|
||||
|
||||
ifneq ($(strip $(USR_CFLAGS_$(T_A))),)
|
||||
@@ -123,6 +153,22 @@ 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
|
||||
|
||||
# check for special includes:
|
||||
#
|
||||
ifneq ($(strip $(INC_$(OS_CLASS))),)
|
||||
@@ -160,6 +206,14 @@ 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
|
||||
@@ -184,6 +238,14 @@ 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
|
||||
@@ -208,11 +270,27 @@ OBJS_HOST+=$(OBJS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LDOBJS_$(OS_CLASS))),)
|
||||
LDOBJS+=$(subst -nil-,,$(LDOBJS_$(OS_CLASS)))
|
||||
ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),)
|
||||
PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LDOBJS_DEFAULT)))
|
||||
LDOBJS+=$(LDOBJS_DEFAULT)
|
||||
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
|
||||
|
||||
@@ -256,6 +334,7 @@ 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
|
||||
@@ -264,6 +343,14 @@ 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
|
||||
@@ -275,6 +362,7 @@ 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
|
||||
@@ -282,6 +370,31 @@ 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
|
||||
@@ -375,3 +488,19 @@ 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
|
||||
|
||||
|
||||
@@ -21,28 +21,18 @@ ifdef T_A
|
||||
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
|
||||
endif
|
||||
|
||||
#Definitions for extensions convenience
|
||||
Com_DIR = $(EPICS_BASE_LIB)
|
||||
asHost_DIR = $(EPICS_BASE_LIB)
|
||||
asIoc_DIR = $(EPICS_BASE_LIB)
|
||||
ca_DIR = $(EPICS_BASE_LIB)
|
||||
cas_DIR = $(EPICS_BASE_LIB)
|
||||
dbIoc_DIR = $(EPICS_BASE_LIB)
|
||||
dbStaticHost_DIR = $(EPICS_BASE_LIB)
|
||||
dbStaticIoc_DIR = $(EPICS_BASE_LIB)
|
||||
dbtoolsIoc_DIR = $(EPICS_BASE_LIB)
|
||||
gdd_DIR = $(EPICS_BASE_LIB)
|
||||
iocsh_DIR = $(EPICS_BASE_LIB)
|
||||
miscIoc_DIR = $(EPICS_BASE_LIB)
|
||||
registryIoc_DIR = $(EPICS_BASE_LIB)
|
||||
rsrvIoc_DIR = $(EPICS_BASE_LIB)
|
||||
recIoc_DIR = $(EPICS_BASE_LIB)
|
||||
softDevIoc_DIR = $(EPICS_BASE_LIB)
|
||||
testDevIoc_DIR = $(EPICS_BASE_LIB)
|
||||
recIocObj_DIR = $(EPICS_BASE_LIB)
|
||||
softDevIocObj_DIR = $(EPICS_BASE_LIB)
|
||||
testDevIocObj_DIR = $(EPICS_BASE_LIB)
|
||||
iocCore_DIR = $(EPICS_BASE_LIB)
|
||||
#---------------------------------------------------------------
|
||||
# Epics base Ioc libraries
|
||||
|
||||
EPICS_BASE_IOC_LIBS += recIoc softDevIoc testDevIoc iocsh
|
||||
EPICS_BASE_IOC_LIBS += miscIoc rsrvIoc dbtoolsIoc asIoc
|
||||
EPICS_BASE_IOC_LIBS += dbIoc registryIoc dbStaticIoc ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Epics base Host libraries
|
||||
|
||||
EPICS_BASE_HOST_LIBS += cas gdd iocsh asHost dbStaticHost
|
||||
EPICS_BASE_HOST_LIBS += ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Version number for base shared libraries (and win32 products)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
EPICS_VERSION=3
|
||||
EPICS_REVISION=14
|
||||
EPICS_MODIFICATION=1
|
||||
EPICS_MODIFICATION=2
|
||||
EPICS_UPDATE_NAME=
|
||||
EPICS_UPDATE_LEVEL=0
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ CHECK_RELEASE_NO =
|
||||
#-------------------------------------------------------
|
||||
# Directories
|
||||
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
INSTALL_LOCATION ?= $(TOP)
|
||||
TOOLS = $(CONFIG)/tools
|
||||
|
||||
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
|
||||
@@ -87,7 +87,7 @@ BUILD_CLASS = HOST
|
||||
CMPLR=STRICT
|
||||
CXXCMPLR=STRICT
|
||||
STATIC_BUILD=NO
|
||||
SHARED_LIBRARIES=NO
|
||||
SHARED_LIBRARIES=YES
|
||||
HDEPENDS=YES
|
||||
HOST_OPT=YES
|
||||
CROSS_OPT=YES
|
||||
@@ -140,13 +140,13 @@ JAR =
|
||||
#--------------------------------------------------
|
||||
# obj files
|
||||
|
||||
TARGET_OBJS = $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS)))
|
||||
TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS)))
|
||||
|
||||
PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(PROD_SRCS) $(PROD_OBJS)))
|
||||
PROD_LD_OBJS = $(LDOBJS) $(TARGET_OBJS) $(PRODUCT_OBJS)
|
||||
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) $(LIB_SRCS) $(LIBSRCS) $(LIB_OBJS)))
|
||||
LIBRARY_LD_OBJS = $(LDOBJS) $(TARGET_OBJS) $(LIBRARY_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)
|
||||
|
||||
#--------------------------------------------------
|
||||
# WIN95/NT resource files
|
||||
@@ -156,7 +156,7 @@ TARGET_RESS = $(addsuffix $(RES),$(basename $($*_RCS)))
|
||||
PROD_RESS = $(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS)))
|
||||
PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
|
||||
|
||||
LIBRARY_RESS = $(addsuffix $(RES),$(basename $(RCS) $(LIBRARY_RCS)))
|
||||
LIBRARY_RESS = $(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS)))
|
||||
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
|
||||
|
||||
#--------------------------------------------------
|
||||
@@ -180,7 +180,6 @@ OP_SYS_CFLAGS =
|
||||
OP_SYS_CXXFLAGS = $(OP_SYS_CFLAGS)
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_INCLUDES =
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
# SOURCE* used by WIN32 only
|
||||
SOURCE_CFLAG =
|
||||
@@ -196,19 +195,26 @@ USR_CPPFLAGS =
|
||||
USR_DBDFLAGS =
|
||||
USR_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_LDFLAGS = $($(basename $@)_LDFLAGS_$(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_LDFLAGS += $($(basename $@)_LDFLAGS_$(OS_CLASS)) $($(basename $@)_LDFLAGS)
|
||||
TARGET_CPPFLAGS += $($(basename $@)_CPPFLAGS_$(OS_CLASS)) $($(basename $@)_CPPFLAGS)
|
||||
|
||||
TARGET_LDFLAGS = $($*_LDFLAGS)
|
||||
|
||||
# Level of ansi conformance flags
|
||||
CONFORM_CPPFLAGS = $(CONFORM_CPPFLAGS_$(CMPLR))
|
||||
CONFORM_CFLAGS = $(CONFORM_CFLAGS_$(CMPLR))
|
||||
@@ -234,9 +240,15 @@ STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command-line input support default
|
||||
# cflags for library src file
|
||||
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY),$($(lib)_OBJS) $(LIBRARY_OBJS)))
|
||||
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command-line input support default
|
||||
COMMANDLINE_LIBRARY = EPICS
|
||||
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
|
||||
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Flags
|
||||
@@ -246,17 +258,18 @@ INCLUDES = -I. $(GENERIC_SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
|
||||
|
||||
CFLAGS = $(CONFORM_CFLAGS) $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
$(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS)
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS)\
|
||||
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS)
|
||||
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\
|
||||
$(ARCH_DEP_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \
|
||||
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)\
|
||||
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
LDLIBS = $(STATIC_LDLIBS)\
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
|
||||
CPPFLAGS += $(CONFORM_CPPFLAGS) $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
@@ -292,7 +305,7 @@ HDEPENDS_CMD = $(HDEPENDS_CMD_$(HDEPENDS))
|
||||
# depends definition
|
||||
|
||||
TARGET_SRCS = $(foreach name, $(TESTPROD) $(PROD) $(LIBRARY), $($(name)_SRCS))
|
||||
SRC_FILES = $(LIB_SRCS) $(LIBSRCS) $(SRCS) $(PROD_SRCS) $(TARGET_SRCS)
|
||||
SRC_FILES = $(LIB_SRCS) $(LIBSRCS) $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(TARGET_SRCS)
|
||||
HDEPENDS_FILES_YES = $(addsuffix $(DEP),$(notdir $(basename $(SRC_FILES))))
|
||||
HDEPENDS_FILES = $(HDEPENDS_FILES_$(HDEPENDS))
|
||||
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
# <operating system>-<architecture>[-<alternate compiler>]
|
||||
#
|
||||
# Currently Supporting:
|
||||
# hpux-parisc
|
||||
# hpux-parisc (HP compiler used for host builds)
|
||||
# hpux-parisc-gnu (GNU compiler used for host builds)
|
||||
# osf-alpha
|
||||
# solaris-sparc (sun compiler used for host builds)
|
||||
# solaris-sparc-gnu (GNU compiler used for host builds)
|
||||
@@ -37,6 +38,12 @@
|
||||
# darwin-ppc
|
||||
# linux-mpc82xx
|
||||
|
||||
# Debugging builds
|
||||
# linux-x86-debug (GNU compiler with -g option for host builds)
|
||||
# solaris-sparc-debug (sun compiler with -g option for host builds)
|
||||
# win32-x86-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
|
||||
@@ -51,17 +58,21 @@
|
||||
# vxWorks-68060
|
||||
# vxWorks-pentium
|
||||
# vxWorks-ppc603
|
||||
# vxWorks-ppc603_long
|
||||
# vxWorks-ppc604
|
||||
# vxWorks-ppc604_long
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mvme167
|
||||
# RTEMS-pc386
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-psim
|
||||
#
|
||||
# Definitions of CROSS_COMPILER_TARGET_ARCHS in
|
||||
# configure/os/CONFIG_SITE.<host>.Common files will
|
||||
# override
|
||||
#
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
|
||||
|
||||
# If only a subset of the host architectures perform
|
||||
# the build for the CROSS_COMPILER_TARGET_ARCHS
|
||||
@@ -83,18 +94,13 @@ CMPLR=STRICT
|
||||
CXXCMPLR=STRICT
|
||||
|
||||
# Build shared libraries?
|
||||
# (archive libraries will also be built)
|
||||
# must be either YES or NO
|
||||
# NOTE: os/CONFIG.$(EPICS_HOST_ARCH).$(EPICS_HOST_ARCH) files and
|
||||
# os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(EPICS_HOST_ARCH) files may override
|
||||
#
|
||||
# NOTE WIN32: YES results in a DLL. CONFIG_SITE.Host.WIN32
|
||||
# distribution file contains YES override
|
||||
# NOTE WIN32: YES results in a DLL.
|
||||
#
|
||||
# NOTE solaris,Linux, and sun4: If YES then LD_LIBRARY_PATH must
|
||||
# include fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
|
||||
# for both the base build and when invoking base executables
|
||||
SHARED_LIBRARIES=NO
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# Build client objects statically ?
|
||||
# must be either YES or NO
|
||||
@@ -122,5 +128,5 @@ HOST_WARN=YES
|
||||
CROSS_WARN=YES
|
||||
|
||||
# Installation directory
|
||||
INSTALL_LOCATION=$(TOP)
|
||||
#Note: INSTALL_LOCATION definition moved to configure/RELEASE file
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
# Time service:
|
||||
# EPICS_TIMEZONE needed for vxWorks
|
||||
# EPICS_TIMEZONE=<name>::<minutesWest>:<start daylight>:<end daylight>
|
||||
#NOTE: start and end are mmddhh that bis mounth,day,hour
|
||||
# eg EPICS_TIMEZONE=CUS::360:033102:102802
|
||||
# DST for 2003 US: Apr 6 - Oct 26
|
||||
# EU: Mar 30 - Oct 26
|
||||
|
||||
@@ -23,4 +23,6 @@ CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../tools/*.pl))
|
||||
|
||||
TARGETS = CONFIG_APP_INCLUDE
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
@@ -13,5 +13,7 @@
|
||||
|
||||
# Tornado directory
|
||||
VX_DIR = /usr/local/vw/tornado202
|
||||
# Is Tornado version >= 2.2 ? must be either YES or NO
|
||||
TORNADO_VERSION_2_2 = NO
|
||||
|
||||
# If you don't want to install into $(TOP) dir then
|
||||
# define INSTALL_LOCATION here
|
||||
#INSTALL_LOCATION=<fullpathname>
|
||||
|
||||
@@ -59,7 +59,7 @@ TEMPLATE2=$(patsubst %0,%,$(patsubst %1,%,$(patsubst %2,%,$(patsubst %3,%,$(pats
|
||||
$(patsubst %5,%,$(patsubst %6,%,$(patsubst %7,%,$(patsubst %8,%,$(patsubst %9,%, \
|
||||
$(TEMPLATE1)))))))))))
|
||||
TEMPLATE3=$(addsuffix .template,$(addprefix ../,$(TEMPLATE2)))
|
||||
TEMPLATE_FILENAME=$(firstword $(wildcard ../$*.template) $(TEMPLATE3))
|
||||
TEMPLATE_FILENAME=$(firstword $(wildcard $(addprefix ../,$($*_TEMPLATE)) ../$*.template $(TEMPLATE3)) $(TEMPLATE3))
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
@@ -112,16 +112,26 @@ $(DBDDEPENDS_FILES):
|
||||
|
||||
##################################################### build dependancies, clean rule
|
||||
|
||||
ifdef DBD_INSTALLS
|
||||
buildInstall : dbdInstalls
|
||||
endif
|
||||
|
||||
ifdef DB_INSTALLS
|
||||
buildInstall : dbInstalls
|
||||
endif
|
||||
|
||||
.PHONY: dbdInstalls dbInstalls
|
||||
|
||||
inc : $(COMMON_INC) $(INSTALL_INC)
|
||||
|
||||
build : $(COMMON_DBDS) $(COMMON_DBS) \
|
||||
$(INSTALL_DBDS) $(INSTALL_DBS) \
|
||||
$(DBDDEPENDS_FILES) $(INDDBFROMTEMPLATE) $(TARGETS)
|
||||
$(DBDDEPENDS_FILES) $(TARGETS)
|
||||
|
||||
clean::
|
||||
@$(RM) $(COMMONS) $(DBDDEPENDS_FILES)
|
||||
@$(RM) *_registerRecordDeviceDriver.cpp
|
||||
@$(RM) $(INDDBFROMTEMPLATE) $(TARGETS)
|
||||
@$(RM) $(TARGETS)
|
||||
|
||||
##################################################### "Foreign" templates
|
||||
|
||||
@@ -201,12 +211,17 @@ $(COMMON_DIR)/%.dbd: %Include.dbd
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "Expanding dbd"
|
||||
@$(RM) $@
|
||||
$(DBEXPAND) $(DBDFLAGS) $< > $@
|
||||
$(DBEXPAND) $(DBDFLAGS) $< > dbExpand.tmp
|
||||
$(MV) dbExpand.tmp $@
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
dbdInstalls: $(DBD_INSTALLS)
|
||||
@echo "Installing $(^F)"
|
||||
@$(INSTALL) -d -m 555 $^ $(INSTALL_DBD)
|
||||
|
||||
.PRECIOUS: $(COMMON_DBDS)
|
||||
|
||||
##################################################### DB files
|
||||
@@ -216,13 +231,15 @@ $(COMMON_DIR)/%.db$(RAW): $(COMMON_DIR)/%.edf
|
||||
@$(REPLACEVAR) < $@.VAR > $@
|
||||
@$(RM) $@.VAR
|
||||
|
||||
# dbst based database optimization
|
||||
$(COMMON_DIR)/%.db$(RAW): %.substitutions
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$@:$(TEMPLATE_FILENAME)" >> $@$(DEP)
|
||||
@echo "Inflating database from $<"
|
||||
@$(RM) $@
|
||||
$(MSI) -S$< $(TEMPLATE_FILENAME) > $@
|
||||
$(MSI) -S$< $(TEMPLATE_FILENAME) > msi.tmp
|
||||
$(MV) msi.tmp $@
|
||||
|
||||
# dbst based database optimization
|
||||
ifeq '$(DB_OPT)' 'YES'
|
||||
@@ -249,6 +266,10 @@ $(INSTALL_DB)/%: %
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
endif
|
||||
|
||||
dbInstalls: $(DB_INSTALLS)
|
||||
@echo "Installing $(^F)"
|
||||
@$(INSTALL) -d -m 555 $^ $(INSTALL_DB)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.edf
|
||||
.PRECIOUS: $(COMMON_DBS)
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ install: buildInstall
|
||||
|
||||
buildInstall: $(TARGETS)
|
||||
|
||||
cdCommands: $(wildcard $(TOP)/configure/RELEASE*) $(TOP)/configure/CONFIG
|
||||
cdCommands: $(wildcard $(TOP)/configure/RELEASE*) \
|
||||
$(TOP)/configure/CONFIG $(TOP)/bin
|
||||
@$(RM) $@
|
||||
ifeq ($(IOCS_APPL_TOP),)
|
||||
$(PERL) $(TOOLS)/convertRelease.pl -a $(ARCH) $@
|
||||
|
||||
@@ -11,31 +11,8 @@
|
||||
#
|
||||
# Rules for making things specified in Makefile
|
||||
#
|
||||
# Some rules for filename-massage are system specific
|
||||
# and have "ifdefs" here instead of using definitions
|
||||
# from CONFIG.Target.<arch> - 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.$(OS_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...
|
||||
|
||||
ifndef BASE_RULES_BUILD
|
||||
BASE_RULES_BUILD=1
|
||||
@@ -175,18 +152,6 @@ $(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) -p $@
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#---------------------------------------------------------------
|
||||
# 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 .cpp
|
||||
# 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 !!!!
|
||||
|
||||
@@ -295,11 +260,11 @@ ifneq ($(strip $(RANLIB)),)
|
||||
$(RANLIB) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(DLL_LINK_LIBNAME):$(LIB_PREFIX)%.lib: $(LIBRARY_OBJS) $(LIBRARY_RESS)
|
||||
$(DLL_LINK_LIBNAME):$(LIB_PREFIX)%.lib: $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
|
||||
$(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS)
|
||||
$(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
|
||||
|
||||
@@ -28,12 +28,6 @@ vpath %.java ..
|
||||
CLASSPATH=-classpath $(INSTALL_JAVA)$(addprefix :,$(USR_CLASSPATH))
|
||||
SOURCEPATH=-sourcepath .:..:../..
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Java install directory
|
||||
|
||||
INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
|
||||
JAVA_DIRECTORY_TARGETS += $(INSTALL_JAVA)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Java native method C header files
|
||||
|
||||
@@ -87,7 +81,7 @@ buildInstall : build
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
inc: $(JAVA_DIRECTORY_TARGETS) $(INSTALL_CLASSES) $(COMMON_JAVAINC)
|
||||
inc: $(INSTALL_CLASSES) $(COMMON_JAVAINC)
|
||||
|
||||
build: inc
|
||||
|
||||
@@ -101,7 +95,7 @@ clean::
|
||||
@$(RM) $(INSTALL_JAR) $(INSTALL_JAVADOC)
|
||||
@$(RM) $(COMMON_TESTCLASSES) $(COMMON_JAR) $(COMMON_JAVAINC)
|
||||
|
||||
$(JAVA_DIRECTORY_TARGETS):
|
||||
$(INSTALL_JAVA):
|
||||
$(MKDIR) -p $@
|
||||
|
||||
$(COMMON_JAVAINC):$(JAVAINC_CLASSFILES)
|
||||
@@ -114,12 +108,12 @@ $(COMMON_TESTCLASSES): $(addprefix ../,$(DEPTESTJAVA))
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(COMMON_DIR) $^
|
||||
|
||||
$(INSTALL_CLASSES): $(addprefix ../,$(DEPJAVA))
|
||||
$(INSTALL_CLASSES): $(INSTALL_JAVA) $(addprefix ../,$(DEPJAVA))
|
||||
@echo Creating java class files
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(INSTALL_JAVA) $^
|
||||
|
||||
$(INSTALL_JAVADOC): $(addprefix ../,$(DEPJAVA))
|
||||
$(INSTALL_JAVADOC): $(INSTALL_JAVA) $(addprefix ../,$(DEPJAVA))
|
||||
@echo Creating java class files
|
||||
@$(RM) $@
|
||||
$(JAVADOCCMD) -d $(INSTALL_JAVA) $^
|
||||
@@ -129,7 +123,7 @@ $(COMMON_DIR)/%.jar: $(JARDEPFILES)
|
||||
@$(RM) $@
|
||||
$(JARCMD)
|
||||
|
||||
$(INSTALL_JAVA)/%.jar: $(COMMON_DIR)/%.jar
|
||||
$(INSTALL_JAVA)/%.jar: $(INSTALL_JAVA) $(COMMON_DIR)/%.jar
|
||||
@echo "Installing java jar file $@"
|
||||
@$(INSTALL) -d -m 644 $< $(@D)
|
||||
|
||||
|
||||
@@ -52,14 +52,12 @@ a_file_CPPFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
#
|
||||
# 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
|
||||
# '../$(OS_CLASS)'
|
||||
# is preferred.
|
||||
# sources are extracted from the
|
||||
# ../os/$(OS_CLASS) directory if it exists, or
|
||||
# ../os/default directory if it exists, or
|
||||
# .. directory
|
||||
# ---------------------------------------------------------
|
||||
|
||||
|
||||
# includes to install from this Makefile
|
||||
#
|
||||
# again: if INC_$(OS_CLASS) is defined, it is added to INC,
|
||||
@@ -101,10 +99,11 @@ libname_SRCS_DEFAULT = posix.c
|
||||
libname_SRCS_WIN32 = win32_special.c
|
||||
libname_SRCS_Linux = -nil-
|
||||
#
|
||||
LIBSRCS = file_for_lib.c another_file.cpp
|
||||
LIBSRCS_DEFAULT = posix.c
|
||||
LIBSRCS_WIN32 = win32_special.c
|
||||
LIBSRCS_Linux = -nil-
|
||||
# SRCS that are used for all libraries
|
||||
LIB_SRCS = file_for_lib.c another_file.cpp
|
||||
LIB_SRCS_DEFAULT = posix.c
|
||||
LIB_SRCS_WIN32 = win32_special.c
|
||||
LIB_SRCS_Linux = -nil-
|
||||
|
||||
# Library to build:
|
||||
# lib$(LIBRARY).a or ..dll/..exp/..lib
|
||||
@@ -113,13 +112,9 @@ LIBRARY=libname
|
||||
#
|
||||
# Host or Ioc platform specific library to build:
|
||||
#
|
||||
LIBRARY_IOC=libname
|
||||
LIBRARY_HOST=libname
|
||||
LIBRARY_IOC=libnameIoc
|
||||
LIBRARY_HOST=libnameHost
|
||||
|
||||
# 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
|
||||
@@ -132,10 +127,15 @@ SHRLIB_VERSION =
|
||||
# if SRCS is undefined, it defaults to $(PROD).c
|
||||
SRCS=a.c b.c c.c
|
||||
|
||||
# SRCS that are used for all PRODs
|
||||
#
|
||||
PROD_SRCS = ppp.c qqq.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
|
||||
@@ -143,33 +143,41 @@ a_file_SRCS = aa.c bb.c
|
||||
# below minus the name of the sharable library (LIBRARY)
|
||||
#
|
||||
#
|
||||
# for all systems:
|
||||
# ---------- libraries for a specific product pppp
|
||||
# for all systems
|
||||
pppp_LIBS = Com Ca
|
||||
# for most systems:
|
||||
pppp_LIBS_DEFAULT = mathlib
|
||||
pppp_LIBS_WIN32 = -nil-
|
||||
|
||||
# ---------- libraries for all products
|
||||
# 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:
|
||||
# ---------- Libraries for all products and all libraries:
|
||||
# for all systems
|
||||
USR_LIBS = Xm Xt X11
|
||||
Xm_DIR = $(MOTIF_LIB)
|
||||
Xt_DIR = $(X11_LIB)
|
||||
X11_DIR = $(X11_LIB)
|
||||
|
||||
# for most systems:
|
||||
# for most systems
|
||||
USR_LIBS_DEFAULT = foolib
|
||||
USR_LIBS_WIN32 = -nil-
|
||||
foolib_DIR = $(FOO_LIB)
|
||||
|
||||
# system libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# ---------- system libraries for all products
|
||||
# for all systems:
|
||||
PROD_SYS_LIBS = m
|
||||
# for most systems:
|
||||
PROD_SYS_LIBS_DEFAULT = foolib
|
||||
PROD_SYS_LIBS_WIN32 = -nil-
|
||||
|
||||
# Product,
|
||||
# may be caRepeater.o -> caRepeater
|
||||
# or caRepeater.obj -> caRepeater.exe
|
||||
@@ -179,6 +187,9 @@ PROD_WIN32 = product_only_for_WIN32
|
||||
PROD_Linux = product_only_for_Linux
|
||||
PROD_solaris = product_only_for_solaris
|
||||
|
||||
PROD_HOST = product_only_for_host_type_systems
|
||||
PROD_IOC = product_only_for_ioc_type_systems
|
||||
|
||||
# Product version
|
||||
PROD_VERSION =
|
||||
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
|
||||
|
||||
@@ -34,8 +34,6 @@ CCC = $(RTEMS_BASE)/bin/$(CXX)
|
||||
CPP = $(RTEMS_BASE)/bin/$(CC_FOR_TARGET) -x c -E
|
||||
AR = $(RTEMS_BASE)/bin/$(AR_FOR_TARGET)
|
||||
LD = $(RTEMS_BASE)/bin/$(LD_FOR_TARGET) -r
|
||||
RTEMS_LDFLAGS := $(STATIC_LDFLAGS) $(LDFLAGS)
|
||||
LINK.cpp = $(CCC) -o $@ $(RTEMS_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
|
||||
|
||||
RANLIB := $(RTEMS_BASE)/bin/$(RANLIB)
|
||||
|
||||
@@ -48,22 +46,23 @@ VALID_BUILDS = Ioc
|
||||
# through the following contortions to get the EPICS flags back.
|
||||
CFLAGS = $(CONFORM_CFLAGS) $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
$(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS)
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS)\
|
||||
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS)\
|
||||
$(CROSS_CXXFLAGS)
|
||||
$(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(PROD_LDFLAGS)\
|
||||
$(ARCH_DEP_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \
|
||||
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)\
|
||||
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(PROD_LDLIBS) $(STATIC_LDLIBS)\
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
LDLIBS = $(STATIC_LDLIBS)\
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
|
||||
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS) $(BASE_CPPFLAGS)\
|
||||
$(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
$(OP_SYS_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
CPPFLAGS += $(CONFORM_CPPFLAGS) $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Although RTEMS uses gcc, it wants to use gcc its own way
|
||||
@@ -92,7 +91,7 @@ CODE_CFLAGS =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# RTEMS uses the inline keyword, so get rid of pedantic warnings
|
||||
# RTEMS uses the inline keyword so -pedantic causes too many problems.
|
||||
CONFORM_CFLAGS_STRICT = -ansi
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi
|
||||
|
||||
|
||||
@@ -34,37 +34,56 @@ SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(SHRLIB_SUFFIX))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# shrlib: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
SHRLIB_DEPLIBS = $(foreach lib,$(SHRLIB_LIBS),$(firstword $(wildcard \
|
||||
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
|
||||
|
||||
SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS_$(strip $(SHARED_LIBRARIES)))
|
||||
SHRLIB_LDLIBS = $($*_LDLIBS:%=-l%) $(SHRLIB_LIBS:%=-l%) \
|
||||
$($*_SYS_LIBS:%=-l%) $(SYS_SHRLIB_LIBS:%=-l%)
|
||||
LIB_EXT = $(LIB_SUFFIX)
|
||||
|
||||
# SHRLIB_LIBS deprecated
|
||||
LIB_LIBS += $(SHRLIB_LIBS)
|
||||
|
||||
SHRLIB_DEPLIBS=$(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS) \
|
||||
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) $(LDLIBS)
|
||||
|
||||
SHRLIB_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(SHRLIB_DEPLIBS))
|
||||
SHRLIB_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
|
||||
SHRLIBDIR_LDFLAGS += $(sort $(SHRLIB_DEPLIB_DIRS:%=-L%))
|
||||
|
||||
#--------------------------------------------------
|
||||
#-------------------------------------------------------
|
||||
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
|
||||
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
|
||||
|
||||
PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
|
||||
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
|
||||
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
PROD_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
|
||||
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
|
||||
PROD_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
|
||||
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
|
||||
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
|
||||
LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS)
|
||||
LINK.shrlib += $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system definitions
|
||||
OP_SYS_CPPFLAGS += -DUNIX
|
||||
OP_SYS_LDLIBS += -lm
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
|
||||
LINK.shrlib = $(CCC) -o $@ $(SHRLIB_LDFLAGS) $(LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.UnixCommon
|
||||
|
||||
@@ -10,12 +10,15 @@
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
#
|
||||
# Set OS-specific information
|
||||
#
|
||||
OS_CLASS = Darwin
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
#
|
||||
# Special flags for Darwin
|
||||
# No common blocks (as required when going to shared libraries)
|
||||
# No common blocks (as required when using shared libraries)
|
||||
#
|
||||
OP_SYS_CFLAGS += -fno-common
|
||||
|
||||
@@ -25,23 +28,30 @@ OP_SYS_CFLAGS += -fno-common
|
||||
CPPSNCFLAGS += -no-cpp-precomp
|
||||
|
||||
#
|
||||
# Need to get some fink-installed packages
|
||||
# The following two definitions enable the use of DarwinPorts packages.
|
||||
#
|
||||
OP_SYS_CPPFLAGS += -I$(FINK_DIR)/include
|
||||
OP_SYS_LDFLAGS += -L$(FINK_DIR)/lib
|
||||
OP_SYS_LDLIBS +=
|
||||
OP_SYS_CPPFLAGS += -I/opt/local/include
|
||||
OP_SYS_LDFLAGS += -L/opt/local/lib
|
||||
|
||||
#
|
||||
# Stuff that will be needed when going to shared libraries
|
||||
# The following two definitions enable the use of Fink packages.
|
||||
#
|
||||
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
|
||||
-install_name $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)/$@ \
|
||||
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
|
||||
-current_version $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
SHRLIB_SUFFIX = $(addprefix .,$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)).dylib
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
OP_SYS_CPPFLAGS += -I/sw/include
|
||||
OP_SYS_LDFLAGS += -L/sw/lib
|
||||
|
||||
# Command-line input support
|
||||
COMMANDLINE_LIBRARY=LIBTECLA
|
||||
#
|
||||
# Libraries for command-line editing.
|
||||
#
|
||||
LDLIBS_LIBTECLA = -ltecla_r -lncurses
|
||||
LDLIBS_READLINE = -lreadline
|
||||
|
||||
#
|
||||
# Command-line input support
|
||||
#
|
||||
# Install the DarwinPorts or Fink libtecla1 package and place the following
|
||||
# line in CONFIG_SITE.darwin-ppc.Common to use libtecla command-line editing:
|
||||
#COMMANDLINE_LIBRARY=LIBTECLA
|
||||
# or install the DarwinPorts or Fink readline package and place the following
|
||||
# line in CONFIG_SITE.darwin-ppc.Common to use GNU readline
|
||||
# command-line editing:
|
||||
#COMMANDLINE_LIBRARY=READLINE
|
||||
|
||||
@@ -13,21 +13,23 @@ include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
OS_CLASS = hpux
|
||||
ARCH_CLASS = parisc
|
||||
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
|
||||
POSIX_CPPFLAGS_NO =
|
||||
POSIX_LDLIBS_NO +=
|
||||
# When compiling with gcc, static builds need two more libraries (*sigh*)
|
||||
POSIX_LDLIBS_GNU_YES_STATIC_YES += -lpthread -l:libdld.sl
|
||||
POSIX_LDLIBS_YES = $(POSIX_LDLIBS_GNU_$(GNU)_STATIC_$(STATIC_BUILD))
|
||||
# Posix stuff is not set here as "-mt" (in CONFIG.hpux-parisc.hpux-parisc)
|
||||
# does all defines and linker options to make posix threads work
|
||||
|
||||
OP_SYS_CPPFLAGS = -D_HPUX_SOURCE -DHP_UX
|
||||
OP_SYS_CPPFLAGS = -DHP_UX
|
||||
OP_SYS_CFLAGS = -D_HPUX_SOURCE
|
||||
OP_SYS_CXXFLAGS =
|
||||
|
||||
SHARED_LIBRARIES=YES
|
||||
SHRLIB_SUFFIX = .sl$(addprefix .,$(SHRLIB_VERSION))
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
empty:= # trick from the make docs...
|
||||
space:= $(empty) $(empty)
|
||||
RUNTIME_LDFLAGS_YES = -Wl,+b$(subst $(space),:,$(sort $(SHRLIB_SEARCH_DIRS))),+s
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=parisc-hp-unix
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
|
||||
@@ -26,9 +26,14 @@ OP_SYS_LDLIBS = -lrt
|
||||
|
||||
#ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=ppc_82xx
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
|
||||
|
||||
@@ -18,21 +18,18 @@ CODE_CPPFLAGS = -D_REENTRANT
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
|
||||
POSIX_CPPFLAGS_NO =
|
||||
POSIX_LDLIBS_YES = -lpthread
|
||||
POSIX_LDLIBS_NO =
|
||||
|
||||
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
|
||||
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
|
||||
OP_SYS_CPPFLAGS += -Dlinux
|
||||
OP_SYS_LDFLAGS +=
|
||||
OP_SYS_LDLIBS += -lrt
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
ARCH_DEP_CFLAGS += -mcpu=pentium
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
PROD_LDFLAGS_YES += $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%/lib/$(T_A)))
|
||||
SHRLIB_LDFLAGS_YES += $(sort $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%/lib/$(T_A)))
|
||||
PROD_LDFLAGS += $(PROD_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=i586-pc-linux-gnu
|
||||
@@ -40,7 +37,3 @@ ifdef CROSS
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
#Allow R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_SHRLIB_LIBS += pthread rt
|
||||
|
||||
|
||||
|
||||
12
configure/os/CONFIG.Common.linux-x86-debug
Normal file
12
configure/os/CONFIG.Common.linux-x86-debug
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.Common.linux-x86-debug
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-x86 with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-x86-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-x86 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
@@ -21,7 +21,6 @@ POSIX_CPPFLAGS_NO =
|
||||
POSIX_LDLIBS_NO +=
|
||||
|
||||
OP_SYS_CPPFLAGS = -D_OSF_SOURCE
|
||||
OP_SYS_LDLIBS +=
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=alpha-osf
|
||||
|
||||
@@ -19,22 +19,17 @@ SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
|
||||
# Flags for solaris 6
|
||||
POSIX_CPPFLAGS_YES_6 += -D_REENTRANT
|
||||
POSIX_LDLIBS_YES_6 += -lthread
|
||||
|
||||
POSIX_CPPFLAGS_YES += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_YES_$(SOLARIS_VERSION))
|
||||
POSIX_CPPFLAGS_YES += -D_XOPEN_SOURCE=500
|
||||
POSIX_LDLIBS_YES_6 += -lthread
|
||||
POSIX_LDLIBS_YES += -lposix4 -lpthread $(POSIX_LDLIBS_YES_$(SOLARIS_VERSION))
|
||||
|
||||
POSIX_CPPFLAGS_NO +=
|
||||
POSIX_LDLIBS_NO +=
|
||||
|
||||
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
# socket and nsl needed by libca.a
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
|
||||
# -R does not work unless full path names are specified
|
||||
# use loader's -R option
|
||||
PROD_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%))
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=sparc-sun-solaris2
|
||||
@@ -42,9 +37,16 @@ ifdef CROSS
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
# Lib for solaris 8
|
||||
SYS_SHRLIB_LIBS_8 += Crun
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
OP_SYS_LDLIBS_8 += -lCrun -lc -lCstd
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
|
||||
|
||||
#Allow R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_SHRLIB_LIBS += posix4 pthread $(SYS_SHRLIB_LIBS_$(SOLARIS_VERSION))
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
GNU_DIR = /opt/gnu
|
||||
INCLUDES_READLINE = -I$(GNU_DIR)/include
|
||||
LDFLAGS_READLINE += -R$(GNU_DIR)/lib
|
||||
LDFLAGS_READLINE += -L$(GNU_DIR)/lib
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
# Use archive if there is a problem with the readline shared library
|
||||
#LDLIBS_READLINE = -Bstatic -lreadline -Bdynamic -lcurses
|
||||
|
||||
|
||||
12
configure/os/CONFIG.Common.solaris-sparc-debug
Normal file
12
configure/os/CONFIG.Common.solaris-sparc-debug
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.Common.solaris-sparc-debug
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-sparc with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
@@ -9,4 +9,7 @@
|
||||
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
# CONFIG.Common.solaris-sparc
|
||||
|
||||
OP_SYS_LDLIBS_8 = -lc
|
||||
|
||||
|
||||
@@ -19,23 +19,18 @@ SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
|
||||
# Flags for solaris 6
|
||||
POSIX_CPPFLAGS_YES_6 += -D_REENTRANT
|
||||
POSIX_LDLIBS_YES_6 += -lthread
|
||||
|
||||
POSIX_CPPFLAGS_YES += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_YES_$(SOLARIS_VERSION))
|
||||
POSIX_CPPFLAGS_YES += -D_XOPEN_SOURCE=500
|
||||
POSIX_LDLIBS_YES_6 += -lthread
|
||||
POSIX_LDLIBS_YES += -lposix4 -lpthread $(POSIX_LDLIBS_YES_$(SOLARIS_VERSION))
|
||||
|
||||
POSIX_CPPFLAGS_NO +=
|
||||
POSIX_LDLIBS_NO +=
|
||||
|
||||
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION)
|
||||
ARCH_DEP_CPPFLAGS = -D_X86_
|
||||
# socket and nsl needed by libca.a
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
|
||||
# -R does not work unless full path names are specified
|
||||
# use loader's -R option
|
||||
#PROD_LDFLAGS += $(sort $(DEPLIB_DIRS:%=-R%))
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=x86-sun-solaris2
|
||||
@@ -43,9 +38,6 @@ ifdef CROSS
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
# Lib for solaris 8
|
||||
SYS_SHRLIB_LIBS_8 += Crun
|
||||
|
||||
#Allow R3.13 built extensions to load R3.14 shared libs
|
||||
SYS_SHRLIB_LIBS += posix4 pthread $(SYS_SHRLIB_LIBS_$(SOLARIS_VERSION))
|
||||
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
OP_SYS_LDLIBS_8 += -lCrun -lc -lCstd
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
|
||||
|
||||
@@ -16,18 +16,22 @@ ARCH_CLASS = x86
|
||||
CODE_CPPFLAGS = -D__EXTENSIONS__
|
||||
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500
|
||||
POSIX_LDLIBS_YES += -lpthread -lthread
|
||||
POSIX_CPPFLAGS_NO =
|
||||
POSIX_LDLIBS_NO +=
|
||||
POSIX_LDLIBS_YES += -lpthread -lthread
|
||||
|
||||
OP_SYS_CPPFLAGS = -DSUNOS4
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
RUNTIME_LDFLAGS_YES = $(SHRLIB_SEARCH_DIRS:%=-R%)
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(SHARED_LIBRARIES))
|
||||
|
||||
ifdef CROSS
|
||||
GNU_TARGET=x86-sun-sunos4
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ EXE =
|
||||
OBJ = .o
|
||||
LIB_PREFIX =lib
|
||||
LIB_SUFFIX = .a
|
||||
LIB_EXT = .a
|
||||
MUNCH_SUFFIX = .munch
|
||||
|
||||
#-------------------------------------------------------
|
||||
@@ -29,14 +30,19 @@ LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword $(wildcard \
|
||||
$($(lib)_DIR)/$(LIB_PREFIX)$(lib).*)))
|
||||
|
||||
PROD_LDLIBS = $($*_LDLIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
|
||||
$($*_SYS_LIBS:%=-l%) $(SYS_PROD_LIBS:%=-l%)
|
||||
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
|
||||
PROD_LDLIBS = $(addprefix -l,$($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
|
||||
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
|
||||
|
||||
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
|
||||
PROD_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
|
||||
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prod definitions
|
||||
@@ -47,10 +53,11 @@ NMS = $(PRODNAME:%$(EXE)=%.nm)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# R3.13 compatability object library definitions
|
||||
# Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS.
|
||||
OBJLIB += $(OBJLIB_$(OS_CLASS))
|
||||
OBJLIB_SUFFIX = Library.o
|
||||
OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB)))
|
||||
OBJLIB_LD_OBJS = $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
|
||||
OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
|
||||
PRODTARGETS += $(OBJLIBNAME)
|
||||
INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%)
|
||||
OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX))
|
||||
@@ -60,7 +67,6 @@ CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c)
|
||||
CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ))
|
||||
NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
|
||||
OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
|
||||
TARGET_SRCS += $(foreach name, $(OBJLIB), $($(name)_SRCS))
|
||||
SRC_FILES += $(OBJLIB_SRCS)
|
||||
|
||||
#--------------------------------------------------
|
||||
@@ -90,7 +96,6 @@ OP_SYS_CPPFLAGS += -DvxWorks
|
||||
OP_SYS_CFLAGS += -fno-builtin
|
||||
#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers
|
||||
OP_SYS_LDFLAGS +=
|
||||
OP_SYS_LDLIBS +=
|
||||
|
||||
# Fix for vxWorks headers using macros defined in
|
||||
# vxWorks.h but not including vxWorks.h
|
||||
@@ -111,13 +116,19 @@ CODE_CXXFLAGS = -fno-implicit-templates
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE
|
||||
POSIX_CPPFLAGS_NO =
|
||||
|
||||
#--------------------------------------------------
|
||||
# no shared libs for vxWorks
|
||||
SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# osithead use default stack, YES or NO override
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
|
||||
LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
|
||||
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Definitions for compile of *_ctdt.c file
|
||||
|
||||
@@ -15,15 +15,11 @@ ARCH_CLASS = x86
|
||||
|
||||
EXE=.exe
|
||||
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE=199506L -D_POSIX_THREADS -D_POSIX_TIMERS
|
||||
POSIX_CPPFLAGS_NO =
|
||||
#POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE=199506L -D_POSIX_THREADS -D_POSIX_TIMERS
|
||||
# _POSIX_SOURCE eliminates select()
|
||||
POSIX_CPPFLAGS_YES = -D_POSIX_THREADS -D_POSIX_TIMERS
|
||||
#POSIX_LDLIBS_YES += -lpthread
|
||||
POSIX_LDLIBS_NO =
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
OP_SYS_CPPFLAGS += -DCYGWIN32 -U_WIN32
|
||||
OP_SYS_LDFLAGS +=
|
||||
OP_SYS_LDLIBS +=
|
||||
####OP_SYS_LDLIBS += -lrt
|
||||
|
||||
|
||||
@@ -14,12 +14,5 @@ RM = rm -f
|
||||
MKDIR = mkdir
|
||||
RMDIR = rm -rf
|
||||
|
||||
# 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 := $(INSTALL_HOST_LIB):$(LD_LIBRARY_PATH)
|
||||
endif
|
||||
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.UnixCommon.Common
|
||||
|
||||
@@ -14,6 +14,16 @@ GNU_DIR = /usr
|
||||
CC = $(GNU_BIN)/cc
|
||||
CCC = $(GNU_BIN)/c++
|
||||
|
||||
#
|
||||
# Darwin shared libraries
|
||||
#
|
||||
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
|
||||
-install_name $(firstword $(SHRLIB_SEARCH_DIRS))/$@ \
|
||||
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
|
||||
-current_version $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
SHRLIB_SUFFIX = $(addprefix .,$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)).dylib
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
|
||||
#
|
||||
# Position-independent code is the default on Darwin.
|
||||
#
|
||||
@@ -21,14 +31,14 @@ CODE_CFLAGS =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
#
|
||||
# -O3 is too agressive on Darwin with the April 2002 Developer Tools
|
||||
# and causes problems with undefined references to non-virtual thunks
|
||||
# with the August 2002 Developer Tools.
|
||||
# Add support for Objective-C source
|
||||
#
|
||||
OPT_CFLAGS_YES = -O2
|
||||
OPT_CXXFLAGS_YES = -O2
|
||||
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
%.o: %.m
|
||||
$(COMPILE.c) -c $<
|
||||
|
||||
#
|
||||
# Static linking fails on OS X (missing crt0.o)
|
||||
# Pedantic produces way too many unnecessary messages
|
||||
#
|
||||
STATIC_LDFLAGS_YES =
|
||||
CONFORM_CFLAGS_STRICT=-ansi
|
||||
CONFORM_CXXFLAGS_STRICT=-ansi
|
||||
|
||||
@@ -10,12 +10,20 @@
|
||||
# Include common gnu compiler definitions
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
#GNU_DIR = /opt/gnu
|
||||
|
||||
CC = $(GNU_BIN)/gcc
|
||||
CCC = $(GNU_BIN)/g++
|
||||
AR = ar -rc
|
||||
RANLIB=
|
||||
LD = ld -r
|
||||
|
||||
SHRLIB_LDFLAGS_YES += -fPIC
|
||||
# Always keep libc shared to force using the one supplied with the
|
||||
# target machine (HP system and libc must match - important e.g. for
|
||||
# multi-CPU-systems)
|
||||
STATIC_LDFLAGS_YES = -static -l:libc.sl
|
||||
|
||||
# Switch explicitly from default DCE threads to posix threads
|
||||
POSIX_CPPFLAGS_YES += -D_REENTRANT -D_PTHREADS -D_POSIX_C_SOURCE=199506L
|
||||
USR_SYS_LIBS += pthread
|
||||
|
||||
# C++ templates need PIC definition also in link phase
|
||||
SHRLIB_LDFLAGS += -shared -fPIC
|
||||
|
||||
@@ -11,4 +11,3 @@
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = parisc-hpux10
|
||||
|
||||
|
||||
@@ -18,9 +18,8 @@ LD = ld -r
|
||||
CONFORM_CFLAGS_ANSI = -Aa
|
||||
CONFORM_CFLAGS_STRICT = -Aa
|
||||
CONFORM_CFLAGS_TRAD = -Ac
|
||||
######################################################
|
||||
# +DAportable causes portable object code to be created for execution
|
||||
# on different PA-Risc machines
|
||||
|
||||
# Portability across different PA-RISC architecture versions
|
||||
CODE_CFLAGS = +DAportable +z
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
@@ -29,28 +28,30 @@ OPT_CFLAGS_NO = -g
|
||||
|
||||
CXXCMPLR=STRICT
|
||||
|
||||
# Selective filter for getting rid of bogus compiler warnings
|
||||
COMPILE_FILTER.cpp = 2>&1 | $(EPICS_BASE)/configure/tools/filterWarnings.pl
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CONFORM_CXXFLAGS_NORMAL = -AA -mt -Aa
|
||||
#CONFORM_CXXFLAGS_STRICT = +p
|
||||
CONFORM_CXXFLAGS_STRICT = -AA -mt -Aa
|
||||
CONFORM_CXXFLAGS_NORMAL = -AA -Aa -mt
|
||||
CONFORM_CXXFLAGS_STRICT = -AA -Aa -mt
|
||||
#CONFORM_CXXFLAGS_STRICT += +p
|
||||
|
||||
######################################################
|
||||
# +DAportable causes portable object code to be created for execution
|
||||
# on different PA-Risc machines
|
||||
# Portability across different PA-RISC architecture versions
|
||||
CODE_CXXFLAGS = +DAportable +z
|
||||
WARN_CXXFLAGS_YES = +w
|
||||
WARN_CXXFLAGS_NO =
|
||||
OPT_CXXFLAGS_YES = +O3
|
||||
OPT_CXXFLAGS_NO = -g
|
||||
|
||||
# Always keep libc shared to force using the one supplied with the
|
||||
# target machine (HP system and libc must match - important e.g. for
|
||||
# multi-CPU-systems)
|
||||
STATIC_LDFLAGS_YES= -Wl,-a,archive -l:libc.sl
|
||||
# shared libs will be found by searching environment variable SHLIB_PATH,
|
||||
# then by searching the specified path (see below)
|
||||
STATIC_LDFLAGS_NO = -Wl,+b$(DEFAULT_SHRLIB_SEARCH_PATH),+s
|
||||
STATIC_LDLIBS_YES=
|
||||
STATIC_LDLIBS_NO=
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
STATIC_LDLIBS_YES =
|
||||
STATIC_LDLIBS_NO =
|
||||
|
||||
TARGET_LDFLAGS += -AA -mt
|
||||
|
||||
SHRLIB_LDFLAGS_YES = -b
|
||||
SHRLIB_LDFLAGS = -b
|
||||
|
||||
12
configure/os/CONFIG.linux-x86-debug.Common
Normal file
12
configure/os/CONFIG.linux-x86-debug.Common
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.linux-x86-debug.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-x86 debug with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86-debug.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to linux-x86 hosts
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.Common
|
||||
|
||||
11
configure/os/CONFIG.linux-x86-debug.linux-x86-debug
Normal file
11
configure/os/CONFIG.linux-x86-debug.linux-x86-debug
Normal file
@@ -0,0 +1,11 @@
|
||||
# CONFIG.linux-x86-debug.linux-x86-debug
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-x86 target build with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86-debug.linux-x86-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -13,3 +13,5 @@ GNU_DIR = /usr
|
||||
|
||||
CC = $(GNU_BIN)/gcc
|
||||
CCC = $(GNU_BIN)/g++
|
||||
|
||||
SHRLIB_LDFLAGS += -shared -z defs
|
||||
|
||||
@@ -40,7 +40,7 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS_YES = -shared
|
||||
SHRLIB_LDFLAGS = -shared
|
||||
|
||||
############# ???????????
|
||||
#####ACC_SFLAGS_YES= -non_shared
|
||||
|
||||
12
configure/os/CONFIG.solaris-sparc-debug.Common
Normal file
12
configure/os/CONFIG.solaris-sparc-debug.Common
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.solaris-sparc-debug.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-sparc debug with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-sparc-debug.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to solaris-sparc hosts
|
||||
include $(CONFIG)/os/CONFIG.solaris-sparc.Common
|
||||
|
||||
11
configure/os/CONFIG.solaris-sparc-debug.solaris-sparc-debug
Normal file
11
configure/os/CONFIG.solaris-sparc-debug.solaris-sparc-debug
Normal file
@@ -0,0 +1,11 @@
|
||||
# CONFIG.solaris-sparc-debug.solaris-sparc-debug
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-sparc host - solaris-sparc target build with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-sparc-debug.solaris-sparc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
|
||||
|
||||
@@ -23,5 +23,6 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
#SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
SHRLIB_LDFLAGS = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
SHRLIB_LDFLAGS += -z defs
|
||||
|
||||
|
||||
@@ -19,14 +19,16 @@ RANLIB =
|
||||
|
||||
#Prepare the object code for profiling with prof. (YES or NO)
|
||||
PROFILE=NO
|
||||
#Prepare the object code for profiling with gprof. (YES or NO)
|
||||
GPROF=NO
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
CONFORM_CFLAGS_ANSI = -Xa -v
|
||||
CONFORM_CFLAGS_STRICT = -Xc -v
|
||||
CONFORM_CFLAGS_TRAD = -Xs
|
||||
PROF_CFLAGS_YES = -p
|
||||
PROF_CFLAGS_NO =
|
||||
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE))
|
||||
GPROF_CFLAGS_YES = -xpg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -xO4
|
||||
@@ -36,18 +38,23 @@ OPT_CFLAGS_NO = -g
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
PROF_CXXFLAGS_NO =
|
||||
CODE_CXXFLAGS = -KPIC $(PROF_CXXFLAGS_$(PROFILE))
|
||||
GPROF_CXXFLAGS_YES = -xpg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
WARN_CXXFLAGS_YES = +w
|
||||
WARN_CXXFLAGS_NO =
|
||||
OPT_CXXFLAGS_YES = -O
|
||||
OPT_CXXFLAGS_NO = -g
|
||||
|
||||
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
|
||||
STATIC_LDFLAGS_YES= -Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
SHRLIB_CFLAGS += -KPIC
|
||||
SHRLIB_LDFLAGS += -G -h $@
|
||||
SHRLIB_LDFLAGS += -z defs
|
||||
|
||||
OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
|
||||
|
||||
|
||||
@@ -17,3 +17,9 @@ CCC = $(GNU_BIN)/g++
|
||||
AR = ar -rc
|
||||
RANLIB=
|
||||
LD = ld -r
|
||||
|
||||
SHRLIB_LDFLAGS = -G -h $@
|
||||
SHRLIB_LDFLAGS += -z defs
|
||||
|
||||
OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@ CONFORM_CFLAGS_ANSI = -Xa -v
|
||||
CONFORM_CFLAGS_STRICT = -Xc -v
|
||||
CONFORM_CFLAGS_TRAD = -Xs
|
||||
PROF_CFLAGS_YES = -p
|
||||
PROF_CFLAGS_NO =
|
||||
CODE_CFLAGS = -KPIC $(PROF_CFLAGS_$(PROFILE))
|
||||
GPROF_CFLAGS_YES = -xpg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -xO4
|
||||
@@ -39,8 +39,8 @@ OPT_CFLAGS_NO = -g
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
PROF_CXXFLAGS_NO =
|
||||
CODE_CXXFLAGS = -KPIC $(PROF_CXXFLAGS_$(PROFILE))
|
||||
GPROF_CXXFLAGS_YES = -xpg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
WARN_CXXFLAGS_YES = +w
|
||||
WARN_CXXFLAGS_NO =
|
||||
OPT_CXXFLAGS_YES = -O
|
||||
@@ -51,5 +51,9 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS_YES = -G -h $@ -z ignore -z combreloc -z lazyload
|
||||
SHRLIB_CFLAGS += -KPIC
|
||||
SHRLIB_LDFLAGS = -G -h $@
|
||||
SHRLIB_LDFLAGS += -z defs
|
||||
|
||||
OP_SYS_LDFLAGS = -z ignore -z combreloc -z lazyload
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
|
||||
SHRLIB_LDFLAGS = -assert pure-text -h $@
|
||||
|
||||
|
||||
@@ -136,8 +136,7 @@ OPT_CXXFLAGS_NO =
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
STATIC_LDLIBS_YES=
|
||||
STATIC_LDLIBS_NO=
|
||||
LDLIBS = ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
|
||||
|
||||
# -c case sensitive linking
|
||||
# -C clear state before linking
|
||||
@@ -148,7 +147,7 @@ STATIC_LDLIBS_NO=
|
||||
# -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))
|
||||
WIN32_DLLFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT)) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
|
||||
OPT_LDFLAGS =
|
||||
|
||||
ARCH_DEP_CFLAGS=
|
||||
@@ -181,7 +180,6 @@ OP_SYS_CFLAGS =
|
||||
#
|
||||
OP_SYS_INCLUDES = -I$(BORLAND_INC)
|
||||
#
|
||||
OP_SYS_LDLIBS =
|
||||
|
||||
#
|
||||
# specify dll .def file only if it exists
|
||||
@@ -228,26 +226,55 @@ INSTALL_SHRLIB = $(INSTALL_BIN)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Object lib name suffix
|
||||
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))
|
||||
LIB_EXT_YES = Obj.lib # object library extension for static build
|
||||
LIB_EXT_NO = .lib # library extension for dynamic build
|
||||
LIB_EXT = $(LIB_EXT_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Products dependancy definitions
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
|
||||
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
|
||||
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
|
||||
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
|
||||
|
||||
# SYS_PROD_LIBS deprecated
|
||||
# Use PROD_SYS_LIBS
|
||||
|
||||
PROD_DEPLIBS=$(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
PROD_LDLIBS += $($*_DEPLIBS) $(PROD_DEPLIBS)
|
||||
PROD_LDLIBS += $(addsuffix .lib, \
|
||||
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS) )
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
#--------------------------------------------------
|
||||
#Libraries dependancy definitions
|
||||
|
||||
# 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) $(DLL_LIBS),$($(lib)_DIR)/$(lib).lib)
|
||||
# <name>_DLL_LIBS <name>_SYS_DLL_LIBS deprecated.
|
||||
# Use <name>_LIBS and <name>_SYS_LIBS.
|
||||
# DLL_LIBS, and SYS_DLL_LIBS deprecated
|
||||
# Use LIB_LIBS and LIB_SYS_LIBS
|
||||
LIB_LIBS += $(DLL_LIBS)
|
||||
LIB_SYS_LIBS += $(SYS_DLL_LIBS)
|
||||
|
||||
# libs that we need to link the DLL with
|
||||
# (it isnt necessary to rebuild the dll if these change)
|
||||
|
||||
SHRLIB_DEPLIBS += $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
SHRLIB_LDLIBS += $($*_DLL_DEPLIBS) $($*_DEPLIBS) $(SHRLIB_DEPLIBS)
|
||||
SHRLIB_LDLIBS += $(addsuffix .lib, \
|
||||
$($*_SYS_DLL_LIBS) \
|
||||
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS) )
|
||||
|
||||
SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \
|
||||
$(SYS_DLL_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
@@ -263,14 +290,11 @@ LDFLAGS += -c -C -Gn -Tpe -x -w -L$(BORLAND_LIB) -L$(BORLAND_LIB)\\Psdk
|
||||
LINKSTARTUP = c0x32.obj
|
||||
LINKLIBS=import32.lib cw32$(LIBSUF).lib
|
||||
|
||||
LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(LDFLAGS) $(LINKSTARTUP) $(subst /,\\,$(PROD_LD_OBJS))
|
||||
LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(LDLIBS))
|
||||
LINK.cpp = $(WINLINK) $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) $(LINKSTARTUP) $(subst /,\\,$(PROD_LD_OBJS))
|
||||
LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(PROD_LDLIBS))
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
# override of CONFIG_SITE default
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
# override of CONFIG_COMMON
|
||||
HDEPENDS_INCLUDES_MKMF = $(filter-out $(BORLAND_INC),$(subst -I,,$(INCLUDES)))
|
||||
|
||||
|
||||
@@ -19,6 +19,13 @@ AR = ar -rc
|
||||
LD = ld -r
|
||||
RANLIB = ranlib
|
||||
|
||||
CODE_CFLAGS =
|
||||
CODE_CXXFLAGS =
|
||||
# Avoid position-independent code is always generated message
|
||||
SHRLIB_CFLAGS =
|
||||
|
||||
# -ansi eliminates strdup
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT = -pedantic
|
||||
CONFORM_CXXFLAGS_ANSI =
|
||||
CONFORM_CXXFLAGS_STRICT = -pedantic
|
||||
|
||||
|
||||
|
||||
12
configure/os/CONFIG.win32-x86-debug.Common
Normal file
12
configure/os/CONFIG.win32-x86-debug.Common
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.win32-x86-debug.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for win32-x86 debug with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.win32-x86-debug.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to win32-x86 hosts
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.Common
|
||||
|
||||
11
configure/os/CONFIG.win32-x86-debug.win32-x86-debug
Normal file
11
configure/os/CONFIG.win32-x86-debug.win32-x86-debug
Normal file
@@ -0,0 +1,11 @@
|
||||
# CONFIG.solaris-x86-debug.solaris-x86-debug
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-x86 debug compiler host - solaris-x86 debug compiler target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-x86-debug.solaris-x86-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
|
||||
@@ -19,7 +19,6 @@ PATH_FILTER = $(subst /,\\,$(1))
|
||||
#
|
||||
# "\ " forces gnu make to keep this as one token
|
||||
#
|
||||
MSVISC = c:\\Program\ Files\\DevStudio\\Vc
|
||||
WINLINK = link
|
||||
|
||||
RCCMD = rc -l 0x409 $(INCLUDES) -fo $@ $<
|
||||
@@ -30,7 +29,7 @@ BAFCMD = bscmake /nologo /o $@
|
||||
|
||||
#
|
||||
# Configure OS vendor C compiler
|
||||
CC = cl
|
||||
CC = cl
|
||||
|
||||
#
|
||||
# __STDC__=0 is a real great idea of Jeff that gives us both:
|
||||
@@ -47,13 +46,15 @@ CONFORM_CFLAGS_TRAD = /nologo
|
||||
#
|
||||
# /W<N> use warning level N
|
||||
# (maximum (lint type) warnings at level 4)
|
||||
WARN_CFLAGS_YES = /W3
|
||||
# /w44355 set "'this' used in the base initializer list" to be level 4
|
||||
WARN_CFLAGS_YES = /W3 /w44355
|
||||
WARN_CFLAGS_NO = /W1
|
||||
|
||||
#
|
||||
# /Ox maximum optimizations
|
||||
# /MD use MSVCRT (run-time as DLL, multi-thread support)
|
||||
# /GL whole program optimization
|
||||
# /Zi generate program database for debugging information
|
||||
OPT_CFLAGS_YES = /Ox /GL
|
||||
|
||||
#
|
||||
@@ -62,7 +63,9 @@ OPT_CFLAGS_YES = /Ox /GL
|
||||
# /Fr create source browser file
|
||||
# /GZ catch bugs occurring only in optimized code
|
||||
# /D_CRTDBG_MAP_ALLOC
|
||||
OPT_CFLAGS_NO = /Zi /DEPICS_FREELIST_DEBUG
|
||||
# /RTCsu catch bugs occuring only inoptimized code
|
||||
# /DEPICS_FREELIST_DEBUG good for detecting mem mrg bugs
|
||||
OPT_CFLAGS_NO = /Zi /RTCsu
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CFLAG = /Fo
|
||||
@@ -77,7 +80,7 @@ OBJ_CFLAG = /Fo
|
||||
# /MD multithreaded C RTL in DLL
|
||||
# /MDd multithreaded C RTL in DLL (debug version)
|
||||
VISC_DLL_NO = -DEPICS_DLL_NO
|
||||
VISC_DLL_YES =
|
||||
VISC_DLL_YES =
|
||||
VISC_DLL = $(VISC_DLL_$(SHARED_LIBRARIES))
|
||||
VISC_STATIC_CFLAGS_DEBUG_NO = d
|
||||
VISC_STATIC_CFLAGS_DEBUG_YES =
|
||||
@@ -103,28 +106,31 @@ CPP = gcc -x c -E
|
||||
# /GX - generate code for exceptions
|
||||
# /GR - generate code for run time type identification
|
||||
#
|
||||
CCC = cl
|
||||
CONFORM_CXXFLAGS_NORMAL = /nologo /D__STDC__=0 /GX /GR
|
||||
CONFORM_CXXFLAGS_STRICT = /nologo /D__STDC__=0 /GX /GR
|
||||
CCC = cl /nologo /GX /GR
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT = /D__STDC__=0
|
||||
|
||||
#
|
||||
# /W<N> use warning level N
|
||||
# (maximum lint level warnings at level 4)
|
||||
WARN_CXXFLAGS_YES = /W3
|
||||
# /w44355 set "'this' used in the base initializer list" to be level 4
|
||||
WARN_CXXFLAGS_YES = /W3 /w44355
|
||||
WARN_CXXFLAGS_NO = /W1
|
||||
|
||||
#
|
||||
# /Ox maximum optimizations
|
||||
# /GL whole program optimization
|
||||
# /Zi generate program database for debugging information
|
||||
OPT_CXXFLAGS_YES = /Ox /GL
|
||||
|
||||
#
|
||||
# /Zi generate program database for debugging information
|
||||
# /Z7 include debugging info in object files
|
||||
# /Fr create source browser file
|
||||
# /GZ catch bugs occurring only in optimized code
|
||||
# /D_CRTDBG_MAP_ALLOC
|
||||
OPT_CXXFLAGS_NO = /Zi /DEPICS_FREELIST_DEBUG
|
||||
# /RTCsu catch bugs occurring only in optimized code
|
||||
# /DEPICS_FREELIST_DEBUG good for detecting mem mrg bugs
|
||||
OPT_CXXFLAGS_NO = /RTCsu /Zi
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CXXFLAG = /Fo
|
||||
@@ -141,15 +147,14 @@ OBJ_CXXFLAG = /Fo
|
||||
STATIC_CXXFLAGS_YES= /MT$(VISC_STATIC_CFLAGS_DEBUG) $(VISC_DLL)
|
||||
STATIC_CXXFLAGS_NO= /MD$(VISC_STATIC_CFLAGS_DEBUG) $(VISC_DLL)
|
||||
|
||||
#
|
||||
# no special libs for static link
|
||||
#
|
||||
STATIC_LDLIBS_YES=ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
|
||||
STATIC_LDLIBS_NO=
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
# add /profile here to run the ms profiler
|
||||
# /LTCG - whole program optimization
|
||||
LINK_OPT_FLAGS_YES = /LTCG /incremental:no /opt:ref /release $(PROD_VERSION:%=/version:%)
|
||||
# /fixed:no good for programs such as purify and quantify
|
||||
# /debug good for programs such as purify and quantify
|
||||
LINK_OPT_FLAGS_YES = /LTCG /incremental:no /opt:ref /release $(PROD_VERSION:%=/version:%)
|
||||
LINK_OPT_FLAGS_NO = /debug /incremental:no /fixed:no
|
||||
OPT_LDFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
|
||||
|
||||
@@ -183,13 +188,6 @@ OP_SYS_CFLAGS =
|
||||
#
|
||||
#OP_SYS_INCLUDES = -I$(INSTALL_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_BUILD)
|
||||
#
|
||||
# Strange but seems to work without: WIN32_DLLFLAGS should contain
|
||||
@@ -197,7 +195,7 @@ OP_SYS_LDLIBS =
|
||||
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
|
||||
DLLENTRY = @12
|
||||
|
||||
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS)
|
||||
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
|
||||
|
||||
#
|
||||
# specify dll .def file only if it exists
|
||||
@@ -242,34 +240,59 @@ INSTALL_SHRLIB = $(INSTALL_BIN)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Object lib name suffix
|
||||
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))
|
||||
LIB_EXT_YES = Obj.lib # object library extension for static build
|
||||
LIB_EXT_NO = .lib # object library extension for dynamic build
|
||||
LIB_EXT = $(LIB_EXT_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Products dependancy definitions
|
||||
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS) $(USR_LIBS),$(firstword \
|
||||
$($(lib)_DIR)/$(lib)$(OBJECT_LIB_EXT)))
|
||||
PROD_LDLIBS = $($*_DEPLIBS) $(PROD_DEPLIBS) \
|
||||
$($*_SYS_LIBS:%=%.lib) $(SYS_PROD_LIBS:%=%.lib)
|
||||
|
||||
# SYS_PROD_LIBS deprecated
|
||||
# Use PROD_SYS_LIBS
|
||||
|
||||
PROD_DEPLIBS=$(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
PROD_LDLIBS += $($*_DEPLIBS) $(PROD_DEPLIBS)
|
||||
PROD_LDLIBS += $(addsuffix .lib, \
|
||||
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS) )
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Libraries dependancy definitions
|
||||
#Libraries dependancy definitions
|
||||
|
||||
# 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) $(DLL_LIBS),$($(lib)_DIR)/$(lib).lib)
|
||||
# <name>_DLL_LIBS <name>_SYS_DLL_LIBS deprecated.
|
||||
# Use <name>_LIBS and <name>_SYS_LIBS.
|
||||
# DLL_LIBS, and SYS_DLL_LIBS deprecated
|
||||
# Use LIB_LIBS and LIB_SYS_LIBS
|
||||
LIB_LIBS += $(DLL_LIBS)
|
||||
LIB_SYS_LIBS += $(SYS_DLL_LIBS)
|
||||
|
||||
SHRLIB_LDLIBS = $(DLL_DEPLIBS) $($*_SYS_DLL_LIBS:%=%.lib) \
|
||||
$(SYS_DLL_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
|
||||
# libs that we need to link the DLL with
|
||||
# (it isnt necessary to rebuild the dll if these change)
|
||||
|
||||
SHRLIB_DEPLIBS += $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_EXT), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
SHRLIB_LDLIBS += $($*_DLL_DEPLIBS) $($*_DEPLIBS) $(SHRLIB_DEPLIBS)
|
||||
SHRLIB_LDLIBS += $(addsuffix .lib, \
|
||||
$($*_SYS_DLL_LIBS) \
|
||||
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS) )
|
||||
|
||||
#--------------------------------------------------
|
||||
# Linker definition
|
||||
LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) -out:$@ \
|
||||
$(PROD_LD_OBJS) $(PROD_LD_RESS) $(LDLIBS)
|
||||
|
||||
LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) -out:$@ \
|
||||
$(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
# override of CONFIG_SITE
|
||||
SHARED_LIBRARIES = YES
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# CONFIG_SITE.darwin-ppc.Common
|
||||
# CONFIG_SITE.Common.darwin-ppc
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
@@ -6,17 +6,8 @@
|
||||
# Site override definitions for darwin-ppc host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# Where the fink packages are installed
|
||||
#
|
||||
FINK_DIR=/sw
|
||||
|
||||
#
|
||||
# Shared libraries work fine on Darwin
|
||||
#
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
#
|
||||
# Other local options
|
||||
#
|
||||
#OP_SYS_CFLAGS += -g
|
||||
#COMMANDLINE_LIBRARY = READLINE
|
||||
18
configure/os/CONFIG_SITE.Common.hpux-parisc
Normal file
18
configure/os/CONFIG_SITE.Common.hpux-parisc
Normal file
@@ -0,0 +1,18 @@
|
||||
# CONFIG_SITE.Common.hpux-parisc
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for hpux-parisc target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# NOTE for SHARED_LIBRARIES: If YES (which is the default now) then either
|
||||
# a) SHLIB_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
|
||||
# the EPICS shared libraries on your system) when invoking base
|
||||
# executables.
|
||||
# b) Add the path to SHRLIB_SEARCH_DIRS below, which will burn
|
||||
# the runtime search path into the executables.
|
||||
#SHARED_LIBRARIES=YES
|
||||
|
||||
# This is the absolute path to the generic INSTALL_LOCATION, for SHARED_LIBRARY searches.
|
||||
SHRLIB_SEARCH_DIRS += /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/support/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/$(EPICS_HOST_ARCH)
|
||||
13
configure/os/CONFIG_SITE.Common.hpux-parisc-gnu
Normal file
13
configure/os/CONFIG_SITE.Common.hpux-parisc-gnu
Normal file
@@ -0,0 +1,13 @@
|
||||
# CONFIG_SITE.Common.hpux-parisc-gnu
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for hpux-parisc-gnu target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Include definitions for hpux-parisc, as gnu builds will use the HP linker
|
||||
include $(CONFIG)/os/CONFIG_SITE.Common.hpux-parisc
|
||||
|
||||
# If you have built the GNU suite yourself, set the install location here,
|
||||
# else the default (/usr/local) will be used
|
||||
#GNU_DIR = /opt/gcc
|
||||
@@ -5,21 +5,19 @@
|
||||
# Site Specific definitions for linux-x86 target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# NOTE for SHARED_LIBRARIES: If YES then either
|
||||
# NOTE for SHARED_LIBRARIES: In most cases if this is set to YES the
|
||||
# shared libraries will be found automatically. However if the .so
|
||||
# files are installed at a different path to their compile-time path
|
||||
# then in order to be found at runtime do one of these:
|
||||
# a) LD_LIBRARY_PATH must include the full absolute pathname to
|
||||
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
|
||||
# executables.
|
||||
# b) Add the path to SHRLIB_SEARCH_DIRS below, which will burn
|
||||
# the runtime search path into the executables.
|
||||
# c) the full pathname above can be added to /etc/ld.so.conf
|
||||
# and ldconfig run to inform the system of the shared libraries.
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# This is the absolute path to INSTALL_LOCATION, for SHARED_LIBRARY searches.
|
||||
#SHRLIB_SEARCH_DIRS += /usr/local/epics/R3.14.1/base
|
||||
|
||||
# If readline is installed uncomment the following lines
|
||||
# to get command-line editing and history support
|
||||
#COMMANDLINE_LIBRARY = READLINE
|
||||
#LDLIBS_READLINE = -lreadline -lncurses
|
||||
# b) Add the runtime path to SHRLIB_SEARCH_DIRS, which will add
|
||||
# the named directory to the list contained in the executables.
|
||||
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
|
||||
# to inform the system of the shared library location.
|
||||
|
||||
# If readline is not installed comment the following line
|
||||
# to omit command-line editing and history support
|
||||
COMMANDLINE_LIBRARY = READLINE
|
||||
LDLIBS_READLINE = -lreadline -lncurses
|
||||
|
||||
12
configure/os/CONFIG_SITE.Common.solaris-sparc
Normal file
12
configure/os/CONFIG_SITE.Common.solaris-sparc
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG_SITE.Common.solaris-sparc
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for solaris-sparc target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# If readline is installed uncomment the following macro definition
|
||||
# to include command-line editing and history support
|
||||
#
|
||||
#COMMANDLINE_LIBRARY = READLINE
|
||||
|
||||
10
configure/os/CONFIG_SITE.Common.solaris-sparc-gnu
Normal file
10
configure/os/CONFIG_SITE.Common.solaris-sparc-gnu
Normal file
@@ -0,0 +1,10 @@
|
||||
# CONFIG_SITE.Common.solaris-sparc-gnu
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for solaris-sparc-gnu target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Include definitions common to all solaris-sparc-gnu target archs
|
||||
include $(CONFIG)/os/CONFIG_SITE.Common.solaris-sparc
|
||||
|
||||
8
configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long
Normal file
8
configure/os/CONFIG_SITE.Common.vxWorks-ppc604_long
Normal file
@@ -0,0 +1,8 @@
|
||||
# CONFIG_SITE.Common.vxWorks-ppc604
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for vxWorks-ppc604 target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
# CONFIG_SITE.hpux-parisc.hpux-parisc
|
||||
#
|
||||
# $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
|
||||
# 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/
|
||||
|
||||
# JLab version
|
||||
#DEFAULT_SHRLIB_SEARCH_PATH = /cs/lib/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION).$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL):$(INSTALL_LIB)
|
||||
|
||||
# BESSY version
|
||||
DEFAULT_SHRLIB_SEARCH_PATH = /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/support/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/hpux-parisc
|
||||
|
||||
# cal added this so that libraries can be built with position
|
||||
# independent code even if shared libraries aren't being built.
|
||||
# Otherwise you would have to recompile everything when switching from
|
||||
# static to shared.
|
||||
ifeq ($(RELOCATABLE), YES)
|
||||
ARCH_DEP_CFLAGS += +z
|
||||
ARCH_DEP_CXXFLAGS += +z
|
||||
endif
|
||||
9
configure/os/CONFIG_SITE.linux-x86-debug.linux-x86-debug
Normal file
9
configure/os/CONFIG_SITE.linux-x86-debug.linux-x86-debug
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
#Prepares the object code to collect data for profiling with prof.
|
||||
#PROFILE=YES
|
||||
|
||||
#Compiles for profiling with the gprof profiler.
|
||||
#GPROF=YES
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
HOST_OPT=NO
|
||||
15
configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long
Normal file
15
configure/os/CONFIG_SITE.linux-x86.vxWorks-ppc603_long
Normal file
@@ -0,0 +1,15 @@
|
||||
# CONFIG_SITE.linux-x86.vxWorks-ppc603_long
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for linux-x86 host - vxWorks-ppc603_long target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# ORNL SNS overrides for cross compilers
|
||||
#GNU_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc
|
||||
#GNU_TARGET_INCLUDE_DIR=/ade/vxWorks/crossgcc-2.7.2-WRS/ppc/powerpc-wrs-vxworks/sys-include
|
||||
#CC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/cc$(CMPLR_SUFFIX)
|
||||
#CCC = /ade/vxWorks/crossgcc-2.7.2-WRS/ppc/bin/g++$(CMPLR_SUFFIX)
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
#Prepares the object code to collect data for profiling with prof.
|
||||
#PROFILE=YES
|
||||
|
||||
#Compiles for profiling with the gprof profiler.
|
||||
#GPROF=YES
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
HOST_OPT=NO
|
||||
3
configure/os/CONFIG_SITE.win32-x86-debug.win32-x86-debug
Normal file
3
configure/os/CONFIG_SITE.win32-x86-debug.win32-x86-debug
Normal file
@@ -0,0 +1,3 @@
|
||||
|
||||
# Removes optimization and adds debugging options
|
||||
HOST_OPT=NO
|
||||
@@ -1,11 +1,15 @@
|
||||
# $Id$
|
||||
|
||||
# Microsoft Visual C++ .NET is the default compiler
|
||||
# If you have Visual C++ 6.0, uncomment the following 3 override lines
|
||||
# This will to eliminate warnings about unknown options /GL and LTCG.
|
||||
|
||||
# If you have Visual C++ 6.0, uncomment the following 4 override lines
|
||||
# This will to eliminate warnings about unknown options /GL, LTCG, and /44355.
|
||||
#OPT_CFLAGS_YES = /Ox
|
||||
#OPT_CXXFLAGS_YES = /Ox
|
||||
#OPT_CFLAGS_NO = /Zi
|
||||
#OPT_CXXFLAGS_NO = /Zi
|
||||
#LINK_OPT_FLAGS_YES = /incremental:no /opt:ref /release $(PROD_VERSION:%=/version:%)
|
||||
#WARN_CFLAGS_YES = /W3
|
||||
#WARN_CXXFLAGS_YES = /W3
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ $hostarch = $opt_h if ($opt_h);
|
||||
|
||||
# Find $top from current path; NB only works under iocBoot/* and configure/*
|
||||
$top = $cwd;
|
||||
$top =~ s/^\/cygdrive\/(\w)\//$1:\//;
|
||||
$top =~ s/\/iocBoot.*$//;
|
||||
$top =~ s/\/configure.*$//;
|
||||
|
||||
@@ -106,6 +107,7 @@ sub readRelease {
|
||||
chomp;
|
||||
s/\r$//; # Shouldn't need this, but sometimes...
|
||||
s/\s*#.*$//; # Remove trailing comments
|
||||
s/\s+$//; # Remove trailing whitespace
|
||||
next if /^\s*$/; # Skip blank lines
|
||||
|
||||
# Expand all already-defined macros in the line:
|
||||
@@ -117,8 +119,13 @@ sub readRelease {
|
||||
# Handle "<macro> = <path>"
|
||||
($macro, $path) = /^\s*(\w+)\s*=\s*(.*)/;
|
||||
if ($macro ne "") {
|
||||
$macro="TOP" if $macro =~ /^INSTALL_LOCATION/ ;
|
||||
if (exists $Rmacros->{$macro}) {
|
||||
delete $Rmacros->{$macro};
|
||||
} else {
|
||||
push @$Rapps, $macro;
|
||||
}
|
||||
$Rmacros->{$macro} = $path;
|
||||
push @$Rapps, $macro;
|
||||
next;
|
||||
}
|
||||
# Handle "include <path>" syntax
|
||||
@@ -151,34 +158,44 @@ sub configAppInclude {
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/bin/$hostarch");
|
||||
print OUT "${app}_HOST_BIN = \$($app)/bin/\$(EPICS_HOST_ARCH)\n";
|
||||
print OUT "${app}_HOST_BIN = \$(strip \$($app))/bin/\$(EPICS_HOST_ARCH)\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/lib/$hostarch");
|
||||
print OUT "${app}_HOST_LIB = \$($app)/bin/\$(EPICS_HOST_ARCH)\n";
|
||||
print OUT "${app}_HOST_LIB = \$(strip \$($app))/bin/\$(EPICS_HOST_ARCH)\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/bin/$arch");
|
||||
print OUT "${app}_BIN = \$($app)/bin/$arch\n";
|
||||
print OUT "${app}_BIN = \$(strip \$($app))/bin/$arch\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/lib/$arch");
|
||||
print OUT "${app}_LIB = \$($app)/lib/$arch\n";
|
||||
print OUT "${app}_LIB = \$(strip \$($app))/lib/$arch\n";
|
||||
}
|
||||
# We can't just include TOP in the foreach list:
|
||||
# 1. The lib directory probably doesn't exist yet, and
|
||||
# 2. We need an abolute path but $(TOP_LIB) is relative
|
||||
$path = $macros{"TOP"};
|
||||
print OUT "SHRLIB_SEARCH_DIRS = $path/lib/$arch\n";
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/lib/$arch");
|
||||
print OUT "SHRLIB_SEARCH_DIRS += \$(${app}_LIB)\n";
|
||||
}
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/include");
|
||||
print OUT "RELEASE_INCLUDES += -I\$($app)/include/os/\$(OS_CLASS)\n";
|
||||
print OUT "RELEASE_INCLUDES += -I\$($app)/include\n";
|
||||
print OUT "RELEASE_INCLUDES += -I\$(strip \$($app))/include/os/\$(OS_CLASS)\n";
|
||||
print OUT "RELEASE_INCLUDES += -I\$(strip \$($app))/include\n";
|
||||
}
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-d "$path/dbd");
|
||||
print OUT "RELEASE_DBDFLAGS += -I \$($app)/dbd\n";
|
||||
print OUT "RELEASE_DBDFLAGS += -I \$(strip \$($app))/dbd\n";
|
||||
}
|
||||
close OUT;
|
||||
}
|
||||
@@ -194,7 +211,7 @@ sub rulesInclude {
|
||||
foreach $app (@includes) {
|
||||
$path = $macros{$app};
|
||||
next unless (-r "$path/configure/RULES_BUILD");
|
||||
print OUT "-include \$($app)/configure/RULES_BUILD\n";
|
||||
print OUT "-include \$(strip \$($app))/configure/RULES_BUILD\n";
|
||||
}
|
||||
close OUT;
|
||||
}
|
||||
@@ -210,7 +227,6 @@ sub cdCommands {
|
||||
$startup =~ s/^$root/$iocroot/ if ($opt_t);
|
||||
|
||||
print OUT "startup = \"$startup\"\n";
|
||||
print OUT "appbin = \"$ioctop/bin/$arch\"\n"; # R3.13.1 compatibility
|
||||
|
||||
foreach $app (@includes) {
|
||||
$iocpath = $path = $macros{$app};
|
||||
|
||||
@@ -104,7 +104,7 @@ sub Usage
|
||||
print "Usage:\n";
|
||||
print "\t$tool [ -m mode ] file ... directory\n";
|
||||
print "\n";
|
||||
print "\t-d Create non-exising directories\n";
|
||||
print "\t-d Create non-existing directories\n";
|
||||
print "\t-m mode Set the mode for the installed file";
|
||||
print " (0755 by default)\n";
|
||||
print "\tfile Name of file\n";
|
||||
|
||||
@@ -61,6 +61,13 @@ foreach $name ( @nameList ) {
|
||||
print OUT "${name}_OBJS+=\$(${name}_OBJS_DEFAULT)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "ifneq (\$(strip \$(${name}_LDFLAGS_\$(OS_CLASS))),)\n";
|
||||
print OUT "${name}_LDFLAGS+=\$(subst -nil-,,\$(${name}_LDFLAGS_\$(OS_CLASS)))\n";
|
||||
print OUT "else\n";
|
||||
print OUT "ifdef ${name}_LDFLAGS_DEFAULT\n";
|
||||
print OUT "${name}_LDFLAGS+=\$(${name}_LDFLAGS_DEFAULT)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "ifneq (\$(strip \$(${name}_LDOBJS_\$(OS_CLASS))),)\n";
|
||||
print OUT "${name}_LDOBJS+=\$(subst -nil-,,\$(${name}_LDOBJS_\$(OS_CLASS)))\n";
|
||||
print OUT "else\n";
|
||||
@@ -85,25 +92,17 @@ foreach $name ( @nameList ) {
|
||||
print OUT "endif\n";
|
||||
print OUT "${name}_OBJS+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_SRCS)))\n";
|
||||
print OUT "\n";
|
||||
print OUT "ifeq (\$(filter ${name},\$(TESTPROD)),${name})\n";
|
||||
print OUT "ifeq (\$(filter ${name},\$(TESTPROD) \$(PROD)),${name})\n";
|
||||
print OUT "ifeq (,\$(strip \$(${name}_OBJS) \$(PRODUCT_OBJS)))\n";
|
||||
print OUT "${name}_OBJS+=${name}\$(OBJ)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
|
||||
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
|
||||
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
|
||||
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
|
||||
print OUT "${name}\$(EXE): \$(${name}_OBJSNAME) \$(${name}_RESS) \$(${name}_DEPLIBS)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "\n";
|
||||
print OUT "ifeq (\$(filter ${name},\$(PROD)),${name})\n";
|
||||
print OUT "ifeq (,\$(strip \$(${name}_OBJS) \$(PRODUCT_OBJS)))\n";
|
||||
print OUT "${name}_OBJS+=${name}\$(OBJ)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
|
||||
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
|
||||
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
|
||||
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
|
||||
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\\\n";
|
||||
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
|
||||
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
|
||||
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_EXT),\\\n";
|
||||
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
|
||||
print OUT "${name}\$(EXE): \$(${name}_OBJSNAME) \$(${name}_RESS) \$(${name}_DEPLIBS)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "\n";
|
||||
@@ -113,12 +112,21 @@ foreach $name ( @nameList ) {
|
||||
print OUT "endif\n";
|
||||
print OUT "${name}_RESS+=\$(addsuffix \$(RES),\$(basename \$(${name}_RCS)))\n";
|
||||
print OUT "${name}_OBJSNAME+=\$(addsuffix \$(OBJ),\$(basename \$(${name}_OBJS)))\n";
|
||||
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\$(firstword \$(wildcard \\\n";
|
||||
print OUT " \$(\$(lib)_DIR)/\$(LIB_PREFIX)\$(lib)\*)))\n";
|
||||
print OUT "${name}_DEPLIBS=\$(foreach lib, \$(${name}_LDLIBS),\\\n";
|
||||
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
|
||||
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
|
||||
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_SUFFIX),\\\n";
|
||||
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
|
||||
print OUT "${name}_DLL_DEPLIBS=\$(foreach lib, \$(${name}_DLL_LIBS),\\\n";
|
||||
print OUT " \$(firstword \$(wildcard \$(addsuffix /\$(LIB_PREFIX)\$(lib)\*,\\\n";
|
||||
print OUT " \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS)))\\\n";
|
||||
print OUT " \$(addsuffix /\$(LIB_PREFIX)\$(lib)\$(LIB_EXT),\\\n";
|
||||
print OUT " \$(firstword \$(\$(lib)_DIR) \$(SHRLIB_SEARCH_DIRS))\/)))\n";
|
||||
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n";
|
||||
print OUT "\$(LIB_PREFIX)${name}\$(LIB_SUFFIX):\$(${name}_DEPLIBS)\n";
|
||||
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_OBJSNAME) \$(${name}_RESS)\n";
|
||||
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DEPLIBS)\n";
|
||||
print OUT "\$(LIB_PREFIX)${name}\$(SHRLIB_SUFFIX):\$(${name}_DLL_DEPLIBS)\n";
|
||||
print OUT "endif\n";
|
||||
print OUT "\n";
|
||||
}
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
use Getopt::Std;
|
||||
use Text::Wrap;
|
||||
|
||||
$Text::Wrap::columns = 76;
|
||||
|
||||
my $version = 'mkmf.pl,v 1.5 2002/03/25 21:33:24 jba Exp $ ';
|
||||
my $endline = $/;
|
||||
@@ -80,38 +83,23 @@ sub printList{
|
||||
|
||||
my $old_handle = select(DEPENDS);
|
||||
|
||||
#Limit lines to 80 characters
|
||||
# a dot marks the end of the format
|
||||
format DEPENDS_FMT =
|
||||
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\~
|
||||
$line
|
||||
.
|
||||
|
||||
format TARGETS_FMT =
|
||||
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:~
|
||||
$line
|
||||
.
|
||||
|
||||
print "# DO NOT EDIT: This file created by $version\n\n";
|
||||
|
||||
local $: = " \t\n"; # remove hyphen from word boundary defaults
|
||||
|
||||
$~ = DEPENDS_FMT;
|
||||
$line = "$objFile : @includes";
|
||||
while ( length $line > 78 ) {
|
||||
write ;
|
||||
}
|
||||
print $line unless $line eq '';
|
||||
$fmtline = wrap ("", " ", $line);
|
||||
$fmtline =~ s/\n/ \\\n/mg;
|
||||
print $fmtline;
|
||||
|
||||
print "\n\n";
|
||||
print "#Depend files must be targets to avoid 'No rule to make target ...' errors\n";
|
||||
|
||||
$~ = TARGETS_FMT;
|
||||
$line = "@includes";
|
||||
while ( length $line > 78 ) {
|
||||
write ;
|
||||
#$line = "@includes";
|
||||
foreach $file (@includes) {
|
||||
print "$file :\n";
|
||||
}
|
||||
print "$line :" unless $line eq '';
|
||||
|
||||
|
||||
select($old_handle) ; # in this case, STDOUT
|
||||
}
|
||||
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>Building EPICS R3.13 applications with R3.14.1 base</h2>
|
||||
<h2>Building EPICS R3.13 applications with R3.14 base</h2>
|
||||
</center>
|
||||
|
||||
<p><br>
|
||||
This document describes how to modify a R3.13 vxWorks application so that it
|
||||
builds with release R3.14.1. It describes an easy way to modify
|
||||
builds with release R3.14. It describes an easy way to modify
|
||||
applications subject to the following restrictions:</p>
|
||||
<ul>
|
||||
<li>The application still uses config rules rather than the configure rules
|
||||
@@ -69,7 +69,7 @@ however, has a config directory. Makesure that config/RELEASE has the same
|
||||
location for base as configure/RELEASE.</p>
|
||||
|
||||
<p>snc is no longer in base. If snc is used in your application, you must
|
||||
download and build the seq module with baseR3.14.1. See the Application
|
||||
download and build the seq module with baseR3.14. See the Application
|
||||
Developer's Guide to see how to build sequence programs.</p>
|
||||
|
||||
<p>If you build sequencer programs add the lines</p>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>Building EPICS R3.13 extensions with R3.14.1 base</h2>
|
||||
<h2>Building EPICS R3.13 extensions with R3.14 base</h2>
|
||||
</center>
|
||||
|
||||
<p><br>
|
||||
@@ -53,11 +53,7 @@ directory.</p>
|
||||
<h3>Building your extensions with base R3.14</h3>
|
||||
|
||||
<blockquote>
|
||||
<ul>
|
||||
<li><b>Library Db renamed</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<li><b>Library Db renamed</b></li>
|
||||
|
||||
<p>Library Db has been renamed to dbStaticHost in EPICS base R3.14. In some
|
||||
extensions lib Db is not used and Db can be removed from the USR_LIBS (or
|
||||
@@ -72,11 +68,8 @@ directory.</p>
|
||||
<tt>USR_LIBS += Db</tt> <br>
|
||||
<tt>Db_DIR = $(EPICS_BASE_LIB)</tt> <br>
|
||||
<tt>endif</tt></blockquote>
|
||||
<ul>
|
||||
<li><b>Library dbStaticHost names changed</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<li><b>Library dbStaticHost names changed</b></li>
|
||||
|
||||
<p>Library functions have been renamed. If there are calls with old db
|
||||
names, add the following lines</p>
|
||||
@@ -115,12 +108,10 @@ directory.</p>
|
||||
|
||||
<p></p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><b>Target architecture specifications changed</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
|
||||
<li><b>Target architecture specifications changed</b></li>
|
||||
|
||||
<p>Since target architecture specifications have been changed (solaris to
|
||||
solaris-sparc, win32 to win32-x86, ...) Makefile.Host references to and
|
||||
tests on T_A have to be changed. In most cases T_A can be replaced by
|
||||
@@ -139,21 +130,17 @@ directory.</p>
|
||||
<tt>ifeq ($(OS_CLASS),solaris)</tt> <br>
|
||||
<tt>RPCFLAGS = -K -1</tt> <br>
|
||||
<tt>endif</tt></blockquote>
|
||||
<ul>
|
||||
<li><b>New ca_set_puser</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
|
||||
<li><b>New ca_set_puser</b></li>
|
||||
|
||||
<p>Statements of the form: <tt>ca_puser(chid) = xyz</tt>; should to be
|
||||
changed to: <tt>ca_set_puser(chid,xyz)</tt>; <br>
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>Extern C around includes</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
|
||||
<li><b>Extern C around includes</b></li>
|
||||
|
||||
<p>Remove any extern "C" braces around #includes of EPICS base header
|
||||
files. <br>
|
||||
For example change</p>
|
||||
@@ -166,12 +153,8 @@ directory.</p>
|
||||
|
||||
<blockquote>
|
||||
<tt>#include "cadefs.h"</tt></blockquote>
|
||||
<ul>
|
||||
<li><b>Infrequently used R3.13 timestamp functions unbundled from
|
||||
base</b></li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<li><b>Infrequently used R3.13 timestamp functions unbundled from base</b></li>
|
||||
|
||||
<p>Some infrequently used R3.13 timestamp functions and macro definitions
|
||||
have been removed from EPICS base and now exist in a library, ts, created
|
||||
@@ -193,25 +176,22 @@ directory.</p>
|
||||
<tt>ts_DIR = $(EPICS_EXTENSIONS_LIB)</tt> <br>
|
||||
<tt>endif</tt></p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><b>No Field name length restriction</b></li>
|
||||
</ul>
|
||||
|
||||
<p><br>
|
||||
The length restriction to database record names no longer exists in R3.14
|
||||
<li><b>No Field name length restriction</b></li>
|
||||
|
||||
<p> The length restriction to database record names no longer exists in R3.14
|
||||
so the the <tt>FLDNAME_SZ macro definition was removed.from dbDefs.h.
|
||||
Extensions whichstill have a field name restriction should add the field
|
||||
Extensions which still have a field name restriction should add the field
|
||||
name size definition to their code until they are updated.</tt></p>
|
||||
|
||||
<blockquote>
|
||||
<tt>#ifndef FLDNAME_SZ</tt> <br>
|
||||
<tt>#define FLDNAME_SZ 4 /*Field Name Size*/</tt> <br>
|
||||
<tt>#endif</tt></blockquote>
|
||||
<ul>
|
||||
<li><b>Some EPICS base version macros removed</b></li>
|
||||
</ul>
|
||||
|
||||
<p><br>
|
||||
<li><b>Some EPICS base version macros removed</b></li>
|
||||
|
||||
<p>
|
||||
The EPICS base version macros that start with "BASE_" have been removed
|
||||
from epicsVersion.h. Extensions should now use only the existing macros
|
||||
which start with "EPICS_".</p>
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>Converting an EPICS R3.13 application to R3.14.1</h2>
|
||||
<h2>Converting an EPICS R3.13 application to R3.14.2</h2>
|
||||
</center>
|
||||
|
||||
<p><br>
|
||||
This document describes how to convert a R3.13 vxWorks application so that it
|
||||
builds with release R3.14.1. It describes procedures such that:</p>
|
||||
builds with release R3.14.2. It describes procedures such that:</p>
|
||||
<ul>
|
||||
<li>The application uses the configure rules which are new to R3.14.</li>
|
||||
</ul>
|
||||
@@ -31,10 +31,11 @@ builds with release R3.14.1.
|
||||
remove all files created by earlier builds.</p>
|
||||
|
||||
<h3>Create a new R3.14 application</h3>
|
||||
<p>We will remove junkApp later.</p>
|
||||
<pre>mkdir <top>
|
||||
cd <top>
|
||||
<full path to 3.14 base>/bin/<host_arch>/makeBaseApp.pl -t example junk
|
||||
/bin/rm -fr junkApp</pre>
|
||||
</pre>
|
||||
|
||||
<h3>Copy all *App and iocBoot directories and files to the new <top>
|
||||
directory</h3>
|
||||
@@ -49,7 +50,7 @@ If sequence programs (*.st or *.stt files) exist in your application, add the
|
||||
SNCSEQ location definition for the R3.14 seq external module</p>
|
||||
|
||||
<p><tt>SNCSEQ =<full path to seq module top></tt></p>
|
||||
The R3.14 seq module must exist and be built with EPICS base R3.14.1
|
||||
The R3.14 seq module must exist and be built with EPICS base R3.14.2
|
||||
|
||||
<h3>Modify the Makefiles in <top>/*App directories.</h3>
|
||||
|
||||
@@ -82,9 +83,12 @@ $(TOP)/configure/RULES"</tt></p>
|
||||
<p>This is the hardest step. The definitions in Makefile.Host and Makefile.Vx
|
||||
must be manually converted to the new configure definitions.</p>
|
||||
|
||||
<p>First replace Makefile with a template Makefile from base.</p>
|
||||
<p>First replace Makefile with the Makefile from junkApp/src.</p>
|
||||
<pre>rm Makefile
|
||||
cp <base>/templates/makeBaseApp/top/exampleApp/src/Makefile .</pre>
|
||||
cp ../../junkApp/src/Makefile .</pre>
|
||||
|
||||
<p>We can remove the junkApp now.</p>
|
||||
<pre>/bin/rm -fr ../../junkApp</pre>
|
||||
|
||||
<p>This new Make file has comments explaining how to build the various host
|
||||
and ioc products. Lets consider some examples</p>
|
||||
@@ -93,12 +97,15 @@ and ioc products. Lets consider some examples</p>
|
||||
<p>Makefile.Host contains definitions like:</p>
|
||||
<pre>PROD += caExample
|
||||
caExample_SRCS += caExample.c
|
||||
PROD_LIBS += ca Db Com
|
||||
ca_DIR = $(EPICS_BASE_LIB)
|
||||
Db_DIR = $(EPICS_BASE_LIB)
|
||||
Com_DIR = $(EPICS_BASE_LIB)
|
||||
</pre>
|
||||
<p>In Makefile these are:</p>
|
||||
<pre>PROD_HOST += caExample
|
||||
caExample_SRCS += caExample.c
|
||||
caExample_LIBS += ca
|
||||
caExample_LIBS += Com
|
||||
caExample_LIBS += $(EPICS_BASE_HOST_LIBS)
|
||||
</pre>
|
||||
</li>
|
||||
<li>Record Support - generate xxxRecord.h file
|
||||
@@ -135,32 +142,24 @@ LIBNAME = exampleLib
|
||||
INSTALLS += iocCore seq
|
||||
</pre>
|
||||
<p>In Makefile these become:</p>
|
||||
<pre>PROD_IOC_vxWorks = example
|
||||
example_SRCS += xxxRecord.c
|
||||
example_SRCS += devXxxSoft.c
|
||||
example_SRSC += sncExample.stt
|
||||
<pre>
|
||||
LIBRARY_vxWorks += exampleIoc
|
||||
exampleIoc_SRCS += xxxRecord.c
|
||||
exampleIoc_SRCS += devXxxSoft.c
|
||||
exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
|
||||
|
||||
PROD_IOC_vxWorks = example
|
||||
example_SRCS += sncExample.stt
|
||||
example_LIBS += exampleIoc
|
||||
example_LIBS += seq pv
|
||||
example_LIBS += $(EPICS_BASE_IOC_LIBS)
|
||||
|
||||
# example_registerRecordDeviceDriver.cpp will be created from example.dbd
|
||||
example_SRCS += example_registerRecordDeviceDriver.cpp
|
||||
|
||||
#The following adds support from base/src/vxWorks
|
||||
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
|
||||
|
||||
#The following are for sequence programs
|
||||
example_LIBS += seq
|
||||
example_LIBS += pv
|
||||
seq_DIR = $(SNCSEQ_LIB)
|
||||
pv_DIR = $(SNCSEQ_LIB)
|
||||
|
||||
example_LIBS += recIoc
|
||||
example_LIBS += softDevIoc
|
||||
example_LIBS += testDevIoc
|
||||
example_LIBS += iocsh
|
||||
example_LIBS += miscIoc
|
||||
example_LIBS += rsrvIoc
|
||||
example_LIBS += dbtoolsIoc
|
||||
example_LIBS += asIoc
|
||||
example_LIBS += dbIoc
|
||||
example_LIBS += registryIoc
|
||||
example_LIBS += dbStaticIoc
|
||||
example_LIBS += ca
|
||||
example_LIBS += Com
|
||||
</pre>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
243
documentation/ConvertingR3.14.1AppsToR3.14.2.html
Normal file
243
documentation/ConvertingR3.14.1AppsToR3.14.2.html
Normal file
@@ -0,0 +1,243 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>Converting an EPICS R3.14.1 application to R3.14.2</h2>
|
||||
</center>
|
||||
|
||||
<p>This document describes how to convert a R3.14.1 application so that it
|
||||
builds with release R3.14.2.</p>
|
||||
|
||||
<p><span style="font-weight: bold">MAJOR CHANGE since 3.14.1</span></p>
|
||||
|
||||
<p>The base supplied record and device support are now build as regular
|
||||
libraries rather than as just object files. This allows simplified build
|
||||
ruiles. The changes do require changes to:</p>
|
||||
<ul>
|
||||
<li>any record, device, or driver support you provide.</li>
|
||||
<li>changes to any subroutines for subRecord.</li>
|
||||
<li>replace any DBD <span style="font-family: courier">function</span>
|
||||
statements with <span style="font-family: courier">register</span>
|
||||
statements</li>
|
||||
</ul>
|
||||
|
||||
<p>Please read the new chapter "Getting Started" of the Application
|
||||
Developer's Guide for more information about building support and ioc
|
||||
applications.</p>
|
||||
|
||||
<h3>Gnumake clean uninstall</h3>
|
||||
|
||||
<blockquote>
|
||||
First do a "<tt>gnumake clean uninstall"</tt> in the application's root
|
||||
directory to remove all files created by earlier builds.</blockquote>
|
||||
|
||||
<h3>INSTALL_LOCATION_APP</h3>
|
||||
|
||||
<blockquote>
|
||||
If your application is NOT being installed into $(TOP), move your
|
||||
INSTALL_LOCATION_APP definition to the configure/RELEASE file.</blockquote>
|
||||
|
||||
<h3>Building db files from templates changed</h3>
|
||||
|
||||
<blockquote>
|
||||
Now if the template needed to build <name>.db is not named
|
||||
<name>*.template add the line
|
||||
|
||||
<blockquote>
|
||||
<pre> <name>_template = <templatename></pre>
|
||||
</blockquote>
|
||||
to the *Db/Makefile.
|
||||
|
||||
<p>Remove any</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>USES_TEMPLATE =</pre>
|
||||
</blockquote>
|
||||
definitions from your <name>App/*Db/Makefile files; these definitions
|
||||
are no longer used.</blockquote>
|
||||
|
||||
<h3>File base.dbd no longer needed</h3>
|
||||
|
||||
<blockquote>
|
||||
You now can add the line include "base.dbd" to your
|
||||
<appname>Include.dbd file and remove the file
|
||||
<name>App/src/base.dbd from your src directory. The base.dbd from
|
||||
R3.14.2 base/dbd will be included. However, if you only want a subset of
|
||||
record definitions from base you should keep your base.dbd
|
||||
file.</blockquote>
|
||||
|
||||
<h3>Record support</h3>
|
||||
|
||||
<blockquote>
|
||||
Add the following line after all existing #includes
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
The structure rset is now a typedef so change
|
||||
|
||||
<blockquote>
|
||||
<pre>struct rset <recordname>RSET={ ...</pre>
|
||||
</blockquote>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
<pre>rset <recordname>RSET={ ...</pre>
|
||||
</blockquote>
|
||||
and add the following line after the "rset <recordname>RSET="
|
||||
definition.
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(rset,xxxRSET);</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Device support</h3>
|
||||
|
||||
<blockquote>
|
||||
Add the following line after all existing #includes
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
and add the following line after the dset dev<devname> definition
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(dset,dev<devname>);</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Driver support</h3>
|
||||
|
||||
<blockquote>
|
||||
Add the following line after all existing #includes
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
and add the following line after the drvet dev<devname> definition
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(drvet,drv<devname>);</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Registration code changed</h3>
|
||||
|
||||
<blockquote>
|
||||
Registration code for application specific functions, e.g. subroutine
|
||||
record init and process functions, has been changed as follows
|
||||
|
||||
<p>1) Include the registration support header files:</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "dbDefs.h"
|
||||
#include "registryFunction.h"</pre>
|
||||
</blockquote>
|
||||
2) Include the export definitions header file after including all other
|
||||
header files:
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
3) Make the application specific functions static functions, e.g.
|
||||
|
||||
<blockquote>
|
||||
<pre>static long mySubInit(subRecord *precord,processMethod process)
|
||||
static long mySubProcess(subRecord *precord)</pre>
|
||||
</blockquote>
|
||||
4) Define a registryFunctionRef array of the application specific functions
|
||||
to be registered, e.g.
|
||||
|
||||
<blockquote>
|
||||
<pre>static registryFunctionRef mySubRef[] = {
|
||||
{"mySubInit",(REGISTRYFUNCTION)mySubInit},
|
||||
{"mySubProcess",(REGISTRYFUNCTION)mySubProcess}
|
||||
};</pre>
|
||||
</blockquote>
|
||||
5) Add a new function to do the registration of the registryFunctionRef
|
||||
array elements, e.g.
|
||||
|
||||
<blockquote>
|
||||
<pre>void mySub(void)
|
||||
{
|
||||
registryFunctionRefAdd(mySubRef,NELEMENTS(mySubRef));
|
||||
}</pre>
|
||||
</blockquote>
|
||||
6) Call the epicsExportRegistrar with the new registration function: e.g.
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportRegistrar(mySub);</pre>
|
||||
</blockquote>
|
||||
7) Remove the existing function lines in <appname>Include.dbd: e.g.
|
||||
remove
|
||||
|
||||
<blockquote>
|
||||
<pre>function("mySubInit")
|
||||
function("mySubProcess")</pre>
|
||||
</blockquote>
|
||||
8) Add a registrar statement to <name>Include.dbd with the new
|
||||
registration function as parameter: e.g. add
|
||||
|
||||
<blockquote>
|
||||
<pre>registrar("mySub")</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3><name>App/src/Makefile changed and simplified</h3>
|
||||
|
||||
<blockquote>
|
||||
1) Libraries from support modules defined in configure/RELEASE no longer
|
||||
need the <libname>_DIR definitions. You can remove lines like the
|
||||
following from your src/Makefile
|
||||
|
||||
<blockquote>
|
||||
<pre>ca_DIR = $(EPICS_BASE_LIB)
|
||||
Com_DIR = $(EPICS_BASE_LIB)</pre>
|
||||
</blockquote>
|
||||
2) Libraries from EPICS_BASE do not have to be specified individually. For
|
||||
HOST products and libraries specify the following
|
||||
|
||||
<blockquote>
|
||||
<pre><myhostprodorlib>_LIBS += $(EPICS_BASE_HOST_LIBS)</pre>
|
||||
</blockquote>
|
||||
For IOC products and libraries specify the following
|
||||
|
||||
<blockquote>
|
||||
<pre><myiocprodorlib>_LIBS += $(EPICS_BASE_IOC_LIBS)</pre>
|
||||
</blockquote>
|
||||
3) All record, device, and driver support must now exist in shared
|
||||
libraries. You will need to create an IOC library containing your
|
||||
application specific support.
|
||||
|
||||
<blockquote>
|
||||
<pre>LIBRARY_IOC += exampleIoc
|
||||
|
||||
exampleIoc_SRCS += xxxRecord.c
|
||||
exampleIoc_SRCS += devXxxSoft.c
|
||||
exampleIoc_SRCS += dbSubExample.c
|
||||
exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)</pre>
|
||||
</blockquote>
|
||||
4) Add your new record, device, and driver support library to your ioc
|
||||
product's libraries: e.g.
|
||||
<pre>
|
||||
<blockquote>
|
||||
|
||||
PROD_IOC = example
|
||||
|
||||
example_LIBS += exampleIoc
|
||||
example_LIBS += $(EPICS_BASE_IOC_LIBS)</blockquote>
|
||||
|
||||
|
||||
</pre>
|
||||
</blockquote>
|
||||
</body>
|
||||
</html>
|
||||
@@ -8,23 +8,10 @@
|
||||
<meta name="GENERATOR" content="amaya 5.1" />
|
||||
</head>
|
||||
|
||||
<h4> April 5, 2003</h4>
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS base R3.14.1: Known Problems</h1>
|
||||
<h1 style="text-align: center">EPICS base R3.14.2: Known Problems</h1>
|
||||
|
||||
<h3>Known Bugs</h3>
|
||||
|
||||
<p>The portable CA server does not work on solaris.</p>
|
||||
|
||||
<h3>To Do Posix</h3>
|
||||
<ul>
|
||||
<li>Currently thread priorities are not turned on, i.e. all threads run at
|
||||
the same priority.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Build Rules</h3>
|
||||
<ul>
|
||||
<li>A SHRLIB_SEARCH_DIRS += should be generated for everything found in
|
||||
configure/RELEASE</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
README
|
||||
README.1st
|
||||
|
||||
Installation Instructions
|
||||
Installation Instructions
|
||||
|
||||
EPICS base
|
||||
|
||||
Release 3.14.1
|
||||
Release 3.14.2
|
||||
|
||||
What is EPICS base?
|
||||
|
||||
@@ -44,12 +44,21 @@ Supported platforms
|
||||
Host platforms (operating system - architecture - <alternate c++
|
||||
compiler>)
|
||||
|
||||
solaris-sparc
|
||||
solaris-sparc-gnu
|
||||
linux-x86
|
||||
win32-x86
|
||||
darwin-ppc (Mac OS X)
|
||||
hpux-parisc
|
||||
hpux-parisc-gnu
|
||||
linux-mpc82xx
|
||||
linux-x86
|
||||
lynxos-x86
|
||||
osf-alpha
|
||||
solaris-sparc
|
||||
solaris-sparc-gnu
|
||||
solaris-x86
|
||||
solaris-x86-gnu
|
||||
sun4-x86
|
||||
win32-x86
|
||||
win32-x86-borland
|
||||
darwin-ppc (Mac OS X)
|
||||
|
||||
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
|
||||
@@ -57,12 +66,18 @@ Supported platforms
|
||||
vxWorks-68040
|
||||
vxWorks-68040lc
|
||||
vxWorks-68060
|
||||
vxWorks-pentium
|
||||
vxWorks-ppc603
|
||||
vxWorks-ppc603_long
|
||||
vxWorks-ppc604
|
||||
vxWorks-ppc604_long
|
||||
vxWorks-pentium
|
||||
RTEMS-gen68360
|
||||
RTEMS-mcp750
|
||||
RTEMS-mvme167
|
||||
RTEMS-pc386
|
||||
RTEMS-psim
|
||||
|
||||
|
||||
Supported compilers
|
||||
|
||||
@@ -90,19 +105,18 @@ Software requirements
|
||||
You must have tools available to unzip and untar the EPICS base
|
||||
distribution file.
|
||||
|
||||
Tornado 2.0
|
||||
You must have Tornado 2.0 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2.0 provides the cross-compiler and header
|
||||
files needed to build for these target systems. The full path location to
|
||||
Tornado 2.0 must be specified in the base/configure/RELEASE or
|
||||
Tornado 2
|
||||
You must have Tornado 2 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2 provides the cross-compiler and header
|
||||
files needed to build for these target systems. The full path location
|
||||
to Tornado 2 should be specified in the base/configure/RELEASE or
|
||||
base/configure/RELEASE.<hostarch> file. You will also need one or
|
||||
more board support packages. Consult the vxWorks documentation for
|
||||
details.
|
||||
|
||||
Optional GNU compiler requirement for solaris-sparc and
|
||||
win32-x86 hosts
|
||||
Optional GNU compiler requirement for solaris-sparc and win32-x86 hosts
|
||||
If you have state notation language source files (*.st files) which require
|
||||
c preprocessing before conversion to c source, gcc must be in your path.
|
||||
c preprocessing before conversion to c source, gcc must be in your path.
|
||||
|
||||
Host system storage requirements
|
||||
|
||||
@@ -116,8 +130,8 @@ Documentation
|
||||
EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL http://www.aps.anl.gov/epics
|
||||
|
||||
This README.1st is in the base distribution file and will be available
|
||||
on the IOC software R3.14 EPICS WWW page which can be accessed
|
||||
This README.1st file is in the base distribution and available on the
|
||||
IOC software, Base R3.14, release number, web page which can be accessed
|
||||
from the APS EPICS home page.
|
||||
|
||||
WWW pages
|
||||
@@ -147,13 +161,13 @@ Directory Structure
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/configure/tools Perl and shell scripts used in the build
|
||||
base/copyright Text files describing software copyrights
|
||||
base/documentation Distributation build documentation
|
||||
base/src All epics base source code in subdirectories
|
||||
base/src/RTEMS Code to configure RTEMS for EPICS
|
||||
base/src/as Access security
|
||||
base/src/bpt Break point table
|
||||
base/src/ca Channel access
|
||||
base/src/cas Channel access server
|
||||
base/src/cas Channel access server library and examples
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
@@ -164,6 +178,7 @@ Directory Structure
|
||||
base/src/libCom General purpose library code in subdirectories
|
||||
base/src/libCom/bucketLib Hash bucket
|
||||
base/src/libCom/calc Algebraic expression interpreter
|
||||
base/src/libCom/cppStd Support for C++ standard template library
|
||||
base/src/libCom/cvtFast Fast number to string conversion
|
||||
base/src/libCom/cxxTemplates C++ templates and templates tests
|
||||
base/src/libCom/dbmf Memory management for frequent alloc/free
|
||||
@@ -178,6 +193,7 @@ Directory Structure
|
||||
base/src/libCom/misc Miscellaneous utilities
|
||||
base/src/libCom/osi Operating system independent code
|
||||
base/src/libCom/osi/os Operating system dependant code in subdirectories
|
||||
base/src/libCom/ring Methods for creating and using ring buffers
|
||||
base/src/libCom/taskwd Task watchdog
|
||||
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ?)
|
||||
base/src/libCom/timer Timer
|
||||
@@ -193,19 +209,19 @@ Directory Structure
|
||||
base/src/toolsComm Code for the build tools antelope and e_flex
|
||||
base/src/util Utilities (ca_test, iocLogServer, startCArepeater)
|
||||
base/src/vxWorks R3.13 compatibility code specific to vxWorks
|
||||
base/src/RTEMS Code to configure RTEMS for EPICS
|
||||
base/startup Scripts for setting up path and environment
|
||||
|
||||
Install directories created by the build:
|
||||
|
||||
base/bin Installed scripts and executables in subdirs
|
||||
base/lib Installed libraries in arch subdirectories
|
||||
base/db Installed data bases
|
||||
base/dbd Installed data base definitions
|
||||
base/html Installed html documentation
|
||||
base/include Installed header files
|
||||
base/include/os Installed os specific header files
|
||||
base/templates Installed templates
|
||||
base/javalib Installed java class files
|
||||
base/html Installed html documentation
|
||||
base/lib Installed libraries in arch subdirectories
|
||||
base/templates Installed templates
|
||||
|
||||
Build related components
|
||||
|
||||
@@ -230,6 +246,7 @@ Build related components
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
|
||||
base/configure directory - contains build definitions and rules
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
@@ -239,7 +256,7 @@ Build related components
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
Makefile Installs CONFIG* RULES* creates CONFIG_APP_INCLUDE
|
||||
RELEASE Location of external products such as Tornado II
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
@@ -255,8 +272,9 @@ Build related components
|
||||
CONFIG.<host>.<target> Specific host-target build definitions
|
||||
CONFIG.Common.<target> Specific target definitions for all hosts
|
||||
CONFIG.<host>.Common Specific host definitions for all targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all target
|
||||
CONFIG.<host>.vxWorksCommon Specific host definitions for all vx targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all targets
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts
|
||||
CONFIG.Common.vxWorksCommon Specific host definitions for all vx targets
|
||||
CONFIG_COMPAT R3.13 arch compatibility definitions
|
||||
CONFIG_SITE.<host>.<target> Site specific host-target definitions
|
||||
CONFIG_SITE.Common.<target> Site specific target defs for all hosts
|
||||
@@ -303,7 +321,7 @@ Building EPICS base (Unix and Win32)
|
||||
for a list of supported EPICS_HOST_ARCH values.
|
||||
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the
|
||||
On WIN32, some versions of Perl require that the
|
||||
environment variable PERLLIB be set to <perl directory
|
||||
location>.
|
||||
|
||||
@@ -311,18 +329,24 @@ Building EPICS base (Unix and Win32)
|
||||
As already mentioned, you must have the perl executable
|
||||
and you may need C and C++ compilers in your search path.
|
||||
For building base you also must have echo in your search
|
||||
path. For Unix host builds you also need touch, cpp, cp, rm,
|
||||
path. For Unix host builds you also need ln, cpp, cp, rm,
|
||||
mv, and mkdir in your search path and /bin/chmod must
|
||||
exist. On some Unix systems you may also need ar and ranlib
|
||||
in your path, and the c compiler may require ld in your path.
|
||||
On solaris systems you need uname in your path.
|
||||
in your path, and the c compiler may require as and ld in
|
||||
your path. On solaris systems you need uname in your path.
|
||||
|
||||
Unix LD_LIBRARY_PATH
|
||||
If you plan to build EPICS base shared libraries instead of
|
||||
archive libraries, on Unix systems you will need to add
|
||||
fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to
|
||||
your LD_LIBRARY_PATH environment variable. On Linux systems,
|
||||
building shared libraries is the default setting.
|
||||
It is no longer necessary to have LD_LIBRARY_PATH include
|
||||
EPICS directories on Unix type system. R3.14 shared libraries
|
||||
and executables will contain the full path name to libraries
|
||||
they require. However, if you move the EPICS directories
|
||||
from their build-time location then in order for libraries
|
||||
to be found at runtime LD_LIBRARY_PATH must include the full
|
||||
pathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when
|
||||
invoking executables. Building shared libraries is now the
|
||||
default setting for all Unix type hosts. NOTE: You will still
|
||||
need LD_LIBRARY_PATH for R3.13 extension shared libraries
|
||||
even if the R3.13 extensions are built with R3.14 base.
|
||||
|
||||
Win32 PATH
|
||||
On WIN32 systems, building shared libraries is the default
|
||||
@@ -416,12 +440,11 @@ Example application and extension
|
||||
install location bin/<hostarch> directory during the base build.
|
||||
|
||||
Instructions for building and executing the 3.14 example application
|
||||
can be found in the section "Example Application" of Chapter 2, "New
|
||||
Features for 3.14", in the "IOC Application Developer's Guide
|
||||
R3.14.1". The "Example Application" section briefly explains
|
||||
how to create and build an example application in a user created <top>
|
||||
directory. It also explains how to run the example application on a
|
||||
vxWorks ioc or a host system and run an example channel access client
|
||||
on the host system.
|
||||
can be found in the section "Example Application" of Chapter 2, "Getting
|
||||
Started", in the "IOC Application Developer's Guide R3.14.2". The
|
||||
"Example IOC Application" section briefly explains how to create and
|
||||
build an example application in a user created <top> directory. It also
|
||||
explains how to run the example application on a vxWorks ioc or a host
|
||||
system and run an example channel access client on the host system.
|
||||
|
||||
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
Installation notes for EPICS on Mac OS X (Darwin).
|
||||
==================================================
|
||||
|
||||
$Id$
|
||||
|
||||
EPICS Base
|
||||
==========
|
||||
1) EPICS for Mac OS X (Darwin) can not be built with OS X Developer Tools
|
||||
older than the April 2002 release. The April tools, which were the most
|
||||
recent when this note was written, are not bug-free. The compiler produces
|
||||
bad code when run with -O3 or higher so CONFIG.darwin-ppc.darwin-ppc sets
|
||||
the optimization level to -O2. Hopefully a new release of developer tools
|
||||
will remove this restriction.
|
||||
|
||||
2) As distributed, EPICS on Mac OS X uses the readline library. The easiest
|
||||
way to get this library on to your system is to download and install it
|
||||
using the Fink package manager which may be found at:
|
||||
http://fink.sourceforge.net/
|
||||
If you'd rather not use readline you can make the appropriate changes to
|
||||
src/libCom/osi/os/Darwin/osdReadline.h
|
||||
and then rebuild EPICS base.
|
||||
|
||||
3) If broadcasts are not seen locally, then it may help to add "localhost"
|
||||
(127.0.0.1) to the EPICS_CA_ADDR_LIST.
|
||||
|
||||
EPICS Extensions
|
||||
================
|
||||
Many extensions build and run properly on OS X. To build and run medm, first
|
||||
obtain the X11 and OpenMotif3 packages from Fink.
|
||||
Medm doesn't actually use readline, but if you're using shared libraries and
|
||||
you don't link against libreadline, you'll get Undefined Symbol messages when
|
||||
you try to run medm. I consider this a failing of the OS X shared library
|
||||
system, but Apple doesn't seem to agree.
|
||||
Running X11 applications on Darwin is quite a bit easier if you install the
|
||||
OroborOSX application as well:
|
||||
http://oroborosx.sourceforge.net/
|
||||
179
documentation/README.darwin.html
Normal file
179
documentation/README.darwin.html
Normal file
@@ -0,0 +1,179 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Installation notes for EPICS on Mac OS X (Darwin)</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<h1>Building EPICS base</h1>
|
||||
<ul>
|
||||
<li>
|
||||
To build base:
|
||||
<ol>
|
||||
<li>
|
||||
Set the EPICS_HOST_ARCH environment variable to darwin-ppc.
|
||||
The scripts in the
|
||||
base/startup directory can automate this. For example, here's part
|
||||
of my Bash login script (~/.bash_login):
|
||||
<pre>
|
||||
#
|
||||
# EPICS
|
||||
#
|
||||
EPICS_BASE="${HOME}/src/EPICS/work/epics/base"
|
||||
EPICS_EXTENSIONS="${HOME}/src/EPICS/work/epics/extensions"
|
||||
<strong>.</strong> "${EPICS_BASE}"/startup/Site.profile
|
||||
</pre>
|
||||
</li>
|
||||
<li>
|
||||
<code>cd</code> to the EPICS base top-level source directory.
|
||||
</li>
|
||||
<li>
|
||||
Run <code>make</code>.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
As distributed, EPICS on Mac OS X uses the default command line input
|
||||
routines. IOC applications are much more pleasant to interact with if
|
||||
either the readline or libtecla library is used. The easiest
|
||||
way to get either or both of these libraries on to your system is to
|
||||
download and install them using the either the DarwinPorts
|
||||
distribution or the Fink package manager.
|
||||
<p>
|
||||
Information on DarwinPorts is available from
|
||||
<a href="http://www.opendarwin.org/projects/darwinports/">the DarwinPorts
|
||||
project page</a>.
|
||||
DarwinPorts binary packages are available from
|
||||
<a href="http://packages.opendarwin.org/">here</a>.
|
||||
<p>
|
||||
Fink may be downloaded from
|
||||
<a href="http://fink.sourceforge.net/">the Source Forge</a>.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
If broadcasts are not seen locally, try adding "localhost" (127.0.0.1)
|
||||
to the EPICS_CA_ADDR_LIST.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1>Building EPICS extensions</h1>
|
||||
<p>
|
||||
Many extensions build and run properly on OS X. To build and run medm, first
|
||||
obtain the X11 run-time and developer packages from Apple and the OpenMotif3
|
||||
package from Fink.
|
||||
|
||||
<h1>Objective-C and AppleScript</h1>
|
||||
<p>
|
||||
Code written in Objective-C can be included in host or IOC applications.
|
||||
Here are a couple of short Objective-C examples which can be used to send
|
||||
AppleScript events to other applications on the OS X machine.
|
||||
|
||||
<pre>
|
||||
/*
|
||||
* exampleAppleScriptRecord.m
|
||||
*
|
||||
* Simple Objective-C/AppleScript subroutine record
|
||||
*
|
||||
* To use this record in an application:
|
||||
*
|
||||
* 1) Make the following changes to the application Makefile:
|
||||
* - Add exampleAppleScriptRecord.m to the application SRCS.
|
||||
* - Add -framework Foundation to the application LDFLAGS.
|
||||
* 2) Add the following line to the application database description:
|
||||
* registrar(registerExampleAppleScript)
|
||||
* 3) Add a record to the application database:
|
||||
* record(sub,"setVolume")
|
||||
* {
|
||||
* field(SNAM,"exampleAppleScriptProcess")
|
||||
* }
|
||||
*/
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <registryFunction.h>
|
||||
#include <subRecord.h>
|
||||
#include <alarm.h>
|
||||
#include <errlog.h>
|
||||
#include <recGbl.h>
|
||||
#include <epicsExport.h>
|
||||
|
||||
/*
|
||||
* Shim between EPICS and NSAppleScript class.
|
||||
*/
|
||||
static long
|
||||
exampleAppleScriptProcess(struct subRecord *psub)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
NSDictionary *err;
|
||||
NSAppleScript *nsa;
|
||||
|
||||
nsa = [[NSAppleScript alloc] initWithSource:[NSString stringWithFormat:
|
||||
@"tell application \"Finder\" to set volume %g\n", psub->a]];
|
||||
if ([nsa executeAndReturnError:&err] == nil) {
|
||||
errlogPrintf("Failed to run AppleScript: %s\n",
|
||||
[[err objectForKey:NSAppleScriptErrorMessage] cString]);
|
||||
recGblSetSevr(psub, SOFT_ALARM, INVALID_ALARM);
|
||||
}
|
||||
[nsa release];
|
||||
[pool release];
|
||||
return 0;
|
||||
}
|
||||
|
||||
static registryFunctionRef subRef[] = {
|
||||
{"exampleAppleScriptProcess",(REGISTRYFUNCTION)exampleAppleScriptProcess}
|
||||
};
|
||||
|
||||
static void registerExampleAppleScript(void)
|
||||
{
|
||||
registryFunctionRefAdd(subRef,NELEMENTS(subRef));
|
||||
}
|
||||
epicsExportRegistrar(registerExampleAppleScript);
|
||||
|
||||
|
||||
==============================================================================
|
||||
/*
|
||||
* runAppleScript.m
|
||||
*
|
||||
* Simple Objective-C/AppleScript shim to allow EPICS application to
|
||||
* send arbitrary AppleScript messages to other applications.
|
||||
*
|
||||
* To use this subroutine in an application make the following
|
||||
* changes to the application Makefile:
|
||||
* - Add runAppleScript.m to the application SRCS.
|
||||
* - Add -framework Foundation to the application LDFLAGS.
|
||||
*/
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <errlog.h>
|
||||
|
||||
int
|
||||
runAppleScript(const char *format, ...)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
NSString *script;
|
||||
NSMutableDictionary *err;
|
||||
NSAppleScript *nsa;
|
||||
va_list args;
|
||||
int ret = 0;
|
||||
|
||||
va_start(args, format);
|
||||
script = [[NSString alloc] initWithFormat:
|
||||
[NSString stringWithCString:format] arguments:args];
|
||||
va_end(args);
|
||||
err = [NSMutableDictionary dictionaryWithCapacity:10];
|
||||
nsa = [[NSAppleScript alloc] initWithSource:script];
|
||||
if ([nsa executeAndReturnError:&err] == nil) {
|
||||
errlogPrintf("Failed to run AppleScript: %s\n",
|
||||
[[err objectForKey:NSAppleScriptErrorMessage] cString]);
|
||||
ret = -1;
|
||||
}
|
||||
[script release];
|
||||
[nsa release];
|
||||
[pool release];
|
||||
return ret;
|
||||
}
|
||||
<pre>
|
||||
<hr>
|
||||
$Id$
|
||||
</body>
|
||||
</html>
|
||||
@@ -5,51 +5,129 @@ Please mail questions, comments, corrections, additional examples, etc.
|
||||
to Ralph.Lange@mail.bessy.de
|
||||
|
||||
NOTE: 3.14 will ONLY compile on HPUX 11 systems. HPUX 10 does not have
|
||||
the necessary thread support and will never ever be supported for
|
||||
EPICS base versions >= 3.14.
|
||||
the necessary posix thread support and will never ever be
|
||||
supported for EPICS base versions >= 3.14.
|
||||
|
||||
|
||||
Tools needed
|
||||
------------
|
||||
|
||||
o HP's ANSI C compiler (cc)
|
||||
o For compiling with HP native compilers
|
||||
|
||||
For compiling with the HP C++ compiler (hpux-parisc)
|
||||
o Recent version of HP's aCC C++ compiler aCC (we use A.03.39)
|
||||
- HP's ANSI C compiler (cc)
|
||||
|
||||
For compiling with GNU g++
|
||||
o GNU g++ >= 2.95 (we use 3.2)
|
||||
- Recent version of HP's aCC C++ compiler aCC
|
||||
(we currently use A.03.45; A.03.39 should also do)
|
||||
HP's old frontend-based C++ compiler (CC) will not work.
|
||||
|
||||
o For compiling with the GNU compilers
|
||||
|
||||
- GNU assembler (part of the binutils package)
|
||||
|
||||
- GNU gcc/g++ >= 3 (I would suggest >= 3.2)
|
||||
If you do not have GCC as a binary package, you can quite easily
|
||||
build a GCC from scratch (aka "make bootstrap"). I was successful
|
||||
using the following options to the configure script:
|
||||
../configure
|
||||
--prefix=<compiler install location>
|
||||
--enable-version-specific-runtime-libs
|
||||
--enable-languages=c++
|
||||
--with-gnu-as
|
||||
--with-as=<location of GNU assembler executable>
|
||||
--enable-shared
|
||||
--enable-threads=posix
|
||||
Remember to set the install location of your GCC package in the
|
||||
configuration file ../configure/os/CONFIG_SITE.Common.hpux-parisc-gnu
|
||||
to make the EPICS builds use it.
|
||||
|
||||
IMPORTANT NOTE: aCC is the standard C++ compiler for EPICS on HP-UX 11.
|
||||
Compiling Base with the GNU compiler set is experimental. Usually things
|
||||
will compile, but applications may experience problems. (See below.) For
|
||||
productional systems, using aCC is strictly recommended.
|
||||
|
||||
|
||||
Environment
|
||||
-----------
|
||||
|
||||
Default is compiling with the generic HP aCC compiler. To use the GNU compiler,
|
||||
set the environment variable EPICS_HOST_ARCH to hpux-parisc-gnu before starting
|
||||
to compile base.
|
||||
Default is compiling with the generic HP aCC compiler. To use the GNU
|
||||
suite, set the environment variable EPICS_HOST_ARCH=hpux-parisc-gnu
|
||||
before starting to compile base.
|
||||
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
Should be quite straightforward. Edit the CONFIG_SITE files and "make".
|
||||
(Be sure that GNU make is in your path or call it explicitly as the
|
||||
standard make on HP is _not_ GNU.)
|
||||
|
||||
When compiling with aCC, you will see quite a few warning messages. Most
|
||||
of these warnings - if not all - will be in system header files. There
|
||||
is no decent way to suppress these warnings without suppressing the
|
||||
warnings in the EPICS code. So close your eyes and stand it.
|
||||
You may also note an unusual compile line that filters stuff through a
|
||||
perl script. This is part of a mechanism that allows to selectively
|
||||
block bogus warnings (using special comment lines) that are generated by
|
||||
the HP compiler. Without this treatment you would see zillions of
|
||||
warning messages. Feel free to try this by setting COMPILE_FILTER.cpp
|
||||
empty on the compile line ... ;-)
|
||||
|
||||
|
||||
Shared Libraries
|
||||
----------------
|
||||
|
||||
Generating shared libraries is supported, suggested and the default.
|
||||
You have to set the appropriate search path variable in
|
||||
../configure/os/CONFIG_SITE.hpux-parisc.hpux-parisc to make shared
|
||||
libraries work properly. (You can always override with setting the
|
||||
SHLIB_PATH environment variable when executiong the binaries.)
|
||||
|
||||
If you are planning to carry around your binaries to other machines, you
|
||||
have to set the shared library search path accordingly (i.e. to the
|
||||
generic location where you will install the shared libraries of EPICS
|
||||
base on the target machines). This is done in the configure area (in the
|
||||
file ../configure/os/CONFIG_SITE.Common.hpux-parisc).
|
||||
|
||||
The setting of internal and external search paths for libraries is aimed
|
||||
at stability. The order of search is:
|
||||
1. Where the library was found at compile time. (always)
|
||||
2. The INSTALL_LOCATION at compile time. (convenient when developing)
|
||||
3. Any locations explicitly configured. (generic location)
|
||||
4. The environment variable SHLIB_PATH. (fallback)
|
||||
|
||||
I changed the usual behaviour of "environment overrides default" to
|
||||
increase reliability: As long as the libraries are in the generic
|
||||
location, a user can set the environment wildly to anything without any
|
||||
impact on the reliable operation of EPICS applications.
|
||||
Still on systems where the libraries are not found at the generic place
|
||||
(and you don't have the root privilege to put them there), setting the
|
||||
environment you can point your client application to a fallback
|
||||
location.
|
||||
|
||||
You can always change the order of search paths and disable usage of the
|
||||
internal path and/or environment variable later on in the binary without
|
||||
recompiling using the "chatr" (change attributes) command.
|
||||
|
||||
|
||||
Known Problems
|
||||
--------------
|
||||
Known Possible Problems
|
||||
-----------------------
|
||||
|
||||
o There is a problem with a CA client not detecting a network
|
||||
connection going down. This only happens with some clients, though.
|
||||
|
||||
o Statically built binaries don't work properly (yet).
|
||||
|
||||
o GNU built binaries don't work properly (yet).
|
||||
|
||||
o The 3.13 compatibility mode isn't thoroughly tested yet.
|
||||
o Using the GNU compiler is experimental.
|
||||
- CA clients compiled with the GNU compiler have some serious
|
||||
problems related to the connection loss management of Channel
|
||||
Access. This shows up as sudden messages "Unable to contact CA
|
||||
repeater" and loss of the CA repeater connection. When the IOC gets
|
||||
back after a reboot, the client program may never reconnect and has
|
||||
to be restarted. I will be looking into this problem so that
|
||||
hopefully it will go away in a future release. But: aCC is the main
|
||||
platform, getting things to run under GNU is a low priority task
|
||||
for me, so any help is appreciated very much.
|
||||
- Caveat: To be compatible with HP-UX 10, GCC defaults to use the DCE
|
||||
(user space) threads package. If you see messages like "errLogInit
|
||||
failed" when running a Channel Access client, you are probably
|
||||
linking against the old DCE threads library instead of libpthread.
|
||||
|
||||
o The 3.13 compatibility mode has passed some general testing for both
|
||||
native and GNU compilers with static and shared libraries and for
|
||||
statically and dynamically linked builds. Not every combination has
|
||||
been thoroughly tested. If the build system won't build your 3.13
|
||||
application successfully, contact me.
|
||||
|
||||
|
||||
Please feel free to contact me if you encounter serious problems.
|
||||
|
||||
@@ -17,7 +17,7 @@ EPICS base</h2></center>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Release 3.14.1</h2></center>
|
||||
Release 3.14.2</h2></center>
|
||||
|
||||
<h3>
|
||||
What is EPICS base?</h3>
|
||||
@@ -58,12 +58,25 @@ directory and then make changes for your new platforms.</blockquote>
|
||||
|
||||
<blockquote><b>Host platforms (operating system - architecture - <alternate
|
||||
c++ compiler>)</b>
|
||||
<blockquote><tt>solaris-sparc</tt>
|
||||
<br><tt>solaris-sparc-gnu</tt>
|
||||
<blockquote>
|
||||
|
||||
<br><tt>darwin-ppc (Mac OS X)</tt>
|
||||
<br><tt>hpux-parisc</tt>
|
||||
<br><tt>hpux-parisc-gnu</tt>
|
||||
<br><tt>linux-mpc82xx</tt>
|
||||
<br><tt>linux-x86</tt>
|
||||
<br><tt>lynxos-x86</tt>
|
||||
<br><tt>osf-alpha</tt>
|
||||
<br><tt>solaris-sparc</tt>
|
||||
<br><tt>solaris-sparc-gnu</tt>
|
||||
<br><tt>solaris-x86</tt>
|
||||
<br><tt>solaris-x86-gnu</tt>
|
||||
<br><tt>sun4-x86</tt>
|
||||
<br><tt>win32-x86</tt>
|
||||
<br><tt>win32-x86-borland</tt>
|
||||
<br><tt>darwin-ppc (Mac OS X)</tt></blockquote>
|
||||
|
||||
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
@@ -76,12 +89,17 @@ Cross compile target platforms (operating system - architecture)</h4>
|
||||
<br><tt>vxWorks-68040</tt>
|
||||
<br><tt>vxWorks-68040lc</tt>
|
||||
<br><tt>vxWorks-68060</tt>
|
||||
<br><tt>vxWorks-pentium</tt>
|
||||
<br><tt>vxWorks-ppc603</tt>
|
||||
<br><tt>vxWorks-ppc603_long</tt>
|
||||
<br><tt>vxWorks-ppc604</tt>
|
||||
<br><tt>vxWorks-ppc604_long</tt>
|
||||
<br><tt>vxWorks-pentium</tt>
|
||||
<br><tt>RTEMS-gen68360</tt>
|
||||
<br><tt>RTEMS-mcp750</tt>
|
||||
<br><tt>RTEMS-mvme167</tt>
|
||||
<br><tt>RTEMS-pc386</tt></blockquote>
|
||||
<br><tt>RTEMS-pc386</tt>
|
||||
<br><tt>RTEMS-psim</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
@@ -108,11 +126,13 @@ in your search path.
|
||||
<p><b>Unzip and tar (Winzip on WIN32 systems)</b>
|
||||
<br>You must have tools available to unzip and untar the EPICS base distribution
|
||||
file.
|
||||
<p><b>Tornado 2.0</b>
|
||||
<br>You must have Tornado 2.0 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2.0 provides the cross-compiler and header
|
||||
<p><b>Tornado 2</b>
|
||||
<br>
|
||||
You must have Tornado 2 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2 provides the cross-compiler and header
|
||||
files needed to build for these target systems. The full path location
|
||||
to Tornado 2.0 must be specified in the base/configure/RELEASE or base/configure/RELEASE.<hostarch>
|
||||
to Tornado 2 should be specified in the base/configure/RELEASE or
|
||||
base/configure/RELEASE.<hostarch>
|
||||
file. You will also need one or more board support packages. Consult the
|
||||
vxWorks documentation for details.
|
||||
<p><b>Optional GNU compiler requirement for solaris-sparc and win32-x86
|
||||
@@ -135,9 +155,9 @@ Documentation</h3>
|
||||
<blockquote>EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL <a href="http://www.aps.anl.gov/epics">http://www.aps.anl.gov/epics</a></blockquote>
|
||||
|
||||
<blockquote>This README.html is in the base distribution file and will be
|
||||
available on the IOC software R3.14 EPICS WWW page which can be accessed
|
||||
from the APS EPICS home page.</blockquote>
|
||||
<blockquote>This README.html file is in the base distribution and
|
||||
available on the IOC software, Base R3.14, release number, web page
|
||||
which can be accessed from the APS EPICS home page.</blockquote>
|
||||
|
||||
<h3>
|
||||
WWW pages</h3>
|
||||
@@ -177,10 +197,10 @@ Operating system independent build config files</tt>
|
||||
Operating system dependent build config files</tt>
|
||||
<br><tt> base/configure/tools
|
||||
Perl and shell scripts used in the build</tt>
|
||||
<br><tt> base/copyright
|
||||
Text files describing software copyrights</tt>
|
||||
<br><tt> base/src
|
||||
All epics base source code in subdirectories</tt>
|
||||
<br><tt> base/src/RTEMS
|
||||
Code to configure RTEMS for EPICS</tt>
|
||||
<br><tt> base/src/as
|
||||
Access security</tt>
|
||||
<br><tt> base/src/bpt
|
||||
@@ -188,7 +208,7 @@ Break point table</tt>
|
||||
<br><tt> base/src/ca
|
||||
Channel access</tt>
|
||||
<br><tt> base/src/cas
|
||||
Channel access server</tt>
|
||||
Channel access server library and examples</tt>
|
||||
<br><tt> base/src/db
|
||||
Database access</tt>
|
||||
<br><tt> base/src/db/test
|
||||
@@ -205,10 +225,14 @@ General data descriptor</tt>
|
||||
Ioc shell command interpreter</tt>
|
||||
<br><tt> base/src/libCom
|
||||
General purpose library code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/RTEMS
|
||||
Code to configure RTEMS for EPICS</tt>
|
||||
<br><tt> base/src/libCom/bucketLib
|
||||
Hash bucket</tt>
|
||||
<br><tt> base/src/libCom/calc
|
||||
Algebraic expression interpreter</tt>
|
||||
<br><tt> base/src/libCom/cppStd
|
||||
Support for C++ standard template library</tt>
|
||||
<br><tt> base/src/libCom/cvtFast
|
||||
Fast number to string conversion</tt>
|
||||
<br><tt> base/src/libCom/cxxTemplates C++ templates
|
||||
@@ -237,6 +261,8 @@ Miscellaneous utilities</tt>
|
||||
Operating system independent code</tt>
|
||||
<br><tt> base/src/libCom/osi/os
|
||||
Operating system dependant code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/ring
|
||||
Methods for creating and using ring buffers</tt>
|
||||
<br><tt> base/src/libCom/taskwd
|
||||
Task watchdog</tt>
|
||||
<br><tt> base/src/libCom/test
|
||||
@@ -273,14 +299,18 @@ Scripts for setting up path and environment</tt>
|
||||
build:
|
||||
<p><tt> base/bin
|
||||
Installed scripts and executables in subdirs</tt>
|
||||
<br><tt> base/lib
|
||||
Installed libraries in arch subdirectories</tt>
|
||||
<br><tt> base/db
|
||||
Installed data bases</tt>
|
||||
<br><tt> base/html
|
||||
Installed html documentation</tt>
|
||||
<br><tt> base/dbd
|
||||
Installed data base definitions</tt>
|
||||
<br><tt> base/include
|
||||
Installed header files</tt>
|
||||
<br><tt> base/include/os
|
||||
Installed os specific header files</tt>
|
||||
<br><tt> base/lib
|
||||
Installed libraries in arch subdirectories</tt>
|
||||
<br><tt> base/templates
|
||||
Installed templates</tt>
|
||||
<h3>
|
||||
@@ -322,6 +352,8 @@ WIN32 bat file to set path and env variables</tt>
|
||||
<li>
|
||||
base/configure directory - contains build definitions and rules</li>
|
||||
|
||||
<br><tt>CONFIG
|
||||
Includes configure files and allows variable overrides</tt>
|
||||
<br><tt>CONFIG.CrossCommon Cross build definitions</tt>
|
||||
<br><tt>CONFIG.gnuCommon Gnu compiler build
|
||||
definitions for all archs</tt>
|
||||
@@ -339,8 +371,8 @@ Definitions of EPICS environment variables</tt>
|
||||
Site specific make defintions</tt>
|
||||
<br><tt>CONFIG_SITE_ENV Site defaults
|
||||
for EPICS environment variables</tt>
|
||||
<br><tt>CONFIG
|
||||
Includes configure files and allows variable overrides</tt>
|
||||
<br><tt>MAKEFILE
|
||||
Installs CONFIG* RULES* creates CONFIG_APP_INCLUDE</tt>
|
||||
<br><tt>RELEASE
|
||||
Location of external products such as Tornado II</tt>
|
||||
<br><tt>RULES
|
||||
@@ -370,8 +402,10 @@ target definitions for all hosts</tt>
|
||||
<br><tt>CONFIG.<host>.Common
|
||||
Specific host definitions for all targets</tt>
|
||||
<br><tt>CONFIG.UnixCommon.Common Definitions for Unix
|
||||
hosts and all target</tt>
|
||||
<br><tt>CONFIG.<host>.vxWorksCommon Specific host definitions for all
|
||||
hosts and all targets</tt>
|
||||
<br><tt>CONFIG.Common.UnixCommon Definitions for Unix
|
||||
targets and all hosts</tt>
|
||||
<br><tt>CONFIG.Common.vxWorksCommon Specific host definitions for all
|
||||
vx targets</tt>
|
||||
<br><tt>CONFIG_COMPAT
|
||||
R3.13 arch compatibility definitions</tt>
|
||||
@@ -417,42 +451,66 @@ Building EPICS base (Unix and Win32)</h3>
|
||||
<blockquote>Unzip and untar the distribution file. Use WinZip on Windows
|
||||
systems.</blockquote>
|
||||
S<b>et environment variables</b>
|
||||
<blockquote>Files in the base/startup directory have been provided to help
|
||||
|
||||
|
||||
<blockquote>
|
||||
|
||||
Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
|
||||
<p><b>EPICS_HOST_ARCH</b>
|
||||
<br>Before you can build or use EPICS R3.14, the environment variable EPICS_HOST_ARCH
|
||||
<br>
|
||||
Before you can build or use EPICS R3.14, the environment variable EPICS_HOST_ARCH
|
||||
must be defined. A perl script EpicsHostArch.pl in the base/startup directory
|
||||
has been provided to help set EPICS_HOST_ARCH. You should have EPICS_HOST_ARCH
|
||||
set to your host operating system followed by a dash and then your host
|
||||
architecture, e.g. solaris-sparc. If you are not using the OS vendor's
|
||||
c/c++ compiler for host
|
||||
<br>builds, you will need another dash followed by the alternate compiler
|
||||
builds, you will need another dash followed by the alternate compiler
|
||||
name (e.g. "-gnu" for GNU c/c++ compilers on a solaris host or "-borland"
|
||||
for Borland c/c++ compilers on a WIN32 host). See configure/CONFIG_SITE
|
||||
for a list of supported EPICS_HOST_ARCH values.
|
||||
<p><b>PERLLIB</b>
|
||||
<br>On WIN32, some versions of Perl require that the environment
|
||||
variable PERLLIB be set to <perl directory location>.</blockquote>
|
||||
|
||||
<blockquote><b>PATH</b>
|
||||
<br>As already mentioned, you must have the perl executable and you may
|
||||
|
||||
<p><b>PERLLIB</b>
|
||||
<br>
|
||||
On WIN32, some versions of Perl require that the environment
|
||||
variable PERLLIB be set to <perl directory location>.
|
||||
|
||||
<p><b>PATH</b>
|
||||
<br>
|
||||
As already mentioned, you must have the perl executable and you may
|
||||
need C and C++ compilers in your search path. For building base you also
|
||||
must have echo in your search path. For Unix host builds you also need
|
||||
touch, cpp, cp, rm, mv, and mkdir in your search path and /bin/chmod must
|
||||
exist. On some Unix systems you may also need ar and ranlib in your path,
|
||||
and the c compiler may require ld in your path. On solaris systems you
|
||||
need uname in your path.
|
||||
|
||||
<p><b>LD_LIBRARY_PATH</b>
|
||||
<br>If you plan to build EPICS base shared libraries instead of archive
|
||||
libraries, on Unix systems you will need to add fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
|
||||
to your LD_LIBRARY_PATH environment variable.
|
||||
On linux systems, building shared libraries is the default setting.
|
||||
<p><b>PATH</b>
|
||||
<br>On WIN32 systems, building shared libraries is the default setting
|
||||
<br>
|
||||
It is no longer necessary to have LD_LIBRARY_PATH include
|
||||
EPICS directories on Unix type system. R3.14 shared libraries
|
||||
and executables will contain the full path name to libraries
|
||||
they require. However, if you move the EPICS directories
|
||||
from their build-time location then in order for libraries
|
||||
to be found at runtime LD_LIBRARY_PATH must include the full
|
||||
pathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when
|
||||
invoking executables. Building shared libraries is now the
|
||||
default setting for all Unix type hosts. NOTE: You will still
|
||||
need LD_LIBRARY_PATH for R3.13 extension shared libraries
|
||||
even if the R3.13 extensions are built with R3.14 base.
|
||||
|
||||
<p><b>Win32 PATH</b>
|
||||
<br>
|
||||
On WIN32 systems, building shared libraries is the default setting
|
||||
and you will need to add fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
|
||||
to your path. Building shared libraries is determined by the value of the
|
||||
macro SHARED_LIBRARIES in CONFIG_SITE (either YES or NO).
|
||||
<br> </blockquote>
|
||||
|
||||
|
||||
</blockquote>
|
||||
|
||||
<b>Do site-specific build configuration</b>
|
||||
<blockquote><b>Site configuration</b>
|
||||
<br>To configure EPICS, you may want to modify the default definitions
|
||||
@@ -531,13 +589,15 @@ extension that can be built and executed. The makeBaseApp.pl and makeBaseExt.pl
|
||||
scripts are installed into the install location bin/<hostarch> directory
|
||||
during the base build.</blockquote>
|
||||
|
||||
<blockquote>Instructions for building and executing the 3.14 example application
|
||||
can be found in the section "Example Application" of Chapter 2, "New Features
|
||||
for 3.14", in the "IOC Application Developer's Guide R3.14.1".
|
||||
The "Example Application" section briefly explains how to create and build
|
||||
an example application in a user created <top> directory. It also explains
|
||||
how to run the example application on a vxWorks ioc or a host system and
|
||||
run an example channel access client on the host system.</blockquote>
|
||||
<blockquote>
|
||||
Instructions for building and executing the 3.14 example application
|
||||
can be found in the section "Example Application" of Chapter 2, "Getting
|
||||
Started", in the "IOC Application Developer's Guide R3.14.2". The
|
||||
"Example IOC Application" section briefly explains how to create and
|
||||
build an example application in a user created <top> directory. It also
|
||||
explains how to run the example application on a vxWorks ioc or a host
|
||||
system and run an example channel access client on the host system.
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,10 +9,86 @@
|
||||
<body lang="en">
|
||||
|
||||
<center>
|
||||
<h1>EPICS Release base 3.14.1</h1>
|
||||
<h1>EPICS Release base 3.14.2</h1>
|
||||
|
||||
<h1>Dec 20 2002</h1>
|
||||
<h1>May 21 2003</h1>
|
||||
</center>
|
||||
|
||||
<center>
|
||||
<h2>Changes since 3.14.1</h2>
|
||||
</center>
|
||||
|
||||
<p><strong>Build System</strong></p>
|
||||
<p>Major changes have been made to the build system.
|
||||
The good news is that the rules for support and ioc applications
|
||||
are now greatly simplified. The bad news is that it does mean
|
||||
changes for existing 3.14.1 applications. Please see:</p>
|
||||
<p><a href="ConvertingR3.14.1AppsToR3.14.2.html">ConvertingR3.14.1AppsToR3.14.2</a></p>
|
||||
<p>for details. If you are using the <strong>function</strong> DBD keyword it no
|
||||
longer exists. Please read this conversion document for details.</p>
|
||||
|
||||
<p><strong>Application Developer's Guide</strong></p>
|
||||
<p>The old chapter "New Feature's for 3.14" has been replaced by
|
||||
a new chapter "Getting Started". Please read it. It provides
|
||||
a simplified set of rules that can be used to build most
|
||||
support and ioc applications. Many minor changes have also been made.</p>
|
||||
|
||||
<p><strong>dbGetLink</strong></p>
|
||||
<p>A bug in dbGetLink resulted in nRequest not being given the value 0
|
||||
if the link is a constant link. This in turn caused the waveform
|
||||
record to always set NORD=NELEM. Thus if an application trys
|
||||
to write a waveform via the steps:</p>
|
||||
<pre>
|
||||
prset->get_array_info(paddr,&no_elements,&offset);
|
||||
<< write nNew elements into array >>
|
||||
prset->put_array_info(paddr,nNew);
|
||||
</pre>
|
||||
<p>This sets NORD = nNew.
|
||||
But because of the dbGetLink bug, the soft device support attached to
|
||||
the waveform record sets NORD to NELM.</p>
|
||||
<p>This problem is fixed. The actual bug was in macros in dbAccessDefs.h</p>
|
||||
|
||||
<p><strong>Access Security</strong></p>
|
||||
<p>The host names are now converted to lower case.
|
||||
This fixes incompatibilities between various platforms.</p>
|
||||
|
||||
<p><strong>string records</strong></p>
|
||||
<p>Both the stringin and stringout records have two new DBF_MENU fields:
|
||||
APST and MPST. These control whether CA monitors are fired if the new VAL
|
||||
field string is identical to the old one. The default (zero) menu value is
|
||||
"On Change" with behaviour identical to before,
|
||||
set to "Always" if you want a record to fire monitors every time the record
|
||||
is processed (analagous to setting ADEL/MDEL=-1 for numeric record types).</p>
|
||||
|
||||
<p><strong>epicsMessageQueue</strong></p>
|
||||
<p>A new facility that provides the capabilities of vxWorks msgQLib.
|
||||
See the Application Developer's Guide (libCom OSI) for details.</p>
|
||||
|
||||
<p><strong>epicsStdio and errlogPrintf</strong></p>
|
||||
<p>A new facility has been added to libCom described by epicsStdio.h.
|
||||
It contains the functions epicsSnprintf and epicsVsnprintf.
|
||||
These are like the C99 functions snprintf and vsnprintf,
|
||||
which are like sprintf and vsprintf except that they accept a argument
|
||||
limiting the number of characters written.</p>
|
||||
<p>The errlogPrintf facility has been modified to use this facility.
|
||||
Thus it is not longer subject to a possible buffer overflow.</p>
|
||||
|
||||
<p><strong>scanPeriod</strong></p>
|
||||
<p>This is a new function provided by the Database Scanning facility.
|
||||
Given an index for the choices defined by menuScan.h, it returns
|
||||
the scan period in seconds. The argument can just be the scan field
|
||||
of a database record. If the index is not associated with a periodic
|
||||
scan rate, the value 0.0 is returned.</p>
|
||||
|
||||
<p><strong>New epicsString.h function</strong></p>
|
||||
<p>A new function epicsStrCaseCmp has been added. It is like strcmp
|
||||
except that it ignores case.</p>
|
||||
|
||||
<p><strong>macLib</strong></p>
|
||||
<p>macParseDefns did not check for handle==NULL.
|
||||
The documentation for macParseDefns was not correct.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since beta2</h2>
|
||||
</center>
|
||||
|
||||
@@ -122,6 +198,32 @@ compatible between 3.13 and 3.14.</p>
|
||||
<p>Configurable iocsh command-line editing support (none, readline,
|
||||
libtecla)</p>
|
||||
|
||||
<p><strong>CA Reference Manual</strong></p>
|
||||
|
||||
<p>Many additions.</p>
|
||||
|
||||
<p><strong>CA Client Library</strong></p>
|
||||
|
||||
<p>Bugs related to connection speed when creating new channels and other
|
||||
channels are not found fixed. Bugs related to proper schedualing in file
|
||||
descriptor manager based clients fixed. Many other bugs were fixed.
|
||||
Performance was significantly improved.</p>
|
||||
|
||||
<p><strong>Original CA Server Library (still employed in R3.14 by
|
||||
iocCore)</strong></p>
|
||||
|
||||
<p>A bug was fixed where the server was in rare situations using excessive
|
||||
CPU.</p>
|
||||
|
||||
<p><strong>Portable CA Server LIbrary</strong></p>
|
||||
|
||||
<p>Several bugs were fixed when performing integration testing with the
|
||||
channel access gateway.</p>
|
||||
|
||||
<p><strong>GDD</strong></p>
|
||||
|
||||
<p>Many bugs and missing features fixed.</p>
|
||||
|
||||
<center>
|
||||
<h2>Changes since beta1</h2>
|
||||
</center>
|
||||
|
||||
@@ -43,9 +43,11 @@ endif
|
||||
ifneq (,$(findstring RTEMS,$(BUILD_ARCHS)))
|
||||
DIRS += RTEMS
|
||||
endif
|
||||
DIRS += softIoc
|
||||
DIRS += libCom/test
|
||||
DIRS += gdd
|
||||
DIRS += cas
|
||||
DIRS += excas
|
||||
|
||||
include $(TOP)/configure/RULES_DIRS
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user