Compare commits

..

1456 Commits

Author SHA1 Message Date
Janet B. Anderson
56fee671fe epics_R3_13_1_1 1999-01-11 15:38:57 +00:00
Marty Kraimer
4c7cfd7b2f added description of -i to help 1999-01-11 14:20:09 +00:00
Janet B. Anderson
28cdb2b5e1 Bug fix for warning and opt flags in Vx builds. 1999-01-07 23:14:16 +00:00
Janet B. Anderson
f006ec6a8e Don't copy vxWorks and vxWorks.sym into base. 1999-01-07 21:50:08 +00:00
Janet B. Anderson
f468f0e33c Changes from Mark Rivers. 1999-01-06 22:21:59 +00:00
Janet B. Anderson
3cfd9a79f5 Fixed VX_GNU_NO definition. 1999-01-06 22:10:43 +00:00
Janet B. Anderson
0c0b5d44ba Added $(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME) to clean rule. 1999-01-06 22:04:37 +00:00
Janet B. Anderson
95a399e4a2 Now only create package dir if package is defined. 1999-01-06 21:58:51 +00:00
Janet B. Anderson
4daf75e295 Added vendor compiler dependent options ( -KPIC -D_REENTRANT for solaris) 1999-01-06 21:52:47 +00:00
Janet B. Anderson
0ef60ec09a Added CPPSNCFLAGS to cpp step of state notation language rule 1999-01-06 21:37:23 +00:00
Janet B. Anderson
42bd805108 Created ARCH_DEP_CPPFLAGS for Vx build. 1999-01-06 21:34:55 +00:00
Janet B. Anderson
5e7ec2be6c Bug fix - added space after link definition. 1999-01-06 19:48:22 +00:00
Janet B. Anderson
2c1609e2ed perl now must be in user's path. 1999-01-06 19:43:12 +00:00
Janet B. Anderson
4d0785b899 Release string now contains update name/level only if non blank/non zero. 1999-01-06 19:35:54 +00:00
Marty Kraimer
1fc97eb429 reinitialize eoff in special 1999-01-06 19:14:21 +00:00
Marty Kraimer
54f3de4b0d cosmetic change 1999-01-06 19:11:00 +00:00
Marty Kraimer
4907dfd43d remove defining storage twice 1999-01-06 19:10:06 +00:00
Marty Kraimer
14414ab86f If dbPutNotify called dbProcess and dbProcess returned an error the notify completion callback was called twice. 1999-01-06 18:59:20 +00:00
Marty Kraimer
08761bebff remove restriction that table names must be alphanumeric 1999-01-06 18:54:26 +00:00
Ralph Lange
6619c06109 Bugfix .DEPENDS -> DEPENDS 1999-01-06 16:50:48 +00:00
Jeff Hill
5ba5209891 changes from Salikova 1998-12-21 20:59:30 +00:00
Jeff Hill
5d4eddf424 fixed typo 1998-12-21 17:50:01 +00:00
Jeff Hill
1982c777be Include the next resource id allocated in casr diagnostic 1998-12-21 17:49:05 +00:00
Jeff Hill
842f9e33cf drvEpvxi.h 1998-12-21 17:46:36 +00:00
Jeff Hill
d4f44b9bc9 fixed warning 1998-12-21 17:39:02 +00:00
Jeff Hill
d2acbb21b5 improved the portability of devLib 1998-12-19 01:32:35 +00:00
Jeff Hill
4ab910abd1 renamed createPV() to pvAttach() 1998-12-19 00:04:53 +00:00
Jeff Hill
6f8e2cd675 Changed the remove() function in tsSLList class because users were
confused by it. The name is now removeNextItem() and it is now a private
member of class tsSLNode.
1998-12-18 19:02:47 +00:00
Jeff Hill
9658302528 fixed warning 1998-12-18 18:58:20 +00:00
Janet B. Anderson
1b8da9848e Removed duplicate line. 1998-12-14 17:08:11 +00:00
Jeff Hill
4f983714c7 doc 1998-12-07 23:21:53 +00:00
Jeff Hill
31d5dee317 removed inline frm evt msk alloc 1998-12-01 23:32:15 +00:00
Jeff Hill
e1bc747104 Use EPICS_CA_BEACON_PERIOD 1998-12-01 18:54:45 +00:00
Jeff Hill
82d119fcef fixed warning 1998-11-23 23:51:04 +00:00
Jeff Hill
2ef8e387e0 added build date to corerelease() 1998-11-23 23:49:29 +00:00
Janet B. Anderson
baedd6deb2 epics_R3_13_1 1998-11-19 16:18:25 +00:00
Jeff Hill
7debd1da9d fixed casChannelI undefined symbols on WIN32 1998-11-18 18:52:49 +00:00
Marty Kraimer
2ab3555c08 added more notes 1998-11-18 16:56:20 +00:00
Marty Kraimer
bf5f43d8f0 Allow real number with leading - sign 1998-11-18 16:20:12 +00:00
Jeff Hill
30c1e46737 fixed event cancel race condition 1998-11-18 00:51:41 +00:00
Jeff Hill
e919e85aab added sem diagnostic 1998-11-17 02:43:17 +00:00
Jeff Hill
94f7436672 fixed warning 1998-11-17 02:42:39 +00:00
Jeff Hill
6d5074138f improved message 1998-11-17 02:42:00 +00:00
Jeff Hill
a79d5fa471 fixed infinite loop 1998-11-17 02:40:56 +00:00
Jeff Hill
12a36129a9 backed out changes accidently checked in 1998-11-17 02:39:17 +00:00
Jeff Hill
d2392d1bfa fixed order problem npend-- vs callBackInProgress 1998-11-17 02:17:03 +00:00
Janet B. Anderson
aafad7cc01 Optionally include host specific RELEASE definitions. 1998-11-12 22:41:31 +00:00
Marty Kraimer
6e548431a6 remove bsdProto.h 1998-11-12 18:41:21 +00:00
Jeff Hill
ebdc30a5a3 fixed case 1998-11-12 17:52:15 +00:00
Jeff Hill
35d18ac92c fixing case in name 1998-11-12 17:51:27 +00:00
Marty Kraimer
475b8a66be Changes for release 3.13.1 1998-11-11 13:45:04 +00:00
Jeff Hill
80545b9431 reduced socket buffer size 1998-11-11 01:31:59 +00:00
Jeff Hill
46be0d449a reduced socket buf sizes 1998-11-10 21:57:20 +00:00
Jeff Hill
1e262417be installed 1998-11-10 21:52:28 +00:00
Jeff Hill
1fea4b4097 ifdef out prototypes for traditional C 1998-11-10 21:35:31 +00:00
Jeff Hill
a1af039631 not used 1998-11-10 21:33:59 +00:00
Jeff Hill
c266df258b added header file & consolodated source 1998-11-10 21:20:28 +00:00
Janet B. Anderson
d1d589da72 Changed Kpic compile option to KPIC 1998-11-09 21:49:57 +00:00
Janet B. Anderson
7977848096 Unix build now always uses SHRLIB_CFLAGS when compiling library src files.
Added ARCH_CLASS facility for USR_CPPFLAGS.
1998-11-09 21:39:47 +00:00
Marty Kraimer
7a7bd7a6b9 dont call dbScanLock until interruptAccept is true 1998-11-09 19:52:23 +00:00
Marty Kraimer
12d767c98a honor the MASK and SHFT fields 1998-11-09 17:07:44 +00:00
Marty Kraimer
2ce2fc4c86 call taskSuspend instead of exit 1998-11-09 17:06:34 +00:00
Janet B. Anderson
7bf6530254 Modified slashes in wildcard specification. 1998-11-05 15:36:46 +00:00
Jeff Hill
7c947639a5 server nolonger throws exception when a poorly formed get/put call back
request arrives. Instead a get/put call back response is sent which includes
unsuccessful status
1998-10-28 23:51:01 +00:00
Jeff Hill
03fb90cee8 removed inline keyword 1998-10-27 22:06:46 +00:00
Jeff Hill
6f47cbbe03 avoid problems with early g++ 1998-10-27 21:34:19 +00:00
Jeff Hill
5c9baa5d00 fixed warnings 1998-10-27 18:28:20 +00:00
Jeff Hill
c425cea48d improved doc 1998-10-27 18:13:48 +00:00
Jeff Hill
041a9ad82b fixed warnings 1998-10-27 01:08:26 +00:00
Jeff Hill
c598b8fbad fixed warning 1998-10-27 00:57:25 +00:00
Jeff Hill
eec3ca68ef fixed warning 1998-10-27 00:49:07 +00:00
Jeff Hill
93745fa03c fixed warnings 1998-10-27 00:47:28 +00:00
Jeff Hill
3c43b78e77 eliminated warning 1998-10-27 00:43:27 +00:00
Jeff Hill
0562cf545b fixed warnings 1998-10-27 00:35:03 +00:00
Ralph Lange
ef02f8224e Bug in gdd::~gdd fixed (CA gateway crashes). 1998-10-26 11:18:41 +00:00
Jeff Hill
1c214dc407 fixed inline is too big warning 1998-10-23 19:47:12 +00:00
Jeff Hill
f91bfc1e1c fixed case problem on UNIX 1998-10-23 19:24:26 +00:00
Jeff Hill
409d2c2aaf fixed problem associated with deleting "const char *"
on the solaris compiler
1998-10-23 19:23:46 +00:00
Jeff Hill
18c24640c7 fixed missing new line at EOF 1998-10-23 16:40:47 +00:00
Jeff Hill
a80f223736 fixed HP-UX warnings 1998-10-23 00:28:21 +00:00
Jeff Hill
36b70e243f fixed problem where send was not always rearmed if this
was indirectly necessary in the send callback because
in this callback the code considered sends to be still armed
until the send callback completed
1998-10-23 00:27:15 +00:00
Jeff Hill
624f3e2284 attempted to clean up HP_UX warnings 1998-10-23 00:21:49 +00:00
Jeff Hill
4ae1a330bd attempted to clean up HP-UX warnings 1998-10-23 00:20:41 +00:00
Janet B. Anderson
5eab74508e Set iocLogDisable true if log port or log inet not defined. 1998-10-21 19:00:02 +00:00
Jeff Hill
1d5bb33527 fixed spelling & clarified use of TMP env var 1998-10-21 16:09:57 +00:00
Jeff Hill
1ba75e94e8 fixed potential event discard under heavy load 1998-10-20 18:45:10 +00:00
Janet B. Anderson
2bd9693676 Removed definitions of ioc log inet number and log filename. 1998-10-12 19:58:44 +00:00
Janet B. Anderson
a175ac0518 Modified log message. 1998-10-07 14:32:52 +00:00
Marty Kraimer
e334526dec fixed sync bugs 1998-10-06 18:09:28 +00:00
Jeff Hill
23f88290b1 added missing macros 1998-10-05 20:33:10 +00:00
Jeff Hill
c3cfcd6f7a correct LANSCE-5 make name, use ansi function prototype 1998-10-02 15:26:43 +00:00
Jeff Hill
cd8da10fa8 dont let problems converting IP address to name clobber errno 1998-10-01 23:15:20 +00:00
Jeff Hill
c9ca2a362d removed pragma 1998-10-01 23:09:29 +00:00
Jeff Hill
5dc5113919 log number of no buf errors and print them in a diagnostic 1998-10-01 23:03:15 +00:00
Jeff Hill
61e74ab5bb use proper net byte order for exception reflect 1998-10-01 22:55:41 +00:00
William Lupton
163853f5bc supported setting initial value on declaration (NB, will give compilation error if using recursive option) 1998-10-01 21:29:13 +00:00
William Lupton
f9fdb88d73 fixed FPNUM to support exponents 1998-10-01 21:28:33 +00:00
Janet B. Anderson
ae43db8152 Added new field PREC for display of double and float fields ULIM, LLIM,
SDEL, SVAL, SGNL, and WDTH. Added unsigned long fields HOPR and LOPR for
display of VAL array counts.  Changed SDEL field from SPC_NOMOD to
SPC_RESET to allow start and stop of the watch dog timer.
1998-10-01 20:28:14 +00:00
Jeff Hill
444f4c0bcc more robust in situations wherelocal IP cant be determined 1998-09-29 20:50:37 +00:00
Marty Kraimer
c0fc5c1860 SHFT was made a prompt field and also modifiable. The VAL field of mbboDirectRecord is now modifiable. 1998-09-29 15:05:27 +00:00
Marty Kraimer
486d616af1 removed unused field Prec. 1998-09-29 15:04:58 +00:00
Marty Kraimer
8d76efbb30 Changed author 1998-09-29 14:56:57 +00:00
Marty Kraimer
d7df83132c More robust when calloc fails 1998-09-29 14:55:52 +00:00
Marty Kraimer
85629b8908 Task priorities were changed so that no epics task has higher priority than netTask.
Definitions for IOEVENTSCAN and TIMESTAMP were removed.
1998-09-29 14:45:50 +00:00
Marty Kraimer
58cb660fd8 Put html doc with source 1998-09-29 14:12:16 +00:00
Marty Kraimer
161e66adc4 added dbCaGetTimeStamp 1998-09-29 14:11:33 +00:00
Marty Kraimer
aefa82520a TSsetClockFromUnix was made global 1998-09-29 14:11:03 +00:00
Jeff Hill
20773a6037 fixed warnings 1998-09-25 00:20:56 +00:00
Jeff Hill
acf112999a eliminated DLL run-down call to ca_task_exit() 1998-09-24 23:52:57 +00:00
Jeff Hill
429b7ae7a2 turned off debug output 1998-09-24 23:01:05 +00:00
Jeff Hill
7eca88fcf8 backed out previous change 1998-09-24 21:34:24 +00:00
Jeff Hill
b2dcaf3113 conn.c 1998-09-24 21:22:58 +00:00
Jeff Hill
e189a30222 subtle changes related to efficency when checking connection timers 1998-09-24 21:22:57 +00:00
Jeff Hill
ef42291613 cosmetic 1998-09-24 21:22:56 +00:00
Jeff Hill
3801cf0b81 improved message 1998-09-24 21:22:55 +00:00
Jeff Hill
75b61caa96 subtle changes related to efficency when checking connection timers 1998-09-24 21:22:54 +00:00
Jeff Hill
b40864bf6d CLR_CA_TIME() now correctly zeros the delay 1998-09-24 21:22:53 +00:00
Jeff Hill
fe16f5bd01 improved debug output 1998-09-24 21:22:52 +00:00
Jeff Hill
16f6f6e39e detect reconnect faster when IOC reboots quickly 1998-09-24 21:22:51 +00:00
Jeff Hill
fd088bfa83 added ca_get_ioc_connection_count () 1998-09-24 21:18:25 +00:00
Jeff Hill
607157e99a verify that conn is dropped when channel count goes to zero 1998-09-24 21:11:38 +00:00
Jeff Hill
2b21b5608d o test routine added
o allow large PV names
1998-09-24 21:10:38 +00:00
Jeff Hill
851b153afa cosmetic 1998-09-24 20:53:54 +00:00
Jeff Hill
c36de7d61d subtle changes which relate to not flushing the output buffer if there are bytes
pending in the input queue (improves performance)
1998-09-24 20:50:50 +00:00
Jeff Hill
461e1f3844 cosmetic 1998-09-24 20:42:30 +00:00
Jeff Hill
69ae776409 supply resource id to logBadIdWithFileAndLineno() 1998-09-24 20:41:49 +00:00
Jeff Hill
b5e4de9cff new error message 1998-09-24 20:40:56 +00:00
Jeff Hill
857a19ddef o block if unable to get buffer space for the exception message
o subtle changes related to properly dealing with situations where
both the server tool and the client tool delete the same PV simultaneously
1998-09-24 20:40:07 +00:00
Jeff Hill
608228b328 send exception in correct byte order / block if no space for exception 1998-09-24 20:35:16 +00:00
Jeff Hill
421ad0d456 cosmetic 1998-09-24 20:33:03 +00:00
Janet B. Anderson
a2bb878d29 Added strip to SHARED_LIBRARIES. 1998-09-17 15:50:40 +00:00
Marty Kraimer
2e7a0f1922 fix bugs for JDCT 1998-09-15 15:05:22 +00:00
Janet B. Anderson
42ea5f2413 Moved VX_GNU_NO definition to CONFIG_SITE (Dir for TORNADO=NO gnu gcc). 1998-09-08 15:02:04 +00:00
Janet B. Anderson
c0ed618531 Added more included for HOME dir config files. 1998-09-08 14:43:49 +00:00
Janet B. Anderson
fd67b63b75 Modified java rules. 1998-09-08 14:39:50 +00:00
Janet B. Anderson
9162b6c404 Added DLL_LDLIBS definition. 1998-09-08 14:38:11 +00:00
Janet B. Anderson
8500db7307 Added STATIC_LDFLAGS definition. 1998-09-03 16:02:42 +00:00
Janet B. Anderson
3a58071733 Fixed DLL_DEPLIBS definition. 1998-09-03 15:57:29 +00:00
Janet B. Anderson
46d989507f Added COND_PROD_SRCS to depends rule and moved rule after the definition. 1998-09-03 15:53:13 +00:00
Jeff Hill
71112a41df allow the user name to change when they use su 1998-08-12 16:36:54 +00:00
Steve Lewis
cffb3ce69e Put __STDC__ guard around errlogListener. 1998-08-06 23:08:12 +00:00
Jeff Hill
6dacae6103 changed new to pnew avoiding C++ keyword clash 1998-08-06 18:25:45 +00:00
Janet B. Anderson
df5f2235f1 Changes for RedHat Linux 5.1 from Pete Jemian 1998-08-03 14:09:17 +00:00
Jeff Hill
f903d29c73 eventsOff is no longere a private member 1998-07-23 16:48:15 +00:00
Ralph Lange
8c4e600953 Made bit B0 'DCT No' 1998-07-22 16:51:49 +00:00
Jeff Hill
652a8b289e winmm => advapi32 1998-07-08 15:50:29 +00:00
Jeff Hill
b48235c925 use arch indep types 1998-07-08 15:50:12 +00:00
Jeff Hill
3ac0769562 cosmetic 1998-07-08 15:39:16 +00:00
Jeff Hill
4207b67727 fixed lost monitors during flow control problem 1998-07-08 15:38:10 +00:00
Jeff Hill
a3a8bae82f removed mm lib 1998-07-07 23:28:42 +00:00
Jeff Hill
660db2e523 print Mbps 1998-07-07 23:05:46 +00:00
Jeff Hill
8808b28571 cosmetic changes 1998-07-07 23:04:00 +00:00
Jeff Hill
e7af37a2a1 use high precision timers 1998-07-07 23:01:42 +00:00
Jeff Hill
239061a09c winmm => advapi32 1998-07-07 22:45:13 +00:00
Jeff Hill
17d233c2d7 use high precision timers 1998-07-07 22:43:26 +00:00
Jeff Hill
a8dfe7b4f4 removed unused include 1998-07-07 22:42:07 +00:00
Jeff Hill
ffc026ca61 fixed shared/static issues on WIN32 1998-07-07 22:38:05 +00:00
Jeff Hill
597d2209ff corrected missing -d in shrlib install 1998-07-07 22:24:40 +00:00
Ralph Lange
8b6eaf6a0f += \ to / conversion when reading env.vars and RELEASE entries
+= optimized patterns when replacing tags within files
1998-06-23 15:59:33 +00:00
Jeff Hill
eca09fb129 fixed use of nill ptr in gdd::put(const gdd* dd) 1998-06-23 15:10:36 +00:00
Janet B. Anderson
d331954168 Removed definition for CROSS_COMPILER_HOST_ARCHS. 1998-06-23 14:00:27 +00:00
Jeff Hill
90f9be472c EPICS_DLL => EPICS_DLL_NO 1998-06-22 23:22:34 +00:00
Jeff Hill
94fdaba021 EPICS_DLL => EPICS_DLL_NO (so we are backwards compatible 1998-06-22 22:32:05 +00:00
Jeff Hill
3c5875c821 use ./ in from of genApps$(exe) cmd 1998-06-22 20:54:53 +00:00
Jeff Hill
25a4b6a96c doc 1998-06-19 22:28:13 +00:00
Jeff Hill
f505578397 documented my changes to R313B12 1998-06-19 22:19:59 +00:00
Ralph Lange
f0a76674af += \ to / conversion for all commandline arguments (incl. $0 -> $command) 1998-06-19 12:30:46 +00:00
Janet B. Anderson
4626994388 baseR3.13.0.beta12 1998-06-18 18:21:06 +00:00
Janet B. Anderson
82b2cbc4f0 Updated location of bat file. 1998-06-18 18:16:45 +00:00
Marty Kraimer
d8c4ebda03 URLs referenved wrong document 1998-06-18 12:32:33 +00:00
Jeff Hill
0f2fb17864 updated release notes for R3.13B12 1998-06-18 00:20:44 +00:00
Jeff Hill
b719362755 fixed inconsitent use of htonl() 1998-06-18 00:16:37 +00:00
Jeff Hill
c5cd953aba use ipAddrToA 1998-06-18 00:15:03 +00:00
Jeff Hill
be88672134 installed bwd compat casPV constructor 1998-06-18 00:09:39 +00:00
Jeff Hill
84efd88c45 deleted unused variables 1998-06-18 00:08:30 +00:00
Janet B. Anderson
081769088a Added EXE to perl definition. 1998-06-17 21:04:37 +00:00
Marty Kraimer
5c0775883e add note for win95 1998-06-17 18:43:01 +00:00
Marty Kraimer
5e0bfbc9f7 Do NOT modify $0. Copy it to another variable instead 1998-06-17 18:39:06 +00:00
Janet B. Anderson
c39be663e2 Removed the previous commit change. 1998-06-17 17:47:49 +00:00
Janet B. Anderson
e3b1b2fa59 Changed type to echo and added cygwin32 test. 1998-06-17 14:53:28 +00:00
Jeff Hill
eebf5ef09d fixed problem where beta 12 briefly didnt communicate with old CA repeaters 1998-06-17 00:39:05 +00:00
Marty Kraimer
529c35ff73 For winXX convert \ to / in $0 1998-06-16 19:23:03 +00:00
Janet B. Anderson
3c675f2565 Fixed reference to perl location. 1998-06-16 15:43:37 +00:00
Janet B. Anderson
c2cbd31fc0 Fixed perl directory specification. 1998-06-16 15:10:45 +00:00
Jeff Hill
7d81061b60 added newline at EOF 1998-06-16 03:45:02 +00:00
Jeff Hill
4dac09744e fixed prototype 1998-06-16 03:41:16 +00:00
Jeff Hill
beaab56d90 allow use of epicsAssert.h 1998-06-16 03:31:00 +00:00
Jeff Hill
98644b2ac8 added WIN32 libs 1998-06-16 03:28:53 +00:00
Jeff Hill
5e3d212189 doc 1998-06-16 03:27:46 +00:00
Jeff Hill
420dc30a5c use aToIPAddr 1998-06-16 03:25:13 +00:00
Jeff Hill
485da02820 eliminate DLL import/export warning 1998-06-16 03:22:21 +00:00
Jeff Hill
c8be1c9e5e use aToIPAddr() 1998-06-16 03:20:35 +00:00
Jeff Hill
0fe034cf64 installed 1998-06-16 03:17:38 +00:00
Jeff Hill
3fc95f0542 added smart gdd pointer header file 1998-06-16 03:17:12 +00:00
Jeff Hill
65d95867a9 fixed big problems with leaked ait/fixedString in gdd union 1998-06-16 03:16:27 +00:00
Jeff Hill
5c201c73d0 added comments 1998-06-16 03:12:40 +00:00
Jeff Hill
40f415f5c3 added sgi support 1998-06-16 03:10:51 +00:00
Jeff Hill
4935efd6b1 eliminated dangling ptr warning from bounds checker 1998-06-16 03:03:07 +00:00
Jeff Hill
e2b7a442d8 cosmetic 1998-06-16 03:01:44 +00:00
Jeff Hill
436be2d448 cleaned up fast string hash table 1998-06-16 03:00:19 +00:00
Jeff Hill
9100c5dd7e doc 1998-06-16 02:58:49 +00:00
Jeff Hill
3733b9bd40 attempted to solve err to str problems 1998-06-16 02:56:09 +00:00
Jeff Hill
261479ad0a removed ipAddrToA decl 1998-06-16 02:54:27 +00:00
Jeff Hill
75d4d73f57 use ip addr conversion in libCom - and cosmetic changes 1998-06-16 02:43:16 +00:00
Jeff Hill
6aa6cdd606 updated for new server API and use smart GDD ptr 1998-06-16 02:37:37 +00:00
Jeff Hill
a9b8a161f4 use aToIPAddr and auto attach to winsock if its a static build 1998-06-16 02:35:52 +00:00
Jeff Hill
65e1e8203e allow PVs to exist without a server 1998-06-16 02:34:14 +00:00
Jeff Hill
233dc670a3 use smart gdd ptr 1998-06-16 02:32:30 +00:00
Jeff Hill
78fc9f07f0 allow the PV to be created before the server 1998-06-16 02:31:36 +00:00
Jeff Hill
bf73514dd9 allow PV to be created before the server 1998-06-16 02:30:44 +00:00
Jeff Hill
5658c714d0 allow PVs to exist without a server 1998-06-16 02:26:09 +00:00
Jeff Hill
5e5c4e20cd cosmetic 1998-06-16 02:25:05 +00:00
Jeff Hill
d42468dd1e better diagnostics 1998-06-16 02:24:24 +00:00
Jeff Hill
f14e74c6b6 dont require that a server must exist before a PV is created 1998-06-16 02:21:49 +00:00
Jeff Hill
38bacaa84a use smart gdd ptr 1998-06-16 02:18:53 +00:00
Jeff Hill
f9e6130f17 installed 1998-06-16 02:12:05 +00:00
Jeff Hill
644320cbc3 cvtFast.h 1998-06-16 02:10:39 +00:00
Jeff Hill
4aad75a87b check for a valid host name after trying a dotted ip addr 1998-06-16 02:10:02 +00:00
Jeff Hill
6bd5b857e7 use aToIPAddr 1998-06-16 02:08:03 +00:00
Jeff Hill
1acfbc1f00 lazy init sock lib when its a static build & recoverfrom select differences in winsock 1998-06-16 02:06:32 +00:00
Jeff Hill
a1f2ed3e5f fixed spelling 1998-06-16 02:04:07 +00:00
Jeff Hill
076140f20d recover from winsock select differences 1998-06-16 02:03:22 +00:00
Jeff Hill
b3c6e4371e cosmetic 1998-06-16 01:59:54 +00:00
Jeff Hill
6f8bc78233 deleted 1998-06-16 01:58:53 +00:00
Jeff Hill
fc231af5ed fixed dll export/import problem 1998-06-16 01:58:18 +00:00
Jeff Hill
29c90caa54 fixed dll import/export problem\ 1998-06-16 01:54:28 +00:00
Jeff Hill
8968c33bdb installed 1998-06-16 01:53:00 +00:00
Jeff Hill
b439063760 added lazy init for static build 1998-06-16 01:52:32 +00:00
Jeff Hill
a0be9a16b3 consolodated code here to bsdSockResource.c 1998-06-16 01:50:37 +00:00
Jeff Hill
625ffa65cb fixed include 1998-06-16 01:48:06 +00:00
Jeff Hill
220f428e42 installed 1998-06-16 01:41:31 +00:00
Jeff Hill
e3ad99226e removed 1998-06-16 01:27:01 +00:00
Jeff Hill
e134af5b80 allow saturated clients to poll/use new consolodated IP address routines in libCom/clean up when a server and client delete the PV simultaneously 1998-06-16 01:16:09 +00:00
Jeff Hill
4183105e2e use ipAddrToA and cacDisconnectChannel() looses one parameter 1998-06-16 01:11:12 +00:00
Jeff Hill
3dfea10337 removed caHostFromInetAddr 1998-06-16 01:07:56 +00:00
Jeff Hill
aa06b8a593 removed - again 1998-06-16 01:06:04 +00:00
Jeff Hill
0967370546 call osiSleep if the delay is zero and there are no fd's selected - makes winsock happy 1998-06-16 01:04:56 +00:00
Jeff Hill
2cbfb7e787 removed netdb_depen.c 1998-06-16 01:03:03 +00:00
Jeff Hill
5c48817b29 deleted 1998-06-16 00:59:06 +00:00
Jeff Hill
2a7ac18626 attach to winsock when its a static build 1998-06-16 00:58:12 +00:00
Jeff Hill
1b00ec96fb added bad functionpointer error 1998-06-16 00:56:57 +00:00
Jeff Hill
0f45593c6d moved code from here to libCom 1998-06-16 00:56:03 +00:00
Jeff Hill
ca1f46765a moved code to libCom 1998-06-16 00:43:12 +00:00
Jeff Hill
742c4fd425 fixed include 1998-06-16 00:42:21 +00:00
Jeff Hill
00cc1caf40 consolodated code here into libCom 1998-06-16 00:41:22 +00:00
Jeff Hill
fc660b3027 cleanup 1998-06-16 00:25:31 +00:00
Jeff Hill
b610c8b3fe avoid purify warning 1998-06-16 00:24:26 +00:00
Marty Kraimer
7e68daea68 add check for null in dbAllocField 1998-06-15 20:55:15 +00:00
Marty Kraimer
f4ca56523f change dbLoadTemplate to dbLoadRecords 1998-06-15 20:20:21 +00:00
Marty Kraimer
02b4de9715 fix bugs found by Peregrine McGehee 1998-06-15 20:19:34 +00:00
Marty Kraimer
469f1b29c2 More late changes 1998-06-15 20:17:56 +00:00
Janet B. Anderson
728220c0cf R3.13.0beta12 updates. 1998-06-15 19:49:00 +00:00
Janet B. Anderson
d71f35e88e Removed DIRECTORY_TARGET references and added -d option to install lines.
Added $(EXE) to command name and replaced perl with $(PERL).
Renamed .DEPENDS to DEPENDS (for cygwin32 builds).
Added uninstall for Db directory.
1998-06-15 19:17:16 +00:00
Janet B. Anderson
43978efcf1 Moved cygwin32.bat to startup. 1998-06-15 17:11:05 +00:00
Janet B. Anderson
a17ec624c6 Moved file to startup directory. 1998-06-15 17:10:21 +00:00
Ralph Lange
dcc8fe5ed2 More Bugfixes; uses .db-stamp now. 1998-06-15 16:55:08 +00:00
Janet B. Anderson
6054d34f16 Removed DIRECTORY_TARGETS references and added -d option to install lines. 1998-06-15 16:09:38 +00:00
Marty Kraimer
045aca1db0 More editing for beta12 1998-06-15 15:53:50 +00:00
Janet B. Anderson
443cf5af58 Fix for perl script name. 1998-06-15 15:51:31 +00:00
Janet B. Anderson
52a6c09b7d Changes for R3.13.0.beta12 1998-06-15 15:30:10 +00:00
Janet B. Anderson
c60822d5e7 Modified perl location. 1998-06-15 15:11:50 +00:00
Janet B. Anderson
fdfbab644f Removed out of date file. 1998-06-15 14:50:56 +00:00
Janet B. Anderson
e20247ec11 Override for the default perl installation location. 1998-06-15 14:47:08 +00:00
Janet B. Anderson
c1999c0cbd Changes for beta12. 1998-06-15 14:22:56 +00:00
Janet B. Anderson
1a78b3eeb6 Renamed .DEPENDS to DEPENDS (for cygwin32 build) 1998-06-15 14:04:14 +00:00
Janet B. Anderson
da0800af39 Added Perl fullpath definition. 1998-06-12 21:01:49 +00:00
Janet B. Anderson
7107a2031b Added #define for SOCKERRSTR 1998-06-12 20:40:08 +00:00
Janet B. Anderson
cd16fbc3f2 Changes for shared library build. 1998-06-12 19:28:36 +00:00
Janet B. Anderson
53fab670ea Define strncasecmp for non unix builds only. 1998-06-12 19:28:07 +00:00
Marty Kraimer
aea3386205 remove unused code 1998-06-12 18:50:33 +00:00
Marty Kraimer
ee6a29d3a3 For -l command strip App and Boot from names 1998-06-12 18:42:26 +00:00
Marty Kraimer
3711d3ad06 Ralphs latest changes 1998-06-12 16:23:57 +00:00
Marty Kraimer
aecd94eb41 removed subtool 1998-06-12 15:52:23 +00:00
Marty Kraimer
e5cc6ad87c Fixed dbReportDeviceConfig so that it correctly handles LINR 1998-06-12 12:37:05 +00:00
Janet B. Anderson
682656a794 Changed perl to $(PERL) 1998-06-11 18:18:39 +00:00
Janet B. Anderson
4f41a4dd60 Removed reference to WHAT 1998-06-11 16:21:21 +00:00
Janet B. Anderson
1eb01cd0f8 Removed references to WHAT. 1998-06-11 16:20:51 +00:00
William Lupton
392e749476 Permitted pre-processor '#' lines between state-sets 1998-06-10 18:20:35 +00:00
Janet B. Anderson
ce878ffdd8 Modified cygwin32 separator definitions. 1998-06-10 17:37:04 +00:00
William Lupton
3995dbafdb addition of intLock()/intUnlock() (BESSY) 1998-06-04 19:32:12 +00:00
William Lupton
fdb0b29c0a fixed stringout typo plus cosmetic mod 1998-06-04 19:28:29 +00:00
William Lupton
69e0ffe36f fixed array bound problem (BESSY) 1998-06-04 19:26:48 +00:00
William Lupton
52e35dde60 incremented version number for Beta12 1998-06-04 19:25:29 +00:00
William Lupton
cb73e1f672 avoided intHandlerCreate() for PPC 1998-06-04 19:24:30 +00:00
William Lupton
7f3b0f64b0 replaced symFindByNameMips with symFindByNameEPICS 1998-06-04 19:23:20 +00:00
William Lupton
142aa9571a changed to use symFindByNameEPICS 1998-06-04 19:21:23 +00:00
William Lupton
d4cf4cdaf7 removed define of symFindByName (replaced by symFindByNameEPICS) 1998-06-04 19:17:08 +00:00
William Lupton
25fe26e168 initial insertion 1998-06-04 19:15:13 +00:00
William Lupton
92fcba48f2 removed config and added templates 1998-06-04 19:13:52 +00:00
Marty Kraimer
e642dbe685 RECTYPES built only on Host 1998-06-04 13:57:56 +00:00
Marty Kraimer
e41c83d2de change #< nfsCommands to #< ../nfsCommands 1998-06-04 13:57:11 +00:00
Marty Kraimer
937c7ff4f0 ScanRate change to ScanPeriod 1998-06-04 13:55:18 +00:00
Marty Kraimer
fb88316392 Allow \ for directory separator on winXX systems 1998-06-04 13:50:51 +00:00
Marty Kraimer
68b9fe501e changes for old applications 1998-06-04 13:48:07 +00:00
Janet B. Anderson
df0653ee53 Changed java install rule. 1998-06-03 14:51:51 +00:00
Marty Kraimer
6d1ecdeb96 More changes for beta12 1998-06-03 14:20:29 +00:00
Janet B. Anderson
b5d3aaa231 Added changes from Steve Hunt 1998-06-02 21:05:19 +00:00
Janet B. Anderson
f54959c473 Modified if test on SRCS and COND_PROD_SRCS. 1998-06-02 21:03:55 +00:00
Janet B. Anderson
56e607be7e Added INSTALL_TEMPLATES to uninstall rule. 1998-06-02 21:00:10 +00:00
Marty Kraimer
0d51d99642 move DBDINSTALL from Makefile.Vx to Makefile.Host 1998-06-02 20:40:13 +00:00
Marty Kraimer
2c9cf0f8cd More4 changes for beta12 1998-06-02 18:28:29 +00:00
Janet B. Anderson
4b42bb7db9 *** empty log message *** 1998-06-02 04:16:37 +00:00
Janet B. Anderson
55c2134ef7 TESTPROD handled same as PROD except not installed. 1998-06-02 02:43:38 +00:00
Janet B. Anderson
71d5c73977 Simplified makefile. 1998-06-02 01:13:39 +00:00
Janet B. Anderson
83163779c1 Changed to TESTPROD method. 1998-06-02 01:12:40 +00:00
Janet B. Anderson
3258b789dc Added strip to if statements. Changed def of PROD_OBJS. 1998-06-02 01:09:40 +00:00
Marty Kraimer
92e7023880 Still working toward beta12 1998-06-01 19:42:30 +00:00
Marty Kraimer
06f35bf4db More changes for beta12 1998-06-01 19:41:52 +00:00
Marty Kraimer
47c5e55831 remove debugging print statement 1998-06-01 19:39:46 +00:00
Marty Kraimer
2ff9c8ca94 Allow \ as well as / for microcentric folks 1998-06-01 19:38:48 +00:00
Janet B. Anderson
b4f37d7eca Removed DIRECTORY_TARGETS. 1998-06-01 19:23:27 +00:00
Jeff Hill
10551ddcb8 fixed mv167 always built problem 1998-05-29 20:39:37 +00:00
Jeff Hill
a5a8b8d263 added additional libs for non-dll build 1998-05-29 20:35:18 +00:00
Jeff Hill
4d8587a382 fixed non-dll build 1998-05-29 20:34:19 +00:00
Jeff Hill
f30571ed6d made hashing routine portable 1998-05-29 20:22:44 +00:00
Jeff Hill
8f2a7b538c use epicsAssert.h and proper form of include 1998-05-29 20:20:28 +00:00
Jeff Hill
ec3df62672 use new sock ioctl() typedef 1998-05-29 20:19:11 +00:00
Jeff Hill
3ccf720f96 fixed for non-dll build under win32 1998-05-29 20:17:39 +00:00
Marty Kraimer
f844b2c5af remove unused variable 1998-05-29 20:17:25 +00:00
Marty Kraimer
ad68af66f9 add share 1998-05-29 20:17:13 +00:00
Marty Kraimer
1eb7d4f45b remove no longer used templates 1998-05-29 20:16:57 +00:00
Jeff Hill
67648998e6 corrected use of INADDR_ANY 1998-05-29 20:16:13 +00:00
Jeff Hill
eb3b8d8834 made assert() call portable to 64 bit arch 1998-05-29 20:13:42 +00:00
Jeff Hill
a2698c7828 use new sock ioctl() typedef 1998-05-29 20:08:21 +00:00
Jeff Hill
3437531581 allow non-shareable lib build under WIN32 1998-05-29 20:03:33 +00:00
Jeff Hill
7dae2cd25b added sock ioctl() typedef 1998-05-29 19:55:59 +00:00
Jeff Hill
134fe51682 added sock ioctl() typedef and the loop back address 1998-05-29 19:55:25 +00:00
Marty Kraimer
085895a0e3 CWD was NOT supposewd to be added 1998-05-29 19:31:01 +00:00
Marty Kraimer
e262507653 Still changing 1998-05-29 19:26:58 +00:00
Marty Kraimer
c94ddfe13f Still working of bessy changes 1998-05-29 18:34:53 +00:00
Marty Kraimer
4ebc71c349 moved to makeBaseApp 1998-05-29 18:33:33 +00:00
Marty Kraimer
8fe0f0dbef New versions from Tim Mooney 1998-05-29 18:31:33 +00:00
Marty Kraimer
258633fbaa make sure delay time is at least 1 second 1998-05-29 18:30:42 +00:00
Marty Kraimer
cce25a0f8a base.* moved to makeBaseApp; DBDINSTALL removed from Makefile.Vx 1998-05-29 18:29:29 +00:00
Marty Kraimer
c1cfc9f31d get rid of a warning message 1998-05-29 18:25:13 +00:00
Marty Kraimer
6cce35a1c2 Changes for new makeBaseApp 1998-05-29 18:23:45 +00:00
Jeff Hill
11681240b6 allow use of epicsAssert.h 1998-05-29 17:25:47 +00:00
Jeff Hill
b0c667db4b improved doc 1998-05-29 17:01:59 +00:00
Jeff Hill
47837552b0 moved app type jump table to exPV class for improved readability 1998-05-29 16:45:14 +00:00
Jeff Hill
5e83b24f01 allow CA to run systems w/o local interface query capabilities (ie cygwin32) 1998-05-29 00:03:21 +00:00
Marty Kraimer
96f5e6984d added 1998-05-28 19:52:48 +00:00
Marty Kraimer
d96af74f38 major changes for new makwBaseApp 1998-05-28 19:51:50 +00:00
Jeff Hill
13b7753cf4 more changes to allow traditional C 1998-05-21 21:53:20 +00:00
Janet B. Anderson
30d9bf6dfe Added rule change updates. 1998-05-21 18:38:34 +00:00
Janet B. Anderson
abb249e574 Allow c++ code to build using b19 1998-05-21 16:28:15 +00:00
Marty Kraimer
fce25316dd introduced a bug with last bug fixes 1998-05-21 15:55:29 +00:00
Janet B. Anderson
b6f4b661cd cygwin32 b19 updates and some other changes. 1998-05-21 15:33:59 +00:00
Marty Kraimer
c8308d51b7 more updates for changes since beta11 1998-05-20 21:04:46 +00:00
Marty Kraimer
d47b64445c cvtDoubleToString will display big numbers better 1998-05-20 21:01:38 +00:00
Marty Kraimer
a1c5820561 raised DB_CA_PRI to just higher than sequencer 1998-05-20 21:00:43 +00:00
Marty Kraimer
601de8c5e5 changed from semBCreate to semMCreate 1998-05-20 20:59:46 +00:00
Marty Kraimer
07362375e4 asLib_lex.l changed to allow more characters(like dbLoadxxx)
Fixed bug that could cause deadlock when an ASG field is changed at run time.
1998-05-20 20:59:13 +00:00
Janet B. Anderson
79e96213e0 Warning messages changes. 1998-05-13 19:51:37 +00:00
Janet B. Anderson
69fadca2bb Second installment of shared library changes. 1998-05-13 14:44:21 +00:00
Janet B. Anderson
a7045a039e Dependancy bug fix. 1998-05-13 14:42:22 +00:00
Jeff Hill
35f054e17f use READONLY for const so that pre-ANSI C extensions will compile 1998-05-12 18:33:38 +00:00
Jeff Hill
7a01eaff4c added missing call to freeListCleanup() 1998-05-08 00:20:56 +00:00
Jeff Hill
c71c933f98 improved doc 1998-05-06 21:52:09 +00:00
Jeff Hill
467ad6a5a5 removed C++ loader from tornado 1998-05-06 21:51:07 +00:00
Jeff Hill
09f66ce08a updated for g++ 2.8.1 1998-05-06 21:40:02 +00:00
Jeff Hill
5452422689 eliminated use of printErrno() 1998-05-06 21:36:26 +00:00
Jeff Hill
9806688d97 eliminated use of printErrono() 1998-05-06 21:32:06 +00:00
Jeff Hill
51a907fbc6 improved doc 1998-05-06 21:28:18 +00:00
Jeff Hill
ccf7bf9ebc added changes from Steve Hunt 1998-05-06 18:32:21 +00:00
Jeff Hill
13133ba9c9 removed backslash which conuses cpp 1998-05-05 21:09:52 +00:00
Jeff Hill
7424bcfeda fixed warning 1998-05-05 21:08:49 +00:00
Jeff Hill
d65fce5b3f fixed doc 1998-05-05 21:06:20 +00:00
Jeff Hill
5dfa5ca37d rearranged to allow compilation by g++ 2.8.1 1998-05-05 18:06:58 +00:00
Jeff Hill
0fd0552bb7 cleaned up file format 1998-05-05 16:32:17 +00:00
Jeff Hill
e6888bdf2b fixed doc 1998-05-05 16:30:38 +00:00
Jeff Hill
2444ab3036 fixed warnings 1998-05-05 16:29:58 +00:00
Jeff Hill
4b1237cda7 timer duration flexibility 1998-05-05 16:25:02 +00:00
Jeff Hill
c9d031f75e Made the scan timer clean up the link in exPV to the timer
in case they change the scan timer to a one shot.
1998-05-05 16:14:19 +00:00
Jeff Hill
82974bbadb no need for special EPICS_CA_AUTO_CA_ADDR_LIST warning under win sock II 1998-05-05 16:11:38 +00:00
Jeff Hill
a6d64486d1 Use lock macros and task variable in ca_extra_event_labor() 1998-05-05 16:07:59 +00:00
Jeff Hill
6d545abe33 improved lock owner management 1998-05-05 16:05:41 +00:00
Jeff Hill
291146fd4e added lock count var 1998-05-05 16:04:19 +00:00
Jeff Hill
266a038484 use epicsAssert.h 1998-05-05 16:03:10 +00:00
Janet B. Anderson
525a506801 Changes from Mark Rivers. 1998-04-27 14:04:35 +00:00
Janet B. Anderson
15b6c1db6d port to MIPS target architecture from Nick Rees 1998-04-24 16:28:07 +00:00
Janet B. Anderson
1fc6f092bd Allow USR_LDFLAGS_<archclass> definitions. Added TARGETS to clean rule. 1998-04-23 21:18:32 +00:00
Janet B. Anderson
d6e1aed936 Allow LIBOBJS_<archclass> definitions. 1998-04-23 21:15:37 +00:00
Marty Kraimer
8dca7ebe56 make changes for Tim Mooney 1998-04-23 17:25:20 +00:00
Marty Kraimer
946c3c7886 make it a little more robust against ca problems 1998-04-23 17:22:58 +00:00
Janet B. Anderson
0a0b6d7880 Added compiler specific key words to set up shareable library (DLL) for WIN32 1998-04-23 14:03:55 +00:00
Janet B. Anderson
073c5a48ae Added compiler specific key words to set up shareable library (DLL) for WIN32 1998-04-23 13:56:10 +00:00
Jeff Hill
4d20d420f6 fixed overzelous chan check in ca_clear_channel() - when the PV is local under vxWorks 1998-04-23 01:04:05 +00:00
Jeff Hill
f0ed7be469 added ECA_BADCHID 1998-04-23 01:00:38 +00:00
Jeff Hill
ec619b727c fixed WIN32 dll build 1998-04-21 00:27:01 +00:00
Jeff Hill
e24a712347 made clientHostName virtual in casDGClient 1998-04-20 18:14:57 +00:00
Jeff Hill
bcf1d37465 better debug mesg 1998-04-20 18:11:01 +00:00
Jeff Hill
197b185351 fixed exception message for DG clients 1998-04-20 18:07:09 +00:00
Marty Kraimer
13345373bc make name fields 40 characters 1998-04-20 16:03:15 +00:00
Marty Kraimer
b5927401bc minor changes 1998-04-20 16:01:14 +00:00
Marty Kraimer
5f2780f773 new routine dbGetLinkDBFtype is now available. It returns the field type of a database link.
dbNotify was fixed to work correctly for putNotify as well as put.
 scanppl now accepts an argumeny rate. scanpel accepts an argument event_number
1998-04-20 16:00:19 +00:00
Marty Kraimer
41b32088a6 replace SEVCHK by checking return status 1998-04-20 15:41:28 +00:00
Janet B. Anderson
18184eb1ba Initial version of jeva rules and definitions. 1998-04-17 21:31:12 +00:00
Jeff Hill
e68a326277 fixed range problem in string to fp convert 1998-04-17 17:49:25 +00:00
Janet B. Anderson
69c5f8749c Initial version of shared library support 1998-04-16 22:39:10 +00:00
Jeff Hill
b5290a8f11 cosmetic 1998-04-16 21:23:10 +00:00
Jeff Hill
049944e51e convert to EPICS time stamp 1998-04-16 21:22:30 +00:00
Jeff Hill
33980c5cc3 fixed spelling in comment 1998-04-16 21:17:38 +00:00
Jeff Hill
1d4fae8d0a removed redundant solaris test 1998-04-16 21:16:35 +00:00
Jeff Hill
3b479b2028 allow copies of less than the number of elements returned 1998-04-16 21:16:09 +00:00
Jeff Hill
9be74199ab removed potential race condition 1998-04-16 21:12:55 +00:00
Janet B. Anderson
933bd23a67 Added definitions and rule changes for WIN95/NT resource files. 1998-04-16 19:06:28 +00:00
Jeff Hill
b40d56badf fixed the doc 1998-04-15 21:58:29 +00:00
Jeff Hill
8c495183cf fixed incomplete init problem 1998-04-15 21:53:02 +00:00
Jeff Hill
31ecd3c0db improved message 1998-04-15 21:52:33 +00:00
Jeff Hill
64a267df1a removed caRepeater.c from lib 1998-04-15 21:51:50 +00:00
Jeff Hill
601cbcfb0b added array as string test 1998-04-15 21:50:26 +00:00
Jeff Hill
3ec4a67b82 cosmetic 1998-04-15 00:04:05 +00:00
Jeff Hill
d496c9dee6 improved diagnostic 1998-04-14 23:51:10 +00:00
Janet B. Anderson
f0b0319778 Added test for INSTALL_LOCATION_APP. 1998-04-14 14:12:30 +00:00
Janet B. Anderson
18c023cc9c Added test for INSTALL_LOCATION_BASE. 1998-04-14 14:11:45 +00:00
Janet B. Anderson
a08022db51 Fixed wildcard definition. 1998-04-14 14:08:59 +00:00
Jeff Hill
bd388eb50e code around ms sizeof() bug V5.0 1998-04-14 00:51:33 +00:00
Jeff Hill
8964b27ee1 cosmetic 1998-04-14 00:50:00 +00:00
Janet B. Anderson
3006dd8d9f Added hkbaja47. 1998-04-13 20:22:00 +00:00
Janet B. Anderson
d4dbaec3c5 Initial version. 1998-04-13 19:55:07 +00:00
Jeff Hill
52712bf7b7 fixed task variable problem 1998-04-13 19:14:36 +00:00
Jeff Hill
9febbc8247 fixed really bad bug when clients use PV name with .xxxx in it 1998-04-10 23:15:40 +00:00
Jeff Hill
363115921d added missing byte swap and fixed comment 1998-04-10 23:14:54 +00:00
Jeff Hill
fbba753e9e fixed byte swap problems, and use default port if server tool returns PV IP addr, but no port 1998-04-10 23:13:14 +00:00
Jeff Hill
287f2777a3 cosmetic 1998-04-10 23:11:10 +00:00
Jeff Hill
ec2732b058 fixed solaris architecture specific problem where xxx>>32 was ignored 1998-04-10 23:07:33 +00:00
Jeff Hill
e0944b7e39 link with user32 lib under WIN32 1998-04-10 23:00:57 +00:00
Jeff Hill
b5f7ea85b4 added addl comments 1998-04-10 22:59:37 +00:00
Marty Kraimer
9e10969c81 add LOGNAME when looking for user 1998-04-03 16:08:19 +00:00
Janet B. Anderson
f47bf2c9e0 Added default value for OBJ. 1998-03-31 22:25:04 +00:00
Janet B. Anderson
d11f4d1cdf Added files from src/devOpt. 1998-03-26 19:25:29 +00:00
Janet B. Anderson
2d4b230a83 Added C++ munching %.out rule. 1998-03-26 17:25:49 +00:00
Janet B. Anderson
1ba094353f Added NM and MUNCH definitions. 1998-03-26 17:21:38 +00:00
Janet B. Anderson
7f6d8e2822 DLL_LIBS definition and changed LINK.cc definition. 1998-03-26 17:19:01 +00:00
Janet B. Anderson
23a184261a Added share library flags and removed unused defines. 1998-03-26 17:14:11 +00:00
Marty Kraimer
7ac76c980c Remove duplicate definition 1998-03-26 15:02:53 +00:00
Jeff Hill
cea6ad4710 addr default test now uses INADDR_BROADCAST for 64 bit arch 1998-03-24 20:55:16 +00:00
Jeff Hill
0079f71bce fixed console title/correct repeater spawn/correct winsock II URL 1998-03-24 20:55:06 +00:00
Jeff Hill
3da421560b fixed console title 1998-03-24 00:32:23 +00:00
Jeff Hill
2e52bb9c1e fixed place where shareLib.h macros were not redifed 1998-03-23 20:14:42 +00:00
Janet B. Anderson
eb74e8d5cc Changed default to STRICT. 1998-03-19 21:26:49 +00:00
Janet B. Anderson
6a50e1835a Turned off warnings for host build. 1998-03-19 21:25:11 +00:00
Marty Kraimer
e91bd4e018 Getting ready for next release 1998-03-19 20:48:15 +00:00
Marty Kraimer
e4ea112d5a Get rid of some warning messages 1998-03-19 20:46:33 +00:00
Marty Kraimer
f76ae5019b These are for string calculation operations; Not ready yet to replace postfix
and calcPerform.
1998-03-19 20:45:50 +00:00
Marty Kraimer
83f6dc4f25 Fix for building DLLs 1998-03-19 20:44:29 +00:00
Marty Kraimer
97191cfb50 get rid of some warning messages 1998-03-19 20:43:47 +00:00
Marty Kraimer
b79a25c249 Add some includes to get rid of some warning messages 1998-03-19 20:42:47 +00:00
Marty Kraimer
eb254da63b Get rid of warning messages 1998-03-19 20:42:08 +00:00
Marty Kraimer
4486982ee6 Checked for Y2K complience. It turns out it was even ok when NTP time overflows
in 2036. However it was modified so that no overflows should occur while convert
ing between NTP, UNIX, and EPICS epochs.
In addition the conversion of fractions of a second to nanaoseconds was changed
Formatting was changed so that interesting code does not run off right side of page.
Hopefully EPICS base is now fine for Y2K.
In fact it should be fine (as far as time is converned) until the Unix epoch
overflows a 32 unsigned integer in the year 2106.
1998-03-19 20:41:16 +00:00
Marty Kraimer
54cd86e819 get rid of warnimng messages 1998-03-19 20:32:33 +00:00
Marty Kraimer
94d36a5f4f Add include for string.h 1998-03-19 20:32:00 +00:00
Marty Kraimer
f9aecdd7fb Get rid of warnimg messaage 1998-03-19 20:31:27 +00:00
Jeff Hill
2163b7e60e dont use Vis C++ key words under the Cygnus GNU environment 1998-03-19 00:04:32 +00:00
Jeff Hill
49f9a3b462 use _MSC_VER to turn of vis C++ specific warning 1998-03-18 23:59:28 +00:00
Janet B. Anderson
f67a5108d7 Changed command definitions. 1998-03-18 19:25:01 +00:00
Janet B. Anderson
0fabbd1e33 Removed continuation from shell command for WinNT builds. 1998-03-18 18:44:40 +00:00
Janet B. Anderson
2e7e64db55 Makefile bug fix. 1998-03-17 19:22:37 +00:00
Janet B. Anderson
00c0d5218a Added USR_LIBS_$(ARCH_CLASS) definitions. 1998-03-16 22:38:56 +00:00
Marty Kraimer
8bad8eebff Did not work properly if DOL is a CA link that fails 1998-03-16 17:08:39 +00:00
Marty Kraimer
d462fea5fb Get rid of error messages 1998-03-16 17:07:54 +00:00
Marty Kraimer
844d2d8293 Get rid of size from DBF_NOACCESS fields 1998-03-16 17:02:29 +00:00
Marty Kraimer
2fe41fa67f include string.h 1998-03-16 17:01:27 +00:00
Marty Kraimer
ae3538ae43 For 3.13.0.beta11 1998-03-16 16:49:05 +00:00
Marty Kraimer
011804166b Changes from tech-talk messages 1998-03-16 16:44:47 +00:00
Marty Kraimer
ae6110465b Remove all non-supported stuff 1998-03-16 16:37:25 +00:00
Marty Kraimer
9a938f9626 added field attributes 1998-03-16 16:31:22 +00:00
Marty Kraimer
e4f000b3cf Dont remember what was fixed. 1998-03-16 16:29:36 +00:00
Marty Kraimer
f91fa643ba Move private stuff to another fil;e 1998-03-16 16:25:52 +00:00
Marty Kraimer
e795e4edbd make sure iocLog is started 1998-03-16 16:25:20 +00:00
Marty Kraimer
713d7fd361 get rid of warning message 1998-03-16 16:24:29 +00:00
Marty Kraimer
c6304512eb Move private definitions to postfixPvt.h 1998-03-16 16:23:42 +00:00
Marty Kraimer
e0144c5776 add include for string.h 1998-03-16 16:22:35 +00:00
Marty Kraimer
9cb14b5f13 add support for field attributes 1998-03-16 16:21:50 +00:00
Marty Kraimer
c62b683f13 Add DBR_CLASS_NAME 1998-03-16 16:21:05 +00:00
Marty Kraimer
b9dc729011 Allow dbhcr to accept filename argument 1998-03-16 16:20:16 +00:00
Marty Kraimer
769c340d64 Add DBR_STSACK_STRING and DBR_CALSS 1998-03-16 16:10:54 +00:00
Marty Kraimer
55a206cb47 Get rid of size field on DBF_NOACCESS fields 1998-03-16 16:09:35 +00:00
Marty Kraimer
2a075c0353 Add cvrt_string for DBR_CLASS 1998-03-16 15:54:39 +00:00
Marty Kraimer
fac1096850 add include for string.h 1998-03-16 15:52:10 +00:00
Marty Kraimer
7385472689 Fix problems that could cause crash when asInit called after iocInit
Add macro substitution capability
1998-03-16 15:51:10 +00:00
Jeff Hill
c301129071 added enums stub 1998-03-12 21:14:15 +00:00
Jeff Hill
67679b3ac4 use no bitfield option only on the 68k 1998-03-12 20:45:39 +00:00
Jeff Hill
82ec39512d fixed string defs 1998-03-12 20:43:35 +00:00
Jeff Hill
5276e19d59 fixed problem where 3.13.beta11 unable to connect to 3.11 with correct native type 1998-03-12 20:39:11 +00:00
Janet B. Anderson
7fb514e73e The call make is no longer printed. 1998-03-12 18:37:17 +00:00
Janet B. Anderson
f546858d47 Fixed problem - Warning: missing newline at end of file 1998-03-12 18:34:55 +00:00
Janet B. Anderson
58e3e8cc9d Removed . in path requirement. 1998-03-12 18:33:23 +00:00
Janet B. Anderson
329445119c Config changes for extensions and config simplification. 1998-03-12 04:54:55 +00:00
Janet B. Anderson
29a0eb0210 Added some comments. 1998-03-11 14:29:43 +00:00
Janet B. Anderson
17f92394b6 Added INSTALL_BIN definition. 1998-03-11 14:27:23 +00:00
Janet B. Anderson
c1a37d518a Added BUILD_TYPE definition to output Makefile. 1998-03-11 14:22:37 +00:00
Janet B. Anderson
2faf339f99 Added missing newline at end of file. 1998-03-11 14:19:35 +00:00
rwright
267247a5ce Avoided compilation warnings under Tornado 1998-03-11 01:56:15 +00:00
Jeff Hill
986d451fab link.c => link,cc 1998-03-03 00:16:30 +00:00
Jeff Hill
5bd1407214 improved doc 1998-03-02 22:17:40 +00:00
Jeff Hill
ae1a1dc7b8 improved doc 1998-03-02 22:06:15 +00:00
Jeff Hill
41655d995b installed 1998-02-27 02:59:01 +00:00
Jeff Hill
87bad70571 converted to UNIX ascii file format 1998-02-27 02:49:24 +00:00
Jeff Hill
53ff524e67 installed 1998-02-27 02:47:44 +00:00
Jeff Hill
7c6af324ec use winsock II 1998-02-27 02:33:49 +00:00
Jeff Hill
bc48b09009 install osiFileName.h 1998-02-27 02:32:40 +00:00
Jeff Hill
3dc326d89a fixed lib build before dll on WIN32 1998-02-27 02:31:21 +00:00
Jeff Hill
fa690a7776 add win32 specific libs 1998-02-27 01:36:34 +00:00
Jeff Hill
6baa5568a8 include postfix.h 1998-02-27 01:36:01 +00:00
Jeff Hill
27c4d0574f cleaned up the DLL symbol export 1998-02-27 01:34:15 +00:00
Jeff Hill
ee11ef0c1b updated for winsock II 1998-02-27 01:31:39 +00:00
Jeff Hill
82a24516fb export postfix.h and added win32 spec libs 1998-02-27 01:29:06 +00:00
Jeff Hill
5fea5bc173 moved postfix and calcPerform to postfix.h 1998-02-27 01:28:08 +00:00
Jeff Hill
c67f0cdfde include postfix.h 1998-02-27 01:14:55 +00:00
Jeff Hill
5874c2d808 use os independent path separator 1998-02-27 01:13:03 +00:00
Jeff Hill
101ae89e5f added win32 specific libs 1998-02-27 01:10:28 +00:00
Jeff Hill
5e4780164f removed DLL_LIBS and added WIN32 specific libs 1998-02-27 01:06:30 +00:00
Jeff Hill
9fb8f58040 integrated Timossi's win sock II changes 1998-02-27 01:05:04 +00:00
Jeff Hill
147ccecd00 fixed benign WIN32 message from overwritten errno 1998-02-27 01:04:03 +00:00
Jeff Hill
98cd03c75a no DLL_LIBS and added win32 specific libs 1998-02-27 01:02:43 +00:00
Jeff Hill
a50d7ad1da included postfix.h 1998-02-27 01:01:46 +00:00
Ken Evans
2a53e1fcfe Added an explicit include of tsDefs.h before cadef.h to avoid the
functions in it being declared as export and also to avoid its
allocating space when it should be declaring a reference.
1998-02-20 21:52:21 +00:00
Ken Evans
66aa22f9eb Added epicsShareAPIV for variable args functions. These cannot be
_stdcall, so the current implementation was not working.
epicsShareAPIV should be used for functions with both ... and va_list
type arguments.
1998-02-20 21:48:33 +00:00
Ken Evans
88d36c7db3 Made a large number of changes to epicsShareThings in libCom routines
to get imports and exports straight on WIN32.  Not everything is fixed
at this time.
1998-02-20 21:45:20 +00:00
Jeff Hill
cb3be0edd7 removed osiFileName.h 1998-02-20 01:24:56 +00:00
Marty Kraimer
d7e1d16536 Get rid of nextFieldSubr;
dont change user args in tsTextxxx
1998-02-19 15:00:14 +00:00
Marty Kraimer
b3f706af3b Get rid of some of the warning messages 1998-02-19 14:57:15 +00:00
Jeff Hill
9a49eab8f8 fixed gnu warning 1998-02-18 22:53:13 +00:00
Jeff Hill
2bddbfeedc fixed to run on both vis C++ 5.0 and g++ 1998-02-18 22:52:22 +00:00
Jeff Hill
6b1be2ea5c fixed warning 1998-02-18 22:46:47 +00:00
Jeff Hill
45291dbb90 improved message 1998-02-18 22:46:25 +00:00
Jeff Hill
828ac6ef19 removed osi file name stuff 1998-02-18 22:39:52 +00:00
Janet B. Anderson
7434d3315d Removed buggy TCLINDEX install rule. 1998-02-10 17:03:05 +00:00
Jeff Hill
b1051b3c53 backed prev revision 1998-02-06 03:15:48 +00:00
Jeff Hill
a6cc071443 use os independent path seperator 1998-02-06 01:55:54 +00:00
Jeff Hill
91006b6f79 use os indep path sep 1998-02-06 01:51:26 +00:00
Jeff Hill
7a5abd5635 doc 1998-02-06 01:27:35 +00:00
Jeff Hill
98d91076aa more comments 1998-02-06 01:14:16 +00:00
Jeff Hill
f923e83ab5 deleted extra include of assert.h 1998-02-06 00:51:42 +00:00
Jeff Hill
08c394a384 use ETHERNET_MAX_UDP for the recv buffer 1998-02-06 00:36:00 +00:00
Jeff Hill
76d0ec6e75 nit 1998-02-06 00:35:06 +00:00
Jeff Hill
c4bc7b07c4 some BSPs dont implement taskIdVerify() correctly
so use taskNameToId status instead
1998-02-06 00:33:46 +00:00
Jeff Hill
9b5fbcae9e comment 1998-02-06 00:29:34 +00:00
Jeff Hill
381c7db9bb added file name defs headers 1998-02-06 00:19:17 +00:00
Jeff Hill
9edc539d43 added osi file name defs 1998-02-06 00:14:53 +00:00
Jeff Hill
294a1fb43d added osi file name headers 1998-02-06 00:10:15 +00:00
Jeff Hill
5aa2aee0ea file name headers 1998-02-06 00:09:37 +00:00
Jeff Hill
3dd76200fc added errno macros 1998-02-06 00:07:37 +00:00
Jeff Hill
2bcd1ad238 use SEM_INVERSION_SAFE 1998-02-06 00:02:38 +00:00
Jeff Hill
f9aae0438f global update in test directory 1998-02-05 23:29:18 +00:00
Jeff Hill
a4754b7774 fixed hp sompiler warnings 1998-02-05 23:28:21 +00:00
Jeff Hill
b08073064e workaround vis c++ 5.0 bug 1998-02-05 23:25:19 +00:00
Jeff Hill
2a491c9c63 dont install tsBTree.h 1998-02-05 23:23:19 +00:00
Jeff Hill
c0cdc975d9 fixed truncate return status logic error
now uses macros from osiSock.h
1998-02-05 23:16:35 +00:00
Jeff Hill
8af4189f4a dont use LANL address 1998-02-05 23:13:32 +00:00
Jeff Hill
ff8445b094 nit 1998-02-05 23:12:59 +00:00
Jeff Hill
59f6f20366 use osiSock macros 1998-02-05 23:12:01 +00:00
Jeff Hill
f7aff12384 use ethernet MAX frame size 1998-02-05 23:09:58 +00:00
Jeff Hill
1ea5f73986 moved inline destructor here 1998-02-05 23:06:36 +00:00
Jeff Hill
edb0d0a879 removed static members 1998-02-05 23:05:27 +00:00
Jeff Hill
1de8dc42f6 hp comiler workaround changes 1998-02-05 23:03:39 +00:00
Jeff Hill
b891975e81 caServerOS destructor is now virtual 1998-02-05 23:01:25 +00:00
Jeff Hill
e472b2de05 removed assignement operator 1998-02-05 23:00:20 +00:00
Jeff Hill
41d8e66609 cosmetic 1998-02-05 22:56:12 +00:00
Jeff Hill
54835f8b55 moved inline func here 1998-02-05 22:54:19 +00:00
Jeff Hill
a6bda8fe0c removed trash 1998-02-05 22:52:46 +00:00
Jeff Hill
33435fb5d1 include resourceLib.h 1998-02-05 22:51:34 +00:00
Jeff Hill
e9b961bf28 added caNetAddr assignment operator 1998-02-05 22:50:43 +00:00
Jeff Hill
59c65644df workaround vis C++ 5.0 bug 1998-02-05 22:47:46 +00:00
Jeff Hill
1ee791571f removed many symbols 1998-02-05 22:46:01 +00:00
Jeff Hill
d477a67750 attach to winsock I also 1998-02-05 22:45:21 +00:00
Jeff Hill
45f6f2da71 use inversion safe mutex 1998-02-05 22:39:46 +00:00
Jeff Hill
7eb0757790 added starlet.h (SLAC's request) 1998-02-05 22:36:01 +00:00
Jeff Hill
8fb78fd187 dont delete client if send returns ECONNREFUSED 1998-02-05 22:34:33 +00:00
Jeff Hill
459e9fa1c1 added defined(_X86_) for gnu C 1998-02-05 22:31:32 +00:00
Jeff Hill
c3503f6541 fixed dll export problems 1998-02-05 22:30:34 +00:00
Jeff Hill
173f39b6fa use osiSock macros 1998-02-05 22:29:42 +00:00
Jeff Hill
ee812ff899 use SOCKERRSTR macro 1998-02-05 22:06:03 +00:00
Jeff Hill
6957237fa1 fixed pre-ansi compiler no macros problem 1998-02-05 22:05:05 +00:00
Jeff Hill
66e5942b5c added ETHERNET_MAX_UDP 1998-02-05 22:04:08 +00:00
Jeff Hill
5bf27c9d79 use FD_SETSIZE macro 1998-02-05 22:01:16 +00:00
Jeff Hill
79375295b8 fixed dll export 1998-02-05 21:58:41 +00:00
Jeff Hill
8c968bb0fa added no pend event in event call back test 1998-02-05 21:56:46 +00:00
Jeff Hill
1c805b073c detect attempts by user to clear bogus channel 1998-02-05 21:55:49 +00:00
Jeff Hill
39edab9046 cosmetic 1998-02-05 21:29:14 +00:00
Jeff Hill
e8856b480e add ellVerify() 1998-02-05 21:28:29 +00:00
Jeff Hill
104c5960ab removed questionable inline 1998-02-05 21:12:10 +00:00
Jeff Hill
2fac2b68b1 use SOCK error defs and use priority inheritance mutex 1998-02-05 21:08:52 +00:00
Jeff Hill
7a560d4795 added the capability to define subsystem code in
the subsystem header file
1998-02-05 21:03:06 +00:00
rwright
cba017d4c9 William Lupton's fix for i=0,j=0 sequencer bug 1998-02-04 22:53:03 +00:00
Janet B. Anderson
887059f618 Added the tcl lib rules and definitions. 1998-02-04 16:34:11 +00:00
Janet B. Anderson
1507c97f34 Added tcl lib rules and definitions. 1998-02-04 16:33:19 +00:00
Ken Evans
935d7f3146 Added more information to the comments. 1998-02-03 17:28:20 +00:00
Ken Evans
da17a3cf81 Modified things related to epicsExportSharedSymbols so the imports and
exports are in the right places.
1998-02-03 17:26:26 +00:00
Janet B. Anderson
b06272fbf4 Added CP definition. 1998-01-23 17:31:33 +00:00
Marty Kraimer
55210b7a7f Forgot mbbiDirectSoft 1998-01-22 15:24:18 +00:00
Marty Kraimer
df1d467188 get rid of some warning messages 1998-01-22 14:48:43 +00:00
Marty Kraimer
94b3a7f5f9 changes for devSymb 1998-01-21 21:11:12 +00:00
Marty Kraimer
d99f23e050 INC all header files 1998-01-21 21:07:02 +00:00
Marty Kraimer
77ca6d0df1 include old device definitions 1998-01-21 21:03:46 +00:00
Marty Kraimer
f3eb906bf3 restructure; new Symb support 1998-01-21 20:48:12 +00:00
Marty Kraimer
fe2d8d5564 fixed include statements 1998-01-21 15:52:16 +00:00
Marty Kraimer
6b43dc7a84 Fix include statements 1998-01-21 15:41:50 +00:00
Marty Kraimer
909c0bb190 Add field aoRecord; Use generated menu values; fix includes 1998-01-21 15:40:37 +00:00
Marty Kraimer
a2033259b3 remove db_post_events for calc change (dbPut does it)
fix include statements
1998-01-21 15:38:43 +00:00
Marty Kraimer
f51f395d82 Add new conversion field EOFF
Fix include statements
1998-01-21 15:36:48 +00:00
Marty Kraimer
c57c4b562a The include path now supports the unix convention that an empty directory name means the current directory.
The lex grammer was changed so that it for quoted strings can contain any ascii character except a quote.
1998-01-21 15:15:50 +00:00
Marty Kraimer
8df9f0bbb8 Fix usage messages 1998-01-21 15:03:31 +00:00
Marty Kraimer
6257cdd29c allow quoted strings to contain any ascii character 1998-01-21 15:02:43 +00:00
Marty Kraimer
c618ea173e Allow quoted strings to contain any ascii character 1998-01-21 15:01:57 +00:00
Marty Kraimer
276d661ce4 cleanup includes 1998-01-20 22:09:00 +00:00
Marty Kraimer
75be8d5de3 New major version 1998-01-20 22:07:32 +00:00
Marty Kraimer
0f7623ad77 Doesnt belong in base 1998-01-20 21:59:02 +00:00
Marty Kraimer
fe4649e044 Changed Scl to Slc wherever this occured.
Added support for signed 16 bit analog values.
1998-01-20 21:58:19 +00:00
Marty Kraimer
06325e34bb remove devMpc.c 1998-01-20 21:53:56 +00:00
Marty Kraimer
bec2b11d04 fix inclues 1998-01-20 21:53:05 +00:00
Marty Kraimer
2f3a295d5d add includes for error messages 1998-01-20 21:51:58 +00:00
Marty Kraimer
7563f566ca add steppermotor.h 1998-01-20 21:50:42 +00:00
Marty Kraimer
529703ef54 added the arch_stack_factor for 64 bit architectures; changes for errlog 1998-01-20 21:49:55 +00:00
Marty Kraimer
5415d39249 New errlog facility. Replaces old epicsPrintf stuff 1998-01-20 21:42:46 +00:00
Marty Kraimer
30d8a2d528 Replaced by extension product msi 1998-01-20 21:40:40 +00:00
Marty Kraimer
9c8779c150 Changes for 64 bit architectures 1998-01-20 21:39:28 +00:00
Marty Kraimer
10bad1d091 Make it get initialized the first time any routine is called 1998-01-20 21:38:28 +00:00
Marty Kraimer
d892d7cba5 add dbDefs.h 1998-01-20 21:36:51 +00:00
Marty Kraimer
290eeda605 Obsolete: See errlog code 1998-01-20 21:35:52 +00:00
Marty Kraimer
47477269bf created for 64 bit architecture support 1998-01-20 21:35:08 +00:00
Marty Kraimer
34f56a6c66 Change for new errlog implementation 1998-01-20 21:29:13 +00:00
Marty Kraimer
c773d20bca Adding files 1998-01-20 21:21:53 +00:00
Marty Kraimer
730f0e7b2e add taskwd call to seqAuxTask 1998-01-20 21:20:57 +00:00
Marty Kraimer
8a81103901 Clean up and get rid of warninmg messages 1998-01-20 21:16:29 +00:00
Marty Kraimer
4bfe2bf8ee Fix include statements 1998-01-20 16:20:07 +00:00
Marty Kraimer
fa408da672 The no alarm string changed from "" to "NO_ALARM" 1998-01-20 16:19:04 +00:00
Marty Kraimer
af15099122 errMsg => errPrintf; changes for iocHook 1998-01-20 16:17:26 +00:00
Marty Kraimer
126c9da8ba initHooks MUST be product or else old code will break 1998-01-20 16:13:08 +00:00
Marty Kraimer
ef53dd7069 initHooks is now library function 1998-01-20 16:10:21 +00:00
Marty Kraimer
9a6af026a5 This is version described in 3.13beta11 App Dev Guide 1998-01-20 16:09:26 +00:00
Marty Kraimer
b736f540cf Add DBE_LOG to DBE_VALUE 1998-01-20 16:00:58 +00:00
Marty Kraimer
3febbc8791 Fix include statements 1998-01-20 16:00:22 +00:00
Marty Kraimer
899fe2ff7b devMpc removed 1998-01-20 15:59:23 +00:00
Marty Kraimer
07ab4e3d5d 1) Soft raw device support is uncommenmted
2) Device support for the Allen Bradley SLC is changed.
1998-01-20 15:57:59 +00:00
Marty Kraimer
18000fb9f6 1) Fixed bug that caused asRegisterClientCallback to fail on UNIX
2) asLib_lex.l changed to allow more characters(like dbLoadxxx)
1998-01-20 15:18:52 +00:00
Janet B. Anderson
dc274bb8f6 Changed perl to $(PERL). 1997-12-18 22:07:04 +00:00
Janet B. Anderson
35096c4d5a Linux specific changes to solaris file. 1997-12-18 19:42:19 +00:00
Janet B. Anderson
eda286d572 Linux change. 1997-12-18 19:03:18 +00:00
Janet B. Anderson
6fbbef45d1 Initial version copied from os/Solaris. 1997-12-18 18:55:00 +00:00
Marty Kraimer
68fb4bbf96 make first line #!/usr/bin/perl 1997-12-08 13:56:18 +00:00
Janet B. Anderson
024544a7fd Added target frc5ce and sparc files. 1997-12-04 18:44:08 +00:00
Johnny Tang
d677d61d81 take out the extra event post 1997-11-25 20:47:52 +00:00
Janet B. Anderson
5008542e01 Changed local variables val,hyst,lalm,hihi,high,low,lolo to long. 1997-11-24 19:17:00 +00:00
Janet B. Anderson
5d1fb04d46 Added html to uninstall directories. 1997-11-19 21:52:07 +00:00
Janet B. Anderson
44918762d5 User flags changed to += 1997-11-19 21:46:51 +00:00
Janet B. Anderson
68522430b3 Host build now installs dbd files. 1997-11-19 21:45:59 +00:00
Janet B. Anderson
457851b7ae Changes for tornado yes/no. 1997-11-19 21:41:34 +00:00
Janet B. Anderson
ff122e6a06 Appdir definition now refers to TOP 1997-10-23 15:20:39 +00:00
Janet B. Anderson
3b4bde6b7f Added rules and definintions for installing html files. 1997-10-21 21:49:08 +00:00
Janet B. Anderson
eb4b867ea4 Corrected misspelling. 1997-10-21 21:21:02 +00:00
Janet B. Anderson
bc8ea3d567 Added makeBaseApp directory. 1997-10-21 21:20:08 +00:00
Janet B. Anderson
d450236074 Modified user definition for WIN95. 1997-10-21 21:18:19 +00:00
Janet B. Anderson
499b4271cf New definition for APPDIR. 1997-10-21 14:38:21 +00:00
Marty Kraimer
f2518ff9d4 When taking first entry from lcl_buff_list did not check for null 1997-10-16 12:55:15 +00:00
Marty Kraimer
ed18159b0a Moving makeBaseApp to separate directory 1997-10-15 17:47:19 +00:00
Marty Kraimer
204c8b9fb3 Comment out Jeff's change 1997-10-15 15:31:08 +00:00
Marty Kraimer
6c32c9833f Add rule to make build faster 1997-10-14 14:21:10 +00:00
Marty Kraimer
5031b294b2 Get rid of check for home directory 1997-10-14 13:59:53 +00:00
Marty Kraimer
d0a8812231 1) Fixed bug that caused asRegisterClientCallback to fail on UNIX
2) asLib_lex.l changed to allow more characters(like dbLoadxxx)
1997-10-14 13:40:39 +00:00
Marty Kraimer
61f1e8b12f still original 1997-10-10 14:22:14 +00:00
Marty Kraimer
2d8de8ae0f Support for vxWorks 5.3 1997-10-10 13:52:48 +00:00
Marty Kraimer
0514607df6 Change for installing templates 1997-10-10 13:52:15 +00:00
Marty Kraimer
7096b5d0c3 Createing templates for makeBaseApp 1997-10-10 13:44:04 +00:00
Marty Kraimer
e655b37cbd new version using templates 1997-10-10 13:39:28 +00:00
Janet B. Anderson
1601030b7d Changed spaces to tabs in capfast rules. 1997-09-23 16:24:49 +00:00
Janet B. Anderson
0aa8e9fee0 Added missing trailing @ in the adl2dl rules. 1997-09-17 19:22:22 +00:00
Janet B. Anderson
3786da9b05 Removed dependancies from implicit rule lines. Added .C implicit rules. 1997-09-15 19:45:47 +00:00
Janet B. Anderson
14e196ad40 Backed out accidental commit. 1997-09-15 19:27:12 +00:00
Janet B. Anderson
41bcd2cff5 Added capfast changes from Rozelle. 1997-09-15 19:16:46 +00:00
Janet B. Anderson
425aa806bb Gnu changes from Rozelle. 1997-09-15 19:16:44 +00:00
Jeff Hill
f1e6a5e07c dont include stdarg.h in traditional C code 1997-08-05 19:52:57 +00:00
Jeff Hill
d69f6169ae cosmetic changes 1997-08-05 00:53:38 +00:00
Jeff Hill
96d696085a changed some inline func to normal func 1997-08-05 00:53:02 +00:00
Jeff Hill
86305c8680 cleaned up locking 1997-08-05 00:51:40 +00:00
Jeff Hill
8b97305072 fixed problems in aitString and the conversion matrix 1997-08-05 00:51:16 +00:00
Jeff Hill
1e8abfda04 fixed warnings 1997-08-05 00:47:27 +00:00
Jeff Hill
8944d5ac55 dont depend on TMP env var under WIN32 1997-08-05 00:44:01 +00:00
Jeff Hill
0ecc5418bd fixed warning 1997-08-05 00:43:19 +00:00
Jeff Hill
86f23791fe increased min and also max beacon period 1997-08-05 00:40:59 +00:00
Jeff Hill
ecdd53438e installed 1997-08-05 00:37:50 +00:00
Jeff Hill
d024459140 removed warnings 1997-08-05 00:37:12 +00:00
Jeff Hill
42e4a0f668 added aToIPAddr 1997-08-05 00:31:45 +00:00
Jeff Hill
4f77b1966a include shareLib.h 1997-08-05 00:30:42 +00:00
Jeff Hill
49eff8ad41 check both sides of the fd range 1997-08-05 00:29:45 +00:00
Jeff Hill
38e3cd15a3 cosmetic changes 1997-08-05 00:28:42 +00:00
Jeff Hill
4563d3e0a2 win32 keyword change 1997-08-05 00:25:39 +00:00
Jeff Hill
4022ae6480 win32 keyword changed 1997-08-05 00:23:05 +00:00
Jeff Hill
fda59fe268 added beacon anomaly flag init/allow ip 255.255.255.255 1997-08-04 23:37:20 +00:00
Jeff Hill
9c2e2a9d9b use correct data type for port 1997-08-04 23:31:24 +00:00
Jeff Hill
2e9dd7b93b detect IOC reboot faster that EPICS_CA_CONN_TMO 1997-08-04 23:30:53 +00:00
Jeff Hill
b832b8822e fixed warning 1997-08-04 23:01:36 +00:00
Jeff Hill
28f9bcce32 use correct data type for an IP port 1997-08-04 22:55:42 +00:00
Jeff Hill
4d6068e62b mutex clean up 1997-08-04 22:54:28 +00:00
Jeff Hill
24ecb97b5b changed AR args for WIN32 1997-08-04 22:39:28 +00:00
Jeff Hill
a97f9903eb removed := from example 1997-08-04 22:38:53 +00:00
Jeff Hill
2a90bef451 installed 1997-08-04 22:36:39 +00:00
Jeff Hill
628f555a55 include CONFIG.UNIX/allow AR macro on win32 1997-08-04 22:36:02 +00:00
Jeff Hill
29ba0655a9 cleaned up doc 1997-08-04 22:26:50 +00:00
Janet B. Anderson
0ef23d7ff7 Fixed buggy edf rule, added install from epics base comment - lange 1997-07-30 16:51:09 +00:00
Janet B. Anderson
4ffa56b43f Fixed help comments - lange 1997-07-30 16:49:05 +00:00
Janet B. Anderson
972707174a Comments added. 1997-07-30 15:21:53 +00:00
Janet B. Anderson
993c285456 Changed cyclic ftp location. 1997-07-24 20:12:35 +00:00
Janet B. Anderson
f55d861f40 Added aten2 function pre Nick Rees. 1997-07-23 15:06:43 +00:00
Janet B. Anderson
1166ced8dd Modified stt rules per Nick Rees. 1997-07-23 14:58:47 +00:00
Janet B. Anderson
fa08892c57 Added *bat files. 1997-07-23 14:46:55 +00:00
Marty Kraimer
f9f501eaae Add new functionality 1997-07-17 19:28:37 +00:00
Janet B. Anderson
818ca7a335 Changed def for CCC_TEMPL_INST_FLAG per M. Rivers 1997-07-15 15:53:44 +00:00
Janet B. Anderson
ec662b2888 Remove whitespace in ARCH definition. 1997-07-14 20:20:47 +00:00
Janet B. Anderson
18a36406b4 epics_R3_13_0_beta11 1997-07-14 14:04:12 +00:00
Marty Kraimer
a983d85e4d Latest version from Ned Arnold 1997-07-11 12:48:05 +00:00
Marty Kraimer
eea6343b41 Change for fix to postfix and calcPerform 1997-07-11 12:21:28 +00:00
Marty Kraimer
ed3cefacef Change so that 0 is INVALID_ 1997-07-11 12:20:35 +00:00
Marty Kraimer
b9f80350e0 Suppress warning message. Add BT to report 1997-07-11 12:19:40 +00:00
Jeff Hill
8dafadc276 improved CPU consumption by select() under vxWorks 1997-07-10 19:33:20 +00:00
Jeff Hill
9879337178 const=>READONLY 1997-07-10 19:28:36 +00:00
Janet B. Anderson
0e12d558f8 Changed Tar to tar in filename. 1997-07-01 18:32:16 +00:00
Janet B. Anderson
51ea2db4bc Changed Tar to tar in output filename. 1997-07-01 18:29:17 +00:00
Jeff Hill
495a981971 installed 1997-06-30 23:47:02 +00:00
Jeff Hill
f5733cd3af use %p for pointers 1997-06-30 23:40:50 +00:00
Jeff Hill
5101067bcc use %p with pointers 1997-06-30 22:54:34 +00:00
Janet B. Anderson
5e90bc7d9c Added struct ifafilt line which eliminates dozens of warnings. 1997-06-30 18:31:43 +00:00
Janet B. Anderson
773ed271e1 Removed alpha specific lines which are no longer needed. 1997-06-30 18:29:45 +00:00
Jeff Hill
402695bd97 rolled back to ms vis C++ 4.0 1997-06-30 18:17:56 +00:00
Jeff Hill
0e89c83296 guess at DEC C++ compiler bug workaround 1997-06-30 18:16:13 +00:00
Marty Kraimer
10c615951a include intLib.h 1997-06-30 14:49:51 +00:00
Janet B. Anderson
49da0a0217 Fixed permissions problem. 1997-06-30 14:36:09 +00:00
Marty Kraimer
6f4962853b Per Ned's request 1997-06-30 14:26:24 +00:00
Marty Kraimer
00da316456 Allow null init subroutine 1997-06-30 13:54:34 +00:00
Marty Kraimer
cd20d8d662 scanOnce: Protect rngBufPut with intLock 1997-06-30 13:35:21 +00:00
Marty Kraimer
9ae05dc580 dbl: Must not close if stdout 1997-06-30 12:55:36 +00:00
Marty Kraimer
bdc4e828ef GPIBEFASTO: Last fix was TOO strict 1997-06-30 12:53:06 +00:00
Jeff Hill
f95b8bf7d9 fixed gnu compiler incompatibility 1997-06-27 23:50:54 +00:00
Janet B. Anderson
cd6204a63d Added EPICS_* defs. 1997-06-26 13:45:23 +00:00
Marty Kraimer
9135cf7cce leave exactly as reported 1997-06-25 21:55:11 +00:00
Marty Kraimer
cd3e9a7baa fixed bug in ProcessCallback 1997-06-25 21:42:42 +00:00
Janet B. Anderson
32f895bde5 Changed to double colen rules and added comment. 1997-06-25 20:14:07 +00:00
Marty Kraimer
71617fdcf7 Fixed bug of null being passed to printf for %s 1997-06-25 18:34:23 +00:00
Marty Kraimer
f230abdb8e only if precision really bad for FLOAT,DOUBLE change it 1997-06-25 18:33:27 +00:00
Marty Kraimer
b8e27a117f add calcoutRecord 1997-06-25 18:31:15 +00:00
Marty Kraimer
7bcedb00c0 Increase stacj size for seqAux 1997-06-25 18:05:31 +00:00
Marty Kraimer
030ddafd68 It was use address 0 for a DBADDR 1997-06-25 18:04:21 +00:00
Marty Kraimer
e22074d616 Add filename arg to dbl 1997-06-25 18:03:11 +00:00
Marty Kraimer
50f65a1709 New rules file 1997-06-25 18:00:53 +00:00
Janet B. Anderson
7811995c84 Changed INSTALL_BIN to EPICS_BASE_HOST_BIN 1997-06-25 16:40:46 +00:00
Janet B. Anderson
579d974d9e Initial version. 1997-06-25 14:48:49 +00:00
Janet B. Anderson
0679667891 Made some R3.13 changes. 1997-06-25 14:12:06 +00:00
Janet B. Anderson
78e9f3592c Added ADL2DL definition from Nick Rees. 1997-06-25 14:09:40 +00:00
Janet B. Anderson
d840379e05 Added adl2dl rule and simplified mangen rules. 1997-06-25 14:03:57 +00:00
Jeff Hill
52c292f13a fixed warning 1997-06-25 06:47:47 +00:00
Jeff Hill
c8ec70de08 fixed comment 1997-06-25 06:47:15 +00:00
Jeff Hill
d5476089b1 fixed install outside base 1997-06-25 06:42:38 +00:00
Jeff Hill
3d1fdefe34 removed junk 1997-06-25 06:36:42 +00:00
Jeff Hill
43468a04d8 removed merge marks 1997-06-25 06:32:20 +00:00
Jeff Hill
b67fb3c48a fixed template inst problem 1997-06-25 06:29:18 +00:00
Jeff Hill
017ba5731f added missing prototype 1997-06-25 06:20:17 +00:00
Jeff Hill
1f63baf549 fixed warning 1997-06-25 06:19:38 +00:00
Jeff Hill
13a13ed914 fixed warnings 1997-06-25 06:17:38 +00:00
Jeff Hill
8fdfb8738a added scan on int bug fix from mit 1997-06-25 06:13:41 +00:00
Jeff Hill
50a059f6a4 added diagnostic 1997-06-25 06:12:49 +00:00
Jeff Hill
a461022100 removed 1997-06-25 06:11:07 +00:00
Jeff Hill
bab390ddab deleted 1997-06-25 06:10:22 +00:00
Jeff Hill
7a0890fb97 moved perl scripts here 1997-06-25 06:02:42 +00:00
Jeff Hill
e84d7f342f ported log server to win32 1997-06-25 05:59:23 +00:00
Jeff Hill
24e2120e7c fixed warnings 1997-06-25 05:57:07 +00:00
Jeff Hill
c633b4fd70 align with API changes 1997-06-25 05:56:38 +00:00
Jeff Hill
3179fc2211 removed templInst.cc 1997-06-25 05:53:52 +00:00
Jeff Hill
b28a06a474 moved resourceLib.cc into resourceLib.h 1997-06-25 05:48:41 +00:00
Jeff Hill
d5048d7237 cleaned up pc port 1997-06-25 05:45:55 +00:00
Jeff Hill
4b66e7e181 added truncateFile.c 1997-06-25 05:42:54 +00:00
Jeff Hill
d7868a20f1 removed templInst.cc 1997-06-25 05:09:00 +00:00
Jeff Hill
c5fc3bb8de fixwd uninstall target 1997-06-25 00:50:06 +00:00
Jeff Hill
4457eb453f removed out of date comments 1997-06-25 00:49:12 +00:00
Jeff Hill
24b582bf0f moved T_A default up 1997-06-25 00:48:06 +00:00
Jeff Hill
d52b7fadd4 moved to tools dir 1997-06-25 00:47:13 +00:00
Janet B. Anderson
49d2c6e784 New mangen rules from Nick Rees 1997-06-17 18:01:37 +00:00
Janet B. Anderson
ba437ba591 Updated mangen rules from Nick Rees 1997-06-17 14:31:49 +00:00
Janet B. Anderson
0db241b85b Changed E2SR to E2DB. 1997-06-16 16:46:49 +00:00
Janet B. Anderson
e6f97007ad Nicks rule breaks apps and extensions. 1997-06-13 19:37:36 +00:00
Jeff Hill
3fd93fc6f4 allow epicsAssert.h 1997-06-13 18:26:15 +00:00
Jeff Hill
bfa29ec02b fixed tests 1997-06-13 17:42:53 +00:00
Jeff Hill
c1a16243db enable default build of C++ again 1997-06-13 17:06:35 +00:00
Jeff Hill
9bf8c54adf use epics assert 1997-06-13 17:03:54 +00:00
Jeff Hill
ca3f51269d installed 1997-06-13 17:02:58 +00:00
Jeff Hill
510b32ccfc fixed warning 1997-06-13 16:57:38 +00:00
Janet B. Anderson
5c430b24a4 Dont build C++ src codes. 1997-06-13 16:10:52 +00:00
Janet B. Anderson
c8a8f4c0e1 Changes recommended by Nick Rees. 1997-06-13 15:17:51 +00:00
Marty Kraimer
7a809e2e1e Add comment about editing file in iocBoot/ioc* 1997-06-13 14:53:35 +00:00
Jeff Hill
fdbfab2da2 send server port with beacon 1997-06-13 09:44:52 +00:00
Jeff Hill
50e53c3b60 fixed warnings 1997-06-13 09:39:09 +00:00
Jeff Hill
6c974f9cf5 fixed warnings 1997-06-13 09:31:46 +00:00
Jeff Hill
a48efbd861 added dllmain.cc 1997-06-13 09:30:36 +00:00
Jeff Hill
2752749f5e startup up winsock for the fd manager 1997-06-13 09:29:26 +00:00
Jeff Hill
d3bce294c3 fixed generated conversion functions 1997-06-13 09:26:04 +00:00
Jeff Hill
6a51de27e5 spelling 1997-06-13 09:23:38 +00:00
Jeff Hill
779eea486e C++ changes 1997-06-13 09:22:51 +00:00
Jeff Hill
2b67d03514 fixed compiler compatibility problems 1997-06-13 09:21:53 +00:00
Jeff Hill
830d2ff061 installed 1997-06-13 09:20:26 +00:00
Jeff Hill
84b35b89ef updated 1997-06-13 09:20:02 +00:00
Jeff Hill
6d0f7e878a install 1997-06-13 09:16:52 +00:00
Jeff Hill
951d97e7ff connect proto changes 1997-06-13 09:16:17 +00:00
Jeff Hill
ccb8a554ab connect/search proto changes 1997-06-13 09:14:29 +00:00
Jeff Hill
2cc65e1912 fixed yacc/lex rules for pc and no knts 1997-06-13 09:10:14 +00:00
Jeff Hill
84544919cf eliminated knts shell 1997-06-13 09:09:32 +00:00
Jeff Hill
f29a18fb06 added log server param 1997-06-13 08:56:51 +00:00
Jeff Hill
373963601e updated instr 1997-06-13 08:55:06 +00:00
Jeff Hill
03225a337e removed unused unistall target 1997-06-13 08:53:00 +00:00
Janet B. Anderson
009ec62aab Restored old values. I should not have made previous commit. 1997-06-12 21:21:40 +00:00
Janet B. Anderson
5f79145db6 Aps values entered. 1997-06-12 20:52:45 +00:00
Janet B. Anderson
592eb7a0d5 devVxiTDM removed. Used only by linac. 1997-06-12 19:24:54 +00:00
Janet B. Anderson
8d33c7127c devVxiTDM.c removed. Used only by linac. 1997-06-12 19:24:19 +00:00
Janet B. Anderson
19a8c56a69 devVxiTDM removed. Used only by linac. 1997-06-12 19:23:25 +00:00
Marty Kraimer
daeb1247d8 get latest version 1997-06-12 13:48:54 +00:00
Marty Kraimer
fce5bb7398 remove devSysmon 1997-06-11 15:45:42 +00:00
Marty Kraimer
e0122a1f18 renamed devAiStats to devVXStats. removed devSysmon 1997-06-11 15:26:37 +00:00
Marty Kraimer
fe782e3e4e Removed because APS specific 1997-06-11 15:24:36 +00:00
Marty Kraimer
5824a6096c get_enum_str must take address from DBADDR.pfield not from record 1997-06-11 15:19:09 +00:00
Marty Kraimer
4908e28d31 Renamed file 1997-06-11 15:17:54 +00:00
Marty Kraimer
423e24fe8b Include all of $(SHARE)/config/CONFIG_APP if SHARE is defined. 1997-06-05 18:53:56 +00:00
Marty Kraimer
db49a2babb Allow message about referenced but undefined to be suppressed 1997-06-05 18:28:50 +00:00
Marty Kraimer
e11c120f6b suppress warning message for unexpanded macros. 1997-06-05 18:16:54 +00:00
Marty Kraimer
9155de5b30 incremented var_count too quickly 1997-06-04 21:55:57 +00:00
Janet B. Anderson
599b22b70b Modifications for DEC Alpha - Mark Rivers. 1997-06-04 14:17:09 +00:00
Janet B. Anderson
6509cf77bf epics_R3_13_0_beta10 1997-05-30 15:40:56 +00:00
Janet B. Anderson
3c6ac06cff Added comment. 1997-05-30 15:21:07 +00:00
Marty Kraimer
eba09bd6af get rid of warning messages when using TS_1900_TO_* 1997-05-30 13:17:21 +00:00
Marty Kraimer
b95644e9d7 Get rid of warning messages for LONG_MIN 1997-05-30 13:16:18 +00:00
Johnny Tang
6b415ddb49 update 1997-05-29 22:39:18 +00:00
Johnny Tang
88f27261f0 update 1997-05-29 21:56:43 +00:00
Johnny Tang
de29d6868d add ifdef for select call to support HP-UX 1997-05-29 21:37:38 +00:00
Johnny Tang
6e143c1b3c update 1997-05-29 21:32:36 +00:00
Janet B. Anderson
ffe28c21d6 cygwin32 b18 changes. 1997-05-28 16:29:58 +00:00
Marty Kraimer
4abdee5635 Create soft link for share only if SHARE defined. 1997-05-28 13:38:34 +00:00
Janet B. Anderson
ae42cd5dfd installEpics needed by extensions until conversion to Makefile.Host. 1997-05-27 15:48:15 +00:00
Johnny Tang
dbd9309810 fd_set cast in select for both Hp and Sun 1997-05-27 14:53:11 +00:00
Jim Kowalkowski
5d78536ad5 just some notes 1997-05-23 18:18:19 +00:00
Jim Kowalkowski
c41f2e9514 Fixed bug in new/delete operators for gddBounds1D, 2D, and 3D 1997-05-19 19:23:51 +00:00
Jim Kowalkowski
757be61d57 library support for the tick timers on the mvme167 1997-05-13 14:36:57 +00:00
Jim Kowalkowski
df10654f77 New version of ldpp 1997-05-13 14:35:15 +00:00
Jim Kowalkowski
e7773db7a7 special bus error recovery code for recovery from bus error due to bus extenders 1997-05-13 14:34:40 +00:00
Jim Kowalkowski
9f6dc20fd8 added comments at top 1997-05-13 14:23:04 +00:00
Jim Kowalkowski
f654800370 New example server that monitors all the IOC on a network 1997-05-13 14:19:40 +00:00
Marty Kraimer
f810436bb1 Removed inc:: $(INSTALL_INCREC) from Makefile.Vx 1997-05-09 19:23:14 +00:00
Johnny Tang
5593db0caf added int * cast in select for HP port compatibility 1997-05-08 19:49:12 +00:00
Johnny Tang
e9a04e688f added osiSock.h for hp port 1997-05-08 19:44:29 +00:00
Johnny Tang
b8fe2ed007 fix error for LINK.c and LINK.cc 1997-05-08 19:41:04 +00:00
Janet B. Anderson
115f2b8a1e Bug fix 1997-05-08 18:28:06 +00:00
Janet B. Anderson
fefb8454c7 R3_13_0_beta9 1997-05-06 19:10:05 +00:00
Janet B. Anderson
e4cf1df857 Removed unused lines. 1997-05-06 15:55:23 +00:00
Janet B. Anderson
f3bd38caca Added comments 1997-05-06 15:54:34 +00:00
Janet B. Anderson
c104460654 Added cygwin32 changes. 1997-05-05 18:31:00 +00:00
Janet B. Anderson
fc3db2c3bf Allow site host architecture specific overrides 1997-05-05 17:56:58 +00:00
Janet B. Anderson
41e02220d1 Knts no longer needed. 1997-05-05 17:55:36 +00:00
Janet B. Anderson
8f5061b28e Initial version 1997-05-05 17:54:37 +00:00
Jeff Hill
5898d94c4c fixed use of event->pLastLog when event->npend should be used 1997-05-05 17:39:44 +00:00
Janet B. Anderson
b2ced4889b Modifications made for beta9. 1997-05-05 17:37:44 +00:00
Janet B. Anderson
a65e5f1f73 Removed redundant prototype 1997-05-05 17:31:05 +00:00
Marty Kraimer
839b8bdb5f Increase buffer size to 5000 bytes 1997-05-05 13:09:01 +00:00
Jeff Hill
421d98a936 moved pLog = NULL down 1997-05-05 04:50:11 +00:00
Jeff Hill
95b6d4a998 moved flow control to db event module 1997-05-05 04:49:16 +00:00
Jeff Hill
cc2ea961d7 added use of db events flow control 1997-05-05 04:48:30 +00:00
Jeff Hill
3a0de109a3 removed eventsoff flag 1997-05-05 04:47:54 +00:00
Jeff Hill
41aad467a6 added flow control mode 1997-05-05 04:46:14 +00:00
Jeff Hill
ebf6c4932a send_needed => pushPending, and added ca_number_iiu_in_fc 1997-05-05 04:45:25 +00:00
Jeff Hill
b587d3639f socket buf matches CA buf size, and pushPending flag added 1997-05-05 04:44:39 +00:00
Jeff Hill
7408f7f29f added ca_number_iiu_in_fc maintenance code 1997-05-05 04:43:37 +00:00
Jeff Hill
e2baae4281 fixed flow control off 1997-05-05 04:42:49 +00:00
Jeff Hill
b61b816c49 send_needed replaced by pushPending flag 1997-05-05 04:40:29 +00:00
Marty Kraimer
5257374a73 Allow null string 1997-05-02 20:19:56 +00:00
Marty Kraimer
f732ff2505 suppress error messages if dbCreateRecord called for existing record 1997-05-02 20:18:15 +00:00
Janet B. Anderson
8e2e15194a Added note about perl version. 1997-05-02 19:04:05 +00:00
Janet B. Anderson
4a3993c4e5 R3.13 updates 1997-05-02 16:25:42 +00:00
Janet B. Anderson
f11dadd032 Added missing definitions. 1997-05-02 16:24:31 +00:00
Janet B. Anderson
881cbd60e3 Added support for LIBNAME_CXX and BIN_INSTALLS 1997-05-02 16:22:20 +00:00
Jeff Hill
598e87d598 include getopt.h only on win32 1997-05-02 01:21:20 +00:00
Jeff Hill
6e8fc4f9c1 dll keyword adj 1997-05-01 23:57:50 +00:00
Jeff Hill
1be3c39e50 added getopt prototype (for NT) 1997-05-01 23:56:32 +00:00
Jeff Hill
fc48d2dd1d removed redundant prototype 1997-05-01 23:54:20 +00:00
Jeff Hill
11084a5dfc removed redundant prototypes 1997-05-01 23:52:14 +00:00
Jeff Hill
7946e9b921 DLL keyword adjustments 1997-05-01 23:51:07 +00:00
Jeff Hill
2a1f06cd2a replaced by installEpics.pl 1997-05-01 22:05:11 +00:00
Marty Kraimer
ccf3271fe1 Bug in dbDevice 1997-05-01 21:23:30 +00:00
Jeff Hill
c99ee0317c fixed conflict 1997-05-01 20:43:12 +00:00
Jeff Hill
5bf13da02c fixed conflict >>>>> 1997-05-01 20:30:15 +00:00
Jeff Hill
cbd5d9a36e removed conflict >>>>> 1997-05-01 20:26:07 +00:00
Jeff Hill
bb8e8f46cb new header file for ipAddrToA() 1997-05-01 19:59:09 +00:00
Jeff Hill
6b6e5e7515 updated dll keywords 1997-05-01 19:57:53 +00:00
Jeff Hill
0b0b23c6d6 removed ipAddrToA () prototype 1997-05-01 19:53:28 +00:00
Jeff Hill
1ed2559cc3 fixed unintialized variable bug 1997-05-01 19:46:32 +00:00
Jeff Hill
9a068b824d updated DLL keywords 1997-05-01 19:46:05 +00:00
Marty Kraimer
32a847087d Get rid of a lot of compiler warning messages 1997-04-30 19:22:22 +00:00
Marty Kraimer
67fbf5b746 For now keep both makeBaseApp and makeBaseApp.pl; Make compatible 1997-04-30 19:21:30 +00:00
Marty Kraimer
a0e8290c50 Fix compiler warning messages 1997-04-30 19:20:13 +00:00
Marty Kraimer
7cde4f8f2b Fixed most compiler warning messages 1997-04-30 19:20:01 +00:00
Marty Kraimer
437142b5bb Fix compiler warning messages 1997-04-30 19:12:25 +00:00
Marty Kraimer
42adbd20c8 move errhash defs. Add modules to Makefiles 1997-04-30 19:11:22 +00:00
Marty Kraimer
85a2ef6e4d Fix long memory free list problem 1997-04-30 19:10:04 +00:00
Marty Kraimer
62ce79e147 Extra useful routines. First is dbTranslateEscape 1997-04-30 19:07:57 +00:00
Marty Kraimer
3a840f6e2f Still original version 1997-04-30 19:04:09 +00:00
Marty Kraimer
69c62573b0 added function prototypes that have no nice place to go 1997-04-30 19:02:55 +00:00
Marty Kraimer
e1e8a34b2f Fixed many compiler warning messages 1997-04-30 19:02:21 +00:00
Marty Kraimer
13c9ae5fe3 Get rid of 1997-04-30 19:01:32 +00:00
Marty Kraimer
6912ff4929 Take VX_WARN_YES from config 1997-04-30 19:00:45 +00:00
Marty Kraimer
0e387c8936 Fixed most compiler warning mesdsages 1997-04-30 18:59:04 +00:00
Marty Kraimer
e8e3b5226e Fixed most compiler warning messages 1997-04-30 18:58:52 +00:00
Marty Kraimer
b87f049c2d Replace dbVarSub with macLib.
Allow C style escape sequences
Fix long vx memory free list problem
Fix most compiler warning messages
1997-04-30 18:54:10 +00:00
Marty Kraimer
0d7698e0d4 Allow c type escape sequences; Fix problem of long vx free memory list 1997-04-30 18:48:42 +00:00
Marty Kraimer
ebbaee5ed2 Fix compiler flags 1997-04-30 18:39:18 +00:00
Marty Kraimer
bff266bef3 Fixed compiler warning messages 1997-04-30 18:37:50 +00:00
Marty Kraimer
1d6f9f80f6 added dbGetPdbAddrFromLink. Fixed cimpiler warning messages 1997-04-30 18:36:33 +00:00
Marty Kraimer
8a298ab07c Fix compiler warning messages 1997-04-30 18:29:35 +00:00
Marty Kraimer
7f317f4d55 replace bcopt by memcpy 1997-04-30 18:28:08 +00:00
Marty Kraimer
50b19bc74f fix compiler warning messages 1997-04-30 18:26:53 +00:00
Marty Kraimer
9f35f8043e VX_WARN_YES = -Wall -pedantic -ansi 1997-04-30 18:23:47 +00:00
Jeff Hill
19091f245b fixed warnings 1997-04-29 06:50:35 +00:00
Jeff Hill
0bc395108d C++ compatibility 1997-04-29 06:34:39 +00:00
Jeff Hill
2b6367e1d4 use matching buffer sizes 1997-04-29 06:22:10 +00:00
Jeff Hill
6fb8477b3a C++ compatibility 1997-04-29 06:21:13 +00:00
Jeff Hill
39c22d2ee0 use free lists 1997-04-29 06:17:18 +00:00
Jeff Hill
721840498c use const in inet_addr () proto 1997-04-29 06:16:23 +00:00
Jeff Hill
56e35d8305 fixed exit when working problem 1997-04-29 06:15:34 +00:00
Jeff Hill
a42a244aed reserve less event buffers 1997-04-29 06:15:00 +00:00
Jeff Hill
b8dba0a4ad fixed warnings 1997-04-29 06:10:25 +00:00
Jeff Hill
fe9f9b91fb local host connect compatible 1997-04-29 06:07:16 +00:00
Jeff Hill
206a04e15f use free list 1997-04-29 06:05:57 +00:00
Jeff Hill
db11fd957d use matching buffer sizes 1997-04-23 17:27:01 +00:00
Jeff Hill
2517d52437 fixed WIN32 DLL symbol exports 1997-04-23 17:23:05 +00:00
Jeff Hill
f85aba61ed removed ipAddrToA.cc 1997-04-23 17:20:18 +00:00
Jeff Hill
147403b0e5 added new func and removed variables 1997-04-23 17:19:03 +00:00
Jeff Hill
afa84f396b added additional error codes 1997-04-23 17:17:29 +00:00
Jeff Hill
9888b965d8 rem _WINDLL => bad when other DLLs involved 1997-04-23 17:15:55 +00:00
Jeff Hill
c3e2f58d96 fixed export of symbols from WIN32 DLL 1997-04-23 17:13:07 +00:00
Jeff Hill
697200e942 fixed warnings 1997-04-23 17:12:19 +00:00
Jeff Hill
33b940562e min() => tsMin() also max 1997-04-23 17:11:50 +00:00
Jeff Hill
08f2298215 stringId::T[] => stringIdFastHash[] 1997-04-23 17:11:15 +00:00
Jeff Hill
8c992ed466 init ref differently for MS VC++ 1997-04-23 17:07:23 +00:00
Jeff Hill
c442950e5f min() => tsMin() 1997-04-23 17:06:44 +00:00
Jeff Hill
0a5dffc069 pc port changes 1997-04-23 17:05:10 +00:00
Jeff Hill
744a0de15d fixed win32 lib build 1997-04-23 17:00:19 +00:00
Jeff Hill
7c42f005db remove -D_REENTRANT flag 1997-04-23 16:55:23 +00:00
Jeff Hill
652cb0d66c added optimize/debug flags 1997-04-23 16:54:44 +00:00
Jeff Hill
9f77fbccd1 .EPICS_CONFIG => EPICS_CONFIG for win32 1997-04-23 16:50:55 +00:00
Jeff Hill
de2864a5a5 removed files 1997-04-21 15:02:52 +00:00
Jeff Hill
2caf1628ca added b-tree templ 1997-04-11 20:53:38 +00:00
Jeff Hill
f1865a507c added no arg reset() to bwd iter 1997-04-11 20:49:48 +00:00
Jeff Hill
8013fecb61 kay's perl branch 1997-04-11 20:44:03 +00:00
Jeff Hill
8d6deea83d merged Kay's perl proto branch 1997-04-11 20:28:21 +00:00
Jeff Hill
da3eed2a6f added const to failureNotify() 1997-04-11 20:24:13 +00:00
Jeff Hill
5de817b531 changes from Pam Gurd 1997-04-10 21:54:37 +00:00
Jeff Hill
a173792b1f C++ conditional build 1997-04-10 21:52:49 +00:00
Jeff Hill
6af690f524 use SYS_PROD_LIBS_ 1997-04-10 21:51:31 +00:00
Jeff Hill
1891940018 compile C++ only if CPLUSPLUS isnt empty 1997-04-10 21:32:42 +00:00
Jeff Hill
6adb68d7d6 fixed depen 1997-04-10 20:07:15 +00:00
Jeff Hill
c1225d880e use SYS_PROD_LIBS 1997-04-10 20:05:19 +00:00
Jeff Hill
017686e0f6 use free list lib 1997-04-10 20:04:51 +00:00
Jeff Hill
f61f401683 use include not include <> 1997-04-10 20:03:53 +00:00
Jeff Hill
3a5e5fc5d7 VMS changes 1997-04-10 20:02:55 +00:00
Jeff Hill
8d0712bea4 winsock II changes 1997-04-10 20:02:05 +00:00
Jeff Hill
0804f7fb08 api changes 1997-04-10 20:01:14 +00:00
Jeff Hill
7a8878dec6 API changes 1997-04-10 19:56:38 +00:00
Jeff Hill
92ae7b14c4 use SYS_PROD_LIBS_DEFAULT 1997-04-10 19:54:14 +00:00
Jeff Hill
eda3aae608 API changes 1997-04-10 19:51:14 +00:00
Jeff Hill
8e363122b3 added new functions 1997-04-10 19:47:35 +00:00
Jeff Hill
ff378e17c9 new env param decl 1997-04-10 19:46:59 +00:00
Jeff Hill
5e1157d363 added sigPipeIgnore 1997-04-10 19:46:31 +00:00
Jeff Hill
d3c6310bb1 API changes and include with not <> 1997-04-10 19:45:43 +00:00
Jeff Hill
5c4d82cacc API changes 1997-04-10 19:43:15 +00:00
Jeff Hill
414c8ed603 installed 1997-04-10 19:38:14 +00:00
Jeff Hill
603c598e14 added new files 1997-04-10 19:36:53 +00:00
Jeff Hill
a3cad9563f asynch connect, faster connect, ... 1997-04-10 19:26:27 +00:00
Jeff Hill
cb95ba41ac deleted 1997-04-09 22:23:57 +00:00
Marty Kraimer
8e000eb634 Forgot to compile before committing 1997-04-09 19:50:39 +00:00
Marty Kraimer
b00f152456 makesure GPIBFASTO has val in range 1997-04-09 19:35:56 +00:00
Marty Kraimer
566d70bf9c Restore original 1997-04-09 18:33:49 +00:00
Marty Kraimer
bc6bf59bda In devGpibLib_mbboGpibWork make sure val is in range 1997-04-09 18:14:43 +00:00
Jim Kowalkowski
6fcbfa15b3 Changed these to use the dbmf library for malloc/free of buffers 1997-04-07 20:17:43 +00:00
Jim Kowalkowski
121a2dc9ae Added a simple library for doing malloc/free from a buffer pool 1997-04-07 20:16:42 +00:00
Janet B. Anderson
35f9a872f7 Added CXXLDLIBS and USR_CXXLDFLAGS. 1997-03-26 18:44:44 +00:00
Janet B. Anderson
0efb9a0c8c Added LDLIBS 1997-03-26 18:39:18 +00:00
Janet B. Anderson
63da245439 Use LINK.c from config 1997-03-26 18:38:26 +00:00
Jim Kowalkowski
8b83afc1bb fixed bug in gddDestructor constructor. 1997-03-24 12:41:49 +00:00
Jim Kowalkowski
54e6f9aed1 *** empty log message *** 1997-03-21 01:56:12 +00:00
Jim Kowalkowski
4c99a53852 fixed a problem with gddDestructor and reference counting 1997-03-17 17:14:48 +00:00
Janet B. Anderson
b95f7afd3c R3_13_0_beta8 1997-03-13 21:03:06 +00:00
Janet B. Anderson
a2db2d88ca epicsVersion.h now a created file. 1997-03-13 19:16:26 +00:00
Janet B. Anderson
cbe00bb737 Fixed version text. 1997-03-13 18:09:28 +00:00
Janet B. Anderson
7efb007b53 Removed epicsVersion.h and fixed Makefile.Host 1997-03-13 17:32:21 +00:00
Janet B. Anderson
4e7917d9fe Include stdlib.h. 1997-03-13 17:03:08 +00:00
Marty Kraimer
ee8fad1e7a Test version to diagnose bitbus problems 1997-03-13 16:57:49 +00:00
Janet B. Anderson
0fa8b1e62d CMPLR = OLD needed for alpha build. 1997-03-13 16:45:51 +00:00
Janet B. Anderson
117f75eac4 Initial Version 1997-03-13 16:42:52 +00:00
Marty Kraimer
85432e6307 Change hash algorithm to be slightly faster 1997-03-13 16:38:09 +00:00
Janet B. Anderson
cdbbf69a1e Modified names for CXX flags. 1997-03-12 23:08:37 +00:00
Marty Kraimer
fb8e026551 Allow CALC to be 40 characters. Increase rpbuf from 184 to 200 1997-03-12 21:38:38 +00:00
Marty Kraimer
5f1b0c19a8 Use maxCards from module_types.h 1997-03-12 21:35:16 +00:00
Janet B. Anderson
bbef91c39e Don not include filio and sockio headers. 1997-03-12 17:21:44 +00:00
Jeff Hill
f0120adba4 added purify build 1997-03-10 23:07:36 +00:00
Jeff Hill
457d64640e faster clean 1997-03-10 23:04:04 +00:00
Jeff Hill
eae68a0872 -DEXPL_TEMPL for g++ and others 1997-03-10 23:00:52 +00:00
Jeff Hill
48bbe65f60 installed 1997-03-10 22:58:31 +00:00
Janet B. Anderson
6e04d47209 Added cc depends rule. 1997-03-10 18:13:20 +00:00
Jim Kowalkowski
02dc1c300c Fixes cvs log id at top 1997-03-05 21:16:23 +00:00
Jim Kowalkowski
2d1c1d3e09 New server example 1997-03-05 21:14:56 +00:00
Jim Kowalkowski
5e9ebd8b9b Fixed a bug in TSreport - printing of IP addresses was incorrect 1997-03-05 13:20:44 +00:00
Jim Kowalkowski
c5bc89f11b Fixed bungled spelling of GUI_BITS, it was spelled GUI_BTS 1997-03-03 17:28:29 +00:00
Jeff Hill
bd2407153c installed host build make file 1997-02-27 18:59:18 +00:00
Janet B. Anderson
2b42b3eab0 Portability change - added EXE suffix to antelope and e_flex. 1997-02-24 16:22:56 +00:00
Janet B. Anderson
77146706a6 WHAT now defined in config files. 1997-02-24 16:14:20 +00:00
Janet B. Anderson
b6d0f183de Portability change /bin/pwd changed to pwd. 1997-02-24 16:13:03 +00:00
Janet B. Anderson
4f649964de getopt changed to getopts for portability. 1997-02-24 16:10:45 +00:00
Janet B. Anderson
f565901231 Added support for all action*arch targets. 1997-02-24 16:08:08 +00:00
Janet B. Anderson
9821aaa612 Added WHAT to config files. 1997-02-24 16:02:26 +00:00
Janet B. Anderson
a364fbe125 Portability change. 1997-02-21 15:16:43 +00:00
Janet B. Anderson
0500ccb4da Aplha support file from M. Rivers 1997-02-18 22:04:21 +00:00
Janet B. Anderson
3db726ddac sgi support file from M. Rivers 1997-02-18 22:03:56 +00:00
Janet B. Anderson
edff0569b6 Sgi support modifications from M. Rivers 1997-02-18 21:54:46 +00:00
Janet B. Anderson
cbbeb7ea25 Alpha support modifications from M. Rivers 1997-02-18 21:54:07 +00:00
Johnny Tang
ccb055cf78 Bx field DCT visible 1997-02-11 20:54:49 +00:00
Johnny Tang
4ddd63d141 Bx field DCT invisible 1997-02-11 20:54:31 +00:00
Johnny Tang
fdd89be534 bug fix 1997-02-11 20:48:54 +00:00
Johnny Tang
ed77e687a3 bug fix 1997-02-11 19:26:08 +00:00
Janet B. Anderson
f5e2c72b18 Added makefile dependancy for LIBNAME. 1997-02-07 21:15:17 +00:00
Janet B. Anderson
1e4e78d6bc Fixed DEPENDS rule lines. 1997-02-06 19:47:03 +00:00
Janet B. Anderson
3ede2a2512 Added vxldscript.MRI to ld flags. 1997-02-06 19:39:03 +00:00
Janet B. Anderson
1995c735a1 Bug fixes for INSTALL_LIBS and binInstalls 1997-02-06 15:49:53 +00:00
Janet B. Anderson
79a2ef7ad1 epics_R3_13_0_beta7 1997-02-05 22:22:45 +00:00
Janet B. Anderson
11b9be6dfd Removed Makefile.Unix files. 1997-02-05 22:18:03 +00:00
Janet B. Anderson
d21c4ba0ab Added c++ support, BIN_INSTALLS, and app LINNAME and DBDNAME dependancies. 1997-02-05 22:10:33 +00:00
Janet B. Anderson
a23b0be5a5 Added c++ support for Vx builds. 1997-02-05 22:07:57 +00:00
Marty Kraimer
199fdff643 dbAllocForm failed for macro links 1997-02-05 21:36:38 +00:00
Marty Kraimer
d762ed7af6 Removed extra rules at the end of makeBaseApp 1997-02-05 21:16:56 +00:00
Janet B. Anderson
85e3a6e0a1 Added CONFIG_BASE_VERSION. RULES.Db, RULES.ioc. 1997-02-05 21:08:16 +00:00
Janet B. Anderson
74f253820a CHMOD now defined in config dir. 1997-02-05 21:01:36 +00:00
Janet B. Anderson
3c73143f3a BUILD_ARCHS now defined without if stmnts. 1997-02-05 20:54:22 +00:00
Marty Kraimer
18cafc2d06 replace shell commands with wildcard 1997-02-05 19:32:49 +00:00
Marty Kraimer
6f6e34dced str_t_e did not allow for numeric value 1997-02-05 19:27:31 +00:00
Jim Kowalkowski
a16f99b8d0 New architecture type 1997-01-29 04:43:42 +00:00
Janet B. Anderson
46a180f755 epics_R3_13_0_beta6 1997-01-23 18:50:54 +00:00
Marty Kraimer
cebd5f3cf8 Added T_A 1997-01-23 18:32:12 +00:00
Janet B. Anderson
2ced0242bd Added install include dir to UNIX_INCLUDES. 1997-01-23 17:28:45 +00:00
Janet B. Anderson
7edc0cd149 Allow CONFIG_SITE to override CONFIG_COMMON vars. 1997-01-23 17:26:51 +00:00
Marty Kraimer
417411ab62 Makefile in *App/*Db was incorrect 1997-01-23 16:10:30 +00:00
Jeff Hill
ea589a75a9 added include of sys/types.h for VMS 1997-01-22 22:08:03 +00:00
Jeff Hill
d00b72f3e8 doc 1997-01-22 22:07:22 +00:00
Jeff Hill
56cf313613 removed 1997-01-22 22:04:56 +00:00
Jeff Hill
98498419c0 installed 1997-01-22 21:36:06 +00:00
Jeff Hill
653d8f1dae moved if.h include here 1997-01-22 21:35:28 +00:00
Jeff Hill
8405cf7323 clean up 1997-01-22 21:35:01 +00:00
Jeff Hill
80a8d9c37f include if.h here 1997-01-22 21:34:41 +00:00
Jeff Hill
ce87cee840 moved include of time.h and errno.h here 1997-01-22 21:34:10 +00:00
Jeff Hill
0ca6bf3ecc moved include of if.h here 1997-01-22 21:33:06 +00:00
Jeff Hill
8e0a2c9e0f moved targets down so that they dont repl all target 1997-01-22 21:20:01 +00:00
Jeff Hill
fad67f380d added dcan lock to db_post_single_event() 1997-01-22 21:17:41 +00:00
Jeff Hill
4dc12e992d updated tests 1997-01-22 21:14:50 +00:00
Jeff Hill
bf6f69065c fixed class decl order for VMS 1997-01-22 21:14:21 +00:00
Jeff Hill
be09fad901 doc 1997-01-22 21:13:08 +00:00
Jeff Hill
0b07bf8094 moved vms includes here 1997-01-22 21:11:49 +00:00
Jeff Hill
d2c38b8db5 cleaned out extra includes 1997-01-22 21:11:04 +00:00
Jeff Hill
7f1249ae45 smaller external sym name for VAXC 1997-01-22 21:10:26 +00:00
Jeff Hill
617b4dd26f moved include of if.h to osiSock.h 1997-01-22 21:08:48 +00:00
Jeff Hill
ef7b658bc0 removed use of ## for VAXC port 1997-01-22 21:08:17 +00:00
Jeff Hill
ef6adf90fc fixed array test 1997-01-22 21:07:27 +00:00
Jeff Hill
ca2a66514f use genLocalExcepWFL for generateLocalExceptionWithFileAndLine 1997-01-22 21:06:30 +00:00
Jeff Hill
ce3095d1fc define MULTINET and __STDC__ 1997-01-22 21:05:49 +00:00
Jeff Hill
2869b388dd added TESTPROD to clean target 1997-01-22 21:03:48 +00:00
Marty Kraimer
dc03deead7 Still did not work correctly 1997-01-22 21:00:20 +00:00
Marty Kraimer
99a0613092 Makefile in xxxApp/Db included wrong rules 1997-01-22 19:20:51 +00:00
Marty Kraimer
38044917f4 Modified comment in st.cmd 1997-01-22 14:08:10 +00:00
Marty Kraimer
2092f9faee On usage made it clear that -e is optional 1997-01-21 22:16:59 +00:00
Janet B. Anderson
f0ea531cc4 Removed def of target archs. 1997-01-21 21:59:46 +00:00
Janet B. Anderson
54de9067ee Dont require . to be in path. 1997-01-21 19:16:51 +00:00
Marty Kraimer
dcbf2a6331 src/st.cmd replaced by st.cmd 1997-01-21 19:01:39 +00:00
Marty Kraimer
63d0339d05 failed unless at least one dbLoadRecords("xxxApp/ ... appeared 1997-01-21 19:00:53 +00:00
Jim Kowalkowski
8d88cf2277 free up resources in clearData 1997-01-21 15:13:06 +00:00
Marty Kraimer
450f76d205 Minor changes 1997-01-21 15:06:38 +00:00
Jim Kowalkowski
890de43c91 Print IP address on report 1997-01-20 15:31:00 +00:00
Janet B. Anderson
a8879d0f41 Now works with MakeRelease 1997-01-17 20:02:29 +00:00
Janet B. Anderson
cdab5000bc Use config/CONFIG_BASE_VERSION to get version info. 1997-01-17 19:59:37 +00:00
Marty Kraimer
fd0daa0b92 various bugs 1997-01-17 19:48:27 +00:00
Janet B. Anderson
86219510c6 epics_R3_13_0_beta5 1997-01-17 18:53:19 +00:00
Janet B. Anderson
471a5a71e6 Initial version. 1997-01-17 17:54:40 +00:00
Janet B. Anderson
ae1b395a87 epicsVersion.h now created from CONFIG_BASE_VERSION. 1997-01-17 17:52:57 +00:00
Janet B. Anderson
fecf4de0d1 Added uninstall for templates dir. 1997-01-17 16:45:12 +00:00
Marty Kraimer
378cc22c07 Changes for Makefile.Host and also more like APS/ASD environment 1997-01-17 16:38:02 +00:00
Janet B. Anderson
6f3b75b485 Modified output message. 1997-01-17 16:20:34 +00:00
Janet B. Anderson
2b1aab904e Local libraries now first. 1997-01-16 22:22:18 +00:00
Janet B. Anderson
8afabaf4e1 MOved position of USR_INCLUDES on compile line. 1997-01-16 22:16:45 +00:00
Marty Kraimer
ff02a0fe6e Adding to base 1997-01-16 19:53:15 +00:00
Janet B. Anderson
8b9b9c0bf6 Added commented stmnt for devAiStats.o 1997-01-16 19:05:58 +00:00
Janet B. Anderson
b134b99686 Uninstall now removes dbd and doc directories. 1997-01-16 19:01:28 +00:00
Janet B. Anderson
61f0440de5 Fixed spelling srror in DEPENDS_RULE. 1997-01-16 17:30:41 +00:00
Marty Kraimer
c68ace1542 make nicer 1997-01-16 17:04:39 +00:00
Marty Kraimer
2207e20627 Did not properly implement support for multiple clients 1997-01-16 17:03:26 +00:00
Marty Kraimer
0a4d1f26d1 Changes so that applications build 1997-01-16 17:01:43 +00:00
Janet B. Anderson
1114813608 Initial version. 1997-01-14 22:58:33 +00:00
Jeff Hill
0b09d90b12 fixed problems associated with events lost msg 1997-01-13 23:13:50 +00:00
Marty Kraimer
219324f304 Made mistake removing get_value 1997-01-13 17:30:35 +00:00
Marty Kraimer
f0e00aacc8 Use dbGetFieldIndex. get rid of get_value 1997-01-13 15:59:21 +00:00
Marty Kraimer
02e5131522 recGblInitConstantLink for sgl was referencing wrong field 1997-01-13 15:58:07 +00:00
Marty Kraimer
194784d781 get rid of call to devGpibLib_setPvSevr 1997-01-13 15:56:31 +00:00
Marty Kraimer
a0a5198a2f minor change 1997-01-13 15:55:16 +00:00
Marty Kraimer
e41619eea3 Be willing to generate null string fields 1997-01-13 15:54:54 +00:00
Marty Kraimer
93deef330a The enums for menus had a comma after last item. 1997-01-13 15:54:11 +00:00
Jim Kowalkowski
5507e033d8 many errors fixed 1997-01-12 20:32:49 +00:00
Jeff Hill
d0c26b575e code around gnu g++ inline bug when -O isnt used 1997-01-10 21:18:56 +00:00
Jeff Hill
66c844cebf updated DL fmt 1997-01-10 21:15:43 +00:00
Jeff Hill
fc449a487e added casOpaqueAddr.cc 1997-01-10 21:13:42 +00:00
Jeff Hill
4be53cd0fa better message 1997-01-10 21:11:16 +00:00
Jeff Hill
2adb49b93e took out C++ 1997-01-10 21:06:06 +00:00
Jeff Hill
d7bb945cc0 host/user name set is now a NOOP 1997-01-10 21:02:10 +00:00
Jeff Hill
752fbcc6dc doc 1997-01-10 21:00:16 +00:00
Jeff Hill
d1e1a5f249 installed 1997-01-10 00:41:33 +00:00
Jeff Hill
a13d49cf81 BASE is up one more level 1997-01-10 00:31:30 +00:00
Jeff Hill
2fc75ca08e installed WIN32/Makefile.Host 1997-01-10 00:12:21 +00:00
Jeff Hill
7f3c5e6cbb installed 1997-01-10 00:05:21 +00:00
Jeff Hill
355fe461e7 installedMakefile.Host 1997-01-10 00:02:59 +00:00
Jeff Hill
b87c59eab2 dont mess with SIGPIPE under WIN32 1997-01-10 00:01:02 +00:00
Jeff Hill
e2edfb470f close() => socket_close() 1997-01-10 00:00:01 +00:00
Jeff Hill
8f642dfe1e installed 1997-01-09 22:29:51 +00:00
Jeff Hill
ad533e7c35 installed hostBuild branch 1997-01-09 22:29:17 +00:00
Jeff Hill
5937eb099e removed INC for gddAppFuncTable.h 1997-01-09 22:27:30 +00:00
Jeff Hill
9ca456bfb3 eliminate MSVC++ warning resulting from passing *this to a base 1997-01-09 22:24:46 +00:00
Jeff Hill
52854cd1ed MSC cannot use the default constructor 1997-01-09 22:22:30 +00:00
Jeff Hill
7a92120974 installed 1997-01-09 22:19:54 +00:00
Jeff Hill
9b1cf4a467 installed changes on hostBuild branch 1997-01-09 22:14:26 +00:00
Jeff Hill
62ae22ef7a added epicsShareAPI to ca_message_text[] 1997-01-09 22:11:43 +00:00
Jeff Hill
9e7f4020c2 doc 1997-01-09 22:10:56 +00:00
Jeff Hill
17aa8609b0 installed 1997-01-09 22:10:03 +00:00
Jeff Hill
4b83df7f01 Use CXX for CC 1997-01-09 22:07:22 +00:00
Jeff Hill
a1acb62b58 .PHONY becomes :: rule 1997-01-09 22:05:55 +00:00
Jeff Hill
71144f3c20 added WIN32 & pc486 1997-01-09 22:04:03 +00:00
Jeff Hill
7c89b7850f removed redundant steps 1997-01-09 22:03:32 +00:00
Jeff Hill
cdb42f3c11 .PHONY is :: rule 1997-01-09 22:01:43 +00:00
Jeff Hill
22cf3b4935 installed 1997-01-09 21:58:32 +00:00
Jeff Hill
d584853a94 improved message 1997-01-08 22:48:42 +00:00
Jim Kowalkowski
94ce85b538 reset line number at start of routines 1997-01-02 21:16:40 +00:00
Jim Kowalkowski
1427caaee9 More strings yet printed now 1996-12-20 13:11:42 +00:00
Jim Kowalkowski
3846165645 Working version, intermediate, still has problems 1996-12-20 13:09:49 +00:00
Jeff Hill
fdddf61b06 moved extra % from printf 1996-12-18 18:24:09 +00:00
Jim Kowalkowski
07e07db9c7 fixed bug in copyData, sets bounds now 1996-12-17 15:04:42 +00:00
Jeff Hill
1c091779a8 fixed bad data ref bug 1996-12-13 00:11:32 +00:00
Jeff Hill
88140f9116 dont unlock after destroy 1996-12-13 00:08:35 +00:00
Jeff Hill
e9b078491b moved casStreamOS *pStrmOS decl down 1996-12-12 21:24:17 +00:00
Jeff Hill
218ae4569a fixed send does not get armed after complete flush bug 1996-12-12 19:02:36 +00:00
Jeff Hill
03188d0eec doc 1996-12-12 18:56:27 +00:00
Jeff Hill
88c99148b2 fixed client initiated pv delete calls interestDelete() VF bug 1996-12-12 18:55:38 +00:00
Jeff Hill
261067b0f5 fixed fast build 1996-12-12 18:53:30 +00:00
Jeff Hill
89b90296ec added additional vector tests 1996-12-11 01:10:33 +00:00
Jeff Hill
dff79f6bea added vector support 1996-12-11 01:07:17 +00:00
Jeff Hill
fa64c5bdd2 getSender() nolonger in line 1996-12-11 01:04:54 +00:00
Jeff Hill
a9acb01482 removed redundant bad client attach detect 1996-12-11 01:03:52 +00:00
Jeff Hill
de4c463956 removed casEventMaskEntry def 1996-12-11 01:02:35 +00:00
Jeff Hill
07857588f0 casEventMaskEntry constr does res tbl add 1996-12-11 01:01:56 +00:00
Jeff Hill
f9346a7eca added bad chan attachment detection 1996-12-11 00:59:37 +00:00
Jeff Hill
e332794a4a better diagnostic 1996-12-11 00:58:35 +00:00
Jeff Hill
ab4c4baa52 moved casEventMaskEntry here 1996-12-11 00:57:56 +00:00
Jeff Hill
b372a53bbb use main include file 1996-12-11 00:56:47 +00:00
Jeff Hill
e031341af1 better message 1996-12-11 00:55:14 +00:00
Jeff Hill
ce5adaa037 added casPVListChan 1996-12-06 22:41:33 +00:00
Jeff Hill
b578f783e2 moved down one level 1996-12-06 22:40:40 +00:00
Jeff Hill
2c0a4561bd hew hierarchy 1996-12-06 22:38:00 +00:00
Jeff Hill
f14ac97ee2 new hierarchy 1996-12-06 22:37:38 +00:00
Jeff Hill
8431539f23 use destroyInProgress flag now functional nativeCount() 1996-12-06 22:36:30 +00:00
Jeff Hill
7f8be4b3a1 added destroyInProgress flag 1996-12-06 22:35:06 +00:00
Jeff Hill
59304ffd99 add maxDimension() and maxBound() 1996-12-06 22:34:22 +00:00
Jeff Hill
7c124f6e93 virtual ~casPVI(), ~casPVListChan(), ~casChannelI() 1996-12-06 22:33:49 +00:00
Jeff Hill
7543005120 force virtual destructor 1996-12-06 22:32:11 +00:00
Jeff Hill
f4784cafb5 add virt funcs to casPV 1996-12-06 22:30:50 +00:00
Jeff Hill
c80e584dfa fixed wrong start bug in getDD() 1996-12-06 22:27:44 +00:00
Jeff Hill
4820f93b6a added auto cleanup of installed classes to destroy 1996-12-06 22:26:36 +00:00
Jeff Hill
eff915d837 moved down one level 1996-12-06 22:20:22 +00:00
Janet B. Anderson
a7e61ddeb8 HP bug fix per S. lewis tech-talk msg 11/26 1996-12-02 15:12:33 +00:00
Jeff Hill
fb624a76d2 installed 1996-11-22 20:49:43 +00:00
Jeff Hill
33d5b78b5b doc 1996-11-22 20:43:03 +00:00
Jeff Hill
e6a68089c6 fixed protos for __SUNPRO_C 1996-11-22 20:39:33 +00:00
Jeff Hill
4d1875e738 added unistd.h for close() and added gethostname() proto 1996-11-22 20:38:17 +00:00
Jeff Hill
737f4b83e6 converted large inline templ funcs 1996-11-22 20:37:19 +00:00
Jeff Hill
a4362b3b3f win NT changes 1996-11-22 19:56:42 +00:00
Jeff Hill
96f6b17458 fixed spelling 1996-11-22 19:54:53 +00:00
Jeff Hill
e5df8aef5b doc 1996-11-22 19:52:24 +00:00
Jeff Hill
f8f7240e12 doc 1996-11-22 19:41:05 +00:00
Jeff Hill
7bab56dcb7 doc 1996-11-22 19:32:15 +00:00
Jeff Hill
37c4bead67 installed 1996-11-22 19:32:01 +00:00
Jeff Hill
3b934ac775 suppressed error msg and returned correct # bytes pending 1996-11-22 19:27:04 +00:00
Jeff Hill
d34ad2d0ff doc 1996-11-22 19:22:53 +00:00
Jeff Hill
ff0e52d4b4 installed 1996-11-22 19:21:55 +00:00
Jeff Hill
4961e0c799 added templInst.c 1996-11-22 19:20:37 +00:00
Jeff Hill
c41ea11302 CXXCMPLR = STRICT 1996-11-22 19:19:40 +00:00
Jeff Hill
8215339e79 CXXCMPLR = STRICT 1996-11-22 19:19:12 +00:00
Jeff Hill
49d0571e4a reorganized for improved readability 1996-11-22 19:16:00 +00:00
Jeff Hill
a93baf6214 added const to API 1996-11-22 19:08:02 +00:00
Jeff Hill
8dcf6e1a5f included string.h 1996-11-22 19:07:01 +00:00
Jeff Hill
687770d207 added const to build and connect API 1996-11-22 19:05:48 +00:00
Jeff Hill
a897ba6ac9 CMPLR = STRICT 1996-11-22 19:04:37 +00:00
Jeff Hill
87efbf9a7c GCC = /opt/gnu/bin/gcc not GCC = gcc 1996-11-22 18:59:10 +00:00
Jeff Hill
7aa17be09c additional patch for 2 days to CPU usage problem 1996-11-22 18:19:09 +00:00
Jeff Hill
292bbca26b fixed 2 day delay to CPU consumption bugseq_task.c 1996-11-21 22:54:00 +00:00
Jeff Hill
ede722c5da fixed printf fmt/arg incompatibilities 1996-11-21 21:13:03 +00:00
Jeff Hill
6844074eac use correct syntax for init 1996-11-21 21:12:05 +00:00
Jeff Hill
26385135f4 added missing include 1996-11-21 21:11:15 +00:00
Jeff Hill
079e377937 fixed GNU compile under solaris 1996-11-08 22:02:22 +00:00
Jeff Hill
369841f425 avoid confusing circular dependency message 1996-11-07 23:46:52 +00:00
Jeff Hill
3f7bfda8d8 doc 1996-11-07 14:42:36 +00:00
Jeff Hill
cfc470d480 allow monitor init read to using rd async io 1996-11-06 22:15:56 +00:00
Jeff Hill
ff7a84bbb1 removed cas and gdd agin 1996-11-06 22:14:36 +00:00
Jeff Hill
485817d819 Allow override of CROSS_COMPILER_HOST_ARCHS in CONFIG 1996-11-06 22:12:51 +00:00
Jeff Hill
bf4738a2b3 unclobbered the rebuild target 1996-11-06 20:05:43 +00:00
Jeff Hill
4449495196 o do the "inc" traget at the RULES_DIRS level for all arc targets
and the install target
o eliminated redundant "inc" build by creating buildInstall target
1996-11-06 19:41:44 +00:00
Jeff Hill
d89ceac446 added AB stepper 1996-11-06 15:55:33 +00:00
Jeff Hill
a9a77b8a9c use CC -xar on sun4 and solaris arch 1996-11-06 00:11:41 +00:00
Jeff Hill
d8fdf046d1 o fixed "-d" flag was ignored (directory was always created)
o fixed directory creation failed when relative path was used
	(ie path containing ".." or ".")
1996-11-05 18:17:08 +00:00
Janet B. Anderson
5f2999d9c4 Removed unused references to TCLLIBNAME and TCLINDEX 1996-11-05 16:06:05 +00:00
Jim Kowalkowski
0a943103f2 fix setFirst 1996-11-04 17:12:50 +00:00
Jeff Hill
8e34d8cc43 use osiSock.h to get proto for gettimeofday() for now 1996-11-02 02:52:54 +00:00
Jeff Hill
e05ed3ebae doc 1996-11-02 02:46:40 +00:00
Jeff Hill
da7f5837ec fixed warning 1996-11-02 02:42:19 +00:00
Jeff Hill
d8fc7ff7bd removed use of db_addr 1996-11-02 02:27:28 +00:00
Jeff Hill
66d2971efb use osiSock.h 1996-11-02 02:20:36 +00:00
Jeff Hill
16e9a2dbc0 removed gnu warnings 1996-11-02 02:19:55 +00:00
Jeff Hill
77cf658c05 PC arch changes 1996-11-02 02:18:31 +00:00
Jeff Hill
a1e16b72b7 removed 1996-11-02 02:13:33 +00:00
Jeff Hill
f48578f681 installed 1996-11-02 02:12:48 +00:00
Jeff Hill
cbc3f74479 use correct form of #define 1996-11-02 02:08:52 +00:00
Jeff Hill
569d7e7879 added TsAddDouble() proto 1996-11-02 02:07:54 +00:00
Jeff Hill
2d6ac57834 fixed several subtle problems 1996-11-02 02:06:59 +00:00
Jeff Hill
44aae92786 const param => #define 1996-11-02 02:06:00 +00:00
Jeff Hill
9976984eb8 %d => %ld 1996-11-02 02:05:24 +00:00
Jeff Hill
452d3d68ca fixed several subtle bugs 1996-11-02 02:04:42 +00:00
Jeff Hill
a609cfaa02 use strerror() to get err string since it is portable 1996-11-02 02:03:37 +00:00
Jeff Hill
c12f73e2b3 added envParamIsEmpty() 1996-11-02 02:00:05 +00:00
Jeff Hill
fd72915fae added cas env var 1996-11-02 01:59:43 +00:00
Jeff Hill
8d5cfe739f added os depen stuff 1996-11-02 01:58:52 +00:00
Jeff Hill
d40253a1b5 use correct form of #include 1996-11-02 01:57:45 +00:00
Jeff Hill
55589cb65a improved message 1996-11-02 01:56:55 +00:00
Jeff Hill
14127052f1 added os depen stuff 1996-11-02 01:38:00 +00:00
Jeff Hill
5201df3dbc installed 1996-11-02 01:36:25 +00:00
Jeff Hill
3263a885a3 more pc related changes 1996-11-02 01:30:51 +00:00
Jeff Hill
4dbb3d18de removed merge problems 1996-11-02 01:28:15 +00:00
Jeff Hill
31b046e108 strcpy => styrcpy (shuts up purify) 1996-11-02 01:24:49 +00:00
Jeff Hill
c25f195f08 pc does not have 68k's "nobitfield" option 1996-11-02 01:21:12 +00:00
Jeff Hill
f8910ba651 installed 1996-11-02 01:17:59 +00:00
Jeff Hill
9b05ce2169 added byte swapping for pc arch 1996-11-02 01:16:43 +00:00
Jeff Hill
6bbc5576f9 remove db_addr 1996-11-02 01:15:16 +00:00
Jeff Hill
52b5b08b62 installed 1996-11-02 01:07:48 +00:00
Jeff Hill
c83ef56154 many improvements 1996-11-02 01:07:24 +00:00
Jeff Hill
77c34614a2 added resourceLib.cc 1996-11-02 01:06:48 +00:00
Jeff Hill
0f925b7264 installed 1996-11-02 01:01:41 +00:00
Jeff Hill
17ff2420b4 many improvements 1996-11-02 00:55:02 +00:00
Jeff Hill
1f722b453d installed 1996-11-02 00:52:53 +00:00
Jeff Hill
5bcd8e3fe7 many pc port, const in API, and other changes 1996-11-02 00:51:12 +00:00
Jeff Hill
cacdbe8a7e added convert.o 1996-11-02 00:45:42 +00:00
Jeff Hill
8397c013f0 added purify target 1996-11-02 00:44:01 +00:00
Jeff Hill
40f6521d20 fixed line wrap 1996-11-02 00:41:23 +00:00
Jeff Hill
183386fc02 remove use of <test -d> to create directory 1996-11-02 00:39:51 +00:00
Jeff Hill
ee83524e6b removed use of <test -d> to create directory 1996-11-02 00:38:42 +00:00
Jeff Hill
58b02d04cb os depen -I 1996-11-02 00:35:42 +00:00
Jeff Hill
68006545e1 added new CAS env var 1996-11-02 00:31:00 +00:00
Jeff Hill
9a0e885a2e os depen include 1996-11-02 00:30:19 +00:00
Jeff Hill
4013ea544b os depen -I and $(CCC) -xar for ar 1996-11-02 00:29:02 +00:00
Marty Kraimer
9258159419 Removed precord arg from dbScanFwdLink 1996-11-01 17:15:58 +00:00
Marty Kraimer
ecc19506ef Added dbScanFwdLink 1996-11-01 15:53:32 +00:00
Marty Kraimer
6373069d52 Fixed bugs from last set of changes 1996-11-01 15:52:52 +00:00
Marty Kraimer
2a8ec06437 Made changes so that -Wall and -pedantic work properly 1996-11-01 15:51:50 +00:00
Janet B. Anderson
603519ae1c R3.13.0.beta4 1996-11-01 15:37:48 +00:00
Marty Kraimer
f7433d8e93 Fixed bug in dbAllocForm 1996-10-31 22:29:04 +00:00
Marty Kraimer
5ca50b7ce7 recGblInitConstantLink allows non constant link 1996-10-31 22:28:16 +00:00
Marty Kraimer
7287113d58 added dbGetNelements and dbIsLinkConnected 1996-10-31 22:27:03 +00:00
Marty Kraimer
179c9f6df0 Changes for udf and other problems discovered while looking at udf 1996-10-31 22:24:14 +00:00
Janet B. Anderson
a160ebf5ba Added quotes to echo stmnts. 1996-10-31 20:01:00 +00:00
Janet B. Anderson
b52605705b siol cannot be a constant link. 1996-10-30 21:31:07 +00:00
Janet B. Anderson
3ef7c191db Changed inp type test to DB_LINK 1996-10-30 21:30:01 +00:00
Janet B. Anderson
73dc2a91e4 Typo erro bug fix 1996-10-30 19:30:03 +00:00
Janet B. Anderson
ad76c5efab In init_record the udf field is set to false only if svl is a
constant link and recGblInitConstantLink returns success.
1996-10-30 17:47:02 +00:00
Janet B. Anderson
5981891ee0 The udf field is no longer set to false in write_<record type>. 1996-10-30 17:46:33 +00:00
Janet B. Anderson
884737e82e In init_record the udf field is no longer set to false if inp
is a constant link and recGblInitConstantLink returns success
(rval, not val, was successfully initialized).
1996-10-30 17:45:15 +00:00
Janet B. Anderson
e301e1b359 In init_record the udf field is set to false only if inp
is a constant link and recGblInitConstantLink returns success.
In read_<record type> the udf field is set to false only if
inp is not a constant link and dbGetLink returns success.
1996-10-30 17:44:33 +00:00
Janet B. Anderson
a3b1033015 The siol field, if it is a constant, is now initialized
during record initialization.  In process the udf field
is now set to false if siol is not a constant link and
dbGetLink returns success.
1996-10-30 17:42:00 +00:00
Janet B. Anderson
ac5e26f132 In process the udf field is now set to false if dol is
not a constant link and dbGetLink returns success.
1996-10-30 17:41:37 +00:00
Janet B. Anderson
19cc8098dc In process the udf field is now set to false if dol is
not a constant link and dbGetLink returns success.
Changes made to modify DB_LINK test on rdbl field to
allow type CA_LINK.
1996-10-30 17:41:12 +00:00
Janet B. Anderson
49da47700d Changes made to modify DB_LINK tests on the lnk and dol
fields to allow type CA_LINK.
1996-10-30 17:40:50 +00:00
Janet B. Anderson
3d22feedd8 Changes made to modify DB_LINK test on cvl field to allow type CA_LINK. 1996-10-30 17:40:28 +00:00
Janet B. Anderson
bab66fe7cc Old style, pre R3.12, c code in init_record was updated. 1996-10-30 17:39:23 +00:00
Janet B. Anderson
4de3accb61 Udf now set to false in process when val is initialized. 1996-10-30 17:38:49 +00:00
Janet B. Anderson
ba2b082abd Udf now set to false in put_enum_string when val is initialized. 1996-10-30 17:38:29 +00:00
Janet B. Anderson
086f5999aa Changes made to fanoutRecord.c to modify DB_LINK test
on lnk* fields to allow type CA_LINK.
1996-10-30 17:37:54 +00:00
Janet B. Anderson
96f51f2b99 In process() the udf field is set to false when dbGetLink returns
success only if dol is not a constant link.
1996-10-30 17:37:32 +00:00
Janet B. Anderson
a93773ae77 Changes made to compressRecord.c to modify DB_LINK test
on inp field to allow type CA_LINK.
1996-10-30 17:37:02 +00:00
Janet B. Anderson
d997adeb16 The siol field, which was never used in record processing, has been
removed from aaiRecord.dbd and aaoRecord.dbd files. Old style, pre R3.12,
c code in init_record was updated.
1996-10-30 17:34:35 +00:00
Marty Kraimer
299c22ff0f minor format and message changes 1996-10-30 13:56:18 +00:00
Marty Kraimer
71e83671aa get rid of client_stat_summary. casr provides functionality 1996-10-29 21:06:32 +00:00
Marty Kraimer
1b66a4c204 Changed menu initial values to string from index 1996-10-29 20:58:05 +00:00
Marty Kraimer
0c8f41a6a0 Changed menu initial vales to string from index; cleaned up dbTest.c 1996-10-29 20:56:46 +00:00
Marty Kraimer
5268e13e74 Many changes to properly support DCT operation 1996-10-29 20:49:13 +00:00
Jim Kowalkowski
a0d4d84622 first proof reading corrections 1996-10-29 19:24:12 +00:00
Jim Kowalkowski
9427acb0a1 Much new doc added. Fixed bug in gdd.cc. 1996-10-29 15:40:02 +00:00
Jim Kowalkowski
41d5c292f9 New gdd reference manual 1996-10-25 12:33:12 +00:00
Jim Kowalkowski
f2ceaba174 many more changes 1996-10-24 17:37:03 +00:00
Jim Kowalkowski
0faa5d56cc New program for running programs with different priority and changing the
maximum number of file descriptors.
1996-10-22 15:40:04 +00:00
Jim Kowalkowski
072c850568 added line for vxWorks statistics device support 1996-10-21 19:04:06 +00:00
Jim Kowalkowski
0f4b4deb80 added the code for ioc statistic processing on IOC and workstation 1996-10-21 16:01:28 +00:00
Jim Kowalkowski
e22ae5f857 Added ai/ao device support for vxWorks statics (memory/load/TCP con) 1996-10-21 15:30:37 +00:00
Jim Kowalkowski
926298ac6d double blob 1996-10-17 12:42:23 +00:00
Jim Kowalkowski
e135b2a4c0 blob 1996-10-17 12:42:07 +00:00
Jim Kowalkowski
69a07d8807 took out strdup function - replaced with strDup 1996-10-17 12:41:48 +00:00
Jim Kowalkowski
5c341931d0 network byte order stuff / added strDup function to Helpers 1996-10-17 12:41:07 +00:00
Jim Kowalkowski
f78d291850 adjusted the network byte ordering dump 1996-10-17 12:40:06 +00:00
Jim Kowalkowski
89e5f59610 removed strdup definition, fixed up the local/network byte order functions 1996-10-17 12:39:14 +00:00
Jim Kowalkowski
09ce70661a Modified to store records with a visibility option for graphic editors.
The ".db" file now generates "grecord" for visible records and "record" for
invisible records.
1996-10-17 00:17:30 +00:00
Janet B. Anderson
22b550ed35 R3.13.0.beta2 1996-10-16 18:42:44 +00:00
Janet B. Anderson
a17b659a86 Added target arch mv162 1996-10-16 18:14:05 +00:00
Janet B. Anderson
b5e120d082 c++ code will, by default, not be compiled. 1996-10-16 14:05:36 +00:00
Marty Kraimer
b8d6a8216e In example database field(FLNK, "mrkc0a1.VAL ") removed
Extra rules in Makefile.Vx
1996-10-15 20:00:44 +00:00
Marty Kraimer
5587867f6f lval was not correctly updated 1996-10-15 19:59:14 +00:00
Marty Kraimer
be33ae291e Round rval 1996-10-15 19:58:05 +00:00
Marty Kraimer
932a4b0d5c Fixed some casts 1996-10-15 19:51:43 +00:00
Marty Kraimer
7452aea2bc Get rid of extra trailing \0 1996-10-15 19:34:23 +00:00
Marty Kraimer
178e034e75 add impLib stuff 1996-10-15 19:27:57 +00:00
Marty Kraimer
cbb5a6acde Allow records in the database but no hardware.
Dont set HW limit alarm. Let recod support do it.
1996-10-15 19:25:58 +00:00
Marty Kraimer
08a8e874eb Allow no field defs in record instance with { } 1996-10-15 19:24:49 +00:00
Marty Kraimer
29f381b8f4 Fix problem of iocInit hanging 1996-10-15 19:23:51 +00:00
Marty Kraimer
5d123c6a4d Fix default problems 1996-10-15 19:23:22 +00:00
Marty Kraimer
2d999ed858 The form for FWDLINK PV fields does not work correctly. 1996-10-15 19:22:07 +00:00
Marty Kraimer
956fba853e Now accepts the characters ^ and ~ in strings. 1996-10-15 19:20:55 +00:00
Marty Kraimer
97b96da957 The dbCa Event task may fail. 1996-10-15 19:18:29 +00:00
Marty Kraimer
63a377ce99 The scan task could fail if addressing location 0 causes a failure 1996-10-15 19:17:30 +00:00
Marty Kraimer
84df076e38 checks that lset was allocated 1996-10-15 19:15:26 +00:00
Marty Kraimer
582d4b64cd add defs for src/devOpt 1996-10-15 19:06:53 +00:00
Marty Kraimer
ebebde9539 sdr2recordtype Failed on ascii files that had invalid GUI defs 1996-10-15 19:05:51 +00:00
Marty Kraimer
8771c33c46 ca_build_and_connect changed to ca_search_and_connect 1996-10-15 19:04:14 +00:00
Janet B. Anderson
3eae90a803 Portability change - added MV definition 1996-10-14 19:07:59 +00:00
Janet B. Anderson
693de689e9 Portability change. 1996-10-14 18:51:41 +00:00
Janet B. Anderson
a30a0fcbaa Portability changes. 1996-10-14 18:45:18 +00:00
Janet B. Anderson
0283890686 Clean rule now uses rm macro. Removed . in VPATH def. 1996-10-14 16:33:36 +00:00
Janet B. Anderson
c1d0a4ad5a Changed clean rule to use macro def for rm. 1996-10-14 16:24:10 +00:00
Janet B. Anderson
b2fcff709b Removed extra slash from CAS def. 1996-10-14 16:16:21 +00:00
Janet B. Anderson
aed16987e2 Removed extra dependancy on deplibs. 1996-10-14 16:08:03 +00:00
Marty Kraimer
b6a5423a1f Original version 1996-09-20 15:37:38 +00:00
Janet B. Anderson
9610b9a07d Modified defs for hostArchs and crossArchs. 1996-09-17 14:49:07 +00:00
Janet B. Anderson
98df963844 Added DBDNAME to build definition and clean rule. 1996-09-17 14:48:28 +00:00
Jeff Hill
19f9d0c14d umsigned => unsigned 1996-09-16 22:55:01 +00:00
Jeff Hill
a5e1223b0c added subroutine wrapper around reads and writes 1996-09-16 22:14:02 +00:00
Jeff Hill
0db9c03505 drvTime.c is no longer used 1996-09-16 22:11:03 +00:00
Jeff Hill
a3ce428cdd better report 1996-09-16 22:03:49 +00:00
Jeff Hill
057e1723cb added several compiler support functions and updated to gcc 2.7.2 1996-09-16 21:56:03 +00:00
Jeff Hill
0f156d5219 this is also in libvxWorks 1996-09-16 21:27:11 +00:00
Jeff Hill
1d39b11b7f removed unused variable 1996-09-16 21:19:25 +00:00
Jeff Hill
9e12de8e4f added prototypes and fixed warnings 1996-09-16 21:18:54 +00:00
Jeff Hill
4aa19f07d7 fixed warinings and added epicsShareAPI 1996-09-16 21:18:12 +00:00
Jeff Hill
142b7515e3 fixed warnings 1996-09-16 21:07:11 +00:00
Jeff Hill
8feefadabf added rebuild target at lower levels 1996-09-16 19:35:59 +00:00
Jeff Hill
6a9030e5e6 added epicsShareAPI 1996-09-16 18:43:14 +00:00
Jeff Hill
bece5d0b9a fixed bug in test routine 1996-09-16 18:41:53 +00:00
Jeff Hill
24e0989142 include shareLib.h 1996-09-16 18:41:13 +00:00
Jeff Hill
815668143f backed out multi-thread build because most sites do not have tornado or gcc 2.7.2 1996-09-16 18:37:28 +00:00
Jeff Hill
737278aa41 fixed comment 1996-09-16 18:30:27 +00:00
Jeff Hill
c14d23494c fixed printf format warning 1996-09-16 18:29:16 +00:00
Jeff Hill
d611fa2d75 vxWorks port changes 1996-09-16 18:27:51 +00:00
Jeff Hill
1aa384308d added cvs log entries 1996-09-16 18:22:09 +00:00
Jeff Hill
2e80e8c2ee allow abs path 1996-09-16 18:19:47 +00:00
Jeff Hill
0830382ec7 added multiThread build 1996-09-16 18:01:31 +00:00
Jeff Hill
c253066bc7 local except => except handler & ca vers str routine 1996-09-16 16:41:47 +00:00
Jeff Hill
6fca0cd260 make EPICS version be the console title 1996-09-16 16:40:13 +00:00
Jeff Hill
470152454b local except => except handler 1996-09-16 16:39:20 +00:00
Jeff Hill
4a8507cb0d o dont print disconnect message when the last channel on a connection is
deleted and the conn goes away
o local exceptions => exception handler
1996-09-16 16:37:02 +00:00
Jeff Hill
6917b31975 local exceptions => exception handler 1996-09-16 16:35:22 +00:00
Jeff Hill
0cf19108db added epicsShareAPI to ca_message() 1996-09-16 16:34:24 +00:00
Jeff Hill
01b3617614 added ca_version() proto and pFile/lineNo args to exception args 1996-09-16 16:33:45 +00:00
Jeff Hill
27567a54ed added CA version string 1996-09-16 16:32:49 +00:00
Jeff Hill
c04f34be42 fixed NT warnings 1996-09-16 16:31:01 +00:00
Jim Kowalkowski
0d2b196be2 New doc files 1996-09-16 13:41:29 +00:00
Jim Kowalkowski
7c23cf9c8c makefile to build library outside of EPICS tree 1996-09-12 11:18:46 +00:00
Jim Kowalkowski
2d0dd7828f Adjusted dbMapper.cc so gdd to string function work correctly
Added checks in gdd.h so that get(pointer) functions work with scalars
1996-09-10 15:06:29 +00:00
Jim Kowalkowski
6fbc050c96 fixes to destroyData function 1996-09-07 13:03:07 +00:00
Janet B. Anderson
5856008613 R3.13.0.beta2 1996-09-05 14:47:19 +00:00
Marty Kraimer
f3003d9052 Remove rule for RECTYPES 1996-09-05 14:22:31 +00:00
Marty Kraimer
340ffec332 Forgot = 1996-09-05 13:42:25 +00:00
Marty Kraimer
91c6f156ff conversion should not have added .5 (bad for - numbers) 1996-09-05 13:01:27 +00:00
Marty Kraimer
2008c19e7d Forgot to save changes last time 1996-09-05 12:52:42 +00:00
Marty Kraimer
4dcb0e3ae6 Changed AB SLC500 DCM names to show that it is only for SLC500 DCM 1996-09-05 12:37:33 +00:00
Marty Kraimer
74bc7758b5 changed to show that support is for SCL500 Dcm 1996-09-05 12:36:05 +00:00
Jeff Hill
17143d0e12 wait for proper compiler installation 1996-09-04 22:51:58 +00:00
Jeff Hill
40be4d1cd5 allow vxWorks 5.1 and gnu win 32 1996-09-04 22:47:09 +00:00
Jeff Hill
d1ba9be665 installed 1996-09-04 22:41:41 +00:00
Jeff Hill
7f6bd17474 removed until the new gnu compilers are installed 1996-09-04 22:41:12 +00:00
Jeff Hill
6a534ca2b5 fixed gcc warnings 1996-09-04 22:08:50 +00:00
Jeff Hill
26ec4dd5c8 installed 1996-09-04 22:06:47 +00:00
Jeff Hill
a0db9a2eb2 not used 1996-09-04 22:06:24 +00:00
Jeff Hill
b5a102ef79 moved netdb.h include here 1996-09-04 22:04:07 +00:00
Jeff Hill
ed1491bb7b fixed gcc warnings 1996-09-04 21:59:03 +00:00
Jeff Hill
7fabc325bb added level arg to client_stat 1996-09-04 21:58:27 +00:00
Jeff Hill
5b546d2467 added vxWorks support 1996-09-04 21:54:56 +00:00
Jeff Hill
6440239832 allow use with goofy vxWorks 5.2 time spec - which has unsigned sec and
signed nsec
1996-09-04 21:53:36 +00:00
Jeff Hill
cb6c444a19 added hashed fd to fdi convert 1996-09-04 21:50:16 +00:00
Jeff Hill
c251b05020 MS Visual C defines sys_errlist in stdlib.h 1996-09-04 21:48:29 +00:00
Jeff Hill
1f7cc343c5 fixed gcc warning 1996-09-04 21:46:20 +00:00
Janet B. Anderson
d67eb28145 Top level dir no longer passed to MakeRelease 1996-09-04 21:41:36 +00:00
Jeff Hill
3001f7e82f no what on win32 1996-09-04 21:40:28 +00:00
Janet B. Anderson
3982ea7d17 Added info about new targets. 1996-09-04 21:22:34 +00:00
Jeff Hill
3fe00ec2a9 installed 1996-09-04 21:21:01 +00:00
Jeff Hill
11fa08c1e0 installed 1996-09-04 21:02:33 +00:00
Jeff Hill
b8d2273683 added GDD_NAME_PV_NAME 1996-09-04 20:58:55 +00:00
Jeff Hill
77fc9734b1 changes for MS VISC++ 1996-09-04 20:58:18 +00:00
Jeff Hill
289302f603 add GDD_NAME_PV_NAME 1996-09-04 20:55:02 +00:00
Jeff Hill
a01241aa19 fixed gcc warnings 1996-09-04 20:44:19 +00:00
Marty Kraimer
525842b076 added devABANALOG 1996-09-04 20:41:57 +00:00
Marty Kraimer
03a4c8ad01 added devABANALOG 1996-09-04 20:41:10 +00:00
Jeff Hill
8a7158b3c6 installed into CVS 1996-09-04 20:39:59 +00:00
Jeff Hill
08c57574d5 removed os depen stuff 1996-09-04 20:29:08 +00:00
Jeff Hill
a6c40247f1 (char *) cast below is for brain dead wrs prototype 1996-09-04 20:28:18 +00:00
Jeff Hill
86969d7b3a doccasdef.h 1996-09-04 20:27:02 +00:00
Jeff Hill
a3c13f6da6 use correct app type for exist test gdd, correct byte oder for mon mask, and efficient use of PV name gdd 1996-09-04 20:25:53 +00:00
Jeff Hill
0d0566253e added operator -> 1996-09-04 20:23:59 +00:00
Jeff Hill
15fda603a5 init new member cas and add arg to serverToolDebug() 1996-09-04 20:23:17 +00:00
Jeff Hill
7c0895bd82 removed operator -> and added member pv 1996-09-04 20:21:41 +00:00
Jeff Hill
5311ba4c15 removed sizeof(casEventMask::mask) for MSVISC++ 1996-09-04 20:20:44 +00:00
Jeff Hill
27b0c05bcf added missing byte swap on search reply port no 1996-09-04 20:19:47 +00:00
Jeff Hill
435208afa8 include db_access.h 1996-09-04 20:19:02 +00:00
Jeff Hill
0f1f7fc30c moved operator -> here 1996-09-04 20:18:27 +00:00
Jeff Hill
471acea0fc init new chan member 1996-09-04 20:18:03 +00:00
Jeff Hill
e122d8f4a6 use ptr not ref to satisfy MSVISC++ 1996-09-04 20:17:34 +00:00
Jeff Hill
53bde9e545 initialize new member - asyncIO 1996-09-04 20:13:16 +00:00
Jeff Hill
2ccaa6dcb6 added arg to serverToolDebugFunc() 1996-09-04 20:12:04 +00:00
Jeff Hill
8c8b971221 comment 1996-09-04 20:11:43 +00:00
Jeff Hill
dd43f91278 added new files 1996-09-04 20:10:43 +00:00
Jeff Hill
6b3a62de9f added main.cc 1996-09-04 20:09:33 +00:00
Jeff Hill
4bd45337bf add getEnums() stub 1996-09-04 20:08:55 +00:00
Jeff Hill
9351447cf2 removed main() 1996-09-04 20:08:33 +00:00
Jeff Hill
b9cdf72ee1 added defualt copy constructor fer MSVISC++ 1996-09-04 20:07:52 +00:00
Jeff Hill
81000e9391 added include of os specific area 1996-09-04 20:06:15 +00:00
Jeff Hill
19b81912fb added mt makefiles 1996-09-04 20:04:57 +00:00
Jeff Hill
b7df13b4fe fixed gcc warning 1996-09-04 20:02:32 +00:00
Jeff Hill
2f3befc845 test for non-nill piiu under vxWorks 1996-09-04 20:02:00 +00:00
Jeff Hill
826b68b652 string id resource now copies id 1996-09-04 19:57:11 +00:00
Janet B. Anderson
aece23e6ee Removed VPATH (puts ../$(INSTALL_LOCATION) in search path) 1996-09-04 19:19:52 +00:00
Janet B. Anderson
3a9ddfbdbb Change ARCHS and ACTIONS defs to +=. 1996-09-04 18:26:44 +00:00
Janet B. Anderson
11bdb5f6d4 Removed cvsignore files. 1996-09-04 18:22:48 +00:00
Janet B. Anderson
741450ce9e Removed copy of vxWorks files. 1996-09-04 18:18:25 +00:00
Janet B. Anderson
868e6c417d Modified dependency. 1996-09-04 18:17:18 +00:00
Marty Kraimer
0c19e23835 added new rules 1996-09-04 15:29:48 +00:00
Marty Kraimer
342ffb5d83 fixed bugs repoeted in 3.13 beta1 1996-09-04 15:28:56 +00:00
Marty Kraimer
afa44fae79 added routines to obtain options for link field 1996-09-04 15:27:53 +00:00
Marty Kraimer
333b379287 fixed bugs 1996-09-04 15:26:58 +00:00
Marty Kraimer
36f74c934e removed event throttling code 1996-09-04 15:25:54 +00:00
Marty Kraimer
8f41686a98 If process routine found udf true it did not perform normal record completion 1996-09-04 15:25:19 +00:00
Marty Kraimer
75feb3a5d4 Changes for 3.13 1996-09-04 15:23:54 +00:00
Marty Kraimer
50ace741fe removed obsolete event throttling code 1996-09-04 15:23:22 +00:00
Marty Kraimer
036cd8dd26 Added INC+= 1996-08-27 16:11:30 +00:00
Marty Kraimer
9758aa4a45 Error on special gave wrong error message 1996-08-27 16:04:31 +00:00
Marty Kraimer
cf1cb554f6 dbPutField - Call special before converting to DB or CA 1996-08-27 16:03:42 +00:00
Marty Kraimer
ee68f746c6 Sometimes sdr2recordtype can't find field name 1996-08-27 15:48:31 +00:00
Jeff Hill
85f2cf5833 No longer used 1996-08-27 15:45:13 +00:00
Jim Kowalkowski
5819ac0c48 final repairs to string functions, put() functions, and error code printing 1996-08-27 13:05:10 +00:00
Jim Kowalkowski
3e26a12948 completed fixes for the aitString and fixed string management 1996-08-23 20:29:36 +00:00
Jim Kowalkowski
279385ecb9 made dump functions print more useful information 1996-08-23 20:28:46 +00:00
Jim Kowalkowski
75c91c8035 More fixes to make strings and fixed string work better. 1996-08-22 21:05:43 +00:00
1139 changed files with 93994 additions and 54924 deletions

View File

@@ -10,6 +10,18 @@
# [-b] - For fully built release
#
# $Log$
# Revision 1.11 1997/07/01 18:29:17 jba
# Changed Tar to tar in output filename.
#
# Revision 1.10 1997/01/17 19:59:37 jba
# Use config/CONFIG_BASE_VERSION to get version info.
#
# Revision 1.9 1996/09/04 21:41:36 jba
# Top level dir no longer passed to MakeRelease
#
# Revision 1.8 1996/07/02 13:45:09 jba
# Added dbd and base/config dirs. Removed epics/config and base/rec.
#
# Revision 1.7 1996/06/25 21:54:42 jba
# Command line parm now base dir
#
@@ -75,53 +87,46 @@ fi
FULLY_BUILT=NO
if [ "${2}" = "-b" ]; then
if [ "${1}" = "-b" ]; then
FULLY_BUILT=YES
shift
if [ "${1}" != "." ]; then
echo "TOP: Cannot create a fully built release.";
exit 1;
fi
fi
# Retrieve EPICS release string from src/include/epicsVersion.h
grep EPICS_VERSION_STRING src/include/epicsVersion.h > /dev/null 2>&1 || ERR=1;
# Retrieve EPICS release string from config/CONFIG_BASE_VERSION
. config/CONFIG_BASE_VERSION
if [ "$ERR" = "1" ];
if [ -z "${EPICS_VERSION}" ];
then
echo "TOP: Cannot retrieve release number from include/epicsVersion.h";
echo "TOP: Cannot retrieve release number from config/CONFIG_BASE_VERSION";
exit 1;
fi
RELS=`grep "EPICS_VERSION_STRING" src/include/epicsVersion.h \
| sed -e 's-.*Version--' \
-e 's-[ ][ ]*--g' \
-e 's-".*--' \
-e 's-\.0$--'`;
if [ -z "${RELS}" ];
then
echo "TOP: Cannot retrieve release number from src/include/epicsVersion.h";
exit 1;
fi
RELS="R${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}";
RELS="R${RELS}";
echo TOP: Creating ../${RELS}.tar;
echo TOP: Creating ../${RELS}.Tar;
if [ -f ${RELS}.Tar* ];
if [ -f ${RELS}.tar* ];
then
echo "TOP: This release has already been created.";
echo "TOP: Remove Tar file or edit src/include/epicsVersion.h.";
echo "TOP: Remove tar file or edit config/CONFIG_BASE_VERSION.";
exit 1;
fi
# Create list of files and dirs to include in Tar file
# Create list of files and dirs to include in tar file
cd ..
ls base/README* | xargs tar cvf ${RELS}.Tar
ls base/README* base/*.bat | xargs tar cvf ${RELS}.tar
ls base/Make* > /tmp/make_release.out.$$;
ls base/*COPYRIGHT* >> /tmp/make_release.out.$$;
if [ -d startup ];
then
find startup -name CVS -prune -o ! -type d -print \
@@ -154,7 +159,7 @@ find base/config -name CVS -prune -o -name SCCS -prune -o ! -type d -print \
find base/src -name CVS -prune -o -name SCCS -prune -o ! -type d -print \
| grep -v '/O\..*$' >> /tmp/make_release.out.$$
cat /tmp/make_release.out.$$ | xargs tar rvf ${RELS}.Tar
cat /tmp/make_release.out.$$ | xargs tar rvf ${RELS}.tar
rm /tmp/make_release.out.$$

View File

@@ -18,17 +18,26 @@ include $(TOP)/config/CONFIG_BASE
DIRS = src config
INSTALL_BIN = $(INSTALL_LOCATION)/bin/$(HOST_ARCH)
#
# this bootstraps in makeMakefile.pl (and others) so that it can
# be used to create the first O.xxxx/Makefile
#
PERL_BOOTSTRAP_SCRIPTS = $(notdir $(wildcard $(TOP)/src/tools/*.pl))
PERL_BOOTSTRAP_SCRIPTS_INSTALL = $(PERL_BOOTSTRAP_SCRIPTS:%=$(INSTALL_BIN)/%)
all host cross inc rebuild uninstall clean depends buildInstall :: $(PERL_BOOTSTRAP_SCRIPTS_INSTALL)
include $(TOP)/config/RULES_TOP
release:
@echo TOP: Creating Release...
@./MakeRelease ${TOP}
@./MakeRelease
built_release: install
built_release:
@echo TOP: Creating Fully Built Release...
@./MakeRelease ${TOP} -b
@./MakeRelease -b $(INSTALL_LOCATION)
uninstall::
@DIR1=`pwd`;cd $(INSTALL_LOCATION);DIR2=`pwd`;cd $$DIR1;\
if [ "$$DIR1" != "$$DIR2" ]; then rm -fr $(INSTALL_LOCATION)/config; fi
$(INSTALL_BIN)/%.pl: $(TOP)/src/tools/%.pl
$(PERL) $(TOP)/src/tools/installEpics.pl -d -m 555 $< $(INSTALL_BIN)

225
README
View File

@@ -1,59 +1,100 @@
$Id$
----------------------------------------------------------------------------
3.12 EPICS BASE Notes and Build Instructions.
3.13 EPICS BASE Notes and Build Instructions.
- By Matthew Needes
----------------------------------------------------------------------------
Notes:
1. Before you can build or really use EPICS, you must properly set the
environemnt variable HOST_ARCH. The epics/startup/HostArch script file
has been provided to set HOST_ARCH.
1. Before you can build or use EPICS, the environemnt variable HOST_ARCH
must be set. The epics/startup/HostArch script file has been provided
to set HOST_ARCH.
2. You must use GNU make (which is now THE supported make utility) for
the build, gnumake. Set your path so that a recent version (e.g.
V3.70) of gnumake is available.
3. You must have perl installed. See the README.Perl in this directory. The
config files specify the perl full pathname as /usr/bin/perl for
unix builds and C:\Perl\bin\perl for WIN95/NT builds. You can override
these specifications with a CONFIG_SITE_HOST_ARCH.<host_arch> file.
4. You may need vendors C and C++ compilers in your search path. (Check
the definitions of ACC and CCC in CONFIG.Host.<host_arch> or gnu GCC
and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified in CONFIG_SITE).
4. For building base you must have echo in your search path. For unix host
builds you must also have ar, cp, rm, mv, ranlib, and mkdir in your search
path and /bin/chmod must exist.
----------------------------------------------------------------------------
Part 1 - Configuring and Building EPICS Base
----------------------------------------------------------------------------
1.1 To configure EPICS, edit the following files:
1.1 To configure EPICS, edit the following file:
config/CONFIG_SITE - Build choices/HOST_ARCH/Vx location.
config/CONFIG_SITE.* - Location of X, etc.
config/CONFIG - For overriding specific variables.
config/CONFIG_SITE_ENV - For site-specific environment settings
For a specific host architecture you may want to edit the following file
config/CONFIG_SITE.Host.<arch> - Override Host build settings for a host arch
config/CONFIG_SITE.Vx.<arch> - Override Vx build settings for a host arch
config/CONFIG_SITE_HOST_ARCH.<arch> - Override build settings for a host arch
Optionally you may want to edit the following files
config/CONFIG_SITE.Host - Override Host build settings for all host archs.
config/CONFIG_SITE.Vx - Override Vx build settings for all host archs.
config/CONFIG - Override build settings for all host archs.
1.2 To add a target architecture to EPICS:
cd base/config
cp CONFIG.mv167 CONFIG.YOUR_ARCH
edit CONFIG.YOUR_ARCH - For compiler flags / etc.
cp CONFIG.Vx.mv167 CONFIG.Vx.YOUR_ARCH
edit CONFIG.Vx.YOUR_ARCH - For compiler flags / etc.
cp CONFIG.Vx.68k CONFIG.Vx.YOUR_ARCH_CLASS
cp CONFIG_SITE.Vx.68k CONFIG_SITE.Vx.YOUR_ARCH_CLASS
- ONLY IF you are adding a new architecture class,
see note in Appendix A.
edit CONFIG_BASE - Add architecture to list.
edit CONFIG_SITE - Add architecture to CROSS_COMPILER_TARGET_ARCHS list.
1.3 To build EPICS:
cd epics/base
gnumake - To build and install EPICS.
gnumake - To install include files, build and install EPICS.
(Same as "gnumake inc install")
gnumake all - Same as "gnumake"
gnumake clean - To clean temporary object files. Top level
clean will remove all the O.ARCH dirs, not
only those specified in BUILD_ARCHS.
clean will remove the O.ARCH dirs specified
in BUILD_ARCHS.
gnumake uninstall - Only available at the top level directory.
Cleans directories created by the install.
gnumake rebuild - Same as "gnumake clean all"
1.4 "Partial" build commands:
gnumake clean.sun4 - Cleans sun4 binaries in O.sun4 dirs only.
gnumake install.sun4 - Builds sun4 only.
gnumake install.mv167 - Builds mv167 only (a HOST_ARCH build must
be complete before this can be issued).
The complete set of targets now supported are:
action
arch
action.arch
dir
dir.action
dir.arch
dir.action.arch
where:
action can be clean, inc, install, depends, or build
action can also be uninstall or rebuild at top level only
dir is the name of a subdirectory.
arch can be host, cross, sun4, solaris, mv167, ...
Examples are:
gnumake inc - To install include files
gnumake install.host - To build and install EPICS for host arch.
gnumake install.cross - To build and install EPICS for Vx archs.
gnumake clean.sun4 - Cleans sun4 binaries in O.sun4 dirs only.
gnumake install.sun4 - Builds sun4 only.
gnumake install.mv167 - Builds mv167 only (a HOST_ARCH build must
be complete before this can be issued).
NOTES:
@@ -99,26 +140,48 @@ manager. It specifies:
etc.
----------------------------------------------------------------------------
CONFIG.ARCH - This file defines a particular architecture. It
CONFIG.Host.ARCH - This file defines a particular host architecture. It
contains the following variables:
BUILD_TYPE: Unix / Vx
ARCH_CLASS: 68k / sun4 / hp700 / etc.
ARCH_CLASS: solaris / sun4 / hp700 / etc.
Host architecture OS vendor C and C++ complier variables.
Architecture dependent build flags. The flag names / contents
depend on your architecture class.
----------------------------------------------------------------------------
CONFIG_HOST_ARCH.ARCH - This file contains the following variable:
WIND_HOST_TYPE: sun4-solaris2 / sun4-sunos4 / x86-win32 / etc.
----------------------------------------------------------------------------
CONFIG_SITE.ARCH - Contains site specific definitions pertaining to a
particular architecture. This file's primary usefulness is to
----------------------------------------------------------------------------
CONFIG.Vx.ARCH - This file defines a particular target architecture. It
contains the following variables:
ARCH_CLASS: 68k / sun4 / hp700 / etc.
Architecture dependent build flags. The flag names / contents
depend on your architecture class.
CMPLR_SUFFIX: Vx GNU cross compiler suffix definition.
----------------------------------------------------------------------------
----------------------------------------------------------------------------
CONFIG_SITE.BUILD_TYPE.ARCH - Contains site specific definitions pertaining to a
particular architecture and build type. This file's primary usefulness is to
define site specific compile and link flags.
----------------------------------------------------------------------------
CONFIG_COMMON - Contains definitions describing the layout of base.
CONFIG_COMMON - Contains definitions describing the layout of base
and definitions common to all builds.
----------------------------------------------------------------------------
CONFIG.Host.UnixCommon - Contains host definitions common to all Unix archs.
----------------------------------------------------------------------------
CONFIG_BASE - Defines what subdirectories get built by default under base.
----------------------------------------------------------------------------
RULES.Vx - Rules for building with VxWorks makefiles.
CONFIG_BASE_VERSION - Defines the version of base.
----------------------------------------------------------------------------
RULES.Unix - Rules for building with Unix makefiles.
CONFIG_ENV - EPICS Environment Parameter configuration file.
----------------------------------------------------------------------------
CONFIG_SITE_ENV - EPICS Environment Parameter Site configuration file
----------------------------------------------------------------------------
RULES.Vx - Rules for building with Makefile.Vx makefiles.
----------------------------------------------------------------------------
RULES.Host - Rules for building with Makefile.Host makefiles.
----------------------------------------------------------------------------
RULES_TOP - Top level rules for building.
----------------------------------------------------------------------------
@@ -134,12 +197,16 @@ Filename SYS_MGR ADD_VX_ARCH ADD_UNIX_ARCH DEVELOPER
CONFIG m - - m
CONFIG_SITE m m m -
CONFIG_SITE_ENV m - - -
CONFIG.ARCH - c c -
CONFIG.Host.ARCH - c c -
CONFIG_HOST_ARCH.ARCH - c c -
CONFIG_SITE.Host.ARCH - - - -
CONFIG.Vx.ARCH - c c -
CONFIG_SITE.ARCH - c c -
CONFIG.Vx.ARCH_CLASS - c* - -
RULES.Vx - - - -
RULES.Unix - - - -
RULES.Host - - - -
CONFIG_BASE - - - -
CONFIG_BASE_VERSION - - - -
CONFIG_COMMON - - - -
CONFIG_ENV - - - -
RULES_ARCHS - - - -
@@ -163,59 +230,61 @@ RULES_TOP - - - -
src/db/Makefile.Vx (An example EPICS makefile)
^ ^
| +--- 3. RULES.Vx
| +--- 2. RULES.Vx
| Default rules.
+------- 2. CONFIG
^ ^ ^ ^
| | | |
| | | +- 1. CONFIG_SITE
| | | HOST_ARCH = sun4
| | | BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
| | | VX_DIR = /vxworks
| | | More.
| | +--- 2. CONFIG_COMMON
| | General info about base.
| +----- 3. CONFIG.hkv2f
| ^ BUILD_TYPE = Vx
| | ARCH_CLASS = 68k
| | Arch Specific Compiler Flag Setup
| +--- a. CONFIG.Vx.68k
| Compiler/utility setup for ARCH_CLASS
+------- 4. CONFIG_SITE.hkv2f
Site Specific setup
+----1. CONFIG_BASE
^
|
+ 1. CONFIG
^^^^^^^
||||||+- 1. CONFIG_COMMON
|||||| General info about base.
|||||+-- 2. CONFIG_BASE_VERSION
||||| Base version.
||||+--- 3. CONFIG_SITE
|||| HOST_ARCH = sun4
|||| CROSS_COMPILER_TARGET_ARCHS = mv167 hkv2f
|||| VX_DIR = /vxworks
|||| More.
|||+---- 4. CONFIG_HOST_ARCH.sun4
||| WIND_HOST_TYPE = sun4-sunos4
||+----- 5. CONFIG.Vx
|| Definitions for Vx builds
|+------ 6. CONFIG.Vx.hkv2f
| ARCH_CLASS = 68k
| Arch Specific Compiler Flag Setup
| Vx GNU cross compiler suffix
+------- 7. CONFIG_SITE.Vx.hkv2f
Site Specific setup
---------------------------- sun4 example --------------------------------
(files are numbered in the order of their inclusion)
src/db/Makefile.Unix (An example EPICS makefile)
^ ^
| +--- 3. RULES.Unix
| +--- 2. RULES.Vx
| Default rules.
+------- 2. CONFIG
^ ^ ^ ^
| | | |
| | | +- 1. CONFIG_SITE
| | | HOST_ARCH = sun4
| | | BUILD_ARCHS = $(HOST_ARCH) mv167 hkv2f
| | | VX_DIR = /vxworks
| | | More.
| | +--- 2. CONFIG_COMMON
| | General info about base.
| +----- 3. CONFIG.sun4
| BUILD_TYPE = Unix
| ARCH_CLASS = sun4
| Arch Specific Compiler Flag Setup
+------- 4. CONFIG_SITE.sun4
Directory locations
+----1. CONFIG_BASE
^
|
+ 1. CONFIG
^^^^^
|||||+- 1. CONFIG_COMMON
||||| General info about base.
||||+-- 2. CONFIG_BASE_VERSION
|||| Base version.
|||+--- 3. CONFIG_SITE
||| HOST_ARCH = sun4
||| CROSS_COMPILER_TARGET_ARCHS = mv167 hkv2f
||| VX_DIR = /vxworks
||| More.
||+---- 4. CONFIG_HOST_ARCH.sun4
|| WIND_HOST_TYPE = sun4-sunos4
|+----- 5. CONFIG.Host.sun4
| ARCH_CLASS = sun4
| Arch Specific Compiler Flag Setup
| Vx GNU cross compiler suffix
+------ 6. CONFIG_SITE.Host.sun4
Site Specific setup
----------------------------------------------------------------------------
Part 4 --- EPICS makefile rules
----------------------------------------------------------------------------
Rules supported by lower level Makefiles:
depends - Generate include dependencies
build - Builds objects, using libraries from "build_libs"
install - Installs executables in bin/ARCH
clean - Cleans objects

View File

@@ -1,16 +1,10 @@
Special Notes on Linux
1) The epics makefiles use GNU make which is the make that comes
with Linux. You need to make a link from make to gnumake and
have it in your path. After you have defined the EPICS environement
variable, you can use:
ln -s /usr/bin/make $EPICS/base/tools/gnumake
At this point, support for Linux only involves channel access
clients. Since Vxworks is not available for Linux, you must
use other platforms for developing server side code.
2) At this point, support for Linux only involves channel access
clients. Since Vxworks is not available for Linux, you must
use other platforms for developing server side code.
3) You MUST start caRepeater by hand before running a client.
You MUST start caRepeater by hand before running a client.
Prior to running a client, you must run:
caRepeater &

44
README.Perl Normal file
View File

@@ -0,0 +1,44 @@
Perl
====
A number of shell scripts are now Perl scripts,
most important:
tools/installEpics.pl
include/makeEpicsVersion.pl
libCom/bldEnvData.pl
libCom/makeStatSymTbl.pl
sequencer/makeVersion.pl
WIN32 also uses
tools/cp.pl, mv.pl, rm.pl, mkdir.pl
which should behave like the UNIX cp, mv, rm, rmdir.
All systems could use the Perl versions but that seems
to be overkill for UNIX.
Advantages:
* no need for ls, date, basename, grep, awk, sed, ...,
which made the make UNIX-specific.
* Perl is currently available for Unix, OS/2, WIN32, VMS
and the scripts should work on all those systems
Disadvantage:
* You have to get Perl, look e.g. at http://www.perl.com
* Perl version 5.003_02 works, we don't know about earlier versions.
Compile Perl:
No big deal,
* on UNIX say 'configure' and 'gnumake',
* on Windows use MX Visual C++,
use File/Open Workspace to open the Makefile {PERL}/perl5i.mak,
use Build/Batch build to select eiher the Release or Debug targets.
You can do the same with the Makefile {Perl}/Ext/WIN32/win32.mak
- nice tools but not necessary for EPICS.
Then call {PERL}/bin/perlw32-install.bat
In any case, read the texts that come with perl!

181
README.WIN32 Normal file
View File

@@ -0,0 +1,181 @@
Compiling EPICS and Building IOC Applications on WIN32 (Windows95/NT)
---------------------------------------------------------------------
Original port of EPICS base to WIN32 (Windows95/NT)
was done by Kay-Uwe Kasemir 11/96
please mail questions, comments, corrections, additional examples, etc
to johill@lanl.gov
0) what you will get
--------------------
Right now this port of EPICS to WIN32 should allow you to
* compile almost all of EPICS base using {Tornado, MS Visual C, perl,
GNU make} (only {MS Visual C, perl, GNU make} if you prefer
to compile only the host portions of EPICS base).
* load EPICS on an IOC (486, pentium, 68k, ...),
load databases
(no drivers/devices for real I/O available, yet.
Some Greenspring IP support [Relay, Dig, ADC, DAC] is in progress)
* build and use ca.dll on NT or Win95 to access all IOCs,
as well as the Com-library, gdd-library, cas-library,
and all other EPICS base libraries as DLLs.
* build gdd, cas and a demo of the new portable CA server on WIN32.
1) see what you have
--------------------
To compile EPICS on WIN32, we need
WindRiver System's Tornado (used: 1.0) (not required if host only build)
Microsoft's Visual C/C++ (used: 4.0) (borland C++ rumored to work also)
and some tools:
gnu make - www.gnu.org (we used 3.76)
perl - www.perl.org (we used 5.003)
The perl interpreter and gnu make are available 'on the net'
as sources which compile with MS Visual C++.
If you cannot/don't want to find them, contact me, please!
2) set environment variables
(Setting env. vars. is different: for NT, use Settings/System,
for Win95 use autoexec.bat)
When setting paths in the EPICS CONFIG files for WIN32:
** Note that that each "\" in any path variables
must be replaced with a "\\" (this is because GNU make treats
all "\" characters as line continuation)
** Note that that each space in any file name or
path name variable must be replaced with
a "\ " (this is because GNU make treats all " " separated
input as independent tokens in the input stream.
** WIN32 will generally allow "/" and "\" interchangeably in file paths,
but the DOS shell appears to only accept "\".
Your path should include:
- The EPICS-binaries that we are about to build in <EPICS>base/bin/WIN32
- The System (for me it's in NT40...)
- The MS Visual C compiler binaries
Check with e.g.:
>echo %Path%
C:\WINNT35.0\system32;
C:\WINNT35.0;
c:\msdev\bin;
c:\perl5\bin;
c:\make-3.75\WinRel;
c:\epics\base\bin\win32 (really where INSTALL_LOCATION specifies)
On NT, "Path" is defined by the operating system, on Win95, it's "PATH" instead.
MS Visual C and Tornado should be installed properly with
these env. variables set:
WIND_BASE=c:\Tornado (required for cross development only)
WIND_HOST_TYPE=x86-win32 (required for cross development only)
This way the EPICS makesystem can locate Tornado
without any changes to the files in base/config.
So for pc486 the settings in CONFIG_SITE where
you specify the location of VxWorks are ignored,
this information is taken from WIND_BASE and _HOST_TYPE!!
MSDevDir=C:\MSDEV
include=c:\msdev\include;c:\msdev\mfc\include
lib=c:\msdev\lib;c:\msdev\mfc\lib
Select host arch to build:
HOST_ARCH=WIN32 (used by the make system)
Set the "TMP" environment variable if you need to specify where
temporary files are created.
Directory Used For Temporary Files Conditions
---------------------------------- ----------
Directory specified by TMP TMP environment variable is set,
and directory specified by TMP exists.
dir argument to _tempnam TMP environment variable is not set, or
directory specified by TMP does not exist.
P_tmpdir in STDIO.H dir argument is NULL, or dir is name of
nonexistent directory.
Current working directory P_tmpdir does not exist.
On my system I see in stdio.h that _P_tmpdir is "/". Here is a common
setting for "TMP" (the C:\TEMP directory must exist).
TMP=C:\TEMP
3) building EPICS
-----------------
Prepare apx. 2 ltr. Tee and type:
cd <epics>/base
make (use gnu make)
Watch for errors and send them to me.
Known problems:
* gnumake seems to be faster than WIN32 sometimes
which results in warnings/errors like
"file has modification date in the future"
for newly created things.
Very seldom this is fatal, so you have to
stop gnumake and restart it.
* This is strange because Windows95/NT doesn't care
about upper/lower case:
WIN32 is WIN32, not win32. Gnumake fails
if e.g. base/src/include/os/WIN32 is ...win32.
4) Creating EPICS IOC applications under WIN32
o create application development folder
o start a DOS window and change your working directory to the folder
created above (with the DOS "cd" command)
o to create an example application type:
"perl c:\epics\bin\win32\makeBaseApp.pl -b c:\\epics -e
** Note that that each "\" above in any path arguments to makeBaseApp.pl
must be replaced with a "\\" (this is because GNU make treats
all "\" characters as line continuation)
** Note that that each space in any file name or
path name argument to makeBaseApp.pl must be replaced with
a "\ " (this is because GNU make treats all " " separated
input as independent tokens in the input stream.
** Note that c:\epics above must be replaced by the path
to your epics source installation (or where INSTALL_LOCATION
specifies)
o General information on EPICS IOC application development can be found in
the "EPICS IOC Application Developers Guide". To see all of the options
supported by makeBaseApp.pl type "perl c:\epics\bin\win32\makeBaseApp.pl"
5) EPICS GNU make makefiles can be executed from within a Visual C++ "makefile"
style project. This allows EPICS programs to be developed directly inside of
the visual C++ environment. To do this create a "makefile" project and place your
gnu make command in the build configuration (accessed from the project/settings menu).
You will also need to add GNU make and <EPICS>/bin/win32 into the Visual C++
executable search path (from the tools/options menu). I have not so far determined
how to configure visual C++ so that it is possible to double click on the compiler
error messages generated within an EPICS "makefile" style project and have visual
C++ immediately position the cursor on the corresponding line in the source (as is
normally the case in the visual C++ environment). If you solve this problem please
forward the details to johill@lanl.gov.
Good luck !
-Kay

46
README.cxxTemplates Normal file
View File

@@ -0,0 +1,46 @@
The C++ templates supplied with EPICS base are in
"$(EPICS)/base/src/cxxTemplates".
In Stroustrups's "The C++ Programming Language" Appendix A: r.14.9
(ANSI/ISO resolutions) a mechanism is described for the explicit
instantiation of template member functions (that are not inline).
At this time some compilers do not support this mechanism (and use
a template database snd/or smart linker instead). Other compilers
(such as g++) provide only limited support for other forms of
instantiation (g++ does not yet provide a template database or
a smart linker for templates).
Since there is no defacto standard mechanism for instatiating
templates at this time we are defining the preprocessor flag
EXPL_TEMPL in the build system when the compiler supports
explicit instantiation and the compiler does not support
automatic instantiation via a smart linker and/or template
database (currently this is only g++).
EPICS codes that use templates may need to include a code block
as follow that instantiates the template only once into each
program.
#include <classXYZ.h>
#include <templXXX.h>
//
// if the compiler supports explicit instantiation of
// template member functions
//
#if defined(EXPL_TEMPL)
//
// From Stroustrups's "The C++ Programming Language"
// Appendix A: r.14.9
//
// This explicitly instantiates the template class's member
// functions into "templInst.o"
//
template class templXXX <classXYZ>;
#endif
Jeff Hill 3-6-97
johill@lanl.gov

87
README.cygwin32 Normal file
View File

@@ -0,0 +1,87 @@
Compiling EPICS on cygwin32 (Windows95/NT)
------------------------------------------
Right now this port of EPICS to cygwin32 it is possible to
compile the EPICS base for the cygwin32 Host using Cygnus' beta19
release of the GNU-win32 tools.
To build EPICS on Win95 or NT using cygwin32, we need
EPICS base distribution, R3.12.0.beta12 or later, available
from http://aps.anl.gov/...
Cygnus's latest gnu-win32 distribution, available from
http://www.cygnus.com/misc/gnu-win32/ (release b19 or later)
Perl,version 5.003 or later, available from
http://www.perl.org/CPAN/ports/win32/
Optional items
CVS, version 1.9 or later, available from
http:/download.cyclic.com
windows-nt - cvs-1.9.10.tar.gz
patch.exe
win32gnu.dll
vim ( Vi IMproved), version 4.5 or later, available from
http://www.cygnus.com/misc/gnu-win32/
BUILD INSTRUCTIONS
------------------
1) Install the gnu-win32 binary release
---------------------------------------
Download the whole release, cdk.exe, to get the developemnt tools
First move out of the way any older versions of gnuwin32
Run cdk.exe and follow the install instructions.
Don't forget to create a \tmp dir and setup the \bin dir.
(Create a \temp dir if you install cvs.)
mkdir \tmp
mkdir \temp
mkdir \bin
cd \bin
copy C:\cygnus\b19\H-i386-cygwin32\bin\sh.exe sh.exe
Install the b19.1 bug fix update to the Cygwin32 library.
(Optional: Install the GNU-WIN32 compiler replacement from
the ECGS project)
2) Install the perl distribution
--------------------------------
pw32i316.exe (Execute and follow instructions)
3) Install the epics base distribution
--------------------------------------
mkdir <epicsBaseReleaseDir>
chdir <epicsBaseReleaseDir>
cp <dirname>\<basereleasename>.gz .
gunzip -d <basereleasename>.gz
chmod +w -R *
4) Set environment variables and path using cygwin32.bat
-------------------------------------------------------------
<edit cygwin32.bat changing paths if necessary>
cd <epicsBaseReleaseDir>\startup
cygwin32.bat
5) Set site specific parms in epics base\config files
-----------------------------------------------------
cd <epicsBaseReleaseDir>\base\config
<edit CONFIG_SITE* files>
6) Build epics base
-------------------
cd <epicsBaseReleaseDir>\base
make
7) Create an EPICS application area (note forward slashes on perl cmd)
---------------------------------------------------------------------
mkdir <epicsappdir>
cd <epicsappdir>
perl <epicsBaseReleaseDir>/bin/cygwin32/makeBaseApp.pl -l
perl <epicsBaseReleaseDir>/bin/cygwin32/makeBaseApp.pl -t example example

View File

@@ -1,12 +1,28 @@
#
# supplement README for HP700 and Alpha OSF/1 builds
# supplement README for HP700
#
# Johnny Tang 5-29-97
#
# M. Anderson and J. Tang
1. VxWorks 5.2 for HP-UX
- Directory permissions may not be correct across multiple machines, so a
- Make sure that you have set VX_DIR and VX_GNU to your
VxWorks root directory.
% chmod -R ugo+rw base extensions
- Under $(VX_DIR), create a soft link:
hp700.68k -> hp9700.68k
might be necessary.
2. Modify base/config/CONFIG_SITE file
- ANSI=HPACC
- STANDARD=HPCC
- CPLUSPLUS=G++
3. HP native c++ compiler has problem to handle the head files
in which a inline function is used in conjuction with template
base/src/cas, the portable CA server can't be compiled successfully
because of the above limitation.
This problem can be resolved by spliting the function declarations
from the inline code in the files in base/src/cxxTemplates.

View File

@@ -1,6 +1,9 @@
----------------------------------------------------------------------------
EPICS R3.12.2 Notes for Solaris
EPICS Notes for Solaris
- By Andrew Johnson
updated 12-16-96 by Jeff Hill
----------------------------------------------------------------------------
Notes:
@@ -8,8 +11,10 @@ Notes:
1. In order to build EPICS under Solaris 2, you must ensure that the
solaris directory /usr/ccs/bin is in your search path.
2. It is not possible to compile EPICS under Solaris 2 using only the
GNU gcc compiler -- you must have the Sun SPARCworks ANSI C compiler.
2. It is now possible to compile EPICS under Solaris 2 using either the
GNU gcc compiler or the Sun SPARCworks ANSI C compiler. The g++/
Sun SPARCworks ANSI C compiler combination has compiled and linked
without errors but has not been extensively tested.
3. EPICS under Solaris 2 no longer uses the UCB compatability libraries.
In order to ensure that the /usr/ucblib files are not inherited, you

1399
RELEASE_NOTES.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -2,29 +2,60 @@
# $Id$
#
# The developer may edit this file.
# assume T_A is the host arch if not specified
# Site-specific build options
#
include $(EPICS_BASE)/config/CONFIG_SITE
# EPICS base definitions
#
include $(EPICS_BASE)/config/CONFIG_COMMON
# assume T_A is the host arch if not specified
ifndef T_A
T_A = $(HOST_ARCH)
endif
#
# EPICS version definitions
#
include $(EPICS_BASE)/config/CONFIG_BASE_VERSION
# Site-specific build options
#
include $(EPICS_BASE)/config/CONFIG_SITE
# Host architecture specific definitions
#
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.$(HOST_ARCH)
#
-include $(EPICS_BASE)/config/CONFIG_SITE_HOST_ARCH.$(HOST_ARCH)
ifdef T_A
# Build type specific definitions
#
-include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE)
#
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE)
# Architecture specific definitions
#
include $(EPICS_BASE)/config/CONFIG.$(T_A)
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(T_A)
#
-include $(EPICS_BASE)/config/CONFIG_SITE.$(T_A)
ifneq ($(HOST_ARCH),$(T_A))
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE).$(HOST_ARCH)
endif
#
-include $(EPICS_BASE)/config/CONFIG_SITE.$(BUILD_TYPE).$(T_A)
endif
# User specific definitions
#
-include $(HOME)/.EPICS_CONFIG
-include $(HOME)/EPICS_CONFIG
-include $(HOME)/EPICS_CONFIG.$(HOST_ARCH)
-include $(HOME)/EPICS_CONFIG_HOST_ARCH.$(HOST_ARCH)
ifdef T_A
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE)
ifneq ($(HOST_ARCH),$(T_A))
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE).$(HOST_ARCH)
endif
-include $(HOME)/EPICS_CONFIG.$(BUILD_TYPE).$(T_A)
endif
# All EPICS options other than BUILD_TYPE
# may be overridden here.
@@ -34,7 +65,7 @@ include $(EPICS_BASE)/config/CONFIG.$(T_A)
# Build client objects statically ? must be either YES or NO
#STATIC_BUILD=NO
# Unix Optimization, must be either YES or NO
#UNIX_OPT=YES
#HOST_OPT=YES
# VxWorks Optimization, must be either YES or NO
#VX_OPT=YES
# Generate Verbose Compiler Warnings for Unix, must be either YES or NO
@@ -42,4 +73,10 @@ include $(EPICS_BASE)/config/CONFIG.$(T_A)
# Generate Verbose Compiler Warnings for VxWorks, must be either YES or NO
#VX_WARN=YES
#etc.
#
#CROSS_COMPILER_TARGET_ARCHS=mv167
#ANSI=GCC
#CPLUSPLUS=G++
#CMPLR=STRICT
#CXXCMPLR=STRICT

77
config/CONFIG.Host.Linux Normal file
View File

@@ -0,0 +1,77 @@
# CONFIG.Host.Linux
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.Linux
ARCH_CLASS = Linux
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar -rc
ARCMD = $(AR) $@
RANLIB = ranlib -t
#OP_SYS_FLAGS = -D_BSD_SOURCE -D_POSIX_SOURCE
# Configure OS vendor C compiler
ACC = gcc
ACC_ANSI = $(ACC)
#ACC_ANSI = $(ACC) -ansi -D_SVID_SOURCE
#ACC_STRICT = $(ACC) -Xc
ACC_STRICT = $(ACC) -pedantic
#ACC_STRICT = $(ACC) -ansi -pedantic -D_SVID_SOURCE
ACC_TRAD = $(ACC)
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES = -Bstatic
ACC_SFLAGS_NO=
ACC_SLIBS_YES =
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES = -fPIC
#ACC_SHRLIB_CFLAGS_YES = -fPIC -D_BSD_SOURCE
ACC_SHRLIB_LDFLAGS_YES = -shared -Wl,-soname,$@
# Configure OS vendor C++ compiler
CCC = g++
CCC_NORMAL = $(CCC)
CCC_STRICT = $(CCC)
CCC_TEMPL_INST_FLAG = -DEXPL_TEMPL
CCC_WARN_YES =
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES = -Bstatic
CCC_SFLAGS_NO=
CCC_SLIBS_YES =
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG = -MM
# added smh 6/5/98 : when building fdmgr - seems to use this not ACC
# in effect this overides orig def in CONFIG_COMMON :
# which is GCC_STRICT = $(GCC) -ansi -pedantic
GCC_STRICT = $(GCC)
G++_STRICT = $(G++) -Wtraditional
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux -D_USE_BSD
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux
ARCH_DEP_LDFLAGS =
#glibc FAQ
# "_GNU_SOURCE: glibc does not make the GNU extensions available
# automatically. If a program depends on the GNU extensions or some other
# non-standard functionality, it is necessary to compile it with the C
# compiler option -D_GNU_SOURCE, or better to put #define _GNU_SOURCE at
# the beginning of your source files, before any C library header files
# are included. This difference normally manifests itself in the form
# of missing prototypes and/or data type definitions. Thus, if you get
# such errors, the first thing you should do is try defining _GNU_SOURCE
# and see if that makes the problem go away."
#ARCH_DEP_CFLAGS += -D_GNU_SOURCE

58
config/CONFIG.Host.LynxOS Normal file
View File

@@ -0,0 +1,58 @@
# CONFIG.Host.LynxOS
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.LynxOS
ARCH_CLASS = LynxOS
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar -rc
ARCMD = $(AR) $@
RANLIB = ranlib -t
# Configure OS vendor C compiler
ACC_ANSI = $(ACC) -ansi -mposix -D_X86_
ACC_STRICT = $(ACC) -ansi -mposix -D_X86_ -pedantic
ACC_TRAD = $(ACC)
ACC_WARN_YES = -Wall
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES = -Bstatic
ACC_SFLAGS_NO=
ACC_SLIBS_YES =
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES =
ACC_SHRLIB_LDFLAGS_YES =
# Configure OS vendor C++ compiler
CCC_NORMAL = $(CCC)
CCC_STRICT = $(CCC)
CCC_TEMPL_INST_FLAG = -pedantic -mposix -D_X86_ -DEXPL_TEMP
CCC_WARN_YES = -Wall
CCC_WARN_NO = -w
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES = -Bstatic
CCC_SFLAGS_NO=
CCC_SLIBS_YES =
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG = -pedantic -mposix -D_X86_
# added smh 6/5/98 : when building fdmgr - seems to use this not ACC
# in effect this overides orig def in CONFIG_COMMON :
# which is GCC_STRICT = $(GCC) -ansi -pedantic
GCC_STRICT = $(GCC)
G++_STRICT = $(G++) -Wtraditional -mposix -D_X86_ -DEXPL_TEMP
ARCH_DEP_CFLAGS = -DLynxOS -mposix -D_X86_
ARCH_DEP_LDFLAGS = -lc -lbsd -lnsl -lm -lposix4d9 -llynx

View File

@@ -0,0 +1,80 @@
# CONFIG.Host.UnixCommon
#
# Contains definitions common to all Unix archs
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.UnixCommon
#-------------------------------------------------------
# adjust names of libraries to build
#
# <lib> -> lib<lib>.a
LIBNAME = $(LIBRARY:%=lib%.a)
#-------------------------------------------------------
# Shared library definitions
# CONFIG.Host.<arch> files may override
SHRLIB_SUFFIX = .so
SHRLIBNAME = lib$(LIBRARY)$(SHRLIB_SUFFIX)$(SHRLIB_VERSION:%=.%)
SHRLIB_LDFLAGS = $($(ANSI)_SHRLIB_LDFLAGS_$(strip $(SHARED_LIBRARIES)))
DLL_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)
INSTALL_SHRLIB = $(INSTALL_LIB)
LINK.shrlib= $(SHRLIB_LINKER) -o $@ $(CFLAGS) $(CPPFLAGS) $(SHRLIB_LDFLAGS) $(LDFLAGS)
#-------------------------------------------------------
# Unix command definitions
CPP = cpp
RANLIB = ranlib
# GNU compilers
GCC = gcc
G++ = g++
#-------------------------------------------------------
# Unix suffix definitions
EXE =
OBJ = .o
#--------------------------------------------------
# Dependancy definitions
COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a))
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/lib$(lib).a)
#--------------------------------------------------
# Determine ld flags
USR_DIRS = $(dir $(PRODNAME_DEPLIBS)) $(dir $(PROD_DEPLIBS))\
$(dir $(USR_DEPLIBS))
USR_LDFLAGS += $(sort $(USR_DIRS:%=-L%))
# Determine ld libs
USR_LDLIBS = $(PRODNAME_LIBS:%=-l%) $(PROD_LIBS:%=-l%) $(USR_LIBS:%=-l%)\
$(SYS_PROD_LIBS:%=-l%)
#USR_LDLIBS = $(PRODNAME_DEPLIBS:%=-L%) $(PROD_DEPLIBS:%=-L%) $(USR_DEPLIBS)\
# $(USR_XLDLIBS)
#--------------------------------------------------
# Operating system definitions
OP_SYS_INCLUDES =
OP_SYS_CFLAGS = -DUNIX
OP_SYS_LDFLAGS =
OP_SYS_LDLIBS = -lm
#--------------------------------------------------
# Link definitions
LINK.c = $(CC) -o $@ $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) -o $@ $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
#--------------------------------------------------
# Allow site overrides
-include $(EPICS_BASE)/config/CONFIG_SITE.Host.UnixCommon

258
config/CONFIG.Host.WIN32 Normal file
View File

@@ -0,0 +1,258 @@
# CONFIG.Host.WIN32
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.WIN32
# Use std path variables from ms
HOME = $(HOMEDRIVE)$(HOMEPATH)
#
# You currently get Visual C++ even if you ask for GNU.
#
# !! borlund support needed here !!
#
ANSI = ACC
CPLUSPLUS = CCC
#
# "\ " forces gnu make to keep this as one token
#
MSVISC = c:\\Program\ Files\\DevStudio\\Vc
WINLINK = link
RCCMD = rc -l 0x409 -fo $@ $<
ARCMD = lib /nologo /verbose /out:$@
#
# Configure OS vendor C compiler
ACC = cl
#
# __STDC__=0 is a real great idea of Jeff that gives us both:
# 1) define STDC for EPICS code (pretend ANSI conformance)
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
# because MS uses: if __STDC__ ... disable many nice things
#
# Use of /Za would dissable DLL import/export keywords which
# EPICS include/excludes using architecture neutral macros
ACC_ANSI = $(ACC) /nologo /D__STDC__=0
ACC_STRICT = $(ACC) /nologo /D__STDC__=0
ACC_TRAD = $(ACC) /nologo
#
# /W<N> use warning level N
# (maximum (lint type) warnings at level 4)
ACC_WARN_YES = /W3
ACC_WARN_NO = /W1
#
# /Ox maximum optimizations
# /MD use MSVCRT (run-time as DLL, multi-thread support)
ACC_OPT_YES = /Ox
#
# /Zi include debugging info in object files
# /Fr create source browser file
ACC_OPT_NO = /Zi /Fr
#
# the following options are required when
# vis c++ compiles the code (and includes
# the header files)
#
# /MT static multithreaded C RTL
# /MTd static multithreaded C RTL (debug version)
# /MD multithreaded C RTL in DLL
# /MDd multithreaded C RTL in DLL (debug version)
VISC_EPICS_DLL_NO = -DEPICS_DLL_NO
VISC_EPICS_DLL_YES =
VISC_EPICS_DLL = $(VISC_EPICS_DLL_$(SHARED_LIBRARIES))
VISC_SFLAGS_DEBUG_NO = d
VISC_SFLAGS_DEBUG_YES =
VISC_SFLAGS_DEBUG = $(VISC_SFLAGS_DEBUG_$(HOST_OPT))
ACC_SFLAGS_YES= /MT$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
ACC_SFLAGS_NO= /MD$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
#
# no special libs for static link
#
ACC_SLIBS_YES=
ACC_SLIBS_NO=
# Configure OS vendor C++ compiler
#
# __STDC__=0 is a real great idea of Jeff that gives us both:
# 1) define STDC for EPICS code (pretend ANSI conformance)
# 2) set it to 0 to use MS C "extensions" (open for _open etc.)
# because MS uses: if __STDC__ ... disable many nice things
#
# Use of /Za would dissable DLL import/export keywords which
# EPICS include/excludes using architecture neutral macros
CCC = cl
CCC_NORMAL = $(CCC) /nologo /D__STDC__=0
CCC_STRICT = $(CCC) /nologo /D__STDC__=0
CCC_TEMPL_INST_FLAG =
#
# /W<N> use warning level N
# (maximum lint level warnings at level 4)
CCC_WARN_YES = /W3
CCC_WARN_NO = /W1
#
# /Ox maximum optimizations
CCC_OPT_YES = /Ox
#
# /Zi include debugging info in object files
# /Fr create source browser file
CCC_OPT_NO = /Zi /Fr
#
# the following options are required when
# vis c++ compiles the code (and includes
# the header files)
#
# /MT static multithreaded C RTL
# /MTd static multithreaded C RTL (debug version)
# /MD multithreaded C RTL in DLL
# /MDd multithreaded C RTL in DLL (debug version)
CCC_SFLAGS_YES= /MT$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
CCC_SFLAGS_NO= /MD$(VISC_SFLAGS_DEBUG) $(VISC_EPICS_DLL)
#
# no special libs for static link
#
CCC_SLIBS_YES=
CCC_SLIBS_NO=
LINK_OPT_FLAGS_YES = /WARN:3 /incremental:no /opt:ref\
/release $(PROD_VERSION:%=/version:%)
LINK_OPT_FLAGS_NO = /WARN:3 /debug
OPT_LDFLAGS = $(LINK_OPT_FLAGS_$(HOST_OPT))
ARCH_DEP_CFLAGS=
# to identify the general architecture class:
# should be BSD, SYSV, WIN32, ...
# is: WIN32, sun4, hpux, linux, ...
#
ARCH_CLASS=WIN32
# ifdef WIN32 looks better that ifeq ($(ARCH_CLASS),WIN32) ??
WIN32=1
EXE=.exe
OBJ=.obj
RES=.res
# Problem: MS Visual C++ does not recognize *.cc as C++ source,
# we have to compile xx.cc using the flag -Tp xx.cc,
# i.e. -Tp has to be immediately before the source file name
SOURCE_CXXFLAG = /Tp
# Operating system flags
OP_SYS_CFLAGS =
#
# WIN32 specific include files
#
OP_SYS_INCLUDES = -I$(EPICS_BASE_INCLUDE)\\os\\WIN32
#
# These are now added to the individual makefiles that use them in order to
# speed up the build
#
#OP_SYS_LDLIBS = user32.lib kernel32.lib advapi32.lib winmm.lib
OP_SYS_LDLIBS =
# Files and flags needed to link DLLs (used in RULES.Host)
#
# Strange but seems to work without: WIN32_DLLFLAGS should contain
# an entry point:
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
DLLENTRY = @12
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS)
#
# specify dll .def file only if it exists
#
DLL_DEF_FLAG = $(addprefix /def:,$(wildcard ../$(LIBRARY).def))
# HOST_OPT_FLAGS is part of CFLAGS/CXXFLAGS,
# which in turn are used in COMPILE.c[c]
#
# If we compile a .c, .cc into an $(OBJ),
# we test if this object is part of the
# library objects LIBOBJS.
# If so, we define _WINDLL so that
# e.g. include/shareLib.h works correctly.
#
HOST_OPT_FLAGS += $(subst $@, /_WINDLL, $(findstring $@,$(LIBOBJS)))
#
# A WIN32 dll has three parts:
# x.dll: the real dll (SHRLIBNAME)
# x.lib: what you link to progs that use the dll (LIBNAME)
# x.exp: what you need to build the dll (in no variable)
#
LINK.shrlib = $(WINLINK) /nologo $(WIN32_DLLFLAGS) /implib:$(DLL_LINK_LIBNAME) /out:$(SHRLIBNAME) $(DLL_DEF_FLAG)
# adjust names of libraries to build
#
# But: if there are no objects LIBOBJS to include
# in this library (may be for e.g. base/src/libCompat
# on some archs), don't define (and build) any library!
SHRLIBNAME = $(LIBRARY).dll
#
# Under WIN32 we have the unique situation where the DLL link creates the
# DLL link library xxx.lib and we need to be very careful to avoid replacing
# the xxx.lib created by the dll link with an xxx.lib created by $(AR).
# Therefore, the object library is named xxxObj.lib
#
# SHARED_LIBRARIES is YES if we are building a DLL and NO if we aren't
#
DLL_LINK_LIBNAME_YES = $(LIBRARY).lib
DLL_LINK_LIBNAME = $(DLL_LINK_LIBNAME_$(SHARED_LIBRARIES))
LIBNAME = $(LIBRARY)Obj.lib
# dll install location
INSTALL_SHRLIB = $(INSTALL_BIN)
#--------------------------------------------------
# Dependancy definitions
OBJECT_LIB_EXT_YES = Obj.lib # object library extension for static build
OBJECT_LIB_EXT_NO = .lib # object library extension for dynamic build
OBJECT_LIB_EXT = $(OBJECT_LIB_EXT_$(STATIC_BUILD))
COND_PROD_DEPLIBS = $(foreach prod,$(PROD), $(foreach lib, $($(basename $(prod))_LIBS),\
$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT)))
PRODNAME_DEPLIBS = $(foreach lib,$(PRODNAME_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
PROD_DEPLIBS = $(foreach lib,$(PROD_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
USR_DEPLIBS = $(foreach lib,$(USR_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib)$(OBJECT_LIB_EXT))
# by default the libraries used when linking the DLL are just
# PROD_LIBS ans SYS_PROD_LIBS minus the DLL name
DLL_LIBS = $(subst $(LIBRARY),, $(PROD_LIBS))
#
# EPICS libs that we need to link the DLL with
# (it isnt necessary to rebuild the dll if these change)
DLL_DEPLIBS = $(foreach lib,$(DLL_LIBS),$(firstword $($(lib)_DIR) $(EPICS_BASE_LIB))/$(lib).lib)
USR_LDLIBS = $(PRODNAME_DEPLIBS) $(PROD_DEPLIBS) $(USR_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib)
DLL_LDLIBS = $(DLL_DEPLIBS) $(SYS_PROD_LIBS:%=%.lib) $(OP_SYS_LDLIBS)
LINK.c = $(WINLINK) -nologo $(LDFLAGS) -out:$@
LINK.cc = $(WINLINK) -nologo $(LDFLAGS) -out:$@
#--------------------------------------------------
# Determine ld flags
#USR_DIRS = $(dir $(PRODNAME_DEPLIBS)) $(dir $(PROD_DEPLIBS))\
# $(dir $(USR_DEPLIBS))
#USR_LDFLAGS += $(sort $(USR_DIRS:%=-L%))

46
config/CONFIG.Host.alpha Normal file
View File

@@ -0,0 +1,46 @@
# CONFIG.Host.alpha
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.alpha
ARCH_CLASS = alpha
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar
# Configure OS vendor C compiler
ACC = cc
ACC_ANSI = $(ACC) -std
ACC_STRICT = $(ACC) -std1
ACC_TRAD = $(ACC) -std0
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES= -non_shared
ACC_SFLAGS_NO= -call_shared
ACC_SLIBS_YES =
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES =
ACC_SHRLIB_LDFLAGS_YES = -shared
# Configure OS vendor C++ compiler
CCC = cxx
CCC_NORMAL = $(CCC)
CCC_STRICT = $(CCC)
CCC_TEMPL_INST_FLAG = -DEXPL_TEMPL
CCC_WARN_YES =
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES=
CCC_SFLAGS_NO=
CCC_SLIBS_YES =
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG =
ARCH_DEP_CFLAGS = -D_OSF_SOURCE
ARCH_DEP_LDLIBS =

View File

@@ -0,0 +1,28 @@
# CONFIG.Host.cygwin32
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.cygwin32
ARCH_CLASS = cygwin32
# cygwin32 is a unix-like arch
# include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
EXE=.exe
#==========================
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
# since OS vendor compilers ACC and CCC are not defined here for cygwin32
ANSI=GCC
CPLUSPLUS=G++
# Shared libraries not implemented yet
SHARED_LIBRARIES=NO
#==========================
# Fix for cygwin32 beta17.1 includes
#OP_SYS_INCLUDES += /usr/local/include/g++
#==========================
ARCH_DEP_CFLAGS = -DCYGWIN32 -U_WIN32
ARCH_DEP_LDLIBS = -lm

63
config/CONFIG.Host.hp700 Normal file
View File

@@ -0,0 +1,63 @@
# CONFIG.Host.hp700
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.hp700
ARCH_CLASS = hp700
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
SHRLIB_SUFFIX = .sl
AR = ar
# Configure OS vendor C compiler
ACC = cc
ACC_ANSI = $(ACC) -Aa
ACC_STRICT = $(ACC) -Aa
ACC_TRAD = $(ACC)
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES= -Wl,-a,archive
ACC_SFLAGS_NO=
ACC_SLIBS_YES =
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES = +Z
ACC_SHRLIB_LDFLAGS_YES = -b
# Configure OS vendor C++ compiler
HPCC = cc
HPCC_ANSI = $(HPCC) -Aa
HPCC_STRICT = $(HPCC) -Aa
HPCC_TRAD = $(HPCC) -Ac
HPCC_WARN_YES =
HPCC_WARN_NO = -w
HPCC_OPT_YES = -O
HPCC_OPT_NO = -g
HPCC_SFLAGS_YES= -Wl,-a,archive
HPCC_SFLAGS_NO=
HPCC_SLIBS_YES =
HPCC_SLIBS_NO=
HPCC_SHRLIB_CFLAGS_YES = +Z
HPCC_SHRLIB_LDFLAGS_YES = -b
CCC = CC
CCC_NORMAL = $(CCC) +p
CCC_STRICT = $(CCC) +p
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES = +w
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES= -Wl,-a,archive
CCC_SFLAGS_NO=
CCC_SLIBS_YES =
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG =
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
ARCH_DEP_LDLIBS =

48
config/CONFIG.Host.sgi Normal file
View File

@@ -0,0 +1,48 @@
# CONFIG.Host.sgi
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.sgi
ARCH_CLASS = sgi
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar
# Configure OS vendor C compiler
ACC = cc
ACC_ANSI = $(ACC) -xansi
ACC_STRICT = $(ACC) -xansi
ACC_TRAD = $(ACC) -cckr -Xs
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
ACC_SLIBS_YES =
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES = -KPIC
ACC_SHRLIB_LDFLAGS_YES = -shared
# Configure OS vendor C++ compiler
CCC = CC
CCC_NORMAL = $(CCC)
CCC_STRICT = $(CCC)
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES =
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES= -Bstatic
CCC_SFLAGS_NO=
CCC_SLIBS_YES =
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG =
####KRCC = ??
ARCH_DEP_CFLAGS = -DSGI
ARCH_DEP_LDFLAGS =

View File

@@ -0,0 +1,61 @@
# CONFIG.Host.solaris
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.solaris
ARCH_CLASS = solaris
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
#
# required by sun's C++ compiler
#
AR = ar
_AR = $(AR) $(ARFLAGS)
G++_AR = $(_AR)
CCC_AR = $(CCC) -xar -o
ARCMD = $($(CPLUSPLUS)_AR) $@
RANLIB =
SPARCWORKS = /opt/SUNWspro
# Configure OS vendor C compiler
ACC = $(SPARCWORKS)/bin/cc
ACC_ANSI = $(ACC) -Xa
ACC_STRICT = $(ACC) -Xc -v
ACC_TRAD = $(ACC) -Xs
ACC_DEP_CFLAGS = -KPIC -D_REENTRANT
ACC_WARN_YES =
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
ACC_SLIBS_NO=
ACC_SHRLIB_CFLAGS_YES =
ACC_SHRLIB_LDFLAGS_YES = -G -h $@
# Configure OS vendor C++ compiler
CCC = $(SPARCWORKS)/bin/CC
CCC_NORMAL = $(CCC) +p
CCC_STRICT = $(CCC) +p
CCC_DEP_CFLAGS = -KPIC -D_REENTRANT
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES = +w
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES= -Bstatic
CCC_SFLAGS_NO=
CCC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG = -xM1
ARCH_DEP_CFLAGS = -DSOLARIS
# socket and nsl needed by libca.a
ARCH_DEP_LDLIBS = -lsocket -lnsl

84
config/CONFIG.Host.sun4 Normal file
View File

@@ -0,0 +1,84 @@
# CONFIG.Host.sun4
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.sun4
ARCH_CLASS = sun4
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
#
# required by sun's C++ compiler
#
AR = ar
_AR = $(AR) $(ARFLAGS)
G++_AR = $(_AR)
CCC_AR = $(CCC) -xar -o
ARCMD = $($(CPLUSPLUS)_AR) $@
RANLIB = ranlib
RANLIBFLAGS = -t
# Configure OS vendor C compilers
ACC = /usr/lang/acc
ACC_ANSI = $(ACC) -Xa
ACC_STRICT = $(ACC) -Xc
ACC_TRAD = $(ACC) -Xs
ACC_WARN_YES = -vc
ACC_WARN_NO = -w
ACC_OPT_YES = -O
ACC_OPT_NO = -g
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
ACC_SLIBS_YES=
ACC_SLIBS_NO=
#ACC_OP_SYS_LDFLAGS = -L$(SPECIAL_LANG)
ACC_SHRLIB_CFLAGS_YES = -pic
ACC_SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
SUNCC = cc
SUNCC_ANSI = echo SUNCC_ANSI not defined
SUNCC_STRICT = echo SUNCC_STRICT not defined
SUNCC_TRAD = $(SUNCC)
SUNCC_WARN_YES =
SUNCC_WARN_NO = -w
SUNCC_OPT_YES = -O
SUNCC_OPT_NO = -g
SUNCC_SFLAGS_YES= -Bstatic
SUNCC_SFLAGS_NO=
SUNCC_SLIBS_YES=
SUNCC_SLIBS_NO=
SUNCC_SHRLIB_CFLAGS_YES = -pic
SUNCC_SHRLIB_LDFLAGS_YES = -assert pure-text -h $@
# Configure OS vendor C++ compiler
CCC = /usr/lang/CC
CCC_NORMAL = $(CCC)
CCC_STRICT = $(CCC)
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES =
CCC_WARN_NO =
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES = +w
CCC_WARN_NO =
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_SFLAGS_YES= -Bstatic
CCC_SFLAGS_NO=
CCC_SLIBS_YES=
CCC_SLIBS_NO=
CCC_DEPENDS_FLAG = -xM1
GCC_ANSI += -D__USE_FIXED_PROTOTYPES__
GCC_STRICT += -D__USE_FIXED_PROTOTYPES__
ACC_ARCH_DEP_LDLIBS =
GCC_ARCH_DEP_LDLIBS = -liberty
ARCH_DEP_LDLIBS = $($(ANSI)_ARCH_DEP_LDLIBS)
ARCH_DEP_CFLAGS = -DSUNOS4
#SPECIAL_LANG = /usr/lang/SC3.0.1
#SPECIAL_LANG = /usr/lang/lib

View File

@@ -1,125 +0,0 @@
#
# $Id$
#
# This file is maintained by the EPICS community.
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
GCC = gcc
ACC = acc
SUNCC = cc
AR = ar
ARFLAGS = r
RANLIB = ranlib
RANLIBFLAGS = -t
YACC = $(EYACC)
LEX = $(ELEX)
G++ = g++
CCC = CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
ACC_STRICT_INVOKE_W_NO = $(ACC) -Xc -w
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc
SUNCC_TRAD_INVOKE_W_NO = $(SUNCC) -w
SUNCC_TRAD_INVOKE_W_YES = $(SUNCC)
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS =
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
# Static Build options
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
CC_SFLAGS_YES= -Bstatic
CC_SFLAGS_NO=
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
UNIX_LDLIBS = -lm
ARCH_DEP_CFLAGS = -D_X86_ -Dlinux
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
UNIX_CFLAGS = $(UNIX_SFLAGS) $(USR_INCLUDES) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
# GNU make likes CXX instead of CCC
CXXFLAGS = $(CCFLAGS)
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override SUN defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.Unix.Linux

136
config/CONFIG.LynxOS Normal file
View File

@@ -0,0 +1,136 @@
# $Id$
#
# This file contains definitions for Vx builds
#--------------------------------------------------
# operating system class (include/os/<os_class>)
OS_CLASS = LynxOS
lynx_pc486 =YES
CC = gcc
CXX = g++
#--------------------------------------------------
# vxWorks directory definitions
# The definitions VX_DIR, VX_GNU, GNU_DIR and GNU_LIB
# can be overridden for specific host architectures
# by creating a CONFIG_SITE.Vx.<host_arch> file with
# the override definitions.
# Tornado directory definitions
VX_CONFIG_DIR_YES =
VX_INCLUDE_YES =
VX_GNU_YES =
VX_GNU_BIN_YES =
VX_GNU_LIB_YES =
# pre Torando directory definitions
VX_CONFIG_DIR_NO =
VX_INCLUDE_NO =
VX_GNU_NO =
VX_GNU_BIN_NO =
# directory definitions
VX_DIR =
VX_CONFIG_DIR =
VX_INCLUDE =
VX_GNU =
GNU_BIN = /usr/local/bin
GNU_LIB = /usr/local/lib
#--------------------------------------------------
# VxWorks command definitions
#GCC = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
#AR = $(GNU_BIN)/ar$(CMPLR_SUFFIX)
#CPP = $(GNU_BIN)/cpp$(CMPLR_SUFFIX) -nostdinc
#RANLIB = $(GNU_BIN)/ranlib$(CMPLR_SUFFIX)
#LD = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
AR = ar -rc
ARCMD = $(AR) $@
RANLIB = ranlib -t
GCC = gcc
CPP = cpp
LD = ld -r
#--------------------------------------------------
# Tornado C++ crosscompiler definitions
#CPLUSPLUS_YES = G++
#G++ = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
#LD_G++ = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
#NM = $(GNU_BIN)/nm$(CMPLR_SUFFIX)
#MUNCH = $(GNU_BIN)/munch
CPLUSPLUS_YES = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
G++ = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
LD_G++ = ld -r
NM = nm
#--------------------------------------------------
# Pre Tornado C++ crosscompiler definitions
# These are pre tornado definitions for Hideos builds (defined for 68k only)
#CPLUSPLUS_NO = CCC
#CCC = $(GNU_DIR)/bin/sun3-g++ -B$(GNU_DIR)/lib/gcc-lib/ -nostdinc -DEXPL_TEMPL
#LD_CCC = $(GNU_DIR)/bin/sun3-ld $(OLD_ARCH_DEP_LDFLAGS) -r
CPLUSPLUS_NO = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
CCC = g++ -DLynxOS -DLynxOS_pc486 -mposix -D_X86_ -DEXPL_TEMP
LD_CCC = ld -r
CCC_NORMAL = $(CCC) $(OLD_ARCH_DEP_CFLAGS)
CCC_STRICT = $(CCC) -ansi -pedantic -Wall -traditional $(OLD_ARCH_DEP_CFLAGS)
CCC_TRAD = $(CCC) -traditional $(OLD_ARCH_DEP_CFLAGS)
CCC_TEMPL_INST_FLAG = -DEXPL_TEMP
CCC_WARN_YES = -Wall
CCC_WARN_NO = -w
CCC_OPT_YES = -O
CCC_OPT_NO = -g
CCC_DEPENDS_FLAG = -pedantic -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
CPU = i486
OS = lynxos
OLD_ARCH_DEP_CFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
# --no-builtin -Wa,"-m68040" -DOS_EQ_$(OS) \
# -DBOARD_EQ_$(BOARD) -DCPU_EQ_$(CPU) -DBOARD=$(BOARD)
OLD_ARCH_DEP_LDFLAGS = -mposix -lc -lbsd -lnsl -lm -lposix4d9 -llynx
# -Ur -N -T$(EPICS_BASE_BIN)/vxldscript.MRI
#--------------------------------------------------
# C compiler definitions
ANSI = gcc -ansi
#--------------------------------------------------
# Command definitions
CPLUSPLUS = g++
# $(CPLUSPLUS_$(TORNADO))
LD_CXX = ld -r
# $(LD_$(CPLUSPLUS))
#--------------------------------------------------
# Operating system flags
OP_SYS_INCLUDES =
# -I$(VX_INCLUDE)
OP_SYS_CFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
# -DvxWorks -DV5_vxWorks -fno-builtin
OP_SYS_LDFLAGS = -DLynxOS -DLynxOS_pc486 -mposix -D_X86_
OP_SYS_LDLIBS = -lc -lbsd -lnsl -lm -lposix4d9 -llynx
#--------------------------------------------------
# Optimization flag overrides
GCC_OPT_YES = -O
# 2 -fstrength-reduce
G++_OPT_YES = -O
# 2 -fstrength-reduce
#--------------------------------------------------
# Link definitions
LINK.c = $(LD) $(LDFLAGS) -o
LINK.cc = $(LD_CXX) $(LDFLAGS) -o

119
config/CONFIG.Vx Normal file
View File

@@ -0,0 +1,119 @@
# $Id$
#
# This file contains definitions for Vx builds
#--------------------------------------------------
# operating system class (include/os/<os_class>)
OS_CLASS = vxWorks
#--------------------------------------------------
# vxWorks directory definitions
# The definitions VX_DIR, VX_GNU, GNU_DIR and GNU_LIB
# can be overridden for specific host architectures
# by creating a CONFIG_SITE.Vx.<host_arch> file with
# the override definitions.
# Tornado directory definitions
VX_CONFIG_DIR_YES = $(VX_DIR)/target/config
VX_INCLUDE_YES = $(VX_DIR)/target/h
VX_GNU_YES = $(VX_DIR)/host/$(WIND_HOST_TYPE)
VX_GNU_BIN_YES = $(VX_GNU)/bin
VX_GNU_LIB_YES = $(VX_GNU)/lib
# pre Torando directory definitions
VX_CONFIG_DIR_NO = $(VX_DIR)/config
VX_INCLUDE_NO = $(VX_DIR)/h
VX_GNU_BIN_NO = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/bin
VX_GNU_LIB_NO = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/lib
# directory definitions
VX_DIR = $(VX_DIR_$(TORNADO))
VX_CONFIG_DIR = $(VX_CONFIG_DIR_$(TORNADO))
VX_INCLUDE = $(VX_INCLUDE_$(TORNADO))
VX_GNU = $(VX_GNU_$(TORNADO))
GNU_BIN = $(VX_GNU_BIN_$(TORNADO))
GNU_LIB = $(VX_GNU_LIB_$(TORNADO))
#--------------------------------------------------
# VxWorks command definitions
GCC = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
AR = $(GNU_BIN)/ar$(CMPLR_SUFFIX)
CPP = $(GNU_BIN)/cpp$(CMPLR_SUFFIX) -nostdinc
RANLIB = $(GNU_BIN)/ranlib$(CMPLR_SUFFIX)
LD = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
#--------------------------------------------------
# Tornado C++ crosscompiler definitions
CPLUSPLUS_YES = G++
G++ = $(GNU_BIN)/cc$(CMPLR_SUFFIX) -B$(GNU_LIB)/gcc-lib/ -nostdinc
LD_G++ = $(GNU_BIN)/ld$(CMPLR_SUFFIX) -r
NM = $(GNU_BIN)/nm$(CMPLR_SUFFIX)
MUNCH = $(GNU_BIN)/munch
#--------------------------------------------------
# Pre Tornado C++ crosscompiler definitions
# These are pre tornado definitions for Hideos builds (defined for 68k only)
CPLUSPLUS_NO = CCC
CCC = $(GNU_DIR)/bin/sun3-g++ -B$(GNU_DIR)/lib/gcc-lib/ -nostdinc -DEXPL_TEMPL
LD_CCC = $(GNU_DIR)/bin/sun3-ld $(OLD_ARCH_DEP_LDFLAGS) -r
CCC_NORMAL = $(CCC) $(OLD_ARCH_DEP_CFLAGS)
CCC_STRICT = $(CCC) -ansi -pedantic -Wtraditional $(OLD_ARCH_DEP_CFLAGS)
CCC_TRAD = $(CCC) -traditional $(OLD_ARCH_DEP_CFLAGS)
CCC_TEMPL_INST_FLAG =
CCC_WARN_YES = -Wall
CCC_WARN_NO = -w
CCC_OPT_YES = -O2 -fstrength-reduce
CCC_OPT_NO =
CCC_DEPENDS_FLAG = -MM
CPU = 68000
OS = VXWORKS
OLD_ARCH_DEP_CFLAGS = --no-builtin -Wa,"-m68040" -DOS_EQ_$(OS) \
-DBOARD_EQ_$(BOARD) -DCPU_EQ_$(CPU) -DBOARD=$(BOARD)
OLD_ARCH_DEP_LDFLAGS = -Ur -N -T$(EPICS_BASE_BIN)/vxldscript.MRI
#--------------------------------------------------
# C compiler definitions
ANSI = GCC
#--------------------------------------------------
# Command definitions
CPLUSPLUS = $(CPLUSPLUS_$(TORNADO))
LD_CXX = $(LD_$(CPLUSPLUS))
#--------------------------------------------------
# Operating system flags
OP_SYS_INCLUDES = -I$(VX_INCLUDE)
OP_SYS_CFLAGS = -DvxWorks -DV5_vxWorks -fno-builtin
OP_SYS_LDFLAGS =
OP_SYS_LDLIBS =
#--------------------------------------------------
# Optimization flag overrides
GCC_OPT_YES = -O2 -fstrength-reduce
GCC_OPT_NO =
G++_OPT_YES = -O2 -fstrength-reduce
G++_OPT_NO =
OPT_CFLAGS = $($(ANSI)_OPT_$(VX_OPT))
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$(VX_OPT))
#--------------------------------------------------
# Warning flag overrides
GCC_WARN_YES = -Wall
GCC_WARN_NO = -w
G++_WARN_YES = -Wall
G++_WARN_NO = -w
WARN_CFLAGS = $($(ANSI)_WARN_$(VX_WARN))
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$(VX_WARN))
#--------------------------------------------------
# Link definitions
LINK.c = $(LD) $(LDFLAGS) -o
LINK.cc = $(LD_CXX) $(LDFLAGS) -o

View File

@@ -1,70 +0,0 @@
# $Id$
#
# This file is maintained by the EPICS community.
AR = $(VX_GNU_BIN)/ar68k
RANLIB = $(VX_GNU_BIN)/ranlib68k
YACC = $(EYACC)
LEX = $(ELEX)
CC = $(VX_GNU_BIN)/cc68k -B$(VX_GNU_LIB)/gcc-lib/ -nostdinc
CXX = $(VX_GNU_BIN)/cc68k -B$(VX_GNU_LIB)/gcc-lib/ -nostdinc
CPP = $(VX_GNU_BIN)/cpp68k -nostdinc
#CPP = $(CC) -E
GCC = $(CC)
LD = $(VX_GNU_BIN)/ld68k -r
EPICS_LDLIBS =
MV=mv
RM=rm -f
MKDIR=mkdir
RMDIR=rm -rf
# special c library requirements
SPECIAL_LANG =
# Compiler flags, don't mess with this
# Optimization flags
VX_OPT_YES = -O
VX_OPT_NO =
VX_OPT_FLAGS = $(VX_OPT_$(VX_OPT))
# Include files
VX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE) -I$(VX_INCLUDE)
# Warnings
#At some time we should turn on pedantic
#VX_WARN_YES = -Wall -pedantic
VX_WARN_YES = -W
VX_WARN_NO =
VX_WARN_FLAGS = $(VX_WARN_$(VX_WARN))
# Operating system flags
VX_OP_SYS_FLAGS = -DvxWorks -DV5_vxWorks
# Arch dependent flags are set in CONFIG_ARCH.*
VX_CFLAGS = $(VX_OPT_FLAGS) $(VX_WARN_FLAGS) $(USR_INCLUDES) \
$(VX_INCLUDES) $(VX_OP_SYS_FLAGS)
VX_LDFLAGS = -o
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS)
CXXFLAGS = $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VX_CFLAGS)
LDFLAGS = $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(VX_LDFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
# Build compile line here
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
LINK.c = $(LD) $(LDFLAGS)
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.cc = $(LD) $(LDFLAGS)
CPPSNCFLAGS = $(USR_INCLUDES) $(VX_INCLUDES)
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
DEPENDS_RULE.cc = -$(COMPILE.cc) -M $(SRCS.cc) > .DEPENDS

15
config/CONFIG.Vx.frc40 Normal file
View File

@@ -0,0 +1,15 @@
# $Id$
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68040

21
config/CONFIG.Vx.frc5ce Normal file
View File

@@ -0,0 +1,21 @@
# CONFIG.Vx.frc5ce
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = sparc
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = sparc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=SPARC -DCPU_FAMILY=SPARC
ARCH_DEP_CFLAGS =
# Removed -O2 [24/12/96 PMM]
OLD_ARCH_DEP_CXXFLAGS = -fno-builtin -ansi -pipe -nostdinc -DCPU=SPARC \
-DVXWORKS -Dsigned= -Dvolatile= +V
# Definitions for pre Tornado c++ builds
CCC = CENTERLINE
CCC_NORMAL = $(VX_DIR)/bin/sun4/CCsparc
CCC_STRICT = $(VX_DIR)/bin/sun4/CCsparc

20
config/CONFIG.Vx.hkbaja47 Normal file
View File

@@ -0,0 +1,20 @@
# $Id$
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = mips
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = mips
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=R4000
ARCH_DEP_CFLAGS = -EB -mcpu=r4000 -mips3 -mgp32 -mfp32 -non_shared -G 0
# Arch specific flags
GCC += -fsigned-char
LD += -EB -X

View File

@@ -3,14 +3,14 @@
#
# This file is maintained by the EPICS community.
BUILD_TYPE = Vx
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68030 -m68030 -DCPU_FAMILY=MC680X0
ARCH_DEP_CPPFLAGS = -DCPU=MC68020 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68020

16
config/CONFIG.Vx.mv147 Normal file
View File

@@ -0,0 +1,16 @@
# $Id$
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=MC68030 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68030

15
config/CONFIG.Vx.mv1604 Normal file
View File

@@ -0,0 +1,15 @@
# $Id$
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = ppc
# Architecture specific build flags (TRUE=1 via LBL; needed in camessage.c)
ARCH_DEP_CPPFLAGS = -DCPU_FAMILY=PPC -DCPU=PPC604 -D_GNU_TOOL -DTRUE=1
ARCH_DEP_CFLAGS = -fno-for-scope

View File

@@ -3,14 +3,14 @@
#
# This file is maintained by the EPICS community.
BUILD_TYPE = Vx
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68040 -m68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68040

15
config/CONFIG.Vx.mv162lc Normal file
View File

@@ -0,0 +1,15 @@
# $Id$
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -msoft-float

View File

@@ -3,15 +3,14 @@
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
BUILD_TYPE = Vx
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68040 -m68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CPPFLAGS = -DCPU=MC68040 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68040

View File

@@ -3,15 +3,14 @@
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
BUILD_TYPE = Vx
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68020 -m68020 -DCPU_FAMILY=MC680X0
ARCH_DEP_CPPFLAGS = -DCPU=MC68060 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68040

16
config/CONFIG.Vx.niCpu030 Normal file
View File

@@ -0,0 +1,16 @@
# CONFIG.Vx.niCpu030
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 68k
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=MC68030 -DCPU_FAMILY=MC680X0
ARCH_DEP_CFLAGS = -m68030

17
config/CONFIG.Vx.pc486 Normal file
View File

@@ -0,0 +1,17 @@
# CONFIG.Vx.pc486
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 386
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = pc486
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -DCPU_FAMILY=I80x86 -D_X86_
ARCH_DEP_CFLAGS = -m486
ARCH_DEP_CXXFLAGS += -x 'c++'
ARCH_DEP_CFLAGS += -fno-builtin -fno-defer-pop

17
config/CONFIG.Vx.vxipc Normal file
View File

@@ -0,0 +1,17 @@
# CONFIG.Vx.VXIpc
#
# This file is maintained by the EPICS community.
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 386
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = pc486
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -DCPU_FAMILY=I80x86 -D_X86_
ARCH_DEP_CFLAGS = -m486
ARCH_DEP_CXXFLAGS += -x 'c++'
ARCH_DEP_CFLAGS += -fno-builtin -fno-defer-pop

View File

@@ -1,118 +0,0 @@
# CONFIG.Unix.alpha
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
GCC = gcc
ACC = cc -std
TRADCC = cc -traditional
AR = ar
RANLIB = ranlib
YACC = $(EYACC)
LEX = $(ELEX)
G++ = g++
CCC = CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -w
ACC_ANSI_INVOKE_W_YES = $(ACC)
ACC_STRICT_INVOKE_W_YES = $(ACC) -stdl -w
ACC_STRICT_INVOKE_W_NO = $(ACC) -stdl
ACC_TRAD_INVOKE_W_NO = $(ACC) -w
ACC_TRAD_INVOKE_W_YES = $(ACC)
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS =
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
# Static Build options
ACC_SFLAGS_YES= -non_shared
ACC_SFLAGS_NO= -call_shared
CC_SFLAGS_YES= -non_shared
CC_SFLAGS_NO= -call_shared
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
SPECIAL_LDFLAGS =
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
UNIX_LDLIBS = -lm
ARCH_DEP_CFLAGS = -D_OSF_SOURCE -DLITTLE_ENDIAN
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
UNIX_CFLAGS = $(UNIX_SFLAGS) $(USR_INCLUDES) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
CXXFLAGS = $(CCFLAGS)
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
DEPEND_RULE.c = @echo echo no DEPENDS_RULE.c defined in CONFIG.Unix.alpha
DEPEND_RULE.cc = @echo echo no DEPENDS_RULE.cc defined in CONFIG.Unix.alpha

View File

@@ -1,127 +0,0 @@
# CONFIG.Unix.hp700
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
GCC = gcc
ACC = cc -Aa
HPACC = cc -Aa
HPCC = cc -Ac
TRADCC = cc
AR = ar
RANLIB = ranlib
YACC = $(EYACC)
LEX = $(ELEX)
G++ = g++
CCC = CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -w
ACC_ANSI_INVOKE_W_YES = $(ACC)
ACC_TRAD_INVOKE_W_NO = $(TRADCC) -w
ACC_TRAD_INVOKE_W_YES = $(TRADCC)
ACC_STRICT_INVOKE_W_NO = $(ACC) -w
ACC_STRICT_INVOKE_W_YES = $(ACC)
HPACC_ANSI_INVOKE_W_NO = $(HPACC) -w
HPACC_ANSI_INVOKE_W_YES = $(HPACC)
HPCC_TRAD_INVOKE_W_NO = $(HPCC) -w
HPCC_TRAD_INVOKE_W_YES = $(HPCC)
HPACC_STRICT_INVOKE_W_NO = $(HPACC) -w
HPACC_STRICT_INVOKE_W_YES = $(HPACC)
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS =
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
# Static Build options
ACC_SFLAGS_YES= -Wl,-a,archive
ACC_SFLAGS_NO=
CC_SFLAGS_YES= -Wl,-a,archive
CC_SFLAGS_NO=
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
SPECIAL_LDFLAGS =
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
UNIX_LDLIBS = -lm
ARCH_DEP_CFLAGS = -D_HPUX_SOURCE -DHP_UX
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
UNIX_CFLAGS = $(UNIX_SFLAGS) $(USR_INCLUDES) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
CXXFLAGS = $(CCFLAGS)
ARFLAGS = rv
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
DEPEND_RULE.c = @echo echo no DEPENDS_RULE.c defined in CONFIG.Unix.hp700
DEPEND_RULE.cc = @echo echo no DEPENDS_RULE.cc defined in CONFIG.Unix.hp700

View File

@@ -1,16 +0,0 @@
# $Id$
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
BUILD_TYPE = Vx
# For Vx directories of form:
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68040 -msoft-float -DCPU_FAMILY=MC680X0

View File

@@ -1,16 +0,0 @@
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Vx
# For Vx directories of form:
#
# $(VX_DIR)/$(HOST_ARCH).$(ARCH_CLASS)/bin
#
ARCH_CLASS = 68k
include $(EPICS_BASE)/config/CONFIG.$(BUILD_TYPE).$(ARCH_CLASS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DCPU=MC68030 -m68030 -DCPU_FAMILY=MC680X0

View File

@@ -1,125 +0,0 @@
#
# $Id$
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
GCC = cc
ACC = cc
KRCC = cc -cckr
AR = ar
ARFLAGS = r
RANLIB = ls
RANLIBFLAGS =
YACC = $(EYACC)
LEX = $(ELEX)
G++ = g++
CCC = CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -xansi -w
ACC_ANSI_INVOKE_W_YES = $(ACC) -xansi
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -xansi -w
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs -xansi
KRCC_TRAD_INVOKE_W_NO = $(KRCC) -w
KRCC_TRAD_INVOKE_W_YES = $(KRCC)
ACC_STRICT_INVOKE_W_NO = $(ACC) -ansi -w
ACC_STRICT_INVOKE_W_YES = $(ACC) -ansi
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
C_OLD = $(KRCC_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS =
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
# Static Build options
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
CC_SFLAGS_YES= -Bstatic
CC_SFLAGS_NO=
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB)
UNIX_LDLIBS = -lm
ARCH_DEP_CFLAGS = -DSGI
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
UNIX_CFLAGS = $(UNIX_SFLAGS) $(USR_INCLUDES) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
# GNU make likes CXX instead of CCC
CXXFLAGS = $(CCFLAGS)
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
LOAD.c = ld -shared $(LDFLAGS)
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.Unix.sgi

View File

@@ -1,146 +0,0 @@
#
# $Id$: CONFIG.Unix.solaris,v $
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
GCC = gcc
ACC = $(SPARCWORKS)/bin/cc
# SUNCC doesn't exist under Solaris
AR = ar
RANLIB =
YACC = $(EYACC)
LEX = $(ELEX)
G++ = /opt/gnu/bin/g++
CCC = /opt/SUNWspro/bin/CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc -v
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
ACC_LD_FLAGS =
ACC_LD_LIBS =
SUNCC_TRAD_INVOKE_W_NO = $(ACC_TRAD_INVOKE_W_NO)
SUNCC_TRAD_INVOKE_W_YES = $(ACC_TRAD_INVOKE_W_YES)
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
GCC_LD_LIBS =
GCC_LD_FLAGS =
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
LD_LIBS_OLD = $($(STANDARD)_LD_LIBS)
LD_LIBS_ANSI = $($(ANSI)_LD_LIBS)
LD_LIBS_STRICT = $($(ANSI)_LD_LIBS)
CCOMPILER_LDLIBS = $(LD_LIBS_$(CMPLR))
LD_FLAGS_OLD = $($(STANDARD)_LD_FLAGS)
LD_FLAGS_ANSI = $($(ANSI)_LD_FLAGS)
LD_FLAGS_STRICT = $($(ANSI)_LD_FLAGS)
CCOMPILER_LDFLAGS = $(LD_FLAGS_$(CMPLR))
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS = -L$(SPECIAL_LANG)
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
# Static Build options
#ACC_SFLAGS_YES= -dn
ACC_SFLAGS_YES= -Bstatic
ACC_SLIBS_YES= -lw -lintl -Bdynamic -ldl -Bstatic -lXext -lX
ACC_SLIBS_NO=
ACC_SFLAGS_NO=
CC_SFLAGS_YES= -dn
CC_SFLAGS_NO=
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
SL_OLD = $($(STANDARD)_SLIBS_$(STATIC_BUILD))
SL_ANSI = $($(ANSI)_SLIBS_$(STATIC_BUILD))
SL_STRICT = $(SL_ANSI)
UNIX_SLIBS = $(SL_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB) $(CCOMPILER_LDFLAGS)
UNIX_LDLIBS = $(UNIX_SLIBS) -lm $(CCOMPILER_LDLIBS)
# Architecture specific build flags
ARCH_DEP_CFLAGS = -DSOLARIS
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
ARCH_DEP_LDLIBS = -lsocket -lnsl
# -lsocket needed by libca.a
# -lnsl needed by libca.a
UNIX_CFLAGS = $(UNIX_SFLAGS) $(UNIX_INCLUDES) $(USR_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
# GNU make likes CXX instead of CCC
CXXFLAGS = $(CCFLAGS)
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override SUN defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
DEPENDS_RULE.c = -$(COMPILE.c) -xM $(SRCS.c) > .DEPENDS
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.Unix.solaris

View File

@@ -1,139 +0,0 @@
#
# $Id$
#
# This file is maintained by the EPICS community.
# BUILD_TYPE
# Currently either Vx or Unix
BUILD_TYPE = Unix
# Compiler and utility invocation (supply path to compiler here)
# (with warning flags built in)
# Paths to compilers
GCC = gcc
ACC = /usr/lang/acc
SUNCC = cc
AR = ar
ARFLAGS = r
RANLIB = ranlib
RANLIBFLAGS = -t
YACC = $(EYACC)
LEX = $(ELEX)
G++ = g++
CCC = /usr/lang/CC
RMDIR = rm -rf
MKDIR = mkdir
ACC_ANSI_INVOKE_W_NO = $(ACC) -Xa -w
ACC_ANSI_INVOKE_W_YES = $(ACC) -Xa
ACC_TRAD_INVOKE_W_NO = $(ACC) -Xs -w
ACC_TRAD_INVOKE_W_YES = $(ACC) -Xs
ACC_STRICT_INVOKE_W_NO = $(ACC) -Xc -w
ACC_STRICT_INVOKE_W_YES = $(ACC) -Xc -vc
ACC_LD_FLAGS = -L$(SPECIAL_LANG)
ACC_LD_LIBS =
SUNCC_TRAD_INVOKE_W_NO = $(SUNCC) -w
SUNCC_TRAD_INVOKE_W_YES = $(SUNCC)
GCC_ANSI_INVOKE_W_NO = $(GCC) -ansi -w -D__USE_FIXED_PROTOTYPES__
GCC_ANSI_INVOKE_W_YES = $(GCC) -ansi -D__USE_FIXED_PROTOTYPES__
GCC_STRICT_INVOKE_W_NO = $(GCC) -ansi -pedantic -D__USE_FIXED_PROTOTYPES__
GCC_STRICT_INVOKE_W_YES = $(GCC) -ansi -Wall -pedantic -D__USE_FIXED_PROTOTYPES__
GCC_TRAD_INVOKE_W_NO = $(GCC) -traditional -w
GCC_TRAD_INVOKE_W_YES = $(GCC) -traditional
GCC_LD_LIBS = -liberty
GCC_LD_FLAGS =
C_OLD = $($(STANDARD)_TRAD_INVOKE_W_$(UNIX_WARN))
C_ANSI = $($(ANSI)_ANSI_INVOKE_W_$(UNIX_WARN))
C_STRICT = $($(ANSI)_STRICT_INVOKE_W_YES)
CC = $(C_$(CMPLR))
LD_LIBS_OLD = $($(STANDARD)_LD_LIBS)
LD_LIBS_ANSI = $($(ANSI)_LD_LIBS)
LD_LIBS_STRICT = $($(ANSI)_LD_LIBS)
CCOMPILER_LDLIBS = $(LD_LIBS_$(CMPLR))
LD_FLAGS_OLD = $($(STANDARD)_LD_FLAGS)
LD_FLAGS_ANSI = $($(ANSI)_LD_FLAGS)
LD_FLAGS_STRICT = $($(ANSI)_LD_FLAGS)
CCOMPILER_LDFLAGS = $(LD_FLAGS_$(CMPLR))
CCC_NORMAL_INVOKE_W_NO = $(CCC) +p
CCC_NORMAL_INVOKE_W_YES = $(CCC) +p +w
CCC_STRICT_INVOKE_W_YES = $(CCC) +p +w
CCC_LD_FLAGS = -L$(SPECIAL_LANG)
CCC_LD_LIBS =
G++_NORMAL_INVOKE_W_NO = $(G++) -ansi -pedantic -w
G++_NORMAL_INVOKE_W_YES = $(G++) -ansi -pedantic -Wall
G++_STRICT_INVOKE_W_YES = $(G++) -ansi -pedantic -Wtraditional -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
CXX_NORMAL = $($(CPLUSPLUS)_NORMAL_INVOKE_W_$(UNIX_WARN))
CXX_STRICT = $($(CPLUSPLUS)_STRICT_INVOKE_W_YES)
# GNU make likes CXX instead of CCC
CXX = $(CXX_$(CXXCMPLR))
# Static Build options
ACC_SFLAGS_YES= -Bstatic
ACC_SFLAGS_NO=
CC_SFLAGS_YES= -Bstatic
CC_SFLAGS_NO=
GCC_SFLAGS_YES= -static
GCC_SFLAGS_NO=
SF_OLD = $($(STANDARD)_SFLAGS_$(STATIC_BUILD))
SF_ANSI = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
SF_STRICT = $(SF_ANSI)
UNIX_SFLAGS = $(SF_$(CMPLR))
# Optimization
OPTIM_YES = -O
OPTIM_NO =
UNIX_OPT_FLAGS = $(OPTIM_$(UNIX_OPT))
# Include files
UNIX_INCLUDES = -I. -I.. -I$(EPICS_BASE_INCLUDE)
# Operating system flags
OP_SYS_FLAGS = -DUNIX
UNIX_LDFLAGS = -L$(EPICS_BASE_LIB) $(CCOMPILER_LDFLAGS)
UNIX_LDLIBS = -lm $(CCOMPILER_LDLIBS)
ARCH_DEP_CFLAGS = -DSUNOS4
ARCH_DEP_CCFLAGS = $(ARCH_DEP_CFLAGS)
UNIX_CFLAGS = $(UNIX_SFLAGS) $(USR_INCLUDES) $(UNIX_INCLUDES) $(OP_SYS_FLAGS)
UNIX_CCFLAGS = $(UNIX_CFLAGS)
# Target specific flags
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CCFLAGS = $($(basename $@)_CCFLAGS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
CFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(UNIX_CFLAGS)
CCFLAGS = $(UNIX_OPT_FLAGS) $(TARGET_CCFLAGS) $(USR_CCFLAGS) $(ARCH_DEP_CCFLAGS) $(UNIX_CCFLAGS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS)
# GNU make likes CXX instead of CCC
CXXFLAGS = $(CCFLAGS)
LDFLAGS = $(SPECIAL_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(UNIX_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS) $(UNIX_LDLIBS)
# Override SUN defaults
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
LINK.cc = $(CXX) $(CCFLAGS) $(CPPFLAGS) $(LDFLAGS)
DEPENDS_RULE.c = -$(COMPILE.c) -M $(SRCS.c) > .DEPENDS
DEPENDS_RULE.cc = @echo no DEPENDS_RULE.cc defined in CONFIG.Unix.sun4

View File

@@ -4,46 +4,58 @@
# the order of following list is important
DIRS = \
tools \
include \
cxxTemplates \
toolsComm\
libCom \
libvxWorks\
cvtDctsdr \
dbStatic \
db \
bpt \
ca \
gdd \
cas \
util \
misc \
sequencer \
dbtools \
rsrv\
rec\
as \
drv\
dev\
devOpt\
iocCore
#
# for c++ build add the dirs gdd and cas after ca
# (and uncomment the c++ files in src/lbCom/Makefile.Unix)
#
DIRS = tools
DIRS += include
DIRS += cxxTemplates
DIRS += toolsComm
DIRS += makeBaseApp
DIRS += libCom
DIRS += libvxWorks
DIRS += cvtDctsdr
DIRS += dbStatic
DIRS += db
DIRS += bpt
DIRS += ca
DIRS += util
DIRS += misc
DIRS += sequencer
DIRS += dbtools
DIRS += rsrv
DIRS += rec
DIRS += as
DIRS += drv
DIRS += dev
DIRS += devOpt
DIRS += iocCore
#
# if CPLUSPLUS isnt empty then include C++ src codes
#
DIRS += $(patsubst %,gdd,$(strip $(CPLUSPLUS)))
DIRS += $(patsubst %,cas,$(strip $(CPLUSPLUS)))
EPICS_BASE = $(TOP)
# EPICS include config file
include $(TOP)/config/CONFIG
include $(EPICS_BASE)/config/CONFIG
ifdef INSTALL_LOCATION_BASE
INSTALL_LOCATION = $(INSTALL_LOCATION_BASE)
endif
EPICS_BASE = $(INSTALL_LOCATION)
#
# this speeds up the build by turning off implicit rules search
#
.PHONY: $(TOP)/config/CONFIG
.PHONY: $(TOP)/config/CONFIG.* $(TOP)/config/CONFIG_*
.PHONY: $(TOP)/config/RULES.* $(TOP)/config/RULES_* .DEPENDS
.PHONY: $(HOME)/.EPICS_CONFIG
.PHONY: ../Makefile.Vx ../Makefile.Unix ../Makefile.Host Makefile
# for EPICS Makefiles (which are not created from other files)
.PHONY:: $(TOP)/config/CONFIG
.PHONY:: $(TOP)/config/CONFIG.* $(TOP)/config/CONFIG_*
.PHONY:: $(TOP)/config/RULES.* $(TOP)/config/RULES_* DEPENDS
.PHONY:: $(HOME)/EPICS_CONFIG $(HOME)/EPICS_CONFIG.$(HOST_ARCH)
.PHONY:: ../Makefile.Vx ../Makefile.Unix ../Makefile.Host Makefile

View File

@@ -0,0 +1,19 @@
#
# $Id$
#
# EPICS Version information
#
# This file is interpreted by the Bourne Shell (MakeRelease), so spaces are
# not allowed around the '=' signs or in unquoted values.
#
EPICS_VERSION=3
EPICS_REVISION=13
EPICS_MODIFICATION=1
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=1
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}"
CVS_DATE="\$$Date$$"

View File

@@ -9,15 +9,15 @@
# Common Configuration Information
BUILD_ARCHS=$(HOST_ARCH)
ifndef CROSS_COMPILER_HOST_ARCHS
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
else
ifeq ($(HOST_ARCH),$(findstring $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))
BUILD_ARCHS+=$(CROSS_COMPILER_TARGET_ARCHS)
endif
endif
# CROSS1 will be defined only when CROSS_COMPILER_HOST_ARCHS is NOT defined
CROSS1 = $(CROSS_COMPILER_TARGET_ARCHS$(word 1,$(CROSS_COMPILER_HOST_ARCHS)))
# CROSS2 will be defined only when CROSS_COMPILER_HOST_ARCHS is defined
# and HOST_ARCH is one of it's words
CROSS2 = $(CROSS_COMPILER_TARGET_ARCHS$(filter-out 1,$(words $(filter $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))))
BUILD_ARCHS = $(HOST_ARCH) $(CROSS1) $(CROSS2)
INSTALL_LOCATION = $(TOP)
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
@@ -25,37 +25,39 @@ INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin
INSTALL_INCLUDE = $(INSTALL_LOCATION)/include
INSTALL_DOC = $(INSTALL_LOCATION)/doc
INSTALL_HTML = $(INSTALL_LOCATION)/html
INSTALL_MAN = $(INSTALL_LOCATION)/man
INSTALL_TEMPLATES = $(INSTALL_LOCATION)/templates
INSTALL_DBD = $(INSTALL_LOCATION)/dbd
INSTALL_CONFIG = $(INSTALL_LOCATION)/config
EPICS_BASE_INCLUDE = $(EPICS_BASE)/include
EPICS_BASE_DBD = $(EPICS_BASE)/dbd
EPICS_EXTENSIONS_INCLUDE = $(EPICS_EXTENSIONS)/include
EPICS_EXTENSIONS_TEMPLATES = $(EPICS_EXTENSIONS)/templates
DIVIDER = .
OBJ = .
RES = .
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(HOST_ARCH)
# private versions of lex/yacc from EPICS
EYACC = $(EPICS_BASE)/bin/$(HOST_ARCH)/antelope
ELEX = $(EPICS_BASE)/bin/$(HOST_ARCH)/e_flex -S$(EPICS_BASE_INCLUDE)/flex.skel.static
EYACC = $(EPICS_BASE_HOST_BIN)/antelope$(EXE)
ELEX = $(EPICS_BASE_HOST_BIN)/e_flex$(EXE) -S$(EPICS_BASE_INCLUDE)/flex.skel.static
YACC = $(EYACC)
LEX = $(ELEX)
# Default for perl if it's on the PATH,
# otherwise override this in CONFIG_SITE_HOST_ARCH.<host_arch>
PERL=perl
# install from EPICS
INSTALL = $(EPICS_BASE)/bin/$(HOST_ARCH)/installEpics
INSTALL = $(PERL) $(EPICS_BASE_HOST_BIN)/installEpics.pl
INSTALL_PRODUCT = $(INSTALL)
# dbtools from EPICS
# state notation language compiler (installed from base/src/sequencer)
SNC = $(EPICS_BASE)/bin/$(HOST_ARCH)/snc
# vxWorks definitions
VX_CONFIG_DIR = $(VX_DIR)/config
VX_INCLUDE = $(VX_DIR)/h
VX_GNU_BIN = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/bin
VX_GNU_LIB = $(VX_GNU)/$(HOST_ARCH).$(ARCH_CLASS)/lib
SNC = $(EPICS_BASE_HOST_BIN)/snc$(EXE)
ifdef T_A
@@ -66,15 +68,161 @@ INSTALL_BIN = $(INSTALL_LOCATION_BIN)/$(T_A)
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
EPICS_EXTENSIONS_LIB = $(EPICS_EXTENSIONS)/lib/$(T_A)
EPICS_EXTENSIONS_BIN = $(EPICS_EXTENSIONS)/bin/$(T_A)
#--------------------------------------------------
# GNU compiler defaults
VX_IMAGE = $(VX_CONFIG_DIR)/$(T_A)/vxWorks
VX_IMAGE_SYM = $(VX_CONFIG_DIR)/$(T_A)/vxWorks.sym
GCC_ANSI = $(GCC) -ansi
GCC_STRICT = $(GCC) -ansi -pedantic
GCC_TRAD = $(GCC) -traditional
GCC_WARN_YES = -Wall
GCC_WARN_NO = -w
GCC_OPT_YES = -O
GCC_OPT_NO = -g
GCC_SFLAGS_YES = -static
GCC_SFLAGS_NO =
GCC_SLIBS_YES =
GCC_SLIBS_NO =
GCC_SHRLIB_CFLAGS_YES = -fPIC
GCC_SHRLIB_LDFLAGS_YES = -shared
# location of installed vxWorks image
EPICS_VX_IMAGE = $(EPICS_BASE_BIN)/vxWorks
EPICS_VX_IMAGE_SYM = $(EPICS_BASE_BIN)/vxWorks.sym
G++_NORMAL = $(G++) -ansi -pedantic
G++_STRICT = $(G++) -ansi -pedantic -Wtraditional
G++_TRAD = $(G++) -traditional
G++_TEMPL_INST_FLAG = -DEXPL_TEMPL
G++_WARN_YES = -Wall \
-Wmissing-prototypes -Woverloaded-virtual \
-Wwrite-strings -Wconversion -Wstrict-prototypes\
-Wpointer-arith -Winline
G++_WARN_NO = -w
G++_OPT_YES = -O
G++_OPT_NO = -g
G++_SFLAGS_YES = -static
G++_SFLAGS_NO =
G++_SLIBS_YES =
G++_SLIBS_NO =
G++_DEPENDS_FLAG = -MM
G++_SHRLIB_CFLAGS_YES = -fPIC
G++_SHRLIB_LDFLAGS_YES = -shared
#--------------------------------------------------
# C compiler
CC = $($(ANSI)_$(CMPLR))
#---------------------------------------------------------------
# Vendor compiler dependent options
VENDOR_DEP_CFLAGS = $($(ANSI)_DEP_CFLAGS)
VENDOR_DEP_CXXFLAGS = $($(CPLUSPLUS)_DEP_CFLAGS)
#--------------------------------------------------
# C++ compiler
CXX = $($(CPLUSPLUS)_$(CXXCMPLR))
#---------------------------------------------------------------
# Architecture dependent options (solaris,sun4,mv167,...)
ARCH_DEP_CFLAGS =
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
ARCH_DEP_LDFLAGS =
ARCH_DEP_LDLIBS =
#---------------------------------------------------------------
# Operating system dependent options (Unix,Vx,WIN32...)
OP_SYS_CFLAGS =
OP_SYS_LDFLAGS =
OP_SYS_INCLUDES =
OP_SYS_LDLIBS =
#--------------------------------------------------
# SOURCE* used by WIN32 only
SOURCE_CFLAG =
SOURCE_CXXCFLAG =
#--------------------------------------------------
# Makefile specific options
USR_INCLUDES =
USR_CFLAGS =
USR_CXXFLAGS =
USR_LDFLAGS =
USR_LDLIBS =
USR_CPPFLAGS =
#--------------------------------------------------
# Target specific options
TARGET_INCLUDES = $($(basename $@)_INCLUDES)
TARGET_CFLAGS = $($(basename $@)_CFLAGS)
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS)
TARGET_LDFLAGS = $($(basename $@)_LDFLAGS)
TARGET_LDLIBS = $($(basename $@)_LDLIBS)
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS)
TARGET_SNCFLAGS = $($(basename $@)_SNCFLAGS)
#--------------------------------------------------
# Depends flag
DEPENDS_FLAG = $($(CPLUSPLUS)_DEPENDS_FLAG)
#--------------------------------------------------
# C++ template flag option
TEMPL_INST_CXXFLAG = $($(CPLUSPLUS)_TEMPL_INST_FLAG)
#--------------------------------------------------
# Epics includes (CONFIG.Vx will override OS_CLASS)
OS_CLASS = $(ARCH_CLASS)
EPICS_INCLUDES = -I$(INSTALL_INCLUDE) -I$(INSTALL_INCLUDE)/os/$(OS_CLASS)
#--------------------------------------------------
# Warnings flags (CONFIG.Vx will override)
WARN_CFLAGS = $($(ANSI)_WARN_$(HOST_WARN))
WARN_CXXFLAGS = $($(CPLUSPLUS)_WARN_$(HOST_WARN))
#--------------------------------------------------
# Optimization flags (CONFIG.Vx will override)
OPT_CFLAGS = $($(ANSI)_OPT_$(HOST_OPT))
OPT_CXXFLAGS = $($(CPLUSPLUS)_OPT_$(HOST_OPT))
OPT_LDFLAGS =
#--------------------------------------------------
# Static build options
STATIC_CFLAGS = $($(ANSI)_SFLAGS_$(STATIC_BUILD))
STATIC_CXXCFLAGS = $($(CPLUSPLUS)_SFLAGS_$(STATIC_BUILD))
STATIC_LDFLAGS = $($(ANSI)_SLDFLAGS_$(STATIC_BUILD))
STATIC_LDLIBS = $($(ANSI)_SLIBS_$(STATIC_BUILD))
#--------------------------------------------------
# ar definition default
ARCMD = $(AR) $(ARFLAGS) $@
#--------------------------------------------------
# depends definition
DEPENDS_RULE = -$(COMPILE.cc) $(DEPENDS_FLAG) $^ > DEPENDS
#--------------------------------------------------
# Include files
INCLUDES = -I. -I.. $(USR_INCLUDES) $(TARGET_INCLUDES) $(EPICS_INCLUDES) $(OP_SYS_INCLUDES)
CFLAGS = $(OPT_CFLAGS) $(DEBUG_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
$(USR_CFLAGS) $(ARCH_DEP_CFLAGS) $(VENDOR_DEP_CFLAGS) $(STATIC_CFLAGS)\
$(OP_SYS_CFLAGS) $(INCLUDES)
CXXFLAGS = $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
$(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(VENDOR_DEP_CXXFLAGS) $(STATIC_CXXCFLAGS)\
$(OP_SYS_CFLAGS) $(TEMPL_INST_CXXFLAG) $(INCLUDES)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS)\
$(ARCH_DEP_LDFLAGS) $(STATIC_LDFLAGS) $(OP_SYS_LDFLAGS)
LDLIBS = $(TARGET_LDLIBS) $(USR_LDLIBS) $(ARCH_DEP_LDLIBS)\
$(STATIC_LDLIBS) $(OP_SYS_LDLIBS)
CPPFLAGS += $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)
CPPSNCFLAGS = $(INCLUDES)
# Build compile line here
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c $(SOURCE_FLAG)
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(SOURCE_CXXFLAG)
endif

View File

@@ -10,37 +10,117 @@
# not allowed around the '=' signs or in unquoted values.
# Makefile variables are not defined here.
#
# Note: This file is read by base/src/libCom/bldEnvdata.pl,
# so the variable definitions in here should be kept 'simple':
# VAR=VALUE
# each one on a single line.
#
# Default environment settings
# Channel Access:
# EPICS_CA_ADDR_LIST augment beacon/search dest ip addr list
# EPICS_CA_ADDR_LIST
# Augment beacon/search dest ip addr list
# from white space separated ip addresses in this
# environment variable. "Quote" if more than one addr.
# EPICS_CA_AUTO_ADDR_LIST YES = augment beacon/search dest ip
# addr list from interfaces found; NO = only use
# EPICS_CA_AUTO_ADDR_LIST
# YES = augment beacon/search dest ip
# addr list from network interfaces found; NO = only use
# EPICS_CA_ADDR_LIST to create this list.
# EPICS_CA_CONN_TMO sec before sending echo request from client.
# EPICS_CA_BEACON_PERIOD quiescent sec between server beacons.
# EPICS_CA_CONN_TMO
# after not seeing a server beacon for this number
# of seconds the clients will send an echo request over
# tcp/ip to verify the connection.
# EPICS_CA_REPEATER_PORT CA repeater port number.
# EPICS_CA_SERVER_PORT CA server port number.
EPICS_CA_ADDR_LIST=""
EPICS_CA_AUTO_ADDR_LIST=YES
EPICS_CA_CONN_TMO=30.0
EPICS_CA_BEACON_PERIOD=15.0
EPICS_CA_REPEATER_PORT=5065
EPICS_CA_SERVER_PORT=5064
#
# These parameters are only used by the CA server library
#
# EPICS_CA_BEACON_PERIOD
# quiescent sec between server beacons.
# EPICS_CAS_INTF_ADDR_LIST - list of IP addresses identifying
# a limited set of network interfaces for server communication.
# Specifically, this parameter specifies the interfaces from
# which the server will accept TCP/IP connections. It also
# specifies that UDP search messages addressed to both
# the IP addresses in EPICS_CAS_INTF_ADDR_LIST and also
# the broadcast addresses (or the destination addresses of
# point to point interfaces) of the corresponding interfaces
# will be accepted by the server. If this parameter is empty
# then TCP/IP connections are accepted from any interface
# (and any search messages addressed to the host are accepted).
# Beacons are sent only to the broadcast address of each interface
# in this list (or the destination address of point to point
# interfaces) if EPICS_CA_AUTO_ADDR_LIST is YES.
# Type "ifconfig -a" in order to determine which interfaces
# are available.
# EPICS_CAS_BEACON_ADDR_LIST - If this parameter is specified
# or if EPICS_CAS_INTF_ADDR_LIST isnt empty then this parameter
# is used instead of EPICS_CA_ADDR_LIST by the server library
# to augment the list of addresses to send beacons to.
# EPICS_CAS_SERVER_PORT - If this parameter is specified then it
# and not EPICS_CA_SERVER_PORT is used to determine the server's
# port number. It is possible to have multiple servers on the
# same host on the same EPICS_CAS_SERVER_PORT port if the IP
# kernel is modern (if it has multicast enhancements). In this
# situation all servers will share the same user specified
# UDP port number and will be assigned unique TCP port numbers.
# The fact that the servers may not be using the user specified
# port number for TCP will be completely transparent to EPICS
# 3.13 or higher clients that will be locating the servers
# using the user specified UDP port number, but will be connecting to
# the servers using whatever TCP port has been assigned.
#
# If experiencing trouble getting clients to connect
# --------------------------------------------------
#
# o Make sure that the broadcast addresses are identical on the
# server's host and on the client's host. This can be checked with
# "netstat -i" or "ifconfig -a".
#
# o Make sure that the client and server are using the same UDP
# port. Check the server's port by running "netstat -a | grep nnn"
# where nnn is the port number involved. If you do not set
# EPICS_CA_SERVER_PORT or EPICS_CAS_SERVER_PORT
# then the default port will be 5064.
#
# o Two servers can run on the same host with the same server port number
# if the following restrictions are understood (good luck). If the host has a
# modern IP kernel it is possible to have two servers on the same UDP port.
# It is not possible for two servers to run on the same host using the same
# TCP IP server port. If the CA server library detects that a 2nd server is attempting
# to start on the same port as an existing CA server then both servers will use the
# same UDP port if it is a modern IP kernel, and the 2nd server will
# be allocated a new TCP port. In this situation the clients will still be
# configured to use the same port number for both servers. The clients
# will find the 2nd server via the shared UDP port, and transparently
# connect to the 2nd server's allocated TCP port. Be aware that If there are
# two server's running on the same host on the same UDP port then they will
# both receive all UDP search requests sent as broadcasts, but will unfortunately (due to
# what I consider to be a real weakness of most IP kernel implementations) only one
# of the servers will typically receive UDP search requests sent to unicast addresses (i.e.
# a specific host's ip address).
#
EPICS_CA_BEACON_PERIOD=15.0
EPICS_CAS_INTF_ADDR_LIST=""
EPICS_CAS_BEACON_ADDR_LIST=""
EPICS_CAS_SERVER_PORT=
# Log Server:
# EPICS_IOC_LOG_PORT Log server port number.
# EPICS_IOC_LOG_PORT Log server port number etc.
EPICS_IOC_LOG_PORT=7004
# Other services:
EPICS_CMD_PROTO_PORT=

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.Linux
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = Linux

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.LynxOS
#
# Override values in CONFIG.LynxOS
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = LynxOS

View File

@@ -0,0 +1,12 @@
# CONFIG_HOST_ARCH.UnixCommon
#
# Unix command definitions
CP = cp
MV = mv
RM = rm -f
MKDIR = mkdir
RMDIR = rm -rf
CHMOD = "/bin/chmod"

View File

@@ -0,0 +1,18 @@
# CONFIG_HOST_ARCH.WIN32
#
EXE=.exe
CP =$(PERL) $(EPICS_BASE_HOST_BIN)/cp.pl
MV =$(PERL) $(EPICS_BASE_HOST_BIN)/mv.pl
RM =$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -f
MKDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/mkdir.pl
RMDIR=$(PERL) $(EPICS_BASE_HOST_BIN)/rm.pl -rf
CHMOD=echo
ECHO=echo
WIND_HOST_TYPE = x86-win32
# Use std path variables from ms
HOME = $(HOMEDRIVE)$(HOMEPATH)

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.alpha
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = alpha

View File

@@ -0,0 +1,13 @@
# CONFIG_HOST_ARCH.cygwin32
#
# This file is maintained by the EPICS community.
# Include definitions common to all Unix archs
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
EXE=.exe
TORNADO=YES
WIND_HOST_TYPE = cygwin32

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.hp700
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = hp700

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.sgi
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = sgi

View File

@@ -0,0 +1,9 @@
# CONFIG_HOST_ARCH.solaris
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = sun4-solaris2

View File

@@ -0,0 +1,14 @@
# CONFIG_HOST_ARCH.sun4
#
# Override values in CONFIG.Vx
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = sun4-sunos4
##########################
# added temporarily because gdd will not compile - 2/18/98
CPLUSPLUS =
##########################

View File

@@ -19,6 +19,8 @@
# solaris
# sgi
# Linux
# WIN32
# LynxOS
#
# HOST_ARCH now an environment variable
# HOST_ARCH=$(shell /usr/local/epics/startup/HostArch)
@@ -35,53 +37,89 @@ endif
# mv147
# hkv2f
# niCpu030
# pc486
# frc5ce
# hkbaja47
#
CROSS_COMPILER_TARGET_ARCHS=mv167
# If only a subset of the host architectures perform
# the build for the CROSS_COMPILER_TARGET_ARCHS
# uncomment the following line and specify them.
#
#CROSS_COMPILER_HOST_ARCHS=sun4
# VxWorks directory
#VX_DIR=/usr/csite/vw/5.1.1/vw
#VX_DIR=/usr/local/vw/vxV51.mm
#VX_DIR=/usr/local/vw/vxV52/vw
VX_DIR=/usr/local/vw/vxV52p1/vw
# Vx release Tornado?
# must be either YES or NO
TORNADO=YES
#TORNADO=NO
# VxWorks directory for TORNADO=YES
#VX_DIR_YES=c:\\Tornado
VX_DIR_YES = /usr/local/vw/tornado101
#VX_GNU = $(VX_DIR)
VX_GNU = $(VX_DIR)/../vxgccV2.2.3.1
# VxWorks directory for TORNADO=NO
#VX_DIR_NO=$(VW)
#VX_DIR_NO=/usr/local/vw/vxV51.mm
#VX_DIR_NO=/usr/local/vw/vxV52/vw
#VX_DIR_NO=c:/Tornado/target
VX_DIR_NO=/usr/local/vw/vxV52p1/vw
# Directory for TORNADO=NO gnu gcc crosscompiler
VX_GNU_NO = $(VX_DIR_NO)/../vxgccV2.2.3.1
# Directory for TORNADO=NO gnu g++ crosscompiler
# used by applications for hideos builds only
#GNU_DIR = $(LOCAL_GNU)
GNU_DIR = /usr/local/hideos/gnu_install-2.7.2
# Client ANSI Compiler
# GCC (gcc -ansi)
# ACC (acc)
# HPACC (cc -Aa)
#ANSI=HPACC
# Client ANSI C Compiler (for Host builds)
# GCC (gcc -ansi) GNU
# ACC (acc) OS VENDOR
# HPACC (cc -Aa) OTHER VENDOR
ANSI=ACC
# Client Standard C Compiler choice
# GCC (gcc -traditional)
# ACC (acc -Xs)
# SUNCC (cc)
# HPCC (cc -Ac)
#STANDARD=HPCC
STANDARD=ACC
# Client C++ Compiler (Not supported yet)
# C++ Compiler (for Host builds)
# G++ (g++) GNU C++
# CCC (CC) SUN C++
#CPLUSPLUS=G++
# CCC (CC) OS VENDOR C++
#Note: if CPLUSPLUS is empty then C++ src codes are not built
#CPLUSPLUS= # use this if site does not have C++ compiler
CPLUSPLUS=CCC
# Default ANSI level, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=STRICT
# Default C++ compiler ANSI level
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
# Individual Makefiles may override
CXXCMPLR=STRICT
# Build shared libraries?
# (archive libraries will also be built)
# must be either YES or NO
# NOTE: CONFIG_SITE.Host.$(HOST_ARCH) files may override
#
# NOTE WIN32: YES results in a DLL. CONFIG_SITE.Host.WIN32
# distribution file contains YES override
#
# NOTE solaris and sun4: If YES then LD_LIBRARY_PATH must
# include fullpathname $(INSTALL_LOCATION)/lib/$(HOST_ARCH)
# for both the base build and when invoking base executables
SHARED_LIBRARIES=NO
# Build client objects statically ?
# must be either YES or NO
STATIC_BUILD=NO
# Unix Optimization
# must be either YES or NO
UNIX_OPT=YES
HOST_OPT=YES
# VxWorks Optimization
# must be either YES or NO
@@ -89,12 +127,15 @@ VX_OPT=YES
# Generate Verbose Compiler Warnings for Unix
# must be either YES or NO
UNIX_WARN=YES
HOST_WARN=YES
# Generate Verbose Compiler Warnings for VxWorks
# must be either YES or NO
VX_WARN=YES
# adl2dl
ADL2DL = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/adl2dl
# sch2edif compiler and flags
SCH2EDIF = sch2edif
SCH2EDIF_PATH =
@@ -107,3 +148,6 @@ E2DB = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/e2db
E2DB_SYSFLAGS = -ate -d $(EPICS_EXTENSIONS)/templates/capfast/edb.def
E2DB_FLAGS =
#dbst
DBST = $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/dbst

View File

@@ -1,9 +1,15 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs
# APS overrides of definitions
GCC = gcc
G++ = g++
CC = gcc
CCC = g++
ACC = gcc
PLUSPLUS = g++
CXX = g++

View File

@@ -1,9 +1,8 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs
SHARED_LIBRARIES = YES

View File

@@ -1,9 +1,11 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs
# APS overrides of definitions
GCC = /opt/gnu/bin/gcc
G++ = /opt/gnu/bin/g++

View File

@@ -1,20 +0,0 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default SUN compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT

View File

@@ -1,21 +0,0 @@
#
# CONFIG_SITE.Unix.alpha
#
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT

View File

@@ -1,21 +0,0 @@
#
# CONFIG_SITE.Unix.hp700
#
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT

View File

@@ -1,9 +0,0 @@
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs

View File

@@ -1,9 +0,0 @@
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs

View File

@@ -1,9 +0,0 @@
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Epics defs

View File

@@ -1,27 +0,0 @@
#
# $Id$
#
# Revision 1.2 1994/06/28 00:02:32 bordua
# First cut at the RULES and CONFIGS.
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default SUN compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT
# Special C library requirements
SPECIAL_LANG = /usr/lang/SC2.0.1patch

View File

@@ -1,26 +0,0 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default SUN compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT
# Unbundled C compiler stuff
SPARCWORKS = /opt/SUNWspro
#SPECIAL_LANG = $(SPARCWORKS)/lib
SPECIAL_LANG = .

View File

@@ -1,31 +0,0 @@
#
# $Id$
#
# Site Specific Configuration Information
# Only the local epics system manager should modify this file
# Default SUN compiler, individual Makefiles will override
# if they cannot support ANSI compilation.
# STRICT - ANSI C - force warning flags
# ANSI - ANSI C
# OLD - Standard C - Not appropriate here.
CMPLR=ANSI
# Default SUN C++ compiler, individual Makefiles will override
# if they are coded to a higher standard.
# STRICT - ANSI C++ force strict warning flags
# NORMAL - ANSI C++ optional warning flags
CXXCMPLR=NORMAL
#CXXCMPLR=STRICT
#CMPLR=STRICT
#ANSI=GCC
#STANDARD=GCC
#CPLUSPLUS=G++
# Special C library requirements
#SPECIAL_LANG = /usr/lang/SC3.0.1
#SPECIAL_LANG = /usr/lang/lib
SPECIAL_LANG = .

View File

@@ -10,6 +10,11 @@
# not allowed around the '=' signs or in unquoted values.
# Makefile variables are not defined here.
#
# Note: This file is read by base/src/libCom/bldEnvdata.pl,
# so the variable definitions in here should be kept 'simple':
# VAR=VALUE
# each one on a single line.
#
# Site-specific environment settings
@@ -33,8 +38,8 @@ EPICS_TS_NTP_INET=
# path name in response to SIGHUP - the new path name will
# replace any path name supplied in EPICS_IOC_LOG_FILE_NAME
EPICS_IOC_LOG_INET=164.54.8.167
EPICS_IOC_LOG_FILE_NAME=/home/phebos1/epics/apple/log/iocLog.text
EPICS_IOC_LOG_INET=
EPICS_IOC_LOG_FILE_NAME=
EPICS_IOC_LOG_FILE_COMMAND=
EPICS_IOC_LOG_FILE_LIMIT=1000000

34
config/Makefile.Host Normal file
View File

@@ -0,0 +1,34 @@
#
# $Id$
#
TOP = ../..
include $(TOP)/config/CONFIG_BASE
CONFIGS += CONFIG
CONFIGS += CONFIG_BASE
CONFIGS += CONFIG_BASE_VERSION
CONFIGS += CONFIG_COMMON
CONFIGS += CONFIG_ENV
CONFIGS += CONFIG.Host.$(HOST_ARCH)
CONFIGS += CONFIG_HOST_ARCH.$(HOST_ARCH)
CONFIGS += CONFIG.Host.UnixCommon
CONFIGS += CONFIG_HOST_ARCH.UnixCommon
CONFIGS += CONFIG.Vx
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.Vx.%)
CONFIGS += CONFIG_SITE
CONFIGS += CONFIG_SITE_ENV
CONFIGS += $(subst ../,,$(wildcard ../CONFIG_SITE*))
CONFIGS += RULES.Host
CONFIGS += RULES.Unix
CONFIGS += RULES.Vx
CONFIGS += RULES_ARCHS
CONFIGS += RULES_DIRS
CONFIGS += RULES_TOP
include $(TOP)/config/RULES.Host

View File

@@ -1,30 +0,0 @@
#
# $Id$
#
TOP = ../..
include $(TOP)/config/CONFIG_BASE
CONFIGS += CONFIG
CONFIGS += CONFIG_BASE
CONFIGS += CONFIG_COMMON
CONFIGS += CONFIG_ENV
CONFIGS += CONFIG.Vx.68k
CONFIGS += CONFIG_SITE
CONFIGS += CONFIG_SITE_ENV
CONFIGS += $(HOST_ARCH:%=CONFIG.%)
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG.%)
CONFIGS += $(HOST_ARCH:%=CONFIG_SITE.%)
CONFIGS += $(CROSS_COMPILER_TARGET_ARCHS:%=CONFIG_SITE.%)
CONFIGS += RULES.Unix
CONFIGS += RULES.Vx
CONFIGS += RULES_ARCHS
CONFIGS += RULES_DIRS
CONFIGS += RULES_TOP
include $(TOP)/config/RULES.Unix

749
config/RULES.Host Normal file
View File

@@ -0,0 +1,749 @@
# $Id$
#
# Rules for making things specified in Makefile.Host
#
# Some rules for filename-massage are system specific
# and have "ifdefs" here instead of using definitions
# from CONFIG.Host.$(ARCH_CLASS) - sorry about this,
# but so far the rules are quite similar on all systems
# except WIN32 has some specials.
#
# Maybe there is a way to use indentation to make it
# easier to read this file?
#
# Most things may also work if you say e.g.
# VAR+=ADD
# even if ADD is not there, but this way "VAR" would
# be defined in any case, that's why I try to use
# ifdef ADD
# VAR+=ADD
# endif
#
# -kuk-
# we are in O.$(ARCH_CLASS), but most sources are one dir above:
#
# The use of VPATH (no suffix specification) caused everything
# to break several times.
# vpath, of course, has the disadvantage that we need explicit rules
# for scripts or similar os-specific filed which have _no_ suffix...
vpath %.h $(USER_VPATH)
vpath %.c $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
vpath %.cc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
vpath %.rc $(USER_VPATH) ../os/$(ARCH_CLASS) ../os/generic ..
# This prevents base/src/include/*.h from being installed. Why??
#vpath %.h ../os/$(ARCH_CLASS) ../os/generic ..
vpath %.h $(USER_VPATH)
# check for add-on CFLAGS and CXXFLAGS
#
# Rules:
# 1) USR_CFLAGS is used
# 2) if there is a special USR_CFLAGS_$(ARCH_CLASS), it's
# appended to 1)
# 3) if there is no special defined, but a generic USR_CFLAGS_DEFAULT,
# this one is appended
# 4) if you have the special case that your USR_CFLAGS_$(ARCH_CLASS) is
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
# USR_CFLAGS = <defines for all systems>
# USR_CFLAGS_sun4 = -nil-
# USR_CFLAGS_DEFAULT = <defines for most systems, not sun4>
#
# These rules apply to these Makefile-variables:
# USR_CFLAGS C flags
# USR_CXXFLAGS C++ flags
# INC include-files to install
# LIBSRCS source files for building library
# PROD_LIBS EPICS libs needed by PROD and TESTPROD
# USR_LIBS NONEPICS libs needed by PROD and TESTPROD
# SYS_PROD_LIBS system libs needed by PROD and TESTPROD
# PROD products to build and install
# SCRIPTS scripts to install
#
# Remark:
# If you define a special INC, e.g. INC_WIN32 = getopt.h,
# the source (getopt.h) has to be in os/WIN32 (or os/<your ARCH_CLASS>)
#
# This makes INC_$(ARCH_CLASS) slightly different from OSINC:
# OSINC = a_file.h
# means that you have a special os/$(ARCH_CLASS)/a_file.h
# for _every_ ARCH_CLASS.
# If you use INC_$(ARCH_CLASS), you need the special include
# only for the specified ARCH_CLASS!
#
ifneq ($(strip $(USR_CFLAGS_$(ARCH_CLASS))),)
USR_CFLAGS+=$(subst -nil-,,$(USR_CFLAGS_$(ARCH_CLASS)))
else
ifdef USR_CFLAGS_DEFAULT
USR_CFLAGS+=$(USR_CFLAGS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_CXXFLAGS_$(ARCH_CLASS))),)
USR_CXXFLAGS+=$(subst -nil-,,$(USR_CXXFLAGS_$(ARCH_CLASS)))
else
ifdef USR_CXXFLAGS_DEFAULT
USR_CXXFLAGS+=$(USR_CXXFLAGS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_CPPFLAGS_$(ARCH_CLASS))),)
USR_CPPFLAGS+=$(subst -nil-,,$(USR_CPPFLAGS_$(ARCH_CLASS)))
else
ifdef USR_CPPFLAGS_DEFAULT
USR_CPPFLAGS+=$(USR_CPPFLAGS_DEFAULT)
endif
endif
ifneq ($(strip $(USR_LDFLAGS_$(ARCH_CLASS))),)
USR_LDFLAGS+=$(subst -nil-,,$(USR_LDFLAGS_$(ARCH_CLASS)))
else
ifdef USR_LDFLAGS_DEFAULT
USR_LDFLAGS+=$(USR_LDFLAGS_DEFAULT)
endif
endif
# check for special includes:
#
ifneq ($(strip $(INC_$(ARCH_CLASS))),)
# os-specific includes go to the include/os-directory:
OSINC += $(subst -nil-,,$(INC_$(ARCH_CLASS)))
else
ifdef INC_DEFAULT
INC += $(INC_DEFAULT)
endif
endif
# concat specific library contents (if defined) to LIBCONTENS
#
ifneq ($(strip $(LIBSRCS_$(ARCH_CLASS))),)
LIBSRCS += $(subst -nil-,,$(LIBSRCS_$(ARCH_CLASS)))
else
ifdef LIBSRCS_DEFAULT
LIBSRCS+=$(LIBSRCS_DEFAULT)
endif
endif
# adjust object names for library contents
#
ifdef LIBSRCS
LIBOBJS=$(addsuffix $(OBJ), $(basename $(LIBSRCS)))
endif
#
# concat specific library contents (if defined) to PROD_LIBS
#
ifneq ($(strip $(PROD_LIBS_$(ARCH_CLASS))),)
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(ARCH_CLASS)))
else
ifdef PROD_LIBS_DEFAULT
PROD_LIBS += $(PROD_LIBS_DEFAULT)
endif
endif
#
# concat specific library contents (if defined) to USR_LIBS
#
ifneq ($(strip $(USR_LIBS_$(ARCH_CLASS))),)
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(ARCH_CLASS)))
else
ifdef USR_LIBS_DEFAULT
USR_LIBS += $(USR_LIBS_DEFAULT)
endif
endif
#
# concat specific library contents (if defined) to SYS_PROD_LIBS
#
ifneq ($(strip $(SYS_PROD_LIBS_$(ARCH_CLASS))),)
SYS_PROD_LIBS += $(subst -nil-,,$(SYS_PROD_LIBS_$(ARCH_CLASS)))
else
ifdef SYS_PROD_LIBS_DEFAULT
SYS_PROD_LIBS += $(SYS_PROD_LIBS_DEFAULT)
endif
endif
#
# concat specific products
#
ifneq ($(strip $(PROD_$(ARCH_CLASS))),)
PROD += $(subst -nil-,,$(PROD_$(ARCH_CLASS)))
else
ifdef PROD_DEFAULT
PROD += $(PROD_DEFAULT)
endif
endif
#
# concat specific scripts
#
ifneq ($(strip $(SCRIPTS_$(ARCH_CLASS))),)
SCRIPTS += $(subst -nil-,,$(SCRIPTS_$(ARCH_CLASS)))
else
ifdef SCRIPTS_DEFAULT
SCRIPTS += $(SCRIPTS_DEFAULT)
endif
endif
#
# concat specific resource files
#
ifneq ($(strip $(RCS_$(ARCH_CLASS))),)
RCS += $(subst -nil-,,$(RCS_$(ARCH_CLASS)))
else
ifdef RCS_DEFAULT
RCS += $(RCS_DEFAULT)
endif
endif
# adjust executables
ifdef TESTPROD
TESTPROD := $(addsuffix $(EXE), $(TESTPROD))
endif
# adjust executables
ifdef PROD
PROD := $(addsuffix $(EXE), $(PROD))
endif
#---------------------------------------------------------------
# if we are not building base add base includes and ld dirs
# (convenience for extensions and applications)
ifneq ($(EPICS_BASE),$(TOP))
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
endif
endif
#---------------------------------------------------------------
# ----------------------------------------------------
# create names (lists) for installed things
# ----------------------------------------------------
# each list starts with the destination directory name(s)
# to make sure it's there
INCREC +=$(RECTYPES) $(MENUS)
INSTALL_PROD= $(PROD:%= $(INSTALL_BIN)/%)
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
INSTALL_DLL_LINK_LIBS=$(DLL_LINK_LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
INSTALL_INC= $(INC:%=$(INSTALL_INCLUDE)/%)
INSTALL_OSINCLUDE=$(INSTALL_INCLUDE)/os/$(ARCH_CLASS)
INSTALL_OSINC= $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
MANLIST = 1 2 3 4 5 6 7 8 9
INSTALL_MANS = $(foreach n, \
$(MANLIST), $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
ifdef TEMPLATES_DIR
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
else
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)
endif
INSTALL_TEMPLATE = $(TEMPLATES:%= $(INSTALL_TEMPLATES_SUBDIR)/%)
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
$(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\
$(MENUS:%.h= $(INSTALL_DBD)/%.dbd)
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
#---------------------------------------------------------------
ifneq ($(strip $(SHARED_LIBRARIES_$(ARCH_CLASS))),)
SHARED_LIBRARIES+=$(subst -nil-,,$(SHARED_LIBRARIES_$(ARCH_CLASS)))
else
ifdef SHARED_LIBRARIES_DEFAULT
SHARED_LIBRARIES_+=$(SHARED_LIBRARIES_DEFAULT)
endif
endif
#---------------------------------------------------------------
# must use c++ linker if linking to shared libs with c++ code
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
ifneq ($(strip $(CPLUSPLUS)),)
LINK.c = $(LINK.cc)
endif # CPLUSPLUS
endif # LIBTYPE
#---------------------------------------------------------------
# Version number for base shared libraries (and win32 products)
ifeq ($(EPICS_BASE),$(TOP))
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
endif # EPICS_BASE
#---------------------------------------------------------------
# Libraries
#
# if there are no objects LIBOBJS to include
# in this library (may be for e.g. base/src/libCompat
# on some archs), don't define (and build) any library!
ifdef LIBRARY
ifdef LIBOBJS
LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS)
CFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
CXXFLAGS += $($(ANSI)_SHRLIB_CFLAGS_YES)
# check if shared libraries requested
ifeq ($(strip $(SHARED_LIBRARIES)),YES)
PROD_VERSION =$(SHRLIB_VERSION)
ifeq ($(findstring cc,$(suffix $(LIBSRCS))),cc)
SHRLIB_LINKER = $(CXX)
else
SHRLIB_LINKER = $(CC)
endif
LIBTARGETS += $(SHRLIBNAME) $(INSTALL_SHRLIBS) $(INSTALL_DLL_LINK_LIBS)
endif # SHARED_LIBRARIES=YES
endif # LIBOBJS
endif # LIBRARY
#---------------------------------------------------------------
# Main targets
all:: install
build:: $(LIBTARGETS) $(PROD) $(TESTPROD) \
$(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
rebuild:: clean install
install:: inc buildInstall
buildInstall :: build $(TARGETS) \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
$(INSTALL_MANS) \
$(INSTALL_DOCS) \
$(INSTALL_HTMLS) \
$(INSTALL_TEMPLATE) \
$(INSTALL_CONFIGS) \
$(INSTALL_DBS) $(INSTALL_BPTS) \
$(INSTALL_DBDNAME) $(INSTALL_INCREC) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX)
clean::
@echo "Cleaning"
@$(RM) *.i *$(OBJ) *.a $(PROD) $(TESTPROD) $(LIBNAME) $(SHRLIBNAME) $(INC) *$(RES) $(TARGETS) \
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
#---------------------------------------------------------------
# Products
#
PROD += $(TESTPROD)
ifdef PROD
COND_PROD_SRCS=$(foreach prod, $(basename $(PROD)), $($(prod)_SRCS))
COND_PROD_RCS=$(foreach prod, $(basename $(PROD)), $($(prod)_RCS) $($(prod)_RCS_$(ARCH_CLASS)))
COND_PROD_LIBS=$(foreach prod, $(basename $(PROD)), $($(prod)_LIBS))
ifdef PRODNAME
ifneq ($(strip $(PRODNAME_SRCS_$(ARCH_CLASS))),)
PRODNAME_SRCS += $(subst -nil-,,$(PRODNAME_SRCS_$(ARCH_CLASS)))
else
ifdef PRODNAME_SRCS_DEFAULT
PRODNAME_SRCS += $(PRODNAME_SRCS_DEFAULT)
endif
endif
ifneq ($(strip $(PRODNAME_RCS_$(ARCH_CLASS))),)
PRODNAME_RCS += $(subst -nil-,,$(PRODNAME_RCS_$(ARCH_CLASS)))
else
ifdef PRODNAME_RCS_DEFAULT
PRODNAME_RCS += $(PRODNAME_RCS_DEFAULT)
endif
endif
$(PRODNAME): $(PROD_DEPLIBS) $(PRODNAME_DEPLIBS)
ifdef PRODNAME_SRCS
ifeq ($(findstring cc,$(suffix $(PRODNAME_SRCS))),cc)
PRODNAME_LINKER = $(LINK.cc)
else
PRODNAME_LINKER = $(LINK.c)
endif
PRODNAME_OBJS=$(addsuffix $(OBJ), $(basename $(PRODNAME_SRCS)))
PRODNAME_RESS=$(addsuffix $(RES), $(basename $(PRODNAME_RCS)))
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
@$(RM) $@
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
endif # ifdef PRODNAME_SRCS
else # PRODNAME not defined
# We have to use the product's true dependancies and
# call make again to determine if product should be rebuilt
ifneq ($(strip $(SRCS) $(COND_PROD_SRCS)),)
PROD_OBJS=$(addsuffix $(OBJ), $(basename $(SRCS) $(COND_PROD_SRCS)))
PROD_RESS=$(addsuffix $(RES), $(basename $(RCS) $(COND_PROD_RCS)))
PROD_MAKE_COMMAND=$(MAKE) $@\
PRODNAME="$@"\
PRODNAME_SRCS="$(SRCS) $($(basename $@)_SRCS)"\
PRODNAME_SRCS_DEFAULT="$($(basename $@)_SRCS_DEFAULT)"\
PRODNAME_SRCS_$(ARCH_CLASS)="$($(basename $@)_SRCS_$(ARCH_CLASS))"\
PRODNAME_RCS="$(RCS) $($(basename $@)_RCS)"\
PRODNAME_RCS_DEFAULT="$($(basename $@)_RCS_DEFAULT)"\
PRODNAME_RCS_$(ARCH_CLASS)="$($(basename $@)_RCS_$(ARCH_CLASS))"\
PRODNAME_LIBS="$($(basename $@)_LIBS)"
$(PROD): $(PROD_OBJS) $(PROD_RESS) $(PROD_DEPLIBS) $(COND_PROD_DEPLIBS)
@$(PROD_MAKE_COMMAND)
endif
endif #ifdef PRODNAME
endif #ifdef PROD
#---------------------------------------------------------------
# Java classes and packages
#
INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
DIRECTORY_TARGETS += $(INSTALL_JAVA)
ifdef PACKAGE
DIRECTORY_TARGETS += $(INSTALL_JAVA)/$(PACKAGE)
endif
vpath %.class $(INSTALL_JAVA)/$(PACKAGE)
CLASSES += $(subst .java,.class,$(JAVA))
TESTCLASSES += $(subst .java,.class,$(TESTJAVA))
INSTALL_CLASSES =$(CLASSES:%=$(INSTALL_JAVA)/$(PACKAGE)/%)
INSTALL_JAR =$(JAR:%=$(INSTALL_JAVA)/%)
JAR_OPTIONS = cvf
ifdef MANIFEST
JAR_OPTIONS = cvmf
endif
JAR_DEPFILES += $(wildcard $(JAR_INPUT) $(addsuffix /*,$(JAR_INPUT)))
$(DIRECTORY_TARGETS) :
$(MKDIR) $@
build:: $(TESTCLASSES) $(JAR)
buildInstall :: $(DIRECTORY_TARGETS) $(INSTALL_CLASSES) $(INSTALL_JAR)
clean::
@$(RM) $(TESTCLASSES) $(JAR)
%.class:%.java
@echo Creating java class file $@
$(RM) $@
$(JAVACCMD) $<
$(INSTALL_JAVA)/$(PACKAGE)/%.class:%.java
@echo Creating java class file $@
@$(RM) $@
$(JAVACCMD) -d $(INSTALL_JAVA) $<
$(JAR):%.jar: $(JAR_DEPFILES)
@echo Creating java jar file $@
@$(RM) $@
$(JARCMD)
$(INSTALL_JAVA)/%.jar: %.jar
@echo "Installing jar file $@"
$(INSTALL) -d -m 644 $< $(@D)
#---------------------------------------------------------------
#---------------------------------------------------------------
# Generic Rules for 'simple' targets that
# can be generated from a single source with same basename.
#
# The usual two rules .c* -> $(OBJ) and then $(OBJ) -> $(EXE)
# do not work because the $(OBJ)->$(EXE) rule wouldn't
# know if the original source was C or C++.
#
# Hint: The $(subst...) construct removes the .c or .cc
# as well as the '../' from the filename and adds $(OBJ):
# e.g. $< = '../abc.c' -> 'abc.o'
#
# The order of the following rules is
# VERY IMPORTANT !!!!
depends:: $(LIBSRCS) $(SRCS) $(COND_PROD_SRCS)
$(RM) DEPENDS
touch DEPENDS
$(DEPENDS_RULE)
%$(EXE): %.c
@$(RM) $@
$(COMPILE.c) $<
$(LINK.c) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
%$(EXE): %.cc
@$(RM) $@
$(COMPILE.cc) $<
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
%$(EXE): %.C
@$(RM) $@
$(COMPILE.cc) $<
$(LINK.cc) $(subst ../,,$(basename $<))$(OBJ) $(LDLIBS)
%$(OBJ): %.c
@$(RM) $@
$(COMPILE.c) $<
%$(OBJ): %.cc
@$(RM) $@
$(COMPILE.cc) $<
%$(OBJ): %.C
@$(RM) $@
$(COMPILE.cc) $<
# WIN95/NT resource compiler
%$(RES): %.rc
@$(RM) $@
$(RCCMD)
#
# rename the y.tab.h file only if we
# are creating it
#
%.h %.c: ../%.y
$(RM) $*.c y.tab.c
ifeq ($(findstring -d, $(YACCOPT)),-d)
$(RM) $*.h y.tab.h
endif
$(YACC) $(YACCOPT) $<
$(MV) y.tab.c $*.c
ifeq ($(findstring -d, $(YACCOPT)),-d)
$(MV) y.tab.h $*.h
endif
%.c: ../%.l
@$(RM) lex.yy.c
$(LEX) $(LEXOPT) $<
@$(RM) $@
$(MV) lex.yy.c $@
#state notation language rule
%.c: ../%.st
@echo "preprocessing $*.st"
@$(RM) $*.i
$(CPP) $(CPPFLAGS) $< $*.i
@echo "converting $*.i"
@$(RM) $@
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
%.c: %.stt
@echo "converting $<
ln -s $< $*.st
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
@$(RM) $*.st
# Capfast Rules:
%.db: %.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.db: ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.edf: ../%.sch
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
# Adl2dl rule
%.dl : ../%.adl
-$(ADL2DL) $< $@
# Mangen Rule:
%.1:%
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
# Mangen Rule:
%.1:../%
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
$(INSTALL_DBD)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
$(INSTALL_DBD)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
%Record.h: %Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
$(USER_DBDFLAGS) $<
%Record.h: ../%Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
$(USER_DBDFLAGS) $<
menu%.h: menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
menu%.h: ../menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
bpt%.dbd: bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
bpt%.dbd: ../bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
$(DBDNAME): ../$(DBDEXPAND)
@echo expanding dbd
@$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS)
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS)
# rule for lib (archive of object files) creation
$(LIBNAME): $(LIBOBJS)
$(RM) $@
$(ARCMD) $(LIBOBJS)
ifdef RANLIB
$(RANLIB) $@;
endif # RANLIB
$(INSTALL_BIN)/%: ../os/$(ARCH_CLASS)/%
@echo "Installing os-specific script $@"
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_BIN)/%: %
@echo "Installing binary $@"
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_BIN)/%: ../%
@echo "Installing script $@"
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_LIB)/%.a: %.a
@echo "Installing library $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
ifdef RANLIB
$(RANLIB) $(RANLIBFLAGS) $@
endif # RANLIB
$(INSTALL_LIB)/%.lib: %.lib
@echo "Installing library $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
$(INSTALL_SHRLIB)/lib%: lib%
@echo "Installing library $@"
@$(INSTALL) -d -m 555 $< $(INSTALL_SHRLIB)
ifdef SHRLIB_VERSION
@$(RM) $(@:%.$(SHRLIB_VERSION)=%)
ln -s $< $(@:%.$(SHRLIB_VERSION)=%)
endif # SHRLIB_VERSION
$(INSTALL_TCLLIB)/%: %
@echo "Installing Tcl library $@"
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
$(INSTALL_TCLLIB)/%: ../%
@echo "Installing Tcl library $@"
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
$(INSTALL_CONFIG)/%: %
@echo "Installing config file $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
$(INSTALL_CONFIG)/%: ../%
@echo "Installing config file $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
@echo "Installing man file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
@echo "Installing man file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_INCLUDE)/%: %
@echo "Installing include file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_INCLUDE)/%: ../%
@echo "Installing include file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DOC)/%: %
@echo "Installing doc $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
$(INSTALL_DOC)/%: ../%
@echo "Installing doc $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
@echo "Installing html $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
@echo "Installing html $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
.PRECIOUS: %.o %.c
-include DEPENDS
.PHONY:: all inc depends build install clean rebuild buildInstall
# EOF RULES.Host

View File

@@ -1,37 +1,66 @@
# $Id$
VPATH += .:..
INSTALL_PROD=$(PROD:%=$(INSTALL_BIN)/%)
INSTALL_LIBS=$(LIBNAME:%=$(INSTALL_LIB)/%)
INSTALL_INC=$(INC:%=$(INSTALL_INCLUDE)/%)
INSTALL_MANS+=$(MAN1:%=$(INSTALL_MAN)/man1/%)
INSTALL_MANS+=$(MAN2:%=$(INSTALL_MAN)/man2/%)
INSTALL_MANS+=$(MAN3:%=$(INSTALL_MAN)/man3/%)
INSTALL_MANS+=$(MAN4:%=$(INSTALL_MAN)/man4/%)
INSTALL_MANS+=$(MAN5:%=$(INSTALL_MAN)/man5/%)
INSTALL_MANS+=$(MAN6:%=$(INSTALL_MAN)/man6/%)
INSTALL_MANS+=$(MAN7:%=$(INSTALL_MAN)/man7/%)
INSTALL_MANS+=$(MAN8:%=$(INSTALL_MAN)/man8/%)
INSTALL_MANS+=$(MAN9:%=$(INSTALL_MAN)/man9/%)
INSTALL_DOCS=$(DOCS:%=$(INSTALL_DOC)/%)
INSTALL_SCRIPTS=$(SCRIPTS:%=$(INSTALL_BIN)/%)
INSTALL_TEMPLATE=$(TEMPLATES:%=$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%)
INCREC +=$(RECTYPES) $(MENUS)
INSTALL_PROD = $(PROD:%= $(INSTALL_BIN)/%)
INSTALL_LIBS = $(LIBNAME:%= $(INSTALL_LIB)/%)
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
INSTALL_CONFIGS=$(CONFIGS:%=$(INSTALL_CONFIG)/%)
INSTALL_INC = $(INC:%= $(INSTALL_INCLUDE)/%)
INSTALL_OSINCLUDE = $(INSTALL_INCLUDE)/os/$(T_A)
INSTALL_OSINC = $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
MANLIST = 1 2 3 4 5 6 7 8 9
INSTALL_MANS = $(foreach n, \
$(MANLIST),$(INSTALL_MAN)/man$(n) $(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
INSTALL_TEMPLATE = $(TEMPLATES:%= $(INSTALL_TEMPLATES_SUBDIR)/%)
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
$(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\
$(MENUS:%.h= $(INSTALL_DBD)/%.dbd)
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
DIRECTORY_TARGETS = $(INSTALL_INCLUDE) $(INSTALL_INCLUDE)/os \
$(INSTALL_OSINCLUDE) $(INSTALL_DOC) \
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR) $(INSTALL_TEMPLATES) \
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) $(INSTALL_LIB) \
$(INSTALL_LOCATION_LIB) $(INSTALL_CONFIG) \
$(MAN_DIRECTORY_TARGETS) $(INSTALL_MAN)
all:: install
pre_build::
build:: pre_build $(LIBNAME) $(TARGETS) $(PROD)
rebuild:: clean install
inc:: $(INSTALL_INC)
build:: pre_build $(LIBNAME) $(TARGETS) $(PROD)\
$(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
install:: inc build $(INSTALL_LIBS) $(TARGETS) $(INSTALL_SCRIPTS) $(INSTALL_PROD) \
$(INSTALL_MANS) $(INSTALL_DOCS) $(INSTALL_TEMPLATE) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) $(INSTALL_CONFIGS)
inc:: $(INSTALL_INCLUDE) $(INSTALL_INC) $(INSTALL_INCLUDE)/os \
$(INSTALL_OSINCLUDE) $(INSTALL_OSINC)
install:: inc buildInstall
buildInstall :: build \
$(INSTALL_LOCATION_LIB) $(INSTALL_LIB) $(INSTALL_LIBS) \
$(TARGETS) \
$(INSTALL_LOCATION_BIN) $(INSTALL_BIN) \
$(INSTALL_SCRIPTS) $(INSTALL_PROD) \
$(INSTALL_MAN) $(INSTALL_MANS) $(INSTALL_HTMLS) \
$(INSTALL_DOC) $(INSTALL_DOCS) $(INSTALL_TEMPLATES) \
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR) $(INSTALL_TEMPLATE) \
$(INSTALL_CONFIG) $(INSTALL_CONFIGS) \
$(INSTALL_DBD) $(INSTALL_DBS) $(INSTALL_BPTS) \
$(INSTALL_DBDNAME) $(INSTALL_INCREC) \
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX)
depends:: $(SRCS.c) $(SRCS.cc)
ifdef SRCS
@@ -49,6 +78,8 @@ clean::
@echo "Cleaning"
@$(RM) *.i *.o *.a $(TARGETS) $(PROD) $(LIBNAME) $(INC)
$(DIRECTORY_TARGETS) :
@$(MKDIR) $@
$(TARGETS) $(PROD): $(DEPLIBS)
@@ -59,7 +90,7 @@ $(TARGETS) $(PROD): $(DEPLIBS)
$(RM) $@
$(LINK.c) -o $@ $< $(LDLIBS)
#$(PROD): $(OBJS) $(DEPLIBS)
#$(PROD): $(OBJS)
# $(RM) $@
# $(LINK.c) -o $@ ${OBJS} $(LDLIBS)
@@ -67,32 +98,40 @@ $(TARGETS) $(PROD): $(DEPLIBS)
$(RM) $@
$(COMPILE.c) $<
%.o: ../%.c
$(RM) $@
$(COMPILE.c) $<
%.o: %.cc
$(RM) $@
$(COMPILE.cc) $<
%.c: %.y
%.o: ../%.cc
$(RM) $@
$(COMPILE.cc) $<
%.c: ../%.y
$(RM) y.tab.c y.tab.h
$(YACC) $(YACCOPT) $<
@if [ -f y.tab.c ]; \
then \
echo "/bin/mv y.tab.c $*.c"; \
/bin/mv y.tab.c $*.c; \
echo "$(MV) y.tab.c $*.c"; \
$(MV) y.tab.c $*.c; \
fi
@if [ -f y.tab.h ]; \
then \
echo "/bin/mv y.tab.h $*.h"; \
/bin/mv y.tab.h $*.h; \
echo "$(MV) y.tab.h $*.h"; \
$(MV) y.tab.h $*.h; \
fi
%.c: %.l
%.c: ../%.l
$(RM) lex.yy.c
$(LEX) $(LEXOPT) $<
$(RM) $@
/bin/mv lex.yy.c $@
$(MV) lex.yy.c $@
#state notation language rules
%.c: %.st
#state notation language rule
%.c: ../%.st
@echo "preprocessing $*.st"
@$(RM) $*.i
$(CPP) $(CPPFLAGS) $< $*.i
@@ -107,91 +146,155 @@ $(TARGETS) $(PROD): $(DEPLIBS)
# Capfast Rules:
%.db: %.edf
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.db: ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.edf: ../%.sch $(DEPSCHS)
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
# Adl2dl rule
%.dl : ../%.adl
-$(ADL2DL) $< $@
# Mangen Rule:
%.1:%
$(RM) $(<F)
$(RM) $(<F).nr
ln -s $<
$(MANGEN) -s $(<F)
mv $(<F).nr $(<F).1
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
# Mangen Rule:
%.1:../%
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
$(INSTALL_DBD)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
$(INSTALL_DBD)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
%Record.h: %Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
$(USER_DBDFLAGS) $<
%Record.h: ../%Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
$(USER_DBDFLAGS) $<
menu%.h: menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
menu%.h: ../menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
bpt%.dbd: bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
bpt%.dbd: ../bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
$(DBDNAME): ../$(DBDEXPAND)
@echo expanding dbd
@$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand $(USER_DBDFLAGS) $< > $@
$(LIBNAME): $(LIBOBJS)
@echo Building library $@
$(RM) $@
$(AR) $(ARFLAGS) $@ $(LIBOBJS)
$(ARCMD) $(LIBOBJS)
@if [ ! -z "$(RANLIB)" ] ; then\
echo $(RANLIB) $@; \
$(RANLIB) $@; \
fi
$(INSTALL_BIN)/%: %
@echo "Installing $@"
@test -d $(INSTALL_LOCATION_BIN) || mkdir $(INSTALL_LOCATION_BIN)
@test -d $(INSTALL_BIN) || mkdir $(INSTALL_BIN)
@$(INSTALL_PRODUCT) -m 555 $< $(INSTALL_BIN)
$(INSTALL_BIN)/%: %
@echo "Installing Binary $@"
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_LIB)/%.a: %.a
$(INSTALL_BIN)/%: ../%
@echo "Installing Binary $@"
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_LIB)/%.a: %.a
@echo "Installing library $@"
@test -d $(INSTALL_LOCATION_LIB) || mkdir $(INSTALL_LOCATION_LIB)
@test -d $(INSTALL_LIB) || mkdir $(INSTALL_LIB)
@$(INSTALL) -m 644 $< $(INSTALL_LIB)
@$(INSTALL) -d -m 644 $< $(INSTALL_LIB)
@if [ ! -z "$(RANLIB)" ] ; then\
$(RANLIB) $(RANLIBFLAGS) $@; \
fi
$(INSTALL_CONFIG)/%: %
@echo "Installing $@"
@test -d $(INSTALL_CONFIG) || mkdir $(INSTALL_CONFIG)
@$(INSTALL) -m 644 $< $(INSTALL_CONFIG)
$(INSTALL_TCLLIB)/%: %
$(INSTALL_TCLLIB)/%: %
@echo "Installing Tcl library $@"
@test -d $(INSTALL_LOCATION_LIB) || mkdir $(INSTALL_LOCATION_LIB)
@test -d $(INSTALL_LIB) || mkdir $(INSTALL_LIB)
@$(INSTALL) -m 644 $< $(INSTALL_LIB)
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
$(INSTALL_TCLLIB)/%: ../%
@echo "Installing Tcl library $@"
@$(INSTALL) -d -m 555 $< $(INSTALL_TCLLIB)
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
@echo "Updating $@"
@echo eval auto_mkindex $(INSTALL_LIB) "$(TCLLIBNAME)" | tclsh
@echo eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
$(INSTALL_CONFIG)/%: %
@echo "Installing Config File $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
$(INSTALL_MAN)/man9/% \
$(INSTALL_MAN)/man8/% \
$(INSTALL_MAN)/man7/% \
$(INSTALL_MAN)/man6/% \
$(INSTALL_MAN)/man5/% \
$(INSTALL_MAN)/man4/% \
$(INSTALL_MAN)/man3/% \
$(INSTALL_MAN)/man2/% \
$(INSTALL_MAN)/man1/%: %
@echo "Installing $@"
@test -d $(INSTALL_MAN) || mkdir $(INSTALL_MAN)
@test -d $(@D) || mkdir $(@D)
@$(INSTALL) -m 644 $< $(@D)
$(INSTALL_CONFIG)/%: ../%
@echo "Installing Config File $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_CONFIG)
$(INSTALL_INCLUDE)/%: %
@echo "Installing $@"
@test -d $(INSTALL_INCLUDE) || mkdir $(INSTALL_INCLUDE)
@$(INSTALL) -m 644 $< $(INSTALL_INCLUDE)
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
@echo "Installing man file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DOC)/%: %
@echo "Installing $@"
@test -d $(INSTALL_DOC) || mkdir $(INSTALL_DOC)
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
@echo "Installing man file $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
$(INSTALL_INCLUDE)/%: %
@echo "Installing Include File $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_INCLUDE)/%: ../%
@echo "Installing Include File $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DOC)/%: %
@echo "Installing doc $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
$(INSTALL_DOC)/%: ../%
@echo "Installing doc $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DOC)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
@echo "Installing html $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
@echo "Installing html $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: ../%
@echo "Installing template $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)/%: %
@echo "Installing template $@"
@$(INSTALL) -d -m 644 $< $(@D)
.PRECIOUS: %.o %.c
.PHONY: all inc depends build install pre-build clean
.PHONY:: all inc depends build install pre-build clean rebuild
-include .DEPENDS

View File

@@ -1,71 +1,88 @@
# $Id$
VPATH += .:..
ifneq ($(strip $(LIBOBJS_$(ARCH_CLASS))),)
LIBOBJS+=$(subst -nil-,,$(LIBOBJS_$(ARCH_CLASS)))
else
ifdef LIBOBJS_DEFAULT
LIBOBJS+=$(LIBOBJS_DEFAULT)
endif
endif
INCREC +=$(RECTYPES) $(MENUS)
INSTALL_PROD=$(PROD:%=$(INSTALL_BIN)/%)
INSTALL_LIBS=$(LIBNAME:%=$(INSTALL_BIN)/%)
INSTALL_INC=$(INC:%=$(INSTALL_INCLUDE)/%)
INSTALL_INCREC=$(INCREC:%=$(INSTALL_INCLUDE)/%)
INSTALL_MANS+=$(MAN1:%=$(INSTALL_MAN)/man1/%)
INSTALL_MANS+=$(MAN2:%=$(INSTALL_MAN)/man2/%)
INSTALL_MANS+=$(MAN3:%=$(INSTALL_MAN)/man3/%)
INSTALL_MANS+=$(MAN4:%=$(INSTALL_MAN)/man4/%)
INSTALL_MANS+=$(MAN5:%=$(INSTALL_MAN)/man5/%)
INSTALL_MANS+=$(MAN6:%=$(INSTALL_MAN)/man6/%)
INSTALL_MANS+=$(MAN7:%=$(INSTALL_MAN)/man7/%)
INSTALL_MANS+=$(MAN8:%=$(INSTALL_MAN)/man8/%)
INSTALL_MANS+=$(MAN9:%=$(INSTALL_MAN)/man9/%)
INSTALL_DOCS=$(DOCS:%=$(INSTALL_DOC)/%)
INSTALL_SCRIPTS=$(SCRIPTS:%=$(INSTALL_BIN)/%)
INSTALL_INSTALLS=$(INSTALLS:%=$(INSTALL_BIN)/%)
INSTALL_PROD = $(PROD:%= $(INSTALL_BIN)/%)
INSTALL_LIBS = $(LIBNAME:%= $(INSTALL_BIN)/%)
INSTALL_LIBS_CXX = $(LIBNAME_CXX:%= $(INSTALL_BIN)/%)
INSTALL_INC = $(INC:%= $(INSTALL_INCLUDE)/%)
INSTALL_OSINCLUDE = $(INSTALL_INCLUDE)/os/vxWorks
INSTALL_OSINC = $(OSINC:%= $(INSTALL_OSINCLUDE)/%)
INSTALL_INCREC = $(INCREC:%= $(INSTALL_INCLUDE)/%)
MANLIST = 1 2 3 4 5 6 7 8 9
INSTALL_MANS = $(foreach n, \
$(MANLIST),$(MAN$(n):%= $(INSTALL_MAN)/man$(n)/%))
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
INSTALL_INSTALLS = $(INSTALLS:%= $(INSTALL_BIN)/%)
INSTALL_BPTS=$(BPTS:%=$(INSTALL_DBD)/%)
INSTALL_DBS=$(DBDINSTALL:%=$(INSTALL_DBD)/%)\
$(RECTYPES:%.h=$(INSTALL_DBD)/%.dbd)\
$(MENUS:%.h=$(INSTALL_DBD)/%.dbd)
INSTALL_BPTS = $(BPTS:%= $(INSTALL_DBD)/%)
INSTALL_DBS = $(DBDINSTALL:%= $(INSTALL_DBD)/%)\
$(RECTYPES:%.h= $(INSTALL_DBD)/%.dbd)\
$(MENUS:%.h= $(INSTALL_DBD)/%.dbd)
INSTALL_DBDNAME=$(DBDNAME:%=$(INSTALL_DBD)/%)
INSTALL_DBDNAME = $(DBDNAME:%= $(INSTALL_DBD)/%)
all:: install
MAN_DIRECTORY_TARGETS = $(foreach n, $(MANLIST),$(INSTALL_MAN)/man$(n))
# if we are not building base add base includes
#
ifneq ($(EPICS_BASE),$(TOP))
ifneq ($(EPICS_BASE),$(INSTALL_LOCATION))
EPICS_INCLUDES += -I$(EPICS_BASE_INCLUDE) -I$(EPICS_BASE_INCLUDE)/os/$(OS_CLASS)
endif
endif
all:: install
rebuild:: clean install
pre_build::
build:: pre_build $(MENUS) $(RECTYPES) $(BPTS)\
$(LIBNAME) $(TARGETS) $(PROD) $(DBDEXPAND)
$(LIBNAME) $(LIBNAME_CXX) $(TARGETS) $(PROD) $(DBDNAME)
inc:: $(INSTALL_INC)
inc:: $(INSTALL_INC) $(INSTALL_OSINC)
install:: inc buildInstall
install:: inc build $(INSTALL_INCREC)\
$(INSTALL_LIBS) $(TARGETS) $(INSTALL_PROD) $(INSTALL_MANS)\
$(INSTALL_DOCS) $(INSTALL_SCRIPTS)\
$(INSTALL_INSTALLS) $(INSTALL_DBS) $(INSTALL_BPTS)\
$(INSTALL_DBDNAME)
buildInstall :: build $(INSTALL_INCREC)\
$(INSTALL_LIBS) $(INSTALL_LIBS_CXX) \
$(TARGETS) $(INSTALL_PROD) \
$(INSTALL_MANS) $(INSTALL_DOCS) \
$(INSTALL_HTMLS) \
$(INSTALL_SCRIPTS) $(INSTALL_INSTALLS)\
$(INSTALL_DBS) $(INSTALL_BPTS) \
$(INSTALL_DBDNAME)
ifdef BIN_INSTALLS
buildInstall :: binInstalls
endif
depends:: $(SRCS.c) $(SRCS.cc)
ifdef SRCS
echo you have a SRCS in your Makefile
exit 2
endif
ifdef SRCS.c
$(DEPENDS_RULE.c)
endif
ifdef SRCS.cc
$(DEPENDS_RULE.cc)
endif
$(RM) DEPENDS
touch DEPENDS
$(DEPENDS_RULE)
clean::
@echo "Cleaning"
@$(RM) *.i *.o *.a $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDEXPAND)
@$(RM) *.i *.o *.a *.out $(TARGETS) $(PROD) $(LIBNAME) $(INC) \
$(DBDINSTALL) $(MENUS) $(RECTYPES) $(BPTS) $(DBDNAME)
# The order of the following dependencies is
# VERY IMPORTANT !!!!
%: %.o
$(RM) $@
$(LINK.c) $@ $<
$(LINK.c) $@ $< $(LDLIBS)
#$(PROD): $(OBJS)
# $(RM) $@
@@ -75,136 +92,199 @@ clean::
$(RM) $@
$(COMPILE.c) $<
%.o: ../%.c
$(RM) $@
$(COMPILE.c) $<
%.o: %.cc
$(RM) $@
$(COMPILE.cc) $<
%.c: %.y
$(RM) y.tab.c y.tab.h
$(YACC) $(YACCOPT) $<
@if [ -f y.tab.c ]; \
then \
echo "/bin/mv y.tab.c $*.c"; \
/bin/mv y.tab.c $*.c; \
fi
@if [ -f y.tab.h ]; \
then \
echo "/bin/mv y.tab.h $*.h"; \
/bin/mv y.tab.h $*.h; \
fi
%.o: ../%.cc
$(RM) $@
$(COMPILE.cc) $<
%.c: %.l
# C++ munching
%.out : %.o
@ $(RM) ctct.o ctdt.c
$(NM) $< | $(MUNCH) > ctdt.c
$(COMPILE.c) -traditional ctdt.c
$(LINK.c) $@ $< ctdt.o
@ $(RM) ctdt.c ctdt.o
#
# rename the y.tab.h file only if we
# are creating it
#
%.h %.c: ../%.y
$(RM) $*.c y.tab.c
ifeq ($(findstring -d, $(YACCOPT)),-d)
$(RM) $*.h y.tab.h
endif
$(YACC) $(YACCOPT) $<
$(MV) y.tab.c $*.c
ifeq ($(findstring -d, $(YACCOPT)),-d)
$(MV) y.tab.h $*.h
endif
%.c: ../%.l
$(RM) lex.yy.c
$(LEX) $(LEXOPT) $<
$(RM) $@
/bin/mv lex.yy.c $@
$(MV) lex.yy.c $@
#state notation language rules
%.c: %.st
%.c: ../%.st
@echo "preprocessing $*.st"
@$(RM) $*.i
$(CPP) $(CPPFLAGS) $< $*.i
$(CPP) $(CPPFLAGS) $(CPPSNCFLAGS) $< $*.i
@echo "converting $*.i"
@$(RM) $@
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.i
%.c: %.stt
@echo "converting $<
@$(RM) $@
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $<
ln -s $< $*.st
$(SNC) $(TARGET_SNCFLAGS) $(SNCFLAGS) $*.st
@$(RM) $*.st
# Capfast Rules:
%.db: %.edf
$(E2DB) $(E2SR_SYSFLAGS) $(E2SR_FLAGS) $<
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.edf: ../%.sch $(DEPSCHS)
%.db: ../%.edf
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) $<
%.edf: ../%.sch
@if [ ! -f cad.rc -a -r ../cad.rc ] ; then ln -s ../cad.rc ; fi
$(SCH2EDIF) $(SCH2EDIF_SYSFLAGS) $(SCH2EDIF_FLAGS) $<
# Adl2dl rule
%.dl : ../%.adl
-$(ADL2DL) $< $@
# Mangen Rule:
%.1:%
$(RM) $(<F)
$(RM) $(<F).nr
ln -s $<
$(MANGEN) -s $(<F)
mv $(<F).nr $(<F).1
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
# Mangen Rule:
%.1:../%
$(MANGEN) -s $<
$(MV) $(<F).nr $(<F).1
$(INSTALL_DBD)/%: %
binInstalls: $(BIN_INSTALLS)
$(INSTALL) -d -m 555 $^ $(INSTALL_BIN)
$(INSTALL_DBD)/%: %
@echo "Installing $@"
@test -d $(INSTALL_DBD) || mkdir $(INSTALL_DBD)
@$(INSTALL) -m 644 $< $(INSTALL_DBD)
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
$(INSTALL_DBD)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(INSTALL_DBD)
%Record.h: %Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH \
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
$(USER_DBDFLAGS) $<
%Record.h: ../%Record.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToRecordtypeH$(EXE) \
$(USER_DBDFLAGS) $<
menu%.h: menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH $<
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
menu%.h: ../menu%.dbd
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbToMenuH$(EXE) $<
bpt%.dbd: bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt $<
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
$(DBDNAME): $(DBDEXPAND)
bpt%.dbd: ../bpt%.data
$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/makeBpt$(EXE) $<
$(DBDNAME): ../$(DBDEXPAND)
@echo expanding dbd
@$(RM) $@
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand\
$(USER_DBDFLAGS) $< > $@
%.1:%
$(RM) $(<F)
$(RM) $(<F).nr
ln -s $<
$(MANGEN) -s $(<F)
mv $(<F).nr $(<F).1
$(EPICS_BASE)/bin/$(HOST_ARCH)/dbExpand$(EXE) $(USER_DBDFLAGS) $< > $@
$(LIBNAME): $(LIBOBJS)
@echo Building library $@
@$(RM) $@
$(LINK.c) $@ $(LIBOBJS)
$(LINK.c) $@ $(LIBOBJS) $(LDLIBS)
$(INSTALL_BIN)/%: %
@echo "Installing $@"
@test -d $(INSTALL_LOCATION_BIN) || mkdir $(INSTALL_LOCATION_BIN)
@test -d $(INSTALL_BIN) || mkdir $(INSTALL_BIN)
@$(INSTALL) -m 555 $< $(INSTALL_BIN)
$(LIBNAME_CXX): $(LIBOBJS_CXX)
@echo Building CXX library $@
@$(RM) $@
$(LINK.cc) $@ $(LIBOBJS_CXX) $(LDLIBS)
$(INSTALL_BIN)/%: $(EPICS_BASE_BIN)/%
$(INSTALL_BIN)/%: %
@echo "Installing $@"
@test -d $(INSTALL_LOCATION_BIN) || mkdir $(INSTALL_LOCATION_BIN)
@test -d $(INSTALL_BIN) || mkdir $(INSTALL_BIN)
@$(INSTALL) -m 555 $< $(INSTALL_BIN)
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_MAN)/man9/% \
$(INSTALL_MAN)/man8/% \
$(INSTALL_MAN)/man7/% \
$(INSTALL_MAN)/man6/% \
$(INSTALL_MAN)/man5/% \
$(INSTALL_MAN)/man4/% \
$(INSTALL_MAN)/man3/% \
$(INSTALL_MAN)/man2/% \
$(INSTALL_MAN)/man1/%: %
$(INSTALL_BIN)/%: ../%
@echo "Installing $@"
@test -d $(INSTALL_MAN) || mkdir $(INSTALL_MAN)
@test -d $(@D) || mkdir $(@D)
@$(INSTALL) -m 644 $< $(@D)
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
$(INSTALL_INCLUDE)/%: %
@echo "Installing $@"
@test -d $(INSTALL_INCLUDE) || mkdir $(INSTALL_INCLUDE)
@$(INSTALL) -m 644 $< $(INSTALL_INCLUDE)
#
# avoid confusing circular dependency message when
# INSTALL_BIN and EPICS_BASE_BIN are the same (in base)
#
ifneq ($(INSTALL_BIN),$(EPICS_BASE_BIN))
$(INSTALL_BIN)/%: $(EPICS_BASE_BIN)/%
@echo "Installing $@ from EPICS base"
@$(INSTALL) -d -m 555 $< $(INSTALL_BIN)
endif
$(INSTALL_DOC)/%: %
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : %
@echo "Installing $@"
@test -d $(INSTALL_DOC) || mkdir $(INSTALL_DOC)
@$(INSTALL) -m 644 $< $(INSTALL_DOC)
@$(INSTALL) -d -m 644 $< $(@D)
$(addsuffix /%,$(MAN_DIRECTORY_TARGETS)) : ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_INCLUDE)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_INCLUDE)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DOC)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_DOC)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
@echo "Installing $@"
@$(INSTALL) -d -m 644 $< $(@D)
.PRECIOUS: %.o %.c
.PHONY: all inc depends build install pre-build clean
.PHONY:: all inc depends build install pre_build clean rebuild buildInstall binInstalls
-include .DEPENDS
-include DEPENDS
ifneq (,$(wildcard ../baseLIBOBJS))
$(LIBNAME): ../baseLIBOBJS
endif
#=====> ???? the following line causes a rebuild every time
#=====> $(LIBNAME): ../Makefile.Vx
$(DBDNAME): ../base.dbd $(RECTYPES:%.h=../%.dbd)

View File

@@ -2,7 +2,7 @@
# $Id$
#
# EPICS RULES_ARCH
# by Matthew Needes and Mike Bordua and Janet Andersoni and Jeff Hill
# by Matthew Needes and Mike Bordua and Janet Anderson and Jeff Hill
#
all:: install
@@ -10,7 +10,9 @@ all:: install
ACTIONS += inc
ACTIONS += build
ACTIONS += install
ACTIONS += buildInstall
ACTIONS += depends
ACTIONS += rebuild
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
@@ -18,15 +20,15 @@ archPart = $(word 2, $(subst $(DIVIDER), ,$@))
#
# hostActionArchTargets
#
hostArchs = $(HOST_ARCH) $(filter-out $(HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS))
hostArchs = $(HOST_ARCH)
hostActionArchTargets = $(foreach x, $(ACTIONS),\
$(foreach arch,$(hostArchs), $(x)$(DIVIDER)$(arch)))
ifeq (Makefile.$(BUILD_TYPE), $(wildcard Makefile.$(BUILD_TYPE)))
ifeq (Makefile.Host, $(wildcard Makefile.Host))
hostDirs = $(addprefix O.,$(hostArchs))
$(hostActionArchTargets) : $(hostDirs)
$(MAKE) -C O.$(archPart) -f ../Makefile.$(BUILD_TYPE) T_A=$(archPart) $(actionPart)
$(MAKE) -C O.$(archPart) -f ../Makefile.Host T_A=$(archPart) BUILD_TYPE=Host $(actionPart)
$(hostArchs) : % : O.%
$(MAKE) -C O.$@ -f ../Makefile.$(BUILD_TYPE) T_A=$@
$(MAKE) -C O.$@ -f ../Makefile.Host T_A=$@ BUILD_TYPE=Host
else
$(hostActionArchTargets) :
$(hostArchs) :
@@ -35,34 +37,30 @@ endif
#
# crossActionArchTargets
#
crossArchs = $(CROSS_COMPILER_TARGET_ARCHS)
crossArchs = $(filter-out $(hostArchs),$(BUILD_ARCHS))
crossActionArchTargets = $(foreach x, $(ACTIONS), \
$(foreach arch, $(CROSS_COMPILER_TARGET_ARCHS), $(x)$(DIVIDER)$(arch)))
ifeq (Makefile.Vx, $(wildcard Makefile.Vx))
crossDirs = $(addprefix O.,$(crossArchs))
$(crossActionArchTargets) : $(crossDirs)
$(MAKE) -C O.$(archPart) -f ../Makefile.Vx T_A=$(archPart) $(actionPart)
$(MAKE) -C O.$(archPart) -f ../Makefile.Vx T_A=$(archPart) BUILD_TYPE=Vx $(actionPart)
$(crossArchs) : % : O.%
$(MAKE) -C O.$@ -f ../Makefile.Vx T_A=$@
$(MAKE) -C O.$@ -f ../Makefile.Vx T_A=$@ BUILD_TYPE=Vx
else
$(crossActionArchTargets) :
$(crossArchs) :
endif
$(hostDirs) :
$(MKDIR) $@
echo "T_A=$(subst O.,,$@)" > $@/Makefile
echo "include ../Makefile.$(BUILD_TYPE)" >> $@/Makefile
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Host
$(crossDirs) :
$(MKDIR) $@
echo "T_A=$(subst O.,,$@)" > $@/Makefile
echo "include ../Makefile.Vx" >> $@/Makefile
$(PERL) $(EPICS_BASE_HOST_BIN)/makeMakefile.pl $@ Vx
#
# host/cross action targets
#
$(ACTIONS) clean : % : %$(DIVIDER)host %$(DIVIDER)cross
$(ACTIONS) :: % : %$(DIVIDER)host %$(DIVIDER)cross
HostActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)host)
CrossActionTargets = $(foreach x, $(ACTIONS) clean, $(x)$(DIVIDER)cross)
$(HostActionTargets) : %$(DIVIDER)host : $(addprefix %$(DIVIDER), $(hostArchs))
@@ -78,13 +76,15 @@ cross : $(crossArchs)
#
# special clean rule
#
clean ::
$(RMDIR) $(hostDirs) $(crossDirs)
clean$(DIVIDER)% :
$(RMDIR) O.$*
.PHONY : $(HostActionTargets)
.PHONY : $(CrossActionTargets)
.PHONY : $(crossActionArchTargets)
.PHONY : $(hostActionArchTargets)
.PHONY : $(hostArchs) $(crossArchs)
.PHONY : $(ACTIONS) clean all host cross
.PHONY :: $(HostActionTargets)
.PHONY :: $(CrossActionTargets)
.PHONY :: $(crossActionArchTargets)
.PHONY :: $(hostActionArchTargets)
.PHONY :: $(hostArchs) $(crossArchs)
.PHONY :: $(ACTIONS) clean all host cross

View File

@@ -3,40 +3,48 @@
#
ARCHS= $(BUILD_ARCHS) host cross
ACTIONS = clean inc install depends
ARCHS += $(BUILD_ARCHS) host cross
ACTIONS += clean inc depends buildInstall
dirPart = $(word 1, $(subst $(DIVIDER), ,$@))
actionArchPart = $(subst $(dirPart)$(DIVIDER), ,$@)
dirActionArchTargets = $(foreach dir, $(DIRS), \
$(foreach action, $(ACTIONS),\
$(foreach action, $(ACTIONS) install,\
$(foreach arch, $(ARCHS), \
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
dirArchTargets += $(foreach dir, $(DIRS), \
$(foreach arch, $(ARCHS),\
$(dir)$(DIVIDER)$(arch)))
dirActionTargets += $(foreach dir, $(DIRS), \
$(foreach action, $(ACTIONS),\
$(foreach action, $(ACTIONS) install,\
$(dir)$(DIVIDER)$(action)))
actionArchTargets = $(foreach action, $(ACTIONS),\
actionArchTargets = $(foreach action, $(ACTIONS) install,\
$(foreach arch, $(ARCHS), \
$(action)$(DIVIDER)$(arch)))
installArchTargets = $(foreach action, install,\
$(foreach arch, $(ARCHS), \
$(action)$(DIVIDER)$(arch)))
all:: inc install
all install :: inc buildInstall
rebuild:: clean all
$(ARCHS) $(installArchTargets) :: inc
rebuild:: clean uninstall all
$(DIRS) $(dirActionTargets) $(dirArchTargets)$(dirActionArchTargets) ::
$(MAKE) -C $(dirPart) $(actionArchPart)
$(ARCHS) $(ACTIONS) $(actionArchTargets):%: $(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
$(ARCHS) $(ACTIONS) $(actionArchTargets) ::%: \
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
.PHONY : $(DIRS)
.PHONY : $(ARCHS) $(ACTIONS)
.PHONY : $(dirActionTargets) $(dirArchTargets)
.PHONY : $(dirActionArchTargets)
.PHONY : $(actionArchTargets)
.PHONY :: $(DIRS) all install rebuild
.PHONY :: $(ARCHS) $(ACTIONS)
.PHONY :: $(dirActionTargets) $(dirArchTargets)
.PHONY :: $(dirActionArchTargets)
.PHONY :: $(actionArchTargets)
.PHONY :: $(installArchTargets)

View File

@@ -5,46 +5,47 @@
include $(TOP)/config/RULES_DIRS
uninstall$(DIVIDER)%::
@$(RMDIR) $(INSTALL_LOCATION_BIN)/$* $(INSTALL_LOCATION_LIB)/$* \
$(INSTALL_LOCATION)/dbd $(INSTALL_MAN) $(INSTALL_INCLUDE)
@$(RMDIR) rec.bak rec
@$(RMDIR) $(INSTALL_LOCATION_BIN)/$* $(INSTALL_LOCATION_LIB)/$* \
$(INSTALL_DBD) $(INSTALL_MAN) $(INSTALL_INCLUDE) \
$(INSTALL_HTML) $(INSTALL_JAVA) $(INSTALL_TEMPLATES)
uninstall:: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
tar:
@DIRNAME=$(notdir $(shell pwd)); \
echo "TOP: Creating $$DIRNAME.Tar file..."; \
ls Makefile* | xargs tar vcf $$DIRNAME.Tar; \
echo "TOP: Creating $$DIRNAME.tar file..."; \
ls Makefile* | xargs tar vcf $$DIRNAME.tar; \
if [ -f .current_rel_hist ]; then \
ls .current_rel_hist | xargs tar vrf $$DIRNAME.Tar ; \
ls .current_rel_hist | xargs tar vrf $$DIRNAME.tar ; \
fi ;\
if [ -f EPICS_BASE ]; then \
ls EPICS_BASE | xargs tar vrf $$DIRNAME.Tar ; \
ls EPICS_BASE | xargs tar vrf $$DIRNAME.tar ; \
fi ;\
for DIR in ${DIRS}; do \
find $${DIR} -name CVS -prune -o ! -type d -print \
| grep -v "/O\..*$$" | xargs tar vrf $$DIRNAME.Tar; \
| grep -v "/O\..*$$" | xargs tar vrf $$DIRNAME.tar; \
done
help:
@echo "Usage: gnumake [options] [target] ..."
@echo "Targets supported by all Makefiles:"
@echo " install - Installs executables in bin/<arch> (default rule)"
@echo " build - Builds objects, using libraries from "build_libs"
@echo " clean - Cleans objects. Clean removes the" O.<arch> dirs
@echo " build - Builds objects, using libraries from build_libs"
@echo " clean - Cleans objects. Clean removes the O.<arch> dirs"
@echo " in all except the O.<arch> level Makefile"
@echo " depends - Generates include dependencies"
@echo "\"Partial\" build targets supported by Makefiles:"
@echo " install.<arch> - Builds and installs <arch> only.
@echo " install.<arch> - Builds and installs <arch> only."
@echo " clean.<arch> - Cleans <arch> binaries in O.<arch> dirs only."
@echo " build.<arch> - Builds <arch> only.
@echo " depends.<arch> - Generates <arch> dependencies only.
@echo " build.<arch> - Builds <arch> only."
@echo " depends.<arch> - Generates <arch> dependencies only."
@echo "Targets supported by top level Makefile:"
@echo " uninstall - Cleans directories created by the install."
@echo " tar - Create tar file "
@echo "Indiv. object targets are supported by O.<arch> level Makefile .e.g"
@echo " xxxRecord.o
@echo " xxxRecord.o"
.PHONY : uninstall tar help
.PHONY : $(addprefix uninstall$(DIVIDER), $(BUILDARCHS))
.PHONY :: uninstall tar help
.PHONY :: $(addprefix uninstall$(DIVIDER), $(BUILDARCHS))

183
config/Sample.Makefile.Host Normal file
View File

@@ -0,0 +1,183 @@
# Makefile.Host for base/src/sample
#
#
# Sample Makefile.Host showing all possible entries
# that are allowed using RULES.Host.
#
TOP = ../../..
include $(TOP)/config/CONFIG_BASE
CMPLR = STRICT
# Add-on CFLAGS that are needed by this Makefile.
# (If possible, all system specific flags should be
# defined in CONFIG.Host.$(ARCH_CLASS))
#
# These CFLAGS rules also apply to these Makefile-variables:
# CXXFLAGS C++ flags
# LDFLAGS link flags
#
# This is used on all systems:
USR_CFLAGS = -DVAR=value -Ddefine_for_all_systems
# This is added to the above, but only for ARCH_CLASS=BSD:
USR_CFLAGS_BSD = -DVERSION='Berkeley enhanced'
# ..only for WIN32:
USR_CFLAGS_WIN32 = -DVERSION='WIN32 port'
#
# -nil- is special:
# if USR_CFLAGS_SYSV was undefined or empty, .._DEFAULT would have
# been used.
# To indicate
# "yes, there is a special USR_CFLAGS for SYSV, but it's empty"
# you have to set it to -nil-:
USR_CFLAGS_SYSV = -nil-
# .. for all other arch classes:
USR_CFLAGS_DEFAULT = -DVERSION='generic Unix'
# CFLAGS that are only used to compile a_file.c or a_file.cc:
#
a_file_CFLAGS = -DIN_A_FILE
a_file_CFLAGS_WIN32 = -DVERSION='WIN32 port'
# ---------------------------------------------------------
# general rule for all .c .cc .h .hh files and scripts:
#
# In here you supply just the filename without '../' etc.
# While building in an O.xxx subdir, the
# sources are extracted from either the
# '..'
# dir or - if it exists - the dir
# '../$(ARCH_CLASS)'
# is preferred.
# ---------------------------------------------------------
# includes to install from this Makefile
#
# again: if INC_$(ARCH_CLASS) is defined, it is added to INC,
# otherwise INC_DEFAULT (if defined) is added:
#
INC_DEFAULT = for_all_but_WIN32_or_hp700.h
INC_WIN32 = only_for_WIN32.h
INC_hp700 = -nil- # hp700 uses no special include
INC = file.h
# --------------------------------------------------------------------
# defining a library
# --------------------------------------------------------------------
#
# Contents of a library are specified via LIBSRCS.
# From this the platform specific object names (.o, .obj, ...)
# are derived automatically.
#
# Platform specific objects:
# use LIBOBJS_$(ARCH_CLASS) or .._DEFAULT
#
# Platform specific files can also be put in
# separate os/ARCH_CLASS directories!
#
# For almost every file the seach order is:
# ./os/ARCH_CLASS
# ./os/generic
# .
# So usually only LIBSRCS should be sufficient!
#
LIBSRCS = file_for_lib.c another_file.cc
LIBSRCS_DEFAULT = posix.c
LIBSRCS_WIN32 = win32_special.c
LIBSRCS_BSD = -nil-
# Library to build:
# lib$(LIBRARY).a or ..dll/..exp/..lib
#
# Currently you can build only one (1) lib per Makefile.Host!
#
LIBRARY=libname
# if SHARED_LIBRARIES is YES then shared and archive libraries will
# both be built
#SHARED_LIBRARIES = YES
#
# Library version
SHRLIB_VERSION =
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
# On Unix type hosts .$(SHRLIB_VERSION) is appended to library name
# --------------------------------------------------------------------
# defining products (executable programs)
# --------------------------------------------------------------------
#
# if SRCS is undefined, it defaults to $(PROD).c
SRCS=a.c b.c c.c
# SRCS that are only used for PROD a_file
#
a_file_SRCS = aa.c bb.c
# EPICS libs needed to link PROD, TESTPROD and sharable library
#
# note that DLL_LIBS (the libraries needed to link a shareable
# library) is created by default from the PROD/SYS libraries specified
# below minus the name of the sharable library (LIBRARY)
#
#
# for all systems:
PROD_LIBS = Com Ca
# for most systems:
PROD_LIBS_DEFAULT = mathlib
PROD_LIBS_WIN32 = -nil-
# system libs needed to link PROD, TESTPROD and sharable library
#
# for all systems:
SYS_PROD_LIBS = m
# for most systems:
SYS_PROD_LIBS_DEFAULT = foolib
SYS_PROD_LIBS_WIN32 = -nil-
# other libs needed to link PROD, TESTPROD and sharable library
#
# for all systems:
USR_LIBS = Xm Xt X11
Xm_DIR = $(MOTIF_LIB)
Xt_DIR = $(X11_LIB)
X11_DIR = $(X11_LIB)
# for most systems:
USR_LIBS_DEFAULT = foolib
USR_LIBS_WIN32 = -nil-
foolib_DIR = $(FOO_LIB)
# Product,
# may be caRepeater.o -> caRepeater
# or caRepeater.obj -> caRepeater.exe
PROD = prod
PROD_DEFAULT = product_for_rest
PROD_WIN32 = product_only_for_WIN32
PROD_BSD = product_only_for_BSD
PROD_SYSV = product_only_for_SYSV
# Product version
PROD_VERSION =
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
# On Unix type hosts PROD_VERSION) is ignored
# Scripts to install
#
# If there is both ../$(SCRIPT) and ../$(ARCH_CLASS)/$(SCRIPT),
# the latter, system specific version will be installed!
#
SCRIPTS_DEFAULT = script_for_rest
SCRIPTS_WIN32 = script_only_for_WIN32
SCRIPTS_BSD = script_only_for_BSD
SCRIPTS = script
# if you want to build products locally without installing:
# TESTPROD = test
# put all definitions before the following include line
# put all rules after the following include line
include $(TOP)/config/RULES.Host
# EOF Makefile.Host

32
src/as/Makefile.Host Normal file
View File

@@ -0,0 +1,32 @@
TOP = ../../..
include $(TOP)/config/CONFIG_BASE
USR_CFLAGS += -D_NO_PROTO
INC := asDbLib.h asLib.h
# build lib As from asLib.c:
#
LIBSRCS := asLib.c
LIBRARY := As
# All systems link the libs As, Com, Db (and again Com ??),
# generic Unix needs also lib m:
#
SYS_PROD_LIBS_DEFAULT := m
SYS_PROD_LIBS_WIN32 := -nil-
PROD_LIBS := As Com Db Com
PROD := ascheck
include $(TOP)/config/RULES.Host
# Extra rule since asLib_lex.c is included in asLib.c
# In my opinion, these objects should really be built
# independently.
asLib$(OBJ): asLib_lex.c ../asLibRoutines.c
clean::
@$(RM) asLib.c asLib_lex.c

View File

@@ -1,31 +0,0 @@
TOP = ../../..
include $(TOP)/config/CONFIG_BASE
USR_CFLAGS = -D_NO_PROTO
USR_LDLIBS = -lAs -lCom -lDb -lCom -lm -s
USR_LDFLAGS = -L.
DEPLIBS_BASE = $(INSTALL_LIB)
DEPLIBS = ./libAs.a\
$(DEPLIBS_BASE)/libCom.a\
$(DEPLIBS_BASE)/libDb.a
INC += asDbLib.h
INC += asLib.h
SRCS.c = ../ascheck.c asLib.c
OBJS = ascheck.o
LIBOBJS = asLib.o
LIBNAME = libAs.a
PROD = ascheck
include $(TOP)/config/RULES.Unix
# Extra rule since asLib_lex.c is included in asLib.c
# In my opinion, these objects should really be built
# independently.
asLib.o: asLib_lex.c ../asLibRoutines.c
clean::
@$(RM) asLib.c asLib_lex.c

View File

@@ -5,53 +5,19 @@
COPYRIGHT NOTIFICATION
*****************************************************************
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
AND IN ALL SOURCE LISTINGS OF THE CODE.
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
Argonne National Laboratory (ANL), with facilities in the States of
Illinois and Idaho, is owned by the United States Government, and
operated by the University of Chicago under provision of a contract
with the Department of Energy.
Portions of this material resulted from work developed under a U.S.
Government contract and are subject to the following license: For
a period of five years from March 30, 1993, the Government is
granted for itself and others acting on its behalf a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, and perform
publicly and display publicly. With the approval of DOE, this
period may be renewed for two additional five year periods.
Following the expiration of this period or periods, the Government
is granted for itself and others acting on its behalf, a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit
others to do so.
*****************************************************************
DISCLAIMER
*****************************************************************
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
OWNED RIGHTS.
*****************************************************************
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
**********************************************************************/
/*
*
* Modification Log:
* -----------------
* .01 03-22-94 mrk Initial Implementation
*/
/*This module is separate from asDbLib because CA uses old database access*/
#include <vxWorks.h>
#include <taskLib.h>
@@ -59,96 +25,105 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
#include <stdlib.h>
#include <stddef.h>
#include <stdio.h>
#include <dbDefs.h>
#include <taskwd.h>
#include <asDbLib.h>
#include <cadef.h>
#include <caerr.h>
#include <caeventmask.h>
#include <task_params.h>
#include <alarm.h>
#include <semLib.h>
#include "dbDefs.h"
#include "errlog.h"
#include "taskwd.h"
#include "asDbLib.h"
#include "cadef.h"
#include "caerr.h"
#include "caeventmask.h"
#include "task_params.h"
#include "alarm.h"
int asCaDebug = 0;
extern ASBASE volatile *pasbase;
LOCAL int firstTime = TRUE;
LOCAL int taskid=0;
LOCAL int caInitializing=FALSE;
extern ASBASE *pasbase;
LOCAL SEM_ID asCaTaskLock; /*lock access to task */
LOCAL SEM_ID asCaTaskWait; /*Wait for task to respond*/
LOCAL SEM_ID asCaTaskAddChannels; /*Tell asCaTask to add channels*/
LOCAL SEM_ID asCaTaskClearChannels; /*Tell asCaTask to clear channels*/
typedef struct {
struct dbr_sts_double rtndata;
chid chid;
evid evid;
} CAPVT;
LOCAL void accessRightsCallback(struct access_rights_handler_args arha)
/*connectCallback only handles disconnects*/
LOCAL void connectCallback(struct connection_handler_args arg)
{
chid chid = arha.chid;
ASGINP *pasginp;
ASG *pasg;
CAPVT *pcapvt;
int Ilocked=FALSE;
chid chid = arg.chid;
ASGINP *pasginp = (ASGINP *)ca_puser(chid);
ASG *pasg = pasginp->pasg;
if(!caInitializing) {
FASTLOCK(&asLock);
Ilocked = TRUE;
}
pasginp = (ASGINP *)ca_puser(chid);
pasg = (ASG *)pasginp->pasg;
pcapvt = pasginp->capvt;
if(!ca_read_access(chid)) {
pasg->inpBad |= (1<<pasginp->inpIndex);
if(!caInitializing) asComputeAsg(pasg);
} /*eventCallback will set inpBad false*/
if(Ilocked) FASTUNLOCK(&asLock);
}
LOCAL void connectCallback(struct connection_handler_args cha)
{
chid chid = cha.chid;
ASGINP *pasginp;
ASG *pasg;
CAPVT *pcapvt;
int Ilocked=FALSE;
if(!caInitializing) {
FASTLOCK(&asLock);
Ilocked = TRUE;
}
pasginp = (ASGINP *)ca_puser(chid);
pasg = (ASG *)pasginp->pasg;
pcapvt = pasginp->capvt;
if(ca_state(chid)!=cs_conn) {
pasg->inpBad |= (1<<pasginp->inpIndex);
if(!caInitializing) asComputeAsg(pasg);
} /*eventCallback will set inpBad false*/
if(Ilocked) FASTUNLOCK(&asLock);
}
LOCAL void eventCallback(struct event_handler_args eha)
{
ASGINP *pasginp;
CAPVT *pcapvt;
ASG *pasg;
struct dbr_sts_double *pdata = eha.dbr;
int Ilocked=FALSE;
if(!caInitializing) {
FASTLOCK(&asLock);
Ilocked = TRUE;
}
pasginp = (ASGINP *)eha.usr;
pcapvt = (CAPVT *)pasginp->capvt;
if(ca_read_access(pcapvt->chid)) {
pasg = (ASG *)pasginp->pasg;
pcapvt->rtndata = *pdata; /*structure copy*/
if(pdata->severity==INVALID_ALARM) {
if(!(pasg->inpBad & (1<<pasginp->inpIndex))) {
/*was good so lets make it bad*/
pasg->inpBad |= (1<<pasginp->inpIndex);
} else {
pasg->inpBad &= ~((1<<pasginp->inpIndex));
pasg->pavalue[pasginp->inpIndex] = pdata->value;
if(!caInitializing) asComputeAsg(pasg);
if(asCaDebug) printf("as connectCallback disconnect %s\n",
ca_name(chid));
}
pasg->inpChanged |= (1<<pasginp->inpIndex);
if(!caInitializing) asComputeAsg(pasg);
}
if(Ilocked) FASTUNLOCK(&asLock);
}
LOCAL void eventCallback(struct event_handler_args arg)
{
int caStatus = arg.status;
chid chid = arg.chid;
ASGINP *pasginp = (ASGINP *)arg.usr;
ASG *pasg;
CAPVT *pcapvt;
READONLY struct dbr_sts_double *pdata;
if(caStatus!=ECA_NORMAL) {
if(chid) {
epicsPrintf("asCa: eventCallback error %s channel %s\n",
ca_message(caStatus),ca_name(chid));
} else {
epicsPrintf("asCa: eventCallback error %s chid is null\n",
ca_message(caStatus));
}
return;
}
pasg = pasginp->pasg;
pcapvt = (CAPVT *)pasginp->capvt;
if(chid!=pcapvt->chid) {
epicsPrintf("asCa: eventCallback error pcapvt->chid != arg.chid\n");
return;
}
if(ca_state(chid)!=cs_conn || !ca_read_access(chid)) {
if(!(pasg->inpBad & (1<<pasginp->inpIndex))) {
/*was good so lets make it bad*/
pasg->inpBad |= (1<<pasginp->inpIndex);
if(!caInitializing) asComputeAsg(pasg);
if(asCaDebug) {
printf("as eventCallback %s inpBad ca_state %d"
" ca_read_access %d\n",
ca_name(chid),ca_state(chid),ca_read_access(chid));
}
}
return;
}
pdata = arg.dbr;
pcapvt->rtndata = *pdata; /*structure copy*/
if(pdata->severity==INVALID_ALARM) {
pasg->inpBad |= (1<<pasginp->inpIndex);
if(asCaDebug)
printf("as eventCallback %s inpBad because INVALID_ALARM\n",
ca_name(chid));
} else {
pasg->inpBad &= ~((1<<pasginp->inpIndex));
pasg->pavalue[pasginp->inpIndex] = pdata->value;
if(asCaDebug)
printf("as eventCallback %s inpGood data %f\n",
ca_name(chid),pdata->value);
}
pasg->inpChanged |= (1<<pasginp->inpIndex);
if(!caInitializing) asComputeAsg(pasg);
}
LOCAL void asCaTask(void)
@@ -156,70 +131,106 @@ LOCAL void asCaTask(void)
ASG *pasg;
ASGINP *pasginp;
CAPVT *pcapvt;
int status;
taskwdInsert(taskIdSelf(),NULL,NULL);
SEVCHK(ca_task_initialize(),"ca_task_initialize");
caInitializing = TRUE;
FASTLOCK(&asLock);
pasg = (ASG *)ellFirst(&pasbase->asgList);
while(pasg) {
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
while(pasginp) {
pasg->inpBad |= (1<<pasginp->inpIndex);
pcapvt = pasginp->capvt = asCalloc(1,sizeof(CAPVT));
/*Note calls connectCallback immediately called for local Pvs*/
SEVCHK(ca_build_and_connect(pasginp->inp,TYPENOTCONN,0,
&pcapvt->chid,0,connectCallback,pasginp),
"ca_build_and_connect");
/*Note calls accessRightsCallback immediately called for local Pvs*/
SEVCHK(ca_replace_access_rights_event(pcapvt->chid,accessRightsCallback),
"ca_replace_access_rights_event");
/*Note calls eventCallback immediately called for local Pvs*/
SEVCHK(ca_add_event(DBR_STS_DOUBLE,pcapvt->chid,
eventCallback,pasginp,&pcapvt->evid),
"ca_add_event");
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
while(TRUE) {
if(semTake(asCaTaskAddChannels,WAIT_FOREVER)!=OK) {
epicsPrintf("asCa semTake error for asCaTaskClearChannels\n");
taskSuspend(0);
}
pasg = (ASG *)ellNext((ELLNODE *)pasg);
caInitializing = TRUE;
pasg = (ASG *)ellFirst(&pasbase->asgList);
while(pasg) {
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
while(pasginp) {
pasg->inpBad |= (1<<pasginp->inpIndex);
pcapvt = pasginp->capvt = asCalloc(1,sizeof(CAPVT));
/*Note calls connectCallback immediately for local Pvs*/
status = ca_search_and_connect(pasginp->inp,&pcapvt->chid,
connectCallback,pasginp);
if(status!=ECA_NORMAL) {
epicsPrintf("asCa ca_search_and_connect error %s\n",
ca_message(status));
}
/*Note calls eventCallback immediately for local Pvs*/
status = ca_add_event(DBR_STS_DOUBLE,pcapvt->chid,
eventCallback,pasginp,0);
if(status!=ECA_NORMAL) {
epicsPrintf("asCa ca_add_event error %s\n",
ca_message(status));
}
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
}
pasg = (ASG *)ellNext((ELLNODE *)pasg);
}
asComputeAllAsg();
caInitializing = FALSE;
if(asCaDebug) printf("asCaTask initialized\n");
semGive(asCaTaskWait);
while(TRUE) {
if(semTake(asCaTaskClearChannels,NO_WAIT)==OK) break;
ca_pend_event(2.0);
}
pasg = (ASG *)ellFirst(&pasbase->asgList);
while(pasg) {
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
while(pasginp) {
pcapvt = (CAPVT *)pasginp->capvt;
status = ca_clear_channel(pcapvt->chid);
if(status!=ECA_NORMAL) {
epicsPrintf("asCa ca_clear_channel error %s\n",
ca_message(status));
}
free(pasginp->capvt);
pasginp->capvt = 0;
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
}
pasg = (ASG *)ellNext((ELLNODE *)pasg);
}
if(asCaDebug) printf("asCaTask has cleared all channels\n");
semGive(asCaTaskWait);
}
asComputeAllAsg();
caInitializing = FALSE;
FASTUNLOCK(&asLock);
SEVCHK(ca_pend_event(0.0),"ca_pend_event");
exit(-1);
}
void asCaStart(void)
{
taskid = taskSpawn("asCaTask",CA_CLIENT_PRI-1,VX_FP_TASK,CA_CLIENT_STACK,
(FUNCPTR)asCaTask,0,0,0,0,0,0,0,0,0,0);
if(taskid==ERROR) {
errMessage(0,"asCaStart: taskSpawn Failure\n");
} else {
taskDelay(1);
if(asCaDebug) printf("asCaStart called\n");
if(firstTime) {
firstTime = FALSE;
if((asCaTaskLock=semBCreate(SEM_Q_FIFO,SEM_FULL))==NULL)
epicsPrintf("asCa semBCreate failure\n");
if((asCaTaskWait=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
epicsPrintf("asCa semBCreate failure\n");
if((asCaTaskAddChannels=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
epicsPrintf("asCa semBCreate failure\n");
if((asCaTaskClearChannels=semBCreate(SEM_Q_FIFO,SEM_EMPTY))==NULL)
epicsPrintf("asCa semBCreate failure\n");
taskid = taskSpawn("asCaTask",CA_CLIENT_PRI-1,VX_FP_TASK,
CA_CLIENT_STACK, (FUNCPTR)asCaTask,0,0,0,0,0,0,0,0,0,0);
if(taskid==ERROR) {
errMessage(0,"asCaStart: taskSpawn Failure\n");
}
}
if(semTake(asCaTaskLock,WAIT_FOREVER)!=OK)
epicsPrintf("asCa semTake error\n");
semGive(asCaTaskAddChannels);
if(semTake(asCaTaskWait,WAIT_FOREVER)!=OK)
epicsPrintf("asCa semTake error\n");
if(asCaDebug) printf("asCaStart done\n");
semGive(asCaTaskLock);
}
void asCaStop(void)
{
ASG *pasg;
ASGINP *pasginp;
STATUS status;
if(taskid==0 || taskid==ERROR) return;
taskwdRemove(taskid);
status = taskDelete(taskid);
if(status!=OK) errMessage(0,"asCaStop: taskDelete Failure\n");
while(taskIdVerify(taskid)==OK) {
taskDelay(5);
}
pasg = (ASG *)ellFirst(&pasbase->asgList);
while(pasg) {
pasginp = (ASGINP *)ellFirst(&pasg->inpList);
while(pasginp) {
free(pasginp->capvt);
pasginp = (ASGINP *)ellNext((ELLNODE *)pasginp);
}
pasg = (ASG *)ellNext((ELLNODE *)pasg);
}
if(asCaDebug) printf("asCaStop called\n");
if(semTake(asCaTaskLock,WAIT_FOREVER)!=OK)
epicsPrintf("asCa semTake error\n");
semGive(asCaTaskClearChannels);
if(semTake(asCaTaskWait,WAIT_FOREVER)!=OK)
epicsPrintf("asCa semTake error\n");
if(asCaDebug) printf("asCaStop done\n");
semGive(asCaTaskLock);
}

View File

@@ -5,53 +5,19 @@
COPYRIGHT NOTIFICATION
*****************************************************************
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
AND IN ALL SOURCE LISTINGS OF THE CODE.
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
Argonne National Laboratory (ANL), with facilities in the States of
Illinois and Idaho, is owned by the United States Government, and
operated by the University of Chicago under provision of a contract
with the Department of Energy.
Portions of this material resulted from work developed under a U.S.
Government contract and are subject to the following license: For
a period of five years from March 30, 1993, the Government is
granted for itself and others acting on its behalf a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, and perform
publicly and display publicly. With the approval of DOE, this
period may be renewed for two additional five year periods.
Following the expiration of this period or periods, the Government
is granted for itself and others acting on its behalf, a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit
others to do so.
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
**********************************************************************/
*****************************************************************
DISCLAIMER
*****************************************************************
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
OWNED RIGHTS.
*****************************************************************
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
*
/*
* Modification Log:
* -----------------
* .01 02-11-94 mrk Initial Implementation
*/
#include <vxWorks.h>
#include <taskLib.h>
#include <stdlib.h>
@@ -59,45 +25,27 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
#include <stdio.h>
#include <string.h>
#include <dbDefs.h>
#include <taskwd.h>
#include <alarm.h>
#include <caeventmask.h>
#include <dbStaticLib.h>
#include <dbAccess.h>
#include <asLib.h>
#include <asDbLib.h>
#include <dbCommon.h>
#include <recSup.h>
#include <subRecord.h>
#include <task_params.h>
#include "dbDefs.h"
#include "errlog.h"
#include "taskwd.h"
#include "alarm.h"
#include "caeventmask.h"
#include "dbStaticLib.h"
#include "dbAccess.h"
#include "dbEvent.h"
#include "asLib.h"
#include "asDbLib.h"
#include "dbCommon.h"
#include "recSup.h"
#include "subRecord.h"
#include "task_params.h"
extern struct dbBase *pdbbase;
static FILE *stream;
#define BUF_SIZE 100
FAST_LOCK asLock;
static char *my_buffer;
static char *my_buffer_ptr=NULL;
static char *pacf=NULL;
static int asLockInit=TRUE;
static char *psubstitutions=NULL;
static int initTaskId=0;
static int my_yyinput(char *buf, int max_size)
{
int l,n;
if(*my_buffer_ptr==0) {
if(fgets(my_buffer,BUF_SIZE,stream)==NULL) return(0);
my_buffer_ptr = my_buffer;
}
l = strlen(my_buffer_ptr);
n = (l<=max_size ? l : max_size);
memcpy(buf,my_buffer_ptr,n);
my_buffer_ptr += n;
return(n);
}
static int firstTime = TRUE;
static long asDbAddRecords(void)
{
@@ -127,11 +75,6 @@ static long asDbAddRecords(void)
int asSetFilename(char *acf)
{
if(asLockInit) {
FASTLOCKINIT(&asLock);
asLockInit = FALSE;
}
FASTLOCK(&asLock);
if(pacf) free ((void *)pacf);
if(acf) {
pacf = calloc(1,strlen(acf)+1);
@@ -143,41 +86,46 @@ int asSetFilename(char *acf)
} else {
pacf = NULL;
}
FASTUNLOCK(&asLock);
return(0);
}
int asSetSubstitutions(char *substitutions)
{
if(psubstitutions) free ((void *)psubstitutions);
if(substitutions) {
psubstitutions = calloc(1,strlen(substitutions)+1);
if(!psubstitutions) {
errMessage(0,"asSetSubstitutions calloc failure");
} else {
strcpy(psubstitutions,substitutions);
}
} else {
psubstitutions = NULL;
}
return(0);
}
static long asInitCommon(void)
{
long status;
char buffer[BUF_SIZE];
int asWasActive = asActive;
if(asLockInit) {
FASTLOCKINIT(&asLock);
asLockInit = FALSE;
if(firstTime) {
firstTime = FALSE;
if(!pacf) return(0); /*access security will NEVER be turned on*/
} else {
if(!asActive) return(S_asLib_asNotActive);
if(pacf) {
asCaStop();
} else { /*Just leave everything as is */
return(S_asLib_badConfig);
}
}
FASTLOCK(&asLock);
if(asActive)asCaStop();
if(!pacf) {
asActive = FALSE;
return(0);
}
buffer[0] = 0;
my_buffer = buffer;
my_buffer_ptr = my_buffer;
stream = fopen(pacf,"r");
if(!stream) {
errMessage(0,"asInit failure");
FASTUNLOCK(&asLock);
return(-1);
}
status = asInitialize(my_yyinput);
if(fclose(stream)==EOF) errMessage(0,"asInit fclose failure");
status = asInitFile(pacf,psubstitutions);
if(asActive) {
asDbAddRecords();
if(!asWasActive) asDbAddRecords();
asCaStart();
}
FASTUNLOCK(&asLock);
return(status);
}
@@ -298,7 +246,7 @@ ASMEMBERPVT asDbGetMemberPvt(void *paddress)
precord = paddr->precord;
return((ASMEMBERPVT)precord->asp);
}
static void astacCallback(ASCLIENTPVT clientPvt,asClientStatus status)
{
char *recordname;
@@ -348,41 +296,31 @@ static void myMemberCallback(ASMEMBERPVT memPvt)
int asdbdump(void)
{
FASTLOCK(&asLock);
asDump(myMemberCallback,NULL,1);
FASTUNLOCK(&asLock);
return(0);
}
int aspuag(char *uagname)
{
FASTLOCK(&asLock);
asDumpUag(uagname);
FASTUNLOCK(&asLock);
return(0);
}
int asphag(char *hagname)
{
FASTLOCK(&asLock);
asDumpHag(hagname);
FASTUNLOCK(&asLock);
return(0);
}
int asprules(char *asgname)
{
FASTLOCK(&asLock);
asDumpRules(asgname);
FASTUNLOCK(&asLock);
return(0);
}
int aspmem(char *asgname,int clients)
{
FASTLOCK(&asLock);
asDumpMem(asgname,myMemberCallback,clients);
FASTUNLOCK(&asLock);
return(0);
}

View File

@@ -5,48 +5,14 @@
COPYRIGHT NOTIFICATION
*****************************************************************
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
AND IN ALL SOURCE LISTINGS OF THE CODE.
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
Argonne National Laboratory (ANL), with facilities in the States of
Illinois and Idaho, is owned by the United States Government, and
operated by the University of Chicago under provision of a contract
with the Department of Energy.
Portions of this material resulted from work developed under a U.S.
Government contract and are subject to the following license: For
a period of five years from March 30, 1993, the Government is
granted for itself and others acting on its behalf a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, and perform
publicly and display publicly. With the approval of DOE, this
period may be renewed for two additional five year periods.
Following the expiration of this period or periods, the Government
is granted for itself and others acting on its behalf, a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit
others to do so.
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
**********************************************************************/
*****************************************************************
DISCLAIMER
*****************************************************************
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
OWNED RIGHTS.
*****************************************************************
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
*
/*
* Modification Log:
* -----------------
* .01 02-23-94 mrk Initial Implementation
@@ -63,6 +29,7 @@ typedef struct {
} ASDBCALLBACK;
int asSetFilename(char *acf);
int asSetSubstitutions(char *substitutions);
int asInit(void);
int asInitAsyn(ASDBCALLBACK *pcallback);
int asDbGetAsl( void *paddr);

View File

@@ -4,48 +4,14 @@
COPYRIGHT NOTIFICATION
*****************************************************************
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
AND IN ALL SOURCE LISTINGS OF THE CODE.
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
Argonne National Laboratory (ANL), with facilities in the States of
Illinois and Idaho, is owned by the United States Government, and
operated by the University of Chicago under provision of a contract
with the Department of Energy.
Portions of this material resulted from work developed under a U.S.
Government contract and are subject to the following license: For
a period of five years from March 30, 1993, the Government is
granted for itself and others acting on its behalf a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, and perform
publicly and display publicly. With the approval of DOE, this
period may be renewed for two additional five year periods.
Following the expiration of this period or periods, the Government
is granted for itself and others acting on its behalf, a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit
others to do so.
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
**********************************************************************/
*****************************************************************
DISCLAIMER
*****************************************************************
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
OWNED RIGHTS.
*****************************************************************
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
*
/*
* Modification Log:
* -----------------
* .01 09-27-93 mrk Initial Implementation
@@ -55,9 +21,10 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
#include <stddef.h>
#include <stdlib.h>
#include <stdio.h>
#include <errMdef.h>
#include <ellLib.h>
typedef struct asgMember *ASMEMBERPVT;
typedef struct asgClient *ASCLIENTPVT;
typedef int (*ASINPUTFUNCPTR)(char *buf,int max_size);
@@ -65,40 +32,54 @@ typedef enum{
asClientCOAR /*Change of access rights*/
/*For now this is all*/
} asClientStatus;
typedef void (*ASCLIENTCALLBACK) (ASCLIENTPVT,asClientStatus);
/* The following routines are macros with the following syntax
long asCheckGet(ASCLIENTPVT asClientPvt);
long asCheckPut(ASCLIENTPVT asClientPvt);
end of macros
*/
int asInit(void);
long asInitialize(ASINPUTFUNCPTR inputfunction);
#define asCheckGet(asClientPvt)\
(asActive ?\
((asClientPvt)->access>=asREAD ? TRUE : FALSE)\
: TRUE)
#define asCheckPut(asClientPvt)\
(asActive ?\
((asClientPvt)->access>=asWRITE ? TRUE : FALSE)\
: TRUE)
epicsShareFunc int epicsShareAPI asInit(void);
epicsShareFunc long epicsShareAPI asInitialize(ASINPUTFUNCPTR inputfunction);
epicsShareFunc long epicsShareAPI asInitFile(const char *filename,const char *substitutions);
epicsShareFunc long epicsShareAPI asInitFP(FILE *fp,const char *substitutions);
/*caller must provide permanent storage for asgName*/
long asAddMember(ASMEMBERPVT *asMemberPvt,char *asgName);
long asRemoveMember(ASMEMBERPVT *asMemberPvt);
epicsShareFunc long epicsShareAPI asAddMember(ASMEMBERPVT *asMemberPvt,char *asgName);
epicsShareFunc long epicsShareAPI asRemoveMember(ASMEMBERPVT *asMemberPvt);
/*caller must provide permanent storage for newAsgName*/
long asChangeGroup(ASMEMBERPVT *asMemberPvt,char *newAsgName);
void *asGetMemberPvt(ASMEMBERPVT asMemberPvt);
void asPutMemberPvt(ASMEMBERPVT asMemberPvt,void *userPvt);
epicsShareFunc long epicsShareAPI asChangeGroup(ASMEMBERPVT *asMemberPvt,char *newAsgName);
epicsShareFunc void * epicsShareAPI asGetMemberPvt(ASMEMBERPVT asMemberPvt);
epicsShareFunc void epicsShareAPI asPutMemberPvt(ASMEMBERPVT asMemberPvt,void *userPvt);
/*client must provide permanent storage for user and host*/
long asAddClient(ASCLIENTPVT *asClientPvt,ASMEMBERPVT asMemberPvt,
epicsShareFunc long epicsShareAPI asAddClient(ASCLIENTPVT *asClientPvt,ASMEMBERPVT asMemberPvt,
int asl,char *user,char *host);
/*client must provide permanent storage for user and host*/
long asChangeClient(ASCLIENTPVT asClientPvt,int asl,char *user,char *host);
long asRemoveClient(ASCLIENTPVT *asClientPvt);
void *asGetClientPvt(ASCLIENTPVT asClientPvt);
void asPutClientPvt(ASCLIENTPVT asClientPvt,void *userPvt);
long asRegisterClientCallback(ASCLIENTPVT asClientPvt,
epicsShareFunc long epicsShareAPI asChangeClient(ASCLIENTPVT asClientPvt,int asl,char *user,char *host);
epicsShareFunc long epicsShareAPI asRemoveClient(ASCLIENTPVT *asClientPvt);
epicsShareFunc void * epicsShareAPI asGetClientPvt(ASCLIENTPVT asClientPvt);
epicsShareFunc void epicsShareAPI asPutClientPvt(ASCLIENTPVT asClientPvt,void *userPvt);
epicsShareFunc long epicsShareAPI asRegisterClientCallback(ASCLIENTPVT asClientPvt,
ASCLIENTCALLBACK pcallback);
long asComputeAllAsg(void);
/*asComputeAsg is defined after ASG is defined*/
long asCompute(ASCLIENTPVT asClientPvt);
int asDump(void (*memcallback)(ASMEMBERPVT),void (*clientcallback)(ASCLIENTPVT),int verbose);
int asDumpUag(char *uagname);
int asDumpHag(char *hagname);
int asDumpRules(char *asgname);
int asDumpMem(char *asgname,void (*memcallback)(ASMEMBERPVT),int clients);
int asDumpHash(void);
epicsShareFunc long epicsShareAPI asComputeAllAsg(void);
/* following declared below after ASG is declared
epicsShareFunc long epicsShareAPI asComputeAsg(ASG *pasg);
*/
epicsShareFunc long epicsShareAPI asCompute(ASCLIENTPVT asClientPvt);
epicsShareFunc int epicsShareAPI asDump(void (*memcallback)(ASMEMBERPVT),
void (*clientcallback)(ASCLIENTPVT),int verbose);
epicsShareFunc int epicsShareAPI asDumpUag(char *uagname);
epicsShareFunc int epicsShareAPI asDumpHag(char *hagname);
epicsShareFunc int epicsShareAPI asDumpRules(char *asgname);
epicsShareFunc int epicsShareAPI asDumpMem(char *asgname,void (*memcallback)(ASMEMBERPVT),int clients);
epicsShareFunc int epicsShareAPI asDumpHash(void);
#define S_asLib_clientsExist (M_asLib| 1) /*Client Exists*/
#define S_asLib_noUag (M_asLib| 2) /*User Access Group does not exist*/
@@ -117,11 +98,6 @@ int asDumpHash(void);
/*Private declarations */
#define ASMAXINP 12
#ifdef vxWorks
#include <fast_lock.h>
extern FAST_LOCK asLock;
extern int asLockInit;
#endif
extern int asActive;
/* definition of access rights*/
typedef enum{asNOACCESS,asREAD,asWRITE} asAccessRights;
@@ -180,6 +156,7 @@ typedef struct{
struct asg *pasg;
int inpIndex;
}ASGINP;
typedef struct asg{
ELLNODE node;
char *name;
@@ -207,17 +184,9 @@ typedef struct asgClient {
int level;
asAccessRights access;
} ASGCLIENT;
/* function prototypes*/
void *asCalloc(size_t nobj,size_t size);
long asComputeAsg(ASG *pasg);
/*macros*/
#define asCheckGet(asClientPvt)\
(asActive ?\
((asClientPvt)->access>=asREAD ? TRUE : FALSE)\
: TRUE)
#define asCheckPut(asClientPvt)\
(asActive ?\
((asClientPvt)->access>=asWRITE ? TRUE : FALSE)\
: TRUE)
epicsShareFunc long epicsShareAPI asComputeAsg(ASG *pasg);
/*following is "friend" function*/
void * asCalloc(size_t nobj,size_t size);
#endif /*INCasLibh*/

View File

@@ -16,7 +16,7 @@ static ASGRULE *yyAsgRule=NULL;
%token tokenUAG tokenHAG tokenASG tokenRULE tokenCALC
%token <Str> tokenINP
%token <Int> tokenINTEGER
%token <Str> tokenNAME tokenPVNAME tokenSTRING
%token <Str> tokenNAME tokenSTRING
%union
{
@@ -42,7 +42,7 @@ asconfig_item: tokenUAG uag_head uag_body
uag_head: '(' tokenNAME ')'
{
yyUag = asUagAdd($2);
if(!yyUag) yyerror($2);
if(!yyUag) yyerror("");
free((void *)$2);
}
;
@@ -63,7 +63,6 @@ uag_user_list_name: tokenNAME
status = asUagAddUser(yyUag,$1);
if(status) {
errMessage(status,"Error while adding UAG");
yyerror($1);
}
free((void *)$1);
@@ -73,7 +72,7 @@ uag_user_list_name: tokenNAME
hag_head: '(' tokenNAME ')'
{
yyHag = asHagAdd($2);
if(!yyHag) yyerror($2);
if(!yyHag) yyerror("");
free((void *)$2);
}
;
@@ -91,8 +90,7 @@ hag_user_list_name: tokenNAME
status = asHagAddHost(yyHag,$1);
if(status) {
errMessage(status,"Error while adding HAG");
yyerror($1);
yyerror("");
}
free((void *)$1);
}
@@ -101,7 +99,7 @@ hag_user_list_name: tokenNAME
asg_head: '(' tokenNAME ')'
{
yyAsg = asAsgAdd($2);
if(!yyAsg) yyerror($2);
if(!yyAsg) yyerror("");
free((void *)$2);
}
;
@@ -122,14 +120,13 @@ inp_config: tokenINP '(' inp_body ')'
status = asAsgAddInp(yyAsg,$<Str>3,$<Int>1);
if(status) {
errMessage(status,"Error while adding INP");
yyerror($1);
yyerror("");
}
free((void *)$<Str>3);
}
;
inp_body: tokenNAME | tokenPVNAME
inp_body: tokenNAME
;
rule_config: tokenRULE rule_head rule_body
@@ -170,8 +167,7 @@ rule_list_item: tokenUAG '(' rule_uag_list ')'
status = asAsgRuleCalc(yyAsgRule,$3);
if(status){
errMessage(status,$3);
yyerror("CALC failure");
yyerror("access security CALC failure");
}
free((void *)$3);
}
@@ -187,8 +183,7 @@ rule_uag_list_name: tokenNAME
status = asAsgRuleUagAdd(yyAsgRule,$1);
if(status) {
errMessage(status,"Error while adding UAG");
yyerror($1);
yyerror("");
}
free((void *)$1);
}
@@ -204,8 +199,7 @@ rule_hag_list_name: tokenNAME
status = asAsgRuleHagAdd(yyAsgRule,$1);
if(status) {
errMessage(status,"Error while adding HAG");
yyerror($1);
yyerror("");
}
free((void *)$1);
}
@@ -217,7 +211,8 @@ rule_hag_list_name: tokenNAME
static int yyerror(str)
char *str;
{
fprintf(stderr,"Error line %d : %s %s\n",line_num,str,yytext);
epicsPrintf("Access Security Error(%s) line %d token %s\n",
str,line_num,yytext);
yyFailed = TRUE;
return(0);
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,15 @@
integer [0-9]
name [a-zA-Z0-9_\.]
pvname [a-zA-Z0-9_\-:\.\[\]<>;]
string [a-zA-Z0-9_\,\./\*#\[\]%: ;!|\'\-&\(\)@\?\+<>=\$]
name [a-zA-Z0-9_\-:\.\[\]<>;]
notquote [^\"]
escapequote \\\"
string {notquote}|{escapequote}
%{
static ASINPUTFUNCPTR *my_yyinput;
#undef YY_INPUT
#define YY_INPUT(b,r,ms) (r=(*my_yyinput)(b,ms))
yyreset()
static int yyreset()
{
line_num=1;
BEGIN INITIAL;
@@ -35,19 +36,13 @@ INP[A-L] {/* If A-L is changed then ASMAXINP must also be changed*/
return(tokenINTEGER);
}
{name}+ {
{name}+ { /*unquoted string*/
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
strcpy(yylval.Str,yytext);
return(tokenNAME);
}
{pvname}+ {
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
strcpy(yylval.Str,yytext);
return(tokenPVNAME);
}
\"{string}*\" {
\"{string}*\" { /*quoted string*/
yylval.Str=(char *)asCalloc(1,strlen(yytext)+1);
/* making sure that neither double quote gets passed back */
strcpy(yylval.Str,yytext+1);
@@ -66,9 +61,13 @@ INP[A-L] {/* If A-L is changed then ASMAXINP must also be changed*/
\n { line_num ++;}
. {
char message[20];
YY_BUFFER_STATE *dummy=0;
sprintf(message,"invalid character '%c'",yytext[0]);
yyerror(message);
/*The following suppresses compiler warning messages*/
if(FALSE) yyunput('c',message);
if(FALSE) yy_switch_to_buffer(*dummy);
}
%%

View File

@@ -5,48 +5,13 @@
COPYRIGHT NOTIFICATION
*****************************************************************
THE FOLLOWING IS A NOTICE OF COPYRIGHT, AVAILABILITY OF THE CODE,
AND DISCLAIMER WHICH MUST BE INCLUDED IN THE PROLOGUE OF THE CODE
AND IN ALL SOURCE LISTINGS OF THE CODE.
(C) COPYRIGHT 1993 UNIVERSITY OF CHICAGO
Argonne National Laboratory (ANL), with facilities in the States of
Illinois and Idaho, is owned by the United States Government, and
operated by the University of Chicago under provision of a contract
with the Department of Energy.
Portions of this material resulted from work developed under a U.S.
Government contract and are subject to the following license: For
a period of five years from March 30, 1993, the Government is
granted for itself and others acting on its behalf a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, and perform
publicly and display publicly. With the approval of DOE, this
period may be renewed for two additional five year periods.
Following the expiration of this period or periods, the Government
is granted for itself and others acting on its behalf, a paid-up,
nonexclusive, irrevocable worldwide license in this computer
software to reproduce, prepare derivative works, distribute copies
to the public, perform publicly and display publicly, and to permit
others to do so.
This software was developed under a United States Government license
described on the COPYRIGHT_UniversityOfChicago file included as part
of this distribution.
**********************************************************************/
*****************************************************************
DISCLAIMER
*****************************************************************
NEITHER THE UNITED STATES GOVERNMENT NOR ANY AGENCY THEREOF, NOR
THE UNIVERSITY OF CHICAGO, NOR ANY OF THEIR EMPLOYEES OR OFFICERS,
MAKES ANY WARRANTY, EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL
LIABILITY OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT, OR PROCESS
DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE PRIVATELY
OWNED RIGHTS.
*****************************************************************
LICENSING INQUIRIES MAY BE DIRECTED TO THE INDUSTRIAL TECHNOLOGY
DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
*/
/* Modification Log:
* -----------------
* .01 03-24-94 mrk Initial Implementation
@@ -55,30 +20,44 @@ DEVELOPMENT CENTER AT ARGONNE NATIONAL LABORATORY (708-252-2000).
#include <stdlib.h>
#include <stddef.h>
#include <stdio.h>
#include <asLib.h>
static char my_buffer[100];
static char *my_buffer_ptr="\0";
#include <string.h>
static int my_yyinput(char *buf, int max_size)
#include "dbDefs.h"
#include "errlog.h"
#include "asLib.h"
#include "dbStaticLib.h"
int main(int argc,char **argv)
{
int l,n;
if(*my_buffer_ptr==0) {
if(gets(my_buffer)==NULL) return(0);
my_buffer_ptr = &my_buffer[0];
strcat(my_buffer_ptr,"\n");
int i;
int strip;
char *sub = NULL;
int subLength = 0;
char **pstr;
char *psep;
int *len;
long status;
static char *subSep = ",";
/*Look for options*/
while(argc>1 && (strncmp(argv[1],"-S",2)==0)) {
pstr = &sub;
psep = subSep;
len = &subLength;
if(strlen(argv[1])==2) {
dbCatString(pstr,len,argv[2],psep);
strip = 2;
} else {
dbCatString(pstr,len,argv[1]+2,psep);
strip = 1;
}
argc -= strip;
for(i=1; i<argc; i++) argv[i] = argv[i + strip];
}
l = strlen(my_buffer_ptr);
n = (l<=max_size ? l : max_size);
memcpy(buf,my_buffer_ptr,n);
my_buffer_ptr += n;
return(n);
}
int main()
{
long status;
status = asInitialize(my_yyinput);
if(status) errMessage(status,"from asInitialize");
if(argc!=1) {
printf("usage: ascheck -Smacsub < file\n");
exit(0);
}
status = asInitFP(stdin,sub);
if(status) errMessage(status,"from asInitFP");
return(0);
}

View File

@@ -1,10 +0,0 @@
TOP = ../../..
include $(TOP)/config/CONFIG_BASE
INC += bdt.h
LIBOBJS += bdt.o
LIBNAME = libBdt.a
include $(TOP)/config/RULES.Unix

View File

@@ -1,20 +0,0 @@
TOP = ../../..
include $(TOP)/config/CONFIG_BASE
SRCS.c += ../bdt.c
SRCS.c += ../bdtServ.c
SRCS.c += ../bdtServName.c
SRCS.c += ../bdtServPv.c
OBJS += bdt.o
OBJS += bdtServ.o
OBJS += bdtServName.o
OBJS += bdtServPv.o
PROD = bdt
include $(TOP)/config/RULES.Vx
$(PROD): $(OBJS)
$(RM) $@
$(LINK.c) $@ $(OBJS) $(LDLIBS)

View File

@@ -1,701 +0,0 @@
#include <stdio.h>
#include <signal.h>
#include <errno.h>
#include <sys/wait.h>
#ifdef linux
#include <sys/resource.h>
#endif
#include <sys/types.h>
#include <sys/socket.h>
#ifdef vxWorks
#include <vxWorks.h>
#include <in.h>
#include <inetLib.h>
#include <taskLib.h>
#include <ioLib.h>
#include <selectLib.h>
#else
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <fcntl.h>
#endif
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
#include "bdt.h"
/* ---------------------------------------------------------------------- */
/* server mode functions */
#ifndef vxWorks /* server mode functions */
static char* filename=(char*)NULL;
/* ----------------------------- */
/* signal catcher for the server */
/* ----------------------------- */
static void catch_sig(int sig)
{
fprintf(stderr,"\nbdt server exiting\n");
unlink(filename);
exit(0);
}
/* -------------------------------- */
/* child reaper for the server mode */
/* -------------------------------- */
static void get_child(int sig)
{
while(wait3((int *)NULL,WNOHANG,(struct rusage *)NULL)>0);
#ifdef linux
signal(SIGCHLD,get_child); /* for reaping children */
#endif
}
/* ------------------------------- */
/* Clear the signals for a process */
/* ------------------------------- */
int BdtServerClearSignals()
{
signal(SIGCHLD,SIG_DFL);
signal(SIGHUP,SIG_DFL);
signal(SIGINT,SIG_DFL);
signal(SIGTERM,SIG_DFL);
signal(SIGQUIT,SIG_DFL);
return 0;
}
/* ----------------------------------------------------- */
/* Make a unix process into a generic background process */
/* ----------------------------------------------------- */
int BdtMakeServer(char** argv)
{
FILE* fd;
if(filename) return -1;
/* set up signal handling for the server */
signal(SIGCHLD,get_child); /* for reaping children */
signal(SIGHUP,catch_sig);
signal(SIGINT,catch_sig);
signal(SIGTERM,catch_sig);
signal(SIGQUIT,catch_sig);
/* disconnect from parent */
switch(fork())
{
case -1: /* error */
perror("Cannot fork");
return -1;
case 0: /* child */
#ifdef linux
setpgrp();
#else
setpgrp(0,0);
#endif
setsid();
break;
default: /* parent goes away */
exit(0);
}
/* save process ID */
filename=(char*)malloc(strlen(argv[0])+10);
sprintf(filename,"%s.%d",argv[0],getpid());
fd=fopen(filename,"w");
fprintf(fd,"%d",getpid());
fprintf(stderr,"\npv server pid: %d\n",getpid());
fclose(fd);
return 0;
}
#endif /* server mode functions */
/* ------------------------------------------ */
/* unimplemented channel access open function */
/* ------------------------------------------ */
BDT* BdtPvOpen(char *IocName, char* PvName)
{
BDT *bdt;
if((bdt = BdtIpOpen(IocName, BDT_TCP_PORT)) == NULL)
{
fprintf(stderr,"open of address %s failed\n", IocName);
return(NULL);
}
if(BdtServiceConnect(bdt, BDT_SERVICE_PV, PvName) < 0)
{
fprintf(stderr,"connect to PV %s failed\n", PvName);
BdtClose(bdt);
return(NULL);
}
return(bdt);
}
/* --------------------------------------------------------------- */
/* open a bulk data socket to a server given the server IP address */
/* --------------------------------------------------------------- */
BDT* BdtIpOpen(char* address, int Port)
{
struct hostent *pHostent;
struct sockaddr_in tsin;
unsigned long addr;
int osoc;
BDT *bdt;
#ifndef vxWorks
/* Deal with the name -vs- IP number issue. */
if (isdigit(address[0]))
#endif
addr=inet_addr(address);
#ifndef vxWorks
else
{
if ((pHostent = gethostbyname (address)) == NULL)
return(NULL);
bcopy (pHostent->h_addr, (char *) &addr, sizeof(addr));
printf("Converting name >%s< to IP number %08.8X\n", address, addr);
}
#endif
tsin.sin_port=0;
tsin.sin_family=AF_INET;
tsin.sin_addr.s_addr=htonl(INADDR_ANY);
if((osoc=socket(AF_INET,SOCK_STREAM,BDT_TCP))<0)
{
perror("BdtIpOpen: create socket failed");
return (BDT*)NULL;
}
if((bind(osoc,(struct sockaddr*)&tsin,sizeof(tsin)))<0)
{
perror("BdtIpOpen: local address bind failed");
return (BDT*)NULL;
}
tsin.sin_port=htons(Port);
memcpy((char*)&tsin.sin_addr,(char*)&addr,sizeof(addr));
if(connect(osoc,(struct sockaddr*)&tsin,sizeof(tsin))<0)
{
perror("BdtIpOpen: connect failed");
close(osoc);
return (BDT*)NULL;
}
bdt=(BDT*)malloc(sizeof(BDT));
bdt->soc=osoc;
bdt->remaining_send=0;
bdt->remaining_recv=0;
bdt->state=BdtUnbound;
#ifndef vxWorks
{
int j;
j = fcntl(bdt->soc, F_GETFL, 0);
fcntl(bdt->soc, F_SETFL, j|O_NDELAY);
}
#endif
/* now connected to the bulk data socket on the IOC */
return bdt;
}
/* -------------------------------------- */
/* write size bytes from buffer to socket */
/* -------------------------------------- */
int BdtWrite(int soc,void* buffer,int size)
{
int rc;
int total;
unsigned char* data;
fd_set fds;
struct timeval to;
data=(unsigned char*)buffer;
total=size;
to.tv_sec = 5;
to.tv_usec = 0;
do
{
FD_ZERO(&fds);
FD_SET(soc, &fds);
if (select(soc+1, NULL, &fds, NULL, &to) != 1)
{
printf("BdtWrite: timeout waiting to write data\n");
return(-1);
}
/* send block of data */
if((rc=send(soc,&data[size-total],total,0))<0)
{
if(errno == EINTR)
rc = 0;
else
perror("BdtWrite: Send to remote failed");
}
else
total-=rc;
}
while(rc>0 && total>0);
return (rc<=0)?-1:0;
}
/* --------------------------------------- */
/* send a message header down a BDT socket */
/* --------------------------------------- */
int BdtSendHeader(BDT* bdt,unsigned short verb,int size)
{
BdtMsgHead buf;
if(bdt->state!=BdtIdle)
{
fprintf(stderr,"BdtSendHeader: Interface not idle\n");
bdt->state=BdtBad;
return -1;
}
buf.verb=htons(verb);
buf.size=htonl((unsigned long)size);
if(BdtWrite(bdt->soc,&buf.verb, sizeof(buf.verb))<0)
{
fprintf(stderr,"BdtSendHeader: write to remote failed");
return -1;
}
if(BdtWrite(bdt->soc,&buf.size, sizeof(buf.size))<0)
{
fprintf(stderr,"BdtSendHeader: write to remote failed");
return -1;
}
/* don't wait for response if data must go out */
if(size)
{
bdt->remaining_send=size;
bdt->state=BdtSData;
}
return 0;
}
/* ------------------------------------------- */
/* send a message data chunk down a BDT socket */
/* ------------------------------------------- */
int BdtSendData(BDT* bdt,void* buffer,int size)
{
int len;
int remaining;
int rc;
if(bdt->state!=BdtSData)
{
fprintf(stderr,"BdtSendData: Interface not in send data mode\n");
bdt->state=BdtBad;
return -1;
}
remaining=bdt->remaining_send-size;
if(remaining<0)
{
fprintf(stderr,"WARNING -- BdtSendData: To much data to send\n");
len=bdt->remaining_send;
}
else
len=size;
if (BdtWrite(bdt->soc, buffer, len) < 0)
return -1;
bdt->remaining_send-=len;
if(bdt->remaining_send<0)
{
fprintf(stderr,"BdtSendData: To much data Sent\n");
bdt->remaining_send=0;
}
if(bdt->remaining_send==0)
bdt->state=BdtIdle;
return len;
}
int BdtFlushOutput(BDT* bdt)
{
#ifdef vxWorks
ioctl(bdt->soc, FIOWFLUSH, 0);
#endif
}
/* ------------------------------------- */
/* Read exactly size bytes from remote */
/* ------------------------------------- */
int BdtRead(int soc,void* buffer,int size)
{
int rc,total;
unsigned char* data;
fd_set fds;
struct timeval to;
to.tv_sec = 5;
to.tv_usec = 0;
data=(unsigned char*)buffer;
total=size;
do
{
#if 1
/* wait for data chunk */
FD_ZERO(&fds);
FD_SET(soc, &fds);
if (select(soc+1, &fds, NULL, NULL, &to) != 1)
{
printf("BdtRead: timeout waiting for data\n");
return(-1);
}
#endif
if((rc=recv(soc,&data[size-total],total,0))<0)
{
if(errno==EINTR)
{
printf("BdtRead: EINTR");
rc=0;
}
else
{
perror("BdtRead: Receive data chunk failed");
}
}
else
total-=rc;
}
while(rc>0 && total>0);
return (rc<=0)?-1:0;
}
/* ------------------------------------- */
/* wait for a message header from remote */
/* ------------------------------------- */
int BdtReceiveHeader(BDT* bdt,int* verb,int* size)
{
BdtMsgHead buf;
/* can only receive header when in the idle state */
if (bdt->state == BdtEof)
return -1;
if(bdt->state != BdtIdle)
{
fprintf(stderr,"BdtReceiveHeader: Interface not idle\n");
bdt->state=BdtBad;
return -1;
}
if(BdtRead(bdt->soc,&buf.verb,sizeof(buf.verb))<0)
{
fprintf(stderr,"BdtReceiveHeader: Read failed\n");
return -1;
}
if(BdtRead(bdt->soc,&buf.size,sizeof(buf.size))<0)
{
fprintf(stderr,"BdtReceiveHeader: Read failed\n");
return -1;
}
/* copy message data to user */
*verb=ntohs(buf.verb);
*size=ntohl(buf.size);
if(*size)
bdt->state=BdtRData;
bdt->remaining_recv=*size;
return 0;
}
/* ------------------------------------------------------------------------
Wait for a chunk of data from remote.
User can continually call this with a maximum size until it return 0.
------------------------------------------------------------------------ */
int BdtReceiveData(BDT* bdt,void* buffer,int size)
{
int rc;
/* can only receive data when in the receive data state */
switch(bdt->state)
{
case BdtRData: break;
case BdtIdle: return 0;
default:
fprintf(stderr,"BdtReceiveData: bad receive state\n");
bdt->state=BdtBad;
break;
}
if (bdt->remaining_recv < size)
size = bdt->remaining_recv;
if(BdtRead(bdt->soc,buffer,size)<0)
{
fprintf(stderr,"BdtReceiveData: Read failed\n");
bdt->state = BdtEof;
return -1;
}
bdt->remaining_recv-=size;
if(bdt->remaining_recv<0)
{
fprintf(stderr,"BdtReceiveData: To much data received\n");
bdt->remaining_recv=0;
}
if(bdt->remaining_recv==0)
bdt->state=BdtIdle;
return size;
}
/* ------------------------------------------------------ */
/* connect to a process variable, useful if raw open used */
/* ------------------------------------------------------ */
int BdtServiceConnect(BDT* bdt, char* Name, char *Args)
{
int len;
int rc;
int size;
int verb;
unsigned char NameLen;
unsigned char ArgLen;
if(bdt->state!=BdtUnbound)
{
fprintf(stderr,"BdtServiceConnect: can only bind to one service\n");
return -1;
}
bdt->state=BdtIdle;
NameLen = strlen(Name)+1;
if (Args != NULL)
ArgLen = strlen(Args)+1;
else
ArgLen = 0;
/* send out connect message */
if(BdtSendHeader(bdt, BDT_Connect, NameLen+ArgLen) < 0)
{
fprintf(stderr,"BdtServiceConnect: send of connect header failed\n");
bdt->state=BdtUnbound;
return -1;
}
NameLen--;
ArgLen--;
/* send out the process variable to connect to */
if((BdtSendData(bdt, &NameLen, 1) < 0) || (BdtSendData(bdt, Name, NameLen) < 0))
{
fprintf(stderr,"BdtServiceConnect: send of connect body failed\n");
bdt->state=BdtUnbound;
return -1;
}
if (ArgLen > 0)
{
if ((BdtSendData(bdt, &ArgLen, 1) < 0) || (BdtSendData(bdt, Args, ArgLen) < 0))
{
fprintf(stderr,"BdtServiceConnect: send of connect body failed\n");
bdt->state=BdtUnbound;
return -1;
}
}
rc=0;
/* wait for response from connect to process variable */
if(BdtReceiveHeader(bdt,&verb,&size)<0)
{
fprintf(stderr,"BdtServiceConnect: receive reponse failed\n");
bdt->state=BdtUnbound;
return -1;
}
/* check response */
switch(verb)
{
case BDT_Ok:
rc=0;
break;
case BDT_Error:
fprintf(stderr,"BdtServiceConnect: connection rejected\n");
bdt->state=BdtUnbound;
rc=-1;
break;
default:
fprintf(stderr,"BdtServiceConnect: unknown response from remote\n");
bdt->state=BdtUnbound;
rc=-1;
break;
}
return rc;
}
/* -------------------- */
/* close the connection */
/* -------------------- */
int BdtClose(BDT* bdt)
{
int verb,size,done;
/* send a close message out */
if(BdtSendHeader(bdt,BDT_Close,0)<0)
{
fprintf(stderr,"BdtClose: Cannot send close message\n");
return -1;
}
done=0;
do
{
/* check response */
if(BdtReceiveHeader(bdt,&verb,&size)<0)
{
fprintf(stderr,"BdtClose: Close message response error\n");
return -1;
}
switch(verb)
{
case BDT_Ok:
done=1;
break;
case BDT_Error:
fprintf(stderr,"BdtClose: Close rejected\n");
return -1;
break;
default: break;
}
}
while(done==0);
bdt->state=BdtUnbound;
free(bdt);
return 0;
}
/* --------------------------------------- */
/* make a listener socket for UDP - simple */
/* --------------------------------------- */
int BdtOpenListenerUDP(int Port)
{
int nsoc;
struct sockaddr_in tsin;
tsin.sin_port=htons(Port);
tsin.sin_family=AF_INET;
tsin.sin_addr.s_addr=htonl(INADDR_ANY);
if((nsoc=socket(AF_INET,SOCK_DGRAM,BDT_UDP))<0)
{
perror("BdtOpenListenerUDP: open socket failed");
return -1;
}
if((bind(nsoc,(struct sockaddr*)&tsin,sizeof(tsin)))<0)
{
perror("BdtOpenListenerUDP: local bind failed");
close(nsoc);
return -1;
}
return nsoc;
}
/* --------------------------------------- */
/* make a listener socket for TCP - simple */
/* --------------------------------------- */
int BdtOpenListenerTCP(int Port)
{
int nsoc;
struct sockaddr_in tsin;
memset (&tsin, 0, sizeof(struct sockaddr_in));
tsin.sin_port=htons(Port);
tsin.sin_family=htons(AF_INET);
tsin.sin_addr.s_addr=htonl(INADDR_ANY);
if((nsoc=socket(AF_INET,SOCK_STREAM,BDT_TCP))<0)
{
perror("BdtOpenListenerTCP: open socket failed");
return -1;
}
if((bind(nsoc,(struct sockaddr*)&tsin,sizeof(tsin)))<0)
{
perror("BdtOpenListenerTCP: local bind failed");
close(nsoc);
return -1;
}
listen(nsoc,5);
return nsoc;
}
/* ------------------------------- */
/* make BDT from a socket - simple */
/* ------------------------------- */
BDT* BdtMakeBDT(int soc)
{
BDT* bdt;
bdt=(BDT*)malloc(sizeof(BDT));
bdt->soc=soc;
bdt->remaining_send=0;
bdt->remaining_recv=0;
bdt->state=BdtIdle;
return bdt;
}
/* --------------------------- */
/* free a BDT and close socket */
/* --------------------------- */
int BdtFreeBDT(BDT* bdt)
{
close(bdt->soc);
free(bdt);
return 0;
}
int BdtPvPutArray(BDT *bdt, short DbrType, void *Buf, unsigned long NumElements,
unsigned long ElementSize)
{
int Verb;
int Size;
unsigned long BufSize;
BufSize = NumElements * ElementSize;
if (BdtSendHeader(bdt, BDT_Put, 6 + BufSize) != 0)
return(-1);
if (BdtSendData(bdt, &DbrType, 2) < 0)
return(-1);
if (BdtSendData(bdt, &NumElements, 4) < 0)
return(-1);
if (BdtSendData(bdt, Buf, BufSize) < 0)
return(-1);
if (BdtReceiveHeader(bdt, &Verb, &Size) != 0)
return(-1);
if (Verb != BDT_Ok)
return(-1);
return(0);
}

View File

@@ -1,304 +0,0 @@
#ifndef __BDT_H
#define __BDT_H
/*
* $Log$
* Revision 1.4 1995/07/27 14:21:58 winans
* General mods for first release.
*
* Revision 1.3 1995/05/30 14:47:17 winans
* Added BDT_Ping and a port parm to BdtIpOpen.
*
* Revision 1.2 1995/05/16 15:38:00 winans
* Added BdtEof to BdtState enum list.
* Added WriteLock and DeltaFlagLock to vxWorks-side BDTs.
* Added port number args to BdtOpenListenerTCP() and BdtOpenListenerUDP().
*
* Revision 1.1 1995/05/11 02:08:44 jbk
* new file for the bulk data transfer stuff
*
*/
/*
Author: Jim Kowalkowski
Date: 5/1/95
*/
/* got from protocols(5) (cheated) or /etc/protocols */
#define BDT_UDP 17
#define BDT_TCP 6
/* server ports - in the user reserved area */
#define BDT_UDP_PORT 50296
#define BDT_TCP_PORT 50297
/* Well known service names */
#define BDT_SERVICE_PV "pv"
#define BDT_SERVICE_NAME "name"
#define BDT_SERVICE_DRV "drv"
#define PV_TRANSFER_SIZE 512
/* How often some type of message is expected to arrive at each end-point */
#define BDT_PING_INTERVAL 10 /* Specified in seconds */
#define BDT_CONENCTION_TIMEOUT 25 /* Specified in seconds */
/* message types */
#define BDT_Ok 0
#define BDT_Connect 1
#define BDT_Error 2
#define BDT_Get 3
#define BDT_Put 4
#define BDT_Close 5
#define BDT_Monitor 6
#define BDT_Value 7
#define BDT_Delta 8
#define BDT_Add 9
#define BDT_Delete 10
#define BDT_Ping 11
#define BDT_LAST_VERB 11
/* protocol states */
typedef enum
{ BdtIdle,BdtUnbound,BdtSData,BdtRData,BdtBad,BdtEof } BdtState;
/******************************************************************************
*
* The format of a BDT_Connect message is:
*
* BdtMsgHead.verb (unsigned 16 binary = BDT_Connect)
* BdtMsgHead.size (unsigned 32 bit binary)
* service name length (unsigned 8 bit binary)
* service name string (service name length characters)
* arg1 string length (unsigned 8 bit binary)
* arg1 string (arg1 string length characters)
* ...
*
******************************************************************************/
/******************************************************************************
*
* NOTICE!!!!!!!! MONITORS ARE NOT CURRENTLY SUPPORTED!!!!!!!
*
* The BdtMonitor structure is created on the server-side when ever a client
* registers a monitor. It contains a tag string that is given by the client
* when the monitor is established. This tag string is an arbitrary binary
* string of bytes... presumably used by the client as a pointer or index
* to a status structure that represents the resource being monitored.
*
* The Message portion of the BdtMonitor represents the body of the message
* that is to be sent to the client to indicate the status of the event that
* happened. (It may not be present in the message.)
*
* The BdtMonitor structures are only hooked into the bdt.pMonitor list if they
* are waiting to be sent to the client.
*
* The format of a BDT_Monitor message is:
*
* BdtMsgHead.verb (unsigned 16 binary = BDT_Monitor)
* BdtMsgHead.size (unsigned 32 bit binary)
* TagLength (unsigned 32 bit binary)
* Tag (TagLength characters)
* service name string (BdtMsgHead.size-TagLength-4 characters)
*
* The <service name string> for a monitor message should include the object
* name(s) that are to be monitored.
*
*
* The format of a BDT_Delta message is:
*
* BdtMsgHead.verb (unsigned 16 binary = BDT_Delta)
* BdtMsgHead.size (unsigned 32 bit binary)
* BdtMonitor.TagLength (unsigned 32 bit binary)
* BdtMonitor.Tag (BdtMonitor.TagLength characters)
* BdtMonitor.MessageLength (unsigned 32 bit binary)
* BdtMonitor.Message (BdtMonitor.MessageLength characters)
*
******************************************************************************/
struct bdt;
typedef struct BdtMonitor
{
struct bdt *pBdt; /* Connection to send notices back to */
char *Tag; /* Client-generated tag */
int TagLength; /* Length of tag */
char *Message; /* Server-gen'd status change message */
int MessageLength; /* Length of Message */
struct BdtMonitor *pNext; /* Allow queue of N outbound on BDT */
} BdtMonitor;
typedef int (*BdthandlerFunc)(struct bdt *Bdt);
typedef struct BdtHandlers
{
BdthandlerFunc Ok;
BdthandlerFunc Connect;
BdthandlerFunc Error;
BdthandlerFunc Get;
BdthandlerFunc Put;
BdthandlerFunc Close;
BdthandlerFunc Monitor;
BdthandlerFunc Value;
BdthandlerFunc Delta;
BdthandlerFunc Add;
BdthandlerFunc Delete;
BdthandlerFunc Ping;
} BdtHandlers;
struct bdt
{
int soc;
int remaining_send;
int remaining_recv;
BdtState state;
#ifdef vxWorks
char *Name; /* Service name (used for messages) */
SEM_ID WriteLock;
SEM_ID MonitorLock;
BdtMonitor *pMonitor; /* List of pending monitor events */
BdthandlerFunc *pHandlers; /* Support routines for messages */
void *pService; /* Provate pointer for service */
#endif
};
typedef struct bdt BDT;
struct BdtMsgHead
{
unsigned short verb;
unsigned long size;
};
typedef struct BdtMsgHead BdtMsgHead;
#define BdtGetSocket(BDT) (BDT->soc)
#define BdtGetResidualWrite(BDT) (BDT->remaining_send)
#define BdtGetResidualRead(BDT) (BDT->remaining_recv)
#define BdtGetProtoState(BDT) (BDT->state)
#ifdef vxWorks
#define BdtGetServiceName(BDT) (BDT->Name)
#endif
/* ------------------------------------------------------------------------
Server functions:
BdtOpenListenerTCP:
Open a socket locally bound to the bulk data transfer TCP server port.
Set the socket up as a listener. Return the open socket.
BdtOpenListenerUDP:
Open a socket locally bound to the bulk data transfer UDP server port.
Return the open socket.
------------------------------------------------------------------------ */
int BdtOpenListenerTCP(int Port);
int BdtOpenListenerUDP(int Port);
/* ------------------------------------------------------------------------
Utilities functions:
BdtMakeServer:
Available under unix only. Put process in the background, disassociate
process from controlling terminal and parent process, and prepare
signals for reaping children spawned by the process.
BdtServerClearSignals:
Clear the signal handlers for a process, set them to default.
BdtMakeBDT:
Allocate and initialize a BDT from a socket.
BdtFreeBDT:
Close the open socket and free the memory for the BDT.
------------------------------------------------------------------------ */
#ifndef vxWorks
int BdtMakeServer(char** argv);
int BdtServerClearSignals();
#endif
BDT* BdtMakeBDT(int socket); /* make a BDT from a socket */
int BdtFreeBDT(BDT* bdt); /* free a BDT */
/* ------------------------------------------------------------------------
Client functions:
BdtIpOpen:
Open a connection to an bulk data transfer given the IP address of the
machine where the server exists. The returned BDT is returned unbound,
a connect must be issued before data transactions can take place.
BdtPvOpen:
Open and connect (bind) to a process variable. Data transfers can
take place after this call.
BdtServiceConnect:
Used in conjunction with BdtIpOpen(). Bind an unbound BDT to a
generic service provided by the server at the other end of the open
connection.
BdtPvConnect:
Used in conjunction with BdtIpOpen(). Bind an unbound BDT to a
process variable on the server at the other end of the open
connection.
BdtClose:
Completely close a connection to a server and free the BDT.
BdtDeltaPending:
Check if a delta message arrived at an unexpected time. This function
clears the pending condition.
------------------------------------------------------------------------ */
BDT* BdtIpOpen(char* address, int port);
BDT* BdtPvOpen(char *IocName, char* PvName);
int BdtServiceConnect(BDT* bdt, char* service_name, char *args);
int BdtPvConnect(BDT* bdt, char* pv_name);
int BdtClose(BDT* bdt);
int BdtPvDeltaPending(BDT* bdt);
/* ------------------------------------------------------------------------
Client and Server shared functions:
BdtSendHeader:
Send a message header out to a connect BDT with command and message body
size information.
BdtSendData:
Send a portion or all the message body out a connected BDT. A header
must have previously been sent with length information. The interface
will only allow the amount of data specified in the header to be sent.
BdtWrite:
This call will block until all the data specified in the size parameter
are sent down the socket.
BdtRead:
This call will block until all the data specified in the size parameter
is read from the socket.
BdtReceiveHeader:
Wait until a message header appears at the BDT, return the action and
remaining message body size.
BdtReceiveData:
Wait for a chunk or the entire body of a message to appear at the BDT.
Put the data into the buffer for a maximum size. Return the amount of
data actually received, or zero if there is no data remaining for the
current message.
------------------------------------------------------------------------ */
int BdtSendHeader(BDT* bdt, unsigned short verb, int size);
int BdtSendData(BDT* bdt, void* buffer, int size);
int BdtReceiveHeader(BDT* bdt, int* verb, int* size);
int BdtReceiveData(BDT* bdt, void* buffer, int size);
int BdtRead(int socket, void* buffer, int size);
int BdtWrite(int socket, void* buffer, int size);
int BdtFlushOutput(BDT* bdt);
int BdtPvPutArray(BDT *bdt, short DbrType, void *Buf, unsigned long NumElements, unsigned long ElementSize);
#endif

View File

@@ -1,392 +0,0 @@
/*
*
* Author: John Winans
* Date: 95-05-22
*
* $Log$
*/
/*****************************************************************************
*
* IOC listener task blocks on accept calls waiting for binders.
* If a bind arrives, a receiver task is spawned.
*
* IOC receiver task blocks on read calls waiting for transactions.
* When a transaction arrives it is serviced.
* At the end of a transaction service, a response is sent back.
* After the response is sent, a chack is made to see if a delta transmission
* was blocked by the transaction's use of the socket... if so, it is sent.
*
******************************************************************************/
#include <selectLib.h>
#include <stdio.h>
#include <signal.h>
#include <vxWorks.h>
#include <sys/socket.h>
#include <in.h>
#include <inetLib.h>
#include <taskLib.h>
#include <sysSymTbl.h>
#include <string.h>
#include "bdt.h"
#define BDT_TASK_PRIO 200
#define BDT_TASK_OPTIONS VX_FP_TASK
#define BDT_TASK_STACK 5000
#define STATIC static
/* used for debugging */
STATIC char *BdtNames[] = {
"BDT_Ok",
"BDT_Connect",
"BDT_Error",
"BDT_Get",
"BDT_Put",
"BDT_Close",
"BDT_Monitor",
"BDT_Value",
"BDT_Delta",
"BDT_Add",
"BDT_Delete",
"BDT_Ping"
};
STATIC int HexDump(char *ReadBuffer, int rbytes);
/*****************************************************************************
*
* A debugging routine that hex-dumps a message to the console.
*
*****************************************************************************/
void BDT_DumpMessage(BDT *Bdt)
{
char Buf[16*4];
int RecvLen;
while(Bdt->remaining_recv)
{
RecvLen = (Bdt->remaining_recv > sizeof(Buf)) ? sizeof(Buf): Bdt->remaining_recv;
if (BdtReceiveData(Bdt, Buf, RecvLen) != RecvLen)
return; /* Got EOF, (EOM handled by the while() */
HexDump(Buf, RecvLen);
}
}
/*****************************************************************************
*
* Throw away a message.
*
****************************************************************************/
void BDT_DiscardMessage(BDT *Bdt)
{
char Buf[16*4];
int RecvLen;
while(Bdt->remaining_recv)
{
RecvLen = (Bdt->remaining_recv > sizeof(Buf)) ? sizeof(Buf): Bdt->remaining_recv;
if (BdtReceiveData(Bdt, Buf, RecvLen) != RecvLen)
return; /* Got EOF, (EOM handled by the while() */
}
}
/*****************************************************************************
*
* Process a single Connect message. And return a response.
*
******************************************************************************/
STATIC int BDT_ProcessConnect(BDT *Bdt)
{
SYM_TYPE Type;
unsigned char length;
char Buf[50];
char HandlerName[70];
if (Bdt->remaining_recv > sizeof(Buf))
{
printf("BDT_ProcessConnect Connect Message too long %d\n", Bdt->remaining_recv);
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
if (Bdt->remaining_recv < 2)
{
printf("BDT_ProcessConnect Connect Message w/missing service name\n");
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
BdtReceiveData(Bdt, &length, 1);
if (length > sizeof(Buf))
{
printf("BDT_ProcessConnect Connect Message service name too long %d\n", length);
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
BdtReceiveData(Bdt, Buf, length);
Buf[length] = '\0';
sprintf(HandlerName, "_BDT_ServiceHandler_%s", Buf);
printf("BDT_ProcessConnect NAME service (%s)\n", HandlerName);
/*Bdt->pHandlers = (BdthandlerFunc *)(&BDT_NameServicehandlers);*/
if (symFindByName(sysSymTbl, HandlerName, (char **)&(Bdt->pHandlers), &Type) != OK)
{
printf("BDT_ProcessConnect Connect to unknown service (%s)\n", Buf);
BdtSendHeader(Bdt, BDT_Error, 0);
}
else
{
Bdt->Name = (char *)malloc(strlen(Buf)+1);
strcpy(Bdt->Name, Buf);
if (Bdt->pHandlers[BDT_Connect] != NULL)
return((*(Bdt->pHandlers[BDT_Connect]))(Bdt));
else
{
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Ok, 0);
}
}
return(0);
}
/*****************************************************************************
*
* Process a single message. And return a response.
*
******************************************************************************/
STATIC int BDT_ProcMessage(BDT *Bdt, unsigned short Command)
{
int RecvLen;
if (Command > BDT_LAST_VERB)
{
printf("BDT: %s Invalid command %d, length = %d\n", Bdt->Name, Command, Bdt->remaining_recv);
BDT_DumpMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
if (Bdt->pHandlers == NULL)
{
if (Command == BDT_Connect)
BDT_ProcessConnect(Bdt);
else
{
printf("BDT_ProcMessage: %s got %s before connect\n", Bdt->Name, BdtNames[Command]);
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
}
return(0);
}
if (Bdt->pHandlers[Command] == NULL)
{
printf("BDT_ProcMessage: service %s got %s... invalid\n", Bdt->Name, BdtNames[Command]);
}
return((*(Bdt->pHandlers[Command]))(Bdt));
}
/*****************************************************************************
*
* Wait on a socket read for a message. When one arrives, read the header,
* decode it, and call the message handler routine to process and respond to it.
*
******************************************************************************/
STATIC void BDT_ReceiverTask(int Sock)
{
int Verb;
int Size;
BDT Bdt;
int MonitorLockTimeout = (BDT_PING_INTERVAL*sysClkRateGet())/2;
static char *NoBdtName = "(No Name)";
fd_set FdSet;
struct timeval TimeVal;
int PollStatus;
int SocketState;
Bdt.soc = Sock;
Bdt.pMonitor = NULL;
Bdt.WriteLock = semBCreate(SEM_Q_PRIORITY, SEM_FULL);
Bdt.MonitorLock = semBCreate(SEM_Q_PRIORITY, SEM_FULL);
Bdt.state = BdtIdle;
Bdt.pHandlers = NULL;
Bdt.Name = NoBdtName;
printf("BDT_ReceiverTask(%d) started\n", Sock);
TimeVal.tv_sec = BDT_CONENCTION_TIMEOUT;
TimeVal.tv_usec = 0;
FD_ZERO(&FdSet);
FD_SET(Bdt.soc, &FdSet);
SocketState = 0;
while (((PollStatus = select(FD_SETSIZE, &FdSet, NULL, NULL, &TimeVal)) > 0) && (BdtReceiveHeader(&Bdt, &Verb, &Size) == 0))
{
semTake(Bdt.WriteLock, WAIT_FOREVER);
SocketState = BDT_ProcMessage(&Bdt, Verb);
if (SocketState != 0)
break;
#if 0
if (semTake(Bdt.MonitorLock, MonitorLockTimeout) == OK)
{
/* Check for delta flag and send if so */
/* Change this to run thru a delta-message linked list */
if (Bdt.pMonitor != NULL)
{
/* Send delta notifier */
}
semGive(Bdt.WriteLock); /* Order important for BDT_SendDelta */
semGive(Bdt.MonitorLock);
}
else
{
printf("BDT_ReceiverTask timeout on monitor semaphore. Monitors are stuck!\n");
semGive(Bdt.WriteLock);
}
#else
semGive(Bdt.WriteLock);
#endif
BdtFlushOutput(&Bdt);
FD_ZERO(&FdSet);
FD_SET(Bdt.soc, &FdSet);
}
if (SocketState == 0)
{
if (PollStatus == 0)
printf("BDT_ReceiverTask(%d) exiting on client timeout\n", Sock);
else
printf("BDT_ReceiverTask(%d) exiting on I/O error talking to Client\n", Sock);
}
else
printf("BDT_ReceiverTask(%d) received close from client\n", Sock);
/* Free up resources */
if (Bdt.Name != NoBdtName)
free(Bdt.Name);
close(Sock);
semDelete(Bdt.WriteLock);
semDelete(Bdt.MonitorLock);
return;
}
/*****************************************************************************
*
******************************************************************************/
#if 0
int BDT_SendDelta(int Socket, char *Message)
{
semTake (DeltaFlagLock, WAIT_FOREVER);
if (if (semTake(SocketWriteLock, no wait) == failed)
{
/* Reader task is busy... Post message for future transmission */
Bdt.pending_delta = 1;
}
else
{
write(Message); /* This COULD block */
semGive(SocketWriteLock);
}
semGive(DeltaFlagLock);
return (0);
}
#endif
/*****************************************************************************
*
* This task listens on a port for new connections. When one is made, it
* spawns a task to manage it.
*
******************************************************************************/
void BDT_ListenerTask(int Port)
{
/* Open a socket to listen on */
struct sockaddr_in ListenerAddr;
struct sockaddr_in ClientAddr;
int ListenerSock;
int ClientSock;
int ClientAddrLen;
int SockAddrSize = sizeof(struct sockaddr_in);
if (Port == 0)
Port = BDT_TCP_PORT;
printf("BDT_Listener(%d) started\n", Port);
if ((ListenerSock = BdtOpenListenerTCP(Port)) < 0)
{
printf("BDT_ListenerTask(%d) can't start listener\n", Port);
return;
}
while (1)
{
ClientAddrLen = sizeof(ClientAddr);
if((ClientSock = accept(ListenerSock, (struct sockaddr*)&ClientAddr, &ClientAddrLen)) < 0)
{
if(errno!=EINTR)
{
printf("BDT_ListenerTask(%d) accept() failed\n", Port);
}
}
else
{
/* Spawn a task to handle the new connection */
printf("Accepted a connection\n");
taskSpawn("BDT", BDT_TASK_PRIO, BDT_TASK_OPTIONS, BDT_TASK_STACK, (FUNCPTR)BDT_ReceiverTask, ClientSock, 2,3,4,5,6,7,8,9,0);
}
}
/* Never reached */
}
/*****************************************************************************
*
* A handy routine to assist in debugging.
*
******************************************************************************/
STATIC int HexDump(char *ReadBuffer, int rbytes)
{
int c = 0;
int i = 0;
int firsttime;
char ascii[20]; /* To hold printable portion of string */
if (!rbytes)
return(0);
firsttime = 1;
while(c < rbytes)
{
if ((c % 16) == 0)
{
if (!firsttime)
{
ascii[i] = '\0';
printf(" *%s*\n", ascii);
}
firsttime=0;
i = 0;
}
printf(" %02.2X", ReadBuffer[c] & 0xff);
ascii[i] = ReadBuffer[c];
if (!isprint(ascii[i]))
ascii[i] = '.';
++i;
++c;
}
while (c%16)
{
fputs(" ", stdout);
++c;
}
ascii[i] = '\0';
printf(" *%s*\n", ascii);
return(0);
}

View File

@@ -1,129 +0,0 @@
/*****************************************************************************
*
* Author: John Winans
* Date: 95-06-05
*
* $Id$
*
* $Log$
*
*****************************************************************************/
#include <selectLib.h>
#include <stdio.h>
#include <signal.h>
/*****************************************************************************
*
* IOC listener task blocks on accept calls waiting for binders.
* If a bind arrives, a receiver task is spawned.
*
* IOC receiver task blocks on read calls waiting for transactions.
* When a transaction arrives it is serviced.
* At the end of a transaction service, a response is sent back.
* After the response is sent, a chack is made to see if a delta transmission
* was blocked by the transaction's use of the socket... if so, it is sent.
*
******************************************************************************/
#include <vxWorks.h>
#include <sys/socket.h>
#include <in.h>
#include <inetLib.h>
#include <taskLib.h>
#include "bdt.h"
#define STATIC static
/*****************************************************************************
*
*****************************************************************************/
STATIC int BDT_NameServiceOk(BDT *Bdt)
{
printf("BDT_NameServiceOk \n");
return(0);
}
/*****************************************************************************
*
*****************************************************************************/
STATIC int BDT_NameServiceConnect(BDT *Bdt)
{
printf("BDT_NameServiceConnect \n");
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
STATIC int BDT_NameServiceError(BDT *Bdt)
{
printf("BDT_NameServiceError \n");
return(0);
}
STATIC int BDT_NameServiceGet(BDT *Bdt)
{
printf("BDT_NameServiceGet \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServicePut(BDT *Bdt)
{
printf("BDT_NameServicePut \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServiceClose(BDT *Bdt)
{
printf("BDT_NameServiceClose \n");
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
STATIC int BDT_NameServiceMonitor(BDT *Bdt)
{
printf("BDT_NameServiceMonitor \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServiceValue(BDT *Bdt)
{
printf("BDT_NameServiceValue \n");
return(0);
}
STATIC int BDT_NameServiceDelta(BDT *Bdt)
{
printf("BDT_NameServiceDelta \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServiceAdd(BDT *Bdt)
{
printf("BDT_NameServiceAdd \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServiceDelete(BDT *Bdt)
{
printf("BDT_NameServiceDelete \n");
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
STATIC int BDT_NameServicePing(BDT *Bdt)
{
printf("BDT_NameServicePing \n");
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
BdtHandlers BDT_ServiceHandler_name =
{
BDT_NameServiceOk,
BDT_NameServiceConnect,
BDT_NameServiceError,
BDT_NameServiceGet,
BDT_NameServicePut,
BDT_NameServiceClose,
BDT_NameServiceMonitor,
BDT_NameServiceValue,
BDT_NameServiceDelta,
BDT_NameServiceAdd,
BDT_NameServiceDelete,
BDT_NameServicePing
};

View File

@@ -1,377 +0,0 @@
/*****************************************************************************
*
* Author: John Winans
* Date: 95-06-05
*
* $Id$
*
* $Log$
*
******************************************************************************/
#include <vxWorks.h>
#include <semLib.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <dbCommon.h>
#include <dbAccess.h>
#include "bdt.h"
#define STATIC static
#define MESSAGE_PREFIX "BDT PV server:"
/*****************************************************************************
*
* These conversion finctions take care of one of the most insane parts
* of dealing with database access... having two different interfaces that
* have the same named enumerators in two seperate header files... that
* therefore can not be both included in the same file.
*
* This is so bad, I wanted to vomit when typing it in.
*
******************************************************************************/
STATIC int DbrOld2New(int Old)
{
switch (Old)
{
case 0: return(DBR_STRING);
case 1: return(DBR_SHORT);
case 2: return(DBR_FLOAT);
case 3: return(DBR_ENUM);
case 4: return(DBR_CHAR);
case 5: return(DBR_LONG);
case 6: return(DBR_DOUBLE);
default:
return(-1);
}
}
STATIC int DbrNew2Old(int New)
{
switch (New)
{
case DBR_STRING: return(0);
case DBR_CHAR: return(4);
case DBR_UCHAR: return(4);
case DBR_SHORT: return(1);
case DBR_USHORT: return(1);
case DBR_LONG: return(5);
case DBR_ULONG: return(5);
case DBR_FLOAT: return(2);
case DBR_DOUBLE: return(6);
case DBR_ENUM: return(3);
default:
return(-1);
}
}
/*****************************************************************************
*
* Handle the receipt of an OK message.
*
* The OK message is received as a confirmation of the last operation. It is
* not normally responded to.
*
*****************************************************************************/
STATIC int BDT_ServiceOk(BDT *Bdt)
{
printf("%s got a Ok message\n", MESSAGE_PREFIX);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Connect message.
*
* The Connect is received when a new connection is first made.
* Any arguments left in the message body have not yet been read.
*
*****************************************************************************/
STATIC int BDT_ServiceConnect(BDT *Bdt)
{
unsigned char Length;
char Buf[100];
struct dbAddr *pDbAddr;
Buf[0] = '\0';
if (Bdt->remaining_recv > 0)
{
BdtReceiveData(Bdt, &Length, 1);
if (Length <= sizeof(Buf))
{
BdtReceiveData(Bdt, Buf, Length);
Buf[Length] = '\0';
}
else
{
printf("%s Connect message argument list too long\n", MESSAGE_PREFIX);
BDT_DiscardMessage(Bdt);
return(-1);
}
}
#ifdef DEBUG_VERBOSE
printf("%s got Connect >%s<\n", MESSAGE_PREFIX, Buf);
#endif
/* Find the PV in the database */
Bdt->pService = malloc(sizeof(struct dbAddr));
pDbAddr = (struct dbAddr *)(Bdt->pService);
if (dbNameToAddr(Buf, pDbAddr))
{
BdtSendHeader(Bdt, BDT_Error, 0);
free(Bdt->pService);
}
else
{
if (pDbAddr->dbr_field_type != pDbAddr->field_type)
{
BdtSendHeader(Bdt, BDT_Error, 0);
free(Bdt->pService);
}
else
BdtSendHeader(Bdt, BDT_Ok, 0);
}
return(0);
}
/*****************************************************************************
*
* Handle the receipt of an Error message.
*
*****************************************************************************/
STATIC int BDT_ServiceError(BDT *Bdt)
{
printf("%s got a Error message\n", MESSAGE_PREFIX);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Get message.
*
* The response to a Get message is either an Error or a Value:
*
* Value message body format:
* SHORT EPICS data type enumerator (in old format)
* LONG Number of elements
* CHAR[] Value image
*
*
*****************************************************************************/
STATIC int BDT_ServiceGet(BDT *Bdt)
{
void *Buf;
struct dbAddr *pDbAddr = (struct dbAddr *)(Bdt->pService);
long NumElements;
long Size;
long l;
short OldType;
int stat;
#ifdef DEBUG_VERBOSE
printf("%s got a Get message\n", MESSAGE_PREFIX);
printf("field type=%d, field size=%d, elements=%d\n", pDbAddr->field_type, pDbAddr->field_size, pDbAddr->no_elements);
#endif
OldType = DbrNew2Old(pDbAddr->field_type);
if (OldType < 0)
{
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
/* Allocate a buffer to hold the response message data */
Buf = malloc(pDbAddr->field_size * pDbAddr->no_elements);
if (Buf == NULL)
{
printf("Can't allocate %d-byte buffer for get request to %s\n",
pDbAddr->field_size * pDbAddr->no_elements,
pDbAddr->precord->name);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
/* Get the response message data */
NumElements = pDbAddr->no_elements;
if (stat=dbGetField(pDbAddr, pDbAddr->field_type, Buf, 0, &NumElements, NULL))
{
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
#if 0
/* Test hack to transfer HUGE buffers */
NumElements = pDbAddr->no_elements;
#endif
/* Send the response message */
Size = NumElements * pDbAddr->field_size;
BdtSendHeader(Bdt, BDT_Value, Size + sizeof(long) + sizeof(short));
BdtSendData(Bdt, &OldType, sizeof(short));
BdtSendData(Bdt, &NumElements, sizeof(long));
if (Size)
BdtSendData(Bdt, Buf, Size);
free(Buf);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Put message.
*
* Put message body format:
* SHORT EPICS data type enumerator
* LONG Number of elements
* CHAR[] Value image
*
*****************************************************************************/
STATIC int BDT_ServicePut(BDT *Bdt)
{
long Size;
void *Buf;
short DbrType;
long NumElements;
struct dbAddr *pDbAddr = (struct dbAddr *)(Bdt->pService);
#ifdef DEBUG_VERBOSE
printf("%s got a Put message\n", MESSAGE_PREFIX);
#endif
if (BdtGetResidualRead(Bdt) < 6)
{
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
if (BdtGetResidualRead(Bdt) == 6)
{ /* Do data contents, just toss it */
BDT_DiscardMessage(Bdt);
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
Buf = malloc(BdtGetResidualRead(Bdt) - 6);
if (Buf == NULL)
{
printf("Can't allocate %d-byte buffer for put request to %s\n",
BdtGetResidualRead(Bdt), pDbAddr->precord->name);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
BdtReceiveData(Bdt, &DbrType, 2);
BdtReceiveData(Bdt, &NumElements, 4);
#ifdef DEBUG_VERBOSE
printf("record field type=%d, field size=%d, elements=%d\n", pDbAddr->field_type, pDbAddr->field_size, pDbAddr->no_elements);
printf("message field type=%d, field size=%d, elements=%d total %d\n", DbrType, pDbAddr->field_type ,NumElements, BdtGetResidualRead(Bdt));
#endif
BdtReceiveData(Bdt, Buf, BdtGetResidualRead(Bdt));
DbrType = DbrOld2New(DbrType);
if (DbrType < 0)
BdtSendHeader(Bdt, BDT_Error, 0);
else if (dbPutField(pDbAddr, DbrType, Buf, NumElements))
BdtSendHeader(Bdt, BDT_Error, 0);
else
BdtSendHeader(Bdt, BDT_Ok, 0);
free(Buf);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Close message.
*
*****************************************************************************/
STATIC int BDT_ServiceClose(BDT *Bdt)
{
printf("%s got a Close message\n", MESSAGE_PREFIX);
free(Bdt->pService);
BdtSendHeader(Bdt, BDT_Ok, 0);
return(1);
}
/*****************************************************************************
*
* Handle the receipt of a Monitor message.
*
* Not Supported.
*
*****************************************************************************/
STATIC int BDT_ServiceMonitor(BDT *Bdt)
{
printf("%s got a Monitor message\n", MESSAGE_PREFIX);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Value message.
*
* Not Supported.
*
*****************************************************************************/
STATIC int BDT_ServiceValue(BDT *Bdt)
{
printf("%s got a Value message\n", MESSAGE_PREFIX);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Delta message.
*
* Not Supported.
*
*****************************************************************************/
STATIC int BDT_ServiceDelta(BDT *Bdt)
{
printf("%s got a Delta message\n", MESSAGE_PREFIX);
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of an Add message.
*
* Not Supported.
*
*****************************************************************************/
STATIC int BDT_ServiceAdd(BDT *Bdt)
{
printf("%s got a Add message\n", MESSAGE_PREFIX);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Delete message.
*
* Not Supported.
*
*****************************************************************************/
STATIC int BDT_ServiceDelete(BDT *Bdt)
{
printf("%s got a Delete message\n", MESSAGE_PREFIX);
BdtSendHeader(Bdt, BDT_Error, 0);
return(0);
}
/*****************************************************************************
*
* Handle the receipt of a Ping message.
*
*****************************************************************************/
STATIC int BDT_ServicePing(BDT *Bdt)
{
printf("%s got a Ping message\n", MESSAGE_PREFIX);
BdtSendHeader(Bdt, BDT_Ok, 0);
return(0);
}
BdtHandlers BDT_ServiceHandler_pv =
{
BDT_ServiceOk,
BDT_ServiceConnect,
BDT_ServiceError,
BDT_ServiceGet,
BDT_ServicePut,
BDT_ServiceClose,
BDT_ServiceMonitor,
BDT_ServiceValue,
BDT_ServiceDelta,
BDT_ServiceAdd,
BDT_ServiceDelete,
BDT_ServicePing
};

Some files were not shown because too many files have changed in this diff Show More