Compare commits

..

84 Commits

Author SHA1 Message Date
Ralph Lange
8fd36d8eef AppVeyor: whitelist 7.0 branch
The AppVeyor epics-base-7 project is supposed to pull the .appveyor.yml from this branch to only build commits and pull requests from/for 7.0.
2020-11-03 10:02:34 +01:00
Andrew Johnson
baced535e3 Add -v (verbose) flag to softIoc
Only display the startup steps taken if -v was given.
Show each step *before* running it, so error messages follow it.
2020-10-28 23:55:24 -05:00
Andrew Johnson
be7c6a0a0a Build: Do clean before uninstall actions (if requested) 2020-10-28 23:26:25 -05:00
Andrew Johnson
14476391c0 Warn about NULL dbevEventUserFreeList 2020-10-28 23:25:02 -05:00
Andrew Johnson
223b292c33 Merge fix-wrong-order-phas fixes from 3.15 branch 2020-10-22 10:31:52 -05:00
Andrew Johnson
68121ec907 Merged Dirk's fix_one_element_input_link_arrays branch 2020-10-22 10:14:10 -05:00
Martin Konrad
228ad79b7a Simplify addToList() function 2020-10-13 18:38:17 -04:00
Martin Konrad
bbc0a56d2b Fix wrong PHAS order
Records with lower PHAS value than any previously loaded records
were inserted at the end of the list rather than at the beginning.
This fixes lp: #1899697. Also fixes a proto-bug in that the second
argument to the previously used ellAdd() call assumed that
offsetof(scan_element, node)==0.

Thanks to Bruno Martins for providing this patch.
2020-10-13 18:34:39 -04:00
Andrew Johnson
9726b9efc9 aSubRecord: Fix OVLA..OVLU POD field list 2020-10-12 15:34:43 -05:00
Gabriel Fedel
3e891a12ff Fix asub documentation: alarm happens when retunr status is < 0 2020-09-23 09:36:36 +02:00
Andrew Johnson
22ee229aca Add support for linux-aarch64 native builds 2020-09-16 00:45:19 -05:00
Andrew Johnson
1ae3bd6c70 Add warnings to CONFIG_SITE files that can't override gnuCommon
Move the clang and '-g' suggestions to the right places
2020-09-08 16:57:48 -05:00
Ralph Lange
cbba08b1ef Merge pull request #88 from HiteshDhola/patch-1
Update README.md
2020-08-26 10:17:42 +02:00
Hitesh Dhola
53044571fb Update README.md
Pointing out few err in the release version. As this is the first document anyone would Read. 

-Corrected released version. Removed old references.
PS : I also use this file to restore my "base" folder with older original version when new EPICS version is released. This way I can keep all of my compiled version isolated.
2020-08-26 12:47:19 +05:30
Ralph Lange
f8df3473ab Redo d3d40689 that was lost in upmerging 2020-08-25 16:06:39 +02:00
Ralph Lange
e8bee54531 Redo 97b29129/0fbfc741 that was lost in upmerging 2020-08-25 16:04:04 +02:00
Michael Davidsaver
0cae0db98b compat IPPORT_USERRESERVED
musl libc doesn't define IPPORT_USERRESERVED
2020-08-22 07:51:33 -07:00
Michael Davidsaver
df6981ceae doc 2020-08-22 07:51:33 -07:00
Michael Davidsaver
11984633dc conditional test of registerAllRecordDeviceDrivers() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
051ba20fe1 fix registerAllRecordDeviceDrivers() prints 2020-08-22 07:50:40 -07:00
Michael Davidsaver
d6cf29e942 add HAS_registerAllRecordDeviceDrivers 2020-08-22 07:50:40 -07:00
Michael Davidsaver
bdd41cca13 move test of registerAllRecordDeviceDrivers() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
e40970bd5e rename dynamic_registerRecordDeviceDriver -> registerAllRecordDeviceDrivers 2020-08-22 07:50:40 -07:00
Michael Davidsaver
9e3d5d52ab iocshRegisterVariable() avoid spurious redefinition warning
Compare the contents, not the container.
2020-08-22 07:50:40 -07:00
Michael Davidsaver
2c389a90d1 test dynamic_registerRecordDeviceDriver() 2020-08-22 07:50:40 -07:00
Michael Davidsaver
8d98387245 add dynamic_registerRecordDeviceDriver()
Use epicsFindSymbol() to build a dynamic and idempotent equivalent
to the code generated by registerRecordDeviceDriver.pl

Also add runRegistrarOnce() to prevent registrars
from running multiple times, except from unittest code.
2020-08-22 07:50:40 -07:00
Andrew Johnson
b36e5262c7 const init a char array from a string value 2020-08-21 17:59:46 -05:00
Andrew Johnson
79d7ac9315 Support undefine in RELEASE files 2020-08-21 16:30:06 -05:00
Andrew Johnson
03c4fe8a8d Merge Record ref updates from 3.15 into 7.0 2020-08-21 15:47:53 -05:00
Andrew Johnson
ad3728d00d Edits to the Record Ref index page 2020-08-21 15:43:48 -05:00
Michael Davidsaver
c465354c67 Set next development version 2020-08-14 13:25:40 -07:00
Michael Davidsaver
4e84f36faf Update version numbers for release 2020-08-14 12:56:39 -07:00
Matic Pogacnik
5b37663bcb Check if input string to aToIPAddr is null 2020-08-14 10:04:56 -07:00
Andrew Johnson
a808e3c790 Document ARM architecture adjustments 2020-08-12 17:39:07 -05:00
Andrew Johnson
0743aabaad Remove linux-arm_eb and linux-arm_el targets 2020-08-12 13:46:35 -05:00
Andrew Johnson
0035ca1846 Add cross-builds for linux-aarch64 2020-08-12 13:46:35 -05:00
Andrew Johnson
d7434eadc3 printf record: Document ll format modifier 2020-08-12 13:25:58 -05:00
Andrew Johnson
e542a22631 Fix Darwin version of epicsMonotonicResolution() 2020-08-04 16:22:03 -05:00
Andrew Johnson
97edcfc289 simmTest.c: Allow the clock to not always tick
On some systems the wall clock may tick slowly, so we must allow
the time to not change at all between checks.
Show the time differences.
2020-08-03 18:03:05 -05:00
Andrew Johnson
951b6acbbc Fix Cygwin TCP_NODELAY issue from Paul Chu & Freddie 2020-08-03 12:25:31 -05:00
Andrew Johnson
3c99391d93 Added SPDX License ID to all EPICS-original source files
In some cases the license-identification header was missing,
so I added that as well. Replaced the remaining headers that
specifically identified "Versions 3.13.7 and higher".

Makefiles and the build system were deliberately excluded.
2020-08-03 11:53:01 -05:00
Andrew Johnson
957f386d77 Removed EPICS license header and (c) from yacc/antelope sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
60aaa16e1d Removed EPICS license header and (c) from flex sources
These should never have been added in the first place.
2020-08-03 11:49:56 -05:00
Andrew Johnson
82b3856535 Release notes updated 2020-08-03 11:38:12 -05:00
Andrew Johnson
3506d11558 Speed up osdTimeGetCurrent() on recent macOS
Fixes https://github.com/epics-base/epics-base/issues/83
2020-08-03 11:37:19 -05:00
Michael Davidsaver
29bdca3b84 forgot commit-gh.sh 2020-07-27 14:38:15 -07:00
Michael Davidsaver
a6cdb4c5b6 Set next development version 2020-07-26 14:45:02 -07:00
Michael Davidsaver
aee99a5987 Update version numbers for release 2020-07-26 14:39:02 -07:00
Michael Davidsaver
809a1553bf update release notes 2020-07-26 14:15:10 -07:00
Michael Davidsaver
8029a72fec add doxygen+gh-pages 2020-07-26 13:48:01 -07:00
Michael Davidsaver
bcbaffc158 update submodules 2020-07-26 13:48:01 -07:00
Andrew Johnson
10d472202d Fix some ca/perl builds
Use the pre-expanded Perl configuration variables.
Conda builds of Perl need these (and a fix to the Perl
config files, see https://github.com/conda/conda/issues/8425
for details).
2020-07-21 15:17:37 -05:00
Andrew Johnson
f99bb637b9 ca: Minor cleanups in capr.pl 2020-07-20 18:22:37 -05:00
Andrew Johnson
c55a95fc98 ca: Support DBF_INT64 and DBF_UINT64 in capr.pl 2020-07-20 18:21:46 -05:00
Andrew Johnson
7d9746003b ca: Fix capr.pl to handle missing fields properly
When using an EPICS 7 softIoc.dbd file with a PV from an older version
of Base which didn't have all the fields, our attempts to read those
fields will time out, but the internal logic was buggy. Don't try to
print the values of timed out fields at all. The user will still see a
warning about connection timeouts at the top.
2020-07-20 18:20:45 -05:00
Ralph Lange
7d2e352f6a Merge changes from 3.15 branch into 7.0
- merged 3.15 branch up to bf7a1605

# Conflicts:
#	modules/database/src/ioc/db/dbChannel.c
2020-07-15 11:46:45 +02:00
Andrew Johnson
5c03f8ba79 Simplify epicsMessageQueueTest using joinable threads
Fixes issues with thread shutdown
2020-07-02 16:17:04 -05:00
Andrew Johnson
1eeac6da2f Switch RTEMS to the default osdMessageQueue 2020-07-02 16:14:08 -05:00
Michael Davidsaver
d4781bca28 Merge branch 'recnames' into 7.0
* recnames:
  validate alias names as well
  yet more record name validation
  Further record name validation
  popFirstTemp() may return NULL
  fix crash on bad record name
  Extend record name validation
2020-06-30 19:54:43 -07:00
Michael Davidsaver
32ff3b2ed9 update ci-scripts 3.0 2020-06-29 20:08:13 -07:00
Michael Davidsaver
25681eca4c ci: set EPICS_TEST_IMPRECISE_TIMING 2020-06-29 20:07:06 -07:00
Michael Davidsaver
dcee015f71 validate alias names as well 2020-06-29 14:44:04 -07:00
Michael Davidsaver
fddd65ccb1 yet more record name validation 2020-06-29 11:33:21 -07:00
Michael Davidsaver
7f9fefc2a4 Further record name validation 2020-06-26 13:22:11 -07:00
Ralph Lange
bf7a1605c6 Name generated junitfiles '<testname>-results.xml'
- following an idea by Freddie Akeroyd,
  to allow better distinction from other xml files
2020-06-23 13:47:33 +02:00
Ralph Lange
0fbfc74182 Fix missing deletion in 97b29129 from 'fix/misc'
- fixes 97b29129 that was replacing two assert() statements
  without removing the original (offending) lines
2020-06-23 11:23:57 +02:00
Michael Davidsaver
b34aa594c8 popFirstTemp() may return NULL
This indicates an earlier error, which should already
been printed.
2020-06-22 12:09:26 -07:00
Michael Davidsaver
3124d972bf fix crash on bad record name 2020-06-22 12:09:26 -07:00
Michael Davidsaver
49889d8549 Extend record name validation
Begin enforcing earlier check (and tab).
Add new warning for record names beginning
with numeric or '{'.
2020-06-22 12:09:26 -07:00
Michael Davidsaver
a4bdee82c3 travis fixup networking 2020-06-20 23:11:12 -07:00
Michael Davidsaver
4160610885 libCom: test osdSockAddrReuse
Ensure that epicsSocketEnableAddressReuseDuringTimeWaitState()
and epicsSocketEnableAddressUseForDatagramFanout()
have the desired effects.
2020-06-20 12:01:40 -07:00
Ralph Lange
b248023eb2 Merge Ralph's 'fix/misc' branch into 3.15
(closes #77)
2020-06-10 18:39:22 +02:00
Ralph Lange
92374b2be2 libcom/osi: fix potential leak in vxWorks/osdThread.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
579fc9d0c7 libcom/osi: fix potential leak in default/osdThreadHooks.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
cd47bbf99b libcom/osi: fix debug printf() in default/osdNetIntf.c
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
d3d40689c8 libcom/osi: fix dangerous usage of strncat (WIN32)
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
d5eb055bb7 libcom/flex: fix sscanf() argument types
(code smell found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
97b29129af libcom/test: don't modify operand in assert() statement
(code smell found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
801710b8c7 db: fix possible null pointer dereference
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
30f5c3b301 db: fix incomplete initialization in dbChannelOpen()
(found by sonar/cppcheck)
2020-06-10 14:26:40 +02:00
Ralph Lange
69d4c238e7 ca/tools: free() all allocated buffers
(found by sonar/cppcheck)
2020-06-09 15:52:14 +02:00
Ralph Lange
7d1ff1411f ca/tools: fix type errors in option parsing
(found by sonar/cppcheck)
2020-06-09 15:51:35 +02:00
Ralph Lange
f0e143b907 ca/client: fix possible null pointer dereference
(found by sonar/cppcheck)
2020-06-09 15:48:33 +02:00
cc616371b1 allow constant links with numeric 1 element arrays like [42] 2020-06-08 15:05:22 +02:00
1081 changed files with 5335 additions and 2062 deletions

View File

@@ -1,6 +1,12 @@
# .appveyor.yml for use with EPICS Base ci-scripts
# (see: https://github.com/epics-base/ci-scripts)
# branches to build
branches:
# whitelist
only:
- 7.0
# Version format
version: base-{branch}-{build}
@@ -37,6 +43,8 @@ skip_commits:
# build matrix configuration #
#---------------------------------#
image: Visual Studio 2015
# Build Configurations: dll/static, regular/debug
configuration:
- dynamic
@@ -49,6 +57,7 @@ environment:
# common / default variables for all jobs
SETUP_PATH: .ci-local:.ci
BASE: SELF
EPICS_TEST_IMPRECISE_TIMING: YES
matrix:
- CMP: vs2019
@@ -59,7 +68,7 @@ environment:
- CMP: vs2013
- CMP: vs2012
- CMP: vs2010
- CMP: mingw
- CMP: gcc
# Platform: processor architecture
platform:
@@ -89,17 +98,17 @@ matrix:
install:
- cmd: git submodule update --init --recursive
- cmd: python .ci/appveyor/do.py prepare
- cmd: python .ci/cue.py prepare
build_script:
- cmd: python .ci/appveyor/do.py build
- cmd: python .ci/cue.py build
test_script:
- cmd: python .ci/appveyor/do.py test
- cmd: python .ci/cue.py test
on_finish:
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
- cmd: python .ci/appveyor/do.py build test-results -s
- cmd: python .ci/cue.py build test-results -s
#---------------------------------#
# debugging #

1
.ci Submodule

Submodule .ci added at 87942a7c29

19
.ci-local/travis-fixup.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/sh
set -e -u -x
env|grep TRAVIS
[ "$TRAVIS_OS_NAME" = "linux" ] || exit 0
# Ensure there is an interface with a (correct) broadcast address
# eg. 'trusty' VMs have interface broadcast address mis-configured
# (why oh why do people insist on setting this explicitly?)
sudo ip tuntap add dev tap42 mode tap
sudo ip addr add 192.168.240.1/24 broadcast + dev tap42
sudo ip link set dev tap42 up
# note that this device will be UP but not RUNNING
# so java will see it as not UP since java confuses UP and RUNNING

3
.gitmodules vendored
View File

@@ -26,6 +26,3 @@
path = .ci
url = https://github.com/epics-base/ci-scripts
branch = master
[submodule "modules/pcas"]
path = modules/pcas
url = https://github.com/epics-modules/pcas

102
.tools/adjustver.py Executable file
View File

@@ -0,0 +1,102 @@
#!/usr/bin/env python3
import logging
import sys
import re
from io import StringIO
_log = logging.getLogger(__name__)
def main(args):
logging.basicConfig(level=args.level)
if args.dev is True:
actions=[
('DEVELOPMENT_FLAG', '1'),
('DEV_SNAPSHOT', '-DEV'),
]
elif args.dev is False:
actions=[
('DEVELOPMENT_FLAG', '0'),
('DEV_SNAPSHOT', ''),
]
elif args.version:
M=re.match(r'R?(\d+).(\d+).(\d+)(?:.(\d+))?(-.*)?', args.version)
actions=[
('SITE_VERSION', None),
('SHORT_VERSION', None),
('MINOR_VERSION', M[2]),
('REVISION', M[2]),
('MODIFICATION', M[3]),
('MAINTENANCE_VERSION', M[3]),
('PATCH_LEVEL', M[4] or '0'),
('DEVELOPMENT_FLAG', '1' if (M[5] or '').upper().endswith('-DEV') else '0'),
('DEV_SNAPSHOT', M[5] or ''),
('MAJOR_VERSION', M[1]),
('VERSION', M[1]), # plain _VERSION must be last to resolve ambiguity
]
elif args.dry_run:
_log.debug('Print existing')
for fname in args.conf:
print('# ', fname)
with open(fname, 'r') as F:
sys.stdout.write(F.read())
return
else:
print('One of --version, --release, --dev, or --dry-run is required')
sys.exit(1)
for name, val in actions:
_log.debug('Pattern "%s" -> "%s"', name, val)
for fname in args.conf:
OUT=StringIO()
with open(fname, 'r') as F:
for line in F:
_log.debug('Line: %s', repr(line))
for name, val in actions:
M = re.match(r'(\s*[A-Z_]+' + name + r'\s*=[\t ]*)(\S*)(\s*)', line)
if M and val is None:
_log.debug('Ignore')
OUT.write(line)
break
elif M:
_log.debug(' Match %s -> %s', M.re.pattern, M.groups())
OUT.write(M[1]+val+M[3])
break
else:
_log.debug('No match')
OUT.write(line)
if args.dry_run:
print('# ', fname)
print(OUT.getvalue())
else:
with open(fname, 'w') as F:
F.write(OUT.getvalue())
def getargs():
from argparse import ArgumentParser
P = ArgumentParser()
P.add_argument('-n','--dry-run', action='store_true', default=False)
P.add_argument('-d','--debug', dest='level', action='store_const',
const=logging.DEBUG, default=logging.INFO)
P.add_argument('-V', '--version', help='A version in R1.2.3-xyz or 1.2.3 form')
P.add_argument('-D', '--dev', action='store_true', default=None)
P.add_argument('-R', '--release', dest='dev', action='store_false')
P.add_argument('conf', nargs='+',
help='A configure/CONFIG_*_VERSION file name')
return P
if __name__=='__main__':
main(getargs().parse_args())

View File

@@ -2,7 +2,7 @@
#
# Make tar for git repo w/ one level of sub modules.
#
set -e -u
set -e
die() {
echo "$1" >&2

View File

@@ -13,6 +13,7 @@ env:
global:
- SETUP_PATH=.ci-local:.ci
- BASE=SELF
- EPICS_TEST_IMPRECISE_TIMING=YES
addons:
apt:
@@ -35,10 +36,13 @@ addons:
update: true
install:
- ./.ci/travis/prepare.sh
- ./.ci-local/travis-fixup.sh
- python .ci/cue.py prepare
script:
- ./.ci/travis/build.sh
- python .ci/cue.py build
- python .ci/cue.py test
- python .ci/cue.py test-results
# Define build jobs
@@ -51,7 +55,7 @@ jobs:
- dist: xenial
- dist: bionic
env: STATIC=YES EXTRA="CMD_CXXFLAGS=-std=c++11"
env: BCFG=static EXTRA="CMD_CXXFLAGS=-std=c++11"
- dist: trusty
env: EXTRA="CMD_CXXFLAGS=-std=c++11"
@@ -63,15 +67,13 @@ jobs:
- dist: trusty
compiler: clang
env: STATIC=YES
env: BCFG=static
# Cross-compilations to Windows using MinGW and WINE
- env: WINE=32 TEST=NO STATIC=YES
compiler: mingw
- env: WINE=32 TEST=NO BCFG=static
- env: WINE=32 TEST=NO STATIC=NO
compiler: mingw
- env: WINE=32 TEST=NO
# Cross-compilation to RTEMS

View File

@@ -23,10 +23,3 @@ DIRS += modules
modules_DEPEND_DIRS = src
include $(TOP)/configure/RULES_TOP
UNINSTALL_DIRS += $(INSTALL_LOCATION)/src
copysrc:
tar cf - --exclude-vcs --exclude-backups --exclude=O.* modules/*/src | tar xf - -C $(INSTALL_LOCATION)
tar:
tar cfjP epics_base-$(EPICS_VERSION_NUMBER).tar.bz2 $(INSTALL_LOCATION)

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.
#*************************************************************************
@@ -34,7 +33,7 @@ CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CFLAGS_YES = -Wall
WARN_CFLAGS_NO = -w
OPT_CFLAGS_YES = -O3 -g
OPT_CFLAGS_YES = -O3
OPT_CFLAGS_NO = -g
PROF_CXXFLAGS_YES = -p
@@ -43,7 +42,7 @@ CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
CODE_CXXFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
WARN_CXXFLAGS_YES = -Wall
WARN_CXXFLAGS_NO = -w
OPT_CXXFLAGS_YES = -O3 -g
OPT_CXXFLAGS_YES = -O3
OPT_CXXFLAGS_NO = -g
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))

View File

@@ -52,16 +52,11 @@ EPICS_MODIFICATION = 4
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
# Not included in the official EPICS version number if zero
EPICS_PATCH_LEVEL = 1
EPICS_PATCH_LEVEL = 2
# Immediately after an official release the EPICS_PATCH_LEVEL is incremented
# and the -DEV suffix is added (similar to the Maven -SNAPSHOT versions)
#EPICS_DEV_SNAPSHOT=
EPICS_DEV_SNAPSHOT=-DEV
#EPICS_DEV_SNAPSHOT=-pre1
#EPICS_DEV_SNAPSHOT=-pre1-DEV
#EPICS_DEV_SNAPSHOT=-rc1
#EPICS_DEV_SNAPSHOT=-rc1-DEV
# No changes should be needed below here

View File

@@ -2,7 +2,7 @@
EPICS_CA_MAJOR_VERSION = 4
EPICS_CA_MINOR_VERSION = 13
EPICS_CA_MAINTENANCE_VERSION = 7
EPICS_CA_MAINTENANCE_VERSION = 8
# Development flag, set to zero for release versions

View File

@@ -24,3 +24,5 @@ MSI3_15 = $(EPICS_DATABASE_HOST_BIN)/msi$(HOSTEXE)
# Libraries needed to link a basic IOC
EPICS_BASE_IOC_LIBS = dbRecStd dbCore ca Com
HAS_registerAllRecordDeviceDrivers=YES

View File

@@ -2,7 +2,7 @@
EPICS_DATABASE_MAJOR_VERSION = 3
EPICS_DATABASE_MINOR_VERSION = 18
EPICS_DATABASE_MAINTENANCE_VERSION = 1
EPICS_DATABASE_MAINTENANCE_VERSION = 2
# Development flag, set to zero for release versions

View File

@@ -2,7 +2,7 @@
EPICS_LIBCOM_MAJOR_VERSION = 3
EPICS_LIBCOM_MINOR_VERSION = 18
EPICS_LIBCOM_MAINTENANCE_VERSION = 1
EPICS_LIBCOM_MAINTENANCE_VERSION = 2
# Development flag, set to zero for release versions

View File

@@ -22,6 +22,7 @@
# darwin-x86 (Intel based Apple running OSX)
# freebsd-x86 (GNU compiler used for host builds)
# freebsd-x86_64 (GNU compiler used for host builds)
# linux-aarch64 (GNU compiler used for host builds)
# linux-arm (GNU compiler used for host builds)
# linux-ppc (GNU compiler used for host builds)
# linux-ppc64 (GNU compiler used for host builds)
@@ -51,7 +52,6 @@
# windows-x64-debug (MS Visual C++ compiler with debug option for host builds)
# EPICS_HOST_ARCH is a required environment variable
# Do not set EPICS_HOST_ARCH in this file.
# Use base/startup files to set EPICS_HOST_ARCH or
# provide EPICS_HOST_ARCH on the GNU make command line.
@@ -67,8 +67,7 @@
# linux-586 (linux-x86 host)
# linux-686 (linux-x86 host)
# linux-arm (linux-x86 or -x86_64 host)
# linux-arm_eb (linux-x86 host)
# linux-arm_el (linux-x86 host)
# linux-aarch64 (linux-x86_64 host)
# linux-athlon (linux-x86 host)
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
@@ -76,9 +75,6 @@
# linux-microblaze
# linux-xscale_be
# vxWorks-486
# vxWorks-68040
# vxWorks-68040lc
# vxWorks-68060
# vxWorks-pentium
# vxWorks-ppc32 (32-bit PowerPC CPUs with full FPU)
# vxWorks-ppc32sf (32-bit PowerPC CPUs without FPU)
@@ -161,9 +157,7 @@ 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.
ifeq ($(INSTALL_LOCATION),$(EPICS_BASE))
EPICS_SITE_VERSION=$(shell $(PERL) -MPOSIX -e 'print strftime "%Y-%m-%d", localtime')
endif
EPICS_SITE_VERSION =
# For GNU compiler, use pipes rather than temporary files for
# communication between the various stages of compilation.

View File

@@ -86,23 +86,6 @@ include $(CONFIG)/RULES_FILE_TYPE
include $(CONFIG)/RULES.Db
#---------------------------------------------------------------
# Do not build anything if current path matches SKIP_BUILD
ifneq (,$(strip $(SKIP_BUILDS)))
CURRENT_MODULE=$(subst $(realpath $(TOP)/..)/,,$(subst $(realpath $(dir $(lastword $(MAKEFILE_LIST)))..)/,,$(realpath ..)))
ifneq ($(filter $(SKIP_BUILDS) $(addsuffix /%,$(SKIP_BUILDS)),$(CURRENT_MODULE)),)
$(info Skipping $(CURRENT_MODULE) for $(T_A))
PROD=
TESTPROD=
LIBRARY=
TESTLIBRARY=
LOADABLE_LIBRARY=
TESTS=
SRC_FILES=
endif
endif
#---------------------------------------------------------------
# Include defines and rules for prod, library and test* targets
@@ -133,7 +116,7 @@ ifneq (,$(filter $(T_A), $(EPICS_HOST_ARCH) $(CROSS_COMPILER_RUNTEST_ARCHS)))
RUNTESTS_ENABLED = YES
TESTSCRIPTS.t = $(filter %.t, $(TESTSCRIPTS))
TAPFILES.t += $(TESTSCRIPTS.t:.t=.tap)
JUNITFILES.t += $(TESTSCRIPTS.t:.t=.xml)
JUNITFILES.t += $(TESTSCRIPTS.t:.t=-results.xml)
TAPFILES += $(TAPFILES.t)
JUNITFILES += $(JUNITFILES.t)
endif
@@ -225,9 +208,9 @@ $(LOADABLE_SHRLIBNAME): FINAL_DIR=$(INSTALL_SHRLIB)
$(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
$(TESTPRODNAME) $(PRODNAME): %$(EXE):
$(TESTPRODNAME) $(PRODNAME): %$(EXE): | $(INSTALL_LIB)
@$(RM) $@
$(DEBUGCMD) $(LINK.cpp)
$(LINK.cpp)
$(MT_EXE_COMMAND)
%_ctdt$(OBJ): %_ctdt.c
@@ -328,6 +311,10 @@ $(LOADABLE_SHRLIBNAME): $(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX):
$(LINK.shrlib)
$(MT_DLL_COMMAND)
$(LIBNAME) $(SHRLIBNAME) $(LOADABLE_SHRLIBNAME): | $(INSTALL_LIB)
$(INSTALL_LIB):
@$(MKDIR) $@
#---------------------------------------------------------------
# C++ munching for VxWorks
@@ -403,7 +390,7 @@ ifdef RUNTESTS_ENABLED
$(PERL) $< -tap > $@
endif
$(JUNITFILES.t): %.xml: %.tap
$(JUNITFILES.t): %-results.xml: %.tap
$(TAPTOJUNIT) --puretap --output $@ --input $< $*
# If there's a perl test script (.plt) available, use it
@@ -503,9 +490,11 @@ $(INSTALL_TCLLIB)/%: ../%
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
endif
ifneq ($(TCLINDEX),)
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
$(ECHO) "Updating $@"
$(ECHO) eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
endif
$(INSTALL_LOADABLE_SHRLIBS): $(INSTALL_SHRLIB)/%: %
$(ECHO) "Installing loadable shared library $@"

View File

@@ -33,7 +33,7 @@ UNINSTALL_DIRS += $(INSTALL_INCLUDE) $(INSTALL_TEMPLATES) $(DIRECTORY_TARGETS)
ifneq ($(INSTALL_LOCATION),$(TOP))
UNINSTALL_DIRS += $(INSTALL_CONFIG)
endif
uninstallDirs:
uninstallDirs: | clean
$(RMDIR) $(UNINSTALL_DIRS)
# Remove the bin and lib directories if they have no sub-directories
@@ -41,12 +41,12 @@ uninstallDirs:
EMPTY_INSTALL_DIRS = \
$(if $(wildcard $(INSTALL_LOCATION_BIN)/*),,$(INSTALL_LOCATION_BIN)) \
$(if $(wildcard $(INSTALL_LOCATION_LIB)/*),,$(INSTALL_LOCATION_LIB))
uninstall: archuninstall uninstallDirs
uninstall: archuninstall uninstallDirs | clean
$(RMDIR) $(EMPTY_INSTALL_DIRS)
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS))
uninstall$(DIVIDER)%:
uninstall$(DIVIDER)%: | clean
$(RMDIR) $(addsuffix /$(subst uninstall$(DIVIDER),,$@), \
$(INSTALL_LOCATION_BIN) $(INSTALL_LOCATION_LIB))

View File

@@ -3,8 +3,8 @@
# 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
# SPDX-License-Identifier: EPICS
# EPICS Base is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
#*************************************************************************
# Makefile for base/src/sample

View File

@@ -1,2 +0,0 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64

View File

@@ -1 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.linux-clang

View File

@@ -1,6 +0,0 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
COMMANDLINE_LIBRARY = READLINE_NCURSES
ARCH_DEP_CFLAGS += -march=i686

View File

@@ -1,4 +0,0 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64
COMMANDLINE_LIBRARY = READLINE_NCURSES

View File

@@ -1,4 +0,0 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86
ARCH_DEP_CFLAGS += -march=i686

View File

@@ -1,2 +0,0 @@
# Include definitions common to linux pentium targets
include $(CONFIG)/os/CONFIG.Common.linux-x86_64

View File

@@ -1 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.linux-clang

View File

@@ -1,8 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 5.5.1
WIND_BASE = /afs/psi.ch/project/vxworks/Tornado2.2.1
#there is a problem with our ccppc and optimization
# -O0 works, -O and -O1 and higher are buggy
OPT_CFLAGS_YES = -O0
OPT_CXXFLAGS_YES = -O0

View File

@@ -1,2 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.2

View File

@@ -1,5 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603_long
VXWORKS_VERSION = 6.3
# Buggy "uninitialized variable" warning produces many false positives
ARCH_DEP_CXXFLAGS += -Wno-uninitialized

View File

@@ -1,5 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.3
# Buggy "uninitialized variable" warning produces many false positives
ARCH_DEP_CXXFLAGS += -Wno-uninitialized

View File

@@ -1,2 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc603_long
VXWORKS_VERSION = 6.6

View File

@@ -1,2 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.6

View File

@@ -1,5 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.7
#needed when including memPartLib.h, e.g. through moduleLib.h or loadLib.h
ARCH_DEP_CFLAGS += -D_VSB_CONFIG_FILE='<../lib/h/config/vsbConfig.h>'

View File

@@ -1,3 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc32
VXWORKS_VERSION = 6.9
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib

View File

@@ -1,3 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
VXWORKS_VERSION = 6.9
export LD_LIBRARY_PATH=$(WIND_BASE)/lmapi-5.0/$(WIND_HOST_TYPE)/lib

View File

@@ -1,22 +0,0 @@
# DeltaTau PowerPMAC with ELDK 4.2
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
COMMANDLINE_LIBRARY = READLINE_NCURSES
ARCH_CLASS = ppc
ELDK=/opt/eldk-4.2
GNU_TARGET=ppc_4xxFP
GNU_DIR=$(ELDK)/usr
# This cross tool chain is installed in a somehow weired way
# Without the following lines it does not work on RHEL7
# but it worked on SL6
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2/powerpc-linux
ARCH_DEP_CXXFLAGS += -I $(ELDK)/$(GNU_TARGET)/usr/include/c++/4.2.2/backward
ARCH_DEP_LDFLAGS += -Wl,-rpath-link,$(ELDK)/$(GNU_TARGET)/lib
ARCH_DEP_LDFLAGS += -Wl,-rpath-link,$(ELDK)/$(GNU_TARGET)/usr/lib

View File

@@ -1,14 +0,0 @@
# Virtex FPGA embedded Processor with ELDK 5.1
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.1
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_TARGET = powerpc-4xx-softfloat
GNU_ARCH = ppc405-linux
GNU_DIR = $(SDK_DIR)/$(GNU_TARGET)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)

View File

@@ -1,15 +0,0 @@
# IOxOS IFC1210 with ELDK 5.2
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.2
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_TARGET = powerpc-e500v2
GNU_ARCH = ppce500v2-linux-gnuspe
GNU_DIR = $(SDK_DIR)/$(GNU_TARGET)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)
GNU_TARGET_INCLUDE_DIR =

View File

@@ -1,21 +0,0 @@
# DeltaTau PowerPMAC with ELDK 5.3
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = eldk
SDK_DIR = /opt/eldk-5.3
SDK_HOST_ARCH = $(GNU_HOST_ARCH)-$(SDK)-$(GNU_HOST_OS)
GNU_ARCH = ppc440e-linux
SDKTARGETSYSROOT=$(SDK_DIR)/powerpc-4xx/sysroots
GNU_DIR = $(SDKTARGETSYSROOT)/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_ARCH)
GNU_TARGET_INCLUDE_DIR =
GNU_TARGET=powerpc-linux
ARCH_DEP_CPPFLAGS = -m32 -mcpu=440fp -mhard-float
ARCH_DEP_CPPFLAGS += --sysroot=$(SDKTARGETSYSROOT)/$(GNU_ARCH)
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)/$(GNU_ARCH)
AS=$(GNU_BIN)/$(GNU_TARGET)-as

View File

@@ -1,23 +0,0 @@
# IOxOS IFC1211 with Freescale QorIQ 2.0 toolchain
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = ppc
SDK = fslsdk
SDK_DIR = /opt/fsl-qoriq/2.0
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
SDK_TARGET = ppc64e6500-fsl-linux
GNU_TARGET = powerpc64-fsl-linux
SDKTARGETSYSROOT = $(SDK_DIR)/sysroots/$(SDK_TARGET)
GNU_DIR = $(SDK_DIR)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_TARGET)
ARCH_DEP_CPPFLAGS = --sysroot=$(SDKTARGETSYSROOT)
ARCH_DEP_CFLAGS = -mcpu=e6500 -m64 -mhard-float
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)
# warning -O2 and higher are broken!
#OPT_CFLAGS_YES = -O1
#OPT_CXXFLAGS_YES = -O1

View File

@@ -0,0 +1,11 @@
# CONFIG.Common.linux-aarch64
#
# Definitions for linux-arm target builds
# Override these settings in CONFIG_SITE.Common.linux-aarch64
#-------------------------------------------------------
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = aarch64

View File

@@ -1,9 +0,0 @@
# CONFIG.Common.linux-arm_eb
#
# Definitions for linux-arm_eb (big endian) target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_eb
#-------------------------------------------------------
# Include definitions common to all Linux-arm targets
include $(CONFIG)/os/CONFIG.Common.linux-arm

View File

@@ -1,9 +0,0 @@
# CONFIG.Common.linux-arm_el
#
# Definitions for linux-arm_el (little endian) target builds
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_el
#-------------------------------------------------------
# Include definitions common to all linux-arm targets
include $(CONFIG)/os/CONFIG.Common.linux-arm

View File

@@ -1,5 +0,0 @@
include $(CONFIG)/os/CONFIG.Common.linuxCommon
GNU = NO
CMPLR_CLASS = clang
CC = clang
CCC = clang++

View File

@@ -1,16 +0,0 @@
# Moxa DA-66x with SDK 4.2 and ARM7 processor
# Include definitions common to all Linux ARM targets
include $(CONFIG)/os/CONFIG.Common.linux-arm
GNU_DIR=/afs/psi.ch/project/embeddedlinux/moxa/arm-linux-4.4.2-v4
GNU_TARGET=arm
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(GNU_DIR)/arm-none-linux-gnueabi/lib
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(INSTALL_LIB)
COMMANDLINE_LIBRARY = READLINE_NCURSES
# suppress note "the mangling of 'va_list' has changed in GCC 4.4"
ARCH_DEP_CXXFLAGS += -Wno-psabi
ARCH_DEP_CFLAGS += -funwind-tables

View File

@@ -1,15 +0,0 @@
# Moxa DA-66x with Montavista Linux 4.0
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
COMMANDLINE_LIBRARY = READLINE_CURSES
ARCH_CLASS = xscale
GNU_DIR=/afs/psi.ch/project/embeddedlinux/moxa/xscale_be/armv5teb-montavista-linuxeabi
ARCH_DEP_CFLAGS += -funwind-tables
# Cannot build PVA because of missing boost support
SKIP_BUILDS = pv% normativeTypes

View File

@@ -1,18 +0,0 @@
# National Instruments CompactRIO running LabView RT 19.5.1
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm
GNU_TARGET = arm-linux-gnu
SYSROOT = /opt/LabVIEW-RT-19.5.1/arm/sysroots/armv7a-vfp-neon-nilrt-linux-gnueabi
ARCH_DEP_CPPFLAGS += -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon
ARCH_DEP_CPPFLAGS += --sysroot=$(SYSROOT)
ARCH_DEP_CPPFLAGS += -I$(SYSROOT)/usr/include/c++/4.7.2/arm-nilrt-linux-gnueabi/
ARCH_DEP_CPPFLAGS += -I$(SYSROOT)/usr/include/c++/4.7.2/
ARCH_DEP_LDFLAGS += --sysroot=$(SYSROOT)
COMMANDLINE_LIBRARY = READLINE_NCURSES

View File

@@ -1,41 +0,0 @@
# RaspberryPi with github.com/raspberrypi/tools toolchain
# Tested on:
# * Raspberry 3B+ Raspbian 9
# * Raspberry 2 Raspbian 7
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
# Using readline:
# Due to missing/messed up libs in the toolchain, readline needs copies of
# libtinfo.so.5.9 and libreadline.so.6.2 from a Raspbian 7 rootfs
# /lib/arm-linux-gnueabihf/ to the toolchain, e.g.
# $(SDK_DIR)/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf/
# and manually created links libtinfo.so.5 and libreadline.so.
# For gcc-linaro-arm-linux-gnueabihf-raspbian, an existing incompatible
# libtinfo.so.5 is in the way. Remove it.
# (Built with glibc 2.16 like installed on Raspbian 9 but toolchain uses glibc 2.13.)
# Also copy /usr/include/readline/ directory from some readline 6 installation
# to $(SDK_DIR)/gcc-linaro-arm-linux-gnueabihf-raspbian/arm-linux-gnueabihf/libc/usr/include/
ARCH_CLASS = arm
SDK_DIR = /opt/raspberrypi/arm-bcm2708
# Available SDK_TARGETs:
# gcc 4.8.3 for 32 bit hosts with GLIBC 2.3 or higher
SDK_TARGET = gcc-linaro-arm-linux-gnueabihf-raspbian
# gcc 4.8.3 for 64 bit hosts with GLIBC 2.14 or higher
# SDK_TARGET = gcc-linaro-arm-linux-gnueabihf-raspbian-x64
# gcc 4.7.1 for 64 bit hosts with GLIBC 2.8 or higher
# SDK_TARGET = arm-linux-gnueabihf
# gcc 4.7.1 for 32 bit hosts with GLIBC 2.4 or higher
# SDK_TARGET = arm-bcm2708hardfp-linux-gnueabi
# SDK_TARGET = arm-bcm2708-linux-gnueabi
GNU_DIR = $(SDK_DIR)/$(SDK_TARGET)
GNU_TARGET = $(if $(filter arm-bcm2708%,SDK_TARGET),$(SDK_TARGET),arm-linux-gnueabihf)

View File

@@ -14,7 +14,6 @@ ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
ARCH_DEP_CFLAGS = -mstrict-align
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -13,7 +13,7 @@ CMPLR_SUFFIX = ppc
ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
ARCH_DEP_CPPFLAGS = -DCPU=PPC603
ARCH_DEP_CFLAGS = -mcpu=603 -mstrict-align
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -14,12 +14,9 @@ ARCH_CLASS = ppc
# Architecture specific build flags
ARCH_DEP_CPPFLAGS = -DCPU=PPC604
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
CODE_CFLAGS_2 = -mno-implicit-fp
CODE_CFLAGS_3 = -mno-implicit-fp
CODE_CFLAGS_4 = -fno-implicit-fp
CODE_CFLAGS += $(CODE_CFLAGS_$(VX_GNU_MAJOR_VERSION))
ARCH_DEP_CFLAGS_2 = -mcpu=604 -mstrict-align -mno-implicit-fp
ARCH_DEP_CFLAGS_3 = -mcpu=604 -mstrict-align -mno-implicit-fp
ARCH_DEP_CFLAGS_4 = -mcpu=604 -mstrict-align -fno-implicit-fp
ARCH_DEP_CFLAGS = $(ARCH_DEP_CFLAGS_$(VX_GNU_MAJOR_VERSION))
GNU_TARGET = powerpc-wrs-vxworks

View File

@@ -1,18 +0,0 @@
# XILINX Zynq with Yocto 2.1 / Petalinux toolchain
# Include definitions common to all Linux targets
include $(CONFIG)/os/CONFIG.Common.linuxCommon
ARCH_CLASS = arm64
SDK = petalinux
SDK_DIR = /opt/petalinux-gfa/2017.2
SDK_HOST_ARCH = $(GNU_HOST_ARCH_64)-$(SDK)-$(GNU_HOST_OS)
SDK_TARGET = aarch64-xilinx-linux
GNU_TARGET = $(SDK_TARGET)
SDKTARGETSYSROOT = $(SDK_DIR)/sysroots/$(SDK_TARGET)
GNU_DIR = $(SDK_DIR)/sysroots/$(SDK_HOST_ARCH)/usr
GNU_BIN = $(GNU_DIR)/bin/$(GNU_TARGET)
ARCH_DEP_CPPFLAGS = --sysroot=$(SDKTARGETSYSROOT)
ARCH_DEP_LDFLAGS = --sysroot=$(SDKTARGETSYSROOT)

View File

@@ -1,3 +0,0 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,16 +0,0 @@
# "cross compile" for older Linux version
# Use older compiler and older libraries
# Used packages:
# compat-gcc-44-c++-4.4.7
# compat-gcc-44-4.4.7
# compat-glibc-headers-2.12
# It was neccessary to install 32 bit compatibility libraries manually
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc44
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++44
TARGET_CPPFLAGS = -isystem /usr/lib/x86_64-redhat-linux6E/include
TARGET_LDFLAGS = -B /usr/lib/x86_64-redhat-linux6E/lib
LINK.cpp += --as-needed -lc -lm -lrt -lpthread -lreadline -ltinfo

View File

@@ -1,16 +0,0 @@
# "cross compile" for older Linux version
# Use older compiler and older libraries
# Used packages:
# compat-gcc-44-c++-4.4.7
# compat-gcc-44-4.4.7
# compat-glibc-headers-2.12
# compat-glibc-2.12
#-------------------------------------------------------
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc44
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++44
TARGET_CPPFLAGS = -isystem /usr/lib/x86_64-redhat-linux6E/include
TARGET_LDFLAGS = -B /usr/lib/x86_64-redhat-linux6E/lib64
LINK.cpp += --as-needed -lc -lm -lrt -lpthread -lreadline -ltinfo

View File

@@ -1,8 +0,0 @@
include $(CONFIG)/os/CONFIG.win32-x86.win32-x86
PATH_FILTER = $(subst /,/,$(1))
# Silence the tr1 namespace deprecation warnings
USR_CXXFLAGS_WIN32 += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
MSVC_DIR = /opt/wine-msvc-2017/bin/x86/

View File

@@ -1,8 +0,0 @@
include $(CONFIG)/os/CONFIG.windows-x64.windows-x64
PATH_FILTER = $(subst /,/,$(1))
# Silence the tr1 namespace deprecation warnings
USR_CXXFLAGS_WIN32 += -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
MSVC_DIR = /opt/wine-msvc-2017/bin/x64/

View File

@@ -1,3 +0,0 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86.Common

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,3 +0,0 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,2 +0,0 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,3 +0,0 @@
#CONFIG.$(EPICS_HOST_ARCH).Common is required by build system
#Include definitions common to linux hosts
include $(CONFIG)/os/CONFIG.linux-x86_64.Common

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -1,2 +0,0 @@
# Include common linux definitions
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86

View File

@@ -0,0 +1,8 @@
# CONFIG.linux-aarch64.Common
#
# Definitions for linux-aarch64 host builds
# Sites may override these definitions in CONFIG_SITE.linux-aarch64.Common
#-------------------------------------------------------
#Include definitions common to unix hosts
include $(CONFIG)/os/CONFIG.UnixCommon.Common

View File

@@ -0,0 +1,8 @@
# CONFIG.linux-aarch64.linux-aarch64
#
# Definitions for native linux-aarch64 builds
# Override these definitions in CONFIG_SITE.linux-aarch64.linux-aarch64
#-------------------------------------------------------
# Include common gnu compiler definitions
include $(CONFIG)/CONFIG.gnuCommon

View File

@@ -1,9 +0,0 @@
# CONFIG.linux-x86.linux-arm_eb
#
# Definitions for linux-x86 host - linux-arm_eb (big endian) target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-arm_eb
#-------------------------------------------------------
# Include definitions for linux-arm targets
include $(CONFIG)/os/CONFIG.linux-x86.linux-arm

View File

@@ -1,9 +0,0 @@
# CONFIG.linux-x86.linux-arm_el
#
# Definitions for linux-x86 host - linux-arm_el (little endian) target builds
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-arm_el
#-------------------------------------------------------
# Include definitions for linux-arm targets
include $(CONFIG)/os/CONFIG.linux-x86.linux-arm

View File

@@ -0,0 +1,28 @@
# CONFIG.linux-x86_64.linux-aarch64
#
# Definitions for linux-x86_64 host - linux-aarch64 target builds
# Sites may override these in CONFIG_SITE.linux-x86_64.linux-aarch64
#-------------------------------------------------------
VALID_BUILDS = Ioc
GNU_TARGET = aarch64-linux
# prefix of compiler tools
CMPLR_SUFFIX =
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
# Provide a link-time path for readline if needed
OP_SYS_INCLUDES += $(READLINE_DIR:%=-I%/include)
READLINE_LDFLAGS = $(READLINE_DIR:%=-L%/lib)
RUNTIME_LDFLAGS_READLINE_YES_NO = $(READLINE_DIR:%=-Wl,-rpath,%/lib)
RUNTIME_LDFLAGS += \
$(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH)_$(STATIC_BUILD))
SHRLIBDIR_LDFLAGS += $(READLINE_LDFLAGS)
PRODDIR_LDFLAGS += $(READLINE_LDFLAGS)
# Library flags
STATIC_LDFLAGS_YES= -Wl,-Bstatic
STATIC_LDFLAGS_NO=
STATIC_LDLIBS_YES= -Wl,-Bdynamic
STATIC_LDLIBS_NO=

View File

@@ -14,15 +14,15 @@ OPT_WHOLE_PROGRAM = YES
#-------------------------------------------------------
WINLINK = $(MSVC_DIR)link
WINLINK = link
RCCMD = $(MSVC_DIR)rc -l 0x409 $(INCLUDES) -fo $@ $<
RCCMD = rc -l 0x409 $(INCLUDES) -fo $@ $<
ARCMD = $(MSVC_DIR)lib -nologo -verbose -out:$@ $(LIB_OPT_LDFLAGS) $(LIBRARY_LD_OBJS)
ARCMD = lib -nologo -verbose -out:$@ $(LIB_OPT_LDFLAGS) $(LIBRARY_LD_OBJS)
#
# Configure OS vendor C compiler
CC = $(MSVC_DIR)cl
CC = cl
# Override CONFIG.gnuCommon settings for cross builds.
GNU = NO
@@ -75,14 +75,14 @@ STATIC_CFLAGS_YES= -MT$(VISC_CFLAGS_DEBUG) $(BUILD_DLL_CFLAGS)
STATIC_CFLAGS_NO= -MD$(VISC_CFLAGS_DEBUG) $(BUILD_DLL_CFLAGS) -DEPICS_CALL_DLL
# OS vendor c preprocessor
CPP = $(MSVC_DIR)cl -nologo -C -E
CPP = cl -nologo -C -E
# Configure OS vendor C++ compiler
#
# -EHsc - generate code for exceptions
# -GR - generate code for run time type identification
#
CCC = $(MSVC_DIR)cl -EHsc -GR
CCC = cl -EHsc -GR
# Other compiler flags, used for CPP, C and C++
#

View File

@@ -1,2 +0,0 @@
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)

View File

@@ -16,3 +16,9 @@ COMMANDLINE_LIBRARY = READLINE_NCURSESW
# No other libraries needed
#COMMANDLINE_LIBRARY = READLINE
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.cygwin-x86.cygwin-x86 instead.

View File

@@ -11,10 +11,8 @@
#LDLIBS_READLINE = -lreadline -lcurses
# 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
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.cygwin-x86_64.cygwin-x86_64 instead.

View File

@@ -0,0 +1,38 @@
# CONFIG_SITE.Common.linux-aarch64
#
# Site Specific definitions for all linux-aarch64 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
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-aarch64.linux-aarch64 instead.

View File

@@ -33,3 +33,12 @@ COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
# Readline is broken or you don't want use it:
#COMMANDLINE_LIBRARY = EPICS
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-arm.linux-arm instead.
# Permit access to 64-bit file-systems
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64

View File

@@ -34,22 +34,17 @@ COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
#COMMANDLINE_LIBRARY = EPICS
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-x86.linux-x86 instead.
# Permit access to 64-bit file-systems
OP_SYS_CFLAGS += -D_FILE_OFFSET_BITS=64
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
#CMPLR_CLASS = clang
#CC = clang
#CCC = clang++
# Tune GNU compiler output for a specific 32-bit cpu-type
# (e.g. generic, native, i386, i686, pentium2/3/4, prescott, k6, athlon etc.)
GNU_TUNE_CFLAGS = -mtune=generic
# Developers using a suitable compiler may enable its address sanitizer:
#ENABLE_ASAN = YES

View File

@@ -34,18 +34,14 @@ COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
#COMMANDLINE_LIBRARY = EPICS
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
#CMPLR_CLASS = clang
#CC = clang
#CCC = clang++
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in CONFIG_SITE.linux-x86_64.linux-x86_64 instead.
# Tune GNU compiler output for a specific 64-bit cpu-type
# (e.g. generic, native, core2, nocona, k8, opteron, athlon64, barcelona etc.)
GNU_TUNE_CFLAGS = -mtune=generic
# Developers using a suitable compiler may enable its address sanitizer:
#ENABLE_ASAN = YES

View File

@@ -2,13 +2,9 @@
#
# Site-specific settings for all linux targets
# WARNING: Variables that are set in $(CONFIG)/CONFIG.gnuCommon cannot be
# overridden in this file for native builds, e.g. variables such as
# OPT_CFLAGS_YES, WARN_CFLAGS, SHRLIB_LDFLAGS
# They must be set in the host+target specific file instead:
# CONFIG_SITE.<linux-arch>.<linux-arch>
# 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
COMMANDLINE_LIBRARY = READLINE
CODE_CPPFLAGS += -fno-strict-aliasing

View File

@@ -2,81 +2,24 @@
#
# Site specific definitions for vxWorks target builds.
#### Fixes for CONFIG.Common.vxWorksCommon #######
# Compiler options can vary with the vxWorks version number, so we
# need to know that. Do not include any third-level digits.
VX_GNU_VERSION_7 = 4.8.1.11
# Note: vxWorks 5.4.x and 5.5.x (Tornado 2.x) are not supported.
# VxWorks 6.0 through 6.5 use older, untested versions of GCC.
#VXWORKS_VERSION = 6.6
#VXWORKS_VERSION = 6.7
#VXWORKS_VERSION = 6.8
VXWORKS_VERSION = 6.9
# These are needed for vxWorks 6.x; the GNU toolset version number
# is in the path to the compiler tools:
VX_GNU_VERSION_5 = 2.96
VX_GNU_VERSION_6 = $(VX_GNU_VERSION_$(VXWORKS_VERSION))
VX_GNU_VERSION = $(VX_GNU_VERSION_$(VXWORKS_MAJOR_VERSION))
VX_GNU_MAJOR_VERSION = $(firstword $(subst ., ,$(VX_GNU_VERSION)))
VX_GNU_MINOR_VERSION = $(word 2,$(subst ., ,$(VX_GNU_VERSION)))
# gcc version before 3.4 are "old" and need special treatment
VX_OLD_GCC_2 = OLD
VX_OLD_GCC_3.3 = OLD
VX_OLD_GCC_3 = $(VX_OLD_GCC_3.$(VX_GNU_MINOR_VERSION))
VX_OLD_GCC = $(VX_OLD_GCC_$(VX_GNU_MAJOR_VERSION))
# vxWorks directory definitions
VX_DIR_5 = $(WIND_BASE)
VX_DIR_6 = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION)
VX_DIR_7 = $(WIND_BASE)/vxworks-$(VXWORKS_VERSION)/pkgs/os
VX_DIR = $(VX_DIR_$(VXWORKS_MAJOR_VERSION))
VX_INCLUDE_DIRS_5 = $(VX_DIR)/target/h
VX_INCLUDE_DIRS_6 = $(VX_DIR)/target/h
VX_INCLUDE_DIRS_6 += $(VX_DIR)/target/h/wrn/coreip
VX_INCLUDE_DIRS_7 = $(VX_DIR)/core/kernel-1.2.8.0/h
VX_INCLUDE_DIRS_7 += $(VX_DIR)/lang-lib/libc-1.0.0.1/libc-kernel-1.0.8.0/h
VX_INCLUDE_DIRS_7 += $(VX_DIR)/utils/ostools-1.0.5.0/h
VX_INCLUDE_DIRS_7 += $(VX_DIR)/utils/ostools-1.0.5.0/shareh
VX_INCLUDE_DIRS_7 += $(VX_DIR)/arch/ppc-1.3.4.0/kernel/base/h/
VX_INCLUDE_DIRS_7 += $(VX_DIR)/arch/ppc-1.3.4.0/kernel/60x/h/arch/ppc/
VX_INCLUDE_DIRS_7 += $(WIND_BASE)/vxworks-$(VXWORKS_VERSION)/samples/prebuilt_projects/vsb_vxsim_linux/krnl/h/public
GNU_TARGET_INCLUDE_DIR = $(VX_INCLUDE_DIRS_$(VXWORKS_MAJOR_VERSION))
TARGET_CPPFLAGS_5 = -isystem $(VX_DIR)/target/h
TARGET_CPPFLAGS_6 = -isystem $(VX_DIR)/target/h
TARGET_CPPFLAGS_7 = -isystem $(VX_DIR)/core/kernel-1.2.8.0/h -D_VSB_CONFIG_FILE='<$(WIND_BASE)/vxworks-$(VXWORKS_VERSION)/samples/prebuilt_projects/vsb_vxsim_linux/h/config/vsbConfig.h>'
TARGET_CPPFLAGS = $(TARGET_CPPFLAGS_$(VXWORKS_MAJOR_VERSION))
# vxWorks GNU directories
GNU_DIR_5 = $(WIND_BASE)/host/$(WIND_HOST_TYPE)
GNU_DIR_6 = $(WIND_BASE)/gnu/$(VX_GNU_VERSION)-vxworks-$(VXWORKS_VERSION)/$(WIND_HOST_TYPE)
GNU_DIR_7 = $(WIND_BASE)/compilers/gnu-$(VX_GNU_VERSION)/$(WIND_HOST_TYPE)
GNU_DIR = $(GNU_DIR_$(VXWORKS_MAJOR_VERSION))
# Operating system flags
OP_SYS_CFLAGS += -fno-strict-aliasing
OP_SYS_INCLUDE_CPPFLAGS_5 += -include $(VX_DIR)/target/h/vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS_6 += -include $(VX_DIR)/target/h/vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS_7 += -include vxWorks.h
OP_SYS_INCLUDE_CPPFLAGS = $(OP_SYS_INCLUDE_CPPFLAGS_$(VXWORKS_MAJOR_VERSION))
# For gcc versions before 3.4 we need this g++ compiler flag
# However WindRiver says gcc 3.3 does not need it any more
# which would allow to build vxWorks 6 without this flag.
# Maybe we can live without it at the penalty of larger code.
# See vxWorks 5 docs/gnu2.96+ppc/gcc.html
# chapter 4.5 "Where's the Template?"
CODE_CXXFLAGS_OLD = -fno-implicit-templates
CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VX_OLD_GCC))
# Sites may override the following path for a particular host
# architecture by adding it to an appropriate
# CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon file.
# WIND_BASE is where you installed the Wind River software.
WIND_BASE = /afs/psi.ch/project/vxworks/VxWorks$(VXWORKS_VERSION)
#--------------------------------------------------
# Modules we cannot build with old compiler
PV_MODULES = pv% normativeTypes
SKIP_BUILDS_5 = $(PV_MODULES)
SKIP_BUILDS_OLD = $(PV_MODULES)
SKIP_BUILDS_6 = $(SKIP_BUILDS_$(VX_OLD_GCC))
SKIP_BUILDS = $(SKIP_BUILDS_$(VXWORKS_MAJOR_VERSION))
#WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS)
WIND_BASE = /usr/local/vw/vxWorks-$(VXWORKS_VERSION)
#WIND_BASE = /ade/vxWorks/$(VXWORKS_VERSION)

View File

@@ -1,21 +0,0 @@
include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common
# Build 32 bit version as a cross architecture
#CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86
# Improved error checking with clang
CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64-clang
# Build for old SL6 64 bit
CROSS_COMPILER_TARGET_ARCHS += SL6-x86_64
# Build for old SL6 32 bit
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86
# WINE MSVC
CROSS_COMPILER_TARGET_ARCHS += win32-x86 windows-x64
# NI Linux Real-Time 7.x
# requires RPM gcc-c++-arm-linux-gnu
CROSS_COMPILER_TARGET_ARCHS += nilrt7-armv7a

View File

@@ -1 +0,0 @@
include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common

View File

@@ -1,3 +0,0 @@
include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common
# Build 32 bit version as a cross architecture
CROSS_COMPILER_TARGET_ARCHS += SL5-x86

View File

@@ -1 +0,0 @@
include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common

View File

@@ -1,7 +0,0 @@
# Build 32 bit version as a cross architecture
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86
# Improved error checking with clang
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86_64-clang
include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common

View File

@@ -6,3 +6,11 @@
# GNU_DIR used when COMMANDLINE_LIBRARY is READLINE
#GNU_DIR=C:/cygwin
# 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

@@ -0,0 +1,12 @@
# CONFIG_SITE.linux-aarch64.linux-aarch64
#
# Site specific definitions for native linux-aarch64 builds
#-------------------------------------------------------
# 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

@@ -1,46 +1,9 @@
INSTALL_LOCATION=/usr/local/epics/base-$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
# CONFIG_SITE.linux-x86.Common
#
# Site override definitions for linux-x86 host builds
#-------------------------------------------------------
GNU_HOST_ARCH=i686
GNU_HOST_OS=linux
# LD_LIBRARY_PATH may cause problems for eldk53-ppc4xxFP
LD_LIBRARY_PATH=
# vxWorks 5.5 for MVxxxx boards
CROSS_COMPILER_TARGET_ARCHS += T2-ppc604
# vxWorks 6.7 for MVxxxx boards
CROSS_COMPILER_TARGET_ARCHS += V67-ppc604
# vxWorks 6.9 for MVxxxx boards
CROSS_COMPILER_TARGET_ARCHS += V69-ppc604
CROSS_COMPILER_TARGET_ARCHS += V69-ppc32
# NI compact RIO
CROSS_COMPILER_TARGET_ARCHS += V63-ppc603
# MOXA montavista linux (No PVA because of missing boost support)
CROSS_COMPILER_TARGET_ARCHS += mvl40-xscale_be
# MOXA SDK 4.2
CROSS_COMPILER_TARGET_ARCHS += moxa42-armv6l
# Virtex embedded PPC
CROSS_COMPILER_TARGET_ARCHS += eldk51-ppc4xxSF
# IOxOS IFC1210
CROSS_COMPILER_TARGET_ARCHS += eldk52-e500v2
# DeltaTau PowerPMAC
CROSS_COMPILER_TARGET_ARCHS += eldk42-ppc4xxFP
CROSS_COMPILER_TARGET_ARCHS += eldk53-ppc4xxFP
# Test other vxWorks versions
#CROSS_COMPILER_TARGET_ARCHS += V66-ppc603
CROSS_COMPILER_TARGET_ARCHS += V66-ppc604
#CROSS_COMPILER_TARGET_ARCHS += V63-ppc604
# (No PVA because of old compiler)
CROSS_COMPILER_TARGET_ARCHS += V62-ppc604
# Raspberry Pi
CROSS_COMPILER_TARGET_ARCHS += raspbian-arm
# JBA test override values
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 solaris-sparc
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100 RTEMS-pc386 # RTEMS-mvme5500 RTEMS-mvme167

View File

@@ -1,13 +0,0 @@
# CONFIG_SITE.linux-x86.linux-arm_eb
#
# Site specific definitions for linux-x86 host - linux-arm_eb target builds
#-------------------------------------------------------
# Include definitions for linux-arm targets
include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-arm
# Path to the GNU toolset for linux-arm_eb (big endian) target
#GNU_DIR = /local/anj/cross-arm/gcc-3.4.5-glibc-2.3.6/armeb-linux
# GNU crosscompiler target name
#GNU_TARGET = armeb-linux

View File

@@ -1,13 +0,0 @@
# CONFIG_SITE.linux-x86.linux-arm_el
#
# Site specific definitions for linux-x86 host - linux-arm_el target builds
#-------------------------------------------------------
# Include definitions for linux-arm targets
include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-arm
# Path to the GNU toolset for linux-arm_el (little endian) target
#GNU_DIR = /local/anj/cross-arm/gcc-3.4.5-glibc-2.3.6/armel-linux
# GNU crosscompiler target name
#GNU_TARGET = armel-linux

View File

@@ -3,3 +3,17 @@
# Site specific definitions for linux-x86 host - linux-x86 target builds
#-------------------------------------------------------
# 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
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
#CMPLR_CLASS = clang
#CC = clang
#CCC = clang++

View File

@@ -1,9 +1,9 @@
include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common
# CONFIG_SITE.linux-x86_64.Common
#
# Site override definitions for linux-x86_64 host builds
#-------------------------------------------------------
GNU_HOST_ARCH_64=x86_64
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 solaris-sparc
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100
# IOxOS IFC1211
CROSS_COMPILER_TARGET_ARCHS += fslqoriq20-e6500_64
# Zynq
CROSS_COMPILER_TARGET_ARCHS += yocto21-aarch64

View File

@@ -0,0 +1,30 @@
# CONFIG_SITE.linux-x86.linux-aarch64
#
# Site specific definitions for linux-x86 host - linux-aarch64 target builds
#-------------------------------------------------------
# Set GNU crosscompiler target name
GNU_TARGET = aarch64-linux-gnu
# Set GNU tools install path
# Examples is the installation at the APS:
GNU_DIR = /usr/local/Xilinx/SDK/2018.3/gnu/aarch64/lin/aarch64-linux
# If cross-building shared libraries and the paths on the target machine are
# different than on the build host, you should uncomment the lines below to
# disable embedding compile-time library paths into the generated files.
# You will need to provide another way for programs to find their shared
# libraries at runtime, such as by setting LD_LIBRARY_PATH or (better) using
# mechanisms related to /etc/ld.so.conf
#SHRLIBDIR_RPATH_LDFLAGS_YES_NO =
#PRODDIR_RPATH_LDFLAGS_YES_NO =
# However it is usually simpler to set STATIC_BUILD=YES here and not
# try to use shared libraries at all when cross-building, like this:
STATIC_BUILD=YES
SHARED_LIBRARIES=NO
# To use libreadline, point this to its install prefix
#READLINE_DIR = $(GNU_DIR)
#READLINE_DIR = /tools/cross/linux-x86.linux-arm/readline
# See CONFIG_SITE.Common.linux-arm for other COMMANDLINE_LIBRARY values
#COMMANDLINE_LIBRARY = READLINE

View File

@@ -3,4 +3,17 @@
# Site specific definitions for linux-x86_64 host - linux-x86_64 target builds
#-------------------------------------------------------
# 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
# Uncomment the followings lines to build with CLANG instead of GCC.
#
#GNU = NO
#CMPLR_CLASS = clang
#CC = clang
#CCC = clang++

3
documentation/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
*.db
epics-base.tag
html/

2407
documentation/Doxyfile@ Normal file

File diff suppressed because it is too large Load Diff

33
documentation/Makefile Normal file
View File

@@ -0,0 +1,33 @@
TOP = ..
include $(TOP)/configure/CONFIG
ifdef T_A
DOXYGEN=doxygen
EXPAND = Doxyfile
EXPAND_ME += EPICS_VERSION
EXPAND_ME += EPICS_REVISION
EXPAND_ME += EPICS_MODIFICATION
EXPAND_ME += EPICS_PATCH_LEVEL
ME = documentation/O.$(T_A)/html
install: doxygen
doxygen: Doxyfile
$(DOXYGEN)
rsync -av $(TOP)/html/ html/
.PHONY: doxygen
commit: doxygen
$(TOUCH) html/.nojekyll
(cd $(TOP) && $(CURDIR)/../commit-gh.sh $(ME)/ $(ME)/.nojekyll $(ME)/*.* $(ME)/*/*.*)
.PHONY: commit
endif # T_A
include $(TOP)/configure/RULES

View File

@@ -1,6 +1,6 @@
# Installation Instructions
# Installation Instructions {#install}
## EPICS Base Release 7.0.3.1
## EPICS Base Release 7.0.4.1
-----
@@ -237,7 +237,7 @@ Files in the base/startup directory have been provided to help set
required path and other environment variables.
* `EPICS_HOST_ARCH`
Before you can build or use EPICS R3.15, the environment variable
Before you can build or use this EPICS base, the environment variable
`EPICS_HOST_ARCH` must be defined. A perl script EpicsHostArch.pl in
the base/startup directory has been provided to help set
`EPICS_HOST_ARCH.` You should have `EPICS_HOST_ARCH` set to your
@@ -263,7 +263,7 @@ ranlib in your path, and the C compiler may require as and ld in
your path. On solaris systems you need uname in your path.
* `LD_LIBRARY_PATH`
R3.15 shared libraries and executables normally contain the full
EPICS shared libraries and executables normally contain the full
path to any libraries they require. However, if you move the EPICS
files or directories from their build-time location then in order
for the shared libraries to be found at runtime `LD_LIBRARY_PATH`
@@ -336,10 +336,10 @@ A perl tool, makeBaseApp.pl is included in the distribution file. This
script will create a sample application that can be built and then
executed to try out this release of base.
Instructions for building and executing the 3.15 example application
Instructions for building and executing the EPICS example application
can be found in the section "Example Application" of Chapter 2,
"Getting Started", in the "IOC Application Developer's Guide" for this
release. The "Example IOC Application" section briefly explains how to
"Getting Started", in the "EPICS Application Developer's Guide".
The "Example IOC Application" section briefly explains how to
create and build an example application in a user created &lt;top>
directory. It also explains how to run the example application on a
vxWorks ioc or as a process on the host system. By running the example

View File

@@ -1,4 +1,4 @@
# EPICS 7.0 Release Notes
# EPICS 7.0 Release Notes {#releasenotes}
These release notes describe changes that have been made since the previous
release of this series of EPICS Base. **Note that changes which were merged up
@@ -13,10 +13,90 @@ should also be read to understand what has changed since earlier releases.
**This version of EPICS has not been released yet.**
## Changes made on the 7.0 branch since 7.0.4
## Changes made on the 7.0 branch since 7.0.4.1
<!-- Insert new items immediately below here ... -->
### Add registerAllRecordDeviceDrivers()
Addition of registerAllRecordDeviceDrivers() as an iocsh function
and in iocshRegisterCommon.h. This function uses dynamic lookup with epicsFindSymbol()
to perform the same function as a generated \*_registerRecordDeviceDriver() function.
This allows dynamic loading/linking of support modules without code generation.
This feature is not intended for use by IOCs constructed using the standard EPICS application
build process and booted from a startup script in an iocBoot subdirectory, although it might
work in some of those cases (the IOC's registerRecordDeviceDriver.cpp file is still required
to link everything into the executable). It also won't work with some static build
configurations or where the symbol table has been stripped from the executable.
### Using a `{const:"string"}` to initialize an array of `DBF_CHAR`
It is now possible to use a JSON Const link with a string value to initialize
an aai or waveform record that has `FTVL` set to `CHAR` through the INP link.
The string length is not limited to 40 characters. This should also work for
aSub record inputs similarly configured as long strings.
```
record(waveform, "wf") {
field(NELM, 100)
field(FTVL, CHAR)
field(INP, {const:"This is a waveform and more than 40 characters"})
}
```
### RELEASE files may use `undefine`
GNUmake added the directive `undefine` in version 3.82 to allow variables to
be undefined. Support for this has been added to the EPICS Release file parser,
so `undefine` can now be used in configure/RELEASE files to unset variables.
## EPICS Release 7.0.4.1
### ARM Architecture Changes
Build configuration files for a new cross-build architecture `linux-aarch64`
have been added, and the targets `linux-arm_el` and `linux-arm_eb` removed.
The 64-bit ARM architecture target doesn't have build files for self-hosting
yet but they should be relatively easy to add, contributions welcome!
### Bug fixes
The following bugs/issues have fixes included in this release:
- [lp: 1884339](https://bugs.launchpad.net/epics-base/+bug/1884339),
Inaccessible CA servers on Windows
- [github: 83](https://github.com/epics-base/epics-base/issues/83)
osdTimeGetCurrent doesn't work for subprocess on macOS
- Recent Cygwin build problem with a missing `TCP_NODELAY` declaration.
### Perl CA Bindings under Conda
Builds of the Perl CA bindings weren't working properly when the Perl
installation was from Conda. This release also fixed the capr.pl script
to handle the INT64 data types, and to be able to properly handle missing
fields, as happens if the IOC is running an older EPICS version for example.
### epicsMessageQueue implementation on RTEMS
The implementation of the `epicsMessageQueue` used on RTEMS has switched from
the native RTEMS-specific one to the EPICS generic version, avoiding a bug
in the RTEMS Kernel message queue code.
### Record Name Validation
Historically, there have been very few restrictions on which characters
may be present in record and alias names. Base 3.14.12.3 added a warning
for names containing space, single or double quote, period/dot, or
dollar sign.
```
Bad character ' ' in record name "bad practice"
```
7.0.4.1 Turns this warning into an error, and adds a new warning
if a record name begins with a minus, plus, left square bracket,
or left curly bracket.
## EPICS Release 7.0.4
@@ -1329,6 +1409,15 @@ header and removed the need for dbScan.c to reach into the internals of its
# Changes incorporated from the 3.15 branch
## Changes made on the 3.15 branch since 3.15.8
### Change to the `junitfiles` self-test build target
The names of the generated junit xml test output files have been changed
from `<testname>.xml` to `<testname>-results.xml`, to allow better
distinction from other xml files. (I.e., for easy wildcard matching.)
## Changes made between 3.15.7 and 3.15.8
### Bug fixes
@@ -1352,7 +1441,6 @@ The following launchpad bugs have fixes included in this release:
- [lp: 1868486](https://bugs.launchpad.net/epics-base/+bug/1868486),
epicsMessageQueue lost messages
### Improvements to the self-test build targets
This release contains changes that make it possible to integrate another test
@@ -1368,7 +1456,7 @@ results; previously the `-k` flag to make was needed and even that didn't always
work.
Continuous Integration systems are recommended to run `make tapfiles` (or if
they can read junittest output instead of TAP `make junitests`) followed by
they can read junittest output instead of TAP `make junitfiles`) followed by
`make -s test-results` to display the results of the tests. If multiple CPUs are
available the `-j` flag can be used to run tests in parallel, giving the maximum
jobs that should be allowed so `make -j4 tapfiles` for a system with 4 CPUs say.
@@ -1616,8 +1704,8 @@ cases. This fixes
Some documentation has been added to the `dbdToHtml.pl` script
explaining how Perl POD (Plain Old Documentation) markup can be added to
`.dbd` files to generate HTML documentation for the record types. To see
these instructions, run `perl bin/<host>/dbdToHtml.pl -H`
or `perldoc bin/<host>/dbdToHtml.pl`.
these instructions, run `perl bin/<host>/dbdToHtml.pl -H`
or `perldoc bin/<host>/dbdToHtml.pl`.
### Fix problem with numeric soft events

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