Compare commits

..

496 Commits

Author SHA1 Message Date
Janet B. Anderson
7c136fc07d R3.14.11 2009-08-28 18:49:40 +00:00
Andrew Johnson
534ca2c86e Make ellFree() a 1-argument macro, calls ellFree2() with free as freeFunc. 2009-08-28 18:34:38 +00:00
Andrew Johnson
f17ac39f29 Disable divide by zero warnings on MSVC when generating NAN and INF.
Use those values rather than calculating them independently.
2009-08-25 18:19:49 +00:00
Jeff Hill
a4e5e540a9 added \n to printf diagnostic 2009-08-25 15:45:20 +00:00
Jeff Hill
33911cd0af improved failure diagnostic 2009-08-25 14:50:11 +00:00
Andrew Johnson
1607d2a192 ellFree() and Win32 time provider. 2009-08-24 20:55:31 +00:00
Jeff Hill
140b8a468d we dont need tocheck the return from new with assert 2009-08-24 17:09:55 +00:00
Jeff Hill
d84e9cb3ec exp passed to assert must not change the state of the data structures 2009-08-24 17:08:41 +00:00
Jeff Hill
fa24d119dd use verify instead of assert (in tests) 2009-08-24 17:07:03 +00:00
Jeff Hill
4921187178 use verify instead of assert 2009-08-24 17:04:40 +00:00
Jeff Hill
794811b95a exp passed to assert must not change the state of the data structures 2009-08-24 17:03:17 +00:00
Jeff Hill
aa904449c0 we dont need tocheck the return from new with assert 2009-08-24 17:01:21 +00:00
Andrew Johnson
1c95101ae1 Fixed Till's report of non-thread-safe lazy-init. 2009-08-21 17:32:13 +00:00
Janet B. Anderson
0961378465 Revert to -CVS for snapshots. 2009-08-21 15:48:28 +00:00
Janet B. Anderson
7655e7859d R3.14.11-RC1 2009-08-21 15:41:28 +00:00
Andrew Johnson
bbc0899423 RC1 2009-08-21 15:34:02 +00:00
Andrew Johnson
3afade09e6 Fixed epicsCalcTest issue, but epicsMutexTest can still run too long. 2009-08-21 15:32:01 +00:00
Andrew Johnson
c28520bea6 Adjust test 66 so it doesn't fail if the gcc optimizer result gives -1 but
glibc returns +1.  Both are correct, gcc is following a newer standard.
2009-08-21 14:49:01 +00:00
Andrew Johnson
bd4784a858 Added Mantis 361. 2009-08-21 14:38:01 +00:00
Jeff Hill
8c2278784c fixed mantis 361 2009-08-21 00:53:55 +00:00
Andrew Johnson
2caf1a4f50 Janet's Build Dependency note. 2009-08-20 22:59:10 +00:00
Jeff Hill
1fba8dd866 improved fdManagerVerify progress diagnostics 2009-08-20 22:29:53 +00:00
Andrew Johnson
87eace1bd4 Fix for solaris compiler complaint about ambiguity of 'exception'. 2009-08-18 19:26:37 +00:00
Jeff Hill
db3a655374 fixed improper calculation of signal needed state in postEvent
(this is an issue I introduced when writing the patch where IO
and subscription update events are maintained on seperate
and independent queues). The issue does not exist in an
EPICS base release.
2009-08-18 00:40:00 +00:00
Jeff Hill
8ae0c8960f corrected spelling in message 2009-08-18 00:36:22 +00:00
Jeff Hill
ec26c0dc52 o track number of async read and writes independently
o when the last async write occurs, check to see if a value
is cached and write it immediately (instead of waiting for
aync io object's ctor to run. This allows the regression
tests to pass.
2009-08-18 00:32:48 +00:00
Andrew Johnson
ea539fceb6 Corrected Mantis bug number. 2009-08-17 17:51:43 +00:00
Jeff Hill
782ff1b303 improved create channel unexpected exception diagnostic 2009-08-14 19:12:50 +00:00
Jeff Hill
2fb6b2100f improved test diagnostic 2009-08-14 17:44:33 +00:00
Jeff Hill
0012042a5e accomodate archaic vxWorks gnu compiler 2009-08-14 17:31:34 +00:00
Jeff Hill
e0d16659e1 improved TCP circuit creation failure exception diagnostics 2009-08-14 16:57:48 +00:00
Jeff Hill
8303cf053b improved VC creation failure exception diagnostics 2009-08-14 16:56:31 +00:00
Jeff Hill
78fc566dc4 improved thread creation failure exception diagnostics 2009-08-14 16:54:45 +00:00
Jeff Hill
3961c81740 added additional R3.14.11 ca fixes 2009-08-14 00:56:08 +00:00
Jeff Hill
0fdda3f794 back out prev change 2009-08-14 00:29:56 +00:00
Jeff Hill
9802e6c629 cosmetic 2009-08-14 00:24:32 +00:00
Jeff Hill
547c5d06ea improved the maint of the asych io count in off normal situations 2009-08-14 00:24:09 +00:00
Jeff Hill
50ddd62502 o always arm the send independent of how many messages are placed
in the out buf. The send will not arm if the out buf is empty
o when receiving the io blocked state notify callback always reactivate the
receive if space is available
2009-08-13 23:55:03 +00:00
Jeff Hill
9fc48c9a6b always arm the send independent of how many messages are placed
in the out buf. The send will not arm if the out buf is empty.
2009-08-13 23:51:40 +00:00
Jeff Hill
e4075da4d7 o added new ioQue so the server will not wedge one of its clients
when simultaneouly in flow control mode and also asynchronous io
postponed mode.
o simplified the status from the process func because callers should
not need to know how many messages have been sent
2009-08-13 23:49:59 +00:00
Jeff Hill
8ace886cfe o added new ioQue so the server will not wedge one of its clients
when simultaneouly in flow control mode and also asynchronous io
postponed mode.
o simplified the status from the process func because callers should
not need to know how many messages have been sent
2009-08-13 23:42:37 +00:00
Jeff Hill
6c61c0de34 signal the io blocked list each time that server centric async io completes 2009-08-13 23:38:41 +00:00
Jeff Hill
e581e88223 simplified the return from eventSysProcess because callers should not need to
know how many messages were sent
2009-08-13 23:37:30 +00:00
Jeff Hill
f4cbdec5ee removed io blocked list signal because the base class does not
know if the blocked list is with the pv or the server
2009-08-13 23:32:18 +00:00
Jeff Hill
b344841365 fixed the following issues with detection of flow control mode
o the flow control contig frame thresh should be based on max array size
o it appears that the wakeup mechanism for the send thread, who sends
the flow control on/off messages was broken
o looking at full buffers isnt a perfect detection scheme compared to
the simpler approach of just checking to see if bytes are pending in
the socket before calling recv
2009-08-13 23:29:02 +00:00
Jeff Hill
b867dabad0 cache the client ctx ref prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:46:47 +00:00
Jeff Hill
0cea525682 destroy putCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:44:30 +00:00
Jeff Hill
2df7da052a destroy getCallback prior to calling callback in case they delete the
channel in the callback
2009-08-13 22:43:21 +00:00
Jeff Hill
59b820d2f5 added missing epicsShareExtern 2009-08-13 22:42:05 +00:00
Jeff Hill
3fda8dc2b0 added test failure diagnostic 2009-08-13 22:40:02 +00:00
Andrew Johnson
3a335c88f0 Move Jeff's notes to the top. 2009-08-13 16:06:59 +00:00
Jeff Hill
44a6e9a005 added SEVCHK string 2009-08-12 00:37:10 +00:00
Jeff Hill
1f129d3739 added bullet under mantis 329 for R3.14.11 2009-08-10 23:20:59 +00:00
Jeff Hill
720236ed39 added CA, PCA, and some libCom fixes for R3.14.11 2009-08-10 22:51:09 +00:00
Jeff Hill
57c9f9344f improved show function 2009-08-10 21:51:07 +00:00
Andrew Johnson
64cb41f489 $(SHRLIB_PREFIX) $(LIB_PREFIX) mismatch 2009-08-10 21:50:11 +00:00
Jeff Hill
6fe047731f added shjow func to epicsThread class 2009-08-10 21:48:50 +00:00
Jeff Hill
56c4c92588 improved show diagnostic 2009-08-10 21:41:59 +00:00
Andrew Johnson
562db1e24c Application configure files. 2009-08-10 21:15:27 +00:00
Janet B. Anderson
1b70afa54b Moved ECHO definition to preceed 'ifdef T_A' defines. 2009-08-10 16:49:55 +00:00
Janet B. Anderson
f316b4ca81 Change echo macro back to @echo. We never want to comment help messages. 2009-08-10 16:41:28 +00:00
Andrew Johnson
6d8cfeef01 Explain the epicsCalcTest #66 failure on Linux. 2009-08-07 21:26:47 +00:00
Andrew Johnson
b1b72e8cf0 updated comment text 2009-08-07 20:24:53 +00:00
Andrew Johnson
cde59e262b gpHash argument change. 2009-08-07 15:53:28 +00:00
Jeff Hill
40b6d1b0ba moved IO pending count to caServer 2009-08-06 02:24:00 +00:00
Jeff Hill
4464cfedaa fixed warning message 2009-08-06 01:36:56 +00:00
Jeff Hill
b9fbf2e45b fixed error code numbering 2009-08-06 01:36:30 +00:00
Jeff Hill
42ce1bd2db o reset pendingResponseStatus, reqPayloadNeedsByteSwap,
responseIsPending, and pValueRead whenever removing a
message from the stream
o eliminated error prone reuse of status variables
o dont allow service to postpone IO when no IO is pending against the target
o be extra careful not to do things twice when send blocked or IO postponed
2009-08-06 00:06:59 +00:00
Jeff Hill
7de356519d o added pValueRead gdd snart pointer
o payloadNeedsByteSwap renamed to reqPayloadNeedsByteSwap
o added issuePosponeWhenNonePendingWarning static func
2009-08-05 23:58:40 +00:00
Jeff Hill
ff5ca5e041 added ioIsPending func 2009-08-05 23:56:26 +00:00
Jeff Hill
d1bb71809b added S_cas_posponeWhenNonePending status 2009-08-05 23:56:01 +00:00
Jeff Hill
7a49a17d1b removed unused template instantiation 2009-08-04 23:32:32 +00:00
Jeff Hill
7cf77b40e6 updated the example to implement casPV::writeNotify implementing similar semantics to an IOC 2009-08-04 23:31:13 +00:00
Andrew Johnson
e387c06f59 STATIC_ASSERT(). 2009-08-04 19:51:19 +00:00
Andrew Johnson
c035566d7d Use compile-time assertions, from Micheal Davidsaver. 2009-08-04 19:10:30 +00:00
Andrew Johnson
57e5406684 Added STATIC_ASSERT macro.
Removed assert() definition for pre-ANSI C compilers.
2009-08-04 19:07:07 +00:00
Jeff Hill
b4948b4ff6 fixed missing space in command line help string 2009-08-04 17:50:56 +00:00
Andrew Johnson
15f6b8c682 Update dbDefs.h changes. 2009-08-04 17:11:02 +00:00
Andrew Johnson
4868904839 Added CONTAINER macro, from Micheal Davidsaver (BNL). 2009-08-04 16:31:06 +00:00
Andrew Johnson
1a2fa1bc86 Some cleanup, mostly spacing. 2009-08-03 22:22:45 +00:00
Jeff Hill
e3a61ce4e4 fix for mantis 358 2009-08-03 22:09:52 +00:00
Andrew Johnson
efdee3c31a Escaping doesn't work on all Win32 platform combinations.
Removed -e option again.
2009-08-03 22:03:33 +00:00
Andrew Johnson
ee44663d89 errSymFind() removal. 2009-08-03 17:14:25 +00:00
Andrew Johnson
90db5a4ab0 Deleted test code which was moved to libCom/test some time ago. 2009-08-03 17:13:04 +00:00
Jeff Hill
72dbaa8a0f auto-adjust iterations for payload size 2009-07-31 23:26:16 +00:00
Jeff Hill
458689a252 fixed formating 2009-07-31 22:12:32 +00:00
Jeff Hill
0daf347ef3 fixed incorrect Mbps calc based on rounded payload size 2009-07-31 22:01:53 +00:00
Jeff Hill
e32d8d77dc fixed gnu compiler issues 2009-07-31 21:43:03 +00:00
Jeff Hill
ffe7823c22 report send and recv Mbps independently to better understand fullduplex ethernet bw 2009-07-31 21:23:26 +00:00
Jeff Hill
913f724ebf fix for mantis 357 2009-07-31 19:47:46 +00:00
Andrew Johnson
4e5fa9b6b3 Reverted patch that added architecture-specific compiler flags,
Micheal Abbott didn't like it.
2009-07-31 17:38:27 +00:00
Andrew Johnson
a6b0ffebca Fixed build issue. 2009-07-31 16:46:12 +00:00
Jeff Hill
7246366222 fixed gnu warning 2009-07-31 15:52:32 +00:00
Jeff Hill
191668023b independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.

o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o removed the eventFlush function
2009-07-31 00:47:56 +00:00
Jeff Hill
7a23b74a76 o when processing subscription update events, always activate the send
independent of whether receive bytes are pending or not. This improves
event latency, and allows events to flow if we are blocked due to the
service postponing an IO operation. This was a bug fix.
o when finishing processing input activate a send if more than one half
of the TCP buffering would be used. In the past the send was not activated
until either the send buffer was full or the receive buffer (including any
bytes waiting in the socket) was empty. This could cause latency and
performance issues because send receive piplining would not occur if they
have very large buffers due to a large EPICS_CA_MAX_ARRAY_SIZE.
o always activate a send if we enter a service is postponing IO state. Users
would probably prefer to receive past responses and not wait until the
postponed IO initiates.

o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
o removed the eventFlush function
o removed sendBlocked flag
o call processMessage directly from the IO completion callback
that restarts when in an IO postponement state. This makes the logic easier
to understand and maintain, but isnt a functional change
o call processMessage directly from the receive callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
o call processMessage directly from the send callback.
This makes the logic easier to understand and maintain, but isnt
a functional change
2009-07-31 00:41:34 +00:00
Jeff Hill
511d818d18 o removed sendBlocked flag
o removed processInput function
o removed eventFlush function
o made casStreamIOWakeup and casStreamEvWakeup friends
2009-07-31 00:00:42 +00:00
Jeff Hill
f8565139c2 o removed sendBlocked flag
o removed processInput function
o removed eventFlush function
o made casDGEvWakeup, casDGIOWakeup, and
casStreamEvWakeup friends
2009-07-30 23:54:18 +00:00
Jeff Hill
30a02b365f incomingBytesPresent renamed to inCircuitBytesPending but this
function isnt currently used
2009-07-30 23:51:48 +00:00
Jeff Hill
b4bc931c72 incomingBytesPresent renamed to dgInBytesPending, but this function
is not currently used
2009-07-30 23:50:45 +00:00
Jeff Hill
e5d3815280 o removed bytesAvailable member function from inBuf because
we nolonger check the bytes in the socket  with an ioctl
o removed incomingBytesPresent virtual function from inBufClient interface
because we nolonger check the bytes in the socket  with an ioctl
2009-07-30 23:48:43 +00:00
Jeff Hill
ebd65e6e34 added an assert test 2009-07-30 23:45:14 +00:00
Jeff Hill
8c45eb4a19 o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
2009-07-30 23:43:21 +00:00
Jeff Hill
e1bb171f44 o casStrmClient::inBufBytesAvailable renamed to
casStrmClient:: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casStrmClient::outBufBytesPresent renamed to
casStrmClient::outBufBytesPending for consistency with inBufBytesPending
o in casStrmClient :: processMsg () I forced status to S_cas_success at a couple
of loop exits. There is probably not a bug because the variable is initialized to
this value and the loop termintaes if the status isnt this value nevertheless
the corrected code is more robust to future changes.
o fixed a benign issue in casStrmClient :: processMsg () where if the user
sends a message to big for EPICS_MAX_ARRAY_SIZE and there is
currently no room in the output buffer then the user will not receive
a diagnostic message. With the patch the message will be sent later once
there is space.
2009-07-30 23:42:15 +00:00
Jeff Hill
656c2462d3 o casDGClient::inBufBytesAvailable renamed to
casDGClient :: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
o  casDGClient::outBufBytesPresent renamed to
casDGClient::outBufBytesPending for consistency with inBufBytesPending
2009-07-30 23:31:32 +00:00
Jeff Hill
f4ec20c8f0 casDGClient::inBufBytesAvailable renamed to
casDGClient :: inBufBytesPending reflecting the fact that we nlonger use
a socket ioctl to check how many bytes are pending in the sockets
input queue
2009-07-30 23:29:43 +00:00
Jeff Hill
72e1dba496 o no need to allocate or initialize one more fd_set than is used
(not a bug but messy)
o added optimization where we only check as many registered fd's
on the list as select tells us are active in its status
o added code to clear all of the  fd_set if select returns an error
(in practice this would not cause a bug other than some extra activity
that would immediately self terminate when it clear the flag in the fd_set,
and also we dont see the error message printed when select returns an error)
2009-07-30 23:21:19 +00:00
Jeff Hill
001b947702 added more excas options 2009-07-30 23:09:54 +00:00
Jeff Hill
c0d4317ade fixed broken test 2009-07-30 23:08:34 +00:00
Jeff Hill
290ec3e22c adjustable asyn delay, adjustable max simult io, added variables 2009-07-30 22:53:51 +00:00
Jeff Hill
d6b887b363 adjustable asyn delay 2009-07-30 22:51:03 +00:00
W. Eric Norum
fbebea304b Adapt to older versions of RTEMS. 2009-07-29 20:58:37 +00:00
Janet B. Anderson
dd1d2c10bd Part 2 for Fix of echo problem. 2009-07-29 20:53:02 +00:00
Janet B. Anderson
d3e3137265 Fixed echo problem when using RULES.Db when T_A is not defined. 2009-07-29 19:06:32 +00:00
Jeff Hill
d764e7d4df added "using namespace std" 2009-07-29 15:10:24 +00:00
W. Eric Norum
49ddec4294 Add cvtFastPerform to test harness. 2009-07-29 14:29:54 +00:00
Andrew Johnson
ce778819bd Update comment; can't deprecate a published API! 2009-07-28 21:11:02 +00:00
Andrew Johnson
d5bffdb13d Can't portably pass filesystem paths as command-line macros to C.
Generate a header file instead and include that.
2009-07-28 21:08:37 +00:00
Jeff Hill
ba11940aad removed debug printf 2009-07-25 01:24:50 +00:00
Jeff Hill
8725e4a67a removed debug printf 2009-07-25 01:23:18 +00:00
Jeff Hill
a6e57ba17a proper data type for socklen_t 2009-07-25 01:16:20 +00:00
Jeff Hill
7d137254af proper data type for socklen_t 2009-07-25 01:14:55 +00:00
Jeff Hill
31fb3775fd improved knowledge of the circuit's buffer size 2009-07-25 01:04:14 +00:00
Jeff Hill
1ba658b452 improved diagnostics 2009-07-25 00:44:21 +00:00
Jeff Hill
6eb25148c5 simplified tcp send interactions 2009-07-25 00:43:28 +00:00
Jeff Hill
4ade695a60 upgraded to properly test array performance 2009-07-23 23:59:04 +00:00
Andrew Johnson
bea22985b6 Generate code to abort if no DBD file loaded yet. 2009-07-23 22:13:29 +00:00
W. Eric Norum
fd6d1ce69c As reported by Michael Davidsaver.
Apparently the GeSys dynamic linker doesn't maintain C semantics.
I'm afraid that this behaviour is likely to cause lots of other problems,
but for now I'll apply the patch since it's harmless.
2009-07-23 21:04:27 +00:00
Jeff Hill
844ed6345a test also numbers in -5 to 5 range 2009-07-23 17:32:33 +00:00
Jeff Hill
7315f02888 added cvtFastPerfotm test 2009-07-23 17:25:51 +00:00
Jeff Hill
1ba6da438b partial fix for mantis 352 2009-07-23 00:23:17 +00:00
Andrew Johnson
c986597f1c Reject breaktables with slope of zero. 2009-07-22 22:58:09 +00:00
Janet B. Anderson
38b81b44be Fixed quoted string problem. 2009-07-22 20:41:09 +00:00
Andrew Johnson
8382eee11a Need quotes here too for this to work on Windows. 2009-07-22 20:34:47 +00:00
Andrew Johnson
7d80ab72b0 Escape backslashes in fullPathName output. 2009-07-22 16:43:47 +00:00
Andrew Johnson
3d86367330 Added -e option to escape back-slashes in output. 2009-07-22 16:40:30 +00:00
Janet B. Anderson
16a6357ab4 Initial version. 2009-07-22 14:12:24 +00:00
Janet B. Anderson
f4bfc3928d Fixed XDK definition for Exceed 12.0. 2009-07-21 17:56:55 +00:00
Janet B. Anderson
4282d3e9f4 Commented out XRTGRAPH definitions. 2009-07-21 17:26:34 +00:00
Janet B. Anderson
1e68d1f89b Modified EPICS_EXTENSIONS and add OAG_APPS comments. 2009-07-21 17:12:15 +00:00
Janet B. Anderson
03b6345fe0 Fixed definitions of X11_LIB and X11_INC. 2009-07-21 17:11:02 +00:00
Janet B. Anderson
055bb953b9 Fixed definition of X11_INC. 2009-07-21 17:10:26 +00:00
Janet B. Anderson
01d223fafd Updated file and directory sizes for R3.14.11. 2009-07-21 16:26:58 +00:00
Andrew Johnson
7665d1340c Clean out old stuff. 2009-07-20 23:03:53 +00:00
Jeff Hill
dfdbe57fd3 fix for mantis 350 2009-07-18 03:56:25 +00:00
Jeff Hill
0abb615d3a improved tests 2009-07-18 03:54:16 +00:00
Jeff Hill
02281f4d19 improved tests 2009-07-18 02:42:05 +00:00
Jeff Hill
f936104e47 improved tests 2009-07-18 02:33:42 +00:00
Jeff Hill
9f51464ea1 improved tests 2009-07-18 00:30:17 +00:00
Jeff Hill
f78b00d798 improved tests 2009-07-18 00:28:08 +00:00
Jeff Hill
a55e69113e fixed mantis 350 2009-07-17 23:50:07 +00:00
Jeff Hill
b6a22aa844 removed optimization which could make the ca client library
vulnerable if the following function indicates recv bytes are pending but
recv blocks anyways.

osiSockIoctl_t bytesPending = 0;
int status = socket_ioctl ( this->sock, FIONREAD, & bytesPending );
2009-07-17 21:33:18 +00:00
Jeff Hill
5b62da8229 fixed memory leak caused by previous revision (fixing compiler warnings) 2009-07-17 19:15:39 +00:00
Janet B. Anderson
8b9dc86233 Added GNU=NO. 2009-07-16 14:33:52 +00:00
Janet B. Anderson
4a898e6ed7 Changed $(MAKEBPT) to $(TOOLS)/makeBpt$(HOSTEXE) to fix win32-x86 build. 2009-07-15 21:15:56 +00:00
Jeff Hill
58a6493596 fixed command line arguments to follow standards 2009-07-14 23:26:10 +00:00
Jeff Hill
93809bd857 billy is nolonger an on-the-fly pv 2009-07-14 23:25:24 +00:00
Jeff Hill
90ed36c572 fix allows regression tests to work against async pv 2009-07-14 23:24:35 +00:00
Jeff Hill
9e49e0131f fix for mantis 348 2009-07-14 22:51:06 +00:00
Jeff Hill
d01e54bd34 documented excas 2009-07-14 22:41:23 +00:00
Jeff Hill
5c6975b24d improved tests 2009-07-14 22:41:08 +00:00
Jeff Hill
d7ae0fbce6 made lib more robust if server sends duplicate connect channel response 2009-07-14 22:39:41 +00:00
Jeff Hill
7d2be4f947 added comment 2009-07-14 22:37:41 +00:00
Janet B. Anderson
6fc8ac3c91 Removed BUILD_CLASS def. 2009-07-14 20:17:24 +00:00
Janet B. Anderson
6219ab5059 Added BUILD_CLASS=HOST. 2009-07-14 19:30:51 +00:00
Janet B. Anderson
2b8055672d Removed ECHO definition. 2009-07-13 21:28:30 +00:00
Janet B. Anderson
94301c8838 Set BUILD_CLASS=HOST and HOST_OPT=NO. 2009-07-13 21:27:38 +00:00
Janet B. Anderson
493085cb42 Added BUILD_CLASS and HOST_OPT definitions. 2009-07-13 21:18:13 +00:00
Janet B. Anderson
1a5bd98408 Added BUILD_CLASS and HOST_OPT definitions. 2009-07-13 21:00:44 +00:00
Janet B. Anderson
9d435693ab Added HOST_OPT and BUILD_CLASS definitions. 2009-07-13 20:56:33 +00:00
Janet B. Anderson
619d8aa541 Include linux-x86 file. 2009-07-13 20:55:13 +00:00
Janet B. Anderson
4848b0d1e1 Modified locations of OPT and BUILD_CLASS defintions. 2009-07-13 20:51:44 +00:00
Janet B. Anderson
7651d3f5ac Simplified cross debug build macro definitions. 2009-07-13 20:31:45 +00:00
Andrew Johnson
f5e287ae39 Perl CA and dbDefs.h 2009-07-10 23:19:53 +00:00
Janet B. Anderson
1c18e92da7 Removing seemingly unnecessary dependancy lines. 2009-07-10 22:00:18 +00:00
Janet B. Anderson
ae85d44190 Remove comment line. 2009-07-10 21:54:25 +00:00
Janet B. Anderson
83618673bc Executed host tools should be from EPICS_BASE_HOST_BIN directory. 2009-07-10 21:51:25 +00:00
Janet B. Anderson
d1bbd5037f Removed unneeded ECHO definition. 2009-07-10 14:42:09 +00:00
Janet B. Anderson
4c9fe7e0c0 Added linker options -h, -z text, -z defs to shrlib builds. 2009-07-09 21:53:27 +00:00
Janet B. Anderson
1235a1444b Added the -h (set internal name) link option to shrlib builds. 2009-07-09 21:52:32 +00:00
Andrew Johnson
3d717f4476 (M. Davidsaver): errnumlist was never initialized.
Removed long-deprecated errSymFind routine.
2009-07-09 20:11:02 +00:00
Jeff Hill
8655ea9e2a doc for excas 2009-07-09 18:43:17 +00:00
Andrew Johnson
0fb320c263 (M. Davidsaver): Use ELLLIST init macros. 2009-07-09 18:37:26 +00:00
Andrew Johnson
9663cd58f1 Fixed ELL*_INIT macros. 2009-07-09 17:51:17 +00:00
Andrew Johnson
039648824c Remove redundant macro definitions already defined in dbDefs.h
(M. Davidsaver)
2009-07-09 17:06:45 +00:00
Andrew Johnson
4e0ab97038 (M. Davidsaver): static keyword is part of C89,
remove all uses and internal definitions of LOCAL macro
2009-07-09 16:37:24 +00:00
Andrew Johnson
d7d0531394 offsetof is required by C89 (M. Davidsaver) 2009-07-09 16:19:57 +00:00
Andrew Johnson
d6fcbe14ab Cleaned up dbDefs.h and errMdef.h
Added various #include lines needed in other sources.
2009-07-09 15:27:43 +00:00
Andrew Johnson
710fc16aa4 Modified to build on Perl 5.8.4. 2009-07-09 14:54:41 +00:00
Janet B. Anderson
afbcfeaa02 Modified a comment line. 2009-07-09 14:50:15 +00:00
Jeff Hill
3e782f0220 test for mantis 285 2009-07-08 23:29:51 +00:00
Jeff Hill
7b52eaac73 test for mantis 346 2009-07-08 22:08:00 +00:00
Jeff Hill
42957877d9 fix for mantis 346 2009-07-08 21:43:38 +00:00
Andrew Johnson
245e9b5195 Added an END {} block and CA->context_destroy method for proper shutdown. 2009-07-08 21:33:01 +00:00
Andrew Johnson
bf39f9935c Cosmetic. 2009-07-08 19:08:22 +00:00
Andrew Johnson
70bf066ba9 Added ELLNODE_INIT and ELLLIST_INIT macros. 2009-07-08 19:04:22 +00:00
Andrew Johnson
a318ace551 Replaced YES and NO macros with their menuYesNo or menuSimm equivalents. 2009-07-08 18:14:11 +00:00
Jeff Hill
16f839ac12 regression test for mantis 284 2009-07-08 18:00:19 +00:00
Jeff Hill
cba3d9673d fix for mantis 284 2009-07-08 18:00:03 +00:00
Jeff Hill
162fa000c8 fix for compiler warnings in mantis 337 2009-07-07 23:54:41 +00:00
Jeff Hill
0e4891201e fix for compiler warnings in mantis 337 2009-07-07 23:47:38 +00:00
Jeff Hill
f7bfbf73f8 additional patches for memory leaks (see mantis 340) 2009-07-07 23:09:21 +00:00
Jeff Hill
6a2044cb01 added verifyContextRundownFlush 2009-07-07 21:39:43 +00:00
Jeff Hill
9f6e7a5cd7 fix for mantis 334 2009-07-07 20:05:39 +00:00
Andrew Johnson
47c6046eef Revised documentation a bit. 2009-07-07 15:56:16 +00:00
Andrew Johnson
eb800fd351 Use new provider registration function name. 2009-07-06 20:17:29 +00:00
Andrew Johnson
54928bf94f Added PINI values RUNNING and PAUSED. 2009-07-02 20:05:59 +00:00
Andrew Johnson
68dbf8addd Added PINI values RUNNING and PAUSED, needed for Asyn. 2009-07-02 20:05:32 +00:00
Andrew Johnson
2e38b09398 Tidy-up, deleted vxWorks-specific version (unnecessary),
added the task name to the printed assert message.
2009-07-02 19:49:11 +00:00
Jeff Hill
a2eb148726 removed extraneous line continuation 2009-07-01 22:28:41 +00:00
Jeff Hill
6129bfc8d5 fixed race condition gdd_NEWDEL_NEW macro 2009-07-01 22:19:53 +00:00
Jeff Hill
cc3245bf65 finished removal of epicsShareAPI (as I assume was intended) 2009-06-30 19:15:48 +00:00
Janet B. Anderson
c73dba8037 Fixed ECHO lines and added DBDFLAGS to DBTOMENUH command line. 2009-06-29 16:17:01 +00:00
Janet B. Anderson
813add592f Changed a comment line. 2009-06-26 20:59:33 +00:00
Janet B. Anderson
7ffcfd9bc0 Remove comment lines accidently committed. 2009-06-26 20:43:02 +00:00
Janet B. Anderson
c916b60c1d Created a ECHO macro and used it in the rules lines. 2009-06-26 20:37:22 +00:00
Andrew Johnson
f84e70487f Added long string support 2009-06-25 20:22:35 +00:00
Andrew Johnson
9aeb33a040 Added long strings, DBE_PROPERTY and -F option 2009-06-25 20:21:25 +00:00
Andrew Johnson
530929cd5a Cleanup 2009-06-25 20:16:00 +00:00
Andrew Johnson
81b1011d8c Added long string support, output structure types fully. 2009-06-25 20:04:28 +00:00
Andrew Johnson
0d1200ef0b Added long string support and DBE_PROPERTY. 2009-06-25 20:01:27 +00:00
Andrew Johnson
b98655b8f3 Moved checkRelease target rules into RULES_BUILD,
use CONFIG_TARGETS to only run in TOP/configure.
2009-06-24 19:33:57 +00:00
Andrew Johnson
1590358de4 Ignore any RULES value in the RELEASE files. 2009-06-24 19:27:33 +00:00
Andrew Johnson
c1c8c914db Moved RULES and CHECK_RELEASE settings, cleanup. 2009-06-24 19:25:16 +00:00
Janet B. Anderson
9bbe163f52 Moved CHECK_RELEASE definition to CONFIG_SITE. 2009-06-23 19:45:23 +00:00
Janet B. Anderson
f20ccc6c09 Moved the shared set of rules definition, RULES, to RELEASE. 2009-06-23 19:43:58 +00:00
Janet B. Anderson
d8586726a4 Tried to simplify library build rules. 2009-06-22 21:23:16 +00:00
Andrew Johnson
d84d198733 Initialize the errSym table as part of errlogInit rather than doing it
later in an error path, when we might have already run out of memory!
2009-06-19 18:24:22 +00:00
Jeff Hill
f2a96aec94 make sure and remove any UDP message remnants if there
is an exception in a UDP message handler stub
2009-06-16 17:45:35 +00:00
Andrew Johnson
957c869c87 Fix off-by-1 error in dbPutFieldLink() when checking long input string. 2009-06-15 22:30:27 +00:00
Andrew Johnson
3c19da6b3b Allow INP/OUT to be set if DSET is NULL. 2009-06-15 20:52:36 +00:00
Andrew Johnson
f32394e795 pdevLibVirtualOS needs epicsShareDef and explicitly setting to NULL,
but we can't do the latter in the os/default version.
2009-06-15 16:10:07 +00:00
Andrew Johnson
5d9317339f Removed function versions of macros, spacing cleanup. 2009-06-11 22:23:37 +00:00
Janet B. Anderson
bd57eb8c83 Added action.arch rules. 2009-06-10 20:54:59 +00:00
Andrew Johnson
5a5e2d8f74 Solve extended device support registration issue across shared libraries. 2009-06-10 20:19:32 +00:00
Janet B. Anderson
337f53c109 Allow "make <t_a>" builds. 2009-06-09 18:51:25 +00:00
Janet B. Anderson
aea3c3cc66 Fixed include file name CONFIG_SITE.darwinCommon.darwinCommon 2009-06-09 14:23:55 +00:00
Andrew Johnson
3b27446fbf ENUM string field sizes. 2009-06-08 20:02:56 +00:00
Andrew Johnson
cb0f8d5c72 Make all enum string fields the maximum size that CA can transport. 2009-06-08 19:55:49 +00:00
Andrew Johnson
a66a192ed5 Expand READONLY macro, deprecate. 2009-06-05 19:56:33 +00:00
Andrew Johnson
be6b1c4e31 Fix implicit declaration of isspace() 2009-06-05 19:16:31 +00:00
Andrew Johnson
4fc14d2dfb Fix slash. 2009-06-05 19:10:46 +00:00
Andrew Johnson
84d0a83ba3 More ANSIfication. 2009-06-05 19:07:24 +00:00
Janet B. Anderson
ebec683578 Bug fix from Michael Davidsaver at Brookhaven. 2009-06-05 16:02:26 +00:00
Andrew Johnson
f8e01c5536 SIGALARM stuff. 2009-06-05 15:52:07 +00:00
Andrew Johnson
9338d4ec59 Removed the guts of the SigAlarm code, which was only needed for HPUX
and on Linux breaks external libraries that use the Posix Timer API.
2009-06-04 21:31:39 +00:00
Janet B. Anderson
5ce69c7db0 Allow override of RTEMS_BASE asnd RTEMS_VERSION in other top dirs. 2009-06-04 18:29:33 +00:00
Andrew Johnson
8edbf9268c Fixed some compiler warnings. 2009-06-03 15:11:30 +00:00
Andrew Johnson
719a82590c Replace bzero() calls with memset(), fix Win32 issue. 2009-06-03 15:00:08 +00:00
Andrew Johnson
68bdaa899e Fixes to allow building on Solaris. Its <cxxx> headers are evidently not
quite drop-in C++ replacements for the <xxx.h> C versions.
2009-06-02 22:31:46 +00:00
Jeff Hill
a052ed56b2 EPICS_CA_BEACON _PERIOD wasnt listed as the default for EPICS_CAS_BEACON_PERIOD 2009-06-01 17:50:01 +00:00
Janet B. Anderson
a98ff64fb3 More updates for R3.14.11. 2009-05-26 21:38:02 +00:00
Jeff Hill
7653623e72 fixed potential memory leak in createDBRDD () 2009-05-13 21:14:17 +00:00
Jeff Hill
8d245ba595 added try/catch blocks so that we hopefully can bridge
periods where the new general time provides (unexpectedly
considering its advertised benfits) no time at all.
2009-05-11 22:50:06 +00:00
Jeff Hill
20bd4e9b23 fixed no try catch block for exceptions occurring when fetching the time to print a diagnostic message in the last chance exception handler. 2009-05-11 21:52:19 +00:00
Andrew Johnson
f1b1c6d105 Handle SOCK_EINTR without generating warnings. 2009-05-08 21:50:37 +00:00
Andrew Johnson
6c26a81d97 Make NTP request timeout a macro. 2009-05-07 19:35:34 +00:00
Janet B. Anderson
ef06015322 More updates for R3.14.11. 2009-05-07 16:51:04 +00:00
Janet B. Anderson
23072c0a64 Added GNU= NO
Added another include for site overrides.
2009-05-07 16:16:13 +00:00
Janet B. Anderson
9e6b077c7f Added another include for site overrides. 2009-05-07 16:14:41 +00:00
Janet B. Anderson
3b9ce581f0 Added include for CONFIG_SITE.$(EPICS_HOST_ARCH).linuxCommon overrides. 2009-05-07 16:00:16 +00:00
Andrew Johnson
01bd9f7ae0 Darwin universal binary config stuff. 2009-05-06 21:56:53 +00:00
Janet B. Anderson
f11d5ee101 SDK added to environment variables is done by vcvars32.bat. 2009-05-06 18:50:46 +00:00
Andrew Johnson
a695c4a45a Build universal binaries, allowing sites to configure what to include. 2009-05-06 17:25:01 +00:00
Janet B. Anderson
7adda5d417 Added HOST_OPT=NO 2009-05-06 15:31:09 +00:00
Janet B. Anderson
9747ef7bd6 Changed ARCH_CLASS to OS_CLASS. 2009-05-06 15:13:45 +00:00
Andrew Johnson
a187054e42 ARCH_CLASS => OS_CLASS 2009-05-05 22:01:16 +00:00
Janet B. Anderson
d023a46165 Removed include for CONFIG_SITE file. 2009-05-05 18:43:09 +00:00
Janet B. Anderson
a65c477bd1 Added include line for CONFIG_SITE file. 2009-05-05 16:31:59 +00:00
Andrew Johnson
381efb921c VMS, SGI too. 2009-05-05 15:42:12 +00:00
Andrew Johnson
1ea4b4414a Memory allocation checks from Micheal Davidsaver. 2009-05-05 15:35:05 +00:00
Andrew Johnson
8ee39f8cce Memory allocation checks. 2009-05-05 15:19:00 +00:00
Andrew Johnson
42f0106d48 Memory allocation checks. 2009-05-05 15:11:37 +00:00
Andrew Johnson
917e83e391 Use epicsStrDup for allocation check. 2009-05-05 15:02:35 +00:00
Janet B. Anderson
9e08d4d17a Updated for R3.14.11. 2009-05-04 21:46:29 +00:00
Andrew Johnson
cff8e62690 Removed vestigial VMS build script. 2009-05-04 14:48:05 +00:00
Andrew Johnson
9a2ce84718 Various cleanup and de-warning (although HOST_WARN is still NO). 2009-04-30 20:45:31 +00:00
Andrew Johnson
d8e85d242b Turned on warnings, fixed all issues (adding prototypes etc.)
Fixed memory leak in reader.c
2009-04-30 19:10:59 +00:00
Andrew Johnson
6e364ace47 Changed arg to dbCaCallbackProcess() to make it match dbCaCallback.
Removed matching unnecessary casts in softDev support routines.
2009-04-29 18:24:25 +00:00
Andrew Johnson
365389437c Removed epicsShareAPI decorator from all functions, to fix WIN32 problem
found by Mark Rivers: The dbCaCallback typename was not decorated, but the
functions being called through it apparently are.
2009-04-29 17:26:25 +00:00
Andrew Johnson
a32d3a57c6 Quiet compiler warnings about uninitialized values 2009-04-27 18:51:33 +00:00
Andrew Johnson
5f1106d060 Silence compiler warning 2009-04-27 18:42:20 +00:00
Andrew Johnson
03c82fa651 More ANSI C conversion 2009-04-27 18:31:50 +00:00
Janet B. Anderson
312c0f1203 Changed GNU make release number in comment lines 2009-04-27 16:08:50 +00:00
Andrew Johnson
c460eb410c Deleted HPUX support files. 2009-04-24 20:07:47 +00:00
Andrew Johnson
c03f26d84a Deleted hpux, no longer supported 2009-04-24 20:01:52 +00:00
Andrew Johnson
466317b23f We haven't supported VMS for YONKS... 2009-04-24 19:53:01 +00:00
Andrew Johnson
b8df15f6fa HPUX no longer supported. 2009-04-24 19:51:04 +00:00
Andrew Johnson
f626d80cf8 When did we ever support SGI? 2009-04-24 19:37:44 +00:00
Andrew Johnson
1fe93a927d The sun4 architecture was deleted long ago. 2009-04-24 19:35:06 +00:00
Andrew Johnson
6ea470d7d8 Deleted remaining references to sun4 (mostly in comments). 2009-04-24 19:31:57 +00:00
Andrew Johnson
39eaa0e335 Ansification (Michael Davidsaver) 2009-04-24 17:32:08 +00:00
Andrew Johnson
ecc300b8ff getsockopt wants socklen_t 2009-04-24 17:06:54 +00:00
Andrew Johnson
bff0841343 rtems_message_queue_receive expects size_t 2009-04-24 17:01:39 +00:00
Andrew Johnson
ae35ba28c5 missing header 2009-04-24 16:59:01 +00:00
Andrew Johnson
b05f1fe396 printf warning 2009-04-24 16:53:20 +00:00
Ralph Lange
a8a5668142 Fix: makeBaseExt uses EPICS_MBE_.... 2009-04-24 12:35:36 +00:00
Ralph Lange
28f70a28a1 Base path can be set through environment var EPICS_MBA_BASE. 2009-04-24 12:25:21 +00:00
Ralph Lange
e48308c850 Changed comment on version of GNU make needed. 2009-04-24 08:59:42 +00:00
Andrew Johnson
f7412f0c46 fix indentation and add missing calloc checks 2009-04-23 23:12:07 +00:00
Andrew Johnson
13f064fd7f Resource allocation checks missing 2009-04-23 22:28:44 +00:00
Andrew Johnson
f0652aa1b6 allocations MustSucceed 2009-04-23 22:19:46 +00:00
Andrew Johnson
f5f1c51b80 make dbMalloc and dbCalloc macros 2009-04-23 21:56:22 +00:00
Andrew Johnson
e7bb980257 initHooks, PINI and PHAS items. 2009-04-23 20:38:46 +00:00
Andrew Johnson
c13dc77564 Make PINI field into its own menu, adding RUN and PAUSE choices. 2009-04-23 20:35:02 +00:00
Andrew Johnson
163c8c0215 Add extern "C" wrapper, needed for WIN32. 2009-04-23 19:13:46 +00:00
Andrew Johnson
31d149d8d9 Fixed 64 bit compiler warnings from Tom Palaia/MacOS. 2009-04-23 18:49:40 +00:00
Andrew Johnson
b1234b4667 Modified the timeout and retry count: Allow 4 seconds for an NTP reply,
and 4 retries, thus NTP sync must work at least once every 5 minutes.
2009-04-20 22:21:45 +00:00
Andrew Johnson
1bbeeb1c87 Restore a retry into the NTP synchronization thread.
Eliminated an unnecessary local variable.
2009-04-20 15:26:11 +00:00
Andrew Johnson
8015df9e1f Added new initHook states for iocPause and iocRun commands.
Added a mutex to protect the initHook.c routines.
2009-04-16 18:38:20 +00:00
Andrew Johnson
b9886c7faa Cosmetic only; tabs, spaces & line-wrapping. 2009-04-15 19:28:28 +00:00
Andrew Johnson
e01b6bd435 Calculate monitor events properly. 2009-04-14 20:04:05 +00:00
Ralph Lange
3c92824bfd Make scanFile() recognize includes in .substitution files correctly. 2009-04-14 12:42:06 +00:00
Janet B. Anderson
e7932f03f7 Modified comments. 2009-04-13 21:27:32 +00:00
Janet B. Anderson
78eaf3543c Added BROWSER environment variable for medm extension. 2009-04-13 21:22:25 +00:00
Janet B. Anderson
1b1c28f239 Removed archive and shared split of prod libs. 2009-04-13 20:11:47 +00:00
Andrew Johnson
d79877c383 Need epicsMath.h to use epicsNAN. 2009-04-13 20:10:43 +00:00
Andrew Johnson
d545a8f04f Added test code, fixed bug found in epicsStrnEscapedFromRawSize(). 2009-04-10 19:58:34 +00:00
Andrew Johnson
23b3154fa8 Declare epicsEllTest before calling... 2009-04-09 20:38:49 +00:00
Andrew Johnson
93ac840d6e Even variables have to be marked as extern "C"... 2009-04-09 20:21:05 +00:00
Janet B. Anderson
b5acee6f76 Separate BASE and TOOLS locations 2009-04-09 18:56:06 +00:00
Andrew Johnson
19073ea8e6 Define epicsExportSharedSymbols 2009-04-09 18:36:20 +00:00
Andrew Johnson
e12396c7dd epicsShareAPI fixes for Windows. 2009-04-09 17:28:59 +00:00
Andrew Johnson
acb1bf9b29 Add epicsShareAPI to match header. 2009-04-09 17:20:05 +00:00
Andrew Johnson
f3d07ad12f ellLib changes: ANSIfication patch; moved test code out of ellLib.c into
its own unit test program in libCom/test; changed ellFree() to take a
function pointer for the free() routine, so it can be used on Windows;
modified epicsExit and dbBkpt to use it and pass in the free routine.
2009-04-09 16:51:05 +00:00
Andrew Johnson
f357fd3b13 Include DBE_PROPERTY in dbel output. 2009-04-09 16:42:02 +00:00
Andrew Johnson
79ef84dc9d A little light editing. 2009-04-09 15:15:46 +00:00
Andrew Johnson
a8b20f07a8 Applied Bernd's devAiSoft SMOO patch. 2009-04-09 15:03:09 +00:00
Andrew Johnson
134509a8ea Thread name may not be available during termination. 2009-04-08 22:39:27 +00:00
Janet B. Anderson
6fd2685053 More updates and format changes 2009-04-08 19:31:53 +00:00
Janet B. Anderson
826cd573cd Reformatted and updated contents. 2009-04-07 21:56:05 +00:00
Andrew Johnson
ca269744a6 Flush result output, allows Test::Harness to display progress. 2009-04-07 21:28:58 +00:00
Andrew Johnson
b4d2fbc98f Must be able to include this file from C code, changed comment style. 2009-04-07 15:45:38 +00:00
Andrew Johnson
c70c3beca2 Removed unused INAP menu definition. 2009-04-04 23:01:23 +00:00
Andrew Johnson
5d5fd663ff Use epicsNAN and epicsINF. 2009-04-03 21:16:25 +00:00
Andrew Johnson
f5c64db59f Waveform record Post on Change using hash. 2009-04-03 21:05:40 +00:00
Ralph Lange
990ba62e0b Added support for new MSI and MSS link flags 2009-04-03 20:54:00 +00:00
Ralph Lange
2e8595f17f Fix: caput quits when connection fails (catools) 2009-04-03 19:46:32 +00:00
W. Eric Norum
cc4b462f8c Reflect ring bytes changes. 2009-04-03 19:43:41 +00:00
Ralph Lange
7fccc59fe9 ANSIfication of stuff (mostly missing argument types in declarations) 2009-04-03 17:46:26 +00:00
Ralph Lange
4715043141 Rename of pxxx -> prec in device supports 2009-04-03 15:45:03 +00:00
Ralph Lange
c0052ea44f Changed get_alarm_double() behaviour in analog records to return epicsNAN for limits with NO_ALARM severity 2009-04-03 14:40:13 +00:00
Ralph Lange
f30a89d249 Remove CVS Id that causes just too much trouble. 2009-04-03 14:37:59 +00:00
Ralph Lange
40d0942a81 Remove fake BNL copyright notice until we have a license agreement. 2009-04-03 14:33:37 +00:00
Andrew Johnson
7228190dde Fix memory leak. 2009-04-03 01:57:11 +00:00
Ralph Lange
f4311a3f9b Rename pxxx -> prec in xxxRecord.c 2009-04-02 21:42:32 +00:00
Ralph Lange
5c8a51b6f6 Rename pxxx -> prec in all xxxRecord.c 2009-04-02 21:41:45 +00:00
Ralph Lange
8d68c85d8b Add epicsNAN and epicsINF to the osi section of libCom. 2009-04-02 21:38:07 +00:00
Ralph Lange
2640c5fa07 Added epicsNAN and epicsINF to libCom/osi 2009-04-02 21:15:26 +00:00
Ralph Lange
e18eb714a8 Print OFS for empty (suppressed) STAT/SEVR fields (catools) 2009-04-02 18:52:59 +00:00
Ralph Lange
b1556bd871 New DBE_PROPERTY event type and support in catools and mbbi/mbbo records 2009-04-02 15:51:30 +00:00
Ralph Lange
f156474714 Fix: Print indentation (catools) 2009-04-02 15:39:13 +00:00
Andrew Johnson
88971886c5 PINI Processing support for PHAS. 2009-04-02 14:11:27 +00:00
Ralph Lange
433e400c4d Fix in calculating the needed buffer length for escaped strings. 2009-04-02 13:05:42 +00:00
Ralph Lange
e484093493 Bugfixes plus added support for escaping non-printables and field separator to CA commandline tools. 2009-04-02 02:14:33 +00:00
Ralph Lange
73470d5f4c Added new functions to escape non-printable characters. (epicsString) 2009-04-02 02:13:04 +00:00
Andrew Johnson
776b8855fd Attributes and LINK fields only provide one DBF_STRING element. 2009-04-01 22:02:48 +00:00
Andrew Johnson
91a9a60594 Document long string support in caget/put/monitor tools. 2009-04-01 17:54:32 +00:00
Andrew Johnson
994e9471e4 Removed non-ASCII characters. 2009-04-01 17:47:46 +00:00
Janet B. Anderson
78a2428dbc Added SHARED_LIBRARIES definition and comment. 2009-03-31 20:08:23 +00:00
Janet B. Anderson
dc44901194 Updated EPICS_BASE/configure to CONFIG. 2009-03-31 19:48:17 +00:00
Ralph Lange
0765d5e0b1 Added support for handling strings as arrays of char (aka long strings); new -S option switches this feature. 2009-03-31 19:39:39 +00:00
Ralph Lange
6a17b86743 Added support for handling strings as arrays of char (aka long strings); new -S option switches this feature.
Fixed some inconsistencies with data print formats for enums and arrays.
2009-03-31 19:39:06 +00:00
Janet B. Anderson
4d8ee62087 Added SCIPLOT,XRT graph, X11, and Motif definitions. 2009-03-31 19:18:05 +00:00
Janet B. Anderson
8179cf1d9c Added Exceed definitons. 2009-03-31 19:13:41 +00:00
Janet B. Anderson
9958bf91e5 Added X11,Motif,Sciplot,SDDS librar, and XRT graph definitions. 2009-03-31 19:10:42 +00:00
Andrew Johnson
58b1017397 Ensure getOptions() gets called for structured DBR types. 2009-03-31 19:09:58 +00:00
Janet B. Anderson
9a09be011f Updated X11,Motif, XRT Graph, and SCIPLOT definitions. 2009-03-31 19:04:02 +00:00
W. Eric Norum
ed82e672b4 Block attempts to put more bytes than will fit. 2009-03-30 18:52:00 +00:00
W. Eric Norum
4569fa1e29 Fix up RTEMS notes. 2009-03-27 16:58:46 +00:00
W. Eric Norum
48b20cd400 Update version. 2009-03-27 13:28:26 +00:00
Andrew Johnson
f98d74b064 Long string support. 2009-03-25 23:06:18 +00:00
Andrew Johnson
ed4a2972d6 Long string support:
In dbStatic, split record and field search to make parsing easier.
  In dbAccess, '$' field name suffix makes field an array of DBF_CHAR.
2009-03-25 23:02:28 +00:00
Andrew Johnson
547e9bcfea Use epicsStrHash() 2009-03-24 17:04:02 +00:00
W. Eric Norum
57635a364b Add note about Darwin environ. 2009-03-23 20:52:18 +00:00
Andrew Johnson
cc35e59ff8 Cosmetic. 2009-03-23 19:54:42 +00:00
Andrew Johnson
2e1e5b3949 Document new epicsString Hash functions. 2009-03-20 21:51:17 +00:00
Jeff Hill
86841c5078 restored doc for ca_add_fd_registration 2009-03-20 16:41:53 +00:00
Andrew Johnson
32d5aed8b0 Ambiguous if/else fixes. 2009-03-20 06:19:47 +00:00
Andrew Johnson
6b212b0e17 Fix type of gphPvt pointer. 2009-03-20 06:04:00 +00:00
Andrew Johnson
99ff6d9a02 Removed obselete get_value routine. 2009-03-19 23:05:58 +00:00
Andrew Johnson
7ce49bf131 Reworked various hash tables, using the faster epicsStrHash() routines;
added per-bucket locks to the PV Directory, needed for run-time alias creation;
speed up gpHash lookups; improved the output of both Dump routines.
2009-03-19 23:00:44 +00:00
Andrew Johnson
7eeb70a8d9 Added epicsStrHash() and epicsMemHash(), after analyzing several hash
functions found online and the two already in Base (which both perform
a memory lookup per character and are not as good as this one).
2009-03-19 17:44:22 +00:00
Jeff Hill
dd54062496 fixed mantis 336 - timer queue should have try / catch block
around call to user's expiration callback
2009-03-13 17:23:07 +00:00
Janet B. Anderson
683c5bddf1 Commented test for j option in MAKEFLAGS. Test NOT working in make 3.81. 2009-03-12 18:38:14 +00:00
Janet B. Anderson
80d0245193 Added .depends files in O.Common for header files created from dbd files. 2009-03-12 18:22:05 +00:00
Janet B. Anderson
49e317dccb Updated DEPEND_DIRS for vxWorks directory. 2009-03-12 15:50:50 +00:00
Janet B. Anderson
78d25cbf4b Removed iocshLibrary - it no longer exists. 2009-03-11 19:23:18 +00:00
Janet B. Anderson
89442d6ed6 Changed LIBSRCS to LIB_SRCS. 2009-03-11 19:11:21 +00:00
Janet B. Anderson
3d588b13fc Changed LIBSRCS to LIB_SRCS. 2009-03-11 18:51:25 +00:00
Andrew Johnson
e42837e291 Update DST settings for 2009. 2009-03-10 20:40:22 +00:00
Andrew Johnson
100318d1b3 Remove unnecessary casts. 2009-03-10 19:20:38 +00:00
Andrew Johnson
f8c921e6a0 Mark struct dbAddr arg's const. 2009-03-10 18:54:47 +00:00
Janet B. Anderson
7ae6f9d137 Modified STATIC build. Make all *_SYS_LIBS dynamic.
Test non SYS_LIBS for dynamic or archive.
2009-03-10 18:54:14 +00:00
Andrew Johnson
aacee9c584 Cosmetic only. 2009-03-10 18:51:03 +00:00
Janet B. Anderson
8e01d0dfe8 Modified STATIC build. Make all *_SYS_LIBS dynamic.
Test non SYS_LIBS for dynamic or archive.
2009-03-10 18:46:38 +00:00
Janet B. Anderson
f3d2ba9551 Removed PROD_SYS_LIBS definition. 2009-03-10 16:44:28 +00:00
Janet B. Anderson
2f6b8f3c61 Dont print remove command. 2009-03-09 16:05:15 +00:00
Janet B. Anderson
2ad9341e45 Fixed CREATESUBSTITUTIONS rule. 2009-03-09 15:56:14 +00:00
Andrew Johnson
20916bbf24 Count aliases separately in reports. 2009-03-06 23:51:54 +00:00
Andrew Johnson
6766e46ab5 A later modification escaped into the previous set of changes... 2009-03-05 23:31:10 +00:00
Andrew Johnson
8597ae087b Allow getting a DBF_*LINK field using a DBR_CHAR array (put already done).
Fetch options before SPC_ATTRIBUTE str; allow a DBR_CHAR array there too.
2009-03-05 21:23:22 +00:00
Andrew Johnson
e2a933c51f Cosmetic changes; reformatting, style etc. 2009-03-05 20:38:10 +00:00
Andrew Johnson
11abbb06d7 Added libdl to the OS libraries needed, for dlopen/dlsym. 2009-03-04 22:51:41 +00:00
Jeff Hill
edcb7b96f8 fixed removeAll does not set the nInUse count to zero 2009-03-04 22:00:55 +00:00
Jeff Hill
31d6255169 fix for deleteing IO that wasnt selected for delete nor removed from
the list in clearOutstandingReads. This problem would probably
only occur with R3.13 clients, and only then if the R3.13 client times
out in ca_pend_io.
2009-03-04 19:33:18 +00:00
Janet B. Anderson
1fbf624e5f Removed commented references to CONFORM flags. 2009-03-03 20:24:03 +00:00
Janet B. Anderson
4cb0d85b34 Removed all references to CONFORM flags in configure files. 2009-03-03 19:54:19 +00:00
Andrew Johnson
aadbf07647 Return epicsMutexLockError rather than calling cantProceed() if the
pthread_mutex_ functions return EINVAL.
2009-03-03 18:00:49 +00:00
Andrew Johnson
33b4942ae2 Cosmetic. 2009-03-03 17:18:16 +00:00
Andrew Johnson
3093d8f4f4 Reduce duplication of alarm strings. 2009-03-03 17:15:10 +00:00
Andrew Johnson
3a6deaa60a Support for dynamic loading. 2009-02-27 23:38:33 +00:00
Andrew Johnson
9e07d56548 Include the dlload command.
Don't build on vxWorks, makes little sense.
2009-02-27 23:37:13 +00:00
Andrew Johnson
41abccccf9 Added optional dlload command. 2009-02-27 23:29:08 +00:00
Andrew Johnson
9c3fa668f3 Added epicsLoadLibrary() and some implementations. 2009-02-27 23:26:20 +00:00
Janet B. Anderson
19409d9c74 Initial version. 2009-02-26 20:56:56 +00:00
Andrew Johnson
654a7e05cd Mark source dbAddr pointers as const. 2009-02-24 22:57:15 +00:00
Andrew Johnson
8be407d608 Mark input dbAddr arguments const. 2009-02-24 22:30:26 +00:00
Andrew Johnson
a75cb10cb6 Added "errlog" command. 2009-02-24 20:10:57 +00:00
Andrew Johnson
3e68815a7b cap5 fix. 2009-02-24 17:30:19 +00:00
Andrew Johnson
92c7cd98a2 Make ca_put use best_type for both single-valued and array PVs. 2009-02-24 17:01:59 +00:00
Andrew Johnson
6c23ca9f80 Clean up compiler warnings in calls to dbGetLink. 2009-02-23 23:24:35 +00:00
Andrew Johnson
07d187b77a Fix needed for g++ 4.1.2. 2009-02-23 22:51:50 +00:00
Jeff Hill
40c802ad7b moved declaration using template down to below where its template
parameter is declared in case inclass friend forward reference to the
template parameter doesnt carry forward on all compilers
2009-02-23 21:44:39 +00:00
Jeff Hill
68f6b7d47c workaround for archaic T202 g++ bug 2009-02-23 21:40:52 +00:00
W. Eric Norum
ce3c3919ba Stephen Norum indicates that the conditionals are unnecessary. 2009-02-23 18:11:40 +00:00
W. Eric Norum
e6b0b38f61 Starting in Mac OS X 10.5 (Leopard) shared libraries and bundles
don't have direct access to environ (man environ).
 CVS: ----------------------------------------------------------------------
2009-02-23 15:36:30 +00:00
Andrew Johnson
b62d796bff Improve error reporting by addToList & deleteFromList. 2009-02-14 00:05:01 +00:00
Jeff Hill
77669d793d fixed situations where local host name cache is repatedly created and destroyed 2009-02-11 00:50:28 +00:00
Jeff Hill
e1b8caa8d7 fixed comment 2009-02-10 22:58:43 +00:00
Jeff Hill
9f5b1a11da removed some epicsSingleton related code that isnt in use 2009-02-10 22:51:53 +00:00
Jeff Hill
62618480fd fixed mantis 332 2009-02-10 22:24:20 +00:00
Janet B. Anderson
6e913fe0bb Changed PROD to PRODNAME in INSTALL_LIB_INSTALLS dependancy. 2009-02-10 20:10:59 +00:00
Janet B. Anderson
01218d0054 Install LIB_INSTALLS before PRODs are built. 2009-02-10 15:43:49 +00:00
Jeff Hill
71ec516cf5 fix for mantis 331 2009-02-09 17:29:18 +00:00
Jeff Hill
08a4fb3ce7 addred proto for ca_detach_context 2009-02-09 15:23:06 +00:00
Andrew Johnson
e2289a30df Removed duplicate alarm strings. 2009-02-03 17:25:02 +00:00
Andrew Johnson
a213ccf624 Deleted VERS field (it's already an attribute). 2009-02-03 16:28:10 +00:00
Andrew Johnson
e77736ddb2 Added dbla command. 2009-02-03 06:09:04 +00:00
Andrew Johnson
f1a0584273 Fix gcc warnings. 2009-02-03 06:05:51 +00:00
Andrew Johnson
289f5500a4 Restart nanosleep() on EINTR. 2009-01-30 20:15:40 +00:00
Andrew Johnson
03e3ce0513 STATIC => static. 2009-01-28 23:39:16 +00:00
Andrew Johnson
ffe38fffb8 Don't forget to flush! 2009-01-28 21:16:39 +00:00
Andrew Johnson
c85052de6c Fix errlogPrint and errlogVprintf so the latter outputs to the console. 2009-01-28 21:05:34 +00:00
Andrew Johnson
292a763d9a Enhance generalTime subsystem with interrupt-context time & event requests. 2009-01-28 20:01:41 +00:00
Andrew Johnson
c5fd57e5ae Make getpMessage() clear the message string rather than requiring caller to. 2009-01-28 19:57:11 +00:00
Janet B. Anderson
db076183c0 Changed EPICS_BASE_TOOLS_BIN to EPICS_BASE_BIN in PATH. 2009-01-27 21:27:32 +00:00
W. Eric Norum
15bd6bc402 RTEMS updates. 2009-01-24 23:14:44 +00:00
W. Eric Norum
63c20dbb4b Repair accidental commit of local changes.
Swirtch to RTEMS 4.10.
2009-01-23 20:24:59 +00:00
W. Eric Norum
deae06a694 Reduce RTEMS stack sizes.
Use new RTEMS 'unified memory pools'.
2009-01-23 20:21:41 +00:00
Andrew Johnson
0cabf024d7 Error message has the wrong routine name in it. 2009-01-21 20:26:52 +00:00
Andrew Johnson
c4857e820e Added dbGetNAliases(). 2009-01-19 19:04:40 +00:00
Andrew Johnson
9ca9a3c2e2 Added dbGetNAliases() function, to complete the aliases API. 2009-01-19 18:57:02 +00:00
Andrew Johnson
edf0875bcf Record aliases. 2009-01-16 20:54:01 +00:00
Andrew Johnson
e155dd411e Added dynamic parts of record alias implementation. 2009-01-16 20:50:40 +00:00
Andrew Johnson
dd7cb80555 Fix memory leak. 2009-01-16 20:04:34 +00:00
Andrew Johnson
105448f3f8 Fix access to uninitialized memory. 2009-01-16 16:49:19 +00:00
Andrew Johnson
99053303fb Fixed fetch_values() bug. 2009-01-14 23:42:20 +00:00
Andrew Johnson
a723ea357e Added record aliases. 2009-01-09 18:00:00 +00:00
Andrew Johnson
f8d6677c72 Simplified dbPutFieldLink, made DSXT work with all link types. 2009-01-08 23:51:19 +00:00
Andrew Johnson
b98392f50f Initialize objects fully before making them visible. 2009-01-08 23:44:11 +00:00
Jeff Hill
9027026680 fix for mantis 329 2009-01-08 22:27:18 +00:00
Andrew Johnson
a294e3dcb8 HTML refactoring. 2009-01-07 20:44:51 +00:00
Andrew Johnson
579c7bad06 Also need the registerFunction.h header; fixed some HTML issues. 2009-01-07 18:46:59 +00:00
W. Eric Norum
2862a9b8cf Clean up function registration instructions. 2009-01-07 18:02:21 +00:00
Andrew Johnson
307762f424 Fix DBF_LONG constant link initialization, clean up other types. 2009-01-07 00:04:49 +00:00
Andrew Johnson
0108f6ae94 Cleanup; minimize variable scopes. 2009-01-06 23:32:32 +00:00
Andrew Johnson
76c9329b5e Moved interruptAccept management into scanPause/scanRun functions. 2009-01-06 23:22:28 +00:00
Andrew Johnson
a7a6c01bea Removed the pthread_cancel() functionality from posix/osdThread.c,
resolving the whole issue with catch(...) on NPTL.
2009-01-06 23:06:25 +00:00
Andrew Johnson
4026d9f27c Nested classes have no special access priviledges to their outer class, but
only the vxWorks compiler seems to check this.  Added friend to fix.
An implicit constructor is only created if no user-defined ones exist.
2009-01-06 21:53:04 +00:00
Andrew Johnson
1bccf6879e Replaced most TestAsyn support with a common extended support layer. 2009-01-06 17:31:57 +00:00
Andrew Johnson
f14e6df788 Don't do necessary stuff inside assert(). 2009-01-06 17:07:56 +00:00
Andrew Johnson
bf3c47c3d3 Warn about undefined macros in RELEASE file. 2009-01-06 16:41:56 +00:00
W. Eric Norum
a7af535a4f Added support for MVME2700 (and perhaps MVME2400) as supplied by Matt Rippa. 2009-01-06 15:14:33 +00:00
Andrew Johnson
31fb641dff In vxWorks 5.5.2, ld < file.munch breaks future shell includes. 2009-01-05 22:32:20 +00:00
Andrew Johnson
e6ab9aa7fb Clean up compiler warnings. 2008-12-10 21:51:19 +00:00
Andrew Johnson
12e4ad3c5a Cleanup. Handle re-initialization during shutdown gracefully. 2008-12-10 21:43:36 +00:00
Andrew Johnson
0be13dfc0f Added registryDump command. 2008-12-10 21:34:00 +00:00
Andrew Johnson
67ef06c1e3 Cleanup. 2008-12-10 21:32:06 +00:00
Andrew Johnson
f951aab3f3 Fix possible race condition on SMP systems. 2008-12-09 21:46:40 +00:00
Andrew Johnson
f3bcf735cc Bug fix reported by Jens Eden. 2008-12-04 23:38:47 +00:00
Andrew Johnson
448fc10e35 Fix link problem Mark Rivers reported. 2008-12-02 23:45:16 +00:00
Janet B. Anderson
1d9543997e Removed path environment lines. User should put gcc in path. 2008-12-01 19:02:21 +00:00
Andrew Johnson
a58fa323d8 The pointer is volatile, not the object itself... 2008-12-01 17:03:03 +00:00
Janet B. Anderson
e2e7864c3d Removed path environment lines. User should put gcc in path. 2008-12-01 16:35:40 +00:00
Andrew Johnson
79a2649596 Fixed problem with time provider registration on dual-CPU systems. 2008-11-21 23:23:25 +00:00
Jeff Hill
e99e352e2c redesigned this facility for simplicity, clarity, and robustness 2008-11-19 17:20:15 +00:00
Jeff Hill
4126c71e0e added include for typedef used in this header 2008-11-19 17:17:41 +00:00
Jeff Hill
fd5b03405a disable copy ctor and operator for the epicsOnceImpl private class 2008-11-19 17:11:49 +00:00
Andrew Johnson
a37105e0c7 Fixed buffer overflow in thread name. 2008-11-16 17:32:58 +00:00
Andrew Johnson
ca1e7b0613 Added WireSet instances, needed for vxWorks 6.1. 2008-11-14 23:32:15 +00:00
Ralph Lange
438ed926ba Added -p option to commandline tools to specify CA priority. 2008-11-14 13:20:42 +00:00
Ralph Lange
519f54c06b Added -p option to commandline tools to specify CA priority. 2008-11-14 13:12:26 +00:00
Ralph Lange
c5773eafb4 Added -p option to specify CA priority. 2008-11-14 13:03:25 +00:00
W. Eric Norum
e48b9ec4ab Add NVRAM offset. 2008-11-06 21:35:26 +00:00
Andrew Johnson
49421de296 Linux: Switch to libncurses. 2008-11-04 16:08:32 +00:00
Janet B. Anderson
eee915ced7 Updated version to R3.14.11 and set EPICS_CVS_SNAPSHOT to -CVS. 2008-10-27 20:19:12 +00:00
569 changed files with 18369 additions and 18672 deletions

View File

@@ -130,6 +130,4 @@ endif
#etc.
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040
#CMPLR=STRICT
#CXXCMPLR=STRICT

View File

@@ -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))

View File

@@ -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

View File

@@ -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

View File

@@ -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))
#--------------------------------------------------

View File

@@ -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

View File

@@ -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:

View File

@@ -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))))

View 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*) \

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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), \

View File

@@ -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
# --------------------------------------------------------------------

View File

@@ -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

View File

@@ -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

View File

@@ -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 \

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -10,3 +10,4 @@
# Include definitions common to all linux-x86 target archs
include $(CONFIG)/os/CONFIG.Common.linux-x86
HOST_OPT=NO

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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)

View File

@@ -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 =

View File

@@ -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

View File

@@ -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

View File

@@ -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
#-------------------------------------------------------

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -14,3 +14,5 @@ STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS += -Wl,-h$@
LOADABLE_SHRLIB_LDFLAGS += -Wl,-h$@

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 =

View File

@@ -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 =

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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 =

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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))))
#--------------------------------------------------

View File

@@ -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

View 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

View 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)

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View File

@@ -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)

View File

@@ -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

View 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

View 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

View File

@@ -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)

View File

@@ -5,5 +5,3 @@
#
# Site override definitions for darwin-ppc host builds
#-------------------------------------------------------
CROSS_COMPILER_TARGET_ARCHS = # RTEMS-uC5282 RTEMS-mvme5500 RTEMS-mvme2100

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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 &lt;top&gt;
cd &lt;top&gt;
&lt;full path to 3.14 base&gt;/bin/&lt;host_arch&gt;/makeBaseApp.pl -t example junk
</pre>
<h3>Copy all *App and iocBoot directories and files to the new &lt;top&gt;
<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 &lt;oldtop&gt;
find *App iocBoot -print | cpio -pvmd &lt;fullpath name to new top&gt;</pre>
<h3>Modify &lt;top&gt;/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 =&lt;full path to seq module top&gt;</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 &lt;top&gt;/*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 &lt;top&gt;/*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 &lt;top&gt;/*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
&lt;appname&gt;Include.dbd file and remove the file
&lt;name&gt;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 &lt;recordname&gt;RSET={ ...</pre>
</blockquote>
to
<blockquote>
<pre>rset &lt;recordname&gt;RSET={ ...</pre>
</blockquote>
and add the following line after the "rset &lt;recordname&gt;RSET="
definition.
<blockquote>
<pre>epicsExportAddress(rset,&lt;recordname&gt;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&lt;devname&gt;= { ...};
<blockquote>
<pre>epicsExportAddress(dset,dev&lt;devname&gt;);</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&lt;devname&gt; definition
<blockquote>
<pre>epicsExportAddress(drvet,drv&lt;devname&gt;);</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 &lt;appname&gt;Include.dbd: e.g.
remove
<blockquote>
<pre>function("mySubInit")
function("mySubProcess")</pre>
</blockquote>
8) Add a registrar statement to &lt;name&gt;Include.dbd with the new
registration function as parameter: e.g. add
<blockquote>
<pre>registrar("mySub")</pre>
</blockquote>
</blockquote>
<h3>Modify the Makefiles in &lt;top&gt;/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 &lt;top&gt;/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 = &lt;old arch specification e.g. mv167&gt;</tt></p>
<p>to</p>
<p><tt>ARCH = &lt;new arch specification e.g.
vxWorks-68040&gt;</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 = &lt;old arch specification e.g. mv167&gt;</pre>
</blockquote>
<p>to</p>
<blockquote>
<pre>ARCH = &lt;new arch specification e.g. vxWorks-68040&gt;</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 &lt;top&gt;/iocBoot/ioc* directories.</h3>
<h3>Modify st.cmd in <i>top</i>/iocBoot/ioc* directories.</h3>
<p>Remove the lines</p>
<pre>ld &lt; seq
<blockquote>
<pre>ld &lt; seq
ld &lt; iocCore</pre>
</blockquote>
<p>Change "<tt>ld &lt; &lt;libname&gt;Lib</tt>" to "<tt>ld &lt;
&lt;libname&gt;.munch"</tt></p>
<p>Change <q><tt>ld &lt; <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/&lt;name&gt;App.dbd")</tt> <br>
</p>
to
<pre>dbLoadDatabase("../../dbd/&lt;name&gt;.dbd")
&lt;name&gt;_registerRecordDeviceDriver(pdbbase)</pre>
<blockquote>
<pre>dbLoadDatabase("../../dbd/<i>name</i>App.dbd")</pre>
</blockquote>
<p>where &lt;name&gt; 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=&lt;full path to modules directory&gt;/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=&lt;full path definition for the built module SYMB&gt;</tt></p>
<blockquote>
<pre>SYMB = &lt;full path definition for the built module SYMB&gt;</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=&lt;full path name to msi executable&gt;</tt></p>
<blockquote>
<pre>MSI = &lt;full path name to msi executable&gt;</pre>
</blockquote>
<p>to your application config/RELEASE file.</p>
<br>
 </body>
</body>
</html>

View File

@@ -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 &mdash; 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>

View File

@@ -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.

View File

@@ -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

View File

@@ -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