Compare commits
496 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c136fc07d | ||
|
|
534ca2c86e | ||
|
|
f17ac39f29 | ||
|
|
a4e5e540a9 | ||
|
|
33911cd0af | ||
|
|
1607d2a192 | ||
|
|
140b8a468d | ||
|
|
d84e9cb3ec | ||
|
|
fa24d119dd | ||
|
|
4921187178 | ||
|
|
794811b95a | ||
|
|
aa904449c0 | ||
|
|
1c95101ae1 | ||
|
|
0961378465 | ||
|
|
7655e7859d | ||
|
|
bbc0899423 | ||
|
|
3afade09e6 | ||
|
|
c28520bea6 | ||
|
|
bd4784a858 | ||
|
|
8c2278784c | ||
|
|
2caf1a4f50 | ||
|
|
1fba8dd866 | ||
|
|
87eace1bd4 | ||
|
|
db3a655374 | ||
|
|
8ae0c8960f | ||
|
|
ec26c0dc52 | ||
|
|
ea539fceb6 | ||
|
|
782ff1b303 | ||
|
|
2fb6b2100f | ||
|
|
0012042a5e | ||
|
|
e0d16659e1 | ||
|
|
8303cf053b | ||
|
|
78fc566dc4 | ||
|
|
3961c81740 | ||
|
|
0fdda3f794 | ||
|
|
9802e6c629 | ||
|
|
547c5d06ea | ||
|
|
50ddd62502 | ||
|
|
9fc48c9a6b | ||
|
|
e4075da4d7 | ||
|
|
8ace886cfe | ||
|
|
6c61c0de34 | ||
|
|
e581e88223 | ||
|
|
f4cbdec5ee | ||
|
|
b344841365 | ||
|
|
b867dabad0 | ||
|
|
0cea525682 | ||
|
|
2df7da052a | ||
|
|
59b820d2f5 | ||
|
|
3fda8dc2b0 | ||
|
|
3a335c88f0 | ||
|
|
44a6e9a005 | ||
|
|
1f129d3739 | ||
|
|
720236ed39 | ||
|
|
57c9f9344f | ||
|
|
64cb41f489 | ||
|
|
6fe047731f | ||
|
|
56c4c92588 | ||
|
|
562db1e24c | ||
|
|
1b70afa54b | ||
|
|
f316b4ca81 | ||
|
|
6d8cfeef01 | ||
|
|
b1b72e8cf0 | ||
|
|
cde59e262b | ||
|
|
40b6d1b0ba | ||
|
|
4464cfedaa | ||
|
|
b9fbf2e45b | ||
|
|
42ce1bd2db | ||
|
|
7de356519d | ||
|
|
ff5ca5e041 | ||
|
|
d1bb71809b | ||
|
|
7a49a17d1b | ||
|
|
7cf77b40e6 | ||
|
|
e387c06f59 | ||
|
|
c035566d7d | ||
|
|
57e5406684 | ||
|
|
b4948b4ff6 | ||
|
|
15f6b8c682 | ||
|
|
4868904839 | ||
|
|
1a2fa1bc86 | ||
|
|
e3a61ce4e4 | ||
|
|
efdee3c31a | ||
|
|
ee44663d89 | ||
|
|
90db5a4ab0 | ||
|
|
72dbaa8a0f | ||
|
|
458689a252 | ||
|
|
0daf347ef3 | ||
|
|
e32d8d77dc | ||
|
|
ffe7823c22 | ||
|
|
913f724ebf | ||
|
|
4e5fa9b6b3 | ||
|
|
a6b0ffebca | ||
|
|
7246366222 | ||
|
|
191668023b | ||
|
|
7a23b74a76 | ||
|
|
511d818d18 | ||
|
|
f8565139c2 | ||
|
|
30a02b365f | ||
|
|
b4bc931c72 | ||
|
|
e5d3815280 | ||
|
|
ebd65e6e34 | ||
|
|
8c45eb4a19 | ||
|
|
e1bb171f44 | ||
|
|
656c2462d3 | ||
|
|
f4ec20c8f0 | ||
|
|
72e1dba496 | ||
|
|
001b947702 | ||
|
|
c0d4317ade | ||
|
|
290ec3e22c | ||
|
|
d6b887b363 | ||
|
|
fbebea304b | ||
|
|
dd1d2c10bd | ||
|
|
d3e3137265 | ||
|
|
d764e7d4df | ||
|
|
49ddec4294 | ||
|
|
ce778819bd | ||
|
|
d5bffdb13d | ||
|
|
ba11940aad | ||
|
|
8725e4a67a | ||
|
|
a6e57ba17a | ||
|
|
7d137254af | ||
|
|
31fb3775fd | ||
|
|
1ba658b452 | ||
|
|
6eb25148c5 | ||
|
|
4ade695a60 | ||
|
|
bea22985b6 | ||
|
|
fd6d1ce69c | ||
|
|
844ed6345a | ||
|
|
7315f02888 | ||
|
|
1ba6da438b | ||
|
|
c986597f1c | ||
|
|
38b81b44be | ||
|
|
8382eee11a | ||
|
|
7d80ab72b0 | ||
|
|
3d86367330 | ||
|
|
16a6357ab4 | ||
|
|
f4bfc3928d | ||
|
|
4282d3e9f4 | ||
|
|
1e68d1f89b | ||
|
|
03b6345fe0 | ||
|
|
055bb953b9 | ||
|
|
01d223fafd | ||
|
|
7665d1340c | ||
|
|
dfdbe57fd3 | ||
|
|
0abb615d3a | ||
|
|
02281f4d19 | ||
|
|
f936104e47 | ||
|
|
9f51464ea1 | ||
|
|
f78b00d798 | ||
|
|
a55e69113e | ||
|
|
b6a22aa844 | ||
|
|
5b62da8229 | ||
|
|
8b9dc86233 | ||
|
|
4a898e6ed7 | ||
|
|
58a6493596 | ||
|
|
93809bd857 | ||
|
|
90ed36c572 | ||
|
|
9e49e0131f | ||
|
|
d01e54bd34 | ||
|
|
5c6975b24d | ||
|
|
d7ae0fbce6 | ||
|
|
7d2be4f947 | ||
|
|
6fc8ac3c91 | ||
|
|
6219ab5059 | ||
|
|
2b8055672d | ||
|
|
94301c8838 | ||
|
|
493085cb42 | ||
|
|
1a5bd98408 | ||
|
|
9d435693ab | ||
|
|
619d8aa541 | ||
|
|
4848b0d1e1 | ||
|
|
7651d3f5ac | ||
|
|
f5e287ae39 | ||
|
|
1c18e92da7 | ||
|
|
ae85d44190 | ||
|
|
83618673bc | ||
|
|
d1bbd5037f | ||
|
|
4c9fe7e0c0 | ||
|
|
1235a1444b | ||
|
|
3d717f4476 | ||
|
|
8655ea9e2a | ||
|
|
0fb320c263 | ||
|
|
9663cd58f1 | ||
|
|
039648824c | ||
|
|
4e0ab97038 | ||
|
|
d7d0531394 | ||
|
|
d6fcbe14ab | ||
|
|
710fc16aa4 | ||
|
|
afbcfeaa02 | ||
|
|
3e782f0220 | ||
|
|
7b52eaac73 | ||
|
|
42957877d9 | ||
|
|
245e9b5195 | ||
|
|
bf39f9935c | ||
|
|
70bf066ba9 | ||
|
|
a318ace551 | ||
|
|
16f839ac12 | ||
|
|
cba3d9673d | ||
|
|
162fa000c8 | ||
|
|
0e4891201e | ||
|
|
f7bfbf73f8 | ||
|
|
6a2044cb01 | ||
|
|
9f6e7a5cd7 | ||
|
|
47c6046eef | ||
|
|
eb800fd351 | ||
|
|
54928bf94f | ||
|
|
68dbf8addd | ||
|
|
2e38b09398 | ||
|
|
a2eb148726 | ||
|
|
6129bfc8d5 | ||
|
|
cc3245bf65 | ||
|
|
c73dba8037 | ||
|
|
813add592f | ||
|
|
7ffcfd9bc0 | ||
|
|
c916b60c1d | ||
|
|
f84e70487f | ||
|
|
9aeb33a040 | ||
|
|
530929cd5a | ||
|
|
81b1011d8c | ||
|
|
0d1200ef0b | ||
|
|
b98655b8f3 | ||
|
|
1590358de4 | ||
|
|
c1c8c914db | ||
|
|
9bbe163f52 | ||
|
|
f20ccc6c09 | ||
|
|
d8586726a4 | ||
|
|
d84d198733 | ||
|
|
f2a96aec94 | ||
|
|
957c869c87 | ||
|
|
3c19da6b3b | ||
|
|
f32394e795 | ||
|
|
5d9317339f | ||
|
|
bd57eb8c83 | ||
|
|
5a5e2d8f74 | ||
|
|
337f53c109 | ||
|
|
aea3c3cc66 | ||
|
|
3b27446fbf | ||
|
|
cb0f8d5c72 | ||
|
|
a66a192ed5 | ||
|
|
be6b1c4e31 | ||
|
|
4fc14d2dfb | ||
|
|
84d0a83ba3 | ||
|
|
ebec683578 | ||
|
|
f8e01c5536 | ||
|
|
9338d4ec59 | ||
|
|
5ce69c7db0 | ||
|
|
8edbf9268c | ||
|
|
719a82590c | ||
|
|
68bdaa899e | ||
|
|
a052ed56b2 | ||
|
|
a98ff64fb3 | ||
|
|
7653623e72 | ||
|
|
8d245ba595 | ||
|
|
20bd4e9b23 | ||
|
|
f1b1c6d105 | ||
|
|
6c26a81d97 | ||
|
|
ef06015322 | ||
|
|
23072c0a64 | ||
|
|
9e6b077c7f | ||
|
|
3b9ce581f0 | ||
|
|
01bd9f7ae0 | ||
|
|
f11d5ee101 | ||
|
|
a695c4a45a | ||
|
|
7adda5d417 | ||
|
|
9747ef7bd6 | ||
|
|
a187054e42 | ||
|
|
d023a46165 | ||
|
|
a65c477bd1 | ||
|
|
381efb921c | ||
|
|
1ea4b4414a | ||
|
|
8ee39f8cce | ||
|
|
42f0106d48 | ||
|
|
917e83e391 | ||
|
|
9e08d4d17a | ||
|
|
cff8e62690 | ||
|
|
9a2ce84718 | ||
|
|
d8e85d242b | ||
|
|
6e364ace47 | ||
|
|
365389437c | ||
|
|
a32d3a57c6 | ||
|
|
5f1106d060 | ||
|
|
03c82fa651 | ||
|
|
312c0f1203 | ||
|
|
c460eb410c | ||
|
|
c03f26d84a | ||
|
|
466317b23f | ||
|
|
b8df15f6fa | ||
|
|
f626d80cf8 | ||
|
|
1fe93a927d | ||
|
|
6ea470d7d8 | ||
|
|
39eaa0e335 | ||
|
|
ecc300b8ff | ||
|
|
bff0841343 | ||
|
|
ae35ba28c5 | ||
|
|
b05f1fe396 | ||
|
|
a8a5668142 | ||
|
|
28f70a28a1 | ||
|
|
e48308c850 | ||
|
|
f7412f0c46 | ||
|
|
13f064fd7f | ||
|
|
f0652aa1b6 | ||
|
|
f5f1c51b80 | ||
|
|
e7bb980257 | ||
|
|
c13dc77564 | ||
|
|
163c8c0215 | ||
|
|
31d149d8d9 | ||
|
|
b1234b4667 | ||
|
|
1bbeeb1c87 | ||
|
|
8015df9e1f | ||
|
|
b9886c7faa | ||
|
|
e01b6bd435 | ||
|
|
3c92824bfd | ||
|
|
e7932f03f7 | ||
|
|
78eaf3543c | ||
|
|
1b1c28f239 | ||
|
|
d79877c383 | ||
|
|
d545a8f04f | ||
|
|
23b3154fa8 | ||
|
|
93ac840d6e | ||
|
|
b5acee6f76 | ||
|
|
19073ea8e6 | ||
|
|
e12396c7dd | ||
|
|
acb1bf9b29 | ||
|
|
f3d07ad12f | ||
|
|
f357fd3b13 | ||
|
|
79ef84dc9d | ||
|
|
a8b20f07a8 | ||
|
|
134509a8ea | ||
|
|
6fd2685053 | ||
|
|
826cd573cd | ||
|
|
ca269744a6 | ||
|
|
b4d2fbc98f | ||
|
|
c70c3beca2 | ||
|
|
5d5fd663ff | ||
|
|
f5c64db59f | ||
|
|
990ba62e0b | ||
|
|
2e8595f17f | ||
|
|
cc4b462f8c | ||
|
|
7fccc59fe9 | ||
|
|
4715043141 | ||
|
|
c0052ea44f | ||
|
|
f30a89d249 | ||
|
|
40d0942a81 | ||
|
|
7228190dde | ||
|
|
f4311a3f9b | ||
|
|
5c8a51b6f6 | ||
|
|
8d68c85d8b | ||
|
|
2640c5fa07 | ||
|
|
e18eb714a8 | ||
|
|
b1556bd871 | ||
|
|
f156474714 | ||
|
|
88971886c5 | ||
|
|
433e400c4d | ||
|
|
e484093493 | ||
|
|
73470d5f4c | ||
|
|
776b8855fd | ||
|
|
91a9a60594 | ||
|
|
994e9471e4 | ||
|
|
78a2428dbc | ||
|
|
dc44901194 | ||
|
|
0765d5e0b1 | ||
|
|
6a17b86743 | ||
|
|
4d8ee62087 | ||
|
|
8179cf1d9c | ||
|
|
9958bf91e5 | ||
|
|
58b1017397 | ||
|
|
9a09be011f | ||
|
|
ed82e672b4 | ||
|
|
4569fa1e29 | ||
|
|
48b20cd400 | ||
|
|
f98d74b064 | ||
|
|
ed4a2972d6 | ||
|
|
547e9bcfea | ||
|
|
57635a364b | ||
|
|
cc35e59ff8 | ||
|
|
2e1e5b3949 | ||
|
|
86841c5078 | ||
|
|
32d5aed8b0 | ||
|
|
6b212b0e17 | ||
|
|
99ff6d9a02 | ||
|
|
7ce49bf131 | ||
|
|
7eeb70a8d9 | ||
|
|
dd54062496 | ||
|
|
683c5bddf1 | ||
|
|
80d0245193 | ||
|
|
49e317dccb | ||
|
|
78d25cbf4b | ||
|
|
89442d6ed6 | ||
|
|
3d588b13fc | ||
|
|
e42837e291 | ||
|
|
100318d1b3 | ||
|
|
f8c921e6a0 | ||
|
|
7ae6f9d137 | ||
|
|
aacee9c584 | ||
|
|
8e01d0dfe8 | ||
|
|
f3d2ba9551 | ||
|
|
2f6b8f3c61 | ||
|
|
2ad9341e45 | ||
|
|
20916bbf24 | ||
|
|
6766e46ab5 | ||
|
|
8597ae087b | ||
|
|
e2a933c51f | ||
|
|
11abbb06d7 | ||
|
|
edcb7b96f8 | ||
|
|
31d6255169 | ||
|
|
1fbf624e5f | ||
|
|
4cb0d85b34 | ||
|
|
aadbf07647 | ||
|
|
33b4942ae2 | ||
|
|
3093d8f4f4 | ||
|
|
3a6deaa60a | ||
|
|
9e07d56548 | ||
|
|
41abccccf9 | ||
|
|
9c3fa668f3 | ||
|
|
19409d9c74 | ||
|
|
654a7e05cd | ||
|
|
8be407d608 | ||
|
|
a75cb10cb6 | ||
|
|
3e68815a7b | ||
|
|
92c7cd98a2 | ||
|
|
6c23ca9f80 | ||
|
|
07d187b77a | ||
|
|
40c802ad7b | ||
|
|
68f6b7d47c | ||
|
|
ce3c3919ba | ||
|
|
e6b0b38f61 | ||
|
|
b62d796bff | ||
|
|
77669d793d | ||
|
|
e1b8caa8d7 | ||
|
|
9f5b1a11da | ||
|
|
62618480fd | ||
|
|
6e913fe0bb | ||
|
|
01218d0054 | ||
|
|
71ec516cf5 | ||
|
|
08a4fb3ce7 | ||
|
|
e2289a30df | ||
|
|
a213ccf624 | ||
|
|
e77736ddb2 | ||
|
|
f1a0584273 | ||
|
|
289f5500a4 | ||
|
|
03e3ce0513 | ||
|
|
ffe38fffb8 | ||
|
|
c85052de6c | ||
|
|
292a763d9a | ||
|
|
c5fd57e5ae | ||
|
|
db076183c0 | ||
|
|
15bd6bc402 | ||
|
|
63c20dbb4b | ||
|
|
deae06a694 | ||
|
|
0cabf024d7 | ||
|
|
c4857e820e | ||
|
|
9ca9a3c2e2 | ||
|
|
edf0875bcf | ||
|
|
e155dd411e | ||
|
|
dd7cb80555 | ||
|
|
105448f3f8 | ||
|
|
99053303fb | ||
|
|
a723ea357e | ||
|
|
f8d6677c72 | ||
|
|
b98392f50f | ||
|
|
9027026680 | ||
|
|
a294e3dcb8 | ||
|
|
579c7bad06 | ||
|
|
2862a9b8cf | ||
|
|
307762f424 | ||
|
|
0108f6ae94 | ||
|
|
76c9329b5e | ||
|
|
a7a6c01bea | ||
|
|
4026d9f27c | ||
|
|
1bccf6879e | ||
|
|
f14e6df788 | ||
|
|
bf3c47c3d3 | ||
|
|
a7af535a4f | ||
|
|
31fb641dff | ||
|
|
e6ab9aa7fb | ||
|
|
12e4ad3c5a | ||
|
|
0be13dfc0f | ||
|
|
67ef06c1e3 | ||
|
|
f951aab3f3 | ||
|
|
f3bcf735cc | ||
|
|
448fc10e35 | ||
|
|
1d9543997e | ||
|
|
a58fa323d8 | ||
|
|
e2e7864c3d | ||
|
|
79a2649596 | ||
|
|
e99e352e2c | ||
|
|
4126c71e0e | ||
|
|
fd5b03405a | ||
|
|
a37105e0c7 | ||
|
|
ca1e7b0613 | ||
|
|
438ed926ba | ||
|
|
519f54c06b | ||
|
|
c5773eafb4 | ||
|
|
e48b9ec4ab | ||
|
|
49421de296 | ||
|
|
eee915ced7 |
@@ -130,6 +130,4 @@ endif
|
||||
#etc.
|
||||
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
|
||||
#CMPLR=STRICT
|
||||
#CXXCMPLR=STRICT
|
||||
|
||||
|
||||
@@ -22,9 +22,6 @@ LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
CPP = $(CC) -x c -E
|
||||
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
|
||||
|
||||
CONFORM_CFLAGS_ANSI = -ansi
|
||||
CONFORM_CFLAGS_STRICT = -ansi
|
||||
CONFORM_CFLAGS_TRAD = -traditional
|
||||
PROF_CFLAGS_YES = -p
|
||||
GPROF_CFLAGS_YES = -pg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
@@ -33,8 +30,6 @@ WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -O3
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
CONFORM_CXXFLAGS_NORMAL = -ansi
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
GPROF_CXXFLAGS_YES = -pg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
|
||||
@@ -3,11 +3,10 @@
|
||||
# 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
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# $Id#
|
||||
# $Id$
|
||||
#
|
||||
# check for add-on CFLAGS and CXXFLAGS
|
||||
#
|
||||
@@ -20,8 +19,8 @@
|
||||
# 4) if you have the special case that your USR_CFLAGS_$(OS_CLASS) is
|
||||
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
|
||||
# USR_CFLAGS = <defines for all systems>
|
||||
# USR_CFLAGS_sun4 = -nil-
|
||||
# USR_CFLAGS_DEFAULT = <defines for most systems, not sun4>
|
||||
# USR_CFLAGS_WIN = -nil-
|
||||
# USR_CFLAGS_DEFAULT = <defines for most systems, not WIN32>
|
||||
#
|
||||
# These rules apply to these Makefile-variables:
|
||||
# USR_CFLAGS C flags
|
||||
|
||||
@@ -26,7 +26,7 @@ EPICS_VERSION = 3
|
||||
EPICS_REVISION = 14
|
||||
|
||||
# EPICS_MODIFICATION must be a number >=0 and <256
|
||||
EPICS_MODIFICATION = 10
|
||||
EPICS_MODIFICATION = 11
|
||||
|
||||
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
|
||||
# Not included if zero
|
||||
|
||||
@@ -80,6 +80,10 @@ INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
|
||||
#Directory for OS independant build created files
|
||||
COMMON_DIR = ../O.Common
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Make echo output - suppress echoing if make's '-s' flag is set
|
||||
ECHO := $(if $(findstring s,$(MAKEFLAGS)),\#,@echo)
|
||||
|
||||
#-------------------------------------------------------
|
||||
ifdef T_A
|
||||
|
||||
@@ -101,8 +105,6 @@ BUILD_CLASS = HOST
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build defaults, CONFIG_SITE, CONFIG, or os/CONFIG* will override
|
||||
CMPLR=STRICT
|
||||
CXXCMPLR=STRICT
|
||||
STATIC_BUILD=NO
|
||||
SHARED_LIBRARIES=YES
|
||||
HDEPENDS=YES
|
||||
@@ -112,6 +114,10 @@ HOST_WARN=YES
|
||||
CROSS_WARN=YES
|
||||
GNU=NO
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Run checkRelease in $(TOP)/configure/O.*
|
||||
CONFIG_TARGETS += $(CHECK_RELEASE_$(CHECK_RELEASE))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prefix and suffix
|
||||
DEP=.depends
|
||||
@@ -177,14 +183,14 @@ LIB_BAF=$(addsuffix $(BAF),$(basename $(LIBRARY)))
|
||||
#--------------------------------------------------
|
||||
# C preprocessor, compiler, and linker flag defaults
|
||||
|
||||
# Target architecture specific (solaris,sun4,mv167,...) flags
|
||||
# Target architecture specific flags
|
||||
ARCH_DEP_CPPFLAGS =
|
||||
ARCH_DEP_CFLAGS =
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
ARCH_DEP_LDFLAGS =
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
# Target operating system specific (Unix,Vx,WIN32...) flags
|
||||
# Target operating system specific flags
|
||||
OP_SYS_CPPFLAGS =
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_CXXFLAGS = $(OP_SYS_CFLAGS)
|
||||
@@ -225,11 +231,6 @@ TARGET_CPPFLAGS += $($(basename $@)_CPPFLAGS_$(OS_CLASS)) $($(basename $@)_CPPFL
|
||||
|
||||
TARGET_LDFLAGS = $($*_LDFLAGS)
|
||||
|
||||
# Level of ansi conformance flags
|
||||
CONFORM_CPPFLAGS = $(CONFORM_CPPFLAGS_$(CMPLR))
|
||||
CONFORM_CFLAGS = $(CONFORM_CFLAGS_$(CMPLR))
|
||||
CONFORM_CXXFLAGS = $(CONFORM_CXXFLAGS_$(CXXCMPLR))
|
||||
|
||||
# Warnings flags
|
||||
WARN_CPPFLAGS = $(WARN_CPPFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CFLAGS = $(WARN_CFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
@@ -269,11 +270,11 @@ OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
|
||||
$(TARGET_INCLUDES) $(USR_INCLUDES) $(OP_SYS_INCLUDES) $($(BUILD_CLASS)_INCLUDES)
|
||||
|
||||
CFLAGS = $(CONFORM_CFLAGS) $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
$(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $(CONFORM_CXXFLAGS) $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS)\
|
||||
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS)\
|
||||
$(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS)\
|
||||
$(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
@@ -281,10 +282,10 @@ LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(POSIX_LDFLAGS) \
|
||||
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $($(BUILD_CLASS)_LDFLAGS)\
|
||||
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(STATIC_LDLIBS)\
|
||||
LDLIBS = \
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS) $(GNU_LDLIBS_$(GNU))
|
||||
|
||||
CPPFLAGS += $(CONFORM_CPPFLAGS) $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
CPPFLAGS += $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
$(OPT_CPPFLAGS) $(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS)\
|
||||
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
@@ -324,7 +325,7 @@ HDEPENDS_FLAGS =
|
||||
HDEPENDS_INCLUDES = $(subst -I,,$(INCLUDES))
|
||||
HDEPENDSFLAGS = -m $*$(DEP) $(HDEPENDS_INCLUDES) $@ $<
|
||||
HDEPENDS_CMD_YES = -$(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDSFLAGS)
|
||||
HDEPENDS_CMD_NO = echo ""
|
||||
HDEPENDS_CMD_NO = $(ECHO) ""
|
||||
HDEPENDS_CMD = $(HDEPENDS_CMD_$(HDEPENDS))
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
@@ -24,8 +24,6 @@
|
||||
# darwin-ppcx86 (Universal binaries for both CPUs)
|
||||
# freebsd-x86 (GNU compiler used for host builds)
|
||||
# freebsd-x86_64 (GNU compiler used for host builds)
|
||||
# hpux-parisc (HP compiler used for host builds)
|
||||
# hpux-parisc-gnu (GNU compiler used for host builds)
|
||||
# linux-ppc (GNU compiler used for host builds)
|
||||
# linux-x86 (GNU compiler used for host builds)
|
||||
# linux-x86_64 (GNU compiler used for host builds)
|
||||
@@ -104,19 +102,6 @@ CROSS_COMPILER_TARGET_ARCHS=
|
||||
#
|
||||
CROSS_COMPILER_HOST_ARCHS=
|
||||
|
||||
# Default ANSI level, individual Makefiles will override
|
||||
# if they cannot support ANSI compilation.
|
||||
# STRICT - ANSI C - force warning flags
|
||||
# ANSI - ANSI C
|
||||
# TRAD - Standard C - Not appropriate here.
|
||||
CMPLR=STRICT
|
||||
|
||||
# Default C++ compiler ANSI level
|
||||
# STRICT - ANSI C++ force strict warning flags
|
||||
# NORMAL - ANSI C++ optional warning flags
|
||||
# Individual Makefiles may override
|
||||
CXXCMPLR=STRICT
|
||||
|
||||
# Build shared libraries?
|
||||
# must be either YES or NO
|
||||
# NOTE: os/CONFIG.$(EPICS_HOST_ARCH).$(EPICS_HOST_ARCH) files and
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
# where the start and end are mmddhh - that is month,day,hour
|
||||
# eg EPICS_TIMEZONE=CUS::360:033102:102802
|
||||
#
|
||||
# DST for 2008 US: Mar 09 - Nov 02
|
||||
# EU: Mar 30 - Oct 26
|
||||
# DST for 2009 US: Mar 08 - Nov 01
|
||||
# EU: Mar 29 - Oct 25
|
||||
# (see: http://www.worldtimezone.org/daylight.html)
|
||||
#
|
||||
# EPICS_TS_NTP_INET
|
||||
# NTP or Unix time server ip address. Uses boot host if not set.
|
||||
|
||||
EPICS_TIMEZONE=CUS::360:030902:110202
|
||||
#EPICS_TIMEZONE=MET::-60:033002:102602
|
||||
EPICS_TIMEZONE=CUS::360:030802:110102
|
||||
#EPICS_TIMEZONE=MET::-60:032902:102502
|
||||
EPICS_TS_NTP_INET=
|
||||
|
||||
# IOC Shell:
|
||||
|
||||
@@ -33,8 +33,9 @@ DBFLAGS = $($*_DBFLAGS) $(USR_DBFLAGS) -I. -I.. $(INSTALL_DBFLAGS) $(RELEASE_DBF
|
||||
# Following line added for backward compatibilty
|
||||
DBD += $(DBDNAME)
|
||||
|
||||
DBD += $(addsuffix .dbd,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
|
||||
INC += $(addsuffix .h,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
|
||||
DBDINC_NAME = $(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC)))
|
||||
DBD += $(addsuffix .dbd,$(DBDINC_NAME))
|
||||
INC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
|
||||
INSTALL_DBDS += $(addprefix $(INSTALL_DBD)/,$(notdir $(DBD)))
|
||||
|
||||
@@ -90,8 +91,8 @@ ACF_CMD = $(CPP) $(ACF_CPPFLAGS) $(ACF_INCLUDES) $< > $@
|
||||
|
||||
##################################################### dependancies
|
||||
|
||||
HINC += $(addsuffix .h,$(patsubst %.h,%,$(patsubst %.db,%,$(DBDINC))))
|
||||
COMMON_DBDINC += $(addprefix $(COMMON_DIR),$(HINC))
|
||||
HINC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
COMMON_DBDINC += $(addprefix $(COMMON_DIR)/,$(HINC))
|
||||
|
||||
DBDDEPENDS_FILES += $(addsuffix $(DEP),$(COMMON_DBDS) \
|
||||
$(COMMON_DBDINC) $(COMMON_DBS))
|
||||
@@ -105,6 +106,7 @@ MAKEDBDEPENDS = $(PERL) $(TOOLS)/makeDbDepends.pl
|
||||
|
||||
ifndef T_A
|
||||
|
||||
ECHO := $(if $(findstring s,$(MAKEFLAGS)),\#,@echo)
|
||||
COMMON_DIR = .
|
||||
INSTALL_DBDS =
|
||||
INSTALL_DBS =
|
||||
@@ -161,13 +163,13 @@ $(COMMON_DIR)/%.edf: ../%.sch $(DEPSCHS)
|
||||
|
||||
ifdef CREATESUBSTITUTIONS
|
||||
$(COMMON_DIR)/%.substitutions:
|
||||
@echo "Create substitutions"
|
||||
$(ECHO) "Create substitutions"
|
||||
@$(RM) $@
|
||||
$(CREATESUBSTITUTIONS) $(COMMON_DIR)/$*
|
||||
$(CREATESUBSTITUTIONS) $@
|
||||
endif
|
||||
|
||||
$(INSTALL_DB)/%.substitutions: %.substitutions
|
||||
@echo "Installing db file $@"
|
||||
$(ECHO) "Installing db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.substitutions
|
||||
@@ -181,7 +183,7 @@ $(COMMON_DIR)/%.template: $(COMMON_DIR)/%.edf
|
||||
@$(RM) $@.VAR
|
||||
|
||||
$(INSTALL_DB)/%.template: %.template
|
||||
@echo "Installing db file $@"
|
||||
$(ECHO) "Installing db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.template
|
||||
@@ -189,20 +191,32 @@ $(INSTALL_DB)/%.template: %.template
|
||||
##################################################### INC files
|
||||
|
||||
$(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$<:../Makefile" >> $@$(DEP)
|
||||
@$(RM) $@
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $@
|
||||
|
||||
$(COMMON_DIR)/%Record.h: %Record.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$<:../Makefile" >> $@$(DEP)
|
||||
@$(RM) $@
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$<:../Makefile" >> $@$(DEP)
|
||||
@$(RM) $@
|
||||
$(DBTOMENUH) $< $@
|
||||
$(DBTOMENUH) $(DBDFLAGS) $< $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: menu%.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$<:../Makefile" >> $@$(DEP)
|
||||
@$(RM) $@
|
||||
$(DBTOMENUH) $< $@
|
||||
$(DBTOMENUH) $(DBDFLAGS) $< $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.h
|
||||
|
||||
@@ -216,14 +230,14 @@ $(COMMON_DIR)/%.dbd: $(COMMON_DIR)/%Include.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "$<:../Makefile" >> $@$(DEP)
|
||||
@echo "Expanding dbd"
|
||||
$(ECHO) "Expanding dbd"
|
||||
@$(RM) $@
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $@ $<
|
||||
|
||||
$(COMMON_DIR)/%.dbd: %Include.dbd
|
||||
@$(RM) $@$(DEP)
|
||||
@$(DBDDEPENDS_CMD)
|
||||
@echo "Expanding dbd"
|
||||
$(ECHO) "Expanding dbd"
|
||||
@$(RM) $@
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $@ $<
|
||||
|
||||
@@ -232,16 +246,16 @@ $(COMMON_DIR)/%Include.dbd:
|
||||
$(PERL) $(TOOLS)/makeIncludeDbd.pl $($*_DBD) $@
|
||||
|
||||
$(INSTALL_DBD)/%: $(COMMON_DIR)/%
|
||||
@echo "Installing created dbd file $@"
|
||||
$(ECHO) "Installing created dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
@echo "Installing dbd file $@"
|
||||
$(ECHO) "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DBD_INSTALLS_template
|
||||
$$(INSTALL_DBD)/$$(notdir $(1)) : $(1)
|
||||
@echo "Installing $$@"
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DBD)
|
||||
endef
|
||||
$(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
|
||||
@@ -258,7 +272,7 @@ $(COMMON_DIR)/%.db$(RAW): $(COMMON_DIR)/%.edf
|
||||
#$(COMMON_DIR)/%.db$(RAW): %.substitutions %.template
|
||||
# @$(RM) $@$(DEP)
|
||||
# @$(MAKEDBDEPENDS) $@ $^ >> $@$(DEP)
|
||||
# @echo "Inflating database from $^"
|
||||
# $(ECHO) "Inflating database from $^"
|
||||
# @$(RM) $@
|
||||
# $(MSI) $(DBFLAGS) -S$< $(firstword $(patsubst %.substitutions,,$^)) > msi.tmp
|
||||
# $(MV) msi.tmp $@
|
||||
@@ -267,7 +281,7 @@ $(COMMON_DIR)/%.db$(RAW): %.substitutions
|
||||
@$(RM) $@$(DEP)
|
||||
$(MAKEDBDEPENDS) $@ $< $(TEMPLATE_FILENAME) >> $@$(DEP)
|
||||
@echo "$@:$(TEMPLATE_FILENAME)" >> $@$(DEP)
|
||||
@echo "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
$(ECHO) "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
@$(RM) $@
|
||||
$(MSI) $(DBFLAGS) -S$< $(TEMPLATE_FILENAME) > msi.tmp
|
||||
$(MV) msi.tmp $@
|
||||
@@ -275,7 +289,7 @@ $(COMMON_DIR)/%.db$(RAW): %.substitutions
|
||||
$(COMMON_DIR)/%.db$(RAW): %.template
|
||||
@$(RM) $@$(DEP)
|
||||
@$(MAKEDBDEPENDS) $@ $^ >> $@$(DEP)
|
||||
@echo "Inflating database from $<"
|
||||
$(ECHO) "Inflating database from $<"
|
||||
@$(RM) $@
|
||||
$(MSI) $(DBFLAGS) $< > msi.tmp
|
||||
$(MV) msi.tmp $@
|
||||
@@ -283,7 +297,7 @@ $(COMMON_DIR)/%.db$(RAW): %.template
|
||||
$(COMMON_DIR)/%.acf: %.acs
|
||||
@$(RM) $@$(DEP)
|
||||
@$(ACFDEPENDS_CMD)
|
||||
@echo "Creating acf file $@"
|
||||
$(ECHO) "Creating acf file $@"
|
||||
@$(RM) $@
|
||||
$(ACF_CMD)
|
||||
|
||||
@@ -297,7 +311,7 @@ $(COMMON_DIR)/%.db$(RAW): ../%.db
|
||||
$(CP) $< $@
|
||||
|
||||
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.db$(RAW)
|
||||
@echo "Optimizing database $@"
|
||||
$(ECHO) "Optimizing database $@"
|
||||
@$(RM) $@
|
||||
$(DBST) . $< -d > $@
|
||||
|
||||
@@ -306,17 +320,17 @@ $(COMMON_DIR)/%.db: $(COMMON_DIR)/%.db$(RAW)
|
||||
else
|
||||
|
||||
$(INSTALL_DB)/%: %
|
||||
@echo "Installing db file $@"
|
||||
$(ECHO) "Installing db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
endif
|
||||
|
||||
$(INSTALL_DB)/%.db: $(COMMON_DIR)/%.db
|
||||
@echo "Installing created db file $@"
|
||||
$(ECHO) "Installing created db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DB_INSTALLS_template
|
||||
$$(INSTALL_DB)/$$(notdir $(1)) : $(1)
|
||||
@echo "Installing $$@"
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DB)
|
||||
endef
|
||||
$(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
|
||||
|
||||
@@ -10,18 +10,19 @@
|
||||
#RULES.ioc
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
||||
build: buildInstall
|
||||
install: buildInstall
|
||||
build$(DIVIDER)$(ARCH) build: buildInstall
|
||||
install$(DIVIDER)$(ARCH) install: buildInstall
|
||||
$(ARCH): buildInstall
|
||||
|
||||
ifneq ($(findstring $(ARCH),$(BUILD_ARCHS)),)
|
||||
buildInstall: $(TARGETS)
|
||||
ifeq ($(filter $(ARCH),$(BUILD_ARCHS)),$(ARCH))
|
||||
buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
|
||||
|
||||
clean:
|
||||
clean$(DIVIDER)$(ARCH) clean:
|
||||
$(RM) cdCommands envPaths dllPath.bat
|
||||
|
||||
else
|
||||
buildInstall:
|
||||
clean:
|
||||
buildInstall$(DIVIDER)$(ARCH) buildInstall:
|
||||
clean$(DIVIDER)$(ARCH) clean:
|
||||
endif
|
||||
|
||||
cdCommands envPaths dllPath.bat: $(wildcard $(TOP)/configure/RELEASE*) \
|
||||
|
||||
@@ -12,8 +12,6 @@
|
||||
|
||||
all: install
|
||||
|
||||
build install buildInstall: $(CHECK_RELEASE_$(CHECK_RELEASE))
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
ACTIONS = inc
|
||||
@@ -36,13 +34,15 @@ buildDirs = $(addprefix O.,$(BUILD_ARCHS))
|
||||
|
||||
#*************************************************************************
|
||||
# Create epics_host_arch dependancies for GNU make -j option
|
||||
# Only works with GNU make 3.80 or later (uses eval function)
|
||||
# Only works with GNU make 3.81 or later (uses eval function)
|
||||
# Needed in dirs where EPICS_HOST_ARCH build creates a tool used in
|
||||
# cross arch builds
|
||||
|
||||
CROSS_ARCHS += $(CROSS1) $(CROSS2)
|
||||
|
||||
ifeq ($(findstring j,$(MAKEFLAGS)),j)
|
||||
# j is NOT found in MAKEFLAGS when using make 3.81
|
||||
# Hope to uncomment this for GNU make 3.82
|
||||
#ifeq ($(findstring j,$(MAKEFLAGS)),j)
|
||||
|
||||
define DEP_template
|
||||
$(2): $$(EPICS_HOST_ARCH)
|
||||
@@ -52,8 +52,7 @@ endef
|
||||
$(foreach action, $(ACTIONS), $(foreach arch,\
|
||||
$(CROSS_ARCHS),$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
|
||||
endif
|
||||
|
||||
#endif
|
||||
#*************************************************************************
|
||||
|
||||
$(actionArchTargets) : $(buildDirs) O.Common
|
||||
@@ -70,26 +69,6 @@ $(buildDirs):
|
||||
O.Common:
|
||||
$(MKDIR) O.Common
|
||||
|
||||
#
|
||||
# RELEASE consistency checking
|
||||
|
||||
# The RELEASE.$(EPICS_HOST_ARCH) files don't need to be included here:
|
||||
targetReleaseFiles = $(wildcard $(foreach arch, $(BUILD_ARCHS), \
|
||||
$(TOP)/configure/RELEASE.Common.$(arch) \
|
||||
$(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(arch)))
|
||||
|
||||
checkReleaseTargets = $(addprefix checkRelease, $(suffix $(targetReleaseFiles)))
|
||||
checkRelease: $(checkReleaseTargets)
|
||||
$(CONVERTRELEASE) checkRelease
|
||||
$(checkReleaseTargets):checkRelease.%:
|
||||
$(CONVERTRELEASE) -a $* checkRelease
|
||||
|
||||
warnReleaseTargets = $(addprefix warnRelease, $(suffix $(targetReleaseFiles)))
|
||||
warnRelease: $(warnReleaseTargets)
|
||||
-$(CONVERTRELEASE) checkRelease
|
||||
$(warnReleaseTargets):warnRelease.%:
|
||||
-$(CONVERTRELEASE) -a $* checkRelease
|
||||
|
||||
#
|
||||
# special clean rule
|
||||
#
|
||||
@@ -109,4 +88,3 @@ realclean ::
|
||||
.PHONY : $(cleanArchTargets)
|
||||
.PHONY : $(BUILD_ARCHS)
|
||||
.PHONY : $(ACTIONS) clean realclean archclean all
|
||||
.PHONY : checkRelease $(checkReleaseTargets)
|
||||
|
||||
@@ -127,8 +127,8 @@ buildInstall : \
|
||||
$(INSTALL_BIN_INSTALLS)
|
||||
|
||||
clean::
|
||||
@echo "Cleaning"
|
||||
@$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) $(LIBNAME) $(SHRLIBNAME)\
|
||||
$(ECHO) "Cleaning"
|
||||
@$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) $(LIBNAME) $(SHRLIBNAME) \
|
||||
$(INC) $(TARGETS) $(DLL_LINK_LIBNAME) $(TDS) \
|
||||
*.out MakefileInclude $(LOADABLE_SHRLIBNAME) *.manifest *.exp \
|
||||
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) $(TESTSCRIPTS)
|
||||
@@ -150,6 +150,14 @@ browse: $(LIB_BAF) $(PROD_BAF)
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) -p $@
|
||||
|
||||
$(PRODNAME): $(INSTALL_LIB_INSTALLS)
|
||||
|
||||
# RELEASE file consistency checking
|
||||
checkRelease:
|
||||
$(CONVERTRELEASE) checkRelease
|
||||
warnRelease:
|
||||
-$(CONVERTRELEASE) checkRelease
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# The order of the following rules is
|
||||
# VERY IMPORTANT !!!!
|
||||
@@ -199,7 +207,7 @@ $(OBJLIBNAME):%$(OBJ):
|
||||
|
||||
# WIN95/NT source browser
|
||||
%.bsc: %.sbr
|
||||
@echo "building source browser archive $@"
|
||||
$(ECHO) "building source browser archive $@"
|
||||
@$(RM) $@
|
||||
$(BAFCMD) $<
|
||||
|
||||
@@ -246,7 +254,7 @@ endif
|
||||
ifdef BAF
|
||||
|
||||
$(LIB_BAF): $(addsuffix $(BOF),$(basename $(LIBRARY_LD_OBJS)))
|
||||
@echo "Building source browser archive $@"
|
||||
$(ECHO) "Building source browser archive $@"
|
||||
@$(RM) $@
|
||||
$(BAFCMD) $^
|
||||
|
||||
@@ -256,24 +264,24 @@ ifneq (,$(wildcard ../baseLIBOBJS))
|
||||
$(LIBNAME): ../baseLIBOBJS
|
||||
endif
|
||||
|
||||
# rule for lib (archive of object files) creation
|
||||
$(LIBNAME): $(LIBRARY_OBJS)
|
||||
|
||||
$(LIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX):
|
||||
$(DLL_LINK_LIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
$(LIBNAME) $(DLL_LINK_LIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(ARCMD)
|
||||
ifneq ($(strip $(RANLIB)),)
|
||||
$(RANLIB) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(DLL_LINK_LIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
$(SHRLIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
ifneq ($(SHRLIB_SUFFIX),.dll)
|
||||
$(SHRLIBNAME):$(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
ifeq ($(SHRLIB_SUFFIX),.dll)
|
||||
$(MT_DLL_COMMAND)
|
||||
endif
|
||||
|
||||
$(LOADABLE_SHRLIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
@@ -322,14 +330,14 @@ runtests: $(TESTSCRIPTS_$(BUILD_CLASS))
|
||||
## Install rules for BIN_INSTALLS and LIB_INSTALLS
|
||||
define BIN_INSTALLS_template
|
||||
$$(INSTALL_BIN)/$$(notdir $(1)) : $(1)
|
||||
@echo "Installing $$(<F)"
|
||||
$(ECHO) "Installing $$(<F)"
|
||||
@$$(INSTALL) -d -m $$(BIN_PERMISSIONS) $$^ $$(INSTALL_BIN)
|
||||
endef
|
||||
$(foreach file, $(BIN_INSTALLS), $(eval $(call BIN_INSTALLS_template, $(file))))
|
||||
|
||||
define LIB_INSTALLS_template
|
||||
$$(INSTALL_LIB)/$$(notdir $(1)) : $(1)
|
||||
@echo "Installing $$(<F)"
|
||||
$(ECHO) "Installing $$(<F)"
|
||||
@$$(INSTALL) -d -m $$(LIB_PERMISSIONS) $$^ $$(INSTALL_LIB)
|
||||
endef
|
||||
$(foreach file, $(LIB_INSTALLS), $(eval $(call LIB_INSTALLS_template, $(file))))
|
||||
@@ -337,30 +345,30 @@ $(foreach file, $(LIB_INSTALLS), $(eval $(call LIB_INSTALLS_template, $(file))))
|
||||
#---------------------------------------------------------------
|
||||
|
||||
$(INSTALL_BIN)/%: ../os/$(OS_CLASS)/%
|
||||
@echo "Installing os-specific script $@"
|
||||
$(ECHO) "Installing os-specific script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
@echo "Installing created file $@"
|
||||
$(ECHO) "Installing created file $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
@echo "Installing script $@"
|
||||
$(ECHO) "Installing script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%.a: %.a
|
||||
@echo "Installing library $@"
|
||||
$(ECHO) "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_LIB)
|
||||
ifneq ($(strip $(RANLIB)),)
|
||||
$(RANLIB) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(INSTALL_LIB)/%.lib: %.lib
|
||||
@echo "Installing library $@"
|
||||
$(ECHO) "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_LIB)
|
||||
|
||||
$(INSTALL_SHRLIB)/lib%: lib%
|
||||
@echo "Installing shared library $@"
|
||||
$(ECHO) "Installing shared library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_SHRLIB)
|
||||
ifneq (,$(strip $(SHRLIB_VERSION)))
|
||||
@$(RM) $(subst .$(SHRLIB_VERSION),,$@)
|
||||
@@ -370,20 +378,20 @@ endif # SHRLIB_VERSION
|
||||
|
||||
ifneq ($(INSTALL_TCLLIB),$(INSTALL_BIN))
|
||||
$(INSTALL_TCLLIB)/%: %
|
||||
@echo "Installing Tcl library $@"
|
||||
$(ECHO) "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_TCLLIB)/%: ../%
|
||||
@echo "Installing Tcl library $@"
|
||||
$(ECHO) "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
|
||||
endif
|
||||
|
||||
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
|
||||
@echo "Updating $@"
|
||||
@echo eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
|
||||
$(ECHO) "Updating $@"
|
||||
$(ECHO) eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
|
||||
|
||||
$(INSTALL_LOADABLE_SHRLIBS): $(INSTALL_SHRLIB)/%: %
|
||||
@echo "Installing loadable shared library $@"
|
||||
$(ECHO) "Installing loadable shared library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m 555 $< $(INSTALL_SHRLIB)
|
||||
ifneq (,$(strip $(LOADABLE_SHRLIB_VERSION)))
|
||||
@$(RM) $(subst .$(LOADABLE_SHRLIB_VERSION),,$@)
|
||||
@@ -391,65 +399,56 @@ ifneq (,$(strip $(LOADABLE_SHRLIB_VERSION)))
|
||||
endif # LOADABLE_SHRLIB_VERSION
|
||||
|
||||
$(INSTALL_CONFIG)/%: %
|
||||
@echo "Installing config file $@"
|
||||
$(ECHO) "Installing config file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
@echo "Installing config file $@"
|
||||
$(ECHO) "Installing config file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/% : $(COMMON_DIR)/%
|
||||
@echo "Installing generated generic include file $@"
|
||||
$(ECHO) "Installing generated generic include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/% : %
|
||||
@echo "Installing generic include file $@"
|
||||
$(ECHO) "Installing generic include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
|
||||
@echo "Installing os dependent include file $@"
|
||||
$(ECHO) "Installing os dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
@echo "Installing doc $@"
|
||||
$(ECHO) "Installing doc $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
@echo "Installing doc $@"
|
||||
$(ECHO) "Installing doc $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
||||
@echo "Installing html $@"
|
||||
$(ECHO) "Installing html $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
||||
@echo "Installing html $@"
|
||||
$(ECHO) "Installing html $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES_SUBDIR)/%: ../%
|
||||
@echo "Installing $@"
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES_SUBDIR)/%: %
|
||||
@echo "Installing $@"
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
ifeq ($(SHRLIB_SUFFIX),.dll)
|
||||
ifeq ($(SHARED_LIBRARIES),YES)
|
||||
$(LIB_PREFIX)%$(LIB_SUFFIX) $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $(LIB_PREFIX)$*$(LIB_SUFFIX) $(SHRLIB_PREFIX)$*$(SHRLIB_SUFFIX)
|
||||
$(LINK.shrlib)
|
||||
$(MT_DLL_COMMAND)
|
||||
endif
|
||||
endif
|
||||
|
||||
-include $(CONFIG)/RULES_EXPAND
|
||||
|
||||
.PRECIOUS: %.i %.o %.c %.nm %.cpp %.cc
|
||||
.PRECIOUS: $(COMMON_INC)
|
||||
|
||||
.PHONY: all inc build install clean rebuild buildInstall
|
||||
.PHONY: runtests
|
||||
.PHONY: runtests checkRelease warnRelease
|
||||
|
||||
endif # BASE_RULES_BUILD
|
||||
# EOF RULES_BUILD
|
||||
|
||||
@@ -38,7 +38,7 @@ all : install
|
||||
rebuild : clean install
|
||||
|
||||
# Create directory dependancies lines for GNU make -j option
|
||||
# Only works with GNU make 3.80 or later (uses eval function)
|
||||
# Only works with GNU make 3.81 or later (uses eval function)
|
||||
define DEP_template1
|
||||
$(1): $$($(1)_DEPEND_DIRS)
|
||||
endef
|
||||
|
||||
@@ -13,11 +13,11 @@ EXPANDED = $(EXPAND:%@=%)
|
||||
buildInstall: $(EXPANDED)
|
||||
|
||||
$(EXPANDED): %: ../%@
|
||||
@echo "Expanding $< to $@"
|
||||
$(ECHO) "Expanding $< to $@"
|
||||
@$(RM) $@
|
||||
@$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
|
||||
|
||||
clean::
|
||||
$(RM) $(EXPANDED)
|
||||
@$(RM) $(EXPANDED)
|
||||
|
||||
endif
|
||||
|
||||
@@ -49,16 +49,16 @@ endif
|
||||
|
||||
define FILE_TYPE_template
|
||||
|
||||
$(1) += $$(if $$(strip $$($(1)_$$(ARCH_CLASS))),$$(subst -nil-,,$$($(1)_$$(ARCH_CLASS))), $$($(1)_DEFAULT))
|
||||
$(1) += $$(if $$(strip $$($(1)_$$(OS_CLASS))),$$(subst -nil-,,$$($(1)_$$(OS_CLASS))), $$($(1)_DEFAULT))
|
||||
|
||||
INSTALLS_$(1) = $$($(1):%=$$(INSTALL_$(1))/%)
|
||||
|
||||
$$(INSTALL_$(1))/%: ../%
|
||||
@echo "Installing $(1) file $$@"
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
|
||||
$$(INSTALL_$(1))/%: %
|
||||
@echo "Installing $(1) file $$@"
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
|
||||
buildInstall : $$(INSTALLS_$(1))
|
||||
|
||||
@@ -114,40 +114,40 @@ $(JAVA_DIRECTORY_TARGETS):
|
||||
endif
|
||||
|
||||
$(COMMON_JAVAINC):$(JAVAINC_CLASSFILES)
|
||||
@echo Creating header files $(COMMON_JAVAINC)
|
||||
$(ECHO) Creating header files $(COMMON_JAVAINC)
|
||||
@$(RM) $@
|
||||
$(JAVAHCMD) $(JAVAINC_CLASSNAMES)
|
||||
|
||||
$(COMMON_TESTCLASSES): $(addprefix ../,$(DEPTESTJAVA))
|
||||
@echo Creating test java class files $(COMMON_TESTCLASSES)
|
||||
$(ECHO) Creating test java class files $(COMMON_TESTCLASSES)
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(COMMON_DIR) $^
|
||||
|
||||
$(INSTALL_CLASSES): $(addprefix ../,$(JAVA))
|
||||
@echo Creating java class files
|
||||
$(ECHO) Creating java class files
|
||||
@$(RM) $@
|
||||
$(JAVACCMD) -d $(INSTALL_JAVA) $^
|
||||
|
||||
$(INSTALL_JAVADOC): $(addprefix ../,$(JAVA))
|
||||
@echo Creating java doc files
|
||||
$(ECHO) Creating java doc files
|
||||
@$(RM) $@
|
||||
$(JAVADOCCMD) -d $(addprefix $(INSTALL_HTML)/,$(JAVADOC)) $^
|
||||
|
||||
$(COMMON_DIR)/%.jar: $(JARDEPFILES)
|
||||
@echo Creating java jar file $@
|
||||
$(ECHO) Creating java jar file $@
|
||||
@$(RM) $@
|
||||
$(JARCMD)
|
||||
|
||||
$(INSTALL_JAVA)/%.jar: $(COMMON_DIR)/%.jar
|
||||
@echo "Installing java jar file $@"
|
||||
$(ECHO) "Installing java jar file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_JAVA)/%.jar: %.jar
|
||||
@echo "Installing java jar file $@"
|
||||
$(ECHO) "Installing java jar file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(addprefix $(INSTALL_JAVA)/, $(JARINPUT)): $(INSTALL_JAVA)/%: ../%
|
||||
@echo "Installing jar input file $@"
|
||||
$(ECHO) "Installing jar input file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PHONY: all install buildInstall rebuild clean build inc
|
||||
|
||||
@@ -82,9 +82,9 @@ $(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\
|
||||
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(LIBRARY), \
|
||||
|
||||
@@ -63,9 +63,9 @@ a_file_CPPFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
# again: if INC_$(OS_CLASS) is defined, it is added to INC,
|
||||
# otherwise INC_DEFAULT (if defined) is added:
|
||||
#
|
||||
INC_DEFAULT = for_all_but_WIN32_or_hp700.h
|
||||
INC_DEFAULT = for_all_but_WIN32_or_vxWorks.h
|
||||
INC_WIN32 = only_for_WIN32.h
|
||||
INC_hpux = -nil- # hpux uses no special include
|
||||
INC_vxWorks = -nil- # vxWorks uses no special include
|
||||
INC = file.h
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
||||
@@ -24,6 +24,10 @@ unexport GCC_EXEC_PREFIX
|
||||
# Get RTEMS_BASE definition
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.RTEMS
|
||||
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
-include $(TOP)/configure/CONFIG_SITE.Common.RTEMS
|
||||
endif
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
|
||||
include $(RTEMS_BASE)/$(RTEMS_TARGET_CPU)-rtems$(RTEMS_VERSION)/$(subst RTEMS-,,$(T_A))/Makefile.inc
|
||||
@@ -32,13 +36,13 @@ include $(CONFIG.CC)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# RTEMS cross-development tools
|
||||
CC = $(RTEMS_BASE)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
|
||||
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
|
||||
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
|
||||
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
|
||||
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
|
||||
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
|
||||
|
||||
RANLIB := $(RTEMS_BASE)/bin/$(RANLIB)
|
||||
RANLIB := $(RTEMS_TOOLS)/bin/$(RANLIB)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build types
|
||||
@@ -47,11 +51,11 @@ VALID_BUILDS = Ioc
|
||||
#--------------------------------------------------
|
||||
# The RTEMS Makefiles redefine several macros, so we have to go
|
||||
# through the following contortions to get the EPICS flags back.
|
||||
CFLAGS = $(CONFORM_CFLAGS) $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
CFLAGS = $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
|
||||
$(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
|
||||
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $(CONFORM_CXXFLAGS) $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
CXXFLAGS = $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS)\
|
||||
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS)\
|
||||
$(LIBRARY_SRC_CFLAGS)
|
||||
@@ -60,10 +64,10 @@ LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \
|
||||
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)\
|
||||
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(STATIC_LDLIBS)\
|
||||
LDLIBS = \
|
||||
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)
|
||||
|
||||
CPPFLAGS += $(CONFORM_CPPFLAGS) $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
|
||||
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
|
||||
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
@@ -98,12 +102,6 @@ SHARED_LIBRARIES=NO
|
||||
CODE_CFLAGS =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# RTEMS uses the inline keyword so -pedantic causes too many problems.
|
||||
# Using -ansi turns off lots of useful prototypes (e.g. strtok_r).
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Override the usual RTEMS verbosity from ar
|
||||
ARFLAGS = rc
|
||||
|
||||
@@ -16,7 +16,7 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
CROSS_COMPILER_TARGET_ARCHS=RTEMS-beatnik
|
||||
|
||||
@@ -13,9 +13,9 @@ ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
gzip -f9 rtems
|
||||
$(RTEMS_BASE)/bin/$(LD_FOR_TARGET) -o $@ \
|
||||
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@ \
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
|
||||
25
configure/os/CONFIG.Common.RTEMS-mvme2700
Normal file
25
configure/os/CONFIG.Common.RTEMS-mvme2700
Normal file
@@ -0,0 +1,25 @@
|
||||
#
|
||||
# Author: Matt Rippa
|
||||
#
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
ARCH_DEP_CFLAGS += -DNVRAM_INDIRECT
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
gzip -f9 rtems
|
||||
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@ \
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
|
||||
-Map $<.map
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -10,7 +10,7 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
CROSS_COMPILER_TARGET_ARCHS=RTEMS-beatnik
|
||||
|
||||
@@ -9,11 +9,12 @@
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -11,7 +11,7 @@ RTEMS_TARGET_CPU=i386
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< temp.bin
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< temp.bin
|
||||
$(PROJECT_RELEASE)/build-tools/bin2boot $@ 0x00097E00 \
|
||||
$(PROJECT_RELEASE)/lib/start16.bin 0x00097C00 0 temp.bin 0x00100000 0
|
||||
rm -f temp.bin
|
||||
|
||||
@@ -12,7 +12,7 @@ ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_BASE)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -28,11 +28,11 @@ LOADABLE_SHRLIB_PREFIX = lib
|
||||
# <lib> -> lib<lib>.a
|
||||
LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
# <lib> -> lib<lib>.so.<version>
|
||||
SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(SHRLIB_SUFFIX))
|
||||
SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX))
|
||||
LOADABLE_SHRLIBNAME = $(LOADABLE_BUILD_LIBRARY:%=$(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# shrlib: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
# shrlib: SHRLIB_DEPLIBS, SHRLIB_LDLIBS and SHRLIBDIR_LDFLAGS definitions
|
||||
|
||||
# SHRLIB_LIBS deprecated
|
||||
LIB_LIBS += $(SHRLIB_LIBS)
|
||||
@@ -43,16 +43,18 @@ SHRLIB_DEPLIBS=$(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS) \
|
||||
$($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) $(LDLIBS)
|
||||
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS))\
|
||||
$(STATIC_LDLIBS) \
|
||||
$(addprefix -l, $($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) \
|
||||
$(LDLIBS)
|
||||
|
||||
SHRLIB_DEPLIB_DIRS = $(foreach word,$(sort $(dir $($*_DEPLIBS) $(SHRLIB_DEPLIBS))), \
|
||||
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
|
||||
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
|
||||
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-L%)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
|
||||
# Prod: PROD_DEPLIBS, PROD_LDLIBS and PRODDIR_LDFLAGS definitions
|
||||
|
||||
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
|
||||
@@ -60,8 +62,9 @@ PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \
|
||||
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
|
||||
|
||||
PROD_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
|
||||
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
|
||||
PROD_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)) \
|
||||
$(STATIC_LDLIBS) \
|
||||
$(addprefix -l, $($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# Architecture-specific information
|
||||
#
|
||||
ARCH_CLASS = ppc
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppc
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
|
||||
@@ -3,20 +3,13 @@
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Darwin 'universal' (PowerPC, Intel) target builds
|
||||
# Definitions for Darwin universal PowerPC + x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# Set architecture-specific information
|
||||
#
|
||||
ARCH_CLASS = ppcx86
|
||||
|
||||
#
|
||||
# Universal binary support
|
||||
#
|
||||
OP_SYS_CFLAGS += -arch i386 -arch ppc
|
||||
OP_SYS_LDFLAGS += -arch i386 -arch ppc
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppcx86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# Architecture-specific information
|
||||
#
|
||||
ARCH_CLASS = x86
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-x86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
|
||||
@@ -30,3 +30,8 @@ PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc_pic
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsdCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).freebsdCommon
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
# CONFIG.Common.hpux-parisc
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for hpux-parisc target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.hpux-parisc
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = hpux
|
||||
ARCH_CLASS = parisc
|
||||
|
||||
# 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 = -DHP_UX
|
||||
OP_SYS_CFLAGS = -D_HPUX_SOURCE
|
||||
OP_SYS_CXXFLAGS =
|
||||
|
||||
SHRLIB_SUFFIX = .sl$(addprefix .,$(SHRLIB_VERSION))
|
||||
LOADABLE_SHRLIB_SUFFIX = .sl$(addprefix .,$(LOADABLE_SHRLIB_VERSION))
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
empty:= # trick from the make docs...
|
||||
space:= $(empty) $(empty)
|
||||
SHRLIBDIR_LDFLAGS += -Wl,+b$(subst $(space),:,$(SHRLIB_DEPLIB_DIRS)),+s
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_LDFLAGS += -Wl,+b$(subst $(space),:,$(PROD_DEPLIB_DIRS)),+s
|
||||
|
||||
GNU_TARGET=parisc-hp-unix
|
||||
@@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.hpux-parisc-gnu
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for hpux-parisc gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.hpux-parisc-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all hpux-parisc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.hpux-parisc
|
||||
@@ -13,7 +13,6 @@ ARCH_CLASS = arm
|
||||
|
||||
# Set a special definition for network order of Netwinder ARM floating point
|
||||
ARCH_DEP_CPPFLAGS += -D_ARM_NWFP_
|
||||
ARCH_DEP_CPPFLAGS += -mcpu=arm9 -marm
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
# Include definitions common to all linux-x86 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
# Include definitions common to all linux-x86_64 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86_64
|
||||
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -20,7 +20,12 @@ POSIX_LDLIBS = -lpthread
|
||||
# -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_LDLIBS += -lrt
|
||||
OP_SYS_LDLIBS += -lrt -ldl
|
||||
|
||||
# Added here for cross-target builds which include this file
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
@@ -29,5 +34,9 @@ SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
LDLIBS_READLINE = -lreadline -lncurses
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.linuxCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).linuxCommon
|
||||
|
||||
@@ -47,6 +47,7 @@ USE_STLPORT=NO
|
||||
|
||||
OP_SYS_CFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
OP_SYS_LDFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
|
||||
|
||||
# OS libraries used when generating shared libraries or static binaries
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
@@ -54,7 +55,6 @@ OP_SYS_LDLIBS_8 += -lCrun -lc
|
||||
OP_SYS_LDLIBS_9 += -lumem -lCrun -lc
|
||||
OP_SYS_LDLIBS_10 += -lumem -lCrun -lc
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
|
||||
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
READLINE_DIR = $(GNU_DIR)
|
||||
|
||||
@@ -10,3 +10,5 @@
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
HOST_OPT=NO
|
||||
|
||||
15
configure/os/CONFIG.Common.solaris-x86_64-gnu
Normal file
15
configure/os/CONFIG.Common.solaris-x86_64-gnu
Normal file
@@ -0,0 +1,15 @@
|
||||
# CONFIG.Common.solaris-x86_64-gnu
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-x86_64 gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-x86_64-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-x86-gnu target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
||||
#ARCH_DEP_LDFLAGS += -L$(GNU_LIB)/amd64 -R$(GNU_LIB)/amd64
|
||||
@@ -20,6 +20,4 @@ ARCH_DEP_CFLAGS = -m486
|
||||
ARCH_DEP_CXXFLAGS += -x 'c++'
|
||||
ARCH_DEP_CFLAGS += -fno-defer-pop
|
||||
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-486
|
||||
|
||||
|
||||
@@ -16,5 +16,5 @@ OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
HOSTEXE=.exe
|
||||
|
||||
# Needed to find dlls for base installed build tools (antelope,eflex,...)
|
||||
PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)
|
||||
PATH := $(EPICS_BASE_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -23,15 +23,6 @@ SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT = -ansi
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi
|
||||
|
||||
# -ansi build errors need fixing: u_long undeclared, fd_set with no type
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
|
||||
# Override linking with gcc library from CONFIG.gnuCommon
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
|
||||
@@ -10,4 +10,6 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.cygwin-x86
|
||||
include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86
|
||||
|
||||
CROSS_OPT = NO
|
||||
BUILD_CLASS = HOST
|
||||
|
||||
HOST_OPT = NO
|
||||
|
||||
@@ -10,8 +10,5 @@
|
||||
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
|
||||
|
||||
# This will cause build failure when used with make -j option
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
|
||||
CROSS_OPT=NO
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT = NO
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Darwin 'universal' (PowerPC, Intel) host builds
|
||||
# Definitions for Darwin universal PowerPC + x86 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppcx86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
|
||||
@@ -10,8 +10,5 @@
|
||||
-include $(CONFIG)/os/CONFIG.Common.darwin-x86
|
||||
-include $(CONFIG)/os/CONFIG.darwin-x86.darwin-x86
|
||||
|
||||
# This will cause build failure when used with make -j option
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
|
||||
CROSS_OPT=NO
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT = NO
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# CONFIG.Common.darwinCommon
|
||||
# CONFIG.darwinCommon.darwinCommon
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for darwin target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-<arch>
|
||||
# Common definitions for darwin builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwinCommon.darwinCommon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
@@ -18,6 +18,18 @@ include $(CONFIG)/CONFIG.gnuCommon
|
||||
#
|
||||
OS_CLASS = Darwin
|
||||
|
||||
#
|
||||
# Build architecture flags
|
||||
# For Darwin, ARCH_CLASS may be empty, or may contain a list of CPU
|
||||
# architectures which must be valid arguments to the -arch options
|
||||
# for the cc and ld commands.
|
||||
# ARCH_CLASS is defined in a CONFIG_SITE file which is not loaded
|
||||
# until after this file.
|
||||
#
|
||||
ARCH_DEP_FLAGS = $(addprefix -arch ,$(ARCH_CLASS))
|
||||
ARCH_DEP_CFLAGS += $(ARCH_DEP_FLAGS)
|
||||
ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
|
||||
|
||||
#
|
||||
# Special flags for Darwin
|
||||
# No common blocks (as required when using shared libraries)
|
||||
@@ -94,8 +106,7 @@ vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
%.o: %.m
|
||||
$(COMPILE.c) -c $<
|
||||
|
||||
#
|
||||
# Pedantic produces way too many unnecessary messages
|
||||
#
|
||||
CONFORM_CFLAGS_STRICT=-ansi
|
||||
CONFORM_CXXFLAGS_STRICT=-ansi
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.darwinCommon.darwinCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).darwinCommon
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
# CONFIG.hpux-parisc-gnu.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for hpux-parisc gnu compiler host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.hpux-parisc-gnu.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to hpux-parisc hosts
|
||||
include $(CONFIG)/os/CONFIG.hpux-parisc.Common
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
# CONFIG.hpux-parisc-gnu.hpux-parisc-gnu
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for hpux-parisc gnu compiler host - hpux-parisc gnu compiler target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.hpux-parisc-gnu.hpux-parisc-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include common gnu compiler definitions
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
AR = ar -rc
|
||||
RANLIB=
|
||||
LD = ld -r
|
||||
|
||||
STATIC_LDFLAGS_YES= -Wl,-a,archive
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
STATIC_LDLIBS_YES = -Wl,-a,default
|
||||
STATIC_LDLIBS_NO =
|
||||
|
||||
# Switch explicitly from default DCE threads to posix threads
|
||||
POSIX_CPPFLAGS += -D_REENTRANT -D_PTHREADS -D_POSIX_C_SOURCE=199506L
|
||||
USR_SYS_LIBS += pthread
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# CONFIG.hpux-parisc.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for hpux-parisc host archs
|
||||
# Sites may override these definitions in CONFIG_SITE.hpux-parisc.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = parisc-hpux10
|
||||
@@ -1,55 +0,0 @@
|
||||
# CONFIG.hpux-parisc.hpux-parisc
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for host hpux-parisc - target hpux-parisc builds
|
||||
# Sites may override these definitions in CONFIG_SITE.hpux-parisc.hpux-parisc
|
||||
#-------------------------------------------------------
|
||||
|
||||
CC = cc
|
||||
CCC = aCC
|
||||
CPP = $(CC) -E
|
||||
RANLIB =
|
||||
AR = ar -rc
|
||||
LD = ld -r
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
CONFORM_CFLAGS_ANSI = -Aa -mt
|
||||
CONFORM_CFLAGS_STRICT = -Aa -mt
|
||||
CONFORM_CFLAGS_TRAD = -Ac -mt
|
||||
|
||||
# Portability across different PA-RISC architecture versions
|
||||
CODE_CFLAGS = +DAportable +z
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -O
|
||||
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 -Aa -mt
|
||||
CONFORM_CXXFLAGS_STRICT = -AA -Aa -mt
|
||||
#CONFORM_CXXFLAGS_STRICT += +p
|
||||
|
||||
# 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
|
||||
|
||||
STATIC_LDFLAGS_YES= -Wl,-a,archive
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
STATIC_LDLIBS_YES = -Wl,-a,default
|
||||
STATIC_LDLIBS_NO =
|
||||
|
||||
TARGET_LDFLAGS += -AA -mt
|
||||
|
||||
SHRLIB_LDFLAGS = -b
|
||||
LOADABLE_SHRLIB_LDFLAGS = $(SHRLIB_LDFLAGS)
|
||||
@@ -34,22 +34,6 @@ CC = $(BORLAND_BIN)/bc++ $(CCLINKOPT)
|
||||
LD = $(BORLAND_BIN)/bc++ -r
|
||||
RANLIB =
|
||||
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.
|
||||
#
|
||||
ifdef NO_BORLAND_STDC
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
else
|
||||
CONFORM_CFLAGS_ANSI = -D__STDC__=0
|
||||
CONFORM_CFLAGS_STRICT = -D__STDC__=0
|
||||
endif
|
||||
CONFORM_CFLAGS_TRAD =
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
# some warning message here are always disabled because they are
|
||||
@@ -77,17 +61,7 @@ CPP = $(BORLAND_BIN)/bcpp
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.
|
||||
#
|
||||
CCC = $(BORLAND_BIN)/bc++ $(CCLINKOPT)
|
||||
ifndef NO_BORLAND_STDC
|
||||
CONFORM_CXXFLAGS_NORMAL = -D__STDC__=0
|
||||
CONFORM_CXXFLAGS_STRICT = -D__STDC__=0
|
||||
endif
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
@@ -137,10 +111,6 @@ OPT_LDFLAGS =
|
||||
|
||||
ARCH_DEP_CFLAGS=
|
||||
|
||||
# to identify the general architecture class:
|
||||
# should be BSD, SYSV, WIN32, ...
|
||||
# is: WIN32, sun4, hpux, linux, ...
|
||||
#
|
||||
OS_CLASS=Linux
|
||||
|
||||
|
||||
|
||||
@@ -14,3 +14,5 @@ STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
# This will cause build failure when used with make -j option
|
||||
# See base/src/bpt MAKEBPT
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT=NO
|
||||
|
||||
CROSS_OPT=NO
|
||||
|
||||
@@ -7,10 +7,5 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include common gnu compiler definitions
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86_64.linux-x86_64-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/os/CONFIG.linux-x86_64.linux-x86_64
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
CROSS_OPT = NO
|
||||
BUILD_CLASS=HOST
|
||||
|
||||
HOST_OPT = NO
|
||||
|
||||
@@ -15,9 +15,6 @@ AR = ar -r
|
||||
LD = -r
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
CONFORM_CFLAGS_TRAD =
|
||||
CODE_CFLAGS =
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
@@ -25,8 +22,6 @@ OPT_CFLAGS_YES = -O
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
PROF_CXXFLAGS_YES = +p
|
||||
PROF_CXXFLAGS_NO =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
@@ -15,9 +15,6 @@ AR = ar -r
|
||||
LD = -r
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
CONFORM_CFLAGS_ANSI = -std
|
||||
CONFORM_CFLAGS_STRICT = -std1
|
||||
CONFORM_CFLAGS_TRAD = -std0
|
||||
CODE_CFLAGS =
|
||||
WARN_CFLAGS_YES =
|
||||
WARN_CFLAGS_NO = -w
|
||||
@@ -25,8 +22,6 @@ OPT_CFLAGS_YES = -O
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT = -std gnu
|
||||
PROF_CXXFLAGS_YES = +p
|
||||
PROF_CXXFLAGS_NO =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
@@ -21,3 +21,6 @@ STATIC_LDLIBS_NO=
|
||||
|
||||
OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-z,defs -Wl,-z,text -Wl,-h,$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-z,text -Wl,-h,$@
|
||||
GNU_LDLIBS_YES += -lc
|
||||
|
||||
@@ -9,10 +9,6 @@
|
||||
|
||||
include $(CONFIG)/os/CONFIG.solaris-sparc.solaris-sparc
|
||||
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT=NO
|
||||
|
||||
GNU = NO
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
CROSS_OPT=NO
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc64
|
||||
include $(CONFIG)/os/CONFIG.solaris-sparc64.solaris-sparc64
|
||||
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
|
||||
GNU = NO
|
||||
BUILD_CLASS=HOST
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
CROSS_OPT=NO
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86
|
||||
include $(CONFIG)/os/CONFIG.solaris-x86.solaris-x86
|
||||
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
|
||||
GNU = NO
|
||||
BUILD_CLASS=HOST
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
CROSS_OPT=NO
|
||||
HOST_OPT=NO
|
||||
|
||||
12
configure/os/CONFIG.solaris-x86_64-gnu.Common
Normal file
12
configure/os/CONFIG.solaris-x86_64-gnu.Common
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.solaris-x86_64-gnu.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-x86_64 gnu compiler host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-sparc64-gnu.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to solaris-x86-gnu hosts
|
||||
include $(CONFIG)/os/CONFIG.solaris-x86-gnu.Common
|
||||
|
||||
12
configure/os/CONFIG.solaris-x86_64-gnu.solaris-x86_64-gnu
Normal file
12
configure/os/CONFIG.solaris-x86_64-gnu.solaris-x86_64-gnu
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG.solaris-x86_64-gnu.solaris-x86_64-gnu
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for solaris-x86_64 gnu compiler host - solaris-sx86_64 gnu compiler target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.solaris-x86_64-gnu.solaris-x86_64-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include common solaris-x86-gnu definitions
|
||||
include $(CONFIG)/os/CONFIG.solaris-x86-gnu.solaris-x86-gnu
|
||||
|
||||
@@ -10,10 +10,7 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86_64
|
||||
include $(CONFIG)/os/CONFIG.solaris-x86_64.solaris-x86_64
|
||||
|
||||
#BUILD_CLASS = HOST
|
||||
#HOST_OPT = NO
|
||||
|
||||
GNU = NO
|
||||
BUILD_CLASS=HOST
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
CROSS_OPT=NO
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
SPARCWORKS = /opt/SUNWspro
|
||||
GNU = NO
|
||||
|
||||
CC = $(SPARCWORKS)/bin/cc
|
||||
CCC = $(SPARCWORKS)/bin/CC
|
||||
@@ -23,9 +24,6 @@ PROFILE=NO
|
||||
GPROF=NO
|
||||
|
||||
# Configure OS vendor C compiler
|
||||
CONFORM_CFLAGS_ANSI = -Xa -v
|
||||
CONFORM_CFLAGS_STRICT = -Xa -v
|
||||
CONFORM_CFLAGS_TRAD = -Xs
|
||||
PROF_CFLAGS_YES = -p
|
||||
GPROF_CFLAGS_YES = -xpg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
@@ -35,8 +33,6 @@ OPT_CFLAGS_YES = -xO4
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
GPROF_CXXFLAGS_YES = -xpg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
@@ -62,4 +58,7 @@ OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
|
||||
#COMPILE_FILTER.c = 2>&1 | $(EPICS_BASE)/configure/tools/filterWarnings.pl
|
||||
#COMPILE_FILTER.cpp = $(COMPILE_FILTER.c)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.solarisCommon.solarisCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.(EPICS_HOST_ARCH).solarisCommon
|
||||
|
||||
@@ -12,7 +12,6 @@ MV = $(PERL) -MExtUtils::Command -e mv
|
||||
RM = $(PERL) -MExtUtils::Command -e rm_f
|
||||
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
|
||||
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
|
||||
ECHO = echo
|
||||
|
||||
WIND_HOST_TYPE = x86-win32
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
@@ -26,5 +25,5 @@ HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
endif
|
||||
|
||||
# Needed to find dlls for base installed build tools (antelope,eflex,...)
|
||||
PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)
|
||||
PATH := $(EPICS_BASE_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -43,22 +43,6 @@ CC = $(BORLAND_BIN)/bcc32 $(CCLINKOPT)
|
||||
LD = $(BORLAND_BIN)/bcc32 -r
|
||||
RANLIB =
|
||||
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.
|
||||
#
|
||||
ifdef NO_BORLAND_STDC
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
else
|
||||
CONFORM_CFLAGS_ANSI = -D__STDC__=0
|
||||
CONFORM_CFLAGS_STRICT = -D__STDC__=0
|
||||
endif
|
||||
CONFORM_CFLAGS_TRAD =
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
# some warning message here are always disabled because they are
|
||||
@@ -87,18 +71,7 @@ CPP = $(BORLAND_BIN)/cpp32 -Sr
|
||||
PREPROCESS.cpp = $(CPP) $(CPPFLAGS) $(subst /,\\,$(INCLUDES)) -o$@ $<
|
||||
|
||||
# Configure OS vendor C++ compiler
|
||||
#
|
||||
# __STDC__=0 works but not as cleanly as with
|
||||
# Microsoft Visual C++.
|
||||
# The Borland header files use ifdef __STDC__
|
||||
# to disable many nice things. This is overridden
|
||||
# by defining NO_BORLAND_STDC in the Makefile.
|
||||
#
|
||||
CCC = $(BORLAND_BIN)/bcc32 $(CCLINKOPT)
|
||||
ifndef NO_BORLAND_STDC
|
||||
CONFORM_CXXFLAGS_NORMAL = -D__STDC__=0
|
||||
CONFORM_CXXFLAGS_STRICT = -D__STDC__=0
|
||||
endif
|
||||
|
||||
# -w display warnings on
|
||||
# -g0 no limit to warning messages
|
||||
@@ -155,10 +128,6 @@ OPT_LDFLAGS =
|
||||
SHRLIB_CFLAGS=
|
||||
ARCH_DEP_CFLAGS=
|
||||
|
||||
# to identify the general architecture class:
|
||||
# should be BSD, SYSV, WIN32, ...
|
||||
# is: WIN32, sun4, hpux, linux, ...
|
||||
#
|
||||
OS_CLASS=WIN32
|
||||
POSIX=NO
|
||||
|
||||
|
||||
@@ -18,5 +18,5 @@ WIND_HOST_TYPE = x86-win32
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
|
||||
# Needed to find dlls for base installed build tools (antelope,eflex,...)
|
||||
PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)
|
||||
PATH := $(EPICS_BASE_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -23,15 +23,6 @@ SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT = -ansi
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT = -ansi
|
||||
|
||||
# -ansi build errors need fixing: u_long undeclared, fd_set with no type
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
|
||||
# Override linking with gcc library from CONFIG.gnuCommon
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
|
||||
@@ -10,4 +10,5 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.win32-x86-cygwin
|
||||
include $(CONFIG)/os/CONFIG.win32-x86-cygwin.win32-x86-cygwin
|
||||
|
||||
CROSS_OPT=NO
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -15,7 +15,6 @@ MV = $(PERL) -MExtUtils::Command -e mv
|
||||
RM = $(PERL) -MExtUtils::Command -e rm_f
|
||||
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
|
||||
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
|
||||
ECHO = echo
|
||||
|
||||
WIND_HOST_TYPE = x86-win32
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
@@ -23,5 +22,5 @@ OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
HOSTEXE=.exe
|
||||
|
||||
# Needed to find dlls for base installed build tools (antelope,eflex,...)
|
||||
PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)
|
||||
PATH := $(EPICS_BASE_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -23,12 +23,6 @@ SHRLIB_CFLAGS =
|
||||
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
|
||||
|
||||
# Dont use -ansi option: eliminates _fdopen, _tempnam, ...
|
||||
CONFORM_CFLAGS_ANSI =
|
||||
CONFORM_CFLAGS_STRICT =
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT =
|
||||
|
||||
# Override linking with gcc library from CONFIG.gnuCommon
|
||||
GNU_LDLIBS_YES =
|
||||
|
||||
@@ -36,4 +30,3 @@ OPT_CFLAGS_NO = -O3 -g
|
||||
OPT_CXXFLAGS_NO = -O3 -g
|
||||
|
||||
OP_SYS_LDLIBS = -lws2_32
|
||||
PROD_SYS_LIBS = ws2_32
|
||||
|
||||
@@ -10,4 +10,6 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
|
||||
include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw
|
||||
|
||||
CROSS_OPT=NO
|
||||
BUILD_CLASS = HOST
|
||||
|
||||
HOST_OPT=NO
|
||||
|
||||
@@ -12,7 +12,6 @@ MV = $(PERL) -MExtUtils::Command -e mv
|
||||
RM = $(PERL) -MExtUtils::Command -e rm_f
|
||||
MKDIR = $(PERL) -MExtUtils::Command -e mkpath
|
||||
RMDIR = $(PERL) -MExtUtils::Command -e rm_rf
|
||||
ECHO = echo
|
||||
|
||||
WIND_HOST_TYPE = x86-win32
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
@@ -26,5 +25,5 @@ HOME = $(HOMEDRIVE)$(HOMEPATH)
|
||||
endif
|
||||
|
||||
# Needed to find dlls for base installed build tools (antelope,eflex,...)
|
||||
PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)
|
||||
PATH := $(EPICS_BASE_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -31,17 +31,7 @@ BAFCMD = bscmake /nologo /o $@
|
||||
# Configure OS vendor C compiler
|
||||
CC = cl
|
||||
|
||||
#
|
||||
# __STDC__=0 is a real great idea of Jeff that gives us both:
|
||||
# 1) define STDC for build code (pretend ANSI conformance)
|
||||
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
|
||||
# because MS uses: if __STDC__ ... disable many nice things
|
||||
#
|
||||
# Use of /Za would dissable DLL import/export keywords which
|
||||
# include/excludes using architecture neutral macros
|
||||
CONFORM_CFLAGS_ANSI = /nologo /D__STDC__=0
|
||||
CONFORM_CFLAGS_STRICT = /nologo /D__STDC__=0
|
||||
CONFORM_CFLAGS_TRAD = /nologo
|
||||
GNU = NO
|
||||
|
||||
#
|
||||
# /W<N> use warning level N
|
||||
@@ -107,8 +97,7 @@ CPP = cl /C /E
|
||||
# /GR - generate code for run time type identification
|
||||
#
|
||||
CCC = cl /nologo /EHsc /GR
|
||||
CONFORM_CXXFLAGS_NORMAL =
|
||||
CONFORM_CXXFLAGS_STRICT = /D__STDC__=0
|
||||
CODE_CPPFLAGS += /nologo /D__STDC__=0
|
||||
CODE_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
|
||||
|
||||
#
|
||||
@@ -164,10 +153,6 @@ OPT_LDFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
|
||||
ARCH_DEP_CFLAGS=
|
||||
SHRLIB_CFLAGS=
|
||||
|
||||
# to identify the general architecture class:
|
||||
# should be BSD, SYSV, WIN32, ...
|
||||
# is: WIN32, sun4, hpux, linux, ...
|
||||
#
|
||||
OS_CLASS=WIN32
|
||||
POSIX=NO
|
||||
|
||||
@@ -260,7 +245,7 @@ PROD_LDLIBS += $(addsuffix .lib, \
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
PROD_LDLIBS += $(STATIC_LDLIBS) $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
#--------------------------------------------------
|
||||
|
||||
@@ -7,9 +7,10 @@
|
||||
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
-include $(CONFIG)/os/CONFIG.Common.win32-x86
|
||||
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
include $(CONFIG)/os/CONFIG.win32-x86-debug.win32-x86-debug
|
||||
|
||||
GNU = NO
|
||||
|
||||
CROSS_OPT = NO
|
||||
BUILD_CLASS = HOST
|
||||
|
||||
HOST_OPT = NO
|
||||
|
||||
13
configure/os/CONFIG.windows-x64.Common
Normal file
13
configure/os/CONFIG.windows-x64.Common
Normal file
@@ -0,0 +1,13 @@
|
||||
# CONFIG.win-x86_64.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for win-x86_64 host archs
|
||||
# Sites may override these definitions in CONFIG_SITE.win-x86_64.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
-include $(CONFIG)/os/CONFIG.win32-x86.Common
|
||||
|
||||
WIND_HOST_TYPE = x86_64-win
|
||||
|
||||
20
configure/os/CONFIG.windows-x64.windows-x64
Normal file
20
configure/os/CONFIG.windows-x64.windows-x64
Normal file
@@ -0,0 +1,20 @@
|
||||
# CONFIG.win-x86_64.win-x86_64
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for win-x86_64 target archs when host arch is win-x86_64
|
||||
# Sites may override these definitions in CONFIG_SITE.win-x86_64.win-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
-include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
|
||||
|
||||
#-------------------------------------------------------
|
||||
|
||||
|
||||
STATIC_LDLIBS_YES=ws2_64.lib advapi64.lib user64.lib kernel64.lib winmm.lib
|
||||
|
||||
WIN_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
|
||||
|
||||
LINK.shrlib = $(WINLINK) /nologo $(WIN_DLLFLAGS) /implib:$*.lib /out:$*.dll $(DLL_DEF_FLAG)
|
||||
|
||||
@@ -10,11 +10,9 @@
|
||||
# ARCH_<host_arch> = <epics_host_arch>
|
||||
ARCH_solaris = solaris-sparc
|
||||
ARCH_solarisGnu = solaris-sparc-gnu
|
||||
ARCH_sun4 = sun4-sparc
|
||||
ARCH_Linux = linux-x86
|
||||
ARCH_Darwin = darwin-ppc
|
||||
ARCH_WIN32 = win32-x86
|
||||
ARCH_hp700 = hpux-parisc
|
||||
ARCH_alpha = osf-alpha
|
||||
ARCH_cygwin32 = cygwin-x86
|
||||
ARCH_Borland = win32-x86-borland
|
||||
|
||||
@@ -5,8 +5,12 @@
|
||||
|
||||
# Where to find RTEMS
|
||||
#
|
||||
RTEMS_BASE=/usr/local/rtems/rtems-4.9
|
||||
RTEMS_VERSION=4.9
|
||||
RTEMS_BASE=/usr/local/rtems/rtems-4.9.2
|
||||
RTEMS_VERSION=4.9.2
|
||||
|
||||
# Cross-compile toolchain in $(RTEMS_TOOLS)/bin
|
||||
#
|
||||
RTEMS_TOOLS=$(RTEMS_BASE)
|
||||
|
||||
|
||||
# If you're using neither BOOTP/DHCP nor FLASH to pick up your IOC
|
||||
|
||||
14
configure/os/CONFIG_SITE.Common.darwin-ppc
Normal file
14
configure/os/CONFIG_SITE.Common.darwin-ppc
Normal file
@@ -0,0 +1,14 @@
|
||||
# CONFIG_SITE.Common.darwin-ppc
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for darwin-ppc target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# ppc64 - Not tested
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
#ARCH_CLASS = ppc ppc64
|
||||
18
configure/os/CONFIG_SITE.Common.darwin-ppcx86
Normal file
18
configure/os/CONFIG_SITE.Common.darwin-ppcx86
Normal file
@@ -0,0 +1,18 @@
|
||||
# CONFIG_SITE.Common.darwin-ppcx86
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 target builds
|
||||
#----------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# i386
|
||||
# ppc64 - Not tested
|
||||
# x86_64 - Needs MacOS 10.5 or 10.4 with Universal SDK
|
||||
|
||||
ARCH_CLASS = ppc i386
|
||||
#ARCH_CLASS = ppc i386 x86_64
|
||||
#ARCH_CLASS = ppc ppc64 i386
|
||||
#ARCH_CLASS = ppc ppc64 i386 x86_64
|
||||
14
configure/os/CONFIG_SITE.Common.darwin-x86
Normal file
14
configure/os/CONFIG_SITE.Common.darwin-x86
Normal file
@@ -0,0 +1,14 @@
|
||||
# CONFIG_SITE.Common.darwin-x86
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for darwin-x86 target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# i386
|
||||
# x86_64 - Needs MacOS 10.5 or 10.4 with Universal SDK
|
||||
|
||||
ARCH_CLASS = i386
|
||||
#ARCH_CLASS = i386 x86_64
|
||||
@@ -1,19 +0,0 @@
|
||||
# CONFIG_SITE.Common.hpux-parisc
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for hpux-parisc target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# NOTE: If SHARED_LIBRARIES=YES (now the default) then
|
||||
# a) Environment variable 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, or
|
||||
# b) Add the path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_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_DEPLIB_DIRS += /opt/epics/R$(EPICS_SHORT_VERSION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_PATCH_LEVEL)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)/lib/$(EPICS_HOST_ARCH)
|
||||
PROD_DEPLIB_DIRS += /opt/epics/R$(EPICS_SHORT_VERSION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_PATCH_LEVEL)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)/lib/$(EPICS_HOST_ARCH)
|
||||
@@ -1,13 +0,0 @@
|
||||
# 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
|
||||
12
configure/os/CONFIG_SITE.Common.solaris-x86-gnu
Normal file
12
configure/os/CONFIG_SITE.Common.solaris-x86-gnu
Normal file
@@ -0,0 +1,12 @@
|
||||
# CONFIG_SITE.Common.solaris-x86-gnu
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for solaris-x86-gnu target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# solaris 10 default location
|
||||
#GNU_DIR=/usr/sfw
|
||||
|
||||
# APS site override
|
||||
GNU_DIR = /usr/local
|
||||
11
configure/os/CONFIG_SITE.Common.solaris-x86_64-gnu
Normal file
11
configure/os/CONFIG_SITE.Common.solaris-x86_64-gnu
Normal file
@@ -0,0 +1,11 @@
|
||||
# CONFIG_SITE.Common.solaris-x86_64-gnu
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Site Specific definitions for solaris-x86_64-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-x86-gnu
|
||||
|
||||
COMMANDLINE_LIBRARY = EPICS
|
||||
@@ -5,8 +5,3 @@
|
||||
# Site Specific definitions for cygwin-x86 target
|
||||
# Only the local epics system manager should modify this file
|
||||
|
||||
# Needed to find dlls for gcc, g++, as, cpp, ...
|
||||
# if cygwin/bin not already in path
|
||||
CYGWIN_BIN=C:/cygwin/bin
|
||||
export PATH := $(CYGWIN_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -5,5 +5,3 @@
|
||||
#
|
||||
# Site override definitions for darwin-ppc host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
CROSS_COMPILER_TARGET_ARCHS = # RTEMS-uC5282 RTEMS-mvme5500 RTEMS-mvme2100
|
||||
|
||||
@@ -5,8 +5,3 @@
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# Need this to get OS X readline rather than Fink (PPC-only) readline
|
||||
#
|
||||
OP_SYS_LDFLAGS += -L/usr/lib
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# CONFIG_SITE.darwin-ppc.Common
|
||||
# CONFIG_SITE.darwin-x86.Common
|
||||
#
|
||||
# $Id$
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Site override definitions for darwin-ppc host builds
|
||||
# Site override definitions for darwin-x86 host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
CROSS_COMPILER_TARGET_ARCHS = # RTEMS-uC5282 # RTEMS-mvme5500 RTEMS-mvme2100
|
||||
|
||||
@@ -9,8 +9,3 @@
|
||||
# to omit command-line editing and history support
|
||||
#COMMANDLINE_LIBRARY = READLINE
|
||||
|
||||
# Needed to find dlls for gcc, g++, as, cpp, ...
|
||||
# if MINGW_BIN not in user's path
|
||||
MINGW_BIN=C:/MinGW/bin
|
||||
export PATH := $(MINGW_BIN):$(PATH)
|
||||
|
||||
|
||||
@@ -13,13 +13,10 @@
|
||||
<h2>Converting an EPICS R3.13 application to R3.14</h2>
|
||||
</center>
|
||||
|
||||
<p><br>
|
||||
This document describes how to convert a R3.13 vxWorks application so that it
|
||||
<p>This document describes how to convert a R3.13 vxWorks application so that it
|
||||
builds with release R3.14. It describes procedures such that:</p>
|
||||
<ul>
|
||||
<li>The application uses the configure rules which are new to R3.14.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The OSI (Operating System Independent) features of R3.14 are available,
|
||||
i.e. iocCore products can be build for vxWorks as well as other
|
||||
platforms, e.g. solaris and linux.</li>
|
||||
@@ -27,109 +24,135 @@ builds with release R3.14. It describes procedures such that:</p>
|
||||
|
||||
<h3>Gnumake clean uninstall</h3>
|
||||
|
||||
<p>First do a gnumake clean uninstall in the application's root directory to
|
||||
remove all files created by earlier builds.</p>
|
||||
<p>First do a <tt>gnumake clean uninstall</tt> in the application's root
|
||||
directory to 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
|
||||
</pre>
|
||||
|
||||
<h3>Copy all *App and iocBoot directories and files to the new <top>
|
||||
<blockquote>
|
||||
<pre>mkdir <i>top</i>
|
||||
cd <i>top</i>
|
||||
<i>/path/to/base-3.14</i>/bin/<i>host_arch</i>/makeBaseApp.pl -t example junk</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Copy all *App and iocBoot directories and files to the new <i>top</i>
|
||||
directory</h3>
|
||||
<pre>cd <oldtop>
|
||||
find *App iocBoot -print | cpio -pvmd <fullpath name to new top></pre>
|
||||
|
||||
<h3>Modify <top>/configure/RELEASE</h3>
|
||||
<blockquote>
|
||||
<pre>cd <i>oldtop</i>
|
||||
find *App iocBoot -print | cpio -pvmd <i>/path/to/new/top</i></pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Modify <i>top</i>/configure/RELEASE</h3>
|
||||
|
||||
<p>Copy definitions of external modules excluding EPICS_BASE and
|
||||
TEMPLATES_TOP from old application RELEASE file. <br>
|
||||
If sequence programs (*.st or *.stt files) exist in your application, add the
|
||||
SNCSEQ location definition for the R3.14 seq external module</p>
|
||||
SNCSEQ location definition for the R3.14 sncseq 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 the same EPICS base R3.14 release.
|
||||
<blockquote>
|
||||
<pre>SNCSEQ = <i>/path/to/sncseq</i></pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Modify the Makefiles in <top>/*App directories.</h3>
|
||||
<p>The R3.14 sncseq module must exist and be built with the same EPICS base
|
||||
R3.14 release.</p>
|
||||
|
||||
<p>Change <tt>"include $(TOP)/config/CONFIG_APP"</tt> to <tt>"include
|
||||
$(TOP)/configure/CONFIG"</tt></p>
|
||||
<h3>Modify the Makefiles in <i>top</i>/*App directories.</h3>
|
||||
|
||||
<p>Change " i<tt>nclude $(TOP)/config/RULES_DIRS</tt>" to "<tt>include
|
||||
$(TOP)/configure/RULES_DIRS"</tt></p>
|
||||
<p>Change <q><tt>include $(TOP)/config/CONFIG_APP</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/CONFIG</tt></q></p>
|
||||
|
||||
<h3>Modify the Makefiles in <top>/*App/*Db directories.</h3>
|
||||
<p>Change <q><tt>include $(TOP)/config/RULES_DIRS</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/RULES_DIRS</tt></q></p>
|
||||
|
||||
<p>Remove existing Makefile <br>
|
||||
Rename Makefile.Host to Makefile <br>
|
||||
Modify Makefile as follows:</p>
|
||||
<h3>Modify the Makefiles in <i>top</i>/*App/*Db directories.</h3>
|
||||
|
||||
<p>Change "<tt>TOP=../../.."</tt> to "<tt>TOP=../.."</tt></p>
|
||||
<p>Remove existing <q><tt>Makefile</tt></q>.</p>
|
||||
|
||||
<p>Change "i<tt>nclude $(TOP)/config/CONFIG_APP</tt>" to "<tt>include
|
||||
$(TOP)/configure/CONFIG"</tt></p>
|
||||
<p>Rename <q><tt>Makefile.Host</tt></q> to <q><tt>Makefile</tt></q></p>
|
||||
|
||||
<p>Change "<tt>include $(TOP)/config/RULES.Db" </tt>to <tt>"include
|
||||
$(TOP)/configure/RULES"</tt></p>
|
||||
<p>Modify the <tt>Makefile</tt> as follows:</p>
|
||||
|
||||
<p>Change <q><tt>TOP=../../..</tt></q> to <q><tt>TOP=../..</tt></q></p>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/CONFIG_APP</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/CONFIG</tt></q></p>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/RULES.Db</tt></q>to <q><tt>include
|
||||
$(TOP)/configure/RULES</tt></q></p>
|
||||
|
||||
<p>Place all definitions between the include lines.</p>
|
||||
|
||||
<p>Place any rules after the last include line.</p>
|
||||
|
||||
<h3>Modify the Makefiles in <top>/*App/src directories.</h3>
|
||||
<h3>Modify the Makefiles in <i>top</i>/*App/src directories.</h3>
|
||||
|
||||
<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 the Makefile from junkApp/src.</p>
|
||||
<pre>rm Makefile
|
||||
|
||||
<blockquote>
|
||||
<pre>rm Makefile
|
||||
cp ../../junkApp/src/Makefile .</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>We can remove the junkApp now.</p>
|
||||
<pre>/bin/rm -fr ../../junkApp</pre>
|
||||
<p>We can remove the junkApp now (unless you have other App/src directories
|
||||
still to convert):</p>
|
||||
|
||||
<p>This new Make file has comments explaining how to build the various host
|
||||
<blockquote>
|
||||
<pre>rm -rf ../../junkApp</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>This new Makefile has comments explaining how to build the various host
|
||||
and ioc products. Lets consider some examples</p>
|
||||
<ul>
|
||||
<li>Host programs
|
||||
<p>Makefile.Host contains definitions like:</p>
|
||||
<pre>PROD += caExample
|
||||
<blockquote>
|
||||
<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>
|
||||
Com_DIR = $(EPICS_BASE_LIB)</pre>
|
||||
</blockquote>
|
||||
<p>In Makefile these are:</p>
|
||||
<pre>PROD_HOST += caExample
|
||||
<blockquote>
|
||||
<pre>PROD_HOST += caExample
|
||||
caExample_SRCS += caExample.c
|
||||
caExample_LIBS += $(EPICS_BASE_HOST_LIBS)
|
||||
</pre>
|
||||
caExample_LIBS += $(EPICS_BASE_HOST_LIBS)</pre>
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>Record Support - generate xxxRecord.h file
|
||||
<p>Makefile.Host (or perhaps Makefile.Vx) contains:</p>
|
||||
<pre>RECTYPES += xxxRecord.h
|
||||
</pre>
|
||||
<blockquote>
|
||||
<pre>RECTYPES += xxxRecord.h</pre>
|
||||
</blockquote>
|
||||
<p>In Makefile this is:</p>
|
||||
<pre>DBDINC += xxxRecord
|
||||
</pre>
|
||||
<blockquote>
|
||||
<pre>DBDINC += xxxRecord</pre>
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>Generating the .dbd file for all record/device/driver support
|
||||
<p>Makefile.Host (or perhaps Makefile.Vx) contains:</p>
|
||||
<pre>DBDEXPAND = exampleInclude.dbd
|
||||
DBDNAME = exampleApp.dbd
|
||||
</pre>
|
||||
<blockquote>
|
||||
<pre>DBDEXPAND = exampleInclude.dbd
|
||||
DBDNAME = exampleApp.dbd</pre>
|
||||
</blockquote>
|
||||
<p>In Makefile this is:</p>
|
||||
<pre>DBD += example.dbd
|
||||
</pre>
|
||||
<blockquote>
|
||||
<pre>DBD += example.dbd</pre>
|
||||
</blockquote>
|
||||
<p>NOTES: Change exampleApp.dbd to example.dbd in all st.cmd files. Also
|
||||
this definition assumes that file exampleInclude.dbd exists.</p>
|
||||
</li>
|
||||
<li>Create the ioc application:
|
||||
<p>Makefile.Vx contains statements like:</p>
|
||||
<pre>SRCS.c += ../xxxRecord.c
|
||||
<blockquote>
|
||||
<pre>SRCS.c += ../xxxRecord.c
|
||||
SRCS.c += ../devXxxSoft.c
|
||||
|
||||
LIBOBJS += xxxRecord.o
|
||||
@@ -139,11 +162,11 @@ LIBOBJS += sncExample.o
|
||||
include ../baseLIBOBJS
|
||||
|
||||
LIBNAME = exampleLib
|
||||
INSTALLS += iocCore seq
|
||||
</pre>
|
||||
INSTALLS += iocCore seq</pre>
|
||||
</blockquote>
|
||||
<p>In Makefile these become:</p>
|
||||
<pre>
|
||||
LIBRARY_vxWorks += exampleIoc
|
||||
<blockquote>
|
||||
<pre>LIBRARY_vxWorks += exampleIoc
|
||||
exampleIoc_SRCS += xxxRecord.c
|
||||
exampleIoc_SRCS += devXxxSoft.c
|
||||
exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
|
||||
@@ -158,9 +181,8 @@ example_LIBS += $(EPICS_BASE_IOC_LIBS)
|
||||
example_SRCS += example_registerRecordDeviceDriver.cpp
|
||||
|
||||
#The following adds support from base/src/vxWorks
|
||||
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
|
||||
|
||||
</pre>
|
||||
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary</pre>
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -169,223 +191,224 @@ baseLIBOBJS, Makefile.Host, and Makefile.Vx</p>
|
||||
|
||||
<h3>File base.dbd no longer needed</h3>
|
||||
|
||||
<p>You now can add the line</p>
|
||||
|
||||
<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
|
||||
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>
|
||||
<pre>include "base.dbd"</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>to your <i>appname</i>Include.dbd file and remove the file
|
||||
<i>name</i>App/src/base.dbd from your src directory. The base.dbd from base/dbd
|
||||
will be used instead. If you only want to load a subset of the record
|
||||
definitions from base you can keep your own copy of base.dbd, but you should
|
||||
copy the one from your R3.14 base and edit that rather than trying to re-use the
|
||||
R3.13 version from your old application.</p>
|
||||
|
||||
<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,<recordname>RSET);</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Device support</h3>
|
||||
<p>Add the following line after all existing #includes</p>
|
||||
|
||||
<blockquote>
|
||||
Add the following line after all existing #includes
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
and add the following line after the dset definition:
|
||||
struct { ...} dev<devname>= { ...};
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(dset,dev<devname>);</pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>Driver support</h3>
|
||||
<p>The structure rset is now a typedef so change</p>
|
||||
|
||||
<blockquote>
|
||||
Add the following line after all existing #includes
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
<pre>struct rset <i>recordname</i>RSET = { ... };</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>Modify the Makefiles in <top>/iocBoot directory.</h3>
|
||||
|
||||
<p>Change " i<tt>nclude $(TOP)/config/CONFIG_APP" </tt>to "<tt>include
|
||||
$(TOP)/configure/CONFIG"</tt></p>
|
||||
|
||||
<p>If they do not already exist, add the lines
|
||||
<blockquote>
|
||||
<p><tt>DIRS += $(wildcard *ioc*)</tt></p>
|
||||
<p><tt>DIRS += $(wildcard as*)</tt></p>
|
||||
</blockquote>
|
||||
|
||||
<p>Change <tt>"include $(TOP)/config/RULES.iocBoot" </tt>to "i<tt>nclude
|
||||
$(TOP)/configure/RULES_DIRS"</tt></p>
|
||||
|
||||
<h3>Modify the Makefiles in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<p>Change <tt>"include $(TOP)/config/CONFIG_APP" </tt>to "<tt>include
|
||||
$(TOP)/configure/CONFIG"</tt></p>
|
||||
|
||||
<p>Change</p>
|
||||
|
||||
<p><tt>ARCH = <old arch specification e.g. mv167></tt></p>
|
||||
|
||||
<p>to</p>
|
||||
|
||||
<p><tt>ARCH = <new arch specification e.g.
|
||||
vxWorks-68040></tt></p>
|
||||
<blockquote>
|
||||
<pre>rset <i>recordname</i>RSET = { ... };</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Change "<tt>include $(TOP)/config/RULES.ioc</tt>" to "<tt>include
|
||||
$(TOP)/configure/RULES.ioc"</tt></p>
|
||||
<p>and add the following line after the <q>rset <i>recordname</i>RSET = { ...
|
||||
};</q> definition.</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(rset,<i>recordname</i>RSET);</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Device support</h3>
|
||||
|
||||
<p>Add the following line after all existing #includes</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>and add the following line after the dset definition <q>struct { ... }
|
||||
dev<i>name</i> = { ... };</q></p>
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(dset,dev<i>name</i>);</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Driver support</h3>
|
||||
|
||||
<p>Add the following line after all existing #includes</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>#include "epicsExport.h"</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>and add the following line after the drvet drv<i>name</i> definition</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>epicsExportAddress(drvet,drv<i>name</i>);</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>Registration code changed</h3>
|
||||
|
||||
<p>Registration code for application specific functions, e.g. subroutine record
|
||||
init and process functions, must been changed as follows</p>
|
||||
|
||||
<ol>
|
||||
<li>Include the following header files after all existing #includes:
|
||||
<blockquote>
|
||||
<pre>#include "registerFunction.h"
|
||||
#include "epicsExport.h"</pre>
|
||||
</blockquote></li>
|
||||
|
||||
<li>Make the application specific functions static functions, e.g.
|
||||
<blockquote>
|
||||
<pre>static long mySubInit(subRecord *precord)
|
||||
static long mySubProcess(subRecord *precord)</pre>
|
||||
</blockquote></li>
|
||||
|
||||
<li>Add an epicsExportFunction statement for each of the functions to be
|
||||
registered, e.g.
|
||||
<blockquote>
|
||||
<pre>epicsExportFunction(mySubInit);
|
||||
epicsExportFunction(mySubProcess);</pre>
|
||||
</blockquote></li>
|
||||
|
||||
<li>Add a function statement for each of the functions to be registered in a
|
||||
.dbd file that is included in the application, e.g.
|
||||
<blockquote>
|
||||
<pre>function("mySubInit")
|
||||
function("mySubProcess")</pre>
|
||||
</blockquote></li>
|
||||
</ol>
|
||||
|
||||
<h3>Modify the Makefiles in <i>top</i>/iocBoot directory.</h3>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/CONFIG_APP</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/CONFIG</tt></q></p>
|
||||
|
||||
<p>If they do not already exist, add the lines</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>DIRS += $(wildcard *ioc*)
|
||||
DIRS += $(wildcard as*)</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/RULES.iocBoot</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/RULES_DIRS</tt></q>.</p>
|
||||
|
||||
<h3>Modify the Makefiles in <i>top</i>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/CONFIG_APP</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/CONFIG</tt></q></p>
|
||||
|
||||
<p>Change</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>ARCH = <old arch specification e.g. mv167></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>to</p>
|
||||
|
||||
<blockquote>
|
||||
<pre>ARCH = <new arch specification e.g. vxWorks-68040></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Change <q><tt>include $(TOP)/config/RULES.ioc</tt></q> to <q><tt>include
|
||||
$(TOP)/configure/RULES.ioc</tt></q></p>
|
||||
|
||||
<p>If it exists remove the line</p>
|
||||
|
||||
<p><tt>buildInstall: cdCommands </tt></p>
|
||||
<blockquote>
|
||||
<pre>buildInstall: cdCommands</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Add the line</p>
|
||||
<p><tt>TARGETS = cdCommands</tt></p>
|
||||
|
||||
<blockquote>
|
||||
<pre>TARGETS = cdCommands</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>before the include for RULES.ioc line.</p>
|
||||
|
||||
<h3>Modify st.cmd in <top>/iocBoot/ioc* directories.</h3>
|
||||
<h3>Modify st.cmd in <i>top</i>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<p>Remove the lines</p>
|
||||
<pre>ld < seq
|
||||
|
||||
<blockquote>
|
||||
<pre>ld < seq
|
||||
ld < iocCore</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>Change "<tt>ld < <libname>Lib</tt>" to "<tt>ld <
|
||||
<libname>.munch"</tt></p>
|
||||
<p>Change <q><tt>ld < <i>name</i>Lib</tt></q> to
|
||||
|
||||
<p>Change "<tt>cd appbin</tt>" to "<tt>cd topbin</tt>"</p>
|
||||
<blockquote>
|
||||
<pre>ld 0,0, "<i>name</i>.munch"</pre>
|
||||
|
||||
<p>(The <tt>ld</tt> command in vxWorks 5.5.2 doesn't clean up its standard
|
||||
input properly, so we now recommend passing the filename to it directly
|
||||
instead.)</p> </blockquote>
|
||||
|
||||
<p>Change <q><tt>cd appbin</tt></q> to <q><tt>cd topbin</tt></q></p>
|
||||
|
||||
<p>Change the statement:</p>
|
||||
|
||||
<p><tt>dbLoadDatabase("../../dbd/<name>App.dbd")</tt> <br>
|
||||
</p>
|
||||
to
|
||||
<pre>dbLoadDatabase("../../dbd/<name>.dbd")
|
||||
<name>_registerRecordDeviceDriver(pdbbase)</pre>
|
||||
<blockquote>
|
||||
<pre>dbLoadDatabase("../../dbd/<i>name</i>App.dbd")</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>where <name> is replaced with the name of your dbd file.</p>
|
||||
to
|
||||
|
||||
<blockquote>
|
||||
<pre>dbLoadDatabase("../../dbd/<i>name</i>.dbd")
|
||||
<i>name</i>_registerRecordDeviceDriver(pdbbase)</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>where <i>name</i> is replaced with the name of your dbd file.</p>
|
||||
|
||||
<h3>recGbl calls</h3>
|
||||
|
||||
<p>If any source file makes calls to recGbl routines make sure it has <span
|
||||
style="font-family: courier">"#include "recGbl.h"</span>. If it doesn't the
|
||||
compiler will issue warning messages and the ioc may issue the message:
|
||||
"undefined symbol: _recGblSetSevr".</p>
|
||||
<p>If any source file makes calls to recGbl routines make sure it includes
|
||||
<tt>recGbl.h</tt>. If it doesn't the compiler will issue warning messages and
|
||||
the ioc may issue the message: <q>undefined symbol: _recGblSetSevr</q>.</p>
|
||||
|
||||
<h3>Record support changes</h3>
|
||||
|
||||
<p>The steppermotor, scan, and pid records are no longer in base. If these
|
||||
<p>The steppermotor, scan, and pid records are no longer in base. If these
|
||||
records are not used in your application, comment out references to them in
|
||||
base.dbd. If these record types are used at your site, they should be
|
||||
base.dbd. If these record types are used at your site, they should be
|
||||
downloaded and built with base R3.14 by your EPICS administrator. To update
|
||||
the R3.14 location of these record types in your application you must add
|
||||
the R3.14 location of these record types in your application you must add
|
||||
appropriate module definitions to your application's config/RELEASE file and
|
||||
add <tt>LIBOBJS</tt> definitions to the src Makefile.</p>
|
||||
|
||||
<p>For example add</p>
|
||||
|
||||
<p> <tt>PID=<full path to modules directory>/pid</tt></p>
|
||||
<blockquote>
|
||||
<pre>PID = <i>/path/to/modules</i>/pid</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>to config/RELEASE and add <br>
|
||||
<p>to config/RELEASE and add</p>
|
||||
|
||||
<p></p>
|
||||
<blockquote>
|
||||
<pre>LIBOBJS += $(PID_BIN)/pidRecord.o</pre>
|
||||
</blockquote>
|
||||
|
||||
<p><tt>LIBOBJS += $(PID_BIN)/pidRecord.o</tt></p>
|
||||
to your application src/Makefile.
|
||||
<p>to your application src/Makefile.</p>
|
||||
|
||||
<p>You should consider changing any existing old steppermotor records to the
|
||||
new EPICS motor record module supported by Beamline Controls and Data
|
||||
new EPICS motor record module supported by Beamline Controls and Data
|
||||
Acquisition at APS.</p>
|
||||
|
||||
<h3>RecDynLink.o and devPtSoft changes</h3>
|
||||
@@ -394,8 +417,8 @@ Acquisition at APS.</p>
|
||||
separate EPICS modules.You must now add the appropriate module full path
|
||||
definitions to your application config/RELEASE file, and change
|
||||
<tt>LIBOBJS</tt> location definition <tt>$(EPICS_BASE_BIN)</tt> to the module
|
||||
definition bin directory in your application src directory files. See
|
||||
"Hardware support changes" below for instructions.</p>
|
||||
definition bin directory in your application src directory files. See
|
||||
<q>Hardware support changes</q> below for instructions.</p>
|
||||
|
||||
<h3>Hardware support changes</h3>
|
||||
|
||||
@@ -408,35 +431,41 @@ application, comment out references to them in base.dbd.</p>
|
||||
support for your site should be downloaded and built with base R3.14 by your
|
||||
EPICS administrator. You must now add the appropriate module full path
|
||||
definitions to your application config/RELEASE file, and change
|
||||
<tt>LIBOBJS</tt> location from <tt>$(EPICS_BASE_BIN) </tt>to the module bin
|
||||
<tt>LIBOBJS</tt> location from <tt>$(EPICS_BASE_BIN) </tt>to the module bin
|
||||
directory in your application src directory files.</p>
|
||||
|
||||
<p>For example, remove</p>
|
||||
|
||||
<p> <tt>LIBOBJS+=$(EPICS_BASE_BIN)/symb</tt></p>
|
||||
<blockquote>
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/symb</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>from baseLIBOBJS and add</p>
|
||||
|
||||
<p> <tt>LIBOBJS+=$(SYMB_BIN)/symb</tt></p>
|
||||
<blockquote>
|
||||
<pre>LIBOBJS += $(SYMB_BIN)/symb</pre>
|
||||
</blockquote>
|
||||
|
||||
<p>to your application src/Makefile, <br>
|
||||
and add the line</p>
|
||||
<p>to your application src/Makefile, and add the line</p>
|
||||
|
||||
<p><tt>SYMB=<full path definition for the built module SYMB></tt></p>
|
||||
<blockquote>
|
||||
<pre>SYMB = <full path definition for the built module SYMB></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>into your application config/RELEASE file .</p>
|
||||
<p>into your application config/RELEASE file.</p>
|
||||
|
||||
<h3>dbLoadtemplate tool changes</h3>
|
||||
|
||||
<p>The host tool dbLoadTemplate has been replace by a new EPICS extension,
|
||||
msi, which should be downloaded and built with base R3.14 by your EPICS
|
||||
administrator. dbLoadTemplate is still supported on iocs. If, in your
|
||||
administrator. dbLoadTemplate is still supported on iocs. If, in your
|
||||
application, db files are created from template and substitution files you
|
||||
should add the definition</p>
|
||||
should add the definition</p>
|
||||
|
||||
<p><tt>MSI=<full path name to msi executable></tt></p>
|
||||
<blockquote>
|
||||
<pre>MSI = <full path name to msi executable></pre>
|
||||
</blockquote>
|
||||
|
||||
<p>to your application config/RELEASE file.</p>
|
||||
<br>
|
||||
</body>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -4,34 +4,16 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title>Known Problems R3.14.10-RC1</title>
|
||||
<title>Known Problems in R3.14.11</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS Base R3.14.10: Known Problems</h1>
|
||||
<h1 style="text-align: center">EPICS Base R3.14.11: Known Problems</h1>
|
||||
|
||||
<ul>
|
||||
<li>Parallel make (<tt>make -j</tt>) does not work on cygwin-x86 targets,
|
||||
probably due to a missing dependency in the EPICS build rules.</li>
|
||||
|
||||
<li>Some older Perl versions do not properly install the xsubpp program. This
|
||||
will prevent the build in src/cap5 from completing — the build will
|
||||
finish with an error like this:
|
||||
|
||||
<blockquote><pre>/bin/sh: /bin/xsubpp: not found
|
||||
make[3]: *** [Cap5.c] Error 1
|
||||
make[3]: Leaving directory `/home/phoebus3/ANJ/epics/base/3-14-dev/src/cap5/O.solaris-x86'
|
||||
make[2]: *** [install.solaris-x86] Error 2
|
||||
make[2]: Leaving directory `/home/phoebus3/ANJ/epics/base/3-14-dev/src/cap5'
|
||||
make[1]: *** [cap5.install] Error 2
|
||||
make[1]: Leaving directory `/home/phoebus3/ANJ/epics/base/3-14-dev/src'
|
||||
make: *** [src.install] Error 2</pre></blockquote>
|
||||
|
||||
As long as you don't intend to use the Perl5 CA interface this error is
|
||||
harmless, as cap5 is the last directory to be compiled in Base. If you need
|
||||
the Perl5 CA inteface, fix your Perl installation so that the perl binary
|
||||
and the xsubpp program (or soft links to them) are both found in the same
|
||||
directory.</li>
|
||||
<li>The epicsMutexTest program sometimes runs an extra test, resulting in
|
||||
a failure report from 'make -s runtests'. This is harmless.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -1,492 +1,511 @@
|
||||
README.1st
|
||||
Installation Instructions
|
||||
|
||||
Installation Instructions
|
||||
EPICS base
|
||||
|
||||
EPICS base
|
||||
Release 3.14.*
|
||||
|
||||
Release 3.14.*
|
||||
Table of Contents
|
||||
|
||||
* What is EPICS base?
|
||||
* What is new in this release?
|
||||
* Copyright
|
||||
* Supported platforms
|
||||
* Supported compilers
|
||||
* Software requirements
|
||||
* Host system storage requirements
|
||||
* Documentation
|
||||
* WWW pages
|
||||
* Directory Structure
|
||||
* Build related components
|
||||
* Building EPICS base (Unix and Win32)
|
||||
* Example application and extension
|
||||
* Multiple host platforms
|
||||
|
||||
What is EPICS base?
|
||||
|
||||
The Experimental Physics and Industrial Control Systems (EPICS) is
|
||||
an extensible set of software components and tools with which
|
||||
application developers can create a control system. This control system
|
||||
can be used to control accelerators, detectors, telescopes, or other
|
||||
scientific experimental equipment. EPICS base is the set of core
|
||||
software, i.e. the components of EPICS without which EPICS would not
|
||||
function. EPICS base allows an arbitrary number of target systems,
|
||||
IOCs (input/output controllers), and host systems, OPIs (operator
|
||||
interfaces) of various types.
|
||||
The Experimental Physics and Industrial Control Systems (EPICS) is an
|
||||
extensible set of software components and tools with which application
|
||||
developers can create a control system. This control system can be used to
|
||||
control accelerators, detectors, telescopes, or other scientific
|
||||
experimental equipment. EPICS base is the set of core software, i.e. the
|
||||
components of EPICS without which EPICS would not function. EPICS base
|
||||
allows an arbitrary number of target systems, IOCs (input/output
|
||||
controllers), and host systems, OPIs (operator interfaces) of various types.
|
||||
|
||||
What is new in this release?
|
||||
|
||||
Please check the RELEASE_NOTES file in the distribution for description
|
||||
of changes and release migration details.
|
||||
Please check the RELEASE_NOTES file in the distribution for description of
|
||||
changes and release migration details.
|
||||
|
||||
Copyright
|
||||
|
||||
Please review the COPYRIGHT* files included in the distribution for
|
||||
legal terms of usage.
|
||||
Please review the COPYRIGHT* files included in the distribution for legal
|
||||
terms of usage.
|
||||
|
||||
Supported platforms
|
||||
|
||||
Currently this version of EPICS base has been built on the following
|
||||
hosts for the following targets. If you are trying to build EPICS base on a
|
||||
different host or for a different target machine you must get the proper
|
||||
host/target cross compiler and header files, and you will have to create
|
||||
and add the appropriate new configure files to the
|
||||
base/configure/os/directory. You can start by copying existing
|
||||
configuration files in the configure/os directory and then make changes
|
||||
for your new platforms.
|
||||
Currently this version of EPICS base has been built on the following hosts
|
||||
for the following targets. If you are trying to build EPICS base on a
|
||||
different host or for a different target machine you must get the proper
|
||||
host/target cross compiler and header files, and you will have to create and
|
||||
add the appropriate new configure files to the base/configure/os/directory.
|
||||
You can start by copying existing configuration files in the configure/os
|
||||
directory and then make changes for your new platforms.
|
||||
|
||||
Host platforms (operating system - architecture [- alternate toolset])
|
||||
Host platforms (operating system - architecture [- alternate toolset])
|
||||
|
||||
aix-ppc
|
||||
aix-ppc-gnu
|
||||
cygwin-x86
|
||||
darwin-ppc
|
||||
darwin-x86
|
||||
darwin-ppcx86
|
||||
freebsd-x86
|
||||
freebsd-x86_64
|
||||
hpux-parisc
|
||||
hpux-parisc-gnu
|
||||
linux-ppc
|
||||
linux-x86
|
||||
linux-x86_64
|
||||
linux-x86-borland
|
||||
solaris-sparc
|
||||
solaris-sparc-gnu
|
||||
solaris-sparc64
|
||||
solaris-sparc64-gnu
|
||||
solaris-x86
|
||||
solaris-x86-gnu
|
||||
win32-x86
|
||||
win32-x86-mingw
|
||||
win32-x86-cygwin
|
||||
cygwin-x86 (unix style API, uses cygwin1.dll compatability library)
|
||||
darwin-ppc
|
||||
darwin-x86
|
||||
darwin-ppcx86
|
||||
freebsd-x86
|
||||
freebsd-x86_64
|
||||
linux-ppc
|
||||
linux-x86
|
||||
linux-x86_64
|
||||
linux-x86-borland
|
||||
solaris-sparc
|
||||
solaris-sparc-gnu
|
||||
solaris-sparc64
|
||||
solaris-sparc64-gnu
|
||||
solaris-x86
|
||||
solaris-x86-gnu
|
||||
win32-x86
|
||||
win32-x86-mingw (WIN32 API, uses MS dlls)
|
||||
win32-x86-cygwin (WIN32 API, uses MS dlls)
|
||||
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
|
||||
linux-386
|
||||
linux-486
|
||||
linux-586
|
||||
linux-686
|
||||
linux-arm
|
||||
linux-arm_eb
|
||||
linux-arm_el
|
||||
linux-athlon
|
||||
linux-cris
|
||||
linux-cris_v10
|
||||
linux-cris_v32
|
||||
linux-xscale_be
|
||||
vxWorks-486
|
||||
vxWorks-68040
|
||||
vxWorks-68040lc
|
||||
vxWorks-68060
|
||||
vxWorks-pentium
|
||||
vxWorks-ppc603
|
||||
vxWorks-ppc603_long
|
||||
vxWorks-ppc604
|
||||
vxWorks-ppc604_long
|
||||
vxWorks-ppc604_altivec
|
||||
vxWorks-mpc8540
|
||||
RTEMS-at91rm9200ek
|
||||
RTEMS-beatnik
|
||||
RTEMS-gen68360
|
||||
RTEMS-mcp750
|
||||
RTEMS-mvme167
|
||||
RTEMS-mvme2100
|
||||
RTEMS-mvme3100
|
||||
RTEMS-mvme5500
|
||||
RTEMS-pc386
|
||||
RTEMS-psim
|
||||
RTEMS-uC5282
|
||||
linux-386
|
||||
linux-486
|
||||
linux-586
|
||||
linux-686
|
||||
linux-arm
|
||||
linux-arm_eb
|
||||
linux-arm_el
|
||||
linux-athlon
|
||||
linux-cris
|
||||
linux-cris_v10
|
||||
linux-cris_v32
|
||||
linux-xscale_be
|
||||
vxWorks-486
|
||||
vxWorks-68040
|
||||
vxWorks-68040lc
|
||||
vxWorks-68060
|
||||
vxWorks-pentium
|
||||
vxWorks-ppc603
|
||||
vxWorks-ppc603_long
|
||||
vxWorks-ppc604
|
||||
vxWorks-ppc604_long
|
||||
vxWorks-ppc604_altivec
|
||||
vxWorks-mpc8540
|
||||
RTEMS-at91rm9200ek
|
||||
RTEMS-beatnik
|
||||
RTEMS-gen68360
|
||||
RTEMS-mcp750
|
||||
RTEMS-mvme167
|
||||
RTEMS-mvme2100
|
||||
RTEMS-mvme3100
|
||||
RTEMS-mvme5500
|
||||
RTEMS-pc386
|
||||
RTEMS-psim
|
||||
RTEMS-uC5282
|
||||
|
||||
Supported compilers
|
||||
|
||||
This version of EPICS base has been built and tested using the host
|
||||
vendor's C and C++ compilers as well as the GNU gcc and g++
|
||||
compilers. The GNU cross-compilers have been used for all
|
||||
cross-compiled targets. You may need the host vendor's C++ compiler
|
||||
in your search path to do EPICS builds. Check definitions of CC and
|
||||
CCC in base/configure/os/CONFIG.<host>.<host>.
|
||||
This version of EPICS base has been built and tested using the host vendor's
|
||||
C and C++ compilers as well as the GNU gcc and g++ compilers. The GNU
|
||||
cross-compilers have been used for all cross-compiled targets. You may need
|
||||
the host vendor's C++ compiler in your search path to do EPICS builds. Check
|
||||
definitions of CC and CCC in base/configure/os/CONFIG.<host>.<host>.
|
||||
|
||||
Software requirements
|
||||
|
||||
GNU make
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your
|
||||
path so that a gnumake version 3.81 or later is available.
|
||||
GNU make
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your path so that
|
||||
a gnumake version 3.81 or later is available.
|
||||
|
||||
Perl
|
||||
You must have perl version 5.8 or later installed. The configure files do
|
||||
not specify the perl full pathname. You need the perl executable in
|
||||
your search path.
|
||||
gcc
|
||||
For most cases, you must have gcc version 3.4.2 or later. Appropriate
|
||||
versions of vendor C and C++ compilers may be used for native compilation.
|
||||
|
||||
Unzip and tar (Winzip on WIN32 systems)
|
||||
You must have tools available to unzip and untar the EPICS base
|
||||
distribution file.
|
||||
Perl
|
||||
You must have perl version 5.8.1 or later installed. The configure files do
|
||||
not specify the perl full pathname. You need the perl executable in your
|
||||
search path.
|
||||
|
||||
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.
|
||||
Unzip and tar (Winzip on WIN32 systems)
|
||||
You must have tools available to unzip and untar the EPICS base distribution
|
||||
file.
|
||||
|
||||
GNU readline or Tecla library
|
||||
GNU readline and Tecla librararies can be used by the IOC shell to
|
||||
provide command line editing and command line history recall and edit.
|
||||
GNU readline (or Tecla library) must be installed on your target system
|
||||
when COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target.
|
||||
EPICS (EPICS shell) is the default specified in CONFIG_COMMON. A READLINE
|
||||
override is defined for linux-x86 in the EPICS distribution. Comment out
|
||||
COMMANDLINE_LIBRARY=READLINE in configure/os/CONFIG_SITE.Common.linux-x86
|
||||
if readline is not installed on linux-x86. Command-line editing and
|
||||
history will then be those supplied by the os. On vxWorks the ledLib
|
||||
command-line input libraries are used.
|
||||
Target systems
|
||||
EPICS supports IOCs running on embedded platforms such as VxWorks and RTEMS
|
||||
via cross-compilers. EPICS also supports ?soft? IOCs running as processes on
|
||||
the host platform.
|
||||
|
||||
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.
|
||||
|
||||
RTEMS
|
||||
For RTEMS targets, you need RTEMS core and toolset version 4.9.2 or later.
|
||||
|
||||
GNU readline or Tecla library
|
||||
GNU readline and Tecla librararies can be used by the IOC shell to provide
|
||||
command line editing and command line history recall and edit. GNU readline
|
||||
(or Tecla library) must be installed on your target system when
|
||||
COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target. EPICS
|
||||
(EPICS shell) is the default specified in CONFIG_COMMON. A READLINE override
|
||||
is defined for linux-x86 in the EPICS distribution. Comment out
|
||||
COMMANDLINE_LIBRARY=READLINE in configure/os/CONFIG_SITE.Common.linux-x86 if
|
||||
readline is not installed on linux-x86. Command-line editing and history
|
||||
will then be those supplied by the os. On vxWorks the ledLib command-line
|
||||
input libraries are used.
|
||||
|
||||
Host system storage requirements
|
||||
|
||||
The GNU zipped tar file is approximately 1.4 MB in size. The unzipped
|
||||
untarred distribution source tree is approximately 7.5 MB. The build
|
||||
created files for each host take approximately 40 MB and the build
|
||||
created files for each target take approximately 10 MB.
|
||||
The GNU zipped tar file is approximately 1.5 MB in size. The unzipped
|
||||
untarred distribution source tree is approximately 7.4 MB. The build created
|
||||
files for each host take approximately 37 MB and the build created files for
|
||||
each cross target take approximately 15 MB.
|
||||
|
||||
Documentation
|
||||
|
||||
EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL http://www.aps.anl.gov/epics
|
||||
EPICS documentation is available on the WWW via the EPICS home page at APS:
|
||||
URL http://www.aps.anl.gov/epics by selecting IOC software/ Base R3.14/
|
||||
<release number>.
|
||||
|
||||
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.
|
||||
Release specific documentation can be found in the base/documentation
|
||||
directory of the distribution.
|
||||
|
||||
WWW pages
|
||||
|
||||
EPICS home page at APS
|
||||
EPICS home page at APS
|
||||
|
||||
http://www.aps.anl.gov/epics
|
||||
http://www.aps.anl.gov/epics
|
||||
|
||||
Other WWW sites
|
||||
Other WWW sites
|
||||
|
||||
Additional information on EPICS can be found at the
|
||||
various other WWW links on the EPICS home page at APS.
|
||||
Additional information on EPICS can be found at the various other WWW
|
||||
links on the EPICS home page at APS.
|
||||
|
||||
Mailing List
|
||||
Mailing List
|
||||
|
||||
There is an EPICS mailing list called tech-talk which is hosted at
|
||||
APS, with a list repeater at BESSY. See the EPICS home page for
|
||||
subscription instructions.
|
||||
There is an EPICS mailing list called tech-talk which is hosted at APS
|
||||
with a list repeater at BESSY. See the EPICS home page for subscription
|
||||
instructions.
|
||||
|
||||
Directory Structure
|
||||
|
||||
Distribution directory structure:
|
||||
Distribution directory structure:
|
||||
|
||||
base Root directory of the base distribution
|
||||
base/config R3.13 compatibility build configuration files
|
||||
base/config/tools Perl and shell scripts used in the R3.13 build
|
||||
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/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 library and examples
|
||||
base/src/catools Channel access tools caget,cainfo,camonitor,caput
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
base/src/dbtools Database dbLoadTemplate tools
|
||||
base/src/dev Device support (softDev and testDev)
|
||||
base/src/excas Example channel access server
|
||||
base/src/gdd General data descriptor
|
||||
base/src/iocsh Ioc shell command interpreter
|
||||
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
|
||||
base/src/libCom/ellLib EPICS double linked list
|
||||
base/src/libCom/env Default EPICS environment settings
|
||||
base/src/libCom/error Error handling definitions and routines
|
||||
base/src/libCom/fdmgr File descriptor manager
|
||||
base/src/libCom/freeList Memory management using free lists
|
||||
base/src/libCom/gpHash General purpose hash table
|
||||
base/src/libCom/logClient Logging client
|
||||
base/src/libCom/macLib Macro substitution handler
|
||||
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
|
||||
base/src/libCom/tsDefs R3.13 time stamp definitions and routines
|
||||
base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree
|
||||
base/src/makeBaseExt Perl tool+templates to create extension dvl tree
|
||||
base/src/misc Miscellaneous (coreRelease, iocInit, asSub*)
|
||||
base/src/rec Record support
|
||||
base/src/registry EPICS support function registry
|
||||
base/src/rsrv Channel access ioc resource server library
|
||||
base/src/softIoc Example softIoc
|
||||
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/startup Scripts for setting up path and environment
|
||||
base Root directory of the base distribution
|
||||
base/config R3.13 compatibility build configuration files
|
||||
base/config/tools Perl and shell scripts used in the R3.13 build
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/documentation Distributation 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/cap5 Channel Access client interface for Perl 5
|
||||
base/src/cas Channel access server library and examples
|
||||
base/src/catools Channel access tools caget, cainfo, camonitor, caput
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
base/src/dbtools Database dbLoadTemplate tools
|
||||
base/src/dev Device support (camacDev, softDev, and testDev)
|
||||
base/src/excas Example channel access server
|
||||
base/src/gdd General data descriptor
|
||||
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
|
||||
base/src/libCom/ellLib EPICS double linked list
|
||||
base/src/libCom/env Default EPICS environment settings
|
||||
base/src/libCom/error Error handling definitions and routines
|
||||
base/src/libCom/fdmgr File descriptor manager
|
||||
base/src/libCom/freeList Memory management using free lists
|
||||
base/src/libCom/gpHash General purpose hash table
|
||||
base/src/libCom/iocsh ioc shell call registered functions
|
||||
base/src/libCom/logClient Logging client
|
||||
base/src/libCom/macLib Macro substitution handler
|
||||
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
|
||||
base/src/libCom/tsDefs R3.13 time stamp definitions and routines
|
||||
base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree
|
||||
base/src/makeBaseExt Perl tool+templates to create extension dvl tree
|
||||
base/src/misc Miscellaneous (coreRelease, iocInit, asSub*)
|
||||
base/src/rec Record support
|
||||
base/src/registry EPICS support function registry
|
||||
base/src/rsrv Channel access ioc resource server library
|
||||
base/src/softIoc Example softIoc
|
||||
base/src/tools Perl scripts used during the builds
|
||||
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/startup Scripts for setting up path and environment
|
||||
|
||||
Install directories created by the build:
|
||||
Install directories created by the build:
|
||||
|
||||
base/bin Installed scripts and executables in subdirs
|
||||
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/javalib Installed java class files
|
||||
base/lib Installed libraries in arch subdirectories
|
||||
base/templates Installed templates
|
||||
bin Installed scripts and executables in subdirs
|
||||
cfg Installed build configuration files
|
||||
db Installed data bases
|
||||
dbd Installed data base definitions
|
||||
doc Installed documentation files
|
||||
html Installed html documentation
|
||||
include Installed header files
|
||||
include/os Installed os specific header files in subdirs
|
||||
javalib Installed java class and jar files
|
||||
lib Installed libraries in arch subdirectories
|
||||
lib/perl Installed perl modules
|
||||
templates Installed templates
|
||||
|
||||
Build related components
|
||||
|
||||
base/documentation/README* files
|
||||
base/documentation files
|
||||
|
||||
README.1st Instructions for setup and building epics base
|
||||
README.html html version of README.1st
|
||||
README.WIN32 Microsoft WIN32 specific instructions
|
||||
README.cxxTemplates Information about C++ templates in EPICS base
|
||||
README.niCpu030 NI cpu030 specific instructions
|
||||
README.darwin Installation notes for Mac OS X (Darwin)
|
||||
RELEASE_NOTES.html Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
Converting*To*.html Release specific conversion instructions
|
||||
Building*With*.html Release specific build instructions
|
||||
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
README.1st Instructions for setup and building epics base
|
||||
README.html html version of README.1st
|
||||
README.WIN32 Microsoft WIN32 specific instructions
|
||||
README.cxxTemplates Information about C++ templates in EPICS base
|
||||
README.niCpu030 NI cpu030 specific instructions
|
||||
README.darwin Installation notes for Mac OS X (Darwin)
|
||||
RELEASE_NOTES.html Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
Converting*To*.html Release specific conversion instructions
|
||||
Building*With*.html Release specific build instructions
|
||||
|
||||
EpicsHostArch c shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
borland.bat WIN32 bat file to set borland path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
win32-debug.bat WIN32 bat file to set debug path and env variables
|
||||
|
||||
base/configure directory - contains build definitions and rules
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
|
||||
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
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
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
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_JAVA Definitions and rules for java jars and classes
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
|
||||
base/configure/os directory - contains os-arch specific definitions
|
||||
EpicsHostArch c shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
borland.bat WIN32 bat file to set borland path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
|
||||
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 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
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
|
||||
base/configure/tools directory - contains Perl scripts used for the build
|
||||
base/configure directory - contains build definitions and rules
|
||||
|
||||
convertRelease.pl Performs consistancy checks on RELEASE files
|
||||
cp.pl This Perl script copies an existing file
|
||||
cvsclean.pl Remove all .#* files in directory tree
|
||||
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
|
||||
filterWarnings.pl Filters warning messages during HP builds
|
||||
fullpathName.pl Returns fullpath name of directory arg
|
||||
installEpics.pl Installs built files into install directories
|
||||
makeIncludeDbd.pl Creates *Include.dbd file from filename args
|
||||
makeMakefile.pl Creates a Makefile in O.<arch> dirs
|
||||
makeMakefileInclude.pl Creates file to be included by Makefile
|
||||
mkdir.pl Creates a directory (like Unix mkdir)
|
||||
mkmf.pl Generates dependencies from include stmnts
|
||||
munch.pl Creates a ctdt.c file for vxWorks targets
|
||||
mv.pl Renames an existing file
|
||||
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation
|
||||
rm.pl Quietly removes an existing file
|
||||
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
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_FILE_TYPE Definitions for file types adl,alh,cfg,perlmod,edl
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
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
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_EXPAND Devinitions and rules for expanding vars in a file
|
||||
RULES_FILE_TYPE Definitions and rules for user defined file types
|
||||
RULES_JAVA Definitions and rules for java jars and classes
|
||||
RULES_TARGET Definitions and rules for prod and lib named targets
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
|
||||
|
||||
base/configure/os directory - contains os-arch specific definitions
|
||||
|
||||
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 targets
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts
|
||||
CONFIG.Common.vxWorksCommon Definitions for all vx targets for all hosts
|
||||
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
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
|
||||
|
||||
base/src/tools directory - contains Perl scripts used for the build
|
||||
|
||||
Makefile Makefile for installing the scripts into cfg dir
|
||||
convertRelease.pl Performs consistancy checks on RELEASE files
|
||||
cvsclean.pl Remove all .#* files in directory tree
|
||||
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
|
||||
expandvars.pl Tool to expand @VAR@ variables while copying a file
|
||||
filterWarnings.pl Filters warning messages during HP builds
|
||||
fullpathName.pl Returns fullpath name of directory arg
|
||||
installEpics.pl Installs built files into install directories
|
||||
makeDbDepends.pl Gets dependencies from .substitution/.template files
|
||||
makeIncludeDbd.pl Creates *Include.dbd file from filename args files
|
||||
makeMakefile.pl Creates a Makefile in O.<arch> dirs
|
||||
makeTestfile.pl Generates a test harness $target.t file
|
||||
mkmf.pl Generates dependencies from include stmnts
|
||||
munch.pl Creates a ctdt.c file for vxWorks targets
|
||||
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation
|
||||
useManifestTool.pl Use MS VC++ version to set usage of Manifest Tool
|
||||
|
||||
Building EPICS base (Unix and Win32)
|
||||
|
||||
Unpack file
|
||||
Unpack file
|
||||
|
||||
Unzip and untar the distribution file. Use WinZip on
|
||||
Windows systems.
|
||||
Unzip and untar the distribution file. Use WinZip on Windows systems.
|
||||
|
||||
Set environment variable
|
||||
Set environment variables
|
||||
|
||||
Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
Files in the base/startup directory have been provided to help set
|
||||
required path and other environment variables .
|
||||
|
||||
EPICS_HOST_ARCH
|
||||
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 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.
|
||||
EPICS_HOST_ARCH
|
||||
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 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.
|
||||
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the
|
||||
environment variable PERLLIB be set to <perl directory
|
||||
location>.
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the environment variable
|
||||
PERLLIB be set to <perl directory location>.
|
||||
|
||||
PATH
|
||||
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 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 as and ld in
|
||||
your path. On solaris systems you need uname in your path.
|
||||
PATH
|
||||
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 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 as and ld in your path. On solaris
|
||||
systems you need uname in your path.
|
||||
|
||||
Unix LD_LIBRARY_PATH
|
||||
It is no longer necessary to have LD_LIBRARY_PATH include
|
||||
EPICS directories on a 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.
|
||||
LD_LIBRARY_PATH
|
||||
It is no longer necessary to have LD_LIBRARY_PATH include EPICS
|
||||
directories on a 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, for R3.14.7 and later, it is no longer necessary
|
||||
to add fullpathname to $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH)
|
||||
to your path for finding dlls during EPICS builds. The win32
|
||||
configure files in base now add this directory to the path
|
||||
definition.
|
||||
Win32 PATH
|
||||
On WIN32 systems, for R3.14.7 and later, it is no longer necessary to
|
||||
add fullpathname to $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH) to your
|
||||
path for finding dlls during EPICS builds. The win32 configure files in
|
||||
base now add this directory to the path definition.
|
||||
|
||||
Do site-specific build configuration
|
||||
|
||||
Do site-specific build configuration
|
||||
Site configuration
|
||||
To configure EPICS, you may want to modify the default definitions in
|
||||
the following files:
|
||||
|
||||
Site configuration
|
||||
To configure EPICS, you may want to modify the default
|
||||
definitions in the following files:
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO2 full path location
|
||||
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO 2 full path location
|
||||
Host configuration
|
||||
To configure each host system, you may override the default definitions
|
||||
by adding a new file in the configure/os directory with override
|
||||
definitions. The new file should have the same name as the distribution
|
||||
file to be overridden except with CONFIG in the name changed to
|
||||
CONFIG_SITE.
|
||||
|
||||
Host configuration
|
||||
To configure each host system, you may override the default
|
||||
definitions by adding a new file in the configure/os directory
|
||||
with override definitions. The new file should have the
|
||||
same name as the distribution file to be overridden except
|
||||
with CONFIG in the name changed to CONFIG_SITE.
|
||||
configure/os/CONFIG.<host>.<host> Host build settings
|
||||
configure/os/CONFIG.<host>.Common Host common build settings
|
||||
|
||||
configure/os/CONFIG.<host>.<host> Host build settings
|
||||
configure/os/CONFIG.<host>.Common Host cross build settings
|
||||
Target configuration
|
||||
To configure each target system, you may override the default
|
||||
definitions by adding a new file in the configure/os directory with
|
||||
override definitions. The new file should have the same name as the
|
||||
distribution file to be overridden except with CONFIG in the name
|
||||
replaced by CONFIG_SITE. This step is necessary even if the host system
|
||||
is the only target system.
|
||||
|
||||
Target configuration
|
||||
To configure each target system, you may override the
|
||||
default definitions by adding a new file into the configure/os
|
||||
directory with override definitions. The new file
|
||||
should have the same name as the distribution file to be
|
||||
overridden except with CONFIG in the name replaced by
|
||||
CONFIG_SITE.
|
||||
configure/os/CONFIG.Common.<target> Target common settings
|
||||
configure/os/CONFIG.<host>.<target> Host-target settings
|
||||
|
||||
configure/os/CONFIG.Common.<target> Target cross settings
|
||||
configure/os/CONFIG.<host>.<target> Host-target settings
|
||||
R3.13 compatibility configuration
|
||||
To configure EPICS base for building with R3.13 extensions and ioc
|
||||
applications , you must modify the default definitions in the
|
||||
base/config/CONFIG_SITE* files to agree with definitions you made in
|
||||
base/configure and base/configure/os files.
|
||||
|
||||
R3.13 compatibility configuration
|
||||
To configure EPICS base for building with R3.13 extensions
|
||||
and ioc applications, you must modify the default definitions
|
||||
in the base/config/CONFIG_SITE* files to agree with definitions
|
||||
you made in base/configure and base/configure/os files.
|
||||
Build EPICS base
|
||||
|
||||
Build EPICS base
|
||||
After configuring the build you should be able to build EPICS base by
|
||||
issuing the following commands in the distribution's root directory
|
||||
(base)
|
||||
|
||||
After configuring the build you should be able to build
|
||||
EPICS base by issuing the following commands in the
|
||||
distribution's root directory (base)
|
||||
gnumake clean uninstall
|
||||
gnumake
|
||||
|
||||
gnumake clean uninstall
|
||||
gnumake
|
||||
The command "gnumake clean uninstall" will remove all files and
|
||||
directories generated by a previous build. The command "gnumake" will
|
||||
build and install everything for the configured host and targets.
|
||||
|
||||
The command "gnumake clean uninstall" will remove all
|
||||
files and directories generated by a previous build. The
|
||||
command "gnumake" will build and install everything for
|
||||
the configured host and targets.
|
||||
It is recommended that you do a "gnumake clean uninstall"
|
||||
at the root directory of an EPICS directory structure before
|
||||
each complete rebuild to ensure that all components will be
|
||||
rebuilt.
|
||||
|
||||
Multiple host platforms
|
||||
|
||||
You can build using a single EPICS directory structure on multiple host
|
||||
systems and for multiple cross target systems. The intermediate and
|
||||
binary files generated by the build will be created in separate
|
||||
subdirectories and installed into the appropriate separate host/target
|
||||
install directories. EPICS executables and perl scripts are installed
|
||||
into the $(INSTALL_LOCATION)/bin/<arch> directories. Libraries are
|
||||
installed into $(INSTALL_LOCATION)/lib/<arch>. The default
|
||||
definition for $(INSTALL_LOCATION) is $(TOP) which is the root
|
||||
directory in the distribution directory structure, base. Created object
|
||||
files are stored in O.<arch> source subdirectories, This allows objects
|
||||
for multiple cross target architectures to be maintained at the same
|
||||
time. To build EPICS base for a specific host/target combination you
|
||||
must have the proper host/target c/c++ cross compiler and target header
|
||||
files and the base/configure/os directory must have the appropriate
|
||||
configure files.
|
||||
It is recommended that you do a "gnumake clean uninstall" at the root
|
||||
directory of an EPICS directory structure before each complete rebuild
|
||||
to ensure that all components will be rebuilt.
|
||||
|
||||
Example application and extension
|
||||
|
||||
A perl tool, makeBaseApp.pl is included in the distribution file. This
|
||||
script will create a sample application that can be built and then
|
||||
executed to try out this release of base. Also, a perl script,
|
||||
makeBaseExt.pl, is included in the distribution file. This script will
|
||||
create a sample 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.
|
||||
A perl tool, makeBaseApp.pl is included in the distribution file. This
|
||||
script will create a sample application that can be built and then executed
|
||||
to try out this release of base.
|
||||
|
||||
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" for this
|
||||
release. 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.
|
||||
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" for this release. 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 as a process on the host system.
|
||||
By running the example application as a host-based IOC, you will be able
|
||||
to quickly implement a complete EPICS system and be able to run channel
|
||||
access clients on the host system.
|
||||
|
||||
A perl script, makeBaseExt.pl, is included in the distribution file.
|
||||
This script will create a sample 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.
|
||||
|
||||
Multiple host platforms
|
||||
|
||||
You can build using a single EPICS directory structure on multiple host
|
||||
systems and for multiple cross target systems. The intermediate and binary
|
||||
files generated by the build will be created in separate subdirectories and
|
||||
installed into the appropriate separate host/target install directories.
|
||||
EPICS executables and perl scripts are installed into the
|
||||
$(INSTALL_LOCATION)/bin/<arch> directories. Libraries are installed into
|
||||
$(INSTALL_LOCATION)/lib/<arch>. The default definition for
|
||||
$(INSTALL_LOCATION) is $(TOP) which is the root directory in the
|
||||
distribution directory structure, base. Created object files are stored in
|
||||
O.<arch> source subdirectories, This allows objects for multiple cross
|
||||
target architectures to be maintained at the same time. To build EPICS base
|
||||
for a specific host/target combination you must have the proper host/target
|
||||
c/c++ cross compiler and target header files and the base/configure/os
|
||||
directory must have the appropriate configure files.
|
||||
|
||||
@@ -1,162 +0,0 @@
|
||||
Compiling EPICS and Building IOC Applications on HPUX 11 (hpux-parisc)
|
||||
======================================================================
|
||||
|
||||
Please mail questions, comments, corrections, additional examples, etc.
|
||||
to Ralph.Lange@bessy.de
|
||||
|
||||
NOTE: 3.14 will ONLY compile on HPUX 11 systems. HPUX 10 does not have
|
||||
the necessary posix thread support and will never ever be
|
||||
supported for EPICS base versions >= 3.14.
|
||||
|
||||
|
||||
Tools needed
|
||||
------------
|
||||
|
||||
o For compiling with HP native compilers
|
||||
|
||||
- HP's ANSI C compiler (cc)
|
||||
|
||||
- Recent version of HP's aCC C++ compiler aCC
|
||||
(we currently use A.03.52; anything >= 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
|
||||
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.
|
||||
|
||||
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 Possible Problems
|
||||
-----------------------
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Kernel Configuration
|
||||
--------------------
|
||||
|
||||
HP-UX 11 has a kernel configuration parameter that limits the number of
|
||||
threads that can be created within the context of a single process. This
|
||||
parameter has a default of 64.
|
||||
Channel Access creates two threads for each TCP connection it uses,
|
||||
where one TCP connection usually corresponds to one client-server
|
||||
pair. So a CA client program that connects to 30 different IOCs will use
|
||||
60 threads for the CA communication.
|
||||
|
||||
Obviously it is advisable to increase that value from 64 to something
|
||||
larger - any number higher than twice the maximum number of IOCs in your
|
||||
system should be enough for regular concole systems. At some point you
|
||||
will hit the limited number of kernel threads, which has to be larger
|
||||
than the number uf user threads.
|
||||
|
||||
You will find the parameter in SAM's Kernel Configuration / Configurable
|
||||
Parameters section, under the name max_thread_proc ("Max No. of Threads
|
||||
allowed in each process").
|
||||
|
||||
Note that this kernel configuration change requires a reboot of the
|
||||
machine.
|
||||
|
||||
|
||||
So much for this README - please feel free to contact me if you
|
||||
encounter serious problems.
|
||||
|
||||
Enjoy!
|
||||
Ralph
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -67,7 +67,7 @@ DIRS += dev
|
||||
dev_DEPEND_DIRS = rec misc
|
||||
|
||||
DIRS += vxWorks
|
||||
vxWorks_DEPEND_DIRS = ca
|
||||
vxWorks_DEPEND_DIRS = registry misc dbtools
|
||||
|
||||
DIRS += RTEMS
|
||||
RTEMS_DEPEND_DIRS = libCom
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user