Compare commits

...

206 Commits

Author SHA1 Message Date
Andrew Johnson
d53521f160 Set version to 3.14.12.5-pre1 2015-02-25 16:23:05 -06:00
Andrew Johnson
12793d3313 Cosmetic changes in configure/os 2015-02-25 12:02:34 -06:00
Andrew Johnson
65d39fcbc8 Moved linux-arm cross-build link-time settings 2015-02-24 16:51:59 -06:00
Andrew Johnson
b7baa2504e Only build Cap5.so for the host architecture 2015-02-24 16:23:14 -06:00
Andrew Johnson
4a0880003c Support MinGW cross-builds on linux-x86 and x86_64 2015-02-24 14:30:42 -06:00
Andrew Johnson
d06b1a178a Applied Added-configure-files-for-linux-arm-debug.patch 2015-02-23 14:12:39 -06:00
Andrew Johnson
2bae36845e Adjust a few CONFIG_SITE files, mostly comments 2015-02-23 13:30:45 -06:00
Andrew Johnson
2d7a8a4aee Pull blockingSockTest.cpp from 3.15 2015-02-20 16:35:47 -06:00
Andrew Johnson
3601a73b77 Applied rtems-use-macro-for-BIN2BOOT.patch 2015-02-20 15:42:14 -06:00
Andrew Johnson
335cba0049 Applied rtems-mvme5500-needs-libbspExt.patch 2015-02-20 15:35:59 -06:00
Andrew Johnson
0f2d6eac9b Applied rtems-build-gesys-loadable-objects.patch 2015-02-20 15:34:57 -06:00
Andrew Johnson
88314d0374 Release notes for CMD_ variables 2015-02-20 15:24:29 -06:00
Andrew Johnson
4658a88584 Allow compiler flags from command line
The following variables are reserved for use from the
GNUmake command line:
  CMD_INCLUDES
  CMD_CPPFLAGS
  CMD_CFLAGS
  CMD_CXXFLAGS
  CMD_LDFLAGS
  CMD_DBFLAGS
  CMD_DBDFLAGS
  CMD_ARFLAGS

For example:
  make CMD_INCLUDES=/opt/local/include CMD_LDFLAGS=-L/opt/local/lib
2015-02-20 14:48:05 -06:00
Andrew Johnson
4cf3613ace Applied missing-header.patch 2015-02-20 12:38:26 -06:00
Andrew Johnson
0fa8702842 Applied test-epicsTimerQueue-reference-counter.patch 2015-02-20 12:34:53 -06:00
Andrew Johnson
a437768c9c Applied linux-runtime-disable-RT-priorities-if-not-supported.patch 2015-02-20 12:25:28 -06:00
Andrew Johnson
a6af0daae9 Applied linux-use-RT-thread-priorities.patch 2015-02-20 12:21:45 -06:00
Andrew Johnson
3e6597be90 Applied record-support-santity-check.patch 2015-02-20 12:13:05 -06:00
Michael Davidsaver
c0cf25eeee dbCa: dbCaPutLinkCallback initialize entire array
CA links will write the full target array size.
Ensure that uninitialized elements are zeroed.
2015-02-19 19:18:27 -05:00
Michael Davidsaver
3501fda48d dbCa: dbCaPutLinkCallback prevent out of bounds write
The internal buffer of the caLink is sized based on the
number of elements of the destination PV.
2015-02-19 19:18:16 -05:00
Andrew Johnson
e822d8d8c4 Suppress corrupt error output from dbStatic parser
The yyerror() routine gets called twice in some cases.
Don't print the yytext or input file location the second
time through -- yytext has already been freed, and the
user doesn't need to see the location twice.

Fixes lp:1422803
2015-02-19 17:33:27 -06:00
Andrew Johnson
9813fa6474 db: Allow link fields to return a DOUBLE value
A dbCa link does a ca_get with type DBR_CTRL_DOUBLE
to populate its list of attribute values immediately
after connecting. If the target is a DBF_*LINK field
it used to return an error, preventing the link from
properly connecting. This change makes dbGetField()
return a single NAN value instead of rejecting the
request.

Fixes: lp:545358
2015-02-19 15:55:48 -06:00
Andrew Johnson
b1e99f6f1a Merged Lewis Muir's readme-fixes branch 2015-02-18 17:11:51 -06:00
J. Lewis Muir
836d81f0b7 doc: HTML: fix typos and list of files in documentation directory 2015-02-18 16:55:09 -06:00
Andrew Johnson
804aeafaa7 Fix dbVerify()'s postfix buffer size 2015-02-18 16:44:07 -06:00
Andrew Johnson
dda4eb3a58 Fix more MS idiocy
Windows has signed characters, but if you pass a negative
value (i.e. a character with value >= 0x80) into the debug
version of its isprint() runtime library function it asserts.
2015-02-18 16:36:42 -06:00
J. Lewis Muir
b041041518 doc: fix typos and list of files in documentation directory 2015-02-18 15:46:05 -06:00
Andrew Johnson
d2a216b28e More MS Windows-x64 test fixes 2015-02-17 16:21:13 -06:00
Andrew Johnson
7e36a58f1e Back-ported dbLoadRecordsHook from the 3.15 branch 2015-02-17 14:29:20 -06:00
Andrew Johnson
f16bdb0c83 Merged trap-write-data branch 2015-02-17 14:02:15 -06:00
Andrew Johnson
681a996bf0 Unifying rsrv error messages 2015-02-17 13:59:13 -06:00
Michael Davidsaver
276ea54ee4 don't destroy locked mutex 2015-02-17 11:03:06 -05:00
Michael Davidsaver
2623c2f46f dbStaticLib.c: clean pdbbase after free 2015-02-17 11:01:49 -05:00
Michael Davidsaver
b996e63beb dbReadTest.c: flush errlog on exit as per lp:1419879 2015-02-17 10:57:05 -05:00
Michael Davidsaver
2f0e9172a4 tool_lib.c: ensure output string is always set
Ensure that val2str always writes to its output buffer,
which is static and shared between all PVs.
Should make bugs like lp:1418526 more obvious.
2015-02-17 10:45:30 -05:00
Andrew Johnson
c5ded30684 Extended asTrapWrite to provide put data
Backwards-compatible enhancement to the asTrapWrite API to provide
listener routines with the data being put by the client.
The asTrapWriteMessage structure is extended with 3 new fields
for data type, element count and a pointer to the source buffer.

Tim Mooney requested this enhancement for his caPutRecorder code,
which doesn't work if the record overwrites the new value within
its process() routine, e.g. when jogging a motor record.
2015-02-16 16:30:52 -06:00
Andrew Johnson
2e4d8b31ff Mark windows-x64 Math failures as TODO 2015-02-13 15:56:50 -06:00
Andrew Johnson
26d60bc516 Attempt to fix Windows test failures
epicsMessageQueue test wasn't printing the last test result.
2015-02-13 15:29:08 -06:00
Andrew Johnson
f874913cf7 Fix epicsExceptionTest on darwin
Clang's optimizer seems to elide the new (nothrow) if we don't
actually observe the value of p...
2015-02-13 12:17:24 -06:00
Andrew Johnson
26ab431c0a Back-ported the tapfiles build target from 3.15
This is the version that works on Windows.
2015-02-13 11:16:24 -06:00
Andrew Johnson
02aa7e2f73 Stop bogus error messages from CA Repeater on Windows
Required adding a new API to osiSock.h and the 2
implementations of epicsSocketConvertErrnoToString.
2015-02-10 18:10:33 -06:00
Andrew Johnson
727a3af59d Merged Richard Fearn's caget-lb-zero-fix branch
... after some modification.
2015-02-05 11:19:30 -06:00
Richard Fearn
1a094f5971 catools: make caget -lb output '0' instead of empty string for zero value 2015-02-05 11:53:33 +01:00
Andrew Johnson
4b0a4ffee2 Build configuration for iOS 2015-02-04 10:11:14 -06:00
Andrew Johnson
c91725d3a4 Linux flag changes to remove glibc 2.20 warnings
Replace _BSD_SOURCE and other flags with _GNU_SOURCE and _DEFAULT_SOURCE
2015-01-30 16:12:42 -06:00
Ralph Lange
6a9eccdec1 gdd: fix issue when copying from an emtpy array
if the source array is empty, the index of the first element to copy (0) being equal
   to the source array size (0) does not constitute an out-of-bounds condition
2015-01-29 14:36:55 +01:00
Andrew Johnson
2b950754c4 Fix FLNK-over-CA error message 2014-12-23 10:35:09 -06:00
Andrew Johnson
846d55dac5 Build support for 64-bit iPhone Simulator
From Tom Palaia.
2014-12-04 14:05:44 -06:00
Ralph Lange
db0fbf9f73 .bzrignore: add wildcard for suppressing QtCreator project files 2014-12-03 15:11:30 +01:00
Andrew Johnson
c1d33e614c Fix non-OS Perl xsubpp issue
This should be the right fix.
Also cleaned up compile warnings from Clang in the cap5 build.
2014-12-02 11:03:16 -06:00
Andrew Johnson
69eaaa17ba Fix xsubpp for RHEL 7 and derivatives.
It got moved. This might not be the final fix for those using an
add-on version of Perl though...
2014-12-01 12:12:09 -06:00
Andrew Johnson
89777707c4 cap5: Minor build change on Darwin 2014-11-17 10:56:28 -06:00
Andrew Johnson
3d03822043 CAref reformatting/prettification 2014-11-08 10:19:59 -06:00
Andrew Johnson
702edbf4af Merged Lewis Muir's CAref typo fixes 2014-11-07 15:35:30 -06:00
J. Lewis Muir
0d0ac88242 doc: Fix typos in CA reference manual 2014-11-07 14:56:41 -06:00
Andrew Johnson
53d9a07f64 Fix buffer overflow in epicsStrnRawFromEscaped
lp:1388313
2014-11-05 10:06:02 -06:00
Andrew Johnson
9f163ef8d9 Merged J Lewis Muir's typo-fix branch 2014-10-28 16:20:51 -05:00
J. Lewis Muir
f0156119be cap5: Fix doc typos 2014-10-22 11:03:40 -05:00
Andrew Johnson
f808e4309d cap5 Fixes
1. Support subscribing for DBR_GR_ENUM or DBR_CTRL_ENUM
2. Fix doc example on how to combine timestamp parts
2014-10-17 15:19:00 -05:00
Andrew Johnson
f59123bd3c Added Windows-x64-debug cross-build config file 2014-10-17 11:48:18 -05:00
Ralph Lange
49a9d64946 catools: better out-of-bounds handling when printing enums as DBR_GR/DBR_CTRL 2014-10-09 14:12:39 +02:00
Andrew Johnson
c5740c0dd0 Add relPaths.sh target to convertRelease.pl
This is a /bin/sh syntax version of the dllPath.bat file,
needed to run IOCs under Cygwin when SHARED_LIBRARIES=YES.
2014-10-08 14:18:08 -05:00
Andrew Johnson
e1eac6657d confiugre: Update the vxWorks Intel build configurations
Wind River changed from cc386 to ccpentium many years ago.
2014-09-24 16:53:44 -05:00
Andrew Johnson
02afb98f38 Reject NULL callback functions in ca_array_*_callback
Fixes lp:1369626
2014-09-17 10:21:07 -05:00
Ralph Lange
a5fe64a8ad dev, rec: Fix smoothing for NaN/+inf/-inf values in ai record and soft support 2014-08-01 17:20:55 +02:00
Andrew Johnson
152e8865cc Cleaned up exampleApp Makefiles 2014-07-28 11:38:30 -05:00
Andrew Johnson
2bf6d88607 templates: Quote path names in st.cmd files, permits spaces
Request from Eric Norum.
2014-07-01 10:55:52 -05:00
Jeff Hill johill@lanl.gov
e374ee4658 patched this code to force alignment of the if request structure, which appears to be required to avoid exceptions on RTEMS with cpu architectures that detect use of misaligned addresses 2014-06-10 22:37:21 -06:00
Jeff Hill johill@lanl.gov
ba6a32fefb protect against situations where the server name isnt specified at all in bootp/dhcp 2014-06-10 16:18:26 -06:00
Jeff Hill johill@lanl.gov
aff46bd19a allow the NFS mount path to be embedded in the bootp server name parameter, and therefore different from the NFS mount point 2014-06-05 08:19:09 -06:00
Jeff Hill johill@lanl.gov
39b068cf0a RTEMS support for Altera Nios2 arch 2014-06-05 08:09:33 -06:00
Andrew Johnson
6e01fd9c3d docs/cap5: Adjust link to CA Ref manual. 2014-04-30 12:07:30 -05:00
Andrew Johnson
2b7781c8d9 Support for Solaris 11 on x86 and SPARC.
Thanks to Bob Soliday for the necessary changes.
2014-04-25 16:51:28 -05:00
Andrew Johnson
9170d79ffe libCom/test: isinf() and isnan() want doubles
This apparently becomes important in a newer GCC version.
2014-04-25 14:08:25 -05:00
Janet Anderson
3019a5fb07 mkmf.pl needs -I prefix on include directories. 2014-04-14 15:09:59 -05:00
Janet Anderson
2efb1d0373 mkmf.pl needs -I prefix on include directories. 2014-04-14 15:00:37 -05:00
Andrew Johnson
ca9ef80760 configure: Cancel GNUMake built-in compiler rules
Their rules don't have our _INC dependencies, and were
being used in the gdd build (with no -I paths).
2014-04-10 12:35:47 -05:00
Andrew Johnson
475296ad49 Modify inc dependencies
Using inc causes a rebuild every time; replace it with
the list of include files that the compiler might use.
Also adjust gdd build to avoid a circular dependency.
2014-04-09 16:54:26 -05:00
Andrew Johnson
e2e40a4b9f configure: Add inc dependency to compile rules
The inc step must have been completed before we run
the C/C++ compilers to build any object files.
2014-04-07 12:38:03 -05:00
Andrew Johnson
a3b5ced30b CAref: Clean up HTML anchors
Only need to set name attribute on anchors, not id too.
Having both causes linklint warnings.
2014-03-14 15:43:29 -05:00
Andrew Johnson
e63f14bc95 configure: Fix for Ben's INC_osclass issue
Janet developed the fix, I documented it.
2014-03-12 16:42:18 -05:00
Andrew Johnson
b1ece5d8d2 cap5: Added CA->version function
Documented.
2014-03-11 17:46:14 -05:00
Andrew Johnson
894771e789 docs: Update Release Notes. 2014-03-11 17:14:30 -05:00
Andrew Johnson
f5b9db9583 libCom: Fix epicsString.h comparison functions
The string comparison functions epicsStrCaseCmp() and
epicsStrnCaseCmp() were returning incorrect results
when the strings did not match.

These functions now match their BSD equivalents, and
have working tests to confirm their operation.
2014-03-11 17:12:41 -05:00
Janet Anderson
4e1a5eefff Set BUILD_CLASS to HOST. 2014-03-04 09:21:35 -06:00
Janet Anderson
0ba29b2eff Set BUILD_CLASS to HOST. 2014-03-04 09:12:25 -06:00
Janet Anderson
5ad46f557c Added static cross builds for win32-x86 and windows-x64. 2014-03-03 16:34:06 -06:00
Janet Anderson
d90f4d7976 Added static build config files for win32-x86 and windows-x64. 2014-03-03 13:31:14 -06:00
Andrew Johnson
5bdd9ddca6 Windows: Fix static builds on MinGW
Xiaoqiang Wang proposed some fixes that allow static builds on
the MinGW targets to succeed. Some additional changes made to
blockingSockTest.cpp also clean that up.
2014-02-25 15:56:13 -06:00
Janet Anderson
7eba398792 If T_A not defined, define DEP and look for template files in the . dir. 2014-02-24 13:01:23 -06:00
Andrew Johnson
3fd8d4515c libCom/test: Finish converting blockingSockTest to epicsUnitTest
Don't call assert() from a test program,
it stops the tests from running if the assert fails.
2014-02-20 16:36:58 -06:00
Andrew Johnson
a591857c30 configure: Fixes to iOS build rules
From Tom Pelaia, these should now allow compiles for the
x86-based simulator as well as for ARM-based devices.
2014-02-17 10:12:53 -06:00
Andrew Johnson
6ad61aea32 Fix missing spaces in ADDR_LIST formats. 2014-02-11 17:44:14 -06:00
Andrew Johnson
b32127c5de libCom: Fix epicsTime::strftime() roll-over bug
Fractional seconds could round-up to .000 without
incrementing the integer seconds.
We can't actually do the latter, so we prevent the
roll-over and clamp at all 9's instead.
Idea from Eric Norum.
2014-01-29 16:52:22 -06:00
Andrew Johnson
bfde24907c doc: Prepare release notes for 3.14.12.5
In case there ever is one.
2013-12-16 17:29:30 -06:00
Janet Anderson
da6228f135 Set snapshot to 3.14.12.4-DEV 2013-12-16 16:16:34 -06:00
Janet Anderson
3009091875 Creating R3.14.12.3 2013-12-16 15:51:45 -06:00
Janet Anderson
6a0d5e0e87 Changed EPICS to Release 3.14.12.4 2013-12-16 15:48:54 -06:00
Andrew Johnson
97636a45e0 libCom: Remove epicsShareAPI from epicsExit APIs
Passing epicsExitCallAtExits into atexit() was generating
a warning about passing in a __stdcall routine pointer.
2013-12-16 14:52:29 -06:00
Andrew Johnson
a50c66b6ff libCom/test: Added epicsEnvTest.c
VxWorks 6.x can make environment variables private to each
thread, which doesn't work too well.
A test failure on VxWorks explains how to change the image
configuration to fix this.
2013-12-16 12:48:25 -06:00
Andrew Johnson
88ae947c84 configure: Refined how/when we pull in <top>/cfg files
Only read CONFIG* and RULES* files,
and only do so in build dirs, i.e. when T_A is defined.
2013-12-13 16:04:01 -06:00
Andrew Johnson
22540ac743 docs: Release note update.
Credit Peter Heesterman with windows build updates.
2013-12-11 18:11:51 -06:00
Andrew Johnson
197e992241 Fixed iocsh stream redirection for several commands
Eric provided the fixes to iocsh (empty commands would not reset
redirected streams), I fixed various commands.
2013-12-11 17:50:29 -06:00
Andrew Johnson
b0cf5c256a startup: Add cygwin-x86_64 to EpicsHostArch.pl script 2013-12-10 16:28:08 -06:00
Andrew Johnson
76e967c960 dbStatic: Fixed crash loading record of unknown type
Fixed segfault when dbLoadRecords tried to load a record of a
type that was not defined in its DBD files.
2013-12-04 17:37:42 -06:00
Andrew Johnson
4ac35ab85c docs: iPhone Simulator builds broken by Xcode 5
From Mark Engbretson, no known solution yet.
2013-12-04 10:37:44 -06:00
Janet Anderson
4209abe2cf Set snapshot to 3.14.12.4-rc1-DEV 2013-12-02 14:12:45 -06:00
Janet Anderson
90d1d9568c Creating 3.14.12.4-rc1 2013-12-02 13:56:17 -06:00
Janet Anderson
082df89090 Creating 3.14.12.4-rc1 2013-12-02 13:54:20 -06:00
Andrew Johnson
78a4e462d5 libCom: Recognize hex literals in epicsStrtod()
Allows Windows and VxWorks to accept hex integers as a double.
2013-12-02 11:12:19 -06:00
Andrew Johnson
bd82554299 Set snapshot to 3.14.12.4-pre1-DEV 2013-11-20 18:03:16 -06:00
Andrew Johnson
1a3e7414b3 Creating 3.14.12.4-pre1 2013-11-20 18:02:28 -06:00
Andrew Johnson
9ab6f89604 Clean up epicsExport.h includes
Mostly in record and device support, this commit puts
the include in the right place and moves some other
includes around to get the order right.
2013-11-20 16:21:10 -06:00
Andrew Johnson
570993e32b configure: New targets cygwin-x86_64 and windows-x64-mingw 2013-11-19 18:50:49 -06:00
Andrew Johnson
93be1400c1 Fixed various 64-bit windows build issues. 2013-11-19 18:42:45 -06:00
Andrew Johnson
176ee926ad cygwin: Fixed SocketSystemCallInterruptMechanism
Cygwin changed it back again.
2013-11-19 18:41:03 -06:00
Andrew Johnson
2d52067484 libCom: Clean up build warnings from Visual Studio. 2013-11-19 15:26:22 -06:00
Andrew Johnson
66209118f6 libCom/macLib: Don't use unsigned chars in macParseDefns()
These pointers are really pointing to standard chars.
2013-11-13 12:39:23 -06:00
Andrew Johnson
d6dab34ae9 Merged changes from Jeff Hill's ca-ref-man-maint branch.
This contains only text changes to the CA reference manual.
2013-11-07 17:57:09 -06:00
Andrew Johnson
4b44881744 db: Fixed bogus dbScan overrun warnings
Penalizing the 0.1 second scan thread by 0.1 seconds
guarantees another overrun in most cases...
Warning message improved.

Also added a release note for Jeff's CAS commit.
2013-10-17 17:21:26 -05:00
Jeff Hill
42f4c3a0a5 fixed potential memory leak 2013-10-17 09:23:47 -06:00
Andrew Johnson
2ad468dd38 CAref: Fix returns from ca_attach_context()
ECA_NORMAL was missing, ECA_ISATTACHED given twice.
2013-09-27 09:59:34 -05:00
Andrew Johnson
2bf4b36639 configure: Support Apple Xcode 5.0 and iOS 7.0
Not tested on the 64-bit ARMv8 architecture, although it should be
compatible (confirmation would be welcome).
2013-09-24 15:30:26 -05:00
Andrew Johnson
6814b09fad docs: Release Notes update
... for several recent commits.
2013-09-13 17:30:38 -05:00
Andrew Johnson
2d3a828acd Fixed read-back of TSEL link
Reading back a .TSEL field that was originally pointed to
another record's .TIME field was exposing internal details
that didn't need to be made visible. This commit hides the
.TIME => .VAL change completely, and allows a .TSEL link
field to be saved and restored properly using autosave.
2013-09-13 11:57:18 -05:00
Andrew Johnson
4ae048572a Added dbTemplateMaxVars variable
Allows users to configure dbLoadTemplate command to accept more than
100 variables or a larger string buffer for variables.
2013-09-13 11:36:52 -05:00
Andrew Johnson
e49210a3ea configure: IOS version bump to 6.1 2013-08-30 12:50:34 -05:00
Andrew Johnson
d25eff3af7 configure: Darwin build settings
Modify comments and defaults for darwin builds.
Changing to use gcc wasn't working.
2013-08-30 11:51:51 -05:00
Andrew Johnson
01f0fdbf1e More file permission fixes. 2013-08-19 15:46:51 -05:00
Andrew Johnson
3219ea0608 Fixed file permissions. 2013-08-19 13:30:19 -05:00
Ralph Lange
fb983fe382 CAref: typos, replace ..._event() calls with ..._subscription() (by J. Lewis Muir) 2013-08-16 17:00:13 +02:00
Andrew Johnson
ffa96d36e1 db: dbpf can now put strings to UCHAR arrays
Also improved the dbpf error message on value conversion failures.
Source code reformatting inside dbTest.c as well.
2013-08-01 18:10:18 -05:00
Janet Anderson
515f882c7b Added OPT_CXXFLAGS_YES += -g 2013-07-25 10:49:26 -05:00
Janet Anderson
d3b6d01807 Added WIN32 system library for epicsSockResolveTest 2013-07-17 15:55:49 -05:00
Andrew Johnson
f2891d72e5 ca: Add missing template instances for VxWorks 5.5.x 2013-07-10 14:55:34 -05:00
Andrew Johnson
75a5f19d2e IOCS_APPL_TOP must be absolute path
Fix a recently introduced problem where cdCommands and envParams
had TOP as a relative path (which actually worked by chance).
Also fixed a problem with convertRelease hanging when the -t
argument matched the absolute path to TOP.
2013-07-10 14:13:31 -05:00
Andrew Johnson
98deef5004 configure: Added FULLPATHNAME tool variable
Changed os/CONFIG files where we use the fullPathName.pl script.
2013-07-10 14:07:51 -05:00
Andrew Johnson
c187d8c13a CAref: typo's, added missing ca_put_callback 2013-07-05 13:26:26 -05:00
Andrew Johnson
1289f99e30 rec: Additional dependencies for parallel builds. 2013-06-21 10:36:26 -05:00
Andrew Johnson
ef5d88d3e5 libCom: Back-ported aToIPAddr fix from 3.15 branch.
Cherry-picked 3.15 revno 12398 with some changes.
2013-06-07 17:03:55 -05:00
Andrew Johnson
93449dccb8 ca: Fix acctst.c for older C compilers
All declarations must still precede other statements within a block...
2013-06-07 16:08:57 -05:00
Andrew Johnson
863e8fdd3b libCom: Fix VxWorks localtime_r() and gmtime_r() wrappers
Wind River changed the return value between VxWorks 6.8 and 6.9.
2013-06-07 14:35:45 -05:00
Andrew Johnson
ee9c0ba409 ca: Minor reference manual tweaks. 2013-05-28 15:07:33 -05:00
Andrew Johnson
7f82c2f32e libCom: Added osi/os/WIN32/osdFindSymbol.c
Implemented by Dirk Zimoch.
2013-05-28 14:16:22 -05:00
Jeff Hill johill@lanl.gov
e0bc071de3 merged in fix for https://bugs.launchpad.net/epics-base/+bug/1179642
also merged in removal of c++ support for old HPUX compiler
2013-05-16 12:33:31 -06:00
Andrew Johnson
593e313fab dbStatic: More commands accept "" or "*" to mean 'all'
dbDumpRecordType, dbDumpMenu and dbDumpRecord commands improved.
2013-05-09 15:48:49 -05:00
Andrew Johnson
34744264e1 libCom: Fix win32 handle leak
Closing an epicsThread would leak one Win32 handle.
Reported by Giles Knap, Diamond.
2013-05-06 17:29:10 -05:00
Andrew Johnson
5ac686fafd tools: Munch support for module destructors
Added in VxWorks 6.9
2013-04-25 17:00:36 -05:00
Andrew Johnson
7e347b2de9 libCom: Fix sysAtReboot registration on vxWorks 6.8+
Removed C++ static constructor, do it from epicsThreadInit()
2013-04-24 12:52:05 -05:00
Andrew Johnson
5bc15b72a1 libCom: Add some missing #include guards.
There are still quite a few missing in libCom/osi/os/*
2013-04-11 12:56:56 -05:00
Andrew Johnson
880db9d4af configure: Set IOCS_APPL_TOP from INSTALL_LOCATION
Fixes lp:1165257
2013-04-09 12:39:26 -05:00
Andrew Johnson
58c031238b configure: Modify help rule to use $(DIVIDER)
... in case someone changes it.
2013-04-01 10:03:38 -05:00
Andrew Johnson
f824246baa Add configuration for vxWorks 6.9 builds. 2013-03-29 11:17:09 -05:00
Andrew Johnson
f9a0c82a63 libCom/osi: Resolve bcopyLongs() conflict on vxWorks 6.9 2013-03-28 17:17:41 -05:00
Andrew Johnson
a4edc46a5f dbStatic: Allow empty DB & DBD files
They used to cause a Syntax error with a bad context string.
2013-03-20 16:53:10 -05:00
Andrew Johnson
738b8ca55f libCom: Add a High-Resolution Time Provider on MacOS
Since Apple don't support clock_gettime(CLOCK_REALTIME) I added a
new time provider that uses the Mach kernel Clock service to get
nanosecond resolution time.
2013-03-13 14:48:34 -05:00
Andrew Johnson
c767958539 gdd: Build tweaks
Remove obselete HPUX warning flags
Disable strict-aliasing to suppress warnings (RTEMS, Linux)
2013-02-11 17:49:05 -06:00
Andrew Johnson
8400e74606 Fix epicsRingPointerGetSize()
Definition name didn't match declaration.

Fixes lp:1109785 reported by Martin Konrad.
2013-01-29 18:02:51 -06:00
Andrew Johnson
451c4cc854 Unify #! line for Perl scripts
/usr/bin/env exists on all current workstation OSs.
2013-01-23 07:29:07 -06:00
Andrew Johnson
038a1140f4 Fix drift in periodic scan times.
Method from Eric Norum, with warnings added by me.

Fixes lp:597054
2013-01-09 18:12:30 -06:00
Jeff Hill
89d000be08 fixed problems with ca clear channel protocol during reload of the access security file.
See https://bugs.launchpad.net/epics-base/+bug/1091401.
2012-12-18 14:32:12 -07:00
Janet Anderson
a0798939b3 R3.14.13.3-DEV 2012-12-17 14:24:23 -06:00
Janet Anderson
a5999242b0 Creating R3.14.12.3 2012-12-17 14:13:19 -06:00
Janet Anderson
9e484306d6 Creating R3.14.12.3 2012-12-17 14:11:47 -06:00
Andrew Johnson
835199a45d RTEMS: Bump the version number
Also show the other COMMANDLINE_LIBRARY choices.
2012-12-13 15:52:06 -06:00
Andrew Johnson
0df6f849d6 Document another Launchpad bug fix from Jeff 2012-12-13 15:50:44 -06:00
Jeff Hill
75e32c9086 fix for https://bugs.launchpad.net/epics-base/+bug/1090009 2012-12-13 09:35:18 -07:00
Ralph Lange
b7018dd16d ca: Fix bug in "Firewalls" section of Channel Access reference manual 2012-12-11 23:38:42 +01:00
Janet Anderson
3498a6d4e0 Update readline libraries and dont have readline the default 2012-12-05 15:02:26 -06:00
Janet Anderson
f90f021309 Added SHRLIB_PERMISSIONS 2012-12-05 14:34:18 -06:00
Andrew Johnson
c1203076f2 Release Notes update
Mark Rivers asked for documentation on the new
workstation OS stack sizes.
2012-12-04 11:15:41 -06:00
Andrew Johnson
753622315c Set snapshot to 3.14.12.3-rc1-DEV 2012-12-03 16:41:53 -06:00
Andrew Johnson
910ab38af6 Creating 3.14.12.3-rc1 2012-12-03 16:39:27 -06:00
Andrew Johnson
0e990bbe0c Update release notes. 2012-12-03 13:34:27 -06:00
Andrew Johnson
ef5688f8de libCom: Accept hex literals in CALC expressions
Code back-ported from the 3.15 branch.
2012-12-03 12:58:26 -06:00
Andrew Johnson
d622bbad05 Fix compiler warnings on linux-x86 2012-12-03 12:48:11 -06:00
Janet Anderson
416cf68fd1 Make target not first prerequisite depend on Makefile. 2012-12-03 09:33:08 -06:00
Andrew Johnson
cbde3ea9fd cas: Added propertyEventMask support
Allows server tools to send DBE_PROPERTY events to clients.
New functionality not tested, but fairly trivial and doesn't
break existing server tools.
2012-11-30 17:42:47 -06:00
Andrew Johnson
6f9c2db8a8 libCom: Revert 12374 which breaks MSVC++ builds
Both the Microsoft 2008 and 2010 compilers fail with this change.
2012-11-30 13:32:25 -06:00
Andrew Johnson
01276d952f ca: Build caRepeater etc. by default
Exceptions for vxWorks, RTEMS and iOS which don't support
executable programs like the workstation OSs.
2012-11-26 15:37:54 -06:00
Andrew Johnson
809633d698 Set snapshot to 3.14.12.3-pre1-DEV 2012-11-19 15:04:58 -06:00
Andrew Johnson
1f573172b3 Creating 3.14.12.3-pre1 2012-11-19 15:02:22 -06:00
Andrew Johnson
d6f72900f8 Update release notes. 2012-11-19 13:19:04 -06:00
Andrew Johnson
5b1d3a7725 conigure: Fix iOS build warning.
from Tom Palaia.
2012-11-19 10:48:24 -06:00
Andrew Johnson
7d79a83519 Apple iOS updates from Tom Pelaia
Adds iOS 6.0, which is now the default.
- changed the default iOS SDK to version 6.0
- use xcrun to locate the selected compiler
- added armv7s as an option for architecture
- made armv7 + armv7s the default architecture
- renamed the LLVM compiler option to LLVM_GNU for clarity
  since LLVM is naturally associated with CLANG
2012-11-17 13:18:16 -06:00
Andrew Johnson
6fd9fb3066 libCom: Removed epicsSingleton workaround
This undoes commit 11565, "workaround for archaic T202 g++ bug"
which doesn't actually seem to be necessary for T202 compilation.
It also replaces 'typename' with 'class', for another compiler.

Modification provided by Dirk Zimoch.
2012-11-16 16:14:13 -06:00
Andrew Johnson
28c7fe12f3 configure: Added Guobao Shen's comments on using MacPorts GCC 2012-11-16 12:54:29 -06:00
Andrew Johnson
36be0aa783 rec: Fix minor string in + out issue.
Undo strncmp+strncpy to strcmp+strcpy change in r12048.
The 'n' versions are needed because device support was
never explicitly required to Nil-terminate the string.
The dbAccess routines do enforce termination though.
2012-11-16 12:40:57 -06:00
Andrew Johnson
69d8be78d3 startup: Recognize 64-bit Windows
For 64-bit versions of Perl on Windows, the EpicsHostArch.pl
script will now return the host architecture "windows-x64".
2012-11-01 14:57:36 -05:00
Andrew Johnson
fc61cc34ce iocLogServer fix for unsigned char arch's
Reported by Guy Jennings
2012-10-31 13:56:12 -05:00
Andrew Johnson
e889336458 db: Undefined alarm limits should return NaN
Where the record doesn't provide get_alarm_double() or for fields
where the default applies, we were still returning 0.
2012-10-17 18:08:39 -05:00
Michael Davidsaver
7cac267a4b db: Fix possible error handling in dbPut 2012-10-11 18:10:00 -05:00
Andrew Johnson
71079ede4b rec/aSub: Fixes from Michael Davidsaver
* Changing the number of elements in a VALx array triggers monitors
* Post monitors on the NEVx fields, following EFLG
* Remove artificial limit on array sizes
2012-10-11 17:51:00 -05:00
Michael Davidsaver
26173c1e0d devLib: add compatibility typedef for VME table type 2012-10-10 15:52:34 -05:00
Andrew Johnson
9c1b8ba952 rec: Fix problem with NAN in MLST/ALST fields
If MLST or ALST became NAN the associated monitor would never trigger.
Now a NAN will cause it to always trigger.
2012-10-06 21:48:01 -05:00
Andrew Johnson
c574722a9b catools: Fix syntax error from vxWorks gcc. 2012-09-11 15:19:29 -05:00
Andrew Johnson
4790578953 tools: Try harder to collapse ../ components in AbsPath
Idea from Angus Gratton, ANU
2012-09-11 12:11:55 -05:00
Ralph Lange
7e6e38060f catools: Change behaviour of camonitor when printing array of chars as string
camonitor was using strlen() to find out the length of the array to print as %s string,
which led to printing old buffer contents when the array-string was not null terminated.
Now uses the minimum of strlen(), elements received, and elements requested.

Suggested by Mark Rivers on tech-talk (11 Sep 2012)
2012-09-11 16:58:43 +02:00
Ralph Lange
709b6ef2f3 catools: Fix off-by-one bug in caput
An internal buffer was allocated one char too short, when caput was used
with the '-S' (send string as array of chars) option.

Reported by J. Lewis Muir (tech-talk on 17-Aug-2012)
2012-09-03 21:25:44 +02:00
Andrew Johnson
169b30081a Fix for vxWorks 6.x LED_ID
Use LED_ID in epicsReadline.c
Provide a typedef for vxWorks 5.x where it doesn't exist.
2012-08-31 16:05:14 -05:00
Andrew Johnson
a19e1d21da libCom: Fix epicsSnprintf() under MinGW
Use the Microsoft _vscprintf() function which was just missing
a prototype in earlier versions of MinGW's stdio.h header.
2012-08-31 15:57:59 -05:00
Andrew Johnson
1ac8ff6378 as: Make asSetFilename() warn on relative paths
Tell the user if they try this.  They'll get an error from
asInit() later, but it gets lost easily in other noise.
2012-08-28 16:35:52 -05:00
Janet Anderson
5c2ef73c4a Fixed X11 include definitions, X11_INC and XPM_INC. 2012-08-20 12:27:39 -05:00
Andrew Johnson
958aa02320 Change build defaults for darwin-x86
* Use clang and clang++
* Build for x86_64 only
2012-08-20 10:03:50 -05:00
Andrew Johnson
c93c7b5e36 configure: Fix test rules dependency 2012-08-07 10:37:13 -05:00
Andrew Johnson
b993e29fad configure: Minor fixes
Don't add extraneous characters when SHRLIB_VERSION or GNU_TARGET
are empty.  The addprefix or addsuffix functions only include the
prefix/suffix part if the list argument is not empty.

This fixes issues naming libCap5.so at build-time.
2012-08-07 09:41:21 -05:00
336 changed files with 5870 additions and 3644 deletions

View File

@@ -6,3 +6,4 @@
./include
./templates
**/O.*
./QtC-*

View File

@@ -1,17 +1,13 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2013 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.
#*************************************************************************
#
# $Revision-Id$
#
# The developer may edit this file.
# assume T_A is the host arch if not specified
#
# Common build definitions
@@ -89,8 +85,6 @@ endif
-include $(CONFIG)/os/CONFIG_SITE.Common.$(T_A)
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
endif
# Include <top>/cfg/CONFIG* definitions from tops defined in RELEASE* files
#
ifneq ($(CONFIG),$(TOP)/configure)
@@ -103,12 +97,12 @@ endif
# Include $(INSTALL_CFG)/CONFIG* definitions
#
ifndef T_A
TOP_CFG_CONFIGS = $(wildcard $(INSTALL_CFG)/CONFIG*)
ifneq ($(TOP_CFG_CONFIGS),)
include $(TOP_CFG_CONFIGS)
endif
endif
endif # ifdef T_A
# User specific definitions
#
@@ -119,22 +113,3 @@ ifdef T_A
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH).$(T_A)
endif
# All options
# may be overridden here.
#
# EXAMPLES
# --------
# Build client objects statically ? must be either YES or NO
#STATIC_BUILD=NO
# Host build optimization, must be either YES or NO
#HOST_OPT=YES
# Cross build optimization, must be either YES or NO
#CROSS_OPT=YES
# Generate Verbose Compiler Warnings for host build, must be either YES or NO
#HOST_WARN=YES
# Generate Verbose Compiler Warnings for cross compile builds, must be either YES or NO
#CROSS_WARN=YES
#etc.
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-68040

View File

@@ -376,17 +376,6 @@ USR_LIBS += $(USR_LIBS_DEFAULT)
endif
endif
#
# concat specific include files
#
ifneq ($(strip $(INC_$(OS_CLASS))),)
INC += $(subst -nil-,,$(INC_$(OS_CLASS)))
else
ifdef INC_DEFAULT
INC+=$(INC_DEFAULT)
endif
endif
#
# concat specific library contents (if defined) to SYS_PROD_LIBS
#

View File

@@ -63,7 +63,8 @@ DBEXPAND = $(call PATH_FILTER, $(TOOLS)/dbExpand$(HOSTEXE))
DBTORECORDTYPEH = $(call PATH_FILTER, $(TOOLS)/dbToRecordtypeH$(HOSTEXE))
DBTOMENUH = $(call PATH_FILTER, $(TOOLS)/dbToMenuH$(HOSTEXE))
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
CONVERTRELEASE=$(PERL) $(TOOLS)/convertRelease.pl
CONVERTRELEASE = $(PERL) $(TOOLS)/convertRelease.pl
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
#-------------------------------------------------------
# tools for installing libraries and products

View File

@@ -1,5 +1,5 @@
#*************************************************************************
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
# Copyright (c) 2012 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.
@@ -30,11 +30,11 @@ EPICS_MODIFICATION = 12
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included if zero
EPICS_PATCH_LEVEL = 2
EPICS_PATCH_LEVEL = 5
# This will end in -DEV between official releases
EPICS_DEV_SNAPSHOT=-DEV
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-DEV
EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
#EPICS_DEV_SNAPSHOT=-pre2
#EPICS_DEV_SNAPSHOT=-pre2-DEV

View File

@@ -76,9 +76,12 @@ INSTALL_DB = $(INSTALL_LOCATION)/db
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
INSTALL_JAVA = $(INSTALL_LOCATION)/javalib
#Directory for OS independant build created files
# Directory for OS independant build created files
COMMON_DIR = ../O.Common
# IOC's absolute path to $(TOP), may be overridden inside the application
IOCS_APPL_TOP = $(shell $(FULLPATHNAME) $(INSTALL_LOCATION))
#-------------------------------------------------------
# Make echo output - suppress echoing if make's '-s' flag is set
NOP = :
@@ -206,6 +209,16 @@ USR_CPPFLAGS =
USR_DBDFLAGS =
USR_ARFLAGS =
# Variables to be set only on the command-line:
# CMD_INCLUDES =
# CMD_CFLAGS =
# CMD_CXXFLAGS =
# CMD_LDFLAGS =
# CMD_CPPFLAGS =
# CMD_DBFLAGS =
# CMD_DBDFLAGS =
# CMD_ARFLAGS =
# Debug specific options
DEBUG_CPPFLAGS =
DEBUG_CFLAGS =
@@ -264,32 +277,35 @@ RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
# Flags
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
$(TARGET_INCLUDES) $(USR_INCLUDES) $(OP_SYS_INCLUDES) $($(BUILD_CLASS)_INCLUDES)
$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES)\
$($(BUILD_CLASS)_INCLUDES)
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
$(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS) $(DEBUG_CXXFLAGS)\
$(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS) $(ARCH_DEP_CXXFLAGS)\
$(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(POSIX_LDFLAGS) \
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $($(BUILD_CLASS)_LDFLAGS)\
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDLIBS = \
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS) $(GNU_LDLIBS_$(GNU))
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
$(GNU_LDLIBS_$(GNU))
CPPFLAGS += $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS)\
$(OPT_CPPFLAGS) $(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS)\
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
#--------------------------------------------------
# ar definition default
ARFLAGS =
ARCMD = $(AR) $(ARFLAGS) $(USR_ARFLAGS) $@ $(LIBRARY_LD_OBJS)
ARCMD = $(AR) $(ARFLAGS) $(USR_ARFLAGS) $(CMD_ARFLAGS) $@ $(LIBRARY_LD_OBJS)
#--------------------------------------------------
# 'Munch' link-edit
@@ -320,8 +336,7 @@ PREPROCESS.cpp = $(CPP) $(CPPFLAGS) $(INCLUDES) $< > $@
HDEPENDS = YES
HDEPENDS_METHOD = CMD
HDEPENDS_INCLUDES = $(subst -I,,$(INCLUDES))
HDEPENDSFLAGS = -m $*$(DEP) $(HDEPENDS_INCLUDES) $@ $<
HDEPENDSFLAGS = -m $*$(DEP) $(INCLUDES) $@ $<
HDEPENDSCMD = -$(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDSFLAGS)
HDEPENDS_CMD_NO = $(ECHO) ""
@@ -371,6 +386,7 @@ INSTALL_LIB_INSTALLS = $(addprefix $(INSTALL_LIB)/,$(notdir $(LIB_INSTALLS)))
# Installed file permissions
BIN_PERMISSIONS = 555
LIB_PERMISSIONS = 444
SHRLIB_PERMISSIONS = 555
INSTALL_PERMISSIONS = 444
#---------------------------------------------------------------

View File

@@ -1,10 +1,10 @@
#*************************************************************************
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# Copyright (c) 2013 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 the file LICENSE that is included with this distribution.
# in the file LICENSE that is included with this distribution.
#*************************************************************************
# $Revision-Id$
#
@@ -12,7 +12,7 @@
#
# --------------------------------------------------------------
# Module developers can now define a new type of file, e.g. ABC,
# Module developers can now define a new type of file, e.g. ABC,
# so that files of type ABC will be installed into a directory
# defined by INSTALL_ABC. This is done by creating a new CONFIG<name>
# file, e.g. CONFIG_ABC, with the following lines:
@@ -24,8 +24,14 @@
# $(INSTALL_LOCATION). The file type ABC should be target
# architecture independent (alh files, medm files, edm files).
#
# Optional rules necessary for files of type ABC should be put in
# a RULES_ABC file.
# Files of type ABC are then installed into the INSTALL_ABC
# directory by adding a line like the following to a Makefile.
#
# ABC += <filename1> <filename2> <filename3>
#
# Rules necessary to create files of type ABC should be put in
# a RULES_ABC file. Variables used by those rules should appear
# in a CONFIG_ABC file.
#
# The module developer installs new CONFIG* or RULES* files
# into the directory $(INSTALL_LOCATION)/cfg by including the
@@ -33,16 +39,11 @@
#
# CFG += CONFIG_ABC RULES_ABC
#
# Files of type ABC are installed into INSTALL_ABC directory
# by adding a line like the following to a Makefile.
#
# ABC += <filename1> <filename2> <filename3>
#
# Files in $(INSTALL_LOCATION)/cfg directory are now included by
# the base config files so the definitions and rules are available
# for use by later src directory Makefiles in the same module or
# by other modules with a RELEASE line pointing to the TOP of
# the module with RULES_ABC.
# CONFIG and RULES files in the $(INSTALL_LOCATION)/cfg directory
# are included by the Base config files so their definitions and
# rules are available for use by later src directory Makefiles in
# the same module, or by other modules with a RELEASE line that
# points to the TOP of the module providing these files.
FILE_TYPE += ADL
INSTALL_ADL = $(INSTALL_LOCATION)/adl
@@ -59,6 +60,6 @@ INSTALL_EDL = $(INSTALL_LOCATION)/edl
FILE_TYPE += PERL_MODULES
INSTALL_PERL_MODULES = $(INSTALL_LOCATION_LIB)/perl
INSTALLS_CFG= $(CFG:%= $(INSTALL_CFG)/%)
INSTALLS_CFG = $(CFG:%= $(INSTALL_CFG)/%)
DIRECTORY_TARGETS += $(foreach type, $(FILE_TYPE),$(INSTALL_$(type)))

View File

@@ -19,6 +19,7 @@
# 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)
# cygwin-x86_64 (cygwin compiler used for host builds)
# darwin-ppc (PowerPC based Apple running OSX)
# darwin-ppcx86 (Universal binaries for both CPUs)
# darwin-x86 (Intel based Apple running OSX)
@@ -41,6 +42,7 @@
# win32-x86-cygwin (WIN32 API with cygwin GNU compiler used for host builds)
# win32-x86-mingw (MinGW compiler used for host builds)
# windows-x64 (MS Visual C++ compiler used for host builds)
# windows-x64-mingw (MinGW compiler used for host builds)
# Debugging builds
# linux-x86-debug (GNU compiler with -g option for host builds)
@@ -72,6 +74,7 @@
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
# linux-microblaze
# linux-xscale_be
# vxWorks-486
# vxWorks-68040
@@ -119,9 +122,9 @@ CROSS_COMPILER_HOST_ARCHS=
# NOTE: os/CONFIG.$(EPICS_HOST_ARCH).$(EPICS_HOST_ARCH) files and
# os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(EPICS_HOST_ARCH) files may override
#
# NOTE WIN32: YES results in a DLL. Valid settings are
# SHARED_LIBRARIES=YES and STATIC_BUILD=NO
# SHARED_LIBRARIES=NO and STATIC_BUILD=YES
# NOTE Windows: YES results in a DLL. Valid settings are
# SHARED_LIBRARIES=YES and STATIC_BUILD=NO
# SHARED_LIBRARIES=NO and STATIC_BUILD=YES
#
SHARED_LIBRARIES=YES
@@ -173,7 +176,7 @@ COMPAT_313=NO
#INSTALL_LOCATION=<fullpathname>
# Use POSIX thread priority scheduling (YES or NO)
USE_POSIX_THREAD_PRIORITY_SCHEDULING = NO
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
# Site version number, if set will append '-' and this string to the
# EPICS version number string that is reported by many tools

View File

@@ -24,8 +24,8 @@ vpath %.acs $(USR_VPATH) $(GENERIC_SRC_DIRS) $(COMMON_DIR)
DBD_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DBD) $(RELEASE_DBD_DIRS)
DB_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DB) $(RELEASE_DB_DIRS)
DBDFLAGS = $(USR_DBDFLAGS) $(addprefix -I,$(DBD_SEARCH_DIRS))
DBFLAGS = $($*_DBFLAGS) $(USR_DBFLAGS) $(addprefix -I,$(DB_SEARCH_DIRS))
DBDFLAGS = $(USR_DBDFLAGS) $(CMD_DBDFLAGS) $(addprefix -I,$(DBD_SEARCH_DIRS))
DBFLAGS = $($*_DBFLAGS) $(USR_DBFLAGS) $(CMD_DBFLAGS) $(addprefix -I,$(DB_SEARCH_DIRS))
#####################################################
# To allow os specific dbd files AND have the -j option work properly,
@@ -119,6 +119,9 @@ DBDDEPENDS_CMD = -$(MKMF) -m $(notdir $@)$(DEP) $(DBDDEPENDS_FLAGS) $@ $<
ifndef T_A
DEP = .d
TEMPLATE3+=$(addsuffix .template, $(TEMPLATE2))
COMMON_DIR = .
INSTALL_DBDS =
INSTALL_DBS =
@@ -131,7 +134,7 @@ ACTIONS += build
ACTIONS += install
ACTIONS += buildInstall
ACTIONS += browse
ACTIONS += runtests
ACTIONS += runtests tapfiles
actionArchTargets = $(foreach x, $(ACTIONS),\ $(foreach arch,$(BUILD_ARCHS), $(x)$(DIVIDER)$(arch)))
@@ -228,7 +231,7 @@ $(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd
$(COMMON_DIR)/%Record.h: %Record.dbd
@$(RM) $(notdir $@)$(DEP)
@$(DBDDEPENDS_CMD)
echo "$< : ../Makefile" >> $(notdir $@)$(DEP)
echo "$@ : ../Makefile" >> $(notdir $@)$(DEP)
@$(RM) $(notdir $@)
$(DBTORECORDTYPEH) $(DBDFLAGS) $< $(notdir $@)
@$(MV) $(notdir $@) $@
@@ -244,7 +247,7 @@ $(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd
$(COMMON_DIR)/menu%.h: menu%.dbd
@$(RM) $(notdir $@)$(DEP)
@$(DBDDEPENDS_CMD)
echo "$< : ../Makefile" >> $(notdir $@)$(DEP)
echo "$@ : ../Makefile" >> $(notdir $@)$(DEP)
@$(RM) $(notdir $@)
$(DBTOMENUH) $(DBDFLAGS) $< $(notdir $@)
@$(MV) $(notdir $@) $@
@@ -269,7 +272,7 @@ $(COMMON_DIR)/%.dbd: $(COMMON_DIR)/%Include.dbd
$(COMMON_DIR)/%.dbd: %Include.dbd
@$(RM) $(notdir $@)$(DEP)
@$(DBDDEPENDS_CMD)
echo "$< : ../Makefile" >> $(notdir $@)$(DEP)
echo "$@ : ../Makefile" >> $(notdir $@)$(DEP)
$(ECHO) "Expanding dbd"
@$(RM) $(notdir $@)
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $<
@@ -368,17 +371,14 @@ $(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
##################################################### register record,device,driver support
IOC_INST_TOP := $(firstword $(IOCS_APPL_TOP) \
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION) ) )
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
@$(RM) $@ $*.tmp
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOC_INST_TOP) > $*.tmp
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOCS_APPL_TOP) > $*.tmp
$(MV) $*.tmp $@
%_registerRecordDeviceDriver.cpp: %.dbd
@$(RM) $@ $*.tmp
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOC_INST_TOP) > $*.tmp
$(REGISTERRECORDDEVICEDRIVER) $< $(basename $@) $(IOCS_APPL_TOP) > $*.tmp
$(MV) $*.tmp $@
.PRECIOUS: %_registerRecordDeviceDriver.cpp

View File

@@ -1,13 +1,13 @@
#*************************************************************************
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
# Copyright (c) 2013 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 file LICENSE that is included with this distribution.
#*************************************************************************
#RULES.ioc
include $(CONFIG)/RULES_DIRS
build$(DIVIDER)$(ARCH) build: buildInstall
@@ -15,24 +15,20 @@ install$(DIVIDER)$(ARCH) install: buildInstall
$(ARCH): buildInstall
ifeq ($(filter $(ARCH),$(BUILD_ARCHS)),$(ARCH))
buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
clean$(DIVIDER)$(ARCH) clean:
$(RM) cdCommands envPaths dllPath.bat
else
buildInstall$(DIVIDER)$(ARCH) buildInstall:
clean$(DIVIDER)$(ARCH) clean:
endif
cdCommands envPaths dllPath.bat: $(wildcard $(TOP)/configure/RELEASE*) \
$(TOP)/configure/CONFIG $(INSTALL_BIN)
ifeq ($(IOCS_APPL_TOP),)
$(PERL) $(TOOLS)/convertRelease.pl -a $(ARCH) $@
clean$(DIVIDER)$(ARCH) clean:
$(RM) cdCommands envPaths dllPath.bat relPaths.sh
else
$(PERL) $(TOOLS)/convertRelease.pl -a $(ARCH) -t $(IOCS_APPL_TOP) $@
buildInstall$(DIVIDER)$(ARCH) buildInstall:
clean$(DIVIDER)$(ARCH) clean:
endif
cdCommands envPaths dllPath.bat relPaths.sh: \
$(wildcard $(TOP)/configure/RELEASE*) \
$(wildcard $(TOP)/configure/CONFIG_SITE*) $(INSTALL_BIN)
$(CONVERTRELEASE) -a $(ARCH) -t $(IOCS_APPL_TOP) $@
realclean:
$(RM) cdCommands envPaths dllPath.bat
$(RM) cdCommands envPaths dllPath.bat relPaths.sh

View File

@@ -17,7 +17,7 @@ ACTIONS += build
ACTIONS += install
ACTIONS += buildInstall
ACTIONS += browse
ACTIONS += runtests
ACTIONS += runtests tapfiles
#ACTIONS += rebuild
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))

View File

@@ -96,6 +96,8 @@ ifneq (,$(strip $(TESTS)))
TARGETS += testspec
endif
TAPFILES += $(TESTSCRIPTS:.t=.tap)
#---------------------------------------------------------------
# Libraries
#
@@ -142,7 +144,8 @@ clean::
@$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) $(LIBNAME) $(SHRLIBNAME) \
$(INC) $(TARGETS) $(DLL_LINK_LIBNAME) $(TDS) \
*.out MakefileInclude $(LOADABLE_SHRLIBNAME) *.manifest *.exp \
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) $(TESTSCRIPTS)
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) \
$(TESTSCRIPTS) $(TAPFILES)
ifdef RES
@$(RM) *$(RES)
endif
@@ -195,17 +198,23 @@ $(OBJLIBNAME):%$(OBJ):
@$(RM) $@
$(COMPILE.ctdt) $<
%$(OBJ): %.c
# Cancel GNUMake's built-in rules, which don't have our _INC
# dependencies so could get used in some circumstances (gdd)
%.o : %.c
%.o : %.cc
%.o : %.cpp
%$(OBJ): %.c $(COMMON_INC) $(INSTALL_INC)
@$(HDEPENDS_CMD)
@$(RM) $@
$(COMPILE.c) $(call PATH_FILTER,$<) $(COMPILE_FILTER.c)
%$(OBJ): %.cc
%$(OBJ): %.cc $(COMMON_INC) $(INSTALL_INC)
@$(HDEPENDS_CMD)
@$(RM) $@
$(COMPILE.cpp) $(call PATH_FILTER,$<) $(COMPILE_FILTER.cpp)
%$(OBJ): %.cpp
%$(OBJ): %.cpp $(COMMON_INC) $(INSTALL_INC)
@$(HDEPENDS_CMD)
@$(RM) $@
$(COMPILE.cpp) $(call PATH_FILTER,$<) $(COMPILE_FILTER.cpp)
@@ -322,26 +331,38 @@ $(OBJLIB_MUNCHNAME):%.munch : %_ctdt$(OBJ) %$(OBJ)
@$(RM) $@
$(MUNCH_CMD)
runtests: $(TESTSCRIPTS_$(BUILD_CLASS))
# GeSys modules for RTEMS
$(MODNAME): %$(MODEXT): %$(EXE)
@echo "Building module $@"
@$(RM) $@
$(LINK.mod)
runtests: $(TESTSCRIPTS)
-$(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^
testspec: $(TESTSCRIPTS_$(BUILD_CLASS))
testspec: $(TESTSCRIPTS)
@$(RM) $@
@echo OS-class: $(OS_CLASS) > $@
@echo Target-arch: $(T_A) >> $@
$(if $^, @echo Tests: $^ >> $@)
$(if $(TESTSPEC_$(OS_CLASS)), @echo "Harness: $(TESTSPEC_$(OS_CLASS))" >> $@)
tapfiles: $(TESTSCRIPTS) $(TAPFILES)
# A .tap file is the output from running the associated test script
%.tap: %.t
-$(PERL) $< -tap > $@
# If there's a perl test script (.plt) available, use it
%.t: ../%.plt
@$(RM) $@
@$(CP) $< $@
$(CP) $< $@
# Some versions of Test::Harness expect test programs in perl only.
# Test programs (.t files) must be written in Perl.
# Generate a perl program to exec the real test binary.
%.t: %$(EXE)
%.t: %$(EXE) $(TOOLS)/makeTestfile.pl
@$(RM) $@
@$(PERL) $(TOOLS)/makeTestfile.pl $@ $<
$(PERL) $(TOOLS)/makeTestfile.pl $@ $<
#---------------------------------------------------------------
## Install rules for BIN_INSTALLS and LIB_INSTALLS
@@ -383,7 +404,7 @@ $(INSTALL_LIB)/%.lib: %.lib
$(INSTALL_SHRLIBS): $(INSTALL_SHRLIB)/%: %
$(ECHO) "Installing shared library $@"
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_SHRLIB)
@$(INSTALL_LIBRARY) -d -m $(SHRLIB_PERMISSIONS) $< $(INSTALL_SHRLIB)
ifneq ($(SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE))
ifneq (,$(strip $(SHRLIB_VERSION)))
@$(RM) $(subst $(SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE),$@)

View File

@@ -12,7 +12,8 @@
ARCHS += $(BUILD_ARCHS)
ACTIONS += inc build install buildInstall clean realclean archclean runtests
ACTIONS += inc build install buildInstall clean realclean archclean
ACTIONS += runtests tapfiles
dirPart = $(join $(dir $@), $(word 1, $(subst $(DIVIDER), ,$(notdir $@))))

View File

@@ -1,10 +1,10 @@
#*************************************************************************
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
# Copyright (c) 2013 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 the file LICENSE that is included with this distribution.
# in the file LICENSE that is included with this distribution.
#*************************************************************************
# $Revision-Id$
#
@@ -36,13 +36,11 @@ endif
endif
#---------------------------------------------
# Include existing and new $(INSTALL_CFG)/* definitions
# Include our own $(INSTALL_CFG)/RULES* definitions
#
TOP_CFG_FILES = $(sort $(wildcard $(INSTALL_CFG)/RULES*) \
$(wildcard $(INSTALL_CFG)/CONFIG*) \
$(addprefix $(INSTALL_CFG)/,$(CFG)))
ifneq ($(TOP_CFG_FILES),)
include $(TOP_CFG_FILES)
TOP_CFG_RULES = $(wildcard $(INSTALL_CFG)/RULES*)
ifneq ($(TOP_CFG_RULES),)
include $(TOP_CFG_RULES)
endif
#---------------------------------------------------------------

0
configure/RULES_TARGET Executable file → Normal file
View File

View File

@@ -64,11 +64,11 @@ help:
@echo " rebuild - Same as clean install"
@echo " archclean - Removes O.<arch> dirs but not O.Common dir"
@echo "\"Partial\" build targets supported by Makefiles:"
@echo " inc.<arch> - Installs <arch> only header files."
@echo " build.<arch> - Builds and installs <arch> only."
@echo " install.<arch> - Builds and installs <arch> only."
@echo " clean.<arch> - Cleans <arch> binaries in O.<arch> dirs only."
@echo " uninstall.<arch> - Remove bin & lib directories for <arch> only."
@echo " inc$(DIVIDER)<arch> - Installs <arch> only header files."
@echo " build$(DIVIDER)<arch> - Builds and installs <arch> only."
@echo " install$(DIVIDER)<arch> - Builds and installs <arch> only."
@echo " clean$(DIVIDER)<arch> - Cleans <arch> binaries in O.<arch> dirs only."
@echo " uninstall$(DIVIDER)<arch> - Remove bin & lib directories for <arch> only."
@echo "Targets supported by top level Makefile:"
@echo " archuninstall - Remove bin & lib directories created by this hostarch."
@echo " uninstall - Remove install directories created by this hostarch."

0
configure/Sample.Makefile Executable file → Normal file
View File

View File

@@ -49,28 +49,29 @@ RANLIB := $(RTEMS_TOOLS)/bin/$(RANLIB)
VALID_BUILDS = Ioc
#--------------------------------------------------
# The RTEMS Makefiles redefine several macros, so we have to go
# through the following contortions to get the EPICS flags back.
CFLAGS = $(CROSS_CFLAGS) $(OPT_CFLAGS) $(DEBUG_CFLAGS)\
$(WARN_CFLAGS) $(TARGET_CFLAGS) $(USR_CFLAGS) $(ARCH_DEP_CFLAGS)\
$(CODE_CFLAGS) $(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)\
$(HDEPENDS_CFLAGS)
# The RTEMS Makefiles redefine several macros, so we have to
# reset them to the proper EPICS values, from CONFIG_COMMON
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
CXXFLAGS = $(CROSS_CXXFLAGS) $(OPT_CXXFLAGS)\
$(DEBUG_CXXFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS) $(USR_CXXFLAGS)\
$(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS) $(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS)\
$(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS) $(HDEPENDS_CFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) \
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS) $(CROSS_LDFLAGS)\
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LDLIBS = \
$(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
$(GNU_LDLIBS_$(GNU))
CPPFLAGS += $(CROSS_CPPFLAGS) $(POSIX_CPPFLAGS)\
$(BASE_CPPFLAGS) $(TARGET_CPPFLAGS) $(USR_CPPFLAGS) $(ARCH_DEP_CPPFLAGS)\
$(OP_SYS_CPPFLAGS) $(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
CPPFLAGS += $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
#--------------------------------------------------
# Although RTEMS uses gcc, it wants to use gcc its own way
@@ -82,6 +83,8 @@ OPT_CXXFLAGS_YES = $(CFLAGS_OPTIMIZE_V)
OPT_CFLAGS_NO = $(CFLAGS_DEBUG_V)
OPT_CXXFLAGS_NO = $(CFLAGS_DEBUG_V)
MODEXT=.obj
#--------------------------------------------------
# operating system class (include/os/<os_class>)
OS_CLASS = RTEMS
@@ -96,6 +99,42 @@ OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \
$(PROJECT_RELEASE)/lib/no-signal.rel \
$(PROJECT_RELEASE)/lib/no-rtmon.rel
MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
# Do not link against libraries which are part of the Generic Image
GESYS_LIBS += -lgcc
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++ -lbspExt
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
# While not part of the Generic Image it provides symbols which
# would conflict.
GESYS_LIBS += -lrtemsCom
#--------------------------------------------------
# Options for building GeSys loadable objects
MODNAME_YES = $(PRODNAME:%$(EXE)=%$(MODEXT))
MODNAME += $(MODNAME_$(USE_GESYS))
PRODTARGETS += $(MODNAME)
BIN_INSTALLS += $(MODNAME)
# changes to LDFLAGS in CONFIG_COMMON and LINK.cpp in CONFIG.Common.UnixCommon
# should be reflected here with the following exceptions
#
# replace OP_SYS_LDFLAGS with MOD_SYS_LDFLAGS
# replace PROD_LDLIBS with MOD_LDLIBS
# remove STATIC_LDFLAGS
MOD_LDLIBS = $(filter-out $(GESYS_LIBS),$(PROD_LDLIBS))
MOD_LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(POSIX_LDFLAGS) \
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(MOD_SYS_LDFLAGS) $($(BUILD_CLASS)_LDFLAGS)\
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
LINK.mod = $(CCC) -o $@ $(PRODDIR_LDFLAGS) $(MOD_LDFLAGS)
LINK.mod += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(MOD_LDLIBS)
#--------------------------------------------------
# RTEMS has neither shared libraries nor dynamic loading
STATIC_BUILD=YES

View File

@@ -22,4 +22,6 @@ define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
endef
OP_SYS_LDLIBS += -lbspExt
include $(CONFIG)/os/CONFIG.Common.RTEMS

View File

@@ -12,7 +12,7 @@ MUNCH_SUFFIX = .boot
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
define MUNCH_CMD
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< temp.bin
$(PROJECT_RELEASE)/build-tools/bin2boot $@ 0x00097E00 \
$(BIN2BOOT) $@ 0x00097E00 \
$(PROJECT_RELEASE)/lib/start16.bin 0x00097C00 0 temp.bin 0x00100000 0
rm -f temp.bin
endef

View File

@@ -20,8 +20,8 @@ OBJ = .o
LIB_PREFIX = lib
LIB_SUFFIX = .a
SHRLIB_SUFFIX_BASE = .so
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE).$(SHRLIB_VERSION)
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE).$(LOADABLE_SHRLIB_VERSION)
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(SHRLIB_VERSION))
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(LOADABLE_SHRLIB_VERSION))
LOADABLE_SHRLIB_PREFIX = lib
#-------------------------------------------------------
@@ -50,7 +50,7 @@ SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS))\
$(LDLIBS)
SHRLIB_DEPLIB_DIRS = $(foreach word,$(sort $(dir $($*_DEPLIBS) $(SHRLIB_DEPLIBS))), \
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
$(shell $(FULLPATHNAME) $(word)))
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-L%)
@@ -73,7 +73,7 @@ PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
PROD_DEPLIB_DIRS = $(foreach word,$(sort $(dir $($*_DEPLIBS) $(PROD_DEPLIBS))), \
$(shell $(PERL) $(TOOLS)/fullPathName.pl $(word)))
$(shell $(FULLPATHNAME) $(word)))
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-L%)

View File

@@ -14,7 +14,7 @@ OS_CLASS = cygwin32
ARCH_CLASS = x86
# Definitions used when COMMANDLINE_LIBRARY is READLINE
LDLIBS_READLINE = -lreadline -lcurses
LDLIBS_READLINE = -lreadline
POSIX_CPPFLAGS = -D_POSIX_THREADS -D_POSIX_TIMERS
#POSIX_CPPFLAGS += -D_POSIX_SOURCE

View File

@@ -0,0 +1,14 @@
# CONFIG.Common.cygwin-x86_64
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for cygwin-x86_64 target builds
# Sites may override these definitions in CONFIG_SITE.Common.cygwin-x86_64
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.cygwin-x86
ARCH_DEP_CFLAGS = -m64
ARCH_DEP_LDFLAGS = -m64

View File

@@ -11,6 +11,8 @@
IOS_PLATFORM = iPhoneOS
OP_SYS_CFLAGS += -fno-inline-functions
OP_SYS_CFLAGS += -miphoneos-version-min=$(IOS_DEPLOYMENT_TARGET)
OP_SYS_LDFLAGS += -miphoneos-version-min=$(IOS_DEPLOYMENT_TARGET)
# iOS optimization flags for arm architecture
OPT_CFLAGS_YES = -O2

View File

@@ -10,10 +10,8 @@
IOS_PLATFORM = iPhoneSimulator
#
# Architecture-specific information
#
ARCH_CLASS = i386
OP_SYS_CFLAGS += -mios-simulator-version-min=$(IOS_DEPLOYMENT_TARGET)
OP_SYS_LDFLAGS += -mios-simulator-version-min=$(IOS_DEPLOYMENT_TARGET)
# Include definitions common to all iOS targets
include $(CONFIG)/os/CONFIG.Common.iosCommon

View File

@@ -25,7 +25,7 @@ OS_CLASS = iOS
#--------------------------------------------------
# GNU and SDK directories
GNU_DIR = $(PLATFORM_DIR)/Developer/usr
SDK_DIR = $(PLATFORM_DIR)/Developer/SDKs/$(IOS_PLATFORM)$(IOS_VERSION).sdk
SDK_DIR = $(PLATFORM_DIR)/Developer/SDKs/$(IOS_PLATFORM).sdk
#-------------------------------------------------------
# Build architecture flags
@@ -40,7 +40,8 @@ ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
#--------------------------------------------------
# Operating system flags
OP_SYS_CFLAGS += -isysroot $(SDK_DIR) -D__IPHONE_OS_VERSION_MIN_REQUIRED=30200
OP_SYS_CFLAGS += -isysroot $(SDK_DIR)
OP_SYS_LDFLAGS += -isysroot $(SDK_DIR)
#--------------------------------------------------
# Always compile in debugging symbol table information
@@ -53,13 +54,15 @@ OPT_CXXFLAGS_YES += -g
CC_GNU = gcc
CCC_GNU = g++
CC_LLVM = llvm-gcc
CCC_LLVM = llvm-g++
CC_LLVM_GNU = llvm-gcc
CCC_LLVM_GNU = llvm-g++
CC_CLANG = clang
CCC_CLANG = clang++
CC = $(firstword $(wildcard $(GNU_BIN)/$(CC_$(COMPILER))) $(CC_$(COMPILER)))
CCC = $(firstword $(wildcard $(GNU_BIN)/$(CCC_$(COMPILER))) $(CCC_$(COMPILER)))
# Convert the iOS platform to lowercase for passing to xcrun's sdk parameter
XCRUN_SDK_BASE = $(shell echo $(IOS_PLATFORM) | tr A-Z a-z)
#-------------------------------------------------------
# Linker flags
@@ -70,7 +73,7 @@ OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib -L$(SDK_DIR)/usr/lib/system
# Shared libraries
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(shell perl $(TOOLS)/fullPathName.pl $(INSTALL_LIB))/$@ \
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(SHRLIB_VERSION)
SHRLIB_SUFFIX_BASE = .dylib
@@ -93,13 +96,17 @@ vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
#--------------------------------------------------
# Header dependency file generation
#
# Use compiler when ARCH_CLASS is a single arch value
# otherwise use perl script command
SINGLE_ARCH=$(filter 1,$(words $(ARCH_CLASS)))
HDEPENDS_CFLAGS = $(if $(SINGLE_ARCH),$(HDEPENDS_CFLAGS_$(HDEPENDS)))
HDEPENDS_METHOD = $(if $(SINGLE_ARCH),CFLAGS,CMD)
HDEPENDS_METHOD = CMD
#--------------------------------------------------
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.Common.iosCommon
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).iosCommon
#--------------------------------------------------
# Find the Xcode programs for the selected SDK
CC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CC_$(COMPILER)))
CCC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CCC_$(COMPILER)))
AR := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ar) -rc
LD := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ld) -r
RANLIB := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ranlib)

View File

@@ -1,9 +1,7 @@
# 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
# Override these settings in CONFIG_SITE.Common.linux-arm
#-------------------------------------------------------
# Include definitions common to all Linux targets
@@ -11,26 +9,3 @@ include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm
ifeq ($(BUILD_CLASS),CROSS)
VALID_BUILDS = Ioc
GNU_TARGET = arm-linux
# prefix of compiler tools
CMPLR_SUFFIX =
CMPLR_PREFIX = $(GNU_TARGET)-
# Provide a link-time path for shared libraries
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for products
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for readline
RUNTIME_LDFLAGS_READLINE_YES = -Wl,-rpath-link,$(GNU_DIR)/lib
RUNTIME_LDFLAGS_READLINE = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_CURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_NCURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
endif

View File

@@ -0,0 +1,13 @@
# CONFIG.Common.linux-arm-debug
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for linux-arm with debug compiler flags
# Override these settings in CONFIG_SITE.Common.linux-arm-debug
#-------------------------------------------------------
# Include definitions common to all linux-arm target archs
include $(CONFIG)/os/CONFIG.Common.linux-arm
HOST_OPT=NO

View File

@@ -12,13 +12,10 @@ include $(CONFIG)/os/CONFIG.Common.UnixCommon
OS_CLASS = Linux
CODE_CPPFLAGS = -D_REENTRANT
POSIX_CPPFLAGS = -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500
# Define _GNU_SOURCE and _DEFAULT_SOURCE for maximum portability
POSIX_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE
POSIX_LDLIBS = -lpthread
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
OP_SYS_CPPFLAGS += -Dlinux
OP_SYS_LDLIBS += -lrt -ldl

View File

@@ -21,7 +21,6 @@ COMPILER_LDFLAGS += -mt
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
POSIX_CPPFLAGS += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_$(SOLARIS_VERSION))
POSIX_CPPFLAGS += -D_XOPEN_SOURCE=500
POSIX_LDLIBS += -lposix4 -lpthread $(POSIX_LDLIBS_$(SOLARIS_VERSION))
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS)

View File

@@ -21,7 +21,6 @@ COMPILER_LDFLAGS += -mt
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
POSIX_CPPFLAGS += -D_POSIX_C_SOURCE=199506L $(POSIX_CPPFLAGS_$(SOLARIS_VERSION))
POSIX_CPPFLAGS += -D_XOPEN_SOURCE=500
POSIX_LDLIBS += -lposix4 -lpthread $(POSIX_LDLIBS_$(SOLARIS_VERSION))
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS)
@@ -53,6 +52,7 @@ OP_SYS_LDLIBS += -lsocket -lnsl
OP_SYS_LDLIBS_8 += -ldl -lCrun -lc
OP_SYS_LDLIBS_9 += -ldl -lCrun -lc
OP_SYS_LDLIBS_10 += -lCrun -lc
OP_SYS_LDLIBS_11 += -lCrun -lc
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))

View File

@@ -17,4 +17,5 @@ STLPORT_LDLIBS_NO =
OP_SYS_LDLIBS_8 = -ldl -lc
OP_SYS_LDLIBS_9 = -ldl -lc
OP_SYS_LDLIBS_10 = -lc
OP_SYS_LDLIBS_11 = -lc

View File

@@ -11,14 +11,13 @@
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 386
CMPLR_SUFFIX = pentium
ARCH_CLASS = pc486
ARCH_CLASS = x86
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -D_X86_
ARCH_DEP_CFLAGS = -m486
ARCH_DEP_CXXFLAGS += -x 'c++'
ARCH_DEP_CFLAGS += -fno-defer-pop
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -D_X86_
ARCH_DEP_CFLAGS = -mtune=i486 -march=i486
ARCH_DEP_CFLAGS += -fno-zero-initialized-in-bss -fno-defer-pop
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-486

View File

@@ -11,12 +11,14 @@
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
# Vx GNU cross compiler suffix
CMPLR_SUFFIX = 386
ARCH_CLASS = pcPentium
CMPLR_SUFFIX = pentium
ARCH_DEP_CPPFLAGS = -DCPU=PENTIUM -D_X86_
ARCH_DEP_CFLAGS = -mpentium
ARCH_DEP_CXXFLAGS += -x 'c++'
ARCH_DEP_CFLAGS += -fno-defer-pop
ARCH_CLASS = x86
ARCH_DEP_CPPFLAGS = -DCPU=PENTIUM -D_X86_
ARCH_DEP_CFLAGS = -mtune=pentium -march=pentium
ARCH_DEP_CFLAGS += -fno-zero-initialized-in-bss -fno-defer-pop
# Allow site overrides
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-pentium

View File

@@ -93,6 +93,7 @@ VX_GNU_VERSION_6.5 = 3.4.4
VX_GNU_VERSION_6.6 = 4.1.2
VX_GNU_VERSION_6.7 = 4.1.2
VX_GNU_VERSION_6.8 = 4.1.2
VX_GNU_VERSION_6.9 = 4.3.3
VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_VERSION))
VX_GNU_MAJOR_VERSION = $(basename $(basename $(VX_GNU_VERSION)))
@@ -134,6 +135,7 @@ NM_DIR_6.5 = $(WORKBENCH_BIN)
NM_DIR_6.6 = $(WORKBENCH_BIN)
NM_DIR_6.7 = $(GNU_BIN)
NM_DIR_6.8 = $(UTILITIES_BIN)
NM_DIR_6.9 = $(UTILITIES_BIN)
NM_DIR = $(firstword $(NM_DIR_$(VXWORKS_VERSION)) $(GNU_BIN))
NM = $(NM_DIR)/$(CMPLR_PREFIX)nm$(CMPLR_SUFFIX)$(HOSTEXE)

View File

@@ -34,7 +34,8 @@ ARCH_DEP_LDFLAGS += -m32
# Override for -DUNIX from CONFIG.Common.UnixCommon
OP_SYS_CPPFLAGS = -D_MINGW
EXE=.exe
EXE = .exe
RES = .coff
VISC_DLL_NO = -DEPICS_DLL_NO
VISC_DLL_YES =

View File

@@ -0,0 +1,15 @@
# CONFIG.Common.windows-x64-mingw
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-mingw target builds
# Sites may override these definitions in CONFIG_SITE.Common.windows-x64-mingw
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.Common.win32-x86-mingw
ARCH_CLASS = x64
ARCH_DEP_CFLAGS = -m64
ARCH_DEP_LDFLAGS = -m64

View File

@@ -0,0 +1,10 @@
# CONFIG.cygwin-x86_64.Common
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for cygwin-x86_64 host archs
# Sites may override these definitions in CONFIG_SITE.cygwin-x86_64.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.cygwin-x86.Common

View File

@@ -0,0 +1,11 @@
# CONFIG.cygwin-x86_64.cygwin-x86_64
#
# $Revision-Id$
#
# Definitions for cygwin-x86_64 host - cygwin-x86_64 target builds
# Sites may override these definitions in CONFIG_SITE.cygwin-x86_64.cygwin-x86_64
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/os/CONFIG.cygwin-x86.cygwin-x86

View File

@@ -59,15 +59,17 @@ COMMANDLINE_LIBRARY=READLINE
GNU_DIR = /usr
CC = $(GNU_BIN)/cc
CCC = $(GNU_BIN)/c++
# Apple soft-links these compilers to clang/clang++
CC = cc
CCC = c++
GNU = NO
#
# Darwin shared libraries
#
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
-install_name $(shell perl $(TOOLS)/fullPathName.pl $(INSTALL_LIB))/$@ \
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
-current_version $(SHRLIB_VERSION)
SHRLIB_SUFFIX_BASE = .dylib

View File

@@ -0,0 +1,12 @@
# CONFIG.linux-arm-debug.Common
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for linux-arm-debug host builds
# Override these settings in CONFIG_SITE.linux-arm-debug.Common
#-------------------------------------------------------
#Include definitions common to linux-arm hosts
include $(CONFIG)/os/CONFIG.linux-arm.Common

View File

@@ -0,0 +1,14 @@
# CONFIG.linux-arm-debug.linux-arm-debug
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for linux-arm-debug host and target build
# Override these settings in CONFIG_SITE.linux-arm-debug.linux-arm-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-arm.linux-arm
# Removes -O optimization and adds -g compile option
HOST_OPT=NO

View File

@@ -0,0 +1,15 @@
# CONFIG.linux-arm.linux-arm-debug
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for linux-arm host - linux-arm-debug target build
# Override these settings in CONFIG_SITE.linux-arm.linux-arm-debug
#-------------------------------------------------------
-include $(CONFIG)/os/CONFIG.linux-arm.linux-arm
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-arm
-include $(CONFIG)/os/CONFIG_SITE.linux-arm.linux-arm
BUILD_CLASS=HOST
HOST_OPT=NO

View File

@@ -1,10 +1,31 @@
# 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
# Override these settings in CONFIG_SITE.linux-x86.linux-arm
#-------------------------------------------------------
# Copied from x86.x86
VALID_BUILDS = Ioc
GNU_TARGET = arm-linux
# prefix of compiler tools
CMPLR_SUFFIX =
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
# Provide a link-time path for shared libraries
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for products
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath-link,%)
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
# Provide a link-time path for readline
RUNTIME_LDFLAGS_READLINE_YES = -Wl,-rpath-link,$(GNU_DIR)/lib
RUNTIME_LDFLAGS_READLINE = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_CURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
RUNTIME_LDFLAGS_READLINE_NCURSES = $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
# Library flags
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic

View File

@@ -0,0 +1,9 @@
# CONFIG.linux-x86.linux-arm-debug
#
# Definitions for linux-x86 host - linux-arm-debug target builds
# Override these settings in CONFIG_SITE.linux-x86.linux-arm-debug
#-------------------------------------------------------
# Include definitions for linux-arm targets
include $(CONFIG)/os/CONFIG.linux-x86.linux-arm

View File

@@ -0,0 +1,22 @@
# CONFIG.linux-x86.win32-x86-mingw
#
# Definitions for linux-x86 host win32-x86-mingw target builds
# Override these definitions in CONFIG_SITE.linux-x86.win32-x86-mingw
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
# Add resource compiler
RCCMD = $(CMPLR_PREFIX)windres$(CMPLR_SUFFIX) $(INCLUDES) $< $@
# Remove -fPIC flags, add out-implib
SHRLIB_CFLAGS =
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
# Don't link with gcc library
GNU_LDLIBS_YES =
# Link with winsock2
OP_SYS_LDLIBS = -lws2_32

View File

@@ -0,0 +1,8 @@
# CONFIG.linux-x86_64.linux-arm
#
# Definitions for linux-x86_64 host - linux-arm target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86_64.linux-arm
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-arm

View File

@@ -0,0 +1,8 @@
# CONFIG.linux-x86_64.linux-arm-debug
#
# Definitions for linux-x86_64 host - linux-arm-debug target builds
# Override these settings in CONFIG_SITE.linux-x86_64.linux-arm-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-arm

View File

@@ -0,0 +1,9 @@
# CONFIG.linux-x86_64.win32-x86-mingw
#
# Definitions for linux-x86_64 host win32-x86-mingw target builds
# Override these definitions in CONFIG_SITE.linux-x86_64.win32-x86-mingw
#-------------------------------------------------------
# Settings as for the linux-x86 host architecture
include $(CONFIG)/os/CONFIG.linux-x86.win32-x86-mingw

View File

@@ -7,9 +7,10 @@
# Sites may override these definitions in CONFIG_SITE.solaris-sparc.solaris-sparc
#-------------------------------------------------------
SPARCWORKS = /opt/SUNWspro
GNU = NO
# SPARCWORKS path is set in a CONFIG_SITE file
CC = $(SPARCWORKS)/bin/cc
CCC = $(SPARCWORKS)/bin/CC
CPP = $(CC) -E -Qn

View File

@@ -261,7 +261,7 @@ LINK.cpp += , $@ ,,$(LINKLIBS) $(subst /,\\,$(PROD_LDLIBS))
#--------------------------------------------------
# override of CONFIG_COMMON
HDEPENDS_INCLUDES_MKMF = $(filter-out $(BORLAND_INC),$(subst -I,,$(INCLUDES)))
HDEPENDS_INCLUDES_MKMF = $(filter-out $(addprefix -I,$(BORLAND_INC)),$(INCLUDES))
TDS = $(addsuffix .tds,$(basename $(PROD) $(TESTPROD) $(BUILD_LIBRARY)))

View File

@@ -9,21 +9,27 @@
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon
# gcc, g++, ar, ld, and ranlib must be in user's path
CC = gcc
CCC = g++
AR = ar -rc
LD = ld -r
RANLIB = ranlib
RES=.coff
RCCMD = windres $(INCLUDES) $< $@
# Undo various things set by CONFIG.gnuCommon
# No -fPIC avoids "-fPIC ignored for target (all code is position independent)"
CMPLR_PREFIX =
# Remove $(GNU_BIN)/ path
CC = $(CMPLR_PREFIX)gcc
CCC = $(CMPLR_PREFIX)g++
AR = $(CMPLR_PREFIX)ar -rc
LD = $(CMPLR_PREFIX)ld -r
RANLIB = $(CMPLR_PREFIX)ranlib
# Add resource compiler
RCCMD = $(CMPLR_PREFIX)windres $(INCLUDES) $< $@
# Remove -fPIC flags, add out-implib
SHRLIB_CFLAGS =
SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
LOADABLE_SHRLIB_LDFLAGS = -shared -Wl,--out-implib,$(LIB_PREFIX)$*$(LIB_SUFFIX)
# Override linking with gcc library from CONFIG.gnuCommon
# Don't link with gcc library
GNU_LDLIBS_YES =
OP_SYS_LDLIBS = -lws2_32
# Link with winsock2
OP_SYS_LDLIBS = -lws2_32

View File

@@ -0,0 +1,11 @@
# CONFIG.win32-x86-static.Common
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for win32-x86-static host archs
# Sites may override these definitions in CONFIG_SITE.win32-x86-static.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86.Common

View File

@@ -0,0 +1,13 @@
# CONFIG.win32-x86-static.win32-x86.static
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for win32-x86-static target archs when host arch is win32-x86-static
# Sites may override these definitions in CONFIG_SITE.win32-x86-static.win32-x86-static
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@@ -189,7 +189,8 @@ OP_SYS_CXXFLAGS = $(COMPILER_CXXFLAGS)
# '-entry:_DllMainCRTStartup$(DLLENTRY)'
DLLENTRY = @12
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) $(USR_LDFLAGS) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
WIN32_DLLFLAGS = /subsystem:windows /dll $(OPT_LDFLAGS) \
$(USR_LDFLAGS) $(CMD_LDFLAGS) $(TARGET_LDFLAGS) $(LIB_LDFLAGS)
#
# specify dll .def file only if it exists

View File

@@ -0,0 +1,14 @@
# CONFIG.win32-x86.win32-x86-static
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for win32-x86-static target archs when host arch is win32-x86
# Sites may override these definitions in CONFIG_SITE.win32-x86.win32-x86-static
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
BUILD_CLASS = HOST
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@@ -0,0 +1,11 @@
# CONFIG.windows-x64-mingw.Common
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-mingw host archs
# Sites may override these definitions in CONFIG_SITE.windows-x64-mingw.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.win32-x86-mingw.Common

View File

@@ -0,0 +1,11 @@
# CONFIG.windows-x64-mingw.windows-x64-mingw
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-mingw target archs
# Sites may override these definitions in CONFIG_SITE.windows-x64-mingw.windows-x64-mingw
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/os/CONFIG.win32-x86-mingw.win32-x86-mingw

View File

@@ -0,0 +1,11 @@
# CONFIG.windows-x64-static.Common
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-static host archs
# Sites may override these definitions in CONFIG_SITE.windows-x64-static.Common
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.windows-x64.Common

View File

@@ -0,0 +1,13 @@
# CONFIG.windows-x64-static.windows-x64-static
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-static target archs when host arch is windows-x64-static
# Sites may override these definitions in CONFIG_SITE.windows-x64-static.windows-x64-static
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
SHARED_LIBRARIES = NO
STATIC_BUILD= YES

View File

@@ -0,0 +1,12 @@
# CONFIG.windows-x64.windows-x64-debug
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64 compiler host - windows-x64 debug compiler target builds
# Sites may override these definitions in CONFIG_SITE.windows-x64.windows-x64-debug
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
HOST_OPT=NO

View File

@@ -0,0 +1,14 @@
# CONFIG.windows-x86.windows-x86-static
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Definitions for windows-x64-static target archs when host arch is windows-x64
# Sites may override these definitions in CONFIG_SITE.windows-x64.windows-x64-static
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
BUILD_CLASS = HOST
SHARED_LIBRARIES = NO
STATIC_BUILD = YES

View File

@@ -1,25 +1,35 @@
# CONFIG_SITE.Common.RTEMS
#
# $Revision-Id$
#
# Site-specific information for all RTEMS targets
#
#-------------------------------------------------------
# Where to find RTEMS
#
RTEMS_VERSION=4.9.2
RTEMS_BASE=/usr/local/rtems/rtems-$(RTEMS_VERSION)
# APS:
RTEMS_VERSION = 4.10.2
RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)
# Cross-compile toolchain in $(RTEMS_TOOLS)/bin
#
RTEMS_TOOLS=$(RTEMS_BASE)
RTEMS_TOOLS = $(RTEMS_BASE)
# Link Generic System loadable objects instead of full executable.
#
# A GeSys object is similar to a shared library. It can be (un)loaded
# at runtime by the Generic System loader which is available as a
# patch against RTEMS.
USE_GESYS = NO
# If you're using neither BOOTP/DHCP nor FLASH to pick up your IOC
# network configuration you must uncomment and specify your Internet
# network configuration you must uncomment and specify your Internet
# Domain Name here
#
#OP_SYS_CFLAGS += -DRTEMS_NETWORK_CONFIG_DNS_DOMAINNAME=<domainname>
#
# Specify your desired command-line-input library
# Select the command-line-input library to use
#
COMMANDLINE_LIBRARY = EPICS
#COMMANDLINE_LIBRARY = LIBTECLA
#COMMANDLINE_LIBRARY = READLINE

View File

@@ -7,4 +7,7 @@
# If readline is installed uncomment the following line
# to add command-line editing and history support
COMMANDLINE_LIBRARY = READLINE
#COMMANDLINE_LIBRARY = READLINE
# Uncomment the following line if readline has problems
#LDLIBS_READLINE= -lreadline -lcurses

View File

@@ -0,0 +1,14 @@
# CONFIG_SITE.Common.cygwin-x86_64
#
# $Revision-Id$
#
# Site Specific definitions for cygwin-x86_64 target
# Only the local epics system manager should modify this file
# If readline is installed uncomment the following line
# to add command-line editing and history support
#COMMANDLINE_LIBRARY = READLINE
# Uncomment the following line if readline has problems
#LDLIBS_READLINE = -lreadline -lcurses

View File

@@ -7,17 +7,31 @@
#-------------------------------------------------------
# Select which CPU architecture(s) to include in your MacOS binaries:
# i386
# x86_64 - Needs MacOS 10.4 with the Universal SDK, or 10.5 and later
# i386, x86_64, or both (fat binaries).
ARCH_CLASS = i386
#ARCH_CLASS = x86_64
#ARCH_CLASS = i386
ARCH_CLASS = x86_64
#ARCH_CLASS = i386 x86_64
#
# Uncomment the followings lines to build with CLANG instead of GCC.
# Uncomment the following 3 lines to build with Apple's GCC instead of CLANG.
#
#CC = clang
#CCC = clang++
#GNU_LDLIBS_YES =
#CC = gcc
#CCC = g++
#GNU = YES
# To use MacPorts GCC uncomment (and modify if necessary) the following:
#GNU_DIR = /opt/local
#CC = $(GNU_BIN)/gcc -m64
#CCC = $(GNU_BIN)/g++ -m64
#GNU = YES
# If you see this or similar errors while building in the src/cap5 directory
# gcc: error: unrecognized option '-no-cpp-precomp'
# the problem is due to the ccflags configuration that your version of Perl
# was built with. You can replace the Cap5_CFLAGS setting in the Makefile
# with a hand-edited set of flags for building that Perl library, or ignore
# this problem if you don't need to use Channel Access from Perl.

View File

@@ -1,21 +1,32 @@
# CONFIG_SITE.Common.ios-arm
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Site-specific settings for ios-arm target builds
#-------------------------------------------------------
# Which ARM instruction set(s) to generate code for:
# Most iOS devices can run programs compiled for both the
# ARMv6 and ARMv7 instruction sets. ARMv7 code is usually
# more efficient, but the older devices listed below can only
# use the ARMv6 instruction set. Including both architectures
# generates a Universal binary, which is larger and takes
# longer to compile but runs efficiently on all devices.
# Most iOS devices can run programs compiled for older
# instruction sets, although the newer instructions are
# more efficient.
#
# ARMv6-only devices: iPhone 1 or 3G, iPod Touch Gen 1 or 2
# Apple's compilers can build for multiple architectures,
# generating a Universal binary. This is larger and takes
# longer to compile, but runs efficiently on all devices.
#
ARCH_CLASS = armv7
# Xcode 4.5 dropped support for the ARMv6.
#
# arm64 devices: iPhone 5S, 6 and 6 Plus, iPad Air Gen 1 and 2,
# iPad Mini Gen 2 and 3
# armv7s devices: iPhone 5 and 5C, iPad Gen 4
# armv7 devices: iPhone 3GS, 4 and 4S, iPod Touch Gen 3 to 5
# iPad Gen 1 to 3, iPad Mini, Apple TV Gen 2 and 3
# armv6 devices: iPhone 1 and 3G, iPod Touch Gen 1 and 2
#ARCH_CLASS = arm64
#ARCH_CLASS = armv7s arm64
ARCH_CLASS = armv7 armv7s arm64
#ARCH_CLASS = armv7 armv7s
#ARCH_CLASS = armv7
#ARCH_CLASS = armv6 armv7
#ARCH_CLASS = armv6

View File

@@ -0,0 +1,18 @@
# CONFIG_SITE.Common.ios-x86
#
# $Revision-Id$
#
# Site-specific settings for ios-x86 target builds
#-------------------------------------------------------
# Which x86 instruction set(s) to generate code for:
# The iPhone Simulator now supports both 32-bit and 64-bit
# instruction sets since the iPhone 6 uses a 64-bit CPU.
#
# Apple's compilers can build for multiple architectures,
# generating a Universal binary. This is larger and takes
# longer to compile, but runs efficiently on all devices.
#ARCH_CLASS = i386
ARCH_CLASS = i386 x86_64
#ARCH_CLASS = x86_64

View File

@@ -1,27 +1,29 @@
# CONFIG_SITE.Common.iosCommon
#
# $Revision-Id$
# This file is maintained by the build community.
#
# Site-specific settings for Apple iOS builds
#-------------------------------------------------------
# iOS Version number
# Minimum version of iOS the executables must run on.
# Earlier versions may work, if XCode supports them.
#IOS_VERSION = 3.2
#IOS_VERSION = 4.1
#IOS_VERSION = 4.2
#IOS_VERSION = 4.3
IOS_VERSION = 5.0
#IOS_DEPLOYMENT_TARGET = 5.0
#IOS_DEPLOYMENT_TARGET = 5.1
#IOS_DEPLOYMENT_TARGET = 6.0
#IOS_DEPLOYMENT_TARGET = 6.1
IOS_DEPLOYMENT_TARGET = 7.0
#IOS_DEPLOYMENT_TARGET = 8.0
#IOS_DEPLOYMENT_TARGET = 8.1
# Which compiler to use:
# CLANG is preferred for recent versions of Xcode
# LLVM uses the llvm-gcc and llvm-g++ compilers
# CLANG is required for Xcode 5.0 and later
# LLVM_GNU uses the llvm-gcc and llvm-g++ compilers
# GNU is needed for older versions of Xcode
COMPILER = CLANG
#COMPILER = LLVM
#COMPILER = LLVM_GNU
#COMPILER = GNU

View File

@@ -0,0 +1,41 @@
# CONFIG_SITE.Common.linux-arm
#
# $Revision-Id$
#
# Site Specific definitions for all linux-arm targets
#-------------------------------------------------------
# NOTE for SHARED_LIBRARIES: In most cases if this is set to YES the
# shared libraries will be found automatically. However if the .so
# files are installed at a different path to their compile-time path
# then in order to be found at runtime do one of these:
# a) LD_LIBRARY_PATH must include the full absolute pathname to
# $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking base
# executables.
# b) Add the runtime path to SHRLIB_DEPLIB_DIRS and PROD_DEPLIB_DIRS, which
# will add the named directory to the list contained in the executables.
# c) Add the runtime path to /etc/ld.so.conf and run ldconfig
# to inform the system of the shared library location.
# Depending on your version of Linux you'll want one of the following
# lines to enable command-line editing and history in iocsh. If you're
# not sure which, start with the top one and work downwards until the
# build doesn't fail to link the readline library. If none of them work,
# comment them all out to build without readline support.
# No other libraries needed (recent Fedora, Ubuntu etc.):
#COMMANDLINE_LIBRARY = READLINE
# Needs -lncurses (RHEL 5 etc.):
#COMMANDLINE_LIBRARY = READLINE_NCURSES
# Needs -lcurses (older versions)
#COMMANDLINE_LIBRARY = READLINE_CURSES
# It makes sense to include debugging symbols even in optimized builds
# in case you want to attach gdb to the process or examine a core-dump.
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g

View File

@@ -38,3 +38,4 @@ COMMANDLINE_LIBRARY = READLINE
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g

View File

@@ -38,3 +38,4 @@ COMMANDLINE_LIBRARY = READLINE
# This does cost disk space, but not memory as debug symbols are not
# loaded into RAM when the binary is loaded.
OPT_CFLAGS_YES += -g
OPT_CXXFLAGS_YES += -g

View File

@@ -1,9 +1,12 @@
# CONFIG_SITE.Common.linux-xscale_be
#
# $Revision-Id$
#
# Site specific definitions for linux-xscale_be target builds.
#-------------------------------------------------------
# Set GNU_DIR to point to directory containing the tool-chain
GNU_DIR = /usr/local/xscale_be
# APS:
GNU_DIR = /usr/local/vw/xscale_be

View File

@@ -5,11 +5,12 @@
# Site Specific definitions for solaris-sparc target
# Only the local epics system manager should modify this file
# If readline is installed uncomment the following macro definition
# to include command-line editing and history support
#
# location of the Solaris Studio (was SunPro) compilers
SPARCWORKS = /opt/SUNWspro
#SPARCWORKS = /opt/solarisstudio12.3
# Readline library provides command-line editing and history in IOC shell
# If readline is installed, uncomment the following macro definition
# to use it for command-line editing and history support
#COMMANDLINE_LIBRARY = READLINE
# Use stLport library instead of default Cstd library

View File

@@ -0,0 +1,11 @@
# CONFIG_SITE.Common.solaris-x86
#
# $Revision-Id$
#
# Site Specific definitions for solaris-x86 targets
# Only the local epics system manager should modify this file
# location of the Solaris Studio (was SunPro) compilers
SPARCWORKS = /opt/SUNWspro
#SPARCWORKS = /opt/solarisstudio12.3

View File

@@ -5,7 +5,7 @@
# Site Specific definitions for solaris-x86_64 target
# Only the local epics system manager should modify this file
# Include definitions common to all solaris-x86_64 target archs
# Include definitions common to all solaris-x86 target archs
-include $(CONFIG)/os/CONFIG_SITE.Common.solaris-x86
COMMANDLINE_LIBRARY = EPICS

View File

@@ -20,6 +20,7 @@ VXWORKS_VERSION = 5.5
#VXWORKS_VERSION = 6.6
#VXWORKS_VERSION = 6.7
#VXWORKS_VERSION = 6.8
#VXWORKS_VERSION = 6.9
# Sites may override the following path for a particular host
@@ -40,6 +41,7 @@ WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS)
#WORKBENCH_VERSION = 2.6
#WORKBENCH_VERSION = 3.0
#WORKBENCH_VERSION = 3.2
#WORKBENCH_VERSION = 3.3
# Utilities Version number, required from vxWorks 6.8 and later

View File

@@ -1,11 +1,9 @@
# CONFIG_SITE.win32-x86-mingw.Common
# CONFIG_SITE.Common.win32-x86-mingw
#
# $Revision-Id$
#
# Site Specific definitions for cygwin-x86 target
# Only the local epics system manager should modify this file
# Site Specific definitions for win32-x86-mingw target
# If readline is not installed comment the following line
# to omit command-line editing and history support
# If readline is available uncomment the following line
# to enable command-line editing and history support
#COMMANDLINE_LIBRARY = READLINE

View File

@@ -0,0 +1,13 @@
# CONFIG_SITE.linux-arm-debug.linux-arm-debug
#
# $Revision-Id$
#
# Site specific overrides for linux-arm-debug host and target builds
#-------------------------------------------------------
#Prepares the object code to collect data for profiling with prof.
#PROFILE=YES
#Compiles for profiling with the gprof profiler.
#GPROF=YES

View File

@@ -1,3 +1,9 @@
# CONFIG_SITE.linux-x86-debug.linux-x86-debug
#
# $Revision-Id$
#
# Site specific overrides for linux-x86-debug host and target builds
#-------------------------------------------------------
#Prepares the object code to collect data for profiling with prof.
#PROFILE=YES

View File

@@ -1,4 +1,4 @@
# CONFIG_SITE.linux-x86.linux-arm
# CONFIG_SITE.linux-x86.linux-arm
#
# $Revision-Id$
#
@@ -8,7 +8,8 @@
# Tools install path
#GNU_DIR = /home/targetOS/linux-arm/host/x86-linux/gcc_3.3.3
GNU_DIR = /net/phoebus/vw/zynq-2011.09
# APS:
GNU_DIR = /usr/local/vw/zynq-2011.09
# GNU crosscompiler target name
GNU_TARGET = arm-xilinx-linux-gnueabi

View File

@@ -0,0 +1,9 @@
# CONFIG_SITE.linux-x86.linux-arm-debug
#
# $Revision-Id$
#
# Site specific settings for linux-x86 host - linux-arm-debug target builds
#-------------------------------------------------------
# Inherit settings from linux-arm
include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-arm

View File

@@ -0,0 +1,23 @@
# CONFIG_SITE.linux-x86.win32-x86-mingw
#
# Configuration for linux-x86 host win32-x86-mingw target builds
#-------------------------------------------------------
# Early versions of the MinGW cross-build tools can only build
# static (non-DLL) libraries. Fedora's cross-build of gcc 4.4.6
# needs these uncommented, other distributions have not been
# tested with this release of Base:
SHARED_LIBRARIES = NO
STATIC_BUILD = YES
# The cross-build tools are in $(GNU_DIR)/bin
# Default is /usr
#GNU_DIR = /usr/local
# Different distribution cross-build packages use different prefixes:
# Ubuntu:
#CMPLR_PREFIX = i686-w64-mingw32-
# RHEL:
CMPLR_PREFIX = i686-pc-mingw32-
# Debian?
#CMPLR_PREFIX = i586-mingw32msvc-

View File

@@ -2,10 +2,8 @@
#
# $Revision-Id$
#
# Site specific override definitions for solaris-sparc host builds
# Only the local epics system manager should modify this file
# Site specific overrides for linux-x86_64 host and target builds
#-------------------------------------------------------
#Prepares the object code to collect data for profiling with prof.
#PROFILE=YES

View File

@@ -0,0 +1,9 @@
# CONFIG_SITE.linux-x86_64.linux-arm
#
# $Revision-Id$
#
# Site specific settings for linux-x86_64 host - linux-arm target builds
#-------------------------------------------------------
# Inherit setting from linux-x86
include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-arm

View File

@@ -0,0 +1,9 @@
# CONFIG_SITE.linux-x86_64.linux-arm-debug
#
# $Revision-Id$
#
# Site specific settings for linux-x86_64 host - linux-arm-debug target builds
#-------------------------------------------------------
# Inherit settings from linux-arm
include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-arm

View File

@@ -0,0 +1,8 @@
# CONFIG_SITE.linux-x86_64.win32-x86-mingw
#
# Configuration for linux-x86_64 host win32-x86-mingw target builds
#-------------------------------------------------------
# Inherit from the linux-x86 host architecture
include $(CONFIG)/os/CONFIG_SITE.linux-x86.win32-x86-mingw

View File

@@ -4,7 +4,4 @@
#
# Site specific override definitions for solaris-sparc host builds
# Only the local epics system manager should modify this file
#INSTALL_LOCATION = /home/phoebus/JBA/testBaseNew
#CROSS_COMPILER_TARGET_ARCHS += vxWorks-ppc604 vxWorks-ppc603 vxWorks-68040

View File

@@ -3,15 +3,9 @@
# $Revision-Id$
#
# Site Specific definitions for win32-x86-mingw target
# Only the local epics system manager should modify this file
# The MinGW bin directory must be in your path.
# Uncomment the following settings for MinGW_w32 releases
# <MinGW directory>/bin should be in your path
#CMPLR_PREFIX=i686-w64-mingw32-
#CC = $(CMPLR_PREFIX)gcc
#CCC = $(CMPLR_PREFIX)g++
#AR = $(CMPLR_PREFIX)ar -rc
#LD = $(CMPLR_PREFIX)ld -r
#RANLIB = $(CMPLR_PREFIX)ranlib
# Set the compiler prefix for your MinGW installation
#CMPLR_PREFIX = i686-w64-mingw32-
#CMPLR_PREFIX = i586-mingw32msvc-

View File

@@ -0,0 +1,9 @@
# CONFIG_SITE.windows-x64-mingw.windows-x64-mingw
#
# $Revision-Id$
#
# Site Specific definitions for windows-x64-mingw target
# Only the local epics system manager should modify this file
# Prefix for mingw compiler from cygwin
#CMPLR_PREFIX = x86_64-w64-mingw32-

View File

@@ -100,7 +100,7 @@
later.
GNU readline or Tecla library
GNU readline and Tecla librararies can be used by the IOC shell to
GNU readline and Tecla libraries can be used by the IOC shell to
provide command line editing and command line history recall and edit.
GNU readline (or Tecla library) must be installed on your target system
when COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target.
@@ -124,7 +124,7 @@
EPICS documentation is available through the [3]EPICS website at
Argonne.
Release specific documenataion can also be found in the
Release specific documentation can also be found in the
base/documentation directory of the distribution.
Directory Structure
@@ -137,7 +137,7 @@
base/configure Operating system independent build config files
base/configure/os Operating system dependent build config files
base/configure/tools Perl and shell scripts used in the build
base/documentation Distributation documentation
base/documentation Distribution documentation
base/src All epics base source code in subdirectories
base/src/RTEMS Code to configure RTEMS for EPICS
base/src/as Access security
@@ -170,7 +170,7 @@
base/src/libCom/macLib Macro substitution handler
base/src/libCom/misc Miscellaneous utilities
base/src/libCom/osi Operating system independent API
base/src/libCom/osi/os Operating system dependant code in subdirectories
base/src/libCom/osi/os Operating system dependent code in subdirectories
base/src/libCom/ring Methods for creating and using ring buffers
base/src/libCom/taskwd Task watchdog
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ...)
@@ -206,14 +206,14 @@
Build related components
base/documentation/README* files
base/documentation directory - contains setup, build, and install documents
README.1st Instructions for setup and building epics base
README.html html version of README.1st
README.WIN32 Microsoft WIN32 specific instructions
README.cxxTemplates Information about C++ templates in EPICS base
README.MS_Windows Microsoft Windows specific instructions
README.cris Axis CRIS specific instructions
README.darwin.html Installation notes for OS X (Darwin)
README.niCpu030 NI cpu030 specific instructions
README.darwin Installation notes for Mac OS X (Darwin)
RELEASE_NOTES.html Notes on release changes
KnownProblems.html List of known problems and workarounds
Converting*To*.html Release specific conversion instructions
@@ -240,7 +240,7 @@
CONFIG_BASE_VERSION Definitions for EPICS base version number
CONFIG_COMMON Definitions common to all builds
CONFIG_ENV Definitions of EPICS environment variables
CONFIG_SITE Site specific make defintions
CONFIG_SITE Site specific make definitions
CONFIG_SITE_ENV Site defaults for EPICS environment variables
MAKEFILE Installs CONFIG* RULES* creates
CONFIG_APP_INCLUDE
@@ -271,7 +271,7 @@
base/src/tools directory - contains Perl scripts used for the build
Makefile Makefile for installing the scripts into cfg dir
convertRelease.pl Performs consistancy checks on RELEASE files
convertRelease.pl Performs consistency checks on RELEASE files
cvsclean.pl Remove all .#* files in directory tree
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
expandvars.pl Tool to expand @VAR@ variables while copying a file

View File

@@ -1,4 +1,7 @@
<!DOCTYPE HTML>
<!-- Generate the README.1st file from this file using:
elinks -dump -no-numbering -no-references -dump-width 80 README.html
-->
<HTML>
<HEAD>
<TITLE>README - EPICS Base Installation Instructions</TITLE>
@@ -102,7 +105,7 @@
For RTEMS targets, you need RTEMS core and toolset version 4.9.2 or later.</P>
<P><B>GNU readline or Tecla library</B><BR>
GNU readline and Tecla librararies can be used by the IOC shell to
GNU readline and Tecla libraries can be used by the IOC shell to
provide command line editing and command line history recall and edit.
GNU readline (or Tecla library) must be installed on your target system
when COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target.
@@ -124,7 +127,7 @@
<H3><A NAME="0_0_8"> Documentation</A></H3>
<BLOCKQUOTE>EPICS documentation is available through the
<a href="http://www.aps.anl.gov/epics/">EPICS website</a> at Argonne.
<P>Release specific documenataion can also be found in the base/documentation
<P>Release specific documentation can also be found in the base/documentation
directory of the distribution.</BLOCKQUOTE>
<H3><A NAME="0_0_10"> Directory Structure</A></H3>
@@ -137,7 +140,7 @@
base/configure Operating system independent build config files
base/configure/os Operating system dependent build config files
base/configure/tools Perl and shell scripts used in the build
base/documentation Distributation documentation
base/documentation Distribution documentation
base/src All epics base source code in subdirectories
base/src/RTEMS Code to configure RTEMS for EPICS
base/src/as Access security
@@ -170,7 +173,7 @@
base/src/libCom/macLib Macro substitution handler
base/src/libCom/misc Miscellaneous utilities
base/src/libCom/osi Operating system independent API
base/src/libCom/osi/os Operating system dependant code in subdirectories
base/src/libCom/osi/os Operating system dependent code in subdirectories
base/src/libCom/ring Methods for creating and using ring buffers
base/src/libCom/taskwd Task watchdog
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ...)
@@ -210,14 +213,15 @@
<H3><A NAME="0_0_11"> Build related components</A></H3>
<BLOCKQUOTE>
<H4>base/documentation/README* files</H4>
<H4>base/documentation directory - contains setup, build, and install
documents</H4>
<PRE>
README.1st Instructions for setup and building epics base
README.html html version of README.1st
README.WIN32 Microsoft WIN32 specific instructions
README.cxxTemplates Information about C++ templates in EPICS base
README.MS_Windows Microsoft Windows specific instructions
README.cris Axis CRIS specific instructions
README.darwin.html Installation notes for OS X (Darwin)
README.niCpu030 NI cpu030 specific instructions
README.darwin Installation notes for Mac OS X (Darwin)
RELEASE_NOTES.html Notes on release changes
KnownProblems.html List of known problems and workarounds
Converting*To*.html Release specific conversion instructions
@@ -246,7 +250,7 @@
CONFIG_BASE_VERSION Definitions for EPICS base version number
CONFIG_COMMON Definitions common to all builds
CONFIG_ENV Definitions of EPICS environment variables
CONFIG_SITE Site specific make defintions
CONFIG_SITE Site specific make definitions
CONFIG_SITE_ENV Site defaults for EPICS environment variables
MAKEFILE Installs CONFIG* RULES* creates
CONFIG_APP_INCLUDE
@@ -279,7 +283,7 @@
<H4>base/src/tools directory - contains Perl scripts used for the build</H4>
<PRE>
Makefile Makefile for installing the scripts into cfg dir
convertRelease.pl Performs consistancy checks on RELEASE files
convertRelease.pl Performs consistency checks on RELEASE files
cvsclean.pl Remove all .#* files in directory tree
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
expandvars.pl Tool to expand @VAR@ variables while copying a file

View File

@@ -3,15 +3,400 @@
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>EPICS Base R3.14.12.2-DEV Release Notes</title>
<title>EPICS Base R3.14.12.5 Release Notes</title>
</head>
<body lang="en">
<h1 align="center">EPICS Base Release 3.14.12.2-DEV</h1>
<h1 align="center">EPICS Base Release 3.14.12.5</h1>
<h2 align="center">Changes between 3.14.12.4 and 3.14.12.5</h2>
<!-- Insert new items immediately below here ... -->
<h3>MinGW Cross-builds from Linux</h3>
<p>Build configuration files have been back-ported from the 3.15 branch that
allows cross-building of the win32-x86-mingw target from either linux-x86 or
linux-x86_64 hosts. Many Linux distributions now package the necessary MinGW
cross-build tools and libraries to support this. Adjust the settings in
configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw and add win32-x86-mingw to
the CROSS_COMPILER_TARGET_ARCHS variable in configure/CONFIG_SITE or in
configure/os/CONFIG_SITE.linux-x86.Common.</p>
<h3>Build rules for RTEMS GESYS modules</h3>
<p>RTEMS target builds can now be configured to make GESYS modules by changing
the <CODE>USE_GESYS=NO</code> setting in the file
configure/os/CONFIG_SITE.Common.RTEMS to <code>YES</code>.</p>
<h3>Added Make variables for command-line use</h3>
<p>The following variables are now used during the build process, reserved for
setting on the command-line only (Makefiles should continue to use the
<code>USR_</code> equivalents):</p>
<ul>
<li>CMD_INCLUDES</li>
<li>CMD_CPPFLAGS</li>
<li>CMD_CFLAGS</li>
<li>CMD_CXXFLAGS</li>
<li>CMD_LDFLAGS</li>
<li>CMD_DBFLAGS</li>
<li>CMD_DBDFLAGS</li>
<li>CMD_ARFLAGS</li>
</ul>
<p>For example:</p>
<blockquote><pre>
make CMD_INCLUDES=/opt/local/include CMD_LDFLAGS=-L/opt/local/lib
</pre></blockquote>
<h3>Back-ported dbLoadRecordsHook from the 3.15 branch</h3>
<p>See the Release Notes from the Base 3.15.1 release for details.</p>
<h3>Enhanced API for asTrapWrite listeners</h3>
<p>External software such as the CA Put Logging module that registers a listener
with the asTrapWrite subsystem was not previously given access to the actual
data being sent by the CA client. In most cases this was not a problem as the
listener can look at the field being modified both before and after the
operation, but if the put processes the record which immediately overwrites the
new value, the client's value cannot be observed.</p>
<p>This release adds three fields to the asTrapWriteMessage structure that is
passed to the listener routines. These new fields provide the CA data type, the
number of array elements, and a pointer to the source data buffer. This change
is completely backwards compatible with listener code written against the
original API. The new API can be detected at compile-time as follows:</p>
<blockquote><pre>
#include "asLib.h"
/* ... */
#ifdef asTrapWriteWithData
/* Enhanced API */
#endif
</pre></blockquote>
<h3>Back-ported the <q>tapfiles</q> build target from 3.15</h3>
<p>This GNUmake target runs the same tests as the <q>runtests</q> target, but
instead of summarizing or displaying the output for each test script it creates
a <q>.tap</q> file inside the architecture build directory which contains the
detailed test output. The output file can be parsed by continuous integration
packages such as <a href="http://www.jenkins-ci.org/">Jenkins</a> to show the
test results.</p>
<h3>Fix buffer overflow in epicsStrnRawFromEscaped()</h3>
<p>Launchpad <a href="https://bugs.launchpad.net/bugs/1388313">bug
1388313</a> reported by Bruce Hill and Chris Ford.</p>
<h3>Better Cygwin IOC Application Support</h3>
<p>IOC applications built for Cygwin with shared libraries need to have PATH
configured to include all of the bin directories for support modules listed in
the RELEASE file. For applications run from the Windows cmd.exe shell the
Makefile in the application's iocBoot/ioc directory can be set to build a file
dllPath.bat which performs the appropriate changes to PATH, but this file uses
syntax which is unique to the cmd.exe shell. Cygwin applications can now add a
target relPaths.sh to this Makefile, which will generate a file appropriate for
sourcing in the Bash shell instead.</p>
<p>The makeBaseApp.pl templates now include this file in the list of targets to
be built in the iocBoot/ioc/Makefile for Cygwin architectures.</p>
<h3>Reject NULL callback functions in ca_array_*_callback</h3>
<p>The two CA routines ca_array_get_callback() and ca_array_put_callback() were
not checking the pfunc callback function argument for NULL. Passing in a NULL
would cause the client library to segfault when the callback was called. Doing
this will now result in the error status ECA_BADFUNCPTR being returned. This
chage fixes <a href="https://bugs.launchpad.net/bugs/1369626">Launchpad bug
1369626</a>.</p>
<h3>Support for Solaris 11</h3>
<p>The build rules have been updated to support Solaris 11. Note that APS staff
may not be able to maintain EPICS on Solaris for much longer, so the existing
support code is likely to bit-rot and future versions of the OS may not be able
to build or run EPICS applications unless someone else picks up the maintenance
tasks.</p>
<h3>Generating OS-specific include files</h3>
<p>A fix has been applied to the build rules to permit OS-specific header files
to be generated by adding them to the appropriate INC_&lt;osclass&gt; variable.
To avoid problems with parallel builds, the rule to generate a header file
should look something like this:</p>
<blockquote><pre>
$(COMMON_DIR)/os/vxWorks/file.h:
$(MKDIR) -p $(dir $@)
<i>generate-file</i> -o $(notdir $@)
$(MV) $(notdir $@) $@
</pre></blockquote>
<h3>Added CA->version function to CA Perl Bindings</h3>
<p>This new function returns the version string from Base. The ca*.pl tools have
been updated to display this in their help output.</p>
<h3>epicsString.h comparison functions fixed</h3>
<p>The case-independent string comparison functions epicsStrCaseCmp() and
epicsStrnCaseCmp() were returning incorrect results when the strings did not
match; if the left-hand string is a shorter sub-set of the right-hand one the
result should be -1. These functions now match their BSD equivalents.</p>
<h3>Windows -static targets included</h3>
<p>The win32-x86 and windows-x64 host target architectures can now cross-build
the associated -static target, i.e. win32-x86-static or windows-x64-static
(these targets can also be used as regular host architectures). Users could
always have added configuration files themselves to build these, but we needed
them for continuous integration testing of static builds.</p>
<h3>iOS Build Rules fixed</h3>
<p>The problem building for the ios-x86 simulator target architecture has been
resolved.</p>
<h2 align="center">Changes between 3.14.12.3 and 3.14.12.4</h2>
<h3>New test for environment variables</h3>
<p>A new test program epicsEnvTest has been added to the libCom tests which
checks environment variable APIs. It was written to confirm that threads see
environment variable values that have been set in their parent thread. VxWorks
6.x boot images must be configured with ENV_VAR_USE_HOOKS set to FALSE for the
correct behaviour to occur (a test failure on VxWorks explains this).</p>
<h3>Inclusion of &lt;top&gt;/cfg/* files refined</h3>
<p>The way the build system includes files installed in the &lt;top&gt;/cfg/*
directory has been cleaned up. Files whose names begin with CONFIG will now get
included by the CONFIG step, and files whose names begin with RULES will get
included in the RULES step. These files are only ever included when GNUMake is
working in an application build (O.) directory and T_A is defined, so they
cannot be used to create generic build targets at other levels.</p>
<p>Files whose names don't start with either CONFIG or RULES are no longer
included automatically, but such files can still be installed into
&lt;top&gt;/cfg by naming them in the CFG variable.</p>
<h3>Fixed iocsh stream redirection for several commands</h3>
<p>A number of iocsh commands did not respond correctly to redirection of their
output using the iocsh '>file' or '2>error-file' syntax, and redirecting an
empty command could create files with garbage names. There may still be a few
commands that do not properly redirect their output, please notify the core
developers if you discover any. Thanks to Eric Norum for the iocsh changes.</p>
<p>For externally developed commands, the simplest way to support redirection in
your C/C++ code is to <tt>#include "epicsStdioRedirect.h"</tt> instead of
<tt>stdio.h</tt>.</p>
<h3>Fixed crash on loading record instance of unknown type</h3>
<p>Fixed segfault when dbLoadRecords tried to load a record of a type that was
not defined in its DBD files.</p>
<h3>Hex literal support in epicStrtod()</h3>
<p>Some OS implementations of the standard C library routine strtod() do not
recognize hexadecimal integers, in particular the libraries provided on Windows
and VxWorks. The internal implementation of epicsStrtod() that these targets use
now recognizes the 0x prefix and will convert hex numbers correctly. Thanks to
Dirk Zimoch for suggesting this change.</p>
<h3>Added support for 64-bit Cygwin and MinGW targets</h3>
<p>Both windows-x64-mingw and cygwin-x86_64 build targets are now provided.</p>
<h3>Windows build issues</h3>
<p>Thanks to Peter Heesterman for suggesting a number of small changes that
clean up build issues on Windows, mostly related to symbol import and export
to/from DLLs.</p>
<h3>CAS: GDD Reference Count Underflow</h3>
<p>Thanks to Bruce Hill a source of an underflow in a GDD reference count in the
CAS code has been fixed.</p>
<h3>Support for Apple Xcode 5.0</h3>
<p>This adds the ability to build for iOS 7.0 and the ARMv8 64-bit CPU on the
newest iPhone 5S device. Unfortunately the Xcode upgrade breaks the build of the
ios-x86 simulator target, although the ios-arm target successfully builds code
which runs fine on the real hardware.</p>
<h3>Reading TSEL field</h3>
<p>The TSEL link field has two complementary uses; it is read to fetch a
time-stamp event number for the TSE field, or if pointed to the .TIME field of
another record the record's timestamp is copied directly from the target record.
However with the latter usage if the TSEL link is itself read back instead of
pointing to the .TIME field the link appears to have changed to point to the VAL
field. This is due to an internal detail, and makes it impossible to save the
TSEL field's value using autosave. This has been fixed, and now the TSEL field
should always read back the same PV that it was pointed to.</p>
<h3>dbLoadTemplate variable limits adjustable</h3>
<p>The <tt>dbLoadTemplate</tt> command used to allocate a fixed amount of memory
for the template macro values that it used to 5000 bytes, and also limited the
number of variables that could defined to 100. These limits can now be changed
at runtime using the variable <tt>dbTemplateMaxVars</tt> which sets the maximum
number of macro variables that can be used; the amount of memory allocated for
value storage is 50 times this number. This variable is registered as an iocsh
variable in the base.dbd file, and can be adjusted as necessary before each
individual call to <tt>dbLoadTemplate</tt>.</p>
<p>The code now checks for and prevents any attempt to define more than the set
number of variables, but it does not check for overruns of the storage buffer.
This means that template files which define many long macro value strings could
still cause a buffer overflow and crash the IOC at startup, but increasing the
variable is all that is needed to allow that template file to be loaded.</p>
<h3>Improvements to dbpf</h3>
<p>It is now possible to use the <tt>dbpf</tt> command to put a long string
value into a UCHAR array field, previously only CHAR arrays were supported by
this command even though through Channel Access could put a long string to
either type. The error message printed by <tt>dbpf</tt> when a value conversion
fails has also been significantly improved.</p>
<h3>Support for VxWorks 6.9</h3>
<p>Various changes have been made that were needed to allow Base to build and
run properly on VxWorks 6.9.</p>
<h3>Improvements to aToIPAddr()</h3>
<p>The libCom routine aToIPAddr() and the vxWorks implementation of the
associated hostToIPAddr() function have been modified to be able to look up
hostnames that begin with one or more digits. The epicsSockResolveTest program
was added to check this functionality.</p>
<h4>Added osdFindSymbol for Windows</h4>
<p>Dirk Zimoch implemented the epicsLoadLibrary(), epicsLoadError() and
epicsFindSymbol() routines for Windows OS targets.</p>
<h4>More dbStatic commands accept "" or "*" to mean 'all'</h4>
<p>The IOC commands dbDumpRecordType, dbDumpMenu and dbDumpRecord will now
accept either an empty string or any string beginning with an asterisk '*' to
mean all record types or menus. Previously the 'all' option for these commands
required passing in a NULL value, which could be done from the vxWorks shell but
was not possible from iocsh.</p>
<h4>VxWorks sysAtReboot Registration</h4>
<p>The increasing intelligence of the GNU compiler and linker broke the method
that was being used by the VxWorks code to register a reboot hook that can close
down TCP connections nicely before the network stack gets disabled. This has
been fixed and no longer uses a C++ static contructor to execute that code.</p>
<h4>IOCS_APPL_TOP and INSTALL_LOCATION</h4>
<p>An IOC application that sets INSTALL_LOCATION in its configure/CONFIG_SITE
file no longer has to set IOCS_APPL_TOP there as well, unless the IOC uses a
different path than the build host to reach the application's top directory in
its filesystem. The IOCS_APPL_TOP variable now defaults to the value of
INSTALL_LOCATION, so setting the latter automatically sets the former. This
change fixes <a href="https://bugs.launchpad.net/bugs/1165257">Launchpad bug
1165257</a>.</p>
<h4>devLibVME.h</h4>
<p>Moved the declaration of bcopyLongs() from this header into RTEMS/osdVME.h.
Its original location broke the build for vxWorks 6.9 (the int nlongs argument
becomes size_t in 6.9, thus conflicting with this declaration). The only local
implementation of this routine is found in RTEMS/devLibVMEOSD.c, but it is not
used anywhere in Base.</p>
<h4>Allow empty database files</h4>
<p>The IOC used to report an error if dbLoadRecords or dbLoadDatabase was asked
to load an empty file or one containing just whitespace and/or comments. Such
files are now permitted, simplifying the task of automated database generation
programs which might discover they have nothing to output.</p>
<h4>High-Resolution Time Provider on MacOS</h4>
<p>MacOS does not provide the clock_gettime() API with CLOCK_REALTIME that other
Posix systems implement, so we previously used gettimeofday() to fetch the
current date & time from the OS. That older routine only provides the time with
a resolution of 1 microsecond though, whereas clock_gettime() gives results with
a nanosecond resolution. This release uses a new MachTime time provider on
MacOS which uses the Mach Kernel's CALENDAR_CLOCK service to fetch the time, and
provides nanosecond resolution.</p>
<h4>Time drift in periodic scans</h4>
<p>The implementation of the periodic scan code has been modified to remove
long-term drift associated with OS thread sheduling. The new code keeps scan
times much more closely tied to the system clock tick, only allowing the scan
period to drift if the record processing time takes longer to execute than the
interval between scans. If this happens the scan thread is made to wait for an
additional half-period but at most 1 second before the records are scanned
again, to allow lower priority threads some time to process on a preemptive
priority scheduled OS. After 10 repeated over-runs a warning will be logged,
with an increasing delay between messages up to hourly.</p>
<p>This fixes <a href="https://bugs.launchpad.net/bugs/597054">launchpad bug
597054</a>.</p>
<h2 align="center">Changes between 3.14.12.2 and 3.14.12.3</h2>
<!-- Insert new items immediately below here ... -->
<h4>Hex literals in CALC expressions</h4>
<p>In previous releases, CALC expressions could contain hexadecimal literal
integers on a target if the OS implementation of strtod() allows them (the
vxWorks implementation does not). Now hex literal integers can be used in CALC
expressions on all architectures. Hexadecimal floating point literals may have
worked on some architectures in the past, but will no longer be accepted.</p>
<h4>CAS: Added propertyEventMask support</h4>
<p>Server tools should now be able to detect subscriptions to and send updates
for DBE_PROPERTY events, using a casEventMask value returned by the new
caServer::propertyEventMask() method.</p>
<h4>caRepeater now built by default</h4>
<p>Previously caRepeater was only built for host architectures, so builds for
cross-compiled but workstation-type targets like linux-arm did not build it.
Explicit exceptions prevent it being built on architectures like vxWorks, RTEMS
and iOS which do not support normal executable programs.</p>
<h4>Array Subroutine (aSub) record type fixes</h4>
<ul>
<li>Changing the number of valid elements in a VALx field now triggers
monitors</li>
<li>The NEVx fields now post monitors, following the EFLG setting</li>
<li>The artificial limit of 10,000,000 array elements has been removed</li>
</ul>
<h4>Problem with NAN values in MLST/ALST fields</h4>
<p>The ai, ao, calc, calcout, dfanout, sel and sub record types could stop
posting monitors if they got NAN values in their MLST or ALST fields. A change
has been included so this should no longer be the case.</p>
<h4>MacOS build defaults changed</h4>
<p>The default build settings for darwin-x86 targets have been changed to match
the latest version of XCode; see configure/os/CONFIG_SITE.Common.darwin-x86
if you need to revert back to building with GCC or to include the i386 CPU
architecture.</p>
<h4>Build problem with db dependencies</h4>
@@ -28,19 +413,55 @@ itself have now been added. Both the Shell and Perl versions of the startup
EpicsHostArch scripts now recognize both arm6l and arm7l CPUs and return the
generic linux-arm host architecture name for them.</p>
<h4>New Microblaze Target Architecture</h4>
<p>A new cross-compiled target architecture is included for the Xilinx
Microblaze FPGA soft-core CPU architecture running Linux.</p>
<h4>Win32 Numeric string to enum/menu/device conversions</h4>
<p>Microsoft's C run-time library has a bug in the sscanf() function such that
the "%n" format specifier does not always work. The string to enum, menu and
device conversion functions have been modified to avoid this problem, but a
numeric string will no longer be converted properly on any architecture if it
has trailing whitespace characters.</p>
<h4>Launchpad Bugs Resolved</h4>
<p>The following are links to bugs in the Launchpad bug tracker that have been
fixed in this release:</p>
<ul>
<li>1090009
<a href="https://bugs.launchpad.net/bugs/1090009">
osdSufficentSpaceInPoolQuery fails on vxWorks 2 GB system</a></li>
<li>999167
<a href="https://launchpad.net/bugs/999167">
Missing epicsShareFunc for casStatsFetch</a></li>
<li>950555
<a href="https://launchpad.net/bugs/950555">
String substitution removes part of path when linking versioned shared
libraries</a></li>
<li>907761
<a href="https://launchpad.net/bugs/907761">
reading only 1st char of link in "long string" ($) syntax fails in read
error</a></li>
<li>903448
<a href="https://launchpad.net/bugs/903448">
RHEL5 nss ldap update cause stack size related failure</a></li>
RHEL5 nss ldap update cause stack size related failure</a>
<p>
This bug fix changed the stack sizes for both Posix and Windows targets as
follows:</p>
<table>
<tr><th>epicsThreadStackSizeClass</th><th>New Stack Size</th></tr>
<tr><td>epicsThreadStackSmall</td>
<td>0x10000 &times; sizeof (void *)</td></tr>
<tr><td>epicsThreadStackMedium</td>
<td>0x20000 &times; sizeof (void *)</td></tr>
<tr><td>epicsThreadStackBig</td>
<td>0x40000 &times; sizeof (void *)</td></tr>
</table></li>
</ul>
<h4>Calcout and Seq record timestamps</h4>

View File

@@ -63,7 +63,7 @@ rtems_task Init (rtems_task_argument argument);
* appropriate conditionals to use.
* The new general time support makes including the RTC driverr less important.
*/
#if !defined(mpc604) && !defined(__mc68040__) && !defined(__mcf5200__) && !defined(mpc7455) && !defined(__arm__) /* don't have RTC code */
#if !defined(mpc604) && !defined(__mc68040__) && !defined(__mcf5200__) && !defined(mpc7455) && !defined(__arm__) && !defined(__nios2__)/* don't have RTC code */
#define CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
#endif

View File

@@ -279,11 +279,45 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
LogFatal("\"%s\" is not a valid command pathname.\n", rtems_bsdnet_bootp_cmdline);
cp = mustMalloc(l + 20, "NFS mount paths");
server_path = cp;
server_name = rtems_bsdnet_bootp_server_name;
if (rtems_bsdnet_bootp_cmdline[0] == '/') {
mount_point = server_path;
strncpy(mount_point, rtems_bsdnet_bootp_cmdline, l);
mount_point[l] = '\0';
argv[1] = rtems_bsdnet_bootp_cmdline;
/*
* Its probably common to embed the mount point in the server
* name so, when this is occurring, dont clobber the mount point
* by appending the first node from the command path. This allows
* the mount point to be a different path then the server's mount
* path.
*
* This allows for example a line similar to as follows the DHCP
* configuration file.
*
* server-name "159.233@192.168.0.123:/vol/vol0/bootRTEMS";
*/
if ( server_name ) {
const size_t allocSize = strlen ( server_name ) + 2;
char * const pServerName = mustMalloc( allocSize,
"NFS mount paths");
char * const pServerPath = mustMalloc ( allocSize,
"NFS mount paths");
const int scanfStatus = sscanf (
server_name,
"%[^:] : / %s",
pServerName,
pServerPath + 1u );
if ( scanfStatus == 2 ) {
pServerPath[0u]= '/';
server_name = pServerName;
server_path = pServerPath;
}
else {
free ( pServerName );
free ( pServerPath );
}
}
}
else {
char *abspath = mustMalloc(strlen(rtems_bsdnet_bootp_cmdline)+2,"Absolute command path");
@@ -296,7 +330,6 @@ initialize_remote_filesystem(char **argv, int hasLocalFilesystem)
strcat(abspath, rtems_bsdnet_bootp_cmdline);
argv[1] = abspath;
}
server_name = rtems_bsdnet_bootp_server_name;
}
nfsMount(server_name, server_path, mount_point);
#endif

View File

@@ -1,11 +1,9 @@
/* share/src/as/asDbLib.c */
/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
* Copyright (c) 2012 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
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/* Author: Marty Kraimer Date: 02-11-94*/
@@ -69,18 +67,23 @@ static long asDbAddRecords(void)
int epicsShareAPI asSetFilename(const char *acf)
{
if(pacf) free ((void *)pacf);
if(acf) {
pacf = calloc(1,strlen(acf)+1);
if(!pacf) {
errMessage(0,"asSetFilename calloc failure");
} else {
strcpy(pacf,acf);
}
if (pacf)
free (pacf);
if (acf) {
pacf = calloc(1, strlen(acf)+1);
if (!pacf) {
errMessage(0, "asSetFilename calloc failure");
} else {
strcpy(pacf, acf);
if (*pacf != '/' && !strchr(pacf, ':')) {
printf("asSetFilename: Warning - relative paths won't usually "
"work\n");
}
}
} else {
pacf = NULL;
pacf = NULL;
}
return(0);
return 0;
}
int epicsShareAPI asSetSubstitutions(const char *substitutions)

2
src/as/asHost.rc Executable file → Normal file
View File

@@ -1,4 +1,4 @@
#include <Winver.h>
#include <winver.h>
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO

2
src/as/asIoc.rc Executable file → Normal file
View File

@@ -1,4 +1,4 @@
#include <Winver.h>
#include <winver.h>
#include "epicsVersion.h"
VS_VERSION_INFO VERSIONINFO

View File

@@ -30,25 +30,38 @@ typedef enum{
} asClientStatus;
typedef void (*ASCLIENTCALLBACK) (ASCLIENTPVT,asClientStatus);
/* The following routines are macros with the following syntax
long asCheckGet(ASCLIENTPVT asClientPvt);
long asCheckPut(ASCLIENTPVT asClientPvt);
*/
#define asCheckGet(asClientPvt)\
(asActive \
? ((asClientPvt)->access>=asREAD ? TRUE : FALSE)\
: TRUE)
#define asCheckPut(asClientPvt)\
(asActive \
? ((asClientPvt)->access>=asWRITE ? TRUE : FALSE)\
: TRUE)
#define asTrapWriteBefore(asClientPvt,user,host,addr) \
(((asActive) && (asClientPvt)->trapMask) \
? asTrapWriteBeforeWrite((user),(host),(addr)) \
: 0)
#define asCheckGet(asClientPvt) \
(!asActive || ((asClientPvt)->access >= asREAD))
#define asCheckPut(asClientPvt) \
(!asActive || ((asClientPvt)->access >= asWRITE))
/* More convenience macros
void *asTrapWriteWithData(ASCLIENTPVT asClientPvt,
const char *userid, const char *hostid, void *addr,
int dbrType, int no_elements, void *data);
void asTrapWriteAfter(ASCLIENTPVT asClientPvt);
*/
#define asTrapWriteWithData(asClientPvt, user, host, addr, type, count, data) \
((asActive && (asClientPvt)->trapMask) \
? asTrapWriteBeforeWithData((user), (host), (addr), (type), (count), (data)) \
: 0)
#define asTrapWriteAfter(pvt) \
if (pvt) asTrapWriteAfterWrite(pvt)
/* This macro is for backwards compatibility, upgrade any code
calling it to use asTrapWriteWithData() instead ASAP:
void *asTrapWriteBefore(ASCLIENTPVT asClientPvt,
const char *userid, const char *hostid, void *addr);
*/
#define asTrapWriteBefore(asClientPvt, user, host, addr) \
asTrapWriteWithData(asClientPvt, user, host, addr, 0, 0, NULL)
#define asTrapWriteAfter(pvt) if((pvt)) asTrapWriteAfterWrite((pvt))
epicsShareFunc long epicsShareAPI asInitialize(ASINPUTFUNCPTR inputfunction);
epicsShareFunc long epicsShareAPI asInitFile(
const char *filename,const char *substitutions);
@@ -100,8 +113,9 @@ epicsShareFunc int epicsShareAPI asDumpMemFP(FILE *fp,const char *asgname,
epicsShareFunc int epicsShareAPI asDumpHash(void);
epicsShareFunc int epicsShareAPI asDumpHashFP(FILE *fp);
epicsShareFunc void * epicsShareAPI asTrapWriteBeforeWrite(
const char *userid,const char *hostid,void *addr);
epicsShareFunc void * epicsShareAPI asTrapWriteBeforeWithData(
const char *userid, const char *hostid, void *addr,
int dbrType, int no_elements, void *data);
epicsShareFunc void epicsShareAPI asTrapWriteAfterWrite(void *pvt);

View File

@@ -3,8 +3,7 @@
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* EPICS BASE is distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*asTrapWrite.c */
@@ -100,47 +99,53 @@ void epicsShareAPI asTrapWriteUnregisterListener(asTrapWriteId id)
= (listenerPvt *)ellNext(&plistenerPvt->node);
if(plistenerPvt->plistener == plistener) {
ellDelete(&pwriteMessage->listenerPvtList,&plistenerPvt->node);
freeListFree(pasTrapWritePvt->freeListListenerPvt,(void *)plistenerPvt);
freeListFree(pasTrapWritePvt->freeListListenerPvt, plistenerPvt);
}
plistenerPvt = pnext;
}
pwriteMessage = (writeMessage *)ellNext(&pwriteMessage->node);
}
ellDelete(&pasTrapWritePvt->listenerList,&plistener->node);
free((void *)plistener);
free(plistener);
epicsMutexUnlock(pasTrapWritePvt->lock);
}
void * epicsShareAPI asTrapWriteBeforeWrite(
const char *userid,const char *hostid,void *addr)
void * epicsShareAPI asTrapWriteBeforeWithData(
const char *userid, const char *hostid, void *addr,
int dbrType, int no_elements, void *data)
{
writeMessage *pwriteMessage;
listener *plistener;
listenerPvt *plistenerPvt;
if(pasTrapWritePvt==0) return(0);
if(ellCount(&pasTrapWritePvt->listenerList)<=0) return 0;
if (pasTrapWritePvt == 0 ||
ellCount(&pasTrapWritePvt->listenerList) <= 0) return 0;
pwriteMessage = (writeMessage *)freeListCalloc(
pasTrapWritePvt->freeListWriteMessage);
pwriteMessage->message.userid = userid;
pwriteMessage->message.hostid = hostid;
pwriteMessage->message.serverSpecific = addr;
pwriteMessage->message.dbrType = dbrType;
pwriteMessage->message.no_elements = no_elements;
pwriteMessage->message.data = data;
ellInit(&pwriteMessage->listenerPvtList);
epicsMutexMustLock(pasTrapWritePvt->lock);
ellAdd(&pasTrapWritePvt->writeMessageList,&pwriteMessage->node);
ellAdd(&pasTrapWritePvt->writeMessageList, &pwriteMessage->node);
plistener = (listener *)ellFirst(&pasTrapWritePvt->listenerList);
while(plistener) {
plistenerPvt = (listenerPvt *)freeListCalloc(
while (plistener) {
listenerPvt *plistenerPvt = (listenerPvt *)freeListCalloc(
pasTrapWritePvt->freeListListenerPvt);
plistenerPvt->plistener = plistener;
pwriteMessage->message.userPvt = 0;
(*plistener->func)(&pwriteMessage->message,0);
plistener->func(&pwriteMessage->message, 0);
plistenerPvt->userPvt = pwriteMessage->message.userPvt;
ellAdd(&pwriteMessage->listenerPvtList,&plistenerPvt->node);
ellAdd(&pwriteMessage->listenerPvtList, &plistenerPvt->node);
plistener = (listener *)ellNext(&plistener->node);
}
epicsMutexUnlock(pasTrapWritePvt->lock);
return((void *)pwriteMessage);
return pwriteMessage;
}
void epicsShareAPI asTrapWriteAfterWrite(void *pvt)
@@ -148,20 +153,22 @@ void epicsShareAPI asTrapWriteAfterWrite(void *pvt)
writeMessage *pwriteMessage = (writeMessage *)pvt;
listenerPvt *plistenerPvt;
if(pwriteMessage==0 || pasTrapWritePvt==0) return;
if (pwriteMessage == 0 ||
pasTrapWritePvt == 0) return;
epicsMutexMustLock(pasTrapWritePvt->lock);
plistenerPvt = (listenerPvt *)ellFirst(&pwriteMessage->listenerPvtList);
while(plistenerPvt) {
while (plistenerPvt) {
listenerPvt *pnext = (listenerPvt *)ellNext(&plistenerPvt->node);
listener *plistener;
plistener = plistenerPvt->plistener;
listener *plistener = plistenerPvt->plistener;
pwriteMessage->message.userPvt = plistenerPvt->userPvt;
(*plistener->func)(&pwriteMessage->message,1);
ellDelete(&pwriteMessage->listenerPvtList,&plistenerPvt->node);
freeListFree(pasTrapWritePvt->freeListListenerPvt,(void *)plistenerPvt);
plistener->func(&pwriteMessage->message, 1);
ellDelete(&pwriteMessage->listenerPvtList, &plistenerPvt->node);
freeListFree(pasTrapWritePvt->freeListListenerPvt, plistenerPvt);
plistenerPvt = pnext;
}
ellDelete(&pasTrapWritePvt->writeMessageList,&pwriteMessage->node);
freeListFree(pasTrapWritePvt->freeListWriteMessage,(void *)pwriteMessage);
ellDelete(&pasTrapWritePvt->writeMessageList, &pwriteMessage->node);
freeListFree(pasTrapWritePvt->freeListWriteMessage, pwriteMessage);
epicsMutexUnlock(pasTrapWritePvt->lock);
}

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