Compare commits

...

298 Commits

Author SHA1 Message Date
Andrew Johnson
44ef13d8b2 Version for 3-14-9-pre1 2006-11-20 21:09:36 +00:00
Andrew Johnson
e9c984ff06 #include vxWorks.h needed for definition of NULL. 2006-11-20 20:53:31 +00:00
Andrew Johnson
e100e141a6 Make runtests work properly in non-HOST builds. 2006-11-20 17:38:36 +00:00
Andrew Johnson
26f27b3a69 Automate the running of callbackTest. 2006-11-20 17:14:05 +00:00
Andrew Johnson
52896cc78a Updated runtests wording again. 2006-11-20 16:31:39 +00:00
Andrew Johnson
52584a53e0 Made runtests a more generic target.
Ensure it doesn't fail if no tests are defined.
2006-11-20 16:25:01 +00:00
Janet B. Anderson
8fd5f456ce Cygwin Make 3.81 now requires /cygdrive/<drive>/... in fullpath names. 2006-11-20 16:23:51 +00:00
Janet B. Anderson
db3407a3ab Cygwin Make 3.81 now requires /cygdrive/<drive>/... in fullpath names. 2006-11-20 16:22:23 +00:00
W. Eric Norum
945182eac9 Remove duplicate typedef to which gcc objected. 2006-11-20 16:10:02 +00:00
Jeff Hill
b9acd32dfa fixed half duplex udp socket set up 2006-11-18 01:03:15 +00:00
Jeff Hill
60d6328016 use new data conversion interface 2006-11-18 01:02:18 +00:00
Jeff Hill
de6ce2f679 dont allow unbounded round trip estimates 2006-11-18 00:56:59 +00:00
Jeff Hill
ffb5e239f2 catch client initiated write requests with invalid dbr types in the client library 2006-11-18 00:52:09 +00:00
Jeff Hill
4bf25982fa added guards to interface 2006-11-18 00:51:08 +00:00
Jeff Hill
e308021980 initialize time at last send when creating search timer. This
guarantees no possibility of bogus search response delay
measurement
2006-11-18 00:50:35 +00:00
Jeff Hill
b0e5ae5a58 use new data conversion interface 2006-11-18 00:48:36 +00:00
Jeff Hill
01f39d3e47 use new data conversion interface 2006-11-18 00:42:32 +00:00
Jeff Hill
7b461161fc write request now goes directly to iiu 2006-11-18 00:41:56 +00:00
Jeff Hill
d2404e93a5 socket related data structures should use socket byte swap 2006-11-18 00:41:16 +00:00
Jeff Hill
e9a208a78f remove writeRequest from the interface 2006-11-18 00:33:09 +00:00
Jeff Hill
a8ed82801f byte swap socket data structures with socket lib byte swap 2006-11-18 00:31:48 +00:00
Jeff Hill
f3f56fb2bc o fixed deadlock occurring when access security callback blocks for
unresponsive client
o made data conversion more standalone in the client library
2006-11-18 00:29:04 +00:00
Jeff Hill
a6d8cf0cec use parenthesis during time stamp assign 2006-11-18 00:27:08 +00:00
Jeff Hill
2fdf182a5d socket related data structures should use socket byte swap 2006-11-18 00:25:54 +00:00
Jeff Hill
2988a11e25 moved all arch dependent byte swapping code to this file 2006-11-18 00:25:04 +00:00
Jeff Hill
4195457cdd base types on std C if recent dialect is available 2006-11-18 00:24:29 +00:00
Jeff Hill
4aa661f418 added warning 2006-11-18 00:16:33 +00:00
Jeff Hill
e03effe257 C style comments for C compilers 2006-11-18 00:14:41 +00:00
Jeff Hill
8a255f913e byte swap port number (even if it is zero) 2006-11-18 00:13:53 +00:00
Jeff Hill
962e36768e C style comments for C compilers 2006-11-18 00:09:27 +00:00
Andrew Johnson
dde131368d Fixed dbLoadTemplates comments. 2006-11-17 23:22:56 +00:00
Andrew Johnson
3b481d69c2 'use strict' stuff from Nick Rees, plus some cleanup. 2006-11-17 22:53:03 +00:00
Andrew Johnson
6f361280c3 Cosmetic. 2006-11-17 22:45:50 +00:00
Andrew Johnson
0f75477dfa Copyright header. 2006-11-17 22:45:23 +00:00
Janet B. Anderson
e68859beee Set ARCH_freebsd to freebsd-x86_64 and ARCH_hp700 to hpux-parisc. 2006-11-17 22:31:54 +00:00
Janet B. Anderson
83569ffcbc Updates for R3.14.9. 2006-11-17 22:27:27 +00:00
Janet B. Anderson
533b4696ea Initial version. 2006-11-17 22:26:44 +00:00
Andrew Johnson
e1e6ae787d Ok, so we should allow / and \ in bareword... 2006-11-17 22:18:35 +00:00
Andrew Johnson
bc9fab6417 Removed a whole load of unnecessary characters from bareword, which now
matches the dbStaticLib parser's definition.
2006-11-17 22:04:37 +00:00
Janet B. Anderson
291e5b89cf Set HOST_OPT = NO. 2006-11-17 22:01:09 +00:00
Janet B. Anderson
7ee4842463 Initial version. 2006-11-17 22:00:03 +00:00
Janet B. Anderson
0f3461a808 Changed test to runtests. 2006-11-17 21:58:06 +00:00
Andrew Johnson
1ad998c0d6 Oops. 2006-11-17 20:26:56 +00:00
Andrew Johnson
0f200c25c8 dbLoadTemplate. 2006-11-17 20:26:25 +00:00
Andrew Johnson
c3e3f6be37 Added two example database substitutions files and converted the example st.cmd
files to use these instead of repeated dbLoadRecords commands.
2006-11-17 19:36:17 +00:00
Andrew Johnson
a2739882f2 Fixed lex & yacc parsers for dbLoadTemplate() - this is now stricter in what
it will accept, but any rejected characters weren't legal before anyway.
2006-11-17 17:06:52 +00:00
W. Eric Norum
b7bad20900 Don't need action for characters which are silently consumed. 2006-11-17 14:28:13 +00:00
W. Eric Norum
34316144bd Clean up several problems with lexical analyzer. 2006-11-17 14:24:45 +00:00
Janet B. Anderson
207171d336 Made vxWorks.h include depend on VXWORKS_VERSION. 2006-11-16 22:44:34 +00:00
Janet B. Anderson
ae4199eb82 test is now .PHONY. 2006-11-16 22:27:48 +00:00
Janet B. Anderson
1dfdf98f87 Added the test rule for the perl Test::Harness expect test programs. 2006-11-16 22:26:24 +00:00
Janet B. Anderson
6217ec86af Added perl test rule. 2006-11-16 22:17:51 +00:00
Janet B. Anderson
cfefdbf067 Moved test rule to RULES_BUILD. 2006-11-16 22:15:51 +00:00
Janet B. Anderson
60c8cbbb7b Use new TESTSCRIPTS definition. 2006-11-16 21:40:42 +00:00
Janet B. Anderson
ada4b680b2 Added TESTSCRIPT definitions 2006-11-16 21:35:50 +00:00
Janet B. Anderson
b6d618cf5d Added test script, TESTSCRIPT, rules. 2006-11-16 21:34:56 +00:00
Andrew Johnson
1995c7cd5e Escaped characters. 2006-11-16 20:36:13 +00:00
Andrew Johnson
ecac0269dd Stop "warning: `id' defined but not used" messages from gcc -- use a char[]
instead of a char* and they go away!
2006-11-16 19:32:13 +00:00
Andrew Johnson
27fcfac8b8 Use the same TRUE/FALSE test in the dump routines as in the actual rule
evaluation, in case the results are different.
2006-11-16 17:26:38 +00:00
Ralph Lange
ad7f71d41c DST changes for 2007 2006-11-16 16:12:53 +00:00
Andrew Johnson
a4948d15fd Fix to Mantis #250, support escaped characters in record field values. 2006-11-15 23:33:31 +00:00
Janet B. Anderson
6cbcb67e56 Initial version. 2006-11-15 22:41:39 +00:00
Janet B. Anderson
e48d957906 Initail version. 2006-11-15 22:08:22 +00:00
Andrew Johnson
ad1f8f9925 Added round-trip testing of char escapes. 2006-11-15 20:14:46 +00:00
Janet B. Anderson
6911c54755 Changed -Xc to -Xa. Needed for solaris 10 builds. 2006-11-15 19:26:18 +00:00
W. Eric Norum
c89bfe8cf1 Back out name change since RTEMS will not change until the next RTEMS release. 2006-11-15 16:13:52 +00:00
Andrew Johnson
31547e98f5 Patch from Diamond; App names may include chars that are not
valid in a C identifier, such as '-', but we use the App name
in the <name>_registerRecordDeviceDriver routine name.
This patch replaces all such invalid chars with '_'.
2006-11-14 22:14:53 +00:00
Janet B. Anderson
4ad9f05421 Added OP_SYS_LDLIBS definition for solaris 10. 2006-11-14 20:18:26 +00:00
Andrew Johnson
2998cff567 Configuration files for FreeBSD, from Artem Kazakov <kazakov@gmail.com> 2006-11-14 19:40:47 +00:00
Andrew Johnson
20ede98a35 Make .t files work with prove, where $cwd may be a parent directory.
Won't work if you give prove an absolute path to the .t file though...
2006-11-14 17:42:20 +00:00
Andrew Johnson
e661027615 Fixed printing calc expressions with % chars in them. 2006-11-14 17:29:27 +00:00
Andrew Johnson
d58e5e2a77 Revised old message about thread stack sizes. 2006-11-14 16:20:16 +00:00
Andrew Johnson
cbedb32d50 Added a .db file with a single record $(IOC):exit.
Set the .A field to the exit status you want the softIoc to return.
2006-11-13 21:45:40 +00:00
Andrew Johnson
7b7bdb82a6 libCom/test, Breakpoints, vxWorks 6, postFix/calcPerform, calc/calcout/asLib,
recGblAlarmHook, raw simulation mode.
2006-11-13 21:32:06 +00:00
Andrew Johnson
fc0fd6ec0d Removed old comment. 2006-11-13 21:04:54 +00:00
Andrew Johnson
343efa2028 Cosmetic changes. 2006-11-13 20:40:00 +00:00
Andrew Johnson
4ca2bc86e5 Changed configuration for vxWorks 6.x; now uses the same files as vx 5.x.
Removed the vxWorks6-mvXXXX targets, use vxWorks-ppc604_long or similar.
2006-11-13 20:31:07 +00:00
Andrew Johnson
e66768314f Converted to use epicsUntiTest.h. 2006-11-13 20:21:05 +00:00
Andrew Johnson
2c23952b9c Removed Main.c file, converted to use testMain.h and epicsUnitTest.h. 2006-11-10 23:52:50 +00:00
Andrew Johnson
db0d1f1156 TESTPROD_LIBS doesn't work, use PROD_LIBS instead. 2006-11-10 23:09:26 +00:00
Andrew Johnson
52b7171576 Moved testMain.h into libCom/misc, since db/test is built before libCom/test. 2006-11-10 22:43:04 +00:00
Andrew Johnson
de29cb834f Moved timing measurement of epicsThreadPrivateGet() to epicsThreadPerform.cpp 2006-11-10 21:43:16 +00:00
Andrew Johnson
242a7b9027 Fixed bug in posix implementation of osdThreadOnce and added assertion
to the other implementations that will fire in the one case the Posix
code can't cope with.
2006-11-10 20:19:34 +00:00
Andrew Johnson
62963c7d5d Fixes for make test if '.' is not in $PATH. 2006-11-10 16:32:26 +00:00
Andrew Johnson
6c19051727 Major reorganization:
Removed all Main.cpp files, use the macro in testMain.h instead and
defaulted all argc/argv parameters.
Converted all real test programs to use epicsUnitTest.h.
Moved performance measurements from epicsThreadTest to epicsThreadPerform.
Moved epicsOkToBlockTest tests into epicsThreadTest.
On a host arch,  make test  inside the O.arch directory runs all tests.
2006-11-09 22:38:41 +00:00
Andrew Johnson
d8b9856252 Lock around testDiag(), so multiple threads don't mix output. 2006-11-09 22:28:33 +00:00
W. Eric Norum
6536905f85 Add universal binary support for OS X. 2006-11-09 14:50:20 +00:00
W. Eric Norum
8c8b77d767 Add example CONFIG_SITE files. 2006-11-09 14:47:59 +00:00
W. Eric Norum
e91873e3f6 Name change in RTEMS release. 2006-11-09 01:03:42 +00:00
Andrew Johnson
927951ec18 Added errlogInit2() command. 2006-11-08 22:16:51 +00:00
Andrew Johnson
d7d3bf4a13 Added an errlogInit2() routine to allow an enlarged maximum message size to be
specified at initialization time.
2006-11-08 22:14:21 +00:00
Andrew Johnson
23a8c76db2 Removed unused header file. 2006-11-07 16:45:07 +00:00
Andrew Johnson
dac306887d Changed many of the char* arguments to printf-style varargs. 2006-11-07 15:35:14 +00:00
Andrew Johnson
333c97ee23 Does anybody know what this was ever used for? 2006-11-03 17:32:29 +00:00
Jeff Hill
2d136ebc29 fixed manfest was created for .exe during static build 2006-11-02 19:44:58 +00:00
Andrew Johnson
eca624545b Added epicsMath.h include. 2006-11-02 16:10:49 +00:00
Andrew Johnson
5d62cd2b5b Cleanup unused var's. 2006-10-31 20:41:59 +00:00
Andrew Johnson
0563bebee0 Removed definition of NULL. 2006-10-31 20:37:34 +00:00
W. Eric Norum
39a8d90553 Let epicsExitTest work on systems with strict priority scheduling. 2006-10-27 16:32:40 +00:00
W. Eric Norum
f046ff86be Exit properly. 2006-10-27 16:10:34 +00:00
W. Eric Norum
fd81d5f7ca Add epicsExit test.
Clean up some typos.
2006-10-27 15:43:49 +00:00
W. Eric Norum
8f5c1bb7a3 Add test harness for RTEMS. 2006-10-27 15:36:26 +00:00
Andrew Johnson
6c10ea0ad4 Modified diagnostic about macLib warnings to clarify. 2006-10-27 15:01:34 +00:00
Andrew Johnson
a1e28f3dec Fixed problem not resetting test count properly. 2006-10-26 22:21:08 +00:00
Andrew Johnson
20d6352d66 Solaris strtod() doesn't accept "Inf" or "Infinity". 2006-10-26 21:19:32 +00:00
Andrew Johnson
5a561ca613 Make epicsStrtod() parse the full "Infinity" and not stop after "Inf". 2006-10-26 21:18:05 +00:00
W. Eric Norum
5ee8b58411 Don't test 0-length buffer case -- semantics differ for C99/Single-Unix. 2006-10-26 20:51:56 +00:00
W. Eric Norum
54ad02986b Add checks that redirection worked -- handy for systems like RTEMS
where the file exists only in a in-memory filesystem.
2006-10-26 20:07:24 +00:00
Andrew Johnson
5dd24b7ad2 Permit multiple test programs to be run sequentially in the same process
(for RTEMS and vxWorks).
2006-10-26 19:28:30 +00:00
W. Eric Norum
594a28d221 Don't leave dandling tasks. 2006-10-26 19:08:58 +00:00
W. Eric Norum
a16bc712d8 Allow calls from C test harnesses. 2006-10-26 18:10:34 +00:00
Andrew Johnson
c2755088e6 Cleanup. 2006-10-26 17:47:47 +00:00
W. Eric Norum
8264714ea7 Improve message. 2006-10-26 17:42:02 +00:00
Andrew Johnson
7dc2eec5aa Permit breakpoint tables to run any direction as long as the slope doesn't
change sign. Reduced memory requirement by making the table a contiguous
array rather than an array of pointers to intervals. Improved error reporting.
2006-10-26 16:05:23 +00:00
Andrew Johnson
5c7fa0e3be Modified comments. 2006-10-26 15:34:45 +00:00
Jeff Hill
b75bdb1930 fixed wrong app type used when client is acknowledging an alarm
(slightly revised to also deal with arrays although they are technically
invalid when acking an alarm)
2006-10-04 20:46:11 +00:00
Jeff Hill
394222ac72 fixed wrong app type used when client is acknowledging an alarm
(slightly revised to use primitive type of request if writing to other than
gddAppType_value)
2006-10-04 18:49:29 +00:00
Andrew Johnson
e98b305246 Fix up calc and calcout record and associated code to use the new features
of postfix() and calcPerform().
2006-10-03 20:22:23 +00:00
Andrew Johnson
3725609bc8 Cleanup, added recGblAlarmHook pointer. 2006-10-03 16:05:21 +00:00
Andrew Johnson
e4a80f2350 Cleanup, added workaround text. 2006-10-03 15:36:51 +00:00
Andrew Johnson
eeac94ca3b Fix errors from MS compiler, which overloads pow() in C++. 2006-10-02 18:01:44 +00:00
Jeff Hill
7001736104 fixed wrong app type used when client is acknowledging an alarm 2006-10-02 15:53:52 +00:00
Janet B. Anderson
ad55de7aa4 Modified UnixPath and epics_base definitio for ActiveState perl. 2006-10-02 14:18:47 +00:00
Janet B. Anderson
3c9b4d761e Modified UnixPath for ActiveState perl. 2006-10-02 14:17:41 +00:00
Andrew Johnson
2d96451345 dbpr.TIME field. 2006-09-26 15:10:20 +00:00
Andrew Johnson
4bc1aabc0f TIME interest level changed from 4 => 2, now that dbpr displays it nicely. 2006-09-26 15:08:43 +00:00
Andrew Johnson
2c914b5183 Make dbpr output for TIME field human-readable (Mantis #270). 2006-09-26 14:56:53 +00:00
Janet B. Anderson
f0f6716352 Changed rules so that % rules only have 1 dependancy. 2006-09-25 19:09:13 +00:00
Ralph Lange
61600b730a Fix for skipping over the first ifreq list element, += ifreqSize wrapper function. 2006-09-21 20:28:55 +00:00
Ralph Lange
54c09890dd Minor fix in printf string. 2006-09-20 14:24:44 +00:00
Ralph Lange
e01a41c418 Fix in the new code (suggested by Eric Norum). 2006-09-20 14:10:03 +00:00
Ralph Lange
db3ba46ab0 += RTEMS on ARM 2006-09-19 16:50:33 +00:00
Andrew Johnson
67ff3dfb6a Comments and list of architectures. 2006-09-19 16:32:12 +00:00
Ralph Lange
952731fdd9 += Change for arm. == This should be BSP dependent, not CPU dependent! == 2006-09-19 16:18:26 +00:00
Ralph Lange
178f8e9008 Problem fixed that was found on ARM: ifreq buffer must always be word-aligned when passed to kernel functions. 2006-09-19 16:13:34 +00:00
Ralph Lange
622f3333e0 Get host name using gethostname() after network is init'd. 2006-09-19 15:49:19 +00:00
Ralph Lange
e768a7b7c6 += changes for arm (missing RTC) == Needs Review == 2006-09-19 15:46:13 +00:00
Jeff Hill
ca95134827 added missing include 2006-09-13 21:54:13 +00:00
Jeff Hill
bbd210d626 fixed missing shutdown for log client thread 2006-09-12 20:47:04 +00:00
W. Eric Norum
641bbb29a0 Don't use C++ comments in C code. 2006-09-12 16:03:13 +00:00
Jeff Hill
a1a8b1a7e7 fix for mantis 269 2006-09-12 00:05:05 +00:00
Andrew Johnson
e44add07df Added iocLogShow command, and fixed a problem in the eltc command. 2006-09-11 15:53:44 +00:00
Andrew Johnson
d359e6629d Permit any IOC name as long as it has 'ioc' in it somewhere.
This matches the current behavior of the wildcard in iocBoot/Makefile
2006-07-25 18:14:21 +00:00
Andrew Johnson
26938a98ed Indentation and code style changes only. 2006-07-13 20:01:33 +00:00
W. Eric Norum
2db98a08fe Add function prototype with Windows decorations. 2006-07-10 18:17:23 +00:00
W. Eric Norum
b874c0afaa Extensions can increase context-switch time, so use as few as possible. 2006-06-30 19:32:23 +00:00
W. Eric Norum
7dcd682f7d Force panic if application-supplied routine returns a non-zero value. 2006-06-29 20:07:10 +00:00
Jeff Hill
b3ff995884 fixed mantis 266
epicsTime <=> aitTimeStamp conversions dont work on 64 bit hosts
2006-06-29 15:28:36 +00:00
W. Eric Norum
eff6f305c8 Add RTEMS initialization hooks. 2006-06-29 15:22:53 +00:00
W. Eric Norum
3d06949492 Clean up OS X universal binary notes. 2006-06-25 16:39:16 +00:00
W. Eric Norum
61239a7be6 Use more descriptive name. 2006-06-25 16:35:09 +00:00
cvs2svn
d6deb6920b This commit was manufactured by cvs2svn to create branch 'B3.14'. 2006-06-25 16:34:52 +00:00
W. Eric Norum
b64d58145c Add RTEMS change. 2006-06-25 15:05:04 +00:00
Jeff Hill
ee7c2ed829 fixed epicsTime <=> aitTimeStamp conversions dont work on 64 bit hosts 2006-06-22 00:20:08 +00:00
Andrew Johnson
70a15c335d munch.pl for MIPS. 2006-06-20 17:07:23 +00:00
Andrew Johnson
7b8c42ec38 epicsUnitTest support and -include in configure/RELEASE files. 2006-06-16 19:30:31 +00:00
Andrew Johnson
b2012ebf80 Don't print results if no tests! 2006-06-16 19:27:36 +00:00
Andrew Johnson
82513dfcc6 Support "-include" syntax in configure/RELEASE* files 2006-06-16 19:24:15 +00:00
Ralph Lange
402d22eac6 Patches for max array size determination as suggested by Malcolm Waters (Diamond). 2006-06-07 07:24:19 +00:00
Ralph Lange
2bed5dd8bf Fixed comment. 2006-06-07 07:20:01 +00:00
Jeff Hill
0e4f45dac5 fixed mantis 260 2006-06-06 23:09:25 +00:00
Jeff Hill
679d754891 fix for mantis 258 2006-06-06 22:57:01 +00:00
Jeff Hill
ad093ea6a2 fix for mantis 258 2006-06-06 22:44:33 +00:00
Jeff Hill
a3e0f538f7 ipAddrToAsciiTransactionPrivate free list is __not__ locked externally
so the epicsMutexNOOP non-default template parameter causes
the free list to not be locked. The free list was changed to embed a
lock/unlock around all allocate and deallocate requests.
2006-05-22 22:49:06 +00:00
Andrew Johnson
73e3411beb Fixed off-by-one error in dbFindField(). 2006-05-12 15:34:04 +00:00
Andrew Johnson
bf45ed3869 Major reorganization and Perl cleanup:
Added support for MIPS; ignore duplicate symbols; run destructors in
reverse order; added comments to output source file.
2006-04-28 17:46:51 +00:00
Janet B. Anderson
d432014104 Fixed typo if commandline library definition. 2006-04-24 18:00:16 +00:00
Andrew Johnson
6a830abc9d Added WARN setting to CHECK_RELEASE. 2006-04-21 15:23:48 +00:00
Andrew Johnson
5b54b481e8 Added WARN setting for CHECK_RELEASE. 2006-04-21 15:19:25 +00:00
Janet B. Anderson
e1ca1a907a Modified comment. 2006-04-20 14:57:26 +00:00
Janet B. Anderson
cad78cca41 Added include for RELEASE.<epics_host_arch>.Common 2006-04-20 14:54:51 +00:00
W. Eric Norum
cd0a488fad New host. 2006-04-08 16:36:46 +00:00
W. Eric Norum
0aa4a34c2a Need a few more functions declared. 2006-04-07 20:59:48 +00:00
W. Eric Norum
fa34d5c8f3 Need isnan() declaration now to track changes in other header files. 2006-04-07 20:49:43 +00:00
W. Eric Norum
d077e5cbf5 Provide 'pure-perl' implementation for OS X. 2006-04-07 16:03:56 +00:00
W. Eric Norum
d20b063cb2 Add Intel support for OS X. 2006-04-06 00:57:59 +00:00
Janet B. Anderson
d7e9b9738e Changes for darwin hosts. 2006-04-05 18:34:20 +00:00
Andrew Johnson
1faaada240 Clean up warnings. 2006-04-03 21:49:49 +00:00
Andrew Johnson
6ca51a8f52 Improve error messages for CALC expressions. 2006-04-03 21:47:34 +00:00
Andrew Johnson
abfd3f0186 Improve error checking and messages from AS file parser. 2006-04-03 21:41:11 +00:00
Andrew Johnson
d7016a007c Oops, missed a few tests I'd added. 2006-03-30 20:46:20 +00:00
Andrew Johnson
4d67f3596a Converted some of the test routines to use the new epicsUnitTest facility. 2006-03-30 20:13:25 +00:00
Andrew Johnson
97a5aa16a0 Major update, code reorganization and enhancement. 2006-03-30 20:07:06 +00:00
Andrew Johnson
e9e4e34fdf Build epicsUnitTest facilitites.
Also make epicsVersion depend on CONFIG_SITE file.
2006-03-30 20:04:48 +00:00
Andrew Johnson
62dee96808 Added Test Anything Protocol unit test library.
See Perl documentation for Test::Harness and Test::More for format details.
2006-03-30 19:59:46 +00:00
Andrew Johnson
8496fae43c Ensure finite() is defined. 2006-03-30 19:54:25 +00:00
Andrew Johnson
ffc6368931 Print thread names when reporting suspensions. 2006-03-30 19:52:35 +00:00
Andrew Johnson
3caf5e10c4 Include stdio.h 2006-03-30 19:50:31 +00:00
Andrew Johnson
93bab7d518 Correct epicsMin/epicsMax behaviour for floating-point NaN arguments. 2006-03-30 19:48:12 +00:00
Andrew Johnson
3162d19551 Make cantProceed() take printf-style message args. 2006-03-30 19:42:36 +00:00
Janet B. Anderson
3431eb4a08 Modified comments. 2006-03-30 18:40:46 +00:00
Janet B. Anderson
ef3e27625c Added include for host specific RELEASE file. 2006-03-30 17:25:13 +00:00
Janet B. Anderson
055c451ab9 Modified comments. 2006-03-30 17:24:18 +00:00
Janet B. Anderson
5c8b48e8f0 Added includes for host specific RELEASE and CONFIG_SITE files. 2006-03-30 16:59:06 +00:00
Janet B. Anderson
30b0520b78 Added comments about files for Host/target specific settings. 2006-03-30 16:57:32 +00:00
Janet B. Anderson
2ae9d6ac55 Removed a comment line. 2006-03-30 16:44:55 +00:00
Janet B. Anderson
12f8a7bf2a Added Id line. 2006-03-29 21:59:14 +00:00
Janet B. Anderson
e477be1e94 Modified comment line. 2006-03-29 21:56:39 +00:00
Janet B. Anderson
85399c435c Added ifdef T_A around T_A includes. 2006-03-29 21:26:21 +00:00
Janet B. Anderson
6bb604313d Added ifdef $(T_A) around T_A includes. 2006-03-29 21:23:57 +00:00
Janet B. Anderson
6b43fe312e Allow target specific macro definition overrides. 2006-03-29 21:18:12 +00:00
Andrew Johnson
8823924561 Oops, currected *Strdup routines. 2006-03-29 20:53:54 +00:00
Andrew Johnson
daf8f033fa Use new xxStrdup() functions.
Cleanup compiler warnings due to our using 8-bit lexers.
2006-03-29 19:46:05 +00:00
Andrew Johnson
cd3806e189 Added an asStrdup() routine. 2006-03-29 19:37:22 +00:00
Andrew Johnson
976febd1ac Added dbmfStrdup() function. 2006-03-29 19:33:50 +00:00
Janet B. Anderson
d29a589bff Renamed CONFIG_EXTENSION to CONFIG_SITE. 2006-03-29 17:09:24 +00:00
Janet B. Anderson
c0a6adb516 Renamed CONFIG_EXTENSIONS to CONFIG_SITE. Moved includes to CONFIG.
Moved INSTALL_LOCATION definition.
2006-03-29 17:08:23 +00:00
Janet B. Anderson
8774f97acd Allow ioc application to be built with older version of base. 2006-03-29 16:49:06 +00:00
Janet B. Anderson
e1018e3edf Removed accidently committed INSTALL_LOCATION definition. 2006-03-29 16:47:00 +00:00
Janet B. Anderson
ae8b8295a6 Renamed CONFIG_APP to CONFIG_SITE. 2006-03-28 21:35:53 +00:00
Janet B. Anderson
3ee2785894 Renamed CONFIG_APP to CONFIG_SITE. Moved includes to CONFIG.
Moved INSTALL_LOCATION and CONFIG definitions.
2006-03-28 21:35:08 +00:00
Janet B. Anderson
d43342f06f Moved definitions INSTALL_LOCATION and CONFIG. 2006-03-28 21:31:58 +00:00
Andrew Johnson
e7f78a7d69 Fixed problem with previously generated scan.c which was not case-independent.
Regenerated scan.c, and added instructions for later maintainers.
2006-03-28 00:11:51 +00:00
W. Eric Norum
51018ac066 Add support for RTEMS tasks with string names. 2006-03-27 22:21:18 +00:00
W. Eric Norum
f648ab5f09 Ensure that RTEMS-style names are properly terminated. 2006-03-27 20:47:05 +00:00
W. Eric Norum
db49484d32 Typo. 2006-03-27 16:32:35 +00:00
W. Eric Norum
097e551f43 Add note about RTEMS user extensions. 2006-03-27 16:32:14 +00:00
W. Eric Norum
fc2e1fd651 Add infrastructure for spy command. 2006-03-27 16:30:27 +00:00
Jeff Hill
cf231b5af3 fixed repeated sentance 2006-03-27 15:47:49 +00:00
Andrew Johnson
4ee5d5130e Oops, EPICS_CA_BEACON_PORT was wrong... 2006-03-24 20:53:25 +00:00
Andrew Johnson
8e9e846c34 Build the S99 scripts on Linux.
Modified the scripts and build process to work on Linux.
2006-03-24 20:29:27 +00:00
Jeff Hill
f4068d6a49 upgraded tests for mantis 245 2006-03-21 00:59:25 +00:00
Jeff Hill
a49961afe6 I fixed the following issues:
1) The epicsTime constructor does not throw an exception when an invalid epicsTimeStamp is passed to it.
2) The "epicsTime::operator epicsTimeStamp ()" conversion operator should throw an exception instead of assert failing when it discovers that the internal state of the time stamp is invalid.
3) William Lupton's epicsTime::strftime doesnt add .OVF if the nano-seconds field is invalid. Kay's original issue.
4) William Lupton's epicsTime::strftime has a buffer overrun vulnerability.
5) Certain C interfaces to epicsTime were not bracketed by try catch blocks.
2006-03-21 00:58:43 +00:00
Janet B. Anderson
88e7ae91b0 Removed -Wtraditional option. 2006-03-20 21:29:07 +00:00
Janet B. Anderson
233d65ea0d Install config/tools/* into INSTALL_LOCATION/config/tools not bin/(arch>. 2006-03-20 19:18:35 +00:00
Janet B. Anderson
0a5f63db7b Use the INSTALL_LOCATION setting from a configure/RELEASE file. 2006-03-20 17:57:41 +00:00
Jeff Hill
f83e11167d accomodate visual c++ 6 2006-03-20 15:53:25 +00:00
Janet B. Anderson
034936e8a9 Added files and made modifications for R3.13 Makefile builds of extensions. 2006-03-16 17:29:00 +00:00
Jeff Hill
99d1b3dd04 improved string hash table distribution 2006-03-15 19:02:15 +00:00
Janet B. Anderson
b1b5bbab0e Need two MT commands, one for dll files and one for exe files. 2006-03-09 22:30:19 +00:00
Janet B. Anderson
d208fdf7cf Need two MT commands, one for dll filess and one for exe files. 2006-03-09 22:28:22 +00:00
Janet B. Anderson
7e841f73fe Added command to embed .manifest file into libs and prods. 2006-03-09 17:20:08 +00:00
Janet B. Anderson
45fae9aeac Added command to embed a .manifest file into a library or product target. 2006-03-09 17:18:37 +00:00
Janet B. Anderson
c035a50677 Initial version. 2006-03-09 17:09:56 +00:00
Janet B. Anderson
319ab854d7 Added command to embed .manifest file. Removed install of .manifest file. 2006-03-09 17:08:48 +00:00
Janet B. Anderson
0fb9b9feda Initial version. 2006-03-09 17:04:38 +00:00
Janet B. Anderson
13ce4feb1b Added command to embed a .manifest file into a library or product target. 2006-03-09 17:02:20 +00:00
Janet B. Anderson
1ea5b179d5 Added LIB_PREFIX SHRLIB_PREFIX defs. Fixed CONFORM_CXXFLAGS def. 2006-03-03 22:06:57 +00:00
Janet B. Anderson
7d6f60121a Changed LIB_PREFIX to SHRLIB_PREFIX. 2006-03-03 17:57:27 +00:00
Janet B. Anderson
ea23dcabb9 Initial version. 2006-03-01 19:55:21 +00:00
Andrew Johnson
df07bfc9e9 Lower-case operands a thru l are never used, the infix buffer was already
converted to upper-case.
2006-03-01 19:55:13 +00:00
Janet B. Anderson
c542b4f4d1 Initial version. 2006-03-01 19:44:55 +00:00
Janet B. Anderson
edd2499824 Initial version. 2006-03-01 15:56:20 +00:00
Andrew Johnson
a4a3ddfcdf e_flex DOS line endings. 2006-02-28 23:35:56 +00:00
Andrew Johnson
14ad2c5055 Modified scan.l.DISTRIB to accept DOS line-endings. Used itself to convert
this into the scan.c file.  The initscan.c file is not used at all.
2006-02-28 23:35:22 +00:00
Janet B. Anderson
6e2049d678 Added override comment. 2006-02-23 20:04:22 +00:00
Andrew Johnson
3fb500856d Universal devLib stuff. 2006-02-17 23:30:04 +00:00
Andrew Johnson
a57f10fb90 Build devLib on all archs now there's a default devLibOSD.c file. 2006-02-17 23:00:30 +00:00
Jeff Hill
0f4acafeae fixed mantis 239 2006-02-17 22:54:49 +00:00
Andrew Johnson
7b383a18b4 Make devLib available from other OSs iff they provide the right table in an
external support application.
2006-02-17 22:51:26 +00:00
Jeff Hill
b55729875d fixed mantis 239 2006-02-17 22:33:54 +00:00
Andrew Johnson
a5b4cb0766 PACT must be set during FLNK. 2006-02-15 22:25:24 +00:00
Jeff Hill
dd63c3177d improved test 2006-02-13 16:33:59 +00:00
Jeff Hill
ceb11f1fb4 fix for a potential race in ca_context_destroy 2006-02-13 16:33:46 +00:00
Ralph Lange
85eacf584c Integrating change by Malcolm Waters: fix for "-c -w 0" hanging forever 2006-02-06 16:08:04 +00:00
Ralph Lange
d6b6955903 Integrating change by Malcolm Waters: += put_callback option - heavily based on caget 2006-02-06 16:04:55 +00:00
W. Eric Norum
4074b45a30 Add epicsThreadResume to IOCSH. 2006-02-03 19:36:09 +00:00
Andrew Johnson
ba9499c786 Better solution to zero-sized alloc requests. 2006-01-31 20:44:55 +00:00
W. Eric Norum
dbac42746c [cm]allocMustSucceed() now accept values of 0 for their size and count arguments and can return a NULL in these cases. 2006-01-31 14:54:19 +00:00
Janet B. Anderson
7fe5335da7 Fixed CONFORM_CXXFLAGS_NORMAL definition. 2006-01-30 15:56:10 +00:00
Janet B. Anderson
6347d8f065 Fixed typo in CMPLR_PREFIX definition. 2006-01-30 15:21:34 +00:00
Janet B. Anderson
9516692138 Modified comments for > win32-x86-cygwin and linuxRT-mvme2100. 2006-01-26 16:45:46 +00:00
W. Eric Norum
a0dd3c1a9d Add note about OS X changes. 2006-01-26 03:38:28 +00:00
W. Eric Norum
d4abe3a8af Other sites aren't running RTEMS. 2006-01-25 21:18:53 +00:00
W. Eric Norum
3fee378da2 Reorganized OS X support. 2006-01-25 21:18:04 +00:00
W. Eric Norum
d6ae543a1e Reorganize OS X configuration files.
First steps towards Universal binaries.
2006-01-25 21:17:15 +00:00
Andrew Johnson
17c437048f include CONFIG_BASE_VERSION *after* CONFIG_SITE. 2006-01-20 20:22:55 +00:00
Janet B. Anderson
2942594c37 Set EPICS_CVS_SNAPSHOT to -CVS. 2006-01-06 16:00:21 +00:00
Janet B. Anderson
e9b49d233b R3.14.8.2 2006-01-06 15:55:13 +00:00
Andrew Johnson
16e0409813 epicsStrtod fix. 2006-01-05 21:38:14 +00:00
Andrew Johnson
10c03d3e19 We took epicsShareAPI out of Win32 already, which was the only arch that
might have needed it!
2006-01-05 21:12:32 +00:00
Andrew Johnson
7aa6a2ca98 Better fix to the epicsStrtod problem: Don't compile our function if epicsStrtod
is a macro; that way you can't set a breakpoint on it which would never fire.
2006-01-05 21:08:02 +00:00
Ken Evans
705d8ccf98 Added _CRT_NONSTDC_NO_DEPRECATE switch to disable MSVC 8 Posix
deprecated warnings.
2006-01-04 21:27:54 +00:00
Ken Evans
ae27b2ad0e Changed /GX to /EHsc and defined _CRT_SECURE_NO_DEPRECATE for MSVC 8. 2006-01-04 18:11:44 +00:00
W. Eric Norum
8d3dc9eb33 Avoid infinite recursion on systems with 'working' strtod() functions. 2005-12-26 18:32:43 +00:00
Janet B. Anderson
1e821d866e Set EPICS_CVS_SNAPSHOT to -CVS. 2005-12-20 15:25:07 +00:00
Janet B. Anderson
03bf89c7c2 R3.14.8.1 2005-12-20 14:59:00 +00:00
Janet B. Anderson
b01b09240c Added deprecated EPICS_UPDATE_LEVEL.. 2005-12-20 14:56:46 +00:00
W. Eric Norum
e0887d197e Get rid of a bunch of conditional compile statements. 2005-12-19 22:27:47 +00:00
Andrew Johnson
3191b9b404 Notes about the version number changes. 2005-12-19 21:57:57 +00:00
Janet B. Anderson
147e21b71f Changed EPICS_UPDATE_LEVEL to EPICS_PATCH_LEVEL. 2005-12-19 21:42:40 +00:00
Janet B. Anderson
c57beaad68 Win32 changes. 2005-12-19 21:10:30 +00:00
Janet B. Anderson
45685c52d2 Changed EPICS_UPDATE_LEVEL to EPICS_PATCH_LEVEL. 2005-12-19 21:09:44 +00:00
Janet B. Anderson
00d8ae7d79 Updated version number description. 2005-12-19 20:28:00 +00:00
Andrew Johnson
d9184abd62 Version numbering system change. 2005-12-16 16:47:52 +00:00
Andrew Johnson
66fbc8b27c R3.14.8.1 changes. 2005-12-15 19:39:03 +00:00
W. Eric Norum
a65943481d Improved epicsThreadGetName() so that it works for all threads, not just those
created by epicsThreadCreate().
2005-12-15 16:49:42 +00:00
Janet B. Anderson
09ea15376f Changed SCRIPT to SCRIPTS in comment. 2005-12-14 15:04:37 +00:00
Marty Kraimer
de797d11e2 fix win32 compiler warnings 2005-12-13 12:57:19 +00:00
Andrew Johnson
6e09e17a23 Moved Marty's latest comments into a "Changes since R3.14.8" section.
Cleaned up some &nbsp; entities that appeared lower down.
2005-12-12 22:19:01 +00:00
Janet B. Anderson
a0e61daaac Removed epicsShareAPI from epicsStrtod. 2005-12-12 21:27:07 +00:00
Janet B. Anderson
5506587d06 Removed epicsShareAPI where not needed. 2005-12-12 21:26:01 +00:00
Andrew Johnson
225f816f0e epicsShare macro fixes from Mark Rivers (copied from the main trunk). 2005-12-12 21:25:17 +00:00
Marty Kraimer
cdda915248 o and x format should have unsigned args 2005-12-12 20:09:02 +00:00
Marty Kraimer
1a1c4dceb0 changes for libCom/misc 2005-12-12 19:55:34 +00:00
Marty Kraimer
b283cb1fcd clean up epicsStdlib 2005-12-12 19:55:11 +00:00
Marty Kraimer
3499fbe51d get rid of epicsShareAPI; epicsStrtok_r is new; clean up epicsStdlib 2005-12-12 19:54:48 +00:00
Jeff Hill
bd14b17c94 fixed send thread blocks trying to destroy the IIU because the
callback lock was taken without using a callback lock manager
2005-12-08 16:23:15 +00:00
344 changed files with 10696 additions and 10083 deletions

View File

@@ -15,7 +15,7 @@ TOP = .
include $(TOP)/configure/CONFIG
ifeq ($(findstring YES,$(COMPAT_313) $(COMPAT_TOOLS_313)),YES)
DIRS += config config/tools
DIRS += config
endif
DIRS += configure src

View File

@@ -96,13 +96,14 @@ ACC_SLIBS_NO=
# Use of /Za would dissable DLL import/export keywords which
# EPICS include/excludes using architecture neutral macros
#
# /GX support C++ exceptions
# /EHsc support C++ exceptions
# /GR generate RTTI information
#
CCC = cl /GX /GR
CCC = cl /EHsc /GR
CCC_NORMAL = $(CCC) /nologo /D__STDC__=0
CCC_STRICT = $(CCC) /nologo /D__STDC__=0
CCC_TEMPL_INST_FLAG =
ARCH_DEP_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
#
# /W<N> use warning level N
@@ -269,3 +270,14 @@ LINK.cc = $(WINLINK) -nologo $(LDFLAGS) -out:$@
# Overrides for CONFIG_COMMON default
POSIX_CPPFLAGS_YES =
#--------------------------------------------------
# UseManifestTool.pl checks MS Visual c++ compiler version number to
# decide whether or not to use the Manifest Tool command to embed the
# linker created .manifest file into a library or product target.
# useManifestTool.pl returns 0(don't use) or 1(use).
#
ifeq ($(shell $(PERL) $(EPICS_BASE_TOOLS)/useManifestTool.pl),1)
MT_DLL_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#2
MT_EXE_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#1
endif

View File

@@ -0,0 +1,13 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
# cygwin-x86 is the new name for cygwin32
-include $(EPICS_BASE)/config/CONFIG.Host.cygwin32

View File

@@ -20,6 +20,17 @@ include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
EXE=.exe
#==========================
#These overrides remove -ansi because -ansi eliminates strdup
GCC_ANSI = $(GCC)
GCC_STRICT = $(GCC) -pedantic
G++_NORMAL = $(G++) -pedantic
G++_STRICT = $(G++) -pedantic
#==========================
#This override will eliminate warnings for old R3.13 extensions
#GCC_WARN_YES =
#==========================
# These are overrides of ANSI and CPLUSPLUS values in CONFIG_SITE
# since OS vendor compilers ACC and CCC are not defined here for cygwin32
@@ -32,7 +43,7 @@ SHARED_LIBRARIES=NO
#OP_SYS_INCLUDES += /usr/local/include/g++
#==========================
ARCH_DEP_CFLAGS = -DCYGWIN32 -U_WIN32
ARCH_DEP_CPPFLAGS = -DCYGWIN32 -U_WIN32
ARCH_DEP_LDLIBS =
OP_SYS_LDLIBS =
@@ -41,7 +52,9 @@ OP_SYS_LDLIBS =
GCC_DEP_CFLAGS = -D_REENTRANT
G++_DEP_CFLAGS = -D_REENTRANT
POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE
#POSIX_SOURCE eliminates select()
#POSIX_CPPFLAGS_YES = -D_POSIX_SOURCE
POSIX_CPPFLAGS_YES = -D_POSIX_THREADS -D_POSIX_TIMERS
# Runtime ldflags
RUNTIME_LIBS =$(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)\

View File

@@ -0,0 +1,14 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG.Host.Darwin
OP_SYS_CFLAGS += "-isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
OP_SYS_LDFLAGS += "-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG.Host.Darwin

View File

@@ -0,0 +1,40 @@
#*************************************************************************
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.freebsd
OS_CLASS = freebsd
ARCH_CLASS = x86_64
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
ARCH_DEP_CPPFLAGS += -D_X86_64_
CODE_CPPFLAGS = -D_REENTRANT
#POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
POSIX_CPPFLAGS = -D_POSIX_THREADS
POSIX_LDLIBS = -lpthread
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
OP_SYS_CPPFLAGS += -Dfreebsd
#OP_SYS_LDLIBS += -lrt
# Set runtime path for shared libraries
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
# Definitions used when COMMANDLINE_LIBRARY is READLINE
LDLIBS_READLINE = -lreadline -lcurses
GNU_LDLIBS_YES = -lgcc_pic

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG.Host.freebsd

View File

@@ -7,18 +7,18 @@
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
#
# $Id$
#
TOP=../..
-include $(EPICS_BASE)/config/CONFIG.Host.Linux
include $(TOP)/configure/CONFIG
ARCH_CLASS = ppc
ifeq ($(findstring YES,$(COMPAT_313) $(COMPAT_TOOLS_313)),YES)
SCRIPTS_HOST += $(subst ../,,$(wildcard ../*.pl))
SCRIPTS_HOST += installEpics
endif
ARCH_DEP_CPPFLAGS += -D_ppc_
include $(TOP)/configure/RULES
GNU_DIR = /usr
GCC = $(GNU_BIN)/gcc
G++ = $(GNU_BIN)/g++
ARCH_DEP_LDLIBS = -lgcc

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG.Host.Linux

View File

@@ -0,0 +1,18 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
# solaris-sparc is the new name for solaris
-include $(EPICS_BASE)/config/CONFIG.Host.solaris
ARCH_DEP_CFLAGS += -xtarget=ultra -xarch=v9
ARCH_DEP_CXXFLAGS += -xtarget=ultra -xarch=v9
ARCH_DEP_LDFLAGS += -xtarget=ultra -xarch=v9

View File

@@ -0,0 +1,18 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
# solaris-sparc is the new name for solaris
-include $(EPICS_BASE)/config/CONFIG.Host.solarisGnu
ARCH_DEP_CFLAGS += -mcpu=v9 -m64
ARCH_DEP_CXXFLAGS += -mcpu=v9 -m64
ARCH_DEP_LDFLAGS += -mcpu=v9 -m64

View File

@@ -0,0 +1,58 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.win32-x86-cygwin
SHARED_LIBRARIES = NO
#ARCH_CLASS = WIN32
ARCH_CLASS = cygwin
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar -rc
ARCMD = $(AR) $@
RANLIB = ranlib -t
ANSI=GCC
CPLUSPLUS=G++
# Dont use -ansi: -ansi eliminates strdup and _tempnam
GCC_ANSI = $(GCC)
GCC_STRICT = $(GCC) -pedantic
G++_NORMAL = $(G++) -pedantic
G++_STRICT = $(G++) -pedantic
# Dont use -fPIC: with -fPIC we get
# "warning: -fPIC ignored for target (all code is position independent) "
GCC_DEP_CFLAGS = -D_REENTRANT
G++_DEP_CFLAGS = -D_REENTRANT
OP_SYS_CPPFLAGS = -mno-cygwin
OP_SYS_CXXFLAGS += -D__cplusplus
OP_SYS_LDFLAGS += -mno-cygwin
# With no-cygwin option:
# compiler defines _X86_ 1
# compiler defines __MSVCRT__ 1
# compiler defines __MINGW32__ 1
# compiler defines __WIN32 1
# compiler defines __WIN32__ 1
# compiler defines _WIN32 1
# compiler defines WIN32 1
# compiler defines WINNT 1
# compiler does not define __unix __unix__ unix
# compiler does not define __CYGWIN__ __CYGWIN32__
ARCH_DEP_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG.Host.WIN32

View File

@@ -0,0 +1,43 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
# This file is maintained by the EPICS community.
# Sites may override these definitions in CONFIG_SITE.Host.win32-x86-mingw
ARCH_CLASS = WIN32
SHARED_LIBRARIES = NO
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG.Host.UnixCommon
AR = ar -rc
ARCMD = $(AR) $@
RANLIB = ranlib -t
ANSI=GCC
CPLUSPLUS=G++
# Compiler defines _X86_ 1
# Compiler defines __MSVCRT__ 1
# Compiler defines __MINGW32__ 1
# Compiler defines __WIN32 1
# Compiler defines __WINNT 1
# Compiler defines __WINNT__ 1
# Compiler defines __WIN32__ 1
# Compiler defines _WIN32 1
# Compiler defines WIN32 1
# Compiler defines WINNT 1
# Compiler does not define __unix __unix__ unix
ARCH_DEP_LDLIBS = -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm

View File

@@ -52,6 +52,9 @@ EPICS_BASE = $(TOP)
# EPICS include config file
include $(EPICS_BASE)/config/CONFIG
-include $(EPICS_BASE)/configure/RELEASE
-include $(EPICS_BASE)/configure/RELEASE.$(EPICS_HOST_ARCH)
ifdef INSTALL_LOCATION_BASE
INSTALL_LOCATION = $(INSTALL_LOCATION_BASE)
endif

View File

@@ -10,24 +10,6 @@
#
# $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 information now comes from configure...
EPICS_VERSION=3
EPICS_REVISION=14
EPICS_MODIFICATION=8
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=0
EPICS_LOCAL_NAME=B
EPICS_LOCAL_VERSION=0
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}.$(EPICS_LOCAL_NAME)$(EPICS_LOCAL_VERSION)"
CVS_DATE="\$$Date$$"
CVS_TAG="\$$Name$$"
BASE_3_14=YES
include $(EPICS_BASE)/configure/CONFIG_BASE_VERSION

View File

@@ -90,7 +90,7 @@ GCC_STRICT = $(GCC) -ansi -pedantic
GCC_TRAD = $(GCC)
GCC_DEP_CFLAGS = -fPIC -D_REENTRANT
GCC_WARN_YES = -Wall -Wtraditional -Wmissing-prototypes -Wstrict-prototypes
GCC_WARN_YES = -Wall -Wmissing-prototypes -Wstrict-prototypes
GCC_WARN_NO = -w
GCC_OPT_YES = -O3
GCC_OPT_NO = -g

View File

@@ -21,8 +21,9 @@ ARCH_solarisNonshared = solaris-sparc-nonshared
ARCH_solaris = solaris-sparc
ARCH_sun4 = sun4-sparc
ARCH_Linux = linux-x86
ARCH_freebsd = freebsd-x86_64
ARCH_WIN32 = win32-x86
ARCH_hp700 = hpux-m68k
ARCH_hp700 = hpux-parisc
ARCH_alpha = osf-alpha
ARCH_Borland = win32-x86-borland
ARCH_cygwin32 = cygwin-x86

View File

@@ -0,0 +1,23 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# CONFIG_HOST_ARCH.cygwin-x86
#
# 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
HOSTEXE=.exe
TORNADO=YES
WIND_HOST_TYPE = x86-win32

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Darwin

View File

@@ -0,0 +1,12 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Darwin

View File

@@ -0,0 +1,14 @@
#*************************************************************************
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
WIND_HOST_TYPE = i386-linux2

View File

@@ -0,0 +1,14 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Linux
WIND_HOST_TYPE = ppc-linux

View File

@@ -0,0 +1,15 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
# linux-x86 is the new name for linux
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Linux
HOST_OPT = NO

View File

@@ -11,3 +11,4 @@
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.solaris
HOST_OPT = NO

View File

@@ -0,0 +1,13 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
# solaris-sparc is the new name for solaris
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.solaris

View File

@@ -0,0 +1,13 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.solarisGnu

View File

@@ -0,0 +1,20 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
# Override values in CONFIG_SITE_HOST_ARCH.win32-x86-cygwin
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
HOSTEXE=.exe
WIND_HOST_TYPE = x86-win32

View File

@@ -0,0 +1,14 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
-include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.WIN32
HOST_OPT = NO

View File

@@ -0,0 +1,29 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
# Override values in CONFIG_SITE_HOST_ARCH.win32-x86-mingw
# Include definitions common to all Unix archs
include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.UnixCommon
EXE=.exe
HOSTEXE=.exe
CP =$(PERL) $(EPICS_BASE_TOOLS)/cp.pl
MV =$(PERL) $(EPICS_BASE_TOOLS)/mv.pl
RM =$(PERL) $(EPICS_BASE_TOOLS)/rm.pl -f
MKDIR=$(PERL) $(EPICS_BASE_TOOLS)/mkdir.pl
RMDIR=$(PERL) $(EPICS_BASE_TOOLS)/rm.pl -rf
CHMOD=echo
ECHO=echo
WIND_HOST_TYPE = x86-win32

View File

@@ -0,0 +1,5 @@
# $Id$
-include $(EPICS_BASE)/config/CONFIG_SITE.Host.Darwin
SHARED_LIBRARIES=NO

View File

@@ -0,0 +1,4 @@
# $Id$
# solaris-sparc is the new name for solaris
-include $(EPICS_BASE)/config/CONFIG_SITE.Host.solaris

View File

@@ -20,6 +20,9 @@ INSTALL_CONFIG = $(INSTALL_LOCATION)/config
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
CONFIGS += $(subst ../,,$(wildcard ../tools/*.pl))
endif
include $(TOP)/configure/RULES

View File

@@ -427,6 +427,7 @@ else
$(PRODNAME): $(PRODNAME_OBJS) $(PRODNAME_RESS)
@$(RM) $@
$(PRODNAME_LINKER) $(PRODNAME_OBJS) $(PRODNAME_RESS) $(LDLIBS)
$(MT_EXE_COMMAND)
endif
endif # ifdef PRODNAME_SRCS
@@ -738,6 +739,7 @@ $(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS) $(LIBNAME_RESS)
else
$(DLL_LINK_LIBNAME) $(SHRLIBNAME): $(LIBOBJS) $(LIBNAME_RESS)
$(LINK.shrlib) $(LIBOBJS) $(DLL_LDLIBS) $(LIBNAME_RESS)
$(MT_DLL_COMMAND)
endif
ifdef BORLANDC

31
config/tools/useManifestTool.pl Executable file
View File

@@ -0,0 +1,31 @@
eval 'exec perl -S -w $0 ${1+"$@"}' # -*- Mode: perl -*-
if 0;
#
# Use MS Visual C++ compiler version number to determine if
# we want to use the Manifest Tool (status=1) or not (status=0)
#
# VC compiler versions >= 14.00 will have status=1
# VC compiler versions 10.00 - 13.10 will have status=0
# EPICS builds with older VC compilers is not supported
#
my $versionString=`cl 2>&1`;
if ($versionString =~ m/Version 14./) {
$status=1;
} elsif ($versionString =~ m/Version 13.10/){
$status=0;
} elsif ($versionString =~ m/Version 13.0/){
$status=0;
} elsif ($versionString =~ m/Version 12./){
$status=0;
} elsif ($versionString =~ m/Version 11./){
$status=0;
} elsif ($versionString =~ m/Version 10./){
$status=0;
} else {
$status=1;
}
print "$status\n";
exit;

View File

@@ -17,12 +17,19 @@
# Common build definitions
#
CONFIG ?= $(TOP)/configure
ifndef EPICS_BASE
EPICS_BASE = $(INSTALL_LOCATION)
CONFIG = $(TOP)/configure
BASE_TOP=YES
else
CONFIG = $(EPICS_BASE)/configure
endif
-include $(CONFIG)/os/CONFIG_COMPAT
-include $(CONFIG)/RELEASE
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).Common
ifdef T_A
-include $(CONFIG)/RELEASE.Common.$(T_A)
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
@@ -33,12 +40,15 @@ include $(CONFIG)/CONFIG_COMMON
# Base-specific build options
#
include $(CONFIG)/CONFIG_BASE
include $(CONFIG)/CONFIG_BASE_VERSION
# Site-specific build options
#
include $(CONFIG)/CONFIG_SITE
# Version numbering
#
include $(CONFIG)/CONFIG_BASE_VERSION
# Host architecture specific definitions
#
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common

View File

@@ -27,7 +27,7 @@ CROSS_INCLUDES = $(addprefix -I,$(GNU_TARGET_INCLUDE_DIR))
CROSS_LDFLAGS = $(addprefix -L,$(GNU_TARGET_LIB_DIR))
CMPLR_PREFIX_CROSS=$(addsuffix -,$(GNU_TARGET))
CMPLR_PREFIX=$(CMPLR_PREFIX_$(BUILD_CLASSS))
CMPLR_PREFIX=$(CMPLR_PREFIX_$(BUILD_CLASS))
# All cross builds use the gnu compiler
include $(CONFIG)/CONFIG.gnuCommon

View File

@@ -51,9 +51,9 @@
# PROD products to build and install
# PROD_HOST products to build and install
# PROD_IOC products to build and install
# TESTPROD products to build and install
# TESTPROD_HOST products to build and install
# TESTPROD_IOC products to build and install
# TESTPROD products to build
# TESTPROD_HOST products to build
# TESTPROD_IOC products to build
# LIBRARY products to build and install
# LIBRARY_HOST products to build and install
# LIBRARY_IOC products to build and install
@@ -62,6 +62,9 @@
# SCRIPTS scripts and install
# SCRIPTS_HOST host system scripts to install
# SCRIPTS_IOC ioc system scripts to install
# TESTSCRIPTS scripts
# TESTSCRIPTS_HOST host system scripts
# TESTSCRIPTS_IOC ioc system scripts
# OBJS object files to build and install
# OBJS_HOST host system object files to build and install
# OBJS_IOC ioc system object files to build and install
@@ -493,6 +496,33 @@ SCRIPTS_HOST+=$(SCRIPTS_HOST_DEFAULT)
endif
endif
#
# concat specific scripts
#
ifneq ($(strip $(TESTSCRIPTS_$(OS_CLASS))),)
TESTSCRIPTS += $(subst -nil-,,$(TESTSCRIPTS_$(OS_CLASS)))
else
ifdef TESTSCRIPTS_DEFAULT
TESTSCRIPTS += $(TESTSCRIPTS_DEFAULT)
endif
endif
ifneq ($(strip $(TESTSCRIPTS_IOC_$(OS_CLASS))),)
TESTSCRIPTS_IOC+=$(subst -nil-,,$(TESTSCRIPTS_IOC_$(OS_CLASS)))
else
ifneq (,$(strip $(TESTSCRIPTS_IOC_DEFAULT)))
TESTSCRIPTS_IOC+=$(TESTSCRIPTS_IOC_DEFAULT)
endif
endif
ifneq ($(strip $(TESTSCRIPTS_HOST_$(OS_CLASS))),)
TESTSCRIPTS_HOST+=$(subst -nil-,,$(TESTSCRIPTS_HOST_$(OS_CLASS)))
else
ifneq (,$(strip $(TESTSCRIPTS_HOST_DEFAULT)))
TESTSCRIPTS_HOST+=$(TESTSCRIPTS_HOST_DEFAULT)
endif
endif
#
# concat specific resource files
#

View File

@@ -8,10 +8,6 @@
# in file LICENSE that is included with this distribution.
#*************************************************************************
ifndef EPICS_BASE
EPICS_BASE = $(INSTALL_LOCATION)
endif
#---------------------------------------------------------------
# Epics base directories
@@ -38,10 +34,10 @@ EPICS_BASE_HOST_LIBS += ca Com
#---------------------------------------------------------------
# Version number for base shared libraries (and win32 products)
ifeq ($(EPICS_BASE),$(TOP))
ifdef BASE_TOP
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
endif # EPICS_BASE
endif # BASE_TOP
#---------------------------------------------------------------
# Base c preprocessor flags

View File

@@ -1,30 +1,50 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
#
# $Id$
#
# EPICS Version information
#
# This file is interpreted by the Bourne Shell (MakeRelease), so spaces are
# not allowed around the '=' signs or in unquoted values.
# Only the person making an official EPICS release should make changes in
# this file.
#
# EPICS_SITE_VERSION is defined in CONFIG_SITE for sites that want a local
# version number to be included in the reported version string.
EPICS_VERSION=3
EPICS_REVISION=14
EPICS_MODIFICATION=8
EPICS_UPDATE_NAME=
EPICS_UPDATE_LEVEL=0
BASE_3_14=YES
EPICS_VERSION_STRING="EPICS Version ${EPICS_VERSION}.${EPICS_REVISION}.${EPICS_MODIFICATION}.${EPICS_UPDATE_NAME}${EPICS_UPDATE_LEVEL}"
EPICS_VERSION = 3
EPICS_REVISION = 14
# This part may contain letters, eg 0beta1
EPICS_MODIFICATION = 9
# Not included if zero
EPICS_PATCH_LEVEL = 0
# This will be -CVS or empty at an official release point
#EPICS_CVS_SNAPSHOT=-CVS
EPICS_CVS_SNAPSHOT=-pre1
# No changes should be needed below here
ifneq ($(EPICS_PATCH_LEVEL),0)
EPICS_PATCH_VSTRING=.$(EPICS_PATCH_LEVEL)
endif
ifneq ($(strip $(EPICS_SITE_VERSION)),)
EPICS_SITE_VSTRING=-$(EPICS_SITE_VERSION)
endif
EPICS_SHORT_VERSION=$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
EPICS_VERSION_NUMBER=$(EPICS_SHORT_VERSION)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)
EPICS_VERSION_STRING="EPICS Version $(EPICS_VERSION_NUMBER)"
CVS_DATE="\$$Date$$"
CVS_TAG="\$$Name$$"
BASE_3_14=YES

View File

@@ -37,15 +37,20 @@ BUILD_ARCHS = $(EPICS_HOST_ARCH) $(CROSS1) $(CROSS2)
# otherwise override this in os/CONFIG_SITE.<host_arch>.Common
PERL=perl
#-------------------------------------------------------
# dbst based database optimization default
DB_OPT = NO
#-------------------------------------------------------
# Check configure/RELEASE file for consistency
CHECK_RELEASE_YES = checkRelease
CHECK_RELEASE_NO =
CHECK_RELEASE_WARN = warnRelease
#-------------------------------------------------------
# Directories
INSTALL_LOCATION ?= $(TOP)
INSTALL_LOCATION = $(TOP)
TOOLS = $(CONFIG)/tools
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
@@ -105,6 +110,8 @@ OBJ = .
RES = .
CMPLR_SUFFIX=
CMPLR_PREFIX=
LIB_PREFIX=
SHRLIB_PREFIX= $(LIB_PREFIX)
#-------------------------------------------------------
# tools for installing libraries and products
@@ -223,7 +230,7 @@ TARGET_LDFLAGS = $($*_LDFLAGS)
# Level of ansi conformance flags
CONFORM_CPPFLAGS = $(CONFORM_CPPFLAGS_$(CMPLR))
CONFORM_CFLAGS = $(CONFORM_CFLAGS_$(CMPLR))
CONFORM_CXXFLAGS = $(CONFORM_CXXFLAGS_$(CMPLR))
CONFORM_CXXFLAGS = $(CONFORM_CXXFLAGS_$(CXXCMPLR))
# Warnings flags
WARN_CFLAGS = $(WARN_CFLAGS_$($(BUILD_CLASS)_WARN))

View File

@@ -1,36 +1,30 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
#
# $Id$
#
# CONFIG_SITE - config file
# by Matthew Needes and Mike Bordua
#
# This file is to be modified by the build system manager
# only.
# CONFIG_SITE - Global site configuration file
#
# The host architecture performing the build,
# i.e.: the arch running DCT/getrel/etc.
# <operating system>-<architecture>[-<alternate compiler>]
# The host architecture performing the build, in the form
# <operating system>-<architecture>[-<toolset>]
#
# Currently Supporting:
# aix-ppc (HP compiler used for host builds)
# aix-ppc (IBM compiler used for host builds)
# aix-ppc-gnu (GNU compiler used for host builds)
# cygwin-x86 (cygwin compiler used for host builds)
# darwin-ppc
# darwin-ppc (PowerPC based Apple running OSX)
# darwin-x86 (Intel based Apple running OSX)
# darwin-ppcx86 (Universal binaries for both CPUs)
# hpux-parisc (HP compiler used for host builds)
# hpux-parisc-gnu (GNU compiler used for host builds)
# linux-ppc (GNU compiler used for host builds)
# linux-ppc-bgl
# linux-x86 (GNU compiler used for host builds)
# linux-x86_64 (GNU compiler used for host builds)
# linux-x86-borland (Borland C++ compiler used for host builds)
@@ -41,9 +35,9 @@
# solaris-x86 (sun compiler used for host builds)
# solaris-x86-gnu (GNU compiler used for host builds)
# win32-x86 (MS Visual C++ compiler used for host builds)
# win32-x86_mingw (MinGW compiler used for host builds)
# win32-x86-mingw (MinGW compiler used for host builds)
# win32-x86-borland (Borland C++ compiler used for host builds)
# win32-x86-cygwin (cygwin GNU compiler used for host builds)
# win32-x86-cygwin (WIN32 API with cygwin GNU compiler used for host builds)
# Debugging builds
# linux-x86-debug (GNU compiler with -g option for host builds)
@@ -55,7 +49,7 @@
# EPICS_HOST_ARCH is a required environment variable
# Do not set EPICS_HOST_ARCH in this file.
# Use base/startup files to set EPICS_HOST_ARCH or
# set EPICS_HOST_ARCH on the GNU make command line.
# provide EPICS_HOST_ARCH on the GNU make command line.
# The cross-compiler architectures to build EPICS for
#
@@ -65,7 +59,6 @@
# linux-586 (linux-x86 host)
# linux-686 (linux-x86 host)
# linux-athlon (linux-x86 host)
# linuxRT-mvme2100 (linux-x86 host)
# vxWorks-486
# vxWorks-68040
# vxWorks-68040lc
@@ -75,8 +68,6 @@
# vxWorks-ppc603_long
# vxWorks-ppc604
# vxWorks-ppc604_long
# vxWorks6-mv2100
# vxWorks6-mv5100
# RTEMS-gen68360
# RTEMS-mcp750
# RTEMS-mvme167
@@ -86,8 +77,6 @@
# RTEMS-psim
# RTEMS-uC5282
#
# Debugging builds
# vxWorks-68040-debug
# Definitions of CROSS_COMPILER_TARGET_ARCHS in
# configure/os/CONFIG_SITE.<host>.Common files will
@@ -158,7 +147,7 @@ CROSS_WARN=YES
# NOTE: Set to YES only if you have existing R3.13 extensions to be
# built with this base
#
COMPAT_TOOLS_313=NO
#COMPAT_TOOLS_313=YES
# Create and/or install files for R3.13 ioc application and extension builds?
# must be either YES or NO
@@ -169,8 +158,14 @@ COMPAT_TOOLS_313=NO
COMPAT_313=NO
# Installation directory
#Note: INSTALL_LOCATION definition moved to configure/RELEASE file
# If you don't want to install into $(TOP) dir then
# define INSTALL_LOCATION here
#INSTALL_LOCATION=<fullpathname>
# Use POSIX thread priority scheduling (YES or NO)
USE_POSIX_THREAD_PRIORITY_SCHEDULING = NO
# Site version number, if set will append '-' and this string to the
# EPICS version number string that is reported by many tools
EPICS_SITE_VERSION =

View File

@@ -33,15 +33,15 @@
# where the start and end are mmddhh - that is month,day,hour
# eg EPICS_TIMEZONE=CUS::360:033102:102802
#
# DST for 2006 US: Apr 2 - Oct 29
# EU: Mar 26 - Oct 29
# DST for 2007 US: Mar 11 - Nov 04
# EU: Mar 25 - Oct 28
# (see: http://www.worldtimezone.org/daylight.html)
#
# EPICS_TS_NTP_INET
# NTP or Unix time server ip address. Uses boot host if not set.
EPICS_TIMEZONE=CUS::360:040202:102902
#EPICS_TIMEZONE=MET::-60:032602:102902
EPICS_TIMEZONE=CUS::360:031102:110402
#EPICS_TIMEZONE=MET::-60:032502:102802
EPICS_TS_NTP_INET=
# IOC Shell:

View File

@@ -9,17 +9,13 @@
#*************************************************************************
# RELEASE: Define location of external EPICS products
# Define INSTALL_LOCATION in CONFIG_SITE
# VX_DIR definition now in os/CONFIG_SITE.Common.vxWorksCommon
# RTEMS_BASE (and RTEMS_VERSION) now in os/CONFIG_SITE.Common.RTEMS
# NB: Settings in RELEASE files can be overridden in files named
# RELEASE.$(EPICS_HOST_ARCH)
# RELEASE.Common.$(OS_CLASS)Common
# RELEASE.$(EPICS_HOST_ARCH).Common
# RELEASE.Common.$(T_A)
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
# If you don't want to install into $(TOP) dir then
# define INSTALL_LOCATION here
#INSTALL_LOCATION=<fullpathname>
#INSTALL_LOCATION=/home/phoebus/JBA/install

View File

@@ -1,11 +1,10 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
#
# $Id$
@@ -20,8 +19,9 @@ rebuild: clean install
ACTIONS = inc
ACTIONS += build
ACTIONS += install
ACTIONS += buildInstall
ACTIONS += browse
ACTIONS += buildInstall
ACTIONS += browse
ACTIONS += runtests
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
@@ -41,7 +41,7 @@ $(BUILD_ARCHS) : % : O.% O.Common
$(ACTIONS):%: $(foreach arch, $(BUILD_ARCHS), %$(DIVIDER)$(arch))
$(buildDirs):
$(buildDirs):
$(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP)/..
O.Common:
@@ -54,14 +54,19 @@ O.Common:
targetReleaseFiles = $(wildcard $(foreach arch, $(BUILD_ARCHS), \
$(TOP)/configure/RELEASE.Common.$(arch) \
$(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(arch)))
checkReleaseTargets = $(addprefix checkRelease, $(suffix $(targetReleaseFiles)))
checkRelease: $(checkReleaseTargets)
$(PERL) $(TOOLS)/convertRelease.pl -h $(EPICS_HOST_ARCH) $@
$(PERL) $(TOOLS)/convertRelease.pl -h $(EPICS_HOST_ARCH) checkRelease
$(checkReleaseTargets):checkRelease.%:
$(PERL) $(TOOLS)/convertRelease.pl -h $(EPICS_HOST_ARCH) -a $* checkRelease
warnReleaseTargets = $(addprefix warnRelease, $(suffix $(targetReleaseFiles)))
warnRelease: $(warnReleaseTargets)
-$(PERL) $(TOOLS)/convertRelease.pl -h $(EPICS_HOST_ARCH) checkRelease
$(warnReleaseTargets):warnRelease.%:
-$(PERL) $(TOOLS)/convertRelease.pl -h $(EPICS_HOST_ARCH) -a $* checkRelease
#
# special clean rule
#
@@ -74,7 +79,7 @@ archclean ::
$(cleanArchTargets) ::
$(RMDIR) O.$(archPart)
realclean ::
realclean ::
$(RMDIR) O.*
.PHONY : $(actionArchTargets)
@@ -82,4 +87,3 @@ realclean ::
.PHONY : $(BUILD_ARCHS)
.PHONY : $(ACTIONS) clean realclean archclean all
.PHONY : checkRelease $(checkReleaseTargets)

View File

@@ -1,11 +1,10 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
# $Id$
#
@@ -40,6 +39,7 @@ LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_HOST)
OBJS += $(OBJS_HOST)
PROD += $(PROD_HOST)
SCRIPTS += $(SCRIPTS_HOST)
TESTSCRIPTS += $(TESTSCRIPTS_HOST)
TESTPROD += $(TESTPROD_HOST)
endif
@@ -48,6 +48,7 @@ LIBRARY += $(LIBRARY_IOC)
OBJS += $(OBJS_IOC)
PROD += $(PROD_IOC)
SCRIPTS += $(SCRIPTS_IOC)
TESTSCRIPTS += $(TESTSCRIPTS_IOC)
TESTPROD += $(TESTPROD_IOC)
endif
@@ -118,7 +119,7 @@ rebuild: clean install
build : inc
build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODNAME) \
$(TARGETS)
$(TARGETS) $(TESTSCRIPTS)
inc : $(COMMON_INC) $(INSTALL_INC)
@@ -144,7 +145,7 @@ clean::
@$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) $(LIBNAME) $(SHRLIBNAME)\
$(INC) *$(RES) $(TARGETS) $(DLL_LINK_LIBNAME) $(TDS) \
*.out MakefileInclude $(LOADABLE_SHRLIBNAME) *.manifest *.exp \
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS)
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) $(TESTSCRIPTS)
ifdef BAF
@$(RM) $(PROD_BAF) $(LIB_BAF) *$(BOF)
endif
@@ -161,12 +162,17 @@ $(DIRECTORY_TARGETS) :
# The order of the following rules is
# VERY IMPORTANT !!!!
$(TESTPRODNAME) $(PRODNAME):%$(EXE): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
$(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
$(TESTPRODNAME) $(PRODNAME):%$(EXE):
@$(RM) $@
$(DEBUGCMD) $(LINK.cpp)
$(MT_EXE_COMMAND)
# object libs for R3.13 vxWorks compatibility only
$(OBJLIBNAME):%$(OBJ): $(OBJLIB_LD_OBJS)
$(OBJLIBNAME): $(OBJLIB_LD_OBJS)
$(OBJLIBNAME):%$(OBJ):
@$(RM) $@
$(OBJLIB_LINK.cpp)
@@ -259,22 +265,32 @@ $(LIBNAME): ../baseLIBOBJS
endif
# rule for lib (archive of object files) creation
$(LIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX): $(LIBRARY_OBJS)
$(LIBNAME): $(LIBRARY_OBJS)
$(LIBNAME): $(LIB_PREFIX)%$(LIB_SUFFIX):
@$(RM) $@
$(ARCMD)
ifneq ($(strip $(RANLIB)),)
$(RANLIB) $@
endif # RANLIB
$(DLL_LINK_LIBNAME):$(LIB_PREFIX)%.lib: $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(DLL_LINK_LIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(DLL_LINK_LIBNAME):$(SHRLIB_PREFIX)%.lib:
@$(RM) $@
$(LINK.shrlib)
$(MT_DLL_COMMAND)
$(SHRLIBNAME):$(LIB_PREFIX)%$(SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(SHRLIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(SHRLIBNAME):$(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
@$(RM) $@
$(LINK.shrlib)
$(MT_DLL_COMMAND)
$(LOADABLE_SHRLIBNAME):$(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(LOADABLE_SHRLIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
$(LOADABLE_SHRLIBNAME):$(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX):
@$(RM) $@
$(LINK.loadable_shrlib)
@@ -299,6 +315,21 @@ $(OBJLIB_MUNCHNAME):%.munch : %_ctdt$(OBJ) %$(OBJ)
@$(RM) $@
$(MUNCH_CMD)
runtests: $(TESTSCRIPTS_$(BUILD_CLASS))
$(PERL) -e 'use Test::Harness; runtests @ARGV if @ARGV;' $^
# If there's a perl test script (.plt) available, use it
%.t: ../%.plt
@$(RM) $@
@$(CP) $< $@
# Some versions of Test::Harness expect test programs in perl only.
# Generate a 1-line perl program to exec the real test binary.
# Uses the $0 runtime path to itself to find the executable.
%.t: %$(EXE)
@$(RM) $@
@echo '($$e=$$0)=~s/.t$$/$(EXE)/;exec "./$$e" or die "exec failed";'>$@
# Ext, app and module rules
RULES_INCLUDE CONFIG_APP_INCLUDE: $(wildcard $(TOP)/configure/RELEASE*)
@$(RM) $@
@@ -318,15 +349,7 @@ $(INSTALL_BIN)/%: ../os/$(OS_CLASS)/%
$(INSTALL_BIN)/%: %
@echo "Installing binary $@"
ifdef WIN32
ifdef BORLAND
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
else
@$(INSTALL_PRODUCT) -d -m 555 $<* $(INSTALL_BIN)
endif
else
@$(INSTALL_PRODUCT) -d -m 555 $< $(INSTALL_BIN)
endif
$(INSTALL_BIN)/%: ../%
@echo "Installing script $@"
@@ -422,6 +445,7 @@ $(INSTALL_TEMPLATES_SUBDIR)/%: %
.PRECIOUS: $(COMMON_INC)
.PHONY: all inc build install clean rebuild buildInstall binInstalls libInstalls
.PHONY: runtests
endif # BASE_RULES_BUILD
# EOF RULES_BUILD

View File

@@ -1,24 +1,23 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
#
# $Id$
#
ARCHS += $(BUILD_ARCHS)
ACTIONS += inc build install buildInstall clean realclean archclean
ACTIONS += inc build install buildInstall clean realclean archclean runtests
dirPart = $(word 1, $(subst $(DIVIDER), ,$@))
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$@)), \
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$@))))
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$@))))
dirActionArchTargets = $(foreach dir, $(DIRS), \
$(foreach action, $(ACTIONS),\
$(foreach arch, $(ARCHS), \

View File

@@ -197,7 +197,7 @@ PROD_VERSION =
# Scripts to install
#
# If there is both ../$(SCRIPT) and ../$(OS_CLASS)/$(SCRIPT),
# If there is both ../$(SCRIPTS) and ../$(OS_CLASS)/$(SCRIPTS),
# the latter, system specific version will be installed!
#
SCRIPTS_DEFAULT = script_for_rest

View File

@@ -0,0 +1,13 @@
#
# CONFIG.Common.RTEMS-at91rm9200ek
# Author: Ralf Hartmann
# BESSY
# Ralf.Hartmann@bessy.de
#
# Atmel AT91RM9200-EK evaluation kit
# using the AT91RM9200 ARM9-based 32-bit RISC microcontroller
#
# All RTEMS targets use the same Makefile fragment
#
RTEMS_TARGET_CPU=arm
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -7,52 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppc
#-------------------------------------------------------
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon
#
# Set OS-specific information
# Architecture-specific information
#
OS_CLASS = Darwin
ARCH_CLASS = ppc
#
# Special flags for Darwin
# No common blocks (as required when using shared libraries)
#
OP_SYS_CFLAGS += -fno-common
#
# Don't try to use precompiled headers when converting sequencer files
#
CPPSNCFLAGS += -no-cpp-precomp
#
# Darwin os definition
#
OP_SYS_CPPFLAGS += -Ddarwin
#
# The following two definitions enable the use of DarwinPorts packages.
#
OP_SYS_INCLUDES += -I/opt/local/include
# dir/firstword/wildcard used to avoid warning -L: directory name (...) does not exist
OP_SYS_LDFLAGS += $(addprefix -L,$(dir $(firstword $(wildcard /opt/local/lib/*))))
#
# The following two definitions enable the use of Fink packages.
#
OP_SYS_INCLUDES += -I/sw/include
# dir/firstword/wildcard used to avoid warning -L: directory name (...) does not exist
OP_SYS_LDFLAGS += $(addprefix -L,$(dir $(firstword $(wildcard /sw/lib/*))))
#
# Libraries for command-line editing.
#
LDLIBS_READLINE = -lreadline
#
# Command-line input support
#
COMMANDLINE_LIBRARY=READLINE
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -0,0 +1,22 @@
# CONFIG.Common.darwin-ppcx86
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for Darwin 'universal' (PowerPC, Intel) target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
#-------------------------------------------------------
#
# Set architecture-specific information
#
ARCH_CLASS = ppcx86
#
# Universal binary support
#
OP_SYS_CFLAGS += -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
OP_SYS_LDFLAGS += -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -0,0 +1,16 @@
# CONFIG.Common.darwin-x86
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for darwin-x86 target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-x86
#-------------------------------------------------------
#
# Architecture-specific information
#
ARCH_CLASS = x86
# Include definitions common to all Darwin targets
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon

View File

@@ -0,0 +1,34 @@
# $Id$
#
# This file is maintained by the build community.
#
# Definitions for freebsd-x86_64 target builds
# Sites may override these definitions in CONFIG_SITE.Common.freebsd-x86_64
#-------------------------------------------------------
# Include definitions common to all freebsd targets
include $(CONFIG)/os/CONFIG.Common.freebsdCommon
ARCH_CLASS = x86_64
ARCH_DEP_CPPFLAGS += -D_X86_64_
ifeq ($(BUILD_CLASS),CROSS)
ifeq ($(EPICS_HOST_ARCH),freebsd-x86_64)
# Added for 386,486,... cross builds
CMPLR_PREFIX=
CROSS_INCLUDES=
CROSS_LDFLAGS=
# Use -w not -Wall
#WARN_CFLAGS_YES = -w
#WARN_CXXFLAGS_YES = -w
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsd-x86_64
-include $(CONFIG)/os/CONFIG.freebsd-x86_64.freebsd-x86_64
-include $(CONFIG)/os/CONFIG_SITE.freebsd-x86_64.freebsd-x86_64
else
GNU_TARGET=i586-pc-freebsd-gnu
CMPLR_SUFFIX=
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif
endif

View File

@@ -0,0 +1,31 @@
# $Id$
#
# This file is maintained by the build community.
#
# Definitions for freebsd target builds
# Sites may override these definitions in CONFIG_SITE.Common.freebsdCommon
#-------------------------------------------------------
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon
OS_CLASS = freebsd
CODE_CPPFLAGS = -D_REENTRANT
#POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
POSIX_CPPFLAGS = -D_POSIX_THREADS
POSIX_LDLIBS = -lpthread
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
OP_SYS_CPPFLAGS += -Dfreebsd
#OP_SYS_LDLIBS += -lrt
# Set runtime path for shared libraries
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
# Definitions used when COMMANDLINE_LIBRARY is READLINE
LDLIBS_READLINE = -lreadline -lcurses
GNU_LDLIBS_YES = -lgcc_pic

View File

@@ -0,0 +1,38 @@
# CONFIG.Common.interix-x86
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for interix-x86 target builds
# Sites may override these definitions in CONFIG_SITE.Common.interix-x86
#-------------------------------------------------------
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon
OS_CLASS = interix
ARCH_CLASS = x86
EXE=
POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L
POSIX_CPPFLAGS += -D_POSIX_THREADS
POSIX_CPPFLAGS += -D_ALL_SOURCE
POSIX_CPPFLAGS += -D_POSIX_TIMERS
POSIX_CPPFLAGS += -D_REENTRANT
POSIX_LDLIBS += -lpthread
ARCH_DEP_CPPFLAGS += -D_X86_
OP_SYS_CPPFLAGS += -DUNIX
# Set runtime path for shared libraries
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_FULLPATHDIRS:%=-Wl,-rpath,%)
# Definitions used when COMMANDLINE_LIBRARY is READLINE
INCLUDES_READLINE = -I$(GNU_DIR)/include
LDFLAGS_READLINE += -L$(GNU_DIR)/lib
LDLIBS_READLINE = -lreadline

View File

@@ -0,0 +1,27 @@
# CONFIG.Common.linux-arm
#
# This file is maintained by the build community.
#
# Definitions for linux-arm target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm
#-------------------------------------------------------
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm
# Set a special definition for network order of Netwinder ARM floating point
ARCH_DEP_CPPFLAGS += -D_ARM_NWFP_
# Set runtime path for shared libraries
#RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath,%)
RUNTIME_LDFLAGS = $(SHRLIB_SEARCH_DIRS:%=-Wl,-rpath-link,%)
ifdef CROSS
GNU_TARGET=arm-linux
# prefix of compiler tools
CMPLR_SUFFIX=
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
endif

View File

@@ -36,6 +36,7 @@ GNU_TARGET=sparc-sun-solaris2
OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -lCrun -lc -lCstd
OP_SYS_LDLIBS_9 += -lCrun -lc -lCstd
OP_SYS_LDLIBS_10 += -lCrun -lc -lCstd
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
# Definitions used when COMMANDLINE_LIBRARY is READLINE

View File

@@ -1,28 +0,0 @@
# CONFIG.Common.vxWorks6-mv2100
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for WRS vxWorks version 6.0 mv2100 target
# target archs with at least 32MB
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6-mv2100
#-------------------------------------------------------
# Include definitions common to all vxWorks version 6.0 targets
include $(CONFIG)/os/CONFIG.Common.vxWorks6Common
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align -mlongcall
#CONFORM_CFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic
#CONFORM_CFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic
#CONFORM_CXXFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic
#CONFORM_CXXFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic
#CODE_CXXFLAGS = -DOVERRIDE_fno_implicit_templates

View File

@@ -1,28 +0,0 @@
# CONFIG.Common.vxWorks6-mv5100
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for WRS vxWorks version 6.0 mv5100 target
# target archs with at least 32MB
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6-mv5100
#-------------------------------------------------------
# Include definitions common to all vxWorks version 6.0 target archs
include $(CONFIG)/os/CONFIG.Common.vxWorks6Common
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align -mlongcall
#CONFORM_CFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic
#CONFORM_CFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic
#CONFORM_CXXFLAGS_NORMAL = -DCONFORM_NORMAL_no_ansi_no_pedantic
#CONFORM_CXXFLAGS_STRICT = -DCONFORM_STRICT_no_ansi_no_pedantic
#CODE_CXXFLAGS = -DOVERRIDE_fno_implicit_templates

View File

@@ -1,155 +0,0 @@
# CONFIG.Common.vxWorks6Common
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for vxWorks version 6.0 target archs
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks6Common
# or CONFIG_SITE.<host>.vxWorks6Common
#-------------------------------------------------------
# Vx valid build types
VALID_BUILDS = Ioc
#--------------------------------------------------
# operating system class (include/os/<os_class>)
OS_CLASS = vxWorks
#-------------------------------------------------------
# Prefix and suffix definitions
EXE =
OBJ = .o
LIB_PREFIX =lib
LIB_SUFFIX = .a
MUNCH_SUFFIX = .munch
#-------------------------------------------------------
# Compiler definitions
CMPLR_PREFIX=
CC = $(GNU_BIN)/$(CMPLR_PREFIX)cc$(CMPLR_SUFFIX)
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)cc$(CMPLR_SUFFIX)
#-------------------------------------------------------
# Library definitions
LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
#--------------------------------------------------
# Prod: DEPLIBS, LDFLAGS, and LDLIBS definitions
PROD_DEPLIBS=$(foreach lib,$(PROD_LIBS) $(USR_LIBS), \
$(firstword $(wildcard $(addsuffix /$(LIB_PREFIX)$(lib).*, \
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS))) \
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \
$(firstword $($(lib)_DIR) $(INSTALL_LIB)))))
PROD_LDLIBS = $(addprefix -l,$($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)\
$($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
PROD_DEPLIB_DIRS = $(dir $($*_DEPLIBS)) $(dir $(PROD_DEPLIBS))
PRODDIR_LDFLAGS += $(sort $(PROD_DEPLIB_DIRS:%=-L%))
#-------------------------------------------------------
# Prod definitions
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
CTDT_SRCS = $(PRODNAME:%$(EXE)=%_ctdt.c)
CTDT_OBJS = $(PRODNAME:%$(EXE)=%_ctdt$(OBJ))
NMS = $(PRODNAME:%$(EXE)=%.nm)
MUNCH_DEPENDS = %_ctdt$(OBJ)
#-------------------------------------------------------
# R3.13 compatability object library definitions
# Does not allow $*_SRCS or $*_OBJS. Allows only OBJLIB_SRCS and OBJLIB_OBJS.
OBJLIB += $(OBJLIB_$(OS_CLASS))
OBJLIB_SUFFIX = Library.o
OBJLIBNAME = $(addsuffix $(OBJLIB_SUFFIX),$(basename $(OBJLIB)))
OBJLIB_LD_OBJS += $(addsuffix $(OBJ),$(basename $(OBJLIB_SRCS) $(OBJLIB_OBJS)))
PRODTARGETS += $(OBJLIBNAME)
INSTALL_PROD += $(OBJLIBNAME:%=$(INSTALL_BIN)/%)
OBJLIB_MUNCHNAME += $(OBJLIBNAME:%$(OBJ)=%$(MUNCH_SUFFIX))
INSTALL_MUNCHS += $(OBJLIB_MUNCHNAME:%=$(INSTALL_BIN)/%)
PRODTARGETS += $(OBJLIB_MUNCHNAME)
CTDT_SRCS += $(OBJLIBNAME:%$(OBJ)=%_ctdt.c)
CTDT_OBJS += $(OBJLIBNAME:%$(OBJ)=%_ctdt$(OBJ))
NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
SRC_FILES += $(OBJLIB_SRCS)
#---------------------------------------------------------------------
# vxWorks directory definitions (new for vxWorks 6.0)
# WindRiver Workbench directory definitions
GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/vxworks-6.0/target/h
GNU_TARGET_INCLUDE_DIR += $(VX_DIR)/vxworks-6.0/target/h/wrn/coreip
GNU_DIR = $(VX_DIR)/gnu/3.3.2-vxworks60/x86-linux2
#--------------------------------------------------
# C++ host processing
NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE)
#--------------------------------------------------
# The follow 2 exports prevent gnu cross-compiler
# from finding wrong assembler (as).
export WIND_BASE = $(VX_DIR)
export WIND_HOST_TYPE
#--------------------------------------------------
# Tornado2.2 and WindRiver Workbench
# The follow export allows vxWorks.h to include gnu header files
export TOOL_FAMILY = GNU
#--------------------------------------------------
# Operating system flags
OP_SYS_CPPFLAGS += -DvxWorks
OP_SYS_CFLAGS += -fno-builtin
#OP_SYS_CFLAGS += -fno-builtin -fdollars-in-identifiers
OP_SYS_LDFLAGS +=
# Fix for vxWorks headers using macros defined in
# vxWorks.h but not including vxWorks.h
# New for WindRiver Workbench and vxWorks 6.0
OP_SYS_INCLUDE_CPPFLAGS += -include $(VX_DIR)/vxworks-6.0/target/h/vxWorks.h
#--------------------------------------------------
# code flags
CODE_CFLAGS =
#
# WRS still uses an old gnu compiler with a broken -frepo and
# otherwise no automatic template instantiation mechanism as
# is the defacto standard approach today. If we remove this
# flag certain ppc targets will not build.
CODE_CXXFLAGS = -fno-implicit-templates
#--------------------------------------------------
# posix c preprocessor flags
POSIX_CPPFLAGS = -D_POSIX_SOURCE
#--------------------------------------------------
# no shared libs for vxWorks
SHRLIB_CFLAGS =
SHRLIB_LDFLAGS =
#--------------------------------------------------
# osithead use default stack, YES or NO override
OSITHREAD_USE_DEFAULT_STACK = NO
#--------------------------------------------------
# Link definitions
LINK.cpp = $(LD) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
#--------------------------------------------------
# Definitions for compile of *_ctdt.c file
CFLAGS_ctdt = $(filter-out -pedantic,$(CFLAGS)) -fdollars-in-identifiers
COMPILE.ctdt = $(CC) -c $(CPPFLAGS) $(CFLAGS_ctdt) $(call PATH_FILTER,$(INCLUDES)) $(SOURCE_FLAG)
#--------------------------------------------------
# C preprocessor command
VXCPPFLAGS = $(filter-out $(OP_SYS_INCLUDE_CPPFLAGS),$(CPPFLAGS))
PREPROCESS.cpp = $(CPP) $(VXCPPFLAGS) $(INCLUDES) $< > $@
#--------------------------------------------------
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks6Common
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorks6Common

View File

@@ -75,11 +75,35 @@ NMS += $(OBJLIBNAME:%$(OBJ)=%.nm)
OBJLIB_LINK.cpp = $(LD) -o $@ $(OBJLIB_LD_OBJS)
SRC_FILES += $(OBJLIB_SRCS)
#--------------------------------------------------
# vxWorks version numbers
VXWORKS_MAJOR_VERSION = $(basename $(basename $(VXWORKS_VERSION)))
# These are needed for vxWorks 6.x; the GNU toolset version number
# is in the path to the compiler tools:
VX_GNU_VERSION_6.0 = 3.3.2
VX_GNU_VERSION_6.1 = 3.3.2
VX_GNU_VERSION_6.2 = 3.3.2
VX_GNU_VERSION_6.3 = 3.4.4
VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_VERSION))
#--------------------------------------------------
# vxWorks directory definitions
# Tornado directory definitions
GNU_TARGET_INCLUDE_DIR = $(VX_DIR)/target/h
GNU_DIR = $(VX_DIR)/host/$(WIND_HOST_TYPE)
VX_DIR_5 = $(WIND_BASE)
VX_DIR_6 = $(WIND_BASE)/vxWorks-$(VXWORKS_VERSION)
VX_DIR = $(VX_DIR_$(VXWORKS_MAJOR_VERSION))
VX_INCLUDE_DIRS_5 = $(VX_DIR)/target/h
VX_INCLUDE_DIRS_6 = $(VX_DIR)/target/h $(VX_DIR)/target/h/wrn/coreip
GNU_TARGET_INCLUDE_DIR = $(VX_INCLUDE_DIRS_$(VXWORKS_MAJOR_VERSION))
#--------------------------------------------------
# vxWorks GNU directories
GNU_DIR_5 = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
GNU_DIR_6 = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE)
GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION))
#--------------------------------------------------
# C++ host processing
@@ -88,7 +112,7 @@ NM = $(GNU_BIN)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE)
#--------------------------------------------------
# The follow 2 exports prevent gnu cross-compiler
# from finding wrong assembler (as).
export WIND_BASE = $(VX_DIR)
export WIND_BASE
export WIND_HOST_TYPE
#--------------------------------------------------
@@ -105,17 +129,20 @@ OP_SYS_LDFLAGS +=
# Fix for vxWorks headers using macros defined in
# vxWorks.h but not including vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS += -include $(GNU_TARGET_INCLUDE_DIR)/vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS_5.5 += -include $(VX_DIR)/target/h/vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_VERSION))
#--------------------------------------------------
# code flags
CODE_CFLAGS =
#
# WRS still uses an old gnu compiler with a broken -frepo and
# otherwise no automatic template instantiation mechanism as
# is the defacto standard approach today. If we remove this
# flag certain ppc targets will not build.
CODE_CXXFLAGS = -fno-implicit-templates
# For vxWorks versions before 6.3 we need this g++ compiler flag
CODE_CXXFLAGS_5 = -fno-implicit-templates
CODE_CXXFLAGS_6.0 = -fno-implicit-templates
CODE_CXXFLAGS_6.1 = -fno-implicit-templates
CODE_CXXFLAGS_6.2 = -fno-implicit-templates
CODE_CXXFLAGS_6 = $(CODE_CXXFLAGS_$(VXWORKS_VERSION))
CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION))
#--------------------------------------------------
# posix c preprocessor flags

View File

@@ -25,7 +25,7 @@ SHRLIB_CFLAGS =
# -ansi eliminates strdup
CONFORM_CFLAGS_ANSI =
CONFORM_CFLAGS_STRICT = -pedantic
CONFORM_CXXFLAGS_ANSI =
CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT = -pedantic

View File

@@ -1,46 +0,0 @@
# CONFIG.darwin-ppc.darwin-ppc
#
# $Id$
#
# Definitions for darwin-ppc host - darwin-ppc target builds
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.darwin-ppc
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
GNU_DIR = /usr
CC = $(GNU_BIN)/cc
CCC = $(GNU_BIN)/c++
#
# Darwin shared libraries
#
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(firstword $(SHRLIB_SEARCH_FULLPATHDIRS))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_SUFFIX = .$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION).dylib
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress
#
# Position-independent code is the default on Darwin.
#
CODE_CFLAGS =
CODE_CXXFLAGS =
#
# Add support for Objective-C source
#
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
%.o: %.m
$(COMPILE.c) -c $<
#
# Pedantic produces way too many unnecessary messages
#
CONFORM_CFLAGS_STRICT=-ansi
CONFORM_CXXFLAGS_STRICT=-ansi

View File

@@ -0,0 +1,11 @@
# CONFIG.darwin-ppcx86.Common
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for Darwin 'universal' (PowerPC, Intel) host builds
# Sites may override these definitions in CONFIG_SITE.darwin-ppcx86.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,11 @@
# CONFIG.darwin-x86.Common
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for darwin-x86 host builds
# Sites may override these definitions in CONFIG_SITE.darwin-x86.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,101 @@
# CONFIG.Common.darwinCommon
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for darwin target builds
# Sites may override these definitions in CONFIG_SITE.Common.darwin-<arch>
#-------------------------------------------------------
# Include definitions common to all Unix targets
include $(CONFIG)/os/CONFIG.Common.UnixCommon
#
# Set OS-specific information
#
OS_CLASS = Darwin
#
# Special flags for Darwin
# No common blocks (as required when using shared libraries)
#
OP_SYS_CFLAGS += -fno-common
#
# Don't try to use precompiled headers when converting sequencer files
#
CPPSNCFLAGS += -no-cpp-precomp
#
# Darwin os definition
#
OP_SYS_CPPFLAGS += -Ddarwin
#
# Always compile in debugging symbol table information
#
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
#
# The following two definitions enable the use of DarwinPorts packages.
#
OP_SYS_INCLUDES += -I/opt/local/include
# dir/firstword/wildcard used to avoid warning -L: directory name (...) does not exist
OP_SYS_LDFLAGS += $(addprefix -L,$(dir $(firstword $(wildcard /opt/local/lib/*))))
#
# The following two definitions enable the use of Fink packages.
#
OP_SYS_INCLUDES += -I/sw/include
# dir/firstword/wildcard used to avoid warning -L: directory name (...) does not exist
OP_SYS_LDFLAGS += $(addprefix -L,$(dir $(firstword $(wildcard /sw/lib/*))))
#
# Libraries for command-line editing.
#
LDLIBS_READLINE = -lreadline
#
# Command-line input support
#
COMMANDLINE_LIBRARY=READLINE
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
GNU_DIR = /usr
CC = $(GNU_BIN)/cc
CCC = $(GNU_BIN)/c++
#
# Darwin shared libraries
#
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(firstword $(SHRLIB_SEARCH_FULLPATHDIRS))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(SHRLIB_VERSION)
SHRLIB_SUFFIX = .$(SHRLIB_VERSION).dylib
LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress
#
# Position-independent code is the default on Darwin.
#
CODE_CFLAGS =
CODE_CXXFLAGS =
#
# Add support for Objective-C source
#
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
%.o: %.m
$(COMPILE.c) -c $<
#
# Pedantic produces way too many unnecessary messages
#
CONFORM_CFLAGS_STRICT=-ansi
CONFORM_CXXFLAGS_STRICT=-ansi

View File

@@ -0,0 +1,11 @@
# $Id$
#
# This file is maintained by the build community.
#
# Definitions for freebsd host builds
# Sites may override these definitions in CONFIG_SITE.freebsd.Common
#-------------------------------------------------------
# Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,20 @@
# $Id$
#
# Definitions for freebsd-x86_64 host - freebsd-x86_64 target builds
# Sites may override these definitions in CONFIG_SITE.freebsd-x86_64.freebsd-x86_64
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
GNU_DIR = /usr
GNU_LDLIBS_YES =
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS += -shared -fPIC
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC

View File

@@ -0,0 +1,22 @@
# CONFIG.interix-x86.Common
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for interix-x86 host archs
# Sites may override these definitions in CONFIG_SITE.interix-x86.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common
WIND_HOST_TYPE = x86-win32
OSITHREAD_USE_DEFAULT_STACK = NO
#HOSTEXE=.exe
HOSTEXE=
# Needed to find dlls for base installed build tools (antelope,eflex,...)
#PATH := $(EPICS_BASE_TOOLS_BIN):$(PATH)

View File

@@ -0,0 +1,34 @@
# CONFIG.interix-x86.interix-x86
#
# $Id$
#
# Definitions for interix-x86 host - interix-x86 target builds
# Sites may override these definitions in CONFIG_SITE.interix-x86.interix-x86
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
## Shared libraries for interix not implemented yet
SHARED_LIBRARIES=NO
# interix's gcc, g++, ar, ld, and ranlib must be in user's path
CC = gcc
CCC = g++
AR = ar -rc
LD = ld -r
#######RANLIB = ranlib # ranlib exists but is not found ???
RANLIB =
# Avoid position-independent code is always generated message
SHRLIB_CFLAGS =
SHRLIB_LDFLAGS = -shared -fPIC
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
# -ansi eliminates strdup
#CONFORM_CFLAGS_ANSI =
#CONFORM_CFLAGS_STRICT = -pedantic
#CONFORM_CXXFLAGS_ANSI =
#CONFORM_CXXFLAGS_STRICT = -pedantic

View File

@@ -0,0 +1,23 @@
# CONFIG.linux-x86.linux-arm
#
# Definitions for linux-x86 host - linux-arm target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-arm
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
GNU_DIR = /usr
# Override the -nostdinc flag, needed here...
CROSS_CPPFLAGS =
# Copied from x86.x86
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=
SHRLIB_LDFLAGS += -shared -fPIC
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC

View File

@@ -24,7 +24,7 @@ GPROF=NO
# Configure OS vendor C compiler
CONFORM_CFLAGS_ANSI = -Xa -v
CONFORM_CFLAGS_STRICT = -Xc -v
CONFORM_CFLAGS_STRICT = -Xa -v
CONFORM_CFLAGS_TRAD = -Xs
PROF_CFLAGS_YES = -p
GPROF_CFLAGS_YES = -xpg

View File

@@ -9,9 +9,6 @@
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
## Shared libraries for cygwin not implemented yet
SHARED_LIBRARIES=NO
# cygwin's gcc, g++, ar, ld, and ranlib must be in user's path
CC = gcc
CCC = g++
@@ -26,7 +23,7 @@ SHRLIB_CFLAGS =
# Dont use -ansi: -ansi eliminates strdup and _tempnam
CONFORM_CFLAGS_ANSI =
CONFORM_CFLAGS_STRICT = -pedantic
CONFORM_CXXFLAGS_ANSI =
CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT = -pedantic
# Override linking with gcc library

View File

@@ -25,7 +25,7 @@ SHRLIB_CFLAGS =
# Dont use -ansi option: eliminates strdup and _tempnam
CONFORM_CFLAGS_ANSI =
CONFORM_CFLAGS_STRICT = -pedantic
CONFORM_CXXFLAGS_ANSI =
CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT = -pedantic
# Override linking with gcc library

View File

@@ -57,7 +57,7 @@ WARN_CFLAGS_NO = /W1
# /MD use MSVCRT (run-time as DLL, multi-thread support)
# /GL whole program optimization
# /Zi generate program database for debugging information
OPT_CFLAGS_YES = /Ox /GL
OPT_CFLAGS_YES = /Ox /GL
#
# /Zi generate program database for debugging information
@@ -105,12 +105,13 @@ CPP = cl /C /E
# Use of /Za would dissable DLL import/export keywords which
# include/excludes using architecture neutral macros
#
# /GX - generate code for exceptions
# /EHsc - generate code for exceptions
# /GR - generate code for run time type identification
#
CCC = cl /nologo /GX /GR
CCC = cl /nologo /EHsc /GR
CONFORM_CXXFLAGS_NORMAL =
CONFORM_CXXFLAGS_STRICT = /D__STDC__=0
CODE_CPPFLAGS += /D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE
#
# /W<N> use warning level N
@@ -123,7 +124,7 @@ WARN_CXXFLAGS_NO = /W1
# /Ox maximum optimizations
# /GL whole program optimization
# /Zi generate program database for debugging information
OPT_CXXFLAGS_YES = /Ox /GL
OPT_CXXFLAGS_YES = /Ox /GL
#
# /Zi generate program database for debugging information
@@ -292,4 +293,15 @@ LINK.cpp = $(WINLINK) -nologo $(STATIC_LDFLAGS) $(LDFLAGS) $(PROD_LDFLAGS) -out:
$(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
#--------------------------------------------------
# UseManifestTool.pl checks MS Visual c++ compiler version number to
# decide whether or not to use the Manifest Tool command to embed the
# linker created .manifest file into a library or product target.
# useManifestTool.pl returns 0(don't use) or 1(use).
#
ifeq ($(shell $(PERL) $(TOOLS)/useManifestTool.pl),1)
MT_DLL_COMMAND = mt.exe /manifest $@.manifest /outputresource:$@;\#2
MT_EXE_COMMAND_YES =
MT_EXE_COMMAND_NO = mt.exe /manifest $@.manifest /outputresource:$@;\#1
MT_EXE_COMMAND = $(MT_EXE_COMMAND_$(STATIC_BUILD))
endif

View File

@@ -18,6 +18,7 @@ ARCH_hp700 = hpux-parisc
ARCH_alpha = osf-alpha
ARCH_cygwin32 = cygwin-x86
ARCH_Borland = win32-x86-borland
ARCH_freebsd = freebsd-x86
ifndef EPICS_HOST_ARCH
ifdef HOST_ARCH

View File

@@ -16,4 +16,4 @@ OP_SYS_CFLAGS += -DRTEMS_NETWORK_CONFIG_DNS_DOMAINNAME=aps.anl.gov
#
# Specify your desired command-line-input library
#
EPICSCOMMANDLINE_LIBRARY = EPICS
COMMANDLINE_LIBRARY = EPICS

View File

@@ -5,14 +5,14 @@
# Site Specific definitions for hpux-parisc target
# Only the local epics system manager should modify this file
# NOTE for SHARED_LIBRARIES: If YES (which is the default now) then either
# a) SHLIB_PATH must include the full absolute pathname to
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
# NOTE: If SHARED_LIBRARIES=YES (now the default) then
# a) Environment variable SHLIB_PATH must include the full absolute pathname
# to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) (or wherever you install
# the EPICS shared libraries on your system) when invoking base
# executables.
# executables, or
# b) Add the path to SHRLIB_SEARCH_FULLPATHDIRS below, which will burn
# the runtime search path into the executables.
#SHARED_LIBRARIES=YES
# This is the absolute path to the generic INSTALL_LOCATION, for SHARED_LIBRARY searches.
SHRLIB_SEARCH_FULLPATHDIRS += /opt/epics/R$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_UPDATE_NAME)$(EPICS_UPDATE_LEVEL)/lib/$(EPICS_HOST_ARCH)
SHRLIB_SEARCH_FULLPATHDIRS += /opt/epics/R$(EPICS_SHORT_VERSION)/base/$(EPICS_VERSION)-$(EPICS_REVISION)-$(EPICS_MODIFICATION)-$(EPICS_PATCH_LEVEL)$(EPICS_CVS_SNAPSHOT)$(EPICS_SITE_VSTRING)/lib/$(EPICS_HOST_ARCH)

View File

@@ -1,10 +1,31 @@
# CONFIG_SITE.Common.vxWorksCommon
#
# Site specific definitions for vxWorks target builds
# Site specific definitions for vxWorks target builds.
# Only the local epics system manager should modify this file
# Compiler options can vary with the vxWorks version number, so we
# need to know that. However don't include any third-level digits
# because we don't currently need them.
# Tornado directory
VX_DIR = /usr/local/vw/tornado202p1
#VX_DIR = /usr/local/vw/tornado22-$(ARCH_CLASS)
# Note: vxWorks 5.3 (Tornado 1.x) is not supported
VXWORKS_VERSION = 5.4
#VXWORKS_VERSION = 5.5
#VXWORKS_VERSION = 6.0
#VXWORKS_VERSION = 6.1
#VXWORKS_VERSION = 6.2
#VXWORKS_VERSION = 6.3
# Sites may override the following path for a particular host
# architecture by adding it to the appropriate
# CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon file.
# WIND_BASE is where you installed the Wind River software.
# Under vxWorks 6.x this is not the same as the old VX_DIR setting
WIND_BASE = /usr/local/vw/tornado202p1
#WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS)
#WIND_BASE = /usr/local/vw/vxWorks-$(VXWORKS_VERSION)
#WIND_BASE = /ade/vxWorks/$(VXWORKS_VERSION)

View File

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

View File

@@ -0,0 +1,12 @@
# CONFIG_SITE.darwin-ppc.Common
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for darwin-ppcx86 host builds
#-------------------------------------------------------
#
# Need this to get OS X readline rather than Fink (PPC-only) readline
#
OP_SYS_LDFLAGS += -L/usr/lib

View File

@@ -1,14 +1,9 @@
# CONFIG_SITE.Common.darwin-ppc
# CONFIG_SITE.darwin-ppc.Common
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for darwin-ppc host builds
#-------------------------------------------------------
#
# Other local options
#
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g
COMMANDLINE_LIBRARY = READLINE
CROSS_COMPILER_TARGET_ARCHS = # RTEMS-uC5282 # RTEMS-mvme5500 RTEMS-mvme2100

View File

@@ -0,0 +1,8 @@
# CONFIG_SITE.linux-x86.linux-arm
#
# $Id$
#
# Site specific definitions for linux-x86 host - linux-arm target builds
#-------------------------------------------------------
#GNU_DIR = /home/targetOS/linux-arm/host/x86-linux/gcc_3.3.3

View File

@@ -1,12 +0,0 @@
# CONFIG_SITE.linux-x86.vxWorks6-mv2100
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for linux-x86 host - vxWorks6-mv2100 target builds
#-------------------------------------------------------
# WindRiver has changed the directory structure of vxWorks
# This is for VxWorks 6.0
VX_DIR = /ade/vxWorks/6.0

View File

@@ -1,12 +0,0 @@
# CONFIG_SITE.linux-x86.vxWorks6-mv5100
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for linux-x86 host - vxWorks6-mv5100 target builds
#-------------------------------------------------------
# WindRiver has changed the directory structure of vxWorks
# This is for VxWorks 6.0
VX_DIR = /ade/vxWorks/6.0

View File

@@ -1,12 +0,0 @@
# CONFIG_SITE.linux-x86_64.vxWorks6-mv2100
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for linux-x86_64 host - vxWorks6-mv2100 target builds
#-------------------------------------------------------
# WindRiver has changed the directory structure of vxWorks
# This is for Tornado 3 (i.e. VxWorks 6.0)
VX_DIR = /ade/vxWorks/6.0

View File

@@ -1,12 +0,0 @@
# CONFIG_SITE.linux-x86_64.vxWorks6-mv5100
#
# $Id$
# This file is maintained by the build community.
#
# Site override definitions for linux-x86_64 host - vxWorks6-mv5100 target builds
#-------------------------------------------------------
# WindRiver has changed the directory structure of vxWorks
# This is for Tornado 3 (i.e. VxWorks 6.0)
VX_DIR = /ade/vxWorks/6.0

View File

@@ -1,11 +0,0 @@
# CONFIG_SITE.linux-x86_64.vxWorksCommon
#
# $Id$
# This file is maintained by the build community.
#
# Definitions for linux-x86_64 host - vxWorks target builds
#-------------------------------------------------------
# SNS override values
#WIND_HOST_TYPE = x86-linux

View File

@@ -13,13 +13,19 @@ eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
# $Id$
#
# Parse configure/RELEASE file(s) and generate a derived output file.
# With strict patches from Nick Rees at DLS.
#
use Cwd qw(cwd abs_path);
use Getopt::Std;
use strict;
use vars qw($cwd $arch $top $hostarch $iocroot $root $outfile $relfile);
use vars qw(%macros @apps);
$cwd = UnixPath(cwd());
our ($opt_a, $opt_h, $opt_t, $opt_T);
getopt "ahtT";
if ($opt_a) {
@@ -65,7 +71,7 @@ $outfile = $ARGV[0];
# TOP refers to this application
%macros = (TOP => LocalPath($top));
@apps = (TOP); # Records the order of definitions in RELEASE file
@apps = ('TOP'); # Records the order of definitions in RELEASE file
# Read the RELEASE file(s)
$relfile = "$top/configure/RELEASE";
@@ -126,13 +132,13 @@ sub readRelease {
next if /^\s*$/; # Skip blank lines
# Expand all already-defined macros in the line:
while (($pre,$var,$post) = /(.*)\$\((\w+)\)(.*)/) {
while (my ($pre,$var,$post) = /(.*)\$\((\w+)\)(.*)/) {
last unless (exists $Rmacros->{$var});
$_ = $pre . $Rmacros->{$var} . $post;
}
# Handle "<macro> = <path>"
($macro, $path) = /^\s*(\w+)\s*=\s*(.*)/;
my ($macro, $path) = /^\s*(\w+)\s*=\s*(.*)/;
if ($macro ne "") {
$macro="TOP" if $macro =~ /^INSTALL_LOCATION/ ;
if (exists $Rmacros->{$macro}) {
@@ -143,8 +149,8 @@ sub readRelease {
$Rmacros->{$macro} = $path;
next;
}
# Handle "include <path>" syntax
($path) = /^\s*include\s+(.*)/;
# Handle "include <path>" and "-include <path>" syntax
($path) = /^\s*-?include\s+(.*)/;
&readRelease($path, $Rmacros, $Rapps) if (-r $path);
}
close IN;
@@ -153,8 +159,8 @@ sub readRelease {
sub expandRelease {
my ($Rmacros, $Rapps) = @_;
# Expand any (possibly nested) macros that were defined after use
while (($macro, $path) = each %$Rmacros) {
while (($pre,$var,$post) = $path =~ /(.*)\$\((\w+)\)(.*)/) {
while (my ($macro, $path) = each %$Rmacros) {
while (my ($pre,$var,$post) = $path =~ /(.*)\$\((\w+)\)(.*)/) {
$path = $pre . $Rmacros->{$var} . $post;
$Rmacros->{$macro} = $path;
}
@@ -162,7 +168,7 @@ sub expandRelease {
}
sub configAppInclude {
@includes = grep !/^(TOP|TEMPLATE_TOP)$/, @apps;
my @includes = grep !/^(TOP|TEMPLATE_TOP)$/, @apps;
unlink($outfile);
open(OUT,">$outfile") or die "$! creating $outfile";
@@ -171,46 +177,46 @@ sub configAppInclude {
if ($arch) {
print OUT "export TOP\n";
foreach $app (@includes) {
foreach my $app (@includes) {
print OUT "export ${app}\n";
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/bin/$hostarch");
print OUT "${app}_HOST_BIN = \$(strip \$($app))/bin/\$(EPICS_HOST_ARCH)\n";
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/lib/$hostarch");
print OUT "${app}_HOST_LIB = \$(strip \$($app))/bin/\$(EPICS_HOST_ARCH)\n";
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/bin/$arch");
print OUT "${app}_BIN = \$(strip \$($app))/bin/$arch\n";
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/lib/$arch");
print OUT "${app}_LIB = \$(strip \$($app))/lib/$arch\n";
}
# We can't just include TOP in the foreach list:
# 1. The lib directory probably doesn't exist yet, and
# 2. We need an abolute path but $(TOP_LIB) is relative
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/lib/$arch");
print OUT "SHRLIB_SEARCH_DIRS += \$(${app}_LIB)\n";
}
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/include");
print OUT "RELEASE_INCLUDES += -I\$(strip \$($app))/include/os/\$(OS_CLASS)\n";
print OUT "RELEASE_INCLUDES += -I\$(strip \$($app))/include\n";
}
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-d "$path/dbd");
print OUT "RELEASE_DBDFLAGS += -I \$(strip \$($app))/dbd\n";
}
@@ -218,15 +224,15 @@ sub configAppInclude {
}
sub rulesInclude {
@includes = grep !/^(TOP|TEMPLATE_TOP|EPICS_BASE)$/, @apps;
my @includes = grep !/^(TOP|TEMPLATE_TOP|EPICS_BASE)$/, @apps;
unlink($outfile);
open(OUT,">$outfile") or die "$! creating $outfile";
print OUT "# Do not modify this file, changes made here will\n";
print OUT "# be lost when the application is next rebuilt.\n\n";
foreach $app (@includes) {
$path = $macros{$app};
foreach my $app (@includes) {
my $path = $macros{$app};
next unless (-r "$path/configure/RULES_BUILD");
print OUT "RULES_TOP:=\$($app)\n";
print OUT "-include \$(strip \$(RULES_TOP))/configure/RULES_BUILD\n";
@@ -236,26 +242,26 @@ sub rulesInclude {
sub cdCommands {
die "Architecture not set (use -a option)" unless ($arch);
@includes = grep !/^TEMPLATE_TOP$/, @apps;
my @includes = grep !/^TEMPLATE_TOP$/, @apps;
unlink($outfile);
open(OUT,">$outfile") or die "$! creating $outfile";
$startup = $cwd;
my $startup = $cwd;
$startup =~ s/^$root/$iocroot/o if ($opt_t);
print OUT "startup = \"$startup\"\n";
$ioc = $cwd;
my $ioc = $cwd;
$ioc =~ s/^.*\///; # iocname is last component of directory name
print OUT "putenv \"ARCH=$arch\"\n";
print OUT "putenv \"IOC=$ioc\"\n";
foreach $app (@includes) {
$iocpath = $path = $macros{$app};
foreach my $app (@includes) {
my $iocpath = my $path = $macros{$app};
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
$app_lc = lc($app);
my $app_lc = lc($app);
print OUT "$app_lc = \"$iocpath\"\n" if (-d $path);
print OUT "putenv \"$app=$iocpath\"\n" if (-d $path);
print OUT "${app_lc}bin = \"$iocpath/bin/$arch\"\n" if (-d "$path/bin/$arch");
@@ -265,19 +271,19 @@ sub cdCommands {
sub envPaths {
die "Architecture not set (use -a option)" unless ($arch);
@includes = grep !/^TEMPLATE_TOP$/, @apps;
my @includes = grep !/^TEMPLATE_TOP$/, @apps;
unlink($outfile);
open(OUT,">$outfile") or die "$! creating $outfile";
$ioc = $cwd;
my $ioc = $cwd;
$ioc =~ s/^.*\///; # iocname is last component of directory name
print OUT "epicsEnvSet(ARCH,\"$arch\")\n";
print OUT "epicsEnvSet(IOC,\"$ioc\")\n";
foreach $app (@includes) {
$iocpath = $path = $macros{$app};
foreach my $app (@includes) {
my $iocpath = my $path = $macros{$app};
$iocpath =~ s/^$root/$iocroot/o if ($opt_t);
print OUT "epicsEnvSet($app,\"$iocpath\")\n" if (-d $path);
}
@@ -285,19 +291,19 @@ sub envPaths {
}
sub checkRelease {
$status = 0;
my $status = 0;
delete $macros{TOP};
delete $macros{TEMPLATE_TOP};
while (($app, $path) = each %macros) {
%check = (TOP => $path);
@order = ();
$relfile = "$path/configure/RELEASE";
while (my ($app, $path) = each %macros) {
my %check = (TOP => $path);
my @order = ();
my $relfile = "$path/configure/RELEASE";
&readReleaseFiles($relfile, \%check, \@order);
&expandRelease(\%check, \@order);
delete $check{TOP};
while (($parent, $ppath) = each %check) {
while (my ($parent, $ppath) = each %check) {
if (exists $macros{$parent} &&
abs_path($macros{$parent}) ne abs_path($ppath)) {
print "\n" unless ($status);
@@ -318,22 +324,22 @@ sub checkRelease {
# These functions are duplicated in src/makeBaseApp/makeBaseApp.pl
sub UnixPath {
my ($newpath) = @_;
if ($^O eq "cygwin") {
$newpath =~ s|\\|/|go;
$newpath =~ s%^([a-zA-Z]):/%/cygdrive/$1/%;
if ($^O eq 'cygwin') {
$newpath =~ s{\\}{/}go;
$newpath =~ s{^([a-zA-Z]):/}{/cygdrive/$1/};
} elsif ($^O eq 'MSWin32') {
$newpath =~ s{\\}{/}go;
} elsif ($^O eq 'sunos') {
$newpath =~ s(^\/tmp_mnt/)(/);
$newpath =~ s{^/tmp_mnt/}{/};
}
return $newpath;
}
sub LocalPath {
my ($newpath) = @_;
if ($^O eq "cygwin") {
$newpath =~ s%^/cygdrive/([a-zA-Z])/%$1:/%;
} elsif ($^O eq "darwin") {
if ($^O eq "darwin") {
# These rules are likely to be site-specific
$newpath =~ s%^/private/var/auto\.home/%/home/%; # APS
$newpath =~ s{^/private/var/auto\.home/}{/home/}; # APS
}
return $newpath;
}

View File

@@ -1,84 +1,70 @@
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
if $running_under_some_shell; # makeConfigAppInclude.pl
if $running_under_some_shell;
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# National Laboratory.
# Copyright (c) 2002 The Regents of the University of California, as
# Operator of Los Alamos National Laboratory.
# EPICS BASE Versions 3.13.7
# and higher are distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# EPICS BASE is distributed subject to a Software License Agreement found
# in the file LICENSE that is included with this distribution.
#*************************************************************************
# Creates a ctdt.c file of c++ static constructors and destructors.
# $Id$
#
# Creates a ctdt.c file of C++ static constructors and destructors,
# as required for all vxWorks binaries containing C++ code.
@ctorlist = ();
@dtorlist = ();
@ctors = (); %ctors = ();
@dtors = (); %dtors = ();
while ($line = <STDIN>)
while (my $line = <STDIN>)
{
chomp;
next if ($line =~ /__?GLOBAL_.F.+/);
next if ($line =~ /__?GLOBAL_.I._GLOBAL_.D.+/);
if ($line =~ /__?GLOBAL_.D.+/) {
($adr,$type,$name) = split ' ',$line,3;
$name =~ s/^__/_/;
@dtorlist = (@dtorlist,$name);
};
if ($line =~ /__?GLOBAL_.I.+/) {
($adr,$type,$name) = split ' ',$line,3;
$name =~ s/^__/_/;
@ctorlist = (@ctorlist,$name);
};
chomp $line;
next if ($line =~ m/__?GLOBAL_.F.+/);
next if ($line =~ m/__?GLOBAL_.I._GLOBAL_.D.+/);
if ($line =~ m/__?GLOBAL_.D.+/) {
($adr,$type,$name) = split ' ', $line, 3;
push @dtors, $name unless exists $dtors{$name};
$dtors{$name} = 1;
}
if ($line =~ m/__?GLOBAL_.I.+/) {
($adr,$type,$name) = split ' ', $line, 3;
push @ctors, $name unless exists $ctors{$name};
$ctors{$name} = 1;
}
}
foreach $ctor (@ctorlist)
{
if ( $ctor =~ /\./ ) {
printf "void %s() __asm__ (\"_%s\");\n",convertName($ctor),$ctor;
print join "\n",
"/* C++ static constructor and destructor lists */",
"/* This is a generated file, do not edit! */",
"#include <vxWorks.h>",
"\n/* Declarations */",
(map cDecl($_), @ctors, @dtors),
"\n/* Constructors */",
"void (*_ctors[])() = {",
(join ",\n", (map " " . cName($_), @ctors), " NULL"),
"};",
"\n/* Destructors */",
"void (*_dtors[])() = {",
(join ",\n", (map " " . cName($_), reverse @dtors), " NULL"),
"};",
"\n";
sub cName {
my ($name) = @_;
$name =~ s/^__/_/;
$name =~ s/\./\$/g;
return $name;
}
sub cDecl {
my ($name) = @_;
my $decl = 'void ' . cName($name) . '()';
# 68k and MIPS targets allow periods in symbol names, which
# can only be reached using an assembler string.
if (m/\./) {
$decl .= "\n __asm__ (\"" . $name . "\");";
} else {
printf "void %s();\n",$ctor;
}
$decl .= ';';
}
return $decl;
}
print "extern void (*_ctors[])();\n";
print "void (*_ctors[])() = {\n";
foreach $ctor (@ctorlist)
{
if ( $ctor =~ /\./ ) {
printf " %s,\n",convertName($ctor);
} else {
printf " %s,\n",$ctor;
}
}
print " 0};\n";
foreach $dtor (@dtorlist)
{
if ( $dtor =~ /\./ ) {
printf "void %s() __asm__ (\"_%s\");\n",convertName($dtor),$dtor;
} else {
printf "void %s();\n",$dtor;
}
}
print "extern void (*_ctors[])();\n";
print "void (*_dtors[])() = {\n";
foreach $dtor (@dtorlist)
{
if ( $dtor =~ /\./ ) {
printf " %s,\n",convertName($dtor);
} else {
printf " %s,\n",$dtor;
}
}
print " 0};\n";
sub convertName {
my ($name) = @_;
$name =~ s/\./\$/g;
return $name;
}

View File

@@ -0,0 +1,31 @@
eval 'exec perl -S -w $0 ${1+"$@"}' # -*- Mode: perl -*-
if 0;
#
# Use MS Visual C++ compiler version number to determine if
# we want to use the Manifest Tool (status=1) or not (status=0)
#
# VC compiler versions >= 14.00 will have status=1
# VC compiler versions 10.00 - 13.10 will have status=0
# EPICS builds with older VC compilers is not supported
#
my $versionString=`cl 2>&1`;
if ($versionString =~ m/Version 14./) {
$status=1;
} elsif ($versionString =~ m/Version 13.10/){
$status=0;
} elsif ($versionString =~ m/Version 13.0/){
$status=0;
} elsif ($versionString =~ m/Version 12./){
$status=0;
} elsif ($versionString =~ m/Version 11./){
$status=0;
} elsif ($versionString =~ m/Version 10./){
$status=0;
} else {
$status=1;
}
print "$status\n";
exit;

View File

@@ -2,12 +2,294 @@
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>EPICS Base R3.14.x Release Notes</title>
</head>
<body lang="en">
<h1 align="center">EPICS Base Release 3.14.8</h1>
<h1 align="center">EPICS Base Release 3.14.x</h1>
<h2 align="center">Changes since 3.14.8.2</h2>
<!-- Insert new items below here ... -->
<h4>dbLoadTemplate</h4>
<p>The parser for the substitutions file accepted by dbLoadTemplate() has been
revised, and is now stricter than it used to be &mdash; unmatched characters
that were accepted and discarded without warning before will now generate
errors. The quote characters at the two ends of a quoted string value must now
match, although either single or double quotes can be used. Escaped characters
inside a quoted string should pass safely through to the underlying
dbLoadRecord() command. The characters permitted in a bareword parameter (i.e. a
filename or value that is not inside quotes) have been reduced from the overly
wide set allowed before; the permitted characters now comprise: <tt>a-z A-Z 0-9
_ - + : . / \ [ ] &lt; &gt; ;</tt></p>
<h4>Escaped characters in record fields</h4>
<p>Field value strings loaded from a database file by dbLoadRecords() can now
use C89-compatible escaped character codes such as \", \', \t, \n, \064 and
\x7e. The parser also now checks for and reports strings that have a newline
character in them as an error - if you want a newline in a field, use the \n
escaped version.</p>
<h4>libCom/test and db/test</h4>
<p>These test programs are no longer installed into the bin/<i>arch</i>
directory. Running all these programs on any host architecture is as simple as
typing <tt>make runtests</tt> in the base top level directory or in any
appropriate subdirectory. The runtests target uses Perl's Test::Harness module
to execute all of the test programs and summarize the result. It is also
possible to run individual tests as desired, by executing them from the relevent
O.&lt;arch&gt; directory; the program output is designed to be comprehensible to
humans.</p>
<p>For vxWorks and RTEMS, a test harness has been created that will run all of
the test programs in a suitable order. At a vxWorks target shell, type:</p>
<blockquote>
<pre>ld </path/to/base/bin/vxWorks-<i>arch</i>/vxTestHarness.munch
cd "/path/to/writable/directory"
epicsRunLibComTests</pre>
</blockquote>
<p>On RTEMS, boot the bin/<i>arch</i>/rtemsTestHarness binary.</p>
<p>You may wish to capture the output from running these to a file to more
easily check the results, since there is no wrapper program to collect and
summarize the results of the individual test programs.</p>
<h4>Breakpoint tables</h4>
<p>The handling of breakpoint table data has been reworked. It is now possible
to give table data in either ascending or descending order, and the breakpoint
data may have a negative slope such that the engineering values increase while
the raw values decrease and vice versa. The only restriction on the data is that
is must be monatonically increasing or decreasing, so you can't use a breakpoint
table for curves that have local minima or maxima. This restriction is checked
for when the breakpoint table is loaded.</p>
<h4>Support for vxWorks 6</h4>
<p>The build configuration support for vxWorks 6.x has changed significantly,
having been recombined with the older vxWorks 5.x support. The two target
architectures <tt>vxWorks6-mv2100</tt> and <tt>vxWorks6-mv5100</tt> have been
removed; IOCs built under vxWorks 6.x using these architectures must revert to
the original <tt>vxWorks-ppc603_long</tt> and <tt>vxWorks-ppc604_long</tt>
architectures instead. The configuration file CONFIG_SITE.Common.vxWorksCommon
now specifies the vxWorks version number, as well as the filesystem path to
the installation of vxWorks using the WIND_BASE variable.</p>
<h4>postfix and calcPerform</h4>
<p>The calc expression parser and exective have undergone a signficant overhaul,
although the API and expression language supported are backwards compatible with
one minor exception, described below. Significant improvements have been made to
both the API and the expression language: Multiple values can be calculated and
assignments made in a calc expression; Error reporting for humans is now
supported by the expression parser, and code can discover what inputs and
outputs are needed and generated by an expression.</p>
<p>Assignment operations are now possible, using the new <tt>:=</tt> operator
which must have an expression variable (<tt>A</tt> through <tt>L</tt>) to its
immediate left. Multiple expressions can be included in the calculation string,
separated by a semicolon <tt>;</tt>, all but one of which must be assignments.
The value of the whole string is determined by the single non-assignment
expression, which may appear anywhere in the string. For example, the following
string causes a single CALC record to output the successive values of a sine
curve: <tt>sin(a);&nbsp;a:=a+d2r</tt></p>
<p>Previously any expression that performed an invalid operation which would
generate a NaN or Inf result would be stopped immediately and return an error to
the caller. Now it is possible to perform operations that generate NaN or
infinite results, and the results are returned as normal. The result of the
expression or the value assigned to a variable may thus be a NaN or an
infinity. To permit this to be checked within the expression, the new operators
<tt>finite()</tt>, <tt>isinf()</tt> and <tt>isnan()</tt> have been added to the
expression language. The literal values <tt>Inf</tt> and <tt>NaN</tt> are also
now supported in expressions.</p>
<p>The incompatible change to the expression language was to change the
<tt>NOT</tt> operator from performing a unary minus operation to an integer
bitwise not; the former meaning is illogical and as a result was probably not
used much, if at all &mdash; nobody complained when I discussed this on
tech-talk...</p>
<p>The extended API and the expression language are now discussed in detail in
chapter 19 (libCom) of the R3.14.9 version of the IOC Application Developer's
Guide.</p>
<h4>calc and calcout record, asLib</h4>
<p>As a result of the above changes to the calc expression parser and executive,
both the calc and calcout records and the Access Security library have been
modified to take advantage of the new error diagnostics. The Access Security
library has been made to reject any expression that contains an assignment
operation, to prevent any possible security holes that might be caused by this
significant change to the expression rules.</p>
<p>The calc and calcout records have had some subtle changes applied: To
mitigate the effects of the Inf/NaN behaviour change, the result of an
expression is checked for NaN, which will result in the UDF field being set and
an Undefined/INVALID_ALARM being raised as a result.</p>
<p>An empty string is no longer a legal expression, therefor the CALC and OCAL
fields have been changed so that their default value is a literal <tt>"0"</tt>
string. Also any calcout record device support must now add the line
<tt>#include&nbsp;"postfix.h"</tt> before the
<tt>#include&nbsp;"calcoutRecord.h"</tt> line in the source code.</p>
<h4>recGblAlarmHook</h4>
<p>The <tt>recGblResetAlarms()</tt> routine (which is called by all record types
towards the end of record processing) now optionally calls a single hook routine
via the function pointer <tt>recGblAlarmHook</tt> after it has updated a
record's alarm status and severity. See regGbl.h for the hook routine prototype
definition, the routine is also given the previous values of the record's status
and severity. The hook routine must not block, since this would hold up record
processing.</p>
<h4>ai, bi, mbbi and mbbiDirect records</h4>
<p>These record types now support raw simulation mode. If the value of the SIMM
field is 2 (enum string "RAW"), the SIOL link value is placed into the RVAL
field and passed through the raw to engineering units conversion process just
like the real device support's raw value would be.</p>
<h4>dbpr</h4>
<p>The TIME field of a record is now displayed in a human readable format. TIME
used to have an interest level of 4 since it was output in hex and not very easy
to understand, but it has now been moved to interest level 2.</p>
<h4>configure/RELEASE*</h4>
<p>The <tt>convertRelease.pl</tt> parser now supports the use of
<tt>-include</tt> statements in configure/RELEASE files as well as
<tt>include</tt> statements.</p>
<h4>MIPS support</h4>
<p>Changes were needed to the <tt>configure/tools/munch.pl</tt> script to
support vxWorks-MIPS targets.</p>
<h4>epicsUnitTest</h4>
<p>A new facility is provided in libCom for use in generating automated test
programs. Many (but not all) of the test programs in <tt>libCom/test</tt> have
been converted to use this facility.</p>
<h4>dbStaticLib</h4>
<p>Off-by-one buffer overflow error fixed in dbFindField() which only seemed to
affect vxWorks-(intel) targets.</p>
<h4>RTEMS</h4>
<p>Added space for user extensions. This provides the infrastructure for the
spy command.</p>
<p>Fixed error in epicsThreadGetName for non-EPICS threads.</p>
<p>Added hooks for application routines to supply special network configuration
parameters.
The RTEMS startup code calls epicsRtemsInitPreSetBootConfigFromNVRAM just
before reading values from NVRAM and
epicsRtemsInitPostSetBootConfigFromNVRAM just afterwards. See
epicsRtemsInitHooks.h for prototypes and global variables.</p>
<h4>libCom</h4>
<h4>e_flex</h4>
<p><tt>e_flex</tt> has been modified to accept DOS line endings as well as Unix
ones. The <tt>scan.c</tt> file was recreated using <tt>e_flex</tt> itself and
the <tt>flex.skel</tt> file on the modified <tt>scan.l.DISTRIB</tt> source.
<tt>initscan.c</tt> is not required or used for the EPICS build, so it has been
removed.</p>
<h4>devLib</h4>
<p>devLib is now built for all architectures, whereas before it was only built
on RTEMS and vxWorks. However for it to be usable there must be an appropriate
table of OS-specific routines provided. For those OSs that don't implement these
routines a default table is defined which will result in an error on any attempt
to use devLib routines, but the default table can be overridden in an external
library that provides an appropriate table. This subtle change was implemented
to allow use of the SIS 3100 PCI to VME bridge from Linux, and needs no change
to the other implementations of <tt>devLibOSD.c</tt>.</p>
<h4>iocsh</h4>
<p>Added epicsThreadResume command.</p>
<h4>libCom</h4>
<p>mallocMustSucceed and callocMustSucceed accept 0-byte requests. Note that
these routines may return a NULL pointer in such cases.</p>
<h4>Mac OS X (Darwin)</h4>
<p>Added support for EPICS_HOST_ARCH=darwin-ppcx86 for building libraries/applications
which will run on both PowerPC and Intel x86 targets.</p>
<p>Added support for EPICS_HOST_ARCH=darwin-x86.</p>
<h2 align="center">Changes since 3.14.8.1</h2>
<h4>epicsStrtod</h4>
<p>On architectures whose native version of strtod() actually works properly
(i.e. converts +/-Inf[inity] and NaN strings to their double equivalents) we
managed to break the use of this in the R3.14.8.1 release. This is now
fixed.</p>
<h2 align="center">Changes since 3.14.8</h2>
<h4>Version Numbering</h4>
<p>This release adds a fourth level of version number, which we haven't used
since R3.13.1.1. The intention is to imply that R3.14.8.1 includes some small
but important changes since R3.14.8 but no signficant new behaviours or API
modifications. This fourth level has required us to modify the version number
system and the macros in the epicsVersion.h file slightly though. We have taken
the opportunity to introduce a new variable <tt>EPICS_SITE_VERSION</tt> to the
file configure/CONFIG_SITE that adds an optional site-specific version number;
sites that were achieving this by editing the configure/CONFIG_BASE_VERSION file
should switch to setting <tt>EPICS_SITE_VERSION</tt> instead.</p>
<h4>CA</h4>
<p>Mantis entries fixed:</p>
<p>232 - non-preemptive mode client relying on ca_poll does not always
reconnect</p>
<h4>Win32 symbol changes</h4>
<p>These changes are required to allow software outside of Base to be built on
win32 architectures.</p>
<ul>
<li>win32 epicsShareAPI changes to libCom
<p>The win32 Pascal calling convention (epicsShareAPI) has been removed
from the following header files in libCom/misc: adjustment.h,
cantProceed.h, epicsConvert.h, epicsStdlib.h, epicsString.h.</p>
</li>
<li>epicsString
<p>A new function epicsStrtok_r has been added because win32 does not
implement strtok_r.</p>
</li>
<li>epicsStdlib
<p>All function described in epicsStdlib.h are now implemented in
epicsStdlib.c</p>
</li>
<li>win32 epicsShareExtern changes in dbStaticLib
<p>The type name mapping array mapdbfType defined in dbFldTypes.h has had
the correct export modifier keywords added to it for use on win32.</p>
</li>
</ul>
<h2 align="center">Changes since 3.14.7</h2>
@@ -255,11 +537,12 @@ architectures.</p>
<h4>epicsThreadCreate Stacksize Posix</h4>
<p>The posix implementation of epicsThreadCreate now makes pthread calls to
set the stack size. The sizes for (small,medium,large) stack sizes are
(128K,256K,512K). This is used for at least the following: linux, solaris,
HPUX, Darwin). Doing this allows creation of many more threads os most
systems.</p>
<p>The posix implementation of epicsThreadCreate() now makes pthread calls to
set the stack size. The sizes returned by epicsThreadGetStackSize() for the
inputs epicsThreadStackSmall, epicsThreadStackMedium and epicsThreadStackBig are
128K, 256K and 512K respectively on at least the architectures Linux, Solaris,
HPUX and Darwin (different values are used on vxWorks and RTEMS). This allows
creation of many more threads on most systems.</p>
<h4>dbNotify</h4>
@@ -1522,70 +1805,70 @@ applications.
<blockquote>
DBDEXPAND = &lt;name&gt;Include.dbd  </blockquote>
DBDEXPAND = &lt;name&gt;Include.dbd</blockquote>
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
should make these same changes in that *Db dirctory.</li>
<li>In all *App/src/Makefile Makefiles change
<blockquote>
RECTYPES=&lt;name&gt;.h  </blockquote>
RECTYPES=&lt;name&gt;.h</blockquote>
to
<blockquote>
DBDINC+=&lt;name&gt;  </blockquote>
DBDINC+=&lt;name&gt;</blockquote>
change
<blockquote>
MENUS=&lt;name&gt;.h  </blockquote>
MENUS=&lt;name&gt;.h</blockquote>
to
<blockquote>
DBDINC+=&lt;name&gt;  </blockquote>
DBDINC+=&lt;name&gt;</blockquote>
change
<blockquote>
BPTS  </blockquote>
BPTS</blockquote>
to
<blockquote>
DBD  </blockquote>
DBD</blockquote>
change
<blockquote>
INSTALLDB  </blockquote>
INSTALLDB</blockquote>
to
<blockquote>
DB  </blockquote>
DB</blockquote>
change
<blockquote>
DBDINSTALL  </blockquote>
DBDINSTALL</blockquote>
to
<blockquote>
DBD  </blockquote>
DBD</blockquote>
</li>
<li>In all example *App/src/Makefile files change
<blockquote>
example_SRCS_DEFAULT += registerRecordDeviceDriver.c  </blockquote>
example_SRCS_DEFAULT += registerRecordDeviceDriver.c</blockquote>
to
<blockquote>
example_SRCS_DEFAULT += &lt;name&gt;_registerRecordDeviceDriver.cpp
 </blockquote>
</blockquote>
where &lt;name&gt; is the base name of a &lt;name&gt;.dbd file which was
created from a &lt;name&gt;Include.dbd file and which will be loaded in a
st.cmd or stcmd.host script (e.g. example).</li>
<li>In ./iocBoot/ioc&lt;name&gt;/st.cmd files change
<blockquote>
dbLoadDatabase("dbd/exampleApp.dbd")  </blockquote>
dbLoadDatabase("dbd/exampleApp.dbd")</blockquote>
to
<blockquote>
dbLoadDatabase("dbd/example.dbd")  </blockquote>
dbLoadDatabase("dbd/example.dbd")</blockquote>
</li>
<li>In &lt;top&gt;/iocBoot/ioc&lt;name&gt;/stcmd.host files change
@@ -1601,8 +1884,8 @@ applications.
<h3>EPICS_HOST_ARCH changes</h3>
<p>GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and
are no longer specified in CONFIG_SITE.  All references to the ANSI (ACC/GCC)
and CPLUSPLUS (CCC/G++) macros have been removed.</p>
are no longer specified in CONFIG_SITE. All references to the ANSI
(ACC/GCC) and CPLUSPLUS (CCC/G++) macros have been removed.</p>
<h3>libCom</h3>

View File

@@ -135,21 +135,21 @@ have been responsible for specific tasks in the past:</p>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Edit and commit changes to the EPICS version number files,
config/CONFIG_BASE_VERSION and configure/CONFIG_BASE_VERSION.</td>
<td>Edit and commit changes to the EPICS version number file
configure/CONFIG_BASE_VERSION.</td>
</tr>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Tag the module in CVS. Version tags take the form
<code>R</code><i><code>x</code></i><code>-</code><i><code>y</code></i><code>-</code><i><code>z</code></i><code>[-{alpha,beta,</code><i><code>n</code></i><code>}]</code></td>
<td>Tag the module in CVS. Official base release version tags take the form
<code>R</code><i><code>x</code></i><code>-</code><i><code>y</code></i><code>-</code><i><code>z</code></i><code>[-</code><i><code>n</code></i><code>]</code></td>
</tr>
<tr>
<td> </td>
<td>Janet Anderson</td>
<td>Export the tagged version, "cvs export -kv -d base-x.y.z
-r Rx-y-zepics/base", and create the
baseR<i>x.y.z</i>[{alpha,beta}<i>n</i>].tar.gz file of the result</td>
<td>Export the tagged version, "cvs export -kv -d base-x.y.z[.n]
-r Rx-y-z[-n] epics/base", and create the
baseRx.y.z[.n]tar.gz file of the result</td>
</tr>
<tr>
<td> </td>

View File

@@ -10,12 +10,16 @@
TOP=../../..
include $(TOP)/configure/CONFIG
INC += epicsRtemsInitHooks.h
SRCS += rtems_init.c
SRCS += rtems_config.c
SRCS += rtems_netconfig.c
SRCS += rtems_util.c
SRCS += rtems_dummyreg.c
SRCS += setBootConfigFromNVRAM.c
SRCS += epicsRtemsInitHookPre.c
SRCS += epicsRtemsInitHookPost.c
LIBRARY_RTEMS = rtemsCom
LIBRARY_SRCS = $(SRCS) $(BUILD_ARCHS)

View File

@@ -0,0 +1,19 @@
/*************************************************************************\
* Copyright (c) 2006 The University of Chicago, as Operator of Argonne
* National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* Dummy version -- use if application does not provide its own version
* $Id$
*/
#include "epicsRtemsInitHooks.h"
int
epicsRtemsInitPostSetBootConfigFromNVRAM(struct rtems_bsdnet_config *config)
{
return 0;
}

View File

@@ -0,0 +1,19 @@
/*************************************************************************\
* Copyright (c) 2006 The University of Chicago, as Operator of Argonne
* National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* Dummy version -- use if application does not provide its own version
* $Id$
*/
#include "epicsRtemsInitHooks.h"
int
epicsRtemsInitPreSetBootConfigFromNVRAM(struct rtems_bsdnet_config *config)
{
return 0;
}

View File

@@ -0,0 +1,24 @@
/*************************************************************************\
* Copyright (c) 2006 The University of Chicago, as Operator of Argonne
* National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* Hooks into RTEMS startup code
* $Id$
*/
#include <bsp.h>
#include <rtems/rtems_bsdnet.h>
extern char *env_nfsServer;
extern char *env_nfsPath;
extern char *env_nfsMountPoint;
/*
* Return 0 for success, non-zero for failure (will cause panic)
*/
int epicsRtemsInitPreSetBootConfigFromNVRAM(struct rtems_bsdnet_config *config);
int epicsRtemsInitPostSetBootConfigFromNVRAM(struct rtems_bsdnet_config *config);

View File

@@ -28,6 +28,7 @@
#define CONFIGURE_MAXIMUM_SEMAPHORES rtems_resource_unlimited(500)
#define CONFIGURE_MAXIMUM_TIMERS rtems_resource_unlimited(20)
#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES rtems_resource_unlimited(5)
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 100
#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
@@ -48,7 +49,12 @@ rtems_task Init (rtems_task_argument argument);
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
#if !defined(__mc68040__) && !defined(__mcf5200__) /* don't have RTC code */
#warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
#warning "needs review"
#warning "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
/* This should be made BSP dependent, not CPU dependent !! */
#if !defined(__mc68040__) && !defined(__mcf5200__) && !defined(__arm__) /* don't have RTC code */
#define CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
#endif

View File

@@ -32,90 +32,30 @@
#include <epicsThread.h>
#include <epicsTime.h>
#include <epicsExit.h>
#include <envDefs.h>
#include <errlog.h>
#include <logClient.h>
#include <osiUnistd.h>
#include <iocsh.h>
/*
* Architecture-dependent routines
*/
#if defined(__mcpu32__) || defined(__mcf528x__)
static void
logReset (void)
{
int bit, rsr;
int i;
const char *cp;
char cbuf[80];
#if defined(__mcpu32__)
rsr = m360.rsr;
m360.rsr = ~0;
#else
rsr = MCF5282_RESET_RSR;
#endif
for (i = 0, bit = 0x80 ; bit != 0 ; bit >>= 1) {
if (rsr & bit) {
switch (bit) {
#if defined(__mcpu32__)
case 0x80: cp = "RESETH*"; break;
case 0x40: cp = "POWER-UP"; break;
case 0x20: cp = "WATCHDOG"; break;
case 0x10: cp = "DOUBLE FAULT"; break;
case 0x04: cp = "LOST CLOCK"; break;
case 0x02: cp = "RESET"; break;
case 0x01: cp = "RESETS*"; break;
#else
case MCF5282_RESET_RSR_LVD: cp = "Low-voltage detect"; break;
case MCF5282_RESET_RSR_SOFT: cp = "Software reset"; break;
case MCF5282_RESET_RSR_WDR: cp = "Watchdog reset"; break;
case MCF5282_RESET_RSR_POR: cp = "Power-on reset"; break;
case MCF5282_RESET_RSR_EXT: cp = "External reset"; break;
case MCF5282_RESET_RSR_LOC: cp = "Loss of clock"; break;
case MCF5282_RESET_RSR_LOL: cp = "Loss of lock"; break;
#endif
default: cp = "??"; break;
}
i += sprintf (cbuf+i, cp);
rsr &= ~bit;
if (rsr)
i += sprintf (cbuf+i, ", ");
else
break;
}
}
errlogPrintf ("Startup after %s.\n", cbuf);
}
#else
#include "epicsRtemsInitHooks.h"
static void
logReset (void)
{
errlogPrintf ("Started.\n");
}
#endif
void rtems_bsp_reset_cause(char *buf, size_t capacity) __attribute__((weak));
void (*fp)(char *buf, size_t capacity) = rtems_bsp_reset_cause;
#ifdef __i386__
/*
* Remote debugger support
*
* i386-rtems-gdb -b 38400 example(binary from EPICS build -- not netbootable image!)
* (gdb) target remote /dev/ttyS0
*/
int enableRemoteDebugging = 0; /* Global so gdb can set before download */
static void
initRemoteGdb(int ticksPerSecond)
{
if (enableRemoteDebugging) {
init_remote_gdb();
rtems_task_wake_after(ticksPerSecond);
breakpoint();
if (fp) {
char buf[80];
fp(buf, sizeof buf);
errlogPrintf ("Startup after %s.\n", buf);
}
else {
errlogPrintf ("Startup.\n");
}
}
#endif
/*
***********************************************************************
@@ -191,30 +131,32 @@ mustMalloc(int size, const char *msg)
static int
initialize_local_filesystem(const char **argv)
{
extern char _DownloadLocation[] __attribute__((weak));
extern char _FlashBase[] __attribute__((weak));
extern char _FlashSize[] __attribute__((weak));
argv[0] = rtems_bsdnet_bootp_boot_file_name;
if (_FlashSize && (_DownloadLocation || _FlashBase)) {
extern char _edata[];
size_t flashIndex = _edata - _DownloadLocation;
char *header = _FlashBase + flashIndex;
#if defined(__mcf528x__)
extern char _DownloadLocation[], _edata[], _FlashBase[], _FlashSize[];
unsigned long flashIndex = _edata - _DownloadLocation;
char *header;
header = _FlashBase + flashIndex;
if (memcmp(header + 257, "ustar ", 8) == 0) {
int fd;
printf ("***** Unpack in-memory file system (IMFS) *****\n");
if (rtems_tarfs_load("/", header, (unsigned long)_FlashSize - flashIndex) != 0) {
printf("Can't unpack tar filesystem\n");
return 0;
if (memcmp(header + 257, "ustar ", 8) == 0) {
int fd;
printf ("***** Unpack in-memory file system (IMFS) *****\n");
if (rtems_tarfs_load("/", (unsigned char *)header, (size_t)_FlashSize - flashIndex) != 0) {
printf("Can't unpack tar filesystem\n");
return 0;
}
if ((fd = open(rtems_bsdnet_bootp_cmdline, 0)) >= 0) {
close(fd);
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
argv[1] = rtems_bsdnet_bootp_cmdline;
return 1;
}
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
}
if ((fd = open(rtems_bsdnet_bootp_cmdline, 0)) >= 0) {
close(fd);
printf ("***** Found startup script (%s) in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
argv[1] = rtems_bsdnet_bootp_cmdline;
return 1;
}
printf ("***** Startup script (%s) not in IMFS *****\n", rtems_bsdnet_bootp_cmdline);
}
#endif
return 0;
}
@@ -233,14 +175,13 @@ initialize_remote_filesystem(const char **argv, int hasLocalFilesystem)
strcpy (path, "/TFTP/BOOTP_HOST/epics/");
l = strlen (path);
if (gethostname (&path[l], pathsize - l - 10) || (path[l] == '\0'))
{
LogFatal ("Can't get host name");
}
strcat (path, "/st.cmd");
argv[1] = path;
}
#else
extern char *env_nfsServer;
extern char *env_nfsPath;
extern char *env_nfsMountPoint;
char *server_name;
char *server_path;
char *mount_point;
@@ -372,7 +313,7 @@ static void netStatCallFunc(const iocshArgBuf *args)
static const iocshFuncDef stackCheckFuncDef = {"stackCheck",0,NULL};
static void stackCheckCallFunc(const iocshArgBuf *args)
{
Stack_check_Dump_usage ();
Stack_check_Dump_usage();
}
static const iocshFuncDef heapSpaceFuncDef = {"heapSpace",0,NULL};
@@ -380,7 +321,7 @@ static void heapSpaceCallFunc(const iocshArgBuf *args)
{
unsigned long n = malloc_free_space();
if (n >= 1024*1000) {
if (n >= 1024*1024) {
double x = (double)n / (1024 * 1024);
printf("Heap space: %.1f MB\n", x);
}
@@ -471,12 +412,12 @@ exitHandler(void)
rtems_task
Init (rtems_task_argument ignored)
{
int i;
const char *argv[3] = { NULL, NULL, NULL };
rtems_interval ticksPerSecond;
int i;
const char *argv[3] = { NULL, NULL, NULL };
rtems_interval ticksPerSecond;
rtems_task_priority newpri;
rtems_status_code sc;
rtems_time_of_day now;
rtems_status_code sc;
rtems_time_of_day now;
/*
* Get configuration
@@ -491,13 +432,14 @@ Init (rtems_task_argument ignored)
/*
* Architecture-specific hooks
*/
#if defined(__i386__)
initRemoteGdb(ticksPerSecond);
#endif
if (epicsRtemsInitPreSetBootConfigFromNVRAM(&rtems_bsdnet_config) != 0)
delayedPanic("epicsRtemsInitPreSetBootConfigFromNVRAM");
if (rtems_bsdnet_config.bootp == NULL) {
extern void setBootConfigFromNVRAM(void);
setBootConfigFromNVRAM();
}
if (epicsRtemsInitPostSetBootConfigFromNVRAM(&rtems_bsdnet_config) != 0)
delayedPanic("epicsRtemsInitPostSetBootConfigFromNVRAM");
/*
* Override RTEMS configuration
@@ -513,30 +455,35 @@ Init (rtems_task_argument ignored)
initConsole ();
putenv ("TERM=xterm");
putenv ("IOCSH_HISTSIZE=20");
if (rtems_bsdnet_config.hostname) {
char *cp = mustMalloc(strlen(rtems_bsdnet_config.hostname)+3, "iocsh prompt");
sprintf(cp, "%s> ", rtems_bsdnet_config.hostname);
epicsEnvSet ("IOCSH_PS1", cp);
epicsEnvSet("IOC_NAME", rtems_bsdnet_config.hostname);
}
else {
epicsEnvSet ("IOCSH_PS1", "epics> ");
epicsEnvSet ("IOC_NAME", ":UnnamedIoc:");
}
/*
* Start network
*/
if (rtems_bsdnet_config.network_task_priority == 0) {
if (rtems_bsdnet_config.network_task_priority == 0)
{
unsigned int p;
if (epicsThreadHighestPriorityLevelBelow(epicsThreadPriorityScanLow, &p)
== epicsThreadBooleanStatusSuccess)
{
rtems_bsdnet_config.network_task_priority = epicsThreadGetOssPriorityValue(p);
}
}
printf("\n***** Initializing network *****\n");
rtems_bsdnet_initialize_network();
initialize_remote_filesystem(argv, initialize_local_filesystem(argv));
/*
* More environment: iocsh prompt and hostname
*/
{
char hostname[1024];
gethostname(hostname, 1023);
char *cp = mustMalloc(strlen(hostname)+3, "iocsh prompt");
sprintf(cp, "%s> ", hostname);
epicsEnvSet ("IOCSH_PS1", cp);
epicsEnvSet("IOC_NAME", hostname);
}
/*
* Use BSP-supplied time of day if available
*/

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