Compare commits
290 Commits
PSI-7.0.5.
...
PSI-7.0.6.
| Author | SHA1 | Date | |
|---|---|---|---|
| eb98b65d8b | |||
| 3f8cee7d73 | |||
| aae9d68818 | |||
| f43d21eab3 | |||
| 9e1e4ddd91 | |||
| 8d1cd837d1 | |||
| dc277d1d99 | |||
|
|
b7ad6d906a | ||
|
|
3cfc16f5ff | ||
|
|
05bf567f3b | ||
|
|
ff1b9d4250 | ||
|
|
9b9de013db | ||
|
|
c546f6da23 | ||
| 8a08974f15 | |||
| 04d23354b9 | |||
| ddad6e7b6f | |||
| 9a17604e70 | |||
| c7e3359f08 | |||
| 16d068353a | |||
| f7b4c91163 | |||
| 55536a13db | |||
| 66abb7116f | |||
|
|
5912445991 | ||
|
|
67bf1a72e7 | ||
|
|
ba3550c287 | ||
|
|
c0cfeb249a | ||
|
|
710c50b5ed | ||
|
|
8e7d3e9216 | ||
|
|
e2d3b9a246 | ||
|
|
5feb18b0b0 | ||
|
|
7ca25d3c88 | ||
|
|
dff72029f1 | ||
|
|
f2ac69604d | ||
|
|
f92b4b456a | ||
|
|
67fcd65656 | ||
|
|
3be67aca3c | ||
|
|
ebf4a155d7 | ||
|
|
28531b0dbb | ||
|
|
5c3ecf9054 | ||
|
|
c7e2acb1a6 | ||
|
|
51c1a33687 | ||
|
|
e8c5748f89 | ||
|
|
4dad8ca503 | ||
| c36485ab2e | |||
|
|
1cacd058cd | ||
|
|
ce876d6f11 | ||
|
|
cb5f68994f | ||
| ac6eb5e212 | |||
| b5265ed853 | |||
|
|
983f77e119 | ||
|
|
ca2ea14082 | ||
|
|
b35064d26c | ||
|
|
256babf961 | ||
|
|
b471e8388f | ||
|
|
f825136f65 | ||
|
|
3c329c1b48 | ||
| bb89d5d24e | |||
| ad7a2ddf65 | |||
| 19031a7d11 | |||
| 1c9887bd45 | |||
|
|
6c7214ee06 | ||
|
|
b42a145824 | ||
|
|
c98e5085c3 | ||
|
|
5ccc11569b | ||
|
|
dcee3b2c33 | ||
|
|
b5a3e4aea5 | ||
|
|
0f90793d17 | ||
|
|
a17c30e51f | ||
|
|
462916f9e4 | ||
|
|
6d96ea06d0 | ||
|
|
5e61f7e499 | ||
|
|
ead24c4fd6 | ||
|
|
f3da6e9464 | ||
|
|
8e468da4cc | ||
|
|
1b825da9ec | ||
|
|
c6247329ab | ||
|
|
c5c6facc3e | ||
|
|
57fab5104f | ||
|
|
c7eb41abbc | ||
|
|
ac0693f2f2 | ||
|
|
e8512ceba0 | ||
|
|
e4ce0ec255 | ||
|
|
e3e9d9bb37 | ||
|
|
75caf83194 | ||
|
|
38c146d89d | ||
| 209b979e56 | |||
|
|
457febb3a6 | ||
| b777233efb | |||
|
|
08b741ed05 | ||
|
|
a9457fc02b | ||
|
|
f8e720da28 | ||
| 555e671246 | |||
|
|
5f1eb1dd9e | ||
|
|
8adf03f74a | ||
|
|
379a68b93c | ||
|
|
1b8a1ebd07 | ||
|
|
de3cdcef39 | ||
|
|
315fb3df69 | ||
|
|
fa9fb0a3ca | ||
|
|
857527280b | ||
|
|
d1ddbad053 | ||
|
|
2952d114f5 | ||
|
|
1db35d9edc | ||
|
|
cc3e1039ce | ||
|
|
e20502fb4c | ||
|
|
9cca12936d | ||
|
|
28f3239b32 | ||
|
|
6a9d92f8f4 | ||
|
|
b55c019f10 | ||
|
|
31584e52be | ||
|
|
dc03d519fb | ||
| 34ce5c1d21 | |||
|
|
2eb5af3167 | ||
| 605aff2461 | |||
| ba1c40df7c | |||
| e25dafa9ca | |||
| ce78836328 | |||
| 8225c313b9 | |||
| be78b33570 | |||
| 9926fe3036 | |||
|
|
718390cfba | ||
|
|
6f864fc10e | ||
|
|
4b6cb2bcdd | ||
|
|
c866609f24 | ||
|
|
ee193edd42 | ||
|
|
40c55d65b3 | ||
|
|
a83b3a5331 | ||
|
|
65098a4120 | ||
|
|
0650fba936 | ||
|
|
16244acd3c | ||
|
|
fe52b0aa1a | ||
|
|
2af0fe894e | ||
|
|
387481799b | ||
|
|
d606155f17 | ||
|
|
c4d639e72a | ||
|
|
19d10b3161 | ||
|
|
220e2f9b12 | ||
|
|
3661874c92 | ||
|
|
a9a3ce535c | ||
|
|
6a81b2c6a0 | ||
|
|
139fac2928 | ||
| dcc6a36bf7 | |||
|
|
f02884d996 | ||
| 3b7fd004b8 | |||
| 2796764905 | |||
| 4c27619ee9 | |||
|
|
71a1ff1292 | ||
|
|
c07ebcee5c | ||
|
|
b00130493f | ||
|
|
4c63cb79dd | ||
|
|
67bbc0fa21 | ||
|
|
58a9767aa4 | ||
|
|
54d40a398a | ||
|
|
cbab8daae0 | ||
|
|
e3d04e9cd8 | ||
|
|
cde7d3d254 | ||
|
|
e2a9678b15 | ||
|
|
e2313d0c58 | ||
|
|
e812323792 | ||
|
|
396624fefc | ||
|
|
f727d16b0d | ||
|
|
348d1bba17 | ||
|
|
0edf986c31 | ||
|
|
235f8ed2fb | ||
|
|
3f4432b7bd | ||
|
|
f69b938401 | ||
|
|
bd3ecf1cbc | ||
|
|
b94afaa045 | ||
|
|
1ceb26eeb8 | ||
|
|
633859d7ab | ||
|
|
aad3476c04 | ||
|
|
12f1818b39 | ||
|
|
4ca765d813 | ||
|
|
5143c71a43 | ||
|
|
a12684e7ad | ||
|
|
d19586fdfd | ||
|
|
892a361de7 | ||
|
|
91b2b65c68 | ||
|
|
614961da17 | ||
|
|
dd09afc4e8 | ||
|
|
417821ddc0 | ||
|
|
0f428ea334 | ||
|
|
c829ca39d8 | ||
|
|
51cdfe9e8e | ||
|
|
6ed6dc11bb | ||
|
|
0d2228b536 | ||
|
|
3eeebb74cd | ||
|
|
1bd041745b | ||
|
|
fa069b0845 | ||
|
|
e5aab6561c | ||
|
|
c78db512f2 | ||
|
|
1c6b02b9be | ||
|
|
f9ea6a5bff | ||
|
|
fc4379595e | ||
|
|
af2d4de942 | ||
|
|
3874c1bcfc | ||
|
|
29e9843056 | ||
|
|
c140a0a804 | ||
|
|
5f94ab6d9f | ||
|
|
c6af4a245d | ||
|
|
01cc99ac87 | ||
|
|
c0886b3037 | ||
|
|
31ade32004 | ||
|
|
c606048e57 | ||
|
|
f69ff5afde | ||
|
|
102e30eaa9 | ||
|
|
75063a69ec | ||
|
|
f34d744f5f | ||
|
|
8e50b3109a | ||
|
|
79242da515 | ||
|
|
11fedecefc | ||
|
|
17b0c69dd6 | ||
|
|
e2d37bc70d | ||
|
|
45907d6553 | ||
|
|
317828fd74 | ||
|
|
35ec367eac | ||
|
|
c4944b5357 | ||
|
|
2c29dd0c7e | ||
|
|
9a8e56d83e | ||
|
|
cd6e642eee | ||
|
|
25b9655f60 | ||
|
|
f5eb5033f2 | ||
|
|
633055aa56 | ||
|
|
a1d073955f | ||
|
|
dc1bf9106e | ||
|
|
74fa27d316 | ||
|
|
3bdfb9ec45 | ||
|
|
a934570cce | ||
|
|
6965f86298 | ||
|
|
af88e9f6c6 | ||
|
|
a309912c8b | ||
|
|
b0dfb76871 | ||
|
|
125fc08993 | ||
|
|
e38a8b15d4 | ||
|
|
c628db82ac | ||
|
|
4755d6c7f0 | ||
|
|
3fd9ffc995 | ||
|
|
a8262573f5 | ||
|
|
e4b17bdab5 | ||
|
|
ea40041b45 | ||
|
|
6bf26782a0 | ||
|
|
c523fe7a3e | ||
|
|
ce264306b8 | ||
|
|
188f46f74b | ||
|
|
518ac1d7c1 | ||
|
|
0adaa7fcf1 | ||
|
|
d21c6d5545 | ||
|
|
5c792687a6 | ||
|
|
347d24a2a8 | ||
|
|
cd0e6a4f9a | ||
|
|
8d7c98aac4 | ||
|
|
54c91f1458 | ||
|
|
9cac0b6410 | ||
|
|
a5604ccbf0 | ||
|
|
e2927417c3 | ||
|
|
277e9050a8 | ||
|
|
fe3e2c60a5 | ||
|
|
e4885d2446 | ||
|
|
08b7dd1208 | ||
|
|
25a072540f | ||
|
|
399c63ec5c | ||
|
|
341ca91229 | ||
|
|
97e6f0a53d | ||
|
|
54f2d8887f | ||
|
|
4127f6efec | ||
|
|
97ce6aecc7 | ||
|
|
a718357211 | ||
|
|
9f387b9675 | ||
|
|
8ef4d29c48 | ||
|
|
1b6b32e9ca | ||
|
|
761ebff6d7 | ||
|
|
f685b0edb4 | ||
|
|
14140acd78 | ||
|
|
9c01c55f08 | ||
|
|
ec94351a5e | ||
|
|
708cecfadc | ||
|
|
b2c4f0d015 | ||
|
|
8b766f767f | ||
|
|
629f958427 | ||
|
|
bb860ae001 | ||
|
|
75548c95d1 | ||
|
|
8a2f336f8f | ||
|
|
4d69b7621d | ||
|
|
2b28d97063 | ||
|
|
5a5345d44a | ||
|
|
10aff42da6 | ||
|
|
8366770d72 | ||
|
|
e2e606d53f | ||
|
|
bba7d8c8f8 | ||
|
|
077b41e6c1 |
@@ -31,6 +31,8 @@ skip_commits:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.github/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
@@ -64,6 +66,7 @@ environment:
|
||||
- CMP: vs2012
|
||||
- CMP: vs2010
|
||||
- CMP: gcc
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
|
||||
# Platform: processor architecture
|
||||
platform:
|
||||
@@ -104,11 +107,11 @@ build_script:
|
||||
|
||||
test_script:
|
||||
- cmd: python -m ci_core_dumper install
|
||||
- cmd: python .ci/cue.py test
|
||||
- cmd: python .ci/cue.py -T 20M test
|
||||
|
||||
on_finish:
|
||||
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
|
||||
- cmd: python .ci/cue.py build test-results -s
|
||||
- cmd: python .ci/cue.py -T 5M test-results
|
||||
|
||||
on_failure:
|
||||
- cmd: python -m ci_core_dumper report
|
||||
|
||||
@@ -38,6 +38,8 @@ skip_commits:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.github/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
@@ -111,11 +113,11 @@ build_script:
|
||||
|
||||
test_script:
|
||||
- cmd: python -m ci_core_dumper install
|
||||
- cmd: python .ci/cue.py test
|
||||
- cmd: python .ci/cue.py -T 20M test
|
||||
|
||||
on_finish:
|
||||
- ps: Get-ChildItem *.tap -Recurse -Force | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
|
||||
- cmd: python .ci/cue.py build test-results -s
|
||||
- cmd: python .ci/cue.py -T 5M test-results
|
||||
|
||||
on_failure:
|
||||
- cmd: python -m ci_core_dumper report
|
||||
|
||||
2
.ci
2
.ci
Submodule .ci updated: 7d9d426629...d675de24e6
@@ -1,19 +0,0 @@
|
||||
#!/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
|
||||
22
.gitattributes
vendored
22
.gitattributes
vendored
@@ -1,5 +1,25 @@
|
||||
.ci/ export-ignore
|
||||
.tools/ export-ignore
|
||||
.github/ export-ignore
|
||||
.appveyor/ export-ignore
|
||||
.appveyor.yml export-ignore
|
||||
.travis.yml export-ignore
|
||||
README export-subst
|
||||
|
||||
#Which files need CRLF handling
|
||||
# default to automatic
|
||||
* text=auto
|
||||
|
||||
# batch script parser on windows requires CRLF
|
||||
*.bat text eol=crlf
|
||||
|
||||
# extensions for scripts which may be executable via. "#!..." must have LF
|
||||
*.pl text eol=lf
|
||||
*.plt text eol=lf
|
||||
*.sh text eol=lf
|
||||
*.cmd text eol=lf
|
||||
# .cmd in unexpanded templates
|
||||
*.cmd@* text eol=lf
|
||||
# executable scripts w/o extensions
|
||||
modules/ca/src/client/S99caRepeater@ text eol=lf
|
||||
modules/libcom/src/log/S99logServer@ text eol=lf
|
||||
startup/EpicsHostArch text eol=lf
|
||||
|
||||
76
.github/workflows/ci-scripts-build.yml
vendored
76
.github/workflows/ci-scripts-build.yml
vendored
@@ -14,9 +14,19 @@ on:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.appveyor/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- 'documentation/*'
|
||||
- 'startup/*'
|
||||
- '.appveyor/*'
|
||||
- '.tools/*'
|
||||
- '.gitattributes'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
env:
|
||||
SETUP_PATH: .ci-local:.ci
|
||||
@@ -33,7 +43,9 @@ jobs:
|
||||
BCFG: ${{ matrix.configuration }}
|
||||
WINE: ${{ matrix.wine }}
|
||||
RTEMS: ${{ matrix.rtems }}
|
||||
RTEMS_TARGET: ${{ matrix.rtems_target }}
|
||||
EXTRA: ${{ matrix.extra }}
|
||||
TEST: ${{ matrix.test }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -68,17 +80,70 @@ jobs:
|
||||
extra: "CMD_CXXFLAGS=-std=c++11"
|
||||
name: "Ub-20 clang-10 C++11"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-pc686-qemu
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 pc686"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-beatnik
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 beatnik"
|
||||
|
||||
# Only build one RTEMS target per CPU family
|
||||
# unless it's running the tests
|
||||
#
|
||||
# - os: ubuntu-20.04
|
||||
# cmp: gcc
|
||||
# configuration: default
|
||||
# rtems: "5"
|
||||
# rtems_target: RTEMS-mvme3100
|
||||
# test: NO
|
||||
# name: "Ub-20 gcc-9 + RT-5.1 mvme3100"
|
||||
#
|
||||
# - os: ubuntu-20.04
|
||||
# cmp: gcc
|
||||
# configuration: default
|
||||
# rtems: "5"
|
||||
# rtems_target: RTEMS-qoriq_e500
|
||||
# test: NO
|
||||
# name: "Ub-20 gcc-9 + RT-5.1 qoriq_e500"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-xilinx_zynq_a9_qemu
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 xilinx_zynq_a9_qemu"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "5"
|
||||
rtems_target: RTEMS-uC5282
|
||||
test: NO
|
||||
name: "Ub-20 gcc-9 + RT-5.1 uC5282"
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "4.10"
|
||||
name: "Ub-20 gcc-9 + RT-4.10"
|
||||
rtems_target: RTEMS-pc386-qemu
|
||||
|
||||
- os: ubuntu-20.04
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
rtems: "4.9"
|
||||
name: "Ub-20 gcc-9 + RT-4.9"
|
||||
rtems_target: RTEMS-pc386-qemu
|
||||
|
||||
- os: ubuntu-16.04
|
||||
cmp: gcc-4.8
|
||||
@@ -124,6 +189,11 @@ jobs:
|
||||
configuration: static
|
||||
name: "Win2019 MSC-19, static"
|
||||
|
||||
- os: windows-2019
|
||||
cmp: vs2019
|
||||
configuration: debug
|
||||
name: "Win2019 MSC-19, debug"
|
||||
|
||||
- os: windows-2019
|
||||
cmp: gcc
|
||||
configuration: default
|
||||
@@ -153,12 +223,14 @@ jobs:
|
||||
- name: Build main module
|
||||
run: python .ci/cue.py build
|
||||
- name: Run main module tests
|
||||
run: python .ci/cue.py test
|
||||
run: python .ci/cue.py -T 20M test
|
||||
- name: Upload tapfiles Artifact
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: tapfiles ${{ matrix.name }}
|
||||
path: '**/O.*/*.tap'
|
||||
if-no-files-found: ignore
|
||||
- name: Collect and show test results
|
||||
run: python .ci/cue.py test-results
|
||||
if: ${{ always() }}
|
||||
run: python .ci/cue.py -T 5M test-results
|
||||
|
||||
@@ -16,6 +16,10 @@ ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
|
||||
CONFIG = $(TOP)/configure
|
||||
BASE_TOP=YES
|
||||
else
|
||||
ifneq ($(origin EPICS_BASE),file)
|
||||
# Essential for the EPICS build system, see convertRelease.pl
|
||||
$(error EPICS_BASE must be set in a configure/RELEASE file)
|
||||
endif
|
||||
CONFIG ?= $(EPICS_BASE)/configure
|
||||
endif
|
||||
|
||||
@@ -62,6 +66,9 @@ include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
|
||||
ifdef T_A
|
||||
# Information from the target's compiler
|
||||
#
|
||||
-include $(EPICS_BASE)/cfg/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
# Cross compile specific definitions
|
||||
#
|
||||
|
||||
@@ -33,7 +33,7 @@ CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
CODE_CFLAGS += $(ASAN_FLAGS_$(ENABLE_ASAN))
|
||||
WARN_CFLAGS_YES = -Wall -Werror-implicit-function-declaration
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -O3 -g
|
||||
OPT_CFLAGS_YES = -O3
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
@@ -42,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))
|
||||
@@ -50,14 +50,13 @@ CODE_LDFLAGS += $(ASAN_LDFLAGS_$(ENABLE_ASAN))
|
||||
|
||||
PIPE_CFLAGS_YES_YES = -pipe
|
||||
PIPE_CFLAGS = $(PIPE_CFLAGS_$(GCC_PIPE)_$(GNU))
|
||||
PIPE_CXXFLAGS = $(PIPE_CFLAGS)
|
||||
|
||||
STATIC_LDFLAGS_YES = -static
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
SHRLIB_CFLAGS = -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC -Wl,-h$@
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc
|
||||
|
||||
|
||||
@@ -31,10 +31,12 @@ endif # BASE_TOP
|
||||
# Where to find the installed build tools
|
||||
# Windows does not like commands with relative paths starting ../
|
||||
# so TOOLS must be an absolute path, although Perl scripts are OK.
|
||||
# FIND_TOOL is for scripts run before the build reaches src/tools.
|
||||
# FIND_TOOL is for scripts run before the build reaches src/tools
|
||||
# and must also work in submodules when EPICS_BASE is not built.
|
||||
|
||||
TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
|
||||
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(EPICS_BASE)/src/tools/$(1)))
|
||||
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) \
|
||||
$(TOP)/src/tools/$(1)) $(EPICS_BASE)/src/tools/$(1))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# EPICS Base build tools and tool flags
|
||||
|
||||
@@ -48,15 +48,15 @@ EPICS_VERSION = 7
|
||||
EPICS_REVISION = 0
|
||||
|
||||
# EPICS_MODIFICATION must be a number >=0 and <256
|
||||
EPICS_MODIFICATION = 5
|
||||
EPICS_MODIFICATION = 6
|
||||
|
||||
# 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 = 0
|
||||
|
||||
# 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=-DEV
|
||||
EPICS_DEV_SNAPSHOT=
|
||||
|
||||
# No changes should be needed below here
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Version number for the Channel Access API and shared library
|
||||
|
||||
EPICS_CA_MAJOR_VERSION = 4
|
||||
EPICS_CA_MINOR_VERSION = 13
|
||||
EPICS_CA_MAINTENANCE_VERSION = 9
|
||||
EPICS_CA_MINOR_VERSION = 14
|
||||
EPICS_CA_MAINTENANCE_VERSION = 0
|
||||
|
||||
# Development flag, set to zero for release versions
|
||||
|
||||
EPICS_CA_DEVELOPMENT_FLAG = 1
|
||||
EPICS_CA_DEVELOPMENT_FLAG = 0
|
||||
|
||||
# Immediately after a release the MAINTENANCE_VERSION
|
||||
# will be incremented and the DEVELOPMENT_FLAG set to 1
|
||||
|
||||
@@ -71,6 +71,8 @@ INSTALL_DBD = $(INSTALL_LOCATION)/dbd
|
||||
INSTALL_DB = $(INSTALL_LOCATION)/db
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
|
||||
|
||||
FINAL_LOCATION = $(shell $(PERL) $(TOOLS)/fullPathName.pl $(INSTALL_LOCATION))
|
||||
|
||||
# Directory for OS independant build created files
|
||||
COMMON_DIR = ../O.Common
|
||||
|
||||
@@ -142,9 +144,10 @@ BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))
|
||||
#--------------------------------------------------
|
||||
# vpath directories
|
||||
POSIX_YES = os/posix
|
||||
OS_IMPL_DIRS = $(if $(OS_API),os/$(OS_CLASS)-$(OS_API),) os/$(OS_CLASS)
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
$(addprefix $(dir)/, $(OS_IMPL_DIRS) $(POSIX_$(POSIX)) os/default ))
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
@@ -257,7 +260,7 @@ OPT_CXXFLAGS = $(OPT_CXXFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
|
||||
# Static build flags
|
||||
STATIC_CFLAGS = $(STATIC_CFLAGS_$(STATIC_BUILD))
|
||||
STATIC_CXXCFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
|
||||
STATIC_CXXFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
|
||||
|
||||
@@ -294,7 +297,7 @@ CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_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)
|
||||
$(STATIC_CXXFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
|
||||
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Version number for the database APIs and shared library
|
||||
|
||||
EPICS_DATABASE_MAJOR_VERSION = 3
|
||||
EPICS_DATABASE_MINOR_VERSION = 19
|
||||
EPICS_DATABASE_MAINTENANCE_VERSION = 1
|
||||
EPICS_DATABASE_MINOR_VERSION = 20
|
||||
EPICS_DATABASE_MAINTENANCE_VERSION = 0
|
||||
|
||||
# Development flag, set to zero for release versions
|
||||
|
||||
EPICS_DATABASE_DEVELOPMENT_FLAG = 1
|
||||
EPICS_DATABASE_DEVELOPMENT_FLAG = 0
|
||||
|
||||
# Immediately after a release the MAINTENANCE_VERSION
|
||||
# will be incremented and the DEVELOPMENT_FLAG set to 1
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# Version number for the libcom APIs and shared library
|
||||
|
||||
EPICS_LIBCOM_MAJOR_VERSION = 3
|
||||
EPICS_LIBCOM_MINOR_VERSION = 19
|
||||
EPICS_LIBCOM_MAINTENANCE_VERSION = 1
|
||||
EPICS_LIBCOM_MINOR_VERSION = 20
|
||||
EPICS_LIBCOM_MAINTENANCE_VERSION = 0
|
||||
|
||||
# Development flag, set to zero for release versions
|
||||
|
||||
EPICS_LIBCOM_DEVELOPMENT_FLAG = 1
|
||||
EPICS_LIBCOM_DEVELOPMENT_FLAG = 0
|
||||
|
||||
# Immediately after a release the MAINTENANCE_VERSION
|
||||
# will be incremented and the DEVELOPMENT_FLAG set to 1
|
||||
|
||||
@@ -17,9 +17,8 @@
|
||||
# Currently Supporting:
|
||||
# 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)
|
||||
# darwin-aarch64 (M1 based Apple using CLANG compiler)
|
||||
# darwin-x86 (Intel based Apple using CLANG compiler)
|
||||
# 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)
|
||||
@@ -62,16 +61,8 @@
|
||||
|
||||
# ios-arm (darwin-x86 host)
|
||||
# ios-386 (darwin-x86 host)
|
||||
# linux-386 (linux-x86 host)
|
||||
# linux-486 (linux-x86 host)
|
||||
# linux-586 (linux-x86 host)
|
||||
# linux-686 (linux-x86 host)
|
||||
# linux-arm (linux-x86 or -x86_64 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)
|
||||
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-microblaze
|
||||
# linux-xscale_be
|
||||
# vxWorks-486
|
||||
@@ -85,18 +76,20 @@
|
||||
# vxWorks-ppc604_altivec
|
||||
# vxWorks-mpc8540
|
||||
# vxWorks-mpc8548
|
||||
# RTEMS-at91rm9200ek
|
||||
# RTEMS-beagleboneblack
|
||||
# RTEMS-beatnik
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-mvme167
|
||||
# RTEMS-mvme2100
|
||||
# RTEMS-mvme2700
|
||||
# RTEMS-mvme3100
|
||||
# RTEMS-mvme5500
|
||||
# RTEMS-pc386
|
||||
# RTEMS-psim
|
||||
# RTEMS-pc386 (RTEMS 4)
|
||||
# RTEMS-pc386-qemu (RTEMS 4)
|
||||
# RTEMS-pc686 (RTEMS 5)
|
||||
# RTEMS-pc686-qemu (RTEMS 5)
|
||||
# RTEMS-qoriq_e500
|
||||
# RTEMS-uC5282
|
||||
# RTEMS-xilinx-zynq-a9_qemu
|
||||
# RTEMS-xilinx_zynq_zedboard
|
||||
# win32-x86-mingw (linux-x86 or -x86_64 host)
|
||||
#
|
||||
|
||||
@@ -104,7 +97,6 @@
|
||||
# Definitions in configure/os/CONFIG_SITE.<host>.Common
|
||||
# may override this setting.
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
|
||||
|
||||
# If only some of your host architectures can compile the
|
||||
# above CROSS_COMPILER_TARGET_ARCHS specify those host
|
||||
@@ -151,6 +143,14 @@ CROSS_WARN=YES
|
||||
# different location then uncomment and set this.
|
||||
#INSTALL_LOCATION=<fullpathname>
|
||||
|
||||
# The location from which files placed in INSTALL_LOCATION will actually run.
|
||||
# This path is compiled into executables, and so should be an absolute.
|
||||
# May be used to achieve the effect of autotools. eg.
|
||||
# ./configure --prefix=<FINAL_LOCATION>
|
||||
# make DESTDIR=<INSTALL_LOCATION>
|
||||
# Defaults to the absolute expansion of $(INSTALL_LOCATION)
|
||||
#FINAL_LOCATION=
|
||||
|
||||
# Use POSIX thread priority scheduling (if available).
|
||||
# Must be either YES or NO
|
||||
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
|
||||
|
||||
@@ -15,7 +15,8 @@ include $(TOP)/configure/CONFIG
|
||||
TOOLS = $(TOP)/src/tools
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG.*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG_SITE.*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
||||
@@ -29,5 +30,9 @@ CFG += CONFIG_CA_VERSION
|
||||
CFG += CONFIG_DATABASE_MODULE
|
||||
CFG += CONFIG_DATABASE_VERSION
|
||||
|
||||
CFG += TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A): toolchain.c
|
||||
$(PREPROCESS.cpp)
|
||||
|
||||
@@ -101,10 +101,10 @@ include $(CONFIG)/RULES_FILE_TYPE
|
||||
include $(CONFIG)/RULES.Db
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Do not build anything if current path matches SKIP_BUILD
|
||||
# Do not build anything if current path matches SKIP_BUILDS
|
||||
|
||||
ifneq (,$(strip $(SKIP_BUILDS)))
|
||||
CURRENT_MODULE=$(subst $(realpath $(TOP)/..)/,,$(subst $(realpath $(dir $(lastword $(MAKEFILE_LIST)))..)/,,$(realpath ..)))
|
||||
CURRENT_MODULE=$(subst modules/,,$(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=
|
||||
@@ -245,7 +245,7 @@ $(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
|
||||
|
||||
$(TESTPRODNAME) $(PRODNAME): %$(EXE):
|
||||
@$(RM) $@
|
||||
$(DEBUGCMD) $(LINK.cpp)
|
||||
$(LINK.cpp)
|
||||
$(MT_EXE_COMMAND)
|
||||
|
||||
%_ctdt$(OBJ): %_ctdt.c
|
||||
@@ -524,9 +524,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 $@"
|
||||
|
||||
@@ -28,12 +28,13 @@ ifneq ($(CONFIG),$(TOP)/configure)
|
||||
endif
|
||||
|
||||
#--------------------------------------------------
|
||||
# Set RTEMS_BSP from T_A if not already done
|
||||
# Set RTEMS_BSP and GNU_TARGET if not already done
|
||||
RTEMS_BSP ?= $(subst RTEMS-,,$(T_A))
|
||||
GNU_TARGET ?= $(RTEMS_TARGET_CPU)-rtems
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
|
||||
include $(RTEMS_BASE)/$(RTEMS_TARGET_CPU)-rtems$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
|
||||
include $(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/$(RTEMS_BSP)/Makefile.inc
|
||||
include $(RTEMS_CUSTOM)
|
||||
include $(CONFIG.CC)
|
||||
|
||||
@@ -41,7 +42,7 @@ include $(CONFIG.CC)
|
||||
# RTEMS cross-development tools
|
||||
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
|
||||
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E $(GCCSPECS)
|
||||
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
|
||||
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
|
||||
|
||||
@@ -62,7 +63,7 @@ CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_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)
|
||||
$(STATIC_CXXFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
|
||||
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
|
||||
@@ -95,20 +96,39 @@ MODEXT=.obj
|
||||
OS_CLASS = RTEMS
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm
|
||||
OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \
|
||||
# Operating system compile & link flags
|
||||
OP_SYS_CFLAGS += -D__LINUX_ERRNO_EXTENSIONS__
|
||||
|
||||
OP_SYS_CFLAGS_NET_yes = -DRTEMS_LEGACY_STACK
|
||||
OP_SYS_CFLAGS += $(OP_SYS_CFLAGS_NET_$(RTEMS_HAS_NETWORKING))
|
||||
|
||||
ifeq ($(RTEMS_HAS_POSIX_API),yes)
|
||||
POSIX_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE
|
||||
endif
|
||||
|
||||
OP_SYS_LDLIBS_posix_NET_yes = -ltftpfs -lnfs -lz -ltelnetd
|
||||
OP_SYS_LDLIBS_posix_NET_no = -ltftpfs -lbsd -lz
|
||||
OP_SYS_LDLIBS_score_NET_yes = -lnfs
|
||||
OP_SYS_LDLIBS_score_NET_no = -lnfs
|
||||
OP_SYS_LDLIBS += -lrtemsCom -lCom
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(OS_API)_NET_$(RTEMS_HAS_NETWORKING))
|
||||
OP_SYS_LDLIBS += -lrtemscpu -lc -lm
|
||||
|
||||
OP_SYS_LDFLAGS_posix = -u POSIX_Init
|
||||
OP_SYS_LDFLAGS_score = -u Init \
|
||||
$(PROJECT_RELEASE)/lib/no-dpmem.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-mp.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-part.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-signal.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-rtmon.rel
|
||||
OP_SYS_LDFLAGS += $(CPU_CFLAGS) $(OP_SYS_LDFLAGS_$(OS_API))
|
||||
|
||||
# Settings for GeSys
|
||||
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 += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++
|
||||
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
|
||||
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-at91rm9200ek
|
||||
# Author: Ralf Hartmann
|
||||
# BESSY
|
||||
# Ralf.Hartmann@bessy.de
|
||||
#
|
||||
# Atmel AT91RM9200-EK evaluation kit
|
||||
# using the AT91RM9200 ARM9-based 32-bit RISC microcontroller
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = at91rm9200ek
|
||||
RTEMS_TARGET_CPU = arm
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
18
configure/os/CONFIG.Common.RTEMS-beagleboneblack
Normal file
18
configure/os/CONFIG.Common.RTEMS-beagleboneblack
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-beaglebineblack
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = beagleboneblack
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/beagleboneblack/lib/
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
|
||||
|
||||
@@ -8,14 +8,16 @@ EXE = .elf
|
||||
RTEMS_BSP = beatnik
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
# optimization trouble in postfix.c
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
|
||||
#will use bootp
|
||||
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = gen68360
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = mcp750
|
||||
RTEMS_TARGET_CPU = ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = mvme167
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
@@ -11,8 +11,6 @@ GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
@@ -21,6 +19,7 @@ define MUNCH_CMD
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
--no-warn-mismatch \
|
||||
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
|
||||
-Map $<.map
|
||||
rm -f rtems.gz
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# Author: Matt Rippa
|
||||
#
|
||||
RTEMS_BSP = mvme2700
|
||||
RTEMS_BSP = mvme2307
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
@@ -15,11 +15,10 @@ define MUNCH_CMD
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
--no-warn-mismatch \
|
||||
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
|
||||
-Map $<.map
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -13,8 +13,6 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
|
||||
@@ -14,13 +14,9 @@ ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
# CONFIG.Common.RTEMS-pc386
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
# Definitions for the RTEMS-pc386 target, RTEMS 4.x only
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc386
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
|
||||
RTEMS_BSP = pc386
|
||||
RTEMS_TARGET_CPU = i386
|
||||
GNU_TARGET = i386-rtems
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
@@ -22,3 +23,10 @@ include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
# Put text segment where it will work with etherboot
|
||||
#
|
||||
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
||||
|
||||
# This check must appear after the above include
|
||||
ifeq ($(RTEMS_VERSION),5)
|
||||
$(info *** This target is not compatible with the configured RTEMS version.)
|
||||
$(info *** Build the RTEMS-pc686 (-qemu) target for RTEMS 5.x)
|
||||
$(error Can't continue)
|
||||
endif
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions from RTEMS-pc386
|
||||
# For Tests overwrite it with pc686
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc386
|
||||
|
||||
RTEMS_QEMU_FIXUPS = YES
|
||||
|
||||
39
configure/os/CONFIG.Common.RTEMS-pc686
Normal file
39
configure/os/CONFIG.Common.RTEMS-pc686
Normal file
@@ -0,0 +1,39 @@
|
||||
# CONFIG.Common.RTEMS-pc686
|
||||
#
|
||||
# Definitions for the RTEMS-pc686 target, RTEMS 5.x only
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = pc686
|
||||
RTEMS_TARGET_CPU = i386
|
||||
GNU_TARGET = i386-rtems
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/pc686/lib/
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
#
|
||||
# Put text segment where it will work with etherboot
|
||||
#
|
||||
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
||||
|
||||
|
||||
# This check must appear after the above include
|
||||
ifneq ($(RTEMS_VERSION),5)
|
||||
$(info *** This target is not compatible with the configured RTEMS version.)
|
||||
$(info *** Build the RTEMS-pc386 (-qemu) target for RTEMS 4.x)
|
||||
$(error Can't continue)
|
||||
endif
|
||||
11
configure/os/CONFIG.Common.RTEMS-pc686-qemu
Normal file
11
configure/os/CONFIG.Common.RTEMS-pc686-qemu
Normal file
@@ -0,0 +1,11 @@
|
||||
# CONFIG.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
# Definitions for the RTEMS-pc686-qemu target
|
||||
# Site-specific overrides go in CONFIG_SITE.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions from RTEMS-pc686
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS-pc686
|
||||
|
||||
RTEMS_QEMU_FIXUPS = YES
|
||||
@@ -1,10 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# University of Saskatchewan
|
||||
# eric.norum@usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_BSP = psim
|
||||
RTEMS_TARGET_CPU = ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
48
configure/os/CONFIG.Common.RTEMS-qoriq_e500
Normal file
48
configure/os/CONFIG.Common.RTEMS-qoriq_e500
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-qoriq_e500
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_BSP = qoriq_e500
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
# optimization trouble in postfix.c
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_HAS_ALTIVEC
|
||||
#will use bootp
|
||||
#ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
#ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
#netbsdlib
|
||||
#ARCH_DEP_CFLAGS += -I$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib/include
|
||||
|
||||
#OP_SYS_LDLIBS += -lbspExt #does not use posix stuff ... want to ignore
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
#ARCH_DEP_LDFLAGS = -mcpu=8540 -meabi -msdata=sysv -mstrict-align -mspe -mabi=spe -mfloat-gprs=double
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/powerpc-rtems5/qoriq_e500/lib
|
||||
|
||||
MUNCH_SUFFIX = .img
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
gzip -9 -f $@
|
||||
$(RTEMS_TOOLS)/bin/mkimage.py -A ppc -O linux -T kernel -a 0x4000 -e 0x4000 -n $* -d $@.gz $*.img
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
|
||||
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
|
||||
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
|
||||
|
||||
%.sym: %$(EXE)
|
||||
$(XSYMS) $^ $@
|
||||
|
||||
%.bin: %$(EXE)
|
||||
$(OBJCOPY) -Obinary $^ $@
|
||||
|
||||
#PRODTARGETS+=$(INSTALL_RTEMSSYMS) $(INSTALL_RTEMSIMGS)
|
||||
@@ -9,6 +9,10 @@ RTEMS_BSP = uC5282
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
# Hopefully a temporary fix:
|
||||
ARCH_DEP_CXXFLAGS_5 = -std=c++98
|
||||
ARCH_DEP_CXXFLAGS += $(ARCH_DEP_CXXFLAGS_$(RTEMS_VERSION))
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
|
||||
20
configure/os/CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
Normal file
20
configure/os/CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-xilinx_zynq_a9_qemu
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = xilinx_zynq_a9_qemu
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
#use dhcp/bootp
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_a9_qemu/lib/
|
||||
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
19
configure/os/CONFIG.Common.RTEMS-xilinx_zynq_zedboard
Normal file
19
configure/os/CONFIG.Common.RTEMS-xilinx_zynq_zedboard
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-xilinx_zynq_zedboard
|
||||
# Author: Heinz Junkes <junkes@fhi-berlin.mpg.de>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
#EXE = .elf
|
||||
RTEMS_BSP = xilinx_zynq_zedboard
|
||||
RTEMS_TARGET_CPU = arm
|
||||
GNU_TARGET = arm-rtems
|
||||
|
||||
OP_SYS_LDLIBS += -Wl,--gc-sections
|
||||
ARCH_DEP_LDFLAGS = -L$(RTEMS_BASE)/$(GNU_TARGET)$(RTEMS_VERSION)/xilinx_zynq_zedboard/lib/
|
||||
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
|
||||
|
||||
5
configure/os/CONFIG.Common.V64-ppc604
Normal file
5
configure/os/CONFIG.Common.V64-ppc604
Normal file
@@ -0,0 +1,5 @@
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-ppc604_long
|
||||
VXWORKS_VERSION = 6.4
|
||||
|
||||
# Buggy "uninitialized variable" warning produces many false positives
|
||||
ARCH_DEP_CXXFLAGS += -Wno-uninitialized
|
||||
@@ -1,3 +1,9 @@
|
||||
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
|
||||
|
||||
# -fno-implicit-fp causes error: "unable to find a register to spill in class 'FLOAT_REGS'"
|
||||
ARCH_DEP_CFLAGS = -mcpu=604 -mstrict-align
|
||||
|
||||
# VxWorks 6.9.0 has buggy int8_t in stdint.h
|
||||
ARCH_DEP_CFLAGS += -fsigned-char
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppc
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for darwin-ppc target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppc
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppc
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppcx86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Darwin universal PowerPC + x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppcx86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
||||
20
configure/os/CONFIG.Common.deb10-x86_64
Normal file
20
configure/os/CONFIG.Common.deb10-x86_64
Normal file
@@ -0,0 +1,20 @@
|
||||
# DeltaTau PowerPMAC with gcc
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
LDLIBS_SHARED_YES=LDLIBS
|
||||
|
||||
SDK = gcc
|
||||
SDK_DIR = /opt/xgcc/gcc-8.3.0-deb10
|
||||
GNU_ARCH = x86_64-deb10-linux-gnu
|
||||
SDKTARGETSYSROOT=$(SDK_DIR)/$(GNU_ARCH)/sys-root/
|
||||
GNU_DIR = $(SDK_DIR)
|
||||
GNU_BIN = $(GNU_DIR)/bin/
|
||||
GNU_TARGET_INCLUDE_DIR =
|
||||
GNU_TARGET=x86_64-deb10-linux-gnu
|
||||
|
||||
ARCH_DEP_CPPFLAGS =
|
||||
AS=$(GNU_BIN)/$(GNU_TARGET)-as
|
||||
21
configure/os/CONFIG.Common.gcc8-ppc4xxFP
Normal file
21
configure/os/CONFIG.Common.gcc8-ppc4xxFP
Normal file
@@ -0,0 +1,21 @@
|
||||
# DeltaTau PowerPMAC with gcc
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
SDK = gcc
|
||||
SDK_DIR = /opt/xgcc/gcc-8.5.0
|
||||
GNU_ARCH = powerpc-ppmac-linux-gnu
|
||||
SDKTARGETSYSROOT=$(SDK_DIR)/$(GNU_ARCH)/sys-root/
|
||||
GNU_DIR = $(SDK_DIR)
|
||||
GNU_BIN = $(GNU_DIR)/bin/
|
||||
GNU_TARGET_INCLUDE_DIR =
|
||||
GNU_TARGET=powerpc-ppmac-linux-gnu
|
||||
|
||||
ARCH_DEP_CPPFLAGS = -m32 -mcpu=440fp -mhard-float
|
||||
ARCH_DEP_LDFLAGS+=-Wl,-rpath,/opt/xgcc/gcc-8.5.0/$(GNU_ARCH)/lib
|
||||
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(SDKTARGETSYSROOT)/lib/powerpc-linux-gnu/
|
||||
ARCH_DEP_LDFLAGS+=-Wl,-rpath-link,$(SDKTARGETSYSROOT)/usr/lib/powerpc-linux-gnu/
|
||||
AS=$(GNU_BIN)/$(GNU_TARGET)-as
|
||||
@@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-386
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-386 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-386
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i386
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i386-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-386 file, e.g. GNU_TARGET=i386-pc-linux-gnu
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-486
|
||||
#
|
||||
# Definitions for linux-486 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i486
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i486-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-486 file, e.g. GNU_TARGET=i486-pc-linux-gnu
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-586
|
||||
#
|
||||
# Definitions for linux-586 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-586
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i586 is equivalent to pentium
|
||||
ARCH_DEP_CFLAGS = -march=i586
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i586-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-586 file, e.g. GNU_TARGET=i586-pc-linux-gnu
|
||||
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.Common.linux-686
|
||||
#
|
||||
# Definitions for linux-686 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-686
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i686 is euivalent to pentiumpro
|
||||
ARCH_DEP_CFLAGS = -march=i686
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i686-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-686 file, e.g. GNU_TARGET=i686-pc-linux-gnu
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-athlon
|
||||
#
|
||||
# Definitions for linux-athlon target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-athlon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=athlon-mp -mfpmath=sse
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc Command
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. athlon-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-athlon file, e.g. GNU_TARGET=athlon-pc-linux-gnu
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# CONFIG.Common.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-cris target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-cris
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = cris
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
GNU_TARGET = cris-axis-linux-gnu
|
||||
|
||||
# prefix of compiler tools
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
|
||||
# CROSS_TOP_DIR
|
||||
# usually AXIS_TOP_DIR is defined via
|
||||
# the init_env script of the SDK provided by Axis
|
||||
#
|
||||
## AXIS_TOP_DIR defined? Make missing mandatory variable visible
|
||||
AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
AXIS_SDK_DIR?=$(AXIS_TOP_DIR)
|
||||
|
||||
# CROSS_INCLUDES
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/include
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR +=$(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/include
|
||||
|
||||
CROSS_INCLUDES = $(addprefix -isystem ,$(AXIS_SDK_TARGET_INCLUDE_DIR))
|
||||
|
||||
# CROSS_LDFLAGS
|
||||
AXIS_SDK_TARGET_LIB_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/lib
|
||||
AXIS_SDK_TARGET_LIB_DIR += $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/lib
|
||||
|
||||
CROSS_LDFLAGS = $(addprefix -L,$(AXIS_SDK_TARGET_LIB_DIR))
|
||||
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-cris
|
||||
ifeq ($(EPICS_HOST_ARCH), linux-x86)
|
||||
-include $(CONFIG)/os/CONFIG.linux-x86.linux-cris
|
||||
-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-cris
|
||||
endif
|
||||
endif
|
||||
|
||||
SHARED_LIBRARIES=NO
|
||||
STATIC_BUILD=YES
|
||||
|
||||
ARCH_DEP_CFLAGS += -mno-mul-bug-workaround
|
||||
OP_SYS_CFLAGS += -mlinux
|
||||
ARCH_DEP_CPPFLAGS += -D_cris_ -mlinux
|
||||
|
||||
#uncomment CRIS_COMPILER_DEBUG for debugging cris-compiled code
|
||||
#CRIS_COMPILER_DEBUG
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -132,6 +132,13 @@ OPT_CXXFLAGS_YES = -O2
|
||||
#--------------------------------------------------
|
||||
# code flags
|
||||
CODE_CFLAGS =
|
||||
#
|
||||
# For vxWorks versions before 6.3 we need this g++ compiler flag
|
||||
CODE_CXXFLAGS_6.0 = -fno-implicit-templates
|
||||
CODE_CXXFLAGS_6.1 = -fno-implicit-templates
|
||||
CODE_CXXFLAGS_6.2 = -fno-implicit-templates
|
||||
CODE_CXXFLAGS_6 = $(CODE_CXXFLAGS_$(VXWORKS_VERSION))
|
||||
CODE_CXXFLAGS = $(CODE_CXXFLAGS_$(VXWORKS_MAJOR_VERSION))
|
||||
|
||||
#--------------------------------------------------
|
||||
# no shared libs for vxWorks
|
||||
|
||||
@@ -2,7 +2,4 @@ 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/
|
||||
PATH := /opt/wine-msvc-2017/bin/x86:$(PATH)
|
||||
|
||||
@@ -2,7 +2,4 @@ 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/
|
||||
PATH := /opt/wine-msvc-2017/bin/x64:$(PATH)
|
||||
|
||||
@@ -2,7 +2,4 @@ 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/
|
||||
PATH := /opt/wine-msvc-2017/bin/x86:$(PATH)
|
||||
|
||||
@@ -2,7 +2,4 @@ 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/
|
||||
PATH := /opt/wine-msvc-2017/bin/x64:$(PATH)
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.darwin-ppc.Common
|
||||
#
|
||||
# Definitions for darwin-ppc host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
@@ -1,13 +0,0 @@
|
||||
# CONFIG.darwin-ppc.darwin-ppc-debug
|
||||
#
|
||||
# Definitions for darwin-ppc host - darwin-ppc-debug target build with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppc.darwin-ppc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
-include $(CONFIG)/os/CONFIG.Common.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG.darwin-ppc.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.darwin-ppc
|
||||
-include $(CONFIG)/os/CONFIG_SITE.darwin-ppc.darwin-ppc
|
||||
|
||||
BUILD_CLASS=HOST
|
||||
HOST_OPT = NO
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.darwin-ppcx86.Common
|
||||
#
|
||||
# Definitions for Darwin universal PowerPC + x86 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-ppcx86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
@@ -3,6 +3,6 @@
|
||||
# Definitions for darwin-x86 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.darwin-x86.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#support for IPv6 etc.
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
@@ -30,6 +30,7 @@ ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
|
||||
#
|
||||
# Special flags for Darwin
|
||||
# No common blocks (as required when using shared libraries)
|
||||
# OS provides socket address length
|
||||
#
|
||||
OP_SYS_CFLAGS += -fno-common
|
||||
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-386.Common
|
||||
#
|
||||
# Definitions for linux-386 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-386.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,8 +0,0 @@
|
||||
# CONFIG.linux-386.linux-386
|
||||
#
|
||||
# Definitions for linux-386 host - linux-386 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-386.linux-386
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-486.Common
|
||||
#
|
||||
# Definitions for linux-486 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-486.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-486.linux-486
|
||||
#
|
||||
# Definitions for linux-486 host - linux-486 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-486.linux-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-586.Common
|
||||
#
|
||||
# Definitions for linux-586 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-586.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-586.linux-586
|
||||
#
|
||||
# Definitions for linux-586 host - linux-586 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-586.linux-586
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# CONFIG.linux-686.Common
|
||||
#
|
||||
# Definitions for linux-686 host builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-686.Common
|
||||
#-------------------------------------------------------
|
||||
|
||||
#Include definitions common to unix hosts
|
||||
include $(CONFIG)/os/CONFIG.UnixCommon.Common
|
||||
|
||||
WIND_HOST_TYPE = x86-linux2
|
||||
@@ -1,9 +0,0 @@
|
||||
# CONFIG.linux-686.linux-686
|
||||
#
|
||||
# Definitions for linux-686 host - linux-686 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-686.linux-686
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include linux-x86 compiler definitions
|
||||
include $(CONFIG)/os/CONFIG.linux-x86.linux-x86
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris
|
||||
#-------------------------------------------------------
|
||||
|
||||
GNU_DIR = $(CRIS_CROSS_COMPILER)
|
||||
|
||||
#STATIC_...
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
|
||||
## debian-gcc Bug#438641
|
||||
GNU_LDLIBS_YES =
|
||||
STATIC_LDFLAGS_YES += -static-libgcc
|
||||
|
||||
# if not in debug mode strip all symbols
|
||||
ifndef CRIS_COMPILER_DEBUG
|
||||
STATIC_LDFLAGS_YES += -Wl,--strip-all
|
||||
endif
|
||||
|
||||
ifeq ($(GNU),YES)
|
||||
STATIC_LDFLAGS_NO = -lgcc
|
||||
else
|
||||
STATIC_LDFLAGS_NO =
|
||||
endif
|
||||
|
||||
STATIC_LDLIBS_YES=
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
OPT_CXXFLAGS_YES = -Os
|
||||
|
||||
ifeq ($(STATIC_BUILD), YES)
|
||||
$(shell echo yes)
|
||||
endif
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris_v10
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris_v10 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris_v10
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-cris targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-cris
|
||||
|
||||
GNU_TARGET = cris-axis-linux-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=v10
|
||||
|
||||
# if you are using different places for cris_v10 cris_v32
|
||||
# you have to define for each architecture
|
||||
# AXIS_SDK_DIR=<AXIS_TOP_DIR_v10>
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG.linux-x86.linux-cris_v32
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-x86 host - linux-cris_v32 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.linux-x86.linux-cris_v32
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-cris targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-cris
|
||||
|
||||
GNU_TARGET = crisv32-axis-linux-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=v32
|
||||
|
||||
# if you are using different places for cris_v10 cris_v32
|
||||
# you have to define for each architecture
|
||||
# AXIS_SDK_DIR=<AXIS_TOP_DIR_v32>
|
||||
@@ -11,6 +11,3 @@ STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
STATIC_LDLIBS_NO=
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-h$@
|
||||
|
||||
@@ -18,6 +18,6 @@ STATIC_LDLIBS_NO=
|
||||
|
||||
OP_SYS_LDFLAGS += -z ignore -z combreloc -z lazyload
|
||||
|
||||
SHRLIB_LDFLAGS += -Wl,-z,defs -Wl,-z,text -Wl,-h,$@
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-z,text -Wl,-h,$@
|
||||
SHRLIB_LDFLAGS += -Wl,-z,defs -Wl,-z,text
|
||||
LOADABLE_SHRLIB_LDFLAGS += -Wl,-z,text
|
||||
GNU_LDLIBS_YES += -lc
|
||||
|
||||
@@ -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
|
||||
@@ -49,9 +49,9 @@ OPT_CFLAGS_YES_NO = -Ox -Oy-
|
||||
OPT_CFLAGS_YES = $(OPT_CFLAGS_YES_$(OPT_WHOLE_PROGRAM))
|
||||
|
||||
#
|
||||
# -Zi generate program database for debugging information
|
||||
# -Z7 generate C7 compatible debugging information (inside .obj)
|
||||
# -RTCsu enable run-time error checks
|
||||
OPT_CFLAGS_NO = -Zi -RTCsu
|
||||
OPT_CFLAGS_NO = -Z7 -RTCsu
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CFLAG = -Fo
|
||||
@@ -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++
|
||||
#
|
||||
@@ -119,9 +119,9 @@ OPT_CXXFLAGS_YES_NO = -Ox -Oy-
|
||||
OPT_CXXFLAGS_YES = $(OPT_CXXFLAGS_YES_$(OPT_WHOLE_PROGRAM))
|
||||
|
||||
#
|
||||
# -Zi generate program database for debugging information
|
||||
# -Z7 generate C7 compatible debugging information (inside .obj)
|
||||
# -RTCsu enable run-time error checks
|
||||
OPT_CXXFLAGS_NO = -RTCsu -Zi
|
||||
OPT_CXXFLAGS_NO = -RTCsu -Z7
|
||||
|
||||
# specify object file name and location
|
||||
OBJ_CXXFLAG = -Fo
|
||||
@@ -143,20 +143,6 @@ STATIC_LDLIBS_NO=
|
||||
STATIC_LDFLAGS=
|
||||
RANLIB=
|
||||
|
||||
#
|
||||
# option needed for parallel builds with Visual Studio 2013 onward
|
||||
# VS2012 and above have VisualStudioVersion, so just need to exclude 2012 (11.0)
|
||||
# -FS Force Synchronous PDB Writes
|
||||
#
|
||||
ifneq ($(VisualStudioVersion),)
|
||||
ifneq ($(VisualStudioVersion),11.0)
|
||||
OPT_CXXFLAGS_NO += -FS
|
||||
OPT_CFLAGS_NO += -FS
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# add -profile here to run the ms profiler
|
||||
# -LTCG whole program optimization
|
||||
# -incremental:no full linking
|
||||
|
||||
@@ -3,11 +3,26 @@
|
||||
# Site-specific information for all RTEMS targets
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Where to find RTEMS
|
||||
# Where to find RTEMS, and what version is it
|
||||
#
|
||||
# RTEMS_BASE must point to the specific installation of RTEMS to
|
||||
# build the target code with.
|
||||
# RTEMS_VERSION is used in the path to the toolsets inside that
|
||||
# installation. For RTEMS 5 only the major version number is
|
||||
# used, but for RTEMS 4.10.2 say all 3 components are required.
|
||||
#
|
||||
|
||||
# FHI:
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /home/h1/DBG/rtems
|
||||
#RTEMS_BASE = /home/ad/MVME6100/rtems/$(RTEMS_VERSION)
|
||||
#RTEMS_BASE = /opt/RTEMS/qoriq/rtems/$(RTEMS_VERSION)
|
||||
|
||||
# APS:
|
||||
RTEMS_VERSION = 4.10.2
|
||||
RTEMS_BASE = /usr/local/vw/rtems/rtems-$(RTEMS_VERSION)
|
||||
#RTEMS_VERSION = 4.10.2
|
||||
#RTEMS_BASE = /usr/local/vw/rtems/rtems-4.10.2
|
||||
#RTEMS_VERSION = 5
|
||||
#RTEMS_BASE = /usr/local/vw/rtems/rtems-5.1
|
||||
|
||||
# Cross-compile toolchain in $(RTEMS_TOOLS)/bin
|
||||
#
|
||||
|
||||
@@ -6,4 +6,4 @@
|
||||
# If you're building this architecture you _probably_ want to
|
||||
# run the tests for it under QEMU, but if not you can turn
|
||||
# them off here by commenting out this line:
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += RTEMS-pc386-qemu
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += $(T_A)
|
||||
|
||||
9
configure/os/CONFIG_SITE.Common.RTEMS-pc686-qemu
Normal file
9
configure/os/CONFIG_SITE.Common.RTEMS-pc686-qemu
Normal file
@@ -0,0 +1,9 @@
|
||||
# CONFIG_SITE.Common.RTEMS-pc686-qemu
|
||||
#
|
||||
# Site-specific overrides for the RTEMS-pc686-qemu target
|
||||
#
|
||||
|
||||
# If you're building this architecture you _probably_ want to
|
||||
# run the tests for it under QEMU, but if not you can turn
|
||||
# them off here by commenting out this line:
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += $(T_A)
|
||||
@@ -1,12 +0,0 @@
|
||||
# CONFIG_SITE.Common.darwin-ppc
|
||||
#
|
||||
# Site override definitions for darwin-ppc target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# ppc64 - Not tested
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
#ARCH_CLASS = ppc64
|
||||
#ARCH_CLASS = ppc ppc64
|
||||
@@ -1,20 +0,0 @@
|
||||
# CONFIG_SITE.Common.darwin-ppcx86
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 target builds
|
||||
#----------------------------------------------------------
|
||||
|
||||
# Select which CPU architectures to include in your universal binaries:
|
||||
# ppc
|
||||
# i386
|
||||
# ppc64 - Not tested
|
||||
# x86_64 - Needs MacOS 10.4 with Universal SDK, or 10.5 or later.
|
||||
|
||||
ARCH_CLASS = ppc i386
|
||||
#ARCH_CLASS = ppc x86_64
|
||||
#ARCH_CLASS = ppc i386 x86_64
|
||||
#ARCH_CLASS = ppc64 i386
|
||||
#ARCH_CLASS = ppc64 x86_64
|
||||
#ARCH_CLASS = ppc64 i386 x86_64
|
||||
#ARCH_CLASS = ppc ppc64 i386
|
||||
#ARCH_CLASS = ppc ppc64 x86_64
|
||||
#ARCH_CLASS = ppc ppc64 i386 x86_64
|
||||
@@ -4,14 +4,12 @@
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Select which CPU architecture(s) to include in your MacOS binaries:
|
||||
# i386, x86_64, or both (fat binaries).
|
||||
# x86_64 only, or arm64 as well (fat binaries).
|
||||
|
||||
#ARCH_CLASS = i386
|
||||
ARCH_CLASS = x86_64
|
||||
#ARCH_CLASS = i386 x86_64
|
||||
#ARCH_CLASS = arm64 x86_64
|
||||
|
||||
#
|
||||
# Uncomment the following 3 lines to build with Apple's GCC instead of CLANG.
|
||||
# Uncomment the following 3 lines to build with GCC instead of CLANG.
|
||||
#
|
||||
#CMPLR_CLASS = gcc
|
||||
#CC = gcc
|
||||
|
||||
2
configure/os/CONFIG_SITE.Common.deb10-x86_64
Normal file
2
configure/os/CONFIG_SITE.Common.deb10-x86_64
Normal file
@@ -0,0 +1,2 @@
|
||||
# Debian 10
|
||||
COMMANDLINE_LIBRARY=READLINE_NCURSES
|
||||
2
configure/os/CONFIG_SITE.Common.gcc8-ppc4xxFP
Normal file
2
configure/os/CONFIG_SITE.Common.gcc8-ppc4xxFP
Normal file
@@ -0,0 +1,2 @@
|
||||
# DeltaTau PowerPMAC with gcc
|
||||
COMMANDLINE_LIBRARY=READLINE
|
||||
@@ -1,34 +0,0 @@
|
||||
# CONFIG_SITE.Common.linux-cris
|
||||
#
|
||||
# Site-specific settings for the linux-cris target
|
||||
|
||||
# NOTE: In most cases if SHARED_LIBRARIES 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.
|
||||
|
||||
|
||||
# Use GNU Readline if the header file is installed
|
||||
COMMANDLINE_LIBRARY = $(strip $(if $(wildcard \
|
||||
$(GNU_DIR)/include/readline/readline.h), READLINE, EPICS))
|
||||
|
||||
# If libreadline needs additional libraries to be linked with it, try
|
||||
# uncommenting each of the lines below in turn, starting with the top
|
||||
# one and working downwards, until the build succeeds. Do a 'make rebuild'
|
||||
# from the top of the Base tree after changing this setting.
|
||||
|
||||
# Needs -lncurses:
|
||||
#COMMANDLINE_LIBRARY = READLINE_NCURSES
|
||||
|
||||
# Needs -lcurses:
|
||||
#COMMANDLINE_LIBRARY = READLINE_CURSES
|
||||
|
||||
# Readline is broken or you don't want use it:
|
||||
#COMMANDLINE_LIBRARY = EPICS
|
||||
@@ -2,6 +2,22 @@
|
||||
#
|
||||
# Site specific definitions for vxWorks target builds.
|
||||
|
||||
# Compiler options can vary with the vxWorks version number, so we
|
||||
# need to know that. Do not include any third-level digits.
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
# Sites may override the following path for a particular host
|
||||
# architecture by adding it to an appropriate
|
||||
# CONFIG_SITE.$(EPICS_HOST_ARCH).vxWorksCommon file.
|
||||
|
||||
#### Fixes for CONFIG.Common.vxWorksCommon #######
|
||||
|
||||
VX_GNU_VERSION_7 = 4.8.1.11
|
||||
@@ -59,7 +75,18 @@ 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))
|
||||
|
||||
OP_SYS_LDFLAGS += $(OP_SYS_LDFLAGS_$@)
|
||||
OP_SYS_LDFLAGS_softIoc = -whole-archive
|
||||
OP_SYS_LDFLAGS_softIocPVA = -whole-archive
|
||||
|
||||
# code flags
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
# WIND_BASE is where you installed the Wind River software.
|
||||
|
||||
#WIND_BASE = /usr/local/vw/tornado22-$(ARCH_CLASS)
|
||||
#WIND_BASE = /usr/local/vw/vxWorks-$(VXWORKS_VERSION)
|
||||
#WIND_BASE = /ade/vxWorks/$(VXWORKS_VERSION)
|
||||
WIND_BASE = /afs/psi.ch/project/vxworks/VxWorks$(VXWORKS_VERSION)
|
||||
|
||||
#--------------------------------------------------
|
||||
@@ -70,4 +97,3 @@ 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))
|
||||
|
||||
|
||||
@@ -2,12 +2,23 @@ include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common
|
||||
|
||||
# Improved error checking with clang
|
||||
CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64-clang
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += RHEL7-x86_64-clang
|
||||
|
||||
# Build for old SL6 64 bit
|
||||
CROSS_COMPILER_TARGET_ARCHS += SL6-x86_64
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += SL6-x86_64
|
||||
|
||||
# Build for old SL6 32 bit
|
||||
CROSS_COMPILER_TARGET_ARCHS += SL6-x86
|
||||
CROSS_COMPILER_RUNTEST_ARCHS += SL6-x86
|
||||
|
||||
# Cross compilers that don't work on SL6 hosts
|
||||
|
||||
# Debian 10
|
||||
CROSS_COMPILER_TARGET_ARCHS += deb10-x86_64
|
||||
|
||||
# Newer DeltaTau PowerPMAC
|
||||
CROSS_COMPILER_TARGET_ARCHS += gcc8-ppc4xxFP
|
||||
|
||||
# NI Linux Real-Time 7.x
|
||||
# requires RPM gcc-c++-arm-linux-gnu
|
||||
|
||||
@@ -3,6 +3,9 @@ include $(CONFIG)/os/CONFIG_SITE.linux-x86_64.Common
|
||||
# Improved error checking with clang
|
||||
CROSS_COMPILER_TARGET_ARCHS += RHEL8-x86_64-clang
|
||||
|
||||
# Build for old RHEL7 64 bit
|
||||
#CROSS_COMPILER_TARGET_ARCHS += RHEL7-x86_64
|
||||
|
||||
# Build for old SL6 64 bit
|
||||
#CROSS_COMPILER_TARGET_ARCHS += SL6-x86_64
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# CONFIG_SITE.darwin-ppc.Common
|
||||
#
|
||||
# Site override definitions for darwin-ppc host builds
|
||||
#-------------------------------------------------------
|
||||
@@ -1,4 +0,0 @@
|
||||
# CONFIG_SITE.darwin-ppcx86.Common
|
||||
#
|
||||
# Site override definitions for darwin-ppcx86 host builds
|
||||
#-------------------------------------------------------
|
||||
@@ -1,3 +1,11 @@
|
||||
# CONFIG_SITE.linux-x86.Common
|
||||
#
|
||||
# Site override definitions for linux-x86 host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
|
||||
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100 RTEMS-pc386-qemu
|
||||
|
||||
INSTALL_LOCATION=/usr/local/epics/base-$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
|
||||
GNU_HOST_ARCH=i686
|
||||
@@ -39,6 +47,7 @@ CROSS_COMPILER_TARGET_ARCHS += eldk53-ppc4xxFP
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V66-ppc603
|
||||
CROSS_COMPILER_TARGET_ARCHS += V66-ppc604
|
||||
#CROSS_COMPILER_TARGET_ARCHS += V63-ppc604
|
||||
CROSS_COMPILER_TARGET_ARCHS += V64-ppc604
|
||||
# (No PVA because of old compiler)
|
||||
CROSS_COMPILER_TARGET_ARCHS += V62-ppc604
|
||||
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# CONFIG_SITE.linux-x86.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Site specific definitions for linux-x86 host - linux-cris target builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
# define site specific location of cris cross compiler's gnu directory
|
||||
# but without bin sub directory, this will be added automatically.
|
||||
|
||||
CRIS_CROSS_COMPILER ?= UNDEFINED_ENV__CRIS_CROSS_COMPILER
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
# CONFIG_SITE.linux-x86_64.Common
|
||||
#
|
||||
# Site override definitions for linux-x86_64 host builds
|
||||
#-------------------------------------------------------
|
||||
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040 solaris-sparc
|
||||
#CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
|
||||
#CROSS_COMPILER_TARGET_ARCHS = RTEMS-mvme2100
|
||||
|
||||
include $(CONFIG)/os/CONFIG_SITE.linux-x86.Common
|
||||
|
||||
GNU_HOST_ARCH_64=x86_64
|
||||
|
||||
37
configure/toolchain.c
Normal file
37
configure/toolchain.c
Normal file
@@ -0,0 +1,37 @@
|
||||
#ifdef _COMMENT_
|
||||
/* Extract compiler pre-defined macros as Make variables
|
||||
*
|
||||
* Expanded as $(INSTALL_CFG)/TOOLCHAIN.$(EPICS_HOST_ARCH).$(T_A)
|
||||
*
|
||||
* Must be careful not to #include any C definitions
|
||||
* into what is really a Makefile snippet
|
||||
*
|
||||
* cf. https://sourceforge.net/p/predef/wiki/Home/
|
||||
*/
|
||||
/* GCC preprocessor drops C comments from output.
|
||||
* MSVC preprocessor emits C comments in output
|
||||
*/
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(__clang__)
|
||||
GCC_MAJOR = __GNUC__
|
||||
GCC_MINOR = __GNUC_MINOR__
|
||||
GCC_PATCH = __GNUC_PATCHLEVEL__
|
||||
|
||||
#elif defined(__clang__)
|
||||
CLANG_MAJOR = __clang_major__
|
||||
CLANG_MINOR = __clang_minor__
|
||||
CLANG_PATCH = __clang_patchlevel__
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
MSVC_VER = _MSC_VER
|
||||
#endif
|
||||
|
||||
#ifdef __rtems__
|
||||
#include <rtems/score/cpuopts.h>
|
||||
# if __RTEMS_MAJOR__>=5
|
||||
OS_API = posix
|
||||
# else
|
||||
OS_API = score
|
||||
# endif
|
||||
#endif
|
||||
@@ -1,67 +0,0 @@
|
||||
cross compiling EPICS and
|
||||
building IOC Applications for cris architectures
|
||||
(linux-cris_v10, linux-cris_v32)
|
||||
======================================================================
|
||||
|
||||
Please mail questions, comments, corrections, etc. ...
|
||||
to P.Zumbruch@gsi.de
|
||||
November 2007
|
||||
|
||||
Tools needed
|
||||
------------
|
||||
|
||||
o Axis SDK
|
||||
- Overview:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:sdk
|
||||
- Download:
|
||||
http://www.axis.com/products/dev_sdk/download_dist.php
|
||||
- Install HOWTO:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:software_distribution_install_howto
|
||||
o Axis GNU gcc release for cross compiling
|
||||
- Download:
|
||||
http://www.axis.com/products/dev_sdk/download_compiler.php
|
||||
- Install HOWTO:
|
||||
http://developer.axis.com/wiki/doku.php?id=axis:compiler_install
|
||||
|
||||
Environment
|
||||
-----------
|
||||
|
||||
o CRIS_CROSS_COMPILER
|
||||
- path to top directory of cris cross compiler,
|
||||
where binaries are in sub directory bin/
|
||||
- if not set, the make process will stop at place
|
||||
UNDEFINED_ENV__CRIS_CROSS_COMPILER
|
||||
o AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
- path to axis SDK top directory
|
||||
- if not set compile and link commands will contain references to
|
||||
UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
- to set the necessary variables, execute
|
||||
. ./init_env
|
||||
in the top directory of the SDK provided here.
|
||||
o CRIS_COMPILER_DEBUG
|
||||
- if defined symbols won't be stripped,
|
||||
resulting in comparably large files
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
o Edit the CONFIG_SITE files
|
||||
- CONFIG_SITE.linux-x86.Common:
|
||||
for CROSS_COMPILER_TARGET_ARCHS += linux-cris_v10
|
||||
for CROSS_COMPILER_TARGET_ARCHS += linux-cris_v32
|
||||
- optionally CONFIG_SITE.linux-x86.linux-cris
|
||||
for setting CRIS_CROSS_COMPILER
|
||||
- optionally create CONFIG_SITE.linux-x86.linux-cris_v10
|
||||
- optionally create CONFIG_SITE.linux-x86.linux-cris_v32
|
||||
o "make".
|
||||
|
||||
Shared Libraries
|
||||
----------------
|
||||
|
||||
Generating shared libraries is not supported.
|
||||
|
||||
|
||||
Please feel free to contact me if you
|
||||
encounter serious problems.
|
||||
|
||||
Peter
|
||||
@@ -1,184 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Installation notes for EPICS on Mac OS X (Darwin)</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<h1>Building EPICS base</h1>
|
||||
<ul>
|
||||
<li>
|
||||
To build base:
|
||||
<ol>
|
||||
<li>
|
||||
Set the EPICS_HOST_ARCH environment variable to darwin-ppc, darwin-x86 or darwin-ppcx86.
|
||||
The scripts in the
|
||||
base/startup directory can automate this. For example, here's part
|
||||
of my Bash login script (~/.bash_login):
|
||||
<pre>
|
||||
#
|
||||
# EPICS
|
||||
#
|
||||
EPICS_BASE="${HOME}/src/EPICS/base"
|
||||
EPICS_EXTENSIONS="${HOME}/src/EPICS/extensions"
|
||||
<strong>.</strong> "${EPICS_BASE}"/startup/unix.sh
|
||||
</pre>
|
||||
</li>
|
||||
<li>
|
||||
<code>cd</code> to the EPICS base top-level source directory.
|
||||
</li>
|
||||
<li>
|
||||
Uncomment the appropriate line in the relevent
|
||||
EPICS_BASE/configure/os/CONFIG_SITE.Common.darwin-xxx file for your EPICS_HOST_ARCH value.
|
||||
Newer versions of OS X (e.g. Snow Leopard) may include only 64 bit versions of some OS libraries,
|
||||
so should only have the x86_64 ARCH_CLASS.
|
||||
</li>
|
||||
<li>
|
||||
Run <code>make</code>.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
As distributed, EPICS on Mac OS X uses the readline command line input
|
||||
routines. IOC applications are more pleasant to interact with if
|
||||
either the readline or libtecla library is used. The easiest
|
||||
way to get either or both of these libraries on to your system is to
|
||||
download and install them using the either the DarwinPorts
|
||||
distribution or the Fink package manager. If you don't want to install
|
||||
the readline library, set the COMMANDLINE_LIBRARY variable in one of
|
||||
the CONFIG_SITE files to EPICS.
|
||||
<p>
|
||||
Information on DarwinPorts is available from
|
||||
<a href="http://www.opendarwin.org/projects/darwinports/">the DarwinPorts
|
||||
project page</a>.
|
||||
DarwinPorts binary packages are available from
|
||||
<a href="http://packages.opendarwin.org/">here</a>.
|
||||
<p>
|
||||
Fink may be downloaded from
|
||||
<a href="http://fink.sourceforge.net/">the Source Forge</a>.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
If broadcasts are not seen locally, try adding "localhost" (127.0.0.1)
|
||||
to the EPICS_CA_ADDR_LIST.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h1>Building EPICS extensions</h1>
|
||||
<p>
|
||||
Many extensions build and run properly on OS X. To build and run medm, first
|
||||
obtain the X11 run-time and developer packages from Apple and the OpenMotif3
|
||||
package from Fink.
|
||||
|
||||
<h1>Objective-C and AppleScript</h1>
|
||||
<p>
|
||||
Code written in Objective-C can be included in host or IOC applications.
|
||||
Here are a couple of short Objective-C examples which can be used to send
|
||||
AppleScript events to other applications on the OS X machine.
|
||||
|
||||
<pre>
|
||||
/*
|
||||
* exampleAppleScriptRecord.m
|
||||
*
|
||||
* Simple Objective-C/AppleScript subroutine record
|
||||
*
|
||||
* To use this record in an application:
|
||||
*
|
||||
* 1) Make the following changes to the application Makefile:
|
||||
* - Add exampleAppleScriptRecord.m to the application SRCS.
|
||||
* - Add -framework Foundation to the application LDFLAGS.
|
||||
* 2) Add the following line to the application database description:
|
||||
* registrar(registerExampleAppleScript)
|
||||
* 3) Add a record to the application database:
|
||||
* record(sub,"setVolume")
|
||||
* {
|
||||
* field(SNAM,"exampleAppleScriptProcess")
|
||||
* }
|
||||
*/
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <registryFunction.h>
|
||||
#include <subRecord.h>
|
||||
#include <alarm.h>
|
||||
#include <errlog.h>
|
||||
#include <recGbl.h>
|
||||
#include <epicsExport.h>
|
||||
|
||||
/*
|
||||
* Shim between EPICS and NSAppleScript class.
|
||||
*/
|
||||
static long
|
||||
exampleAppleScriptProcess(struct subRecord *psub)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
NSDictionary *err;
|
||||
NSAppleScript *nsa;
|
||||
|
||||
nsa = [[NSAppleScript alloc] initWithSource:[NSString stringWithFormat:
|
||||
@"tell application \"Finder\" to set volume %g\n", psub->a]];
|
||||
if ([nsa executeAndReturnError:&err] == nil) {
|
||||
errlogPrintf("Failed to run AppleScript: %s\n",
|
||||
[[err objectForKey:NSAppleScriptErrorMessage] cString]);
|
||||
recGblSetSevr(psub, SOFT_ALARM, INVALID_ALARM);
|
||||
}
|
||||
[nsa release];
|
||||
[pool release];
|
||||
return 0;
|
||||
}
|
||||
|
||||
static registryFunctionRef subRef[] = {
|
||||
{"exampleAppleScriptProcess",(REGISTRYFUNCTION)exampleAppleScriptProcess}
|
||||
};
|
||||
|
||||
static void registerExampleAppleScript(void)
|
||||
{
|
||||
registryFunctionRefAdd(subRef,NELEMENTS(subRef));
|
||||
}
|
||||
epicsExportRegistrar(registerExampleAppleScript);
|
||||
|
||||
|
||||
==============================================================================
|
||||
/*
|
||||
* runAppleScript.m
|
||||
*
|
||||
* Simple Objective-C/AppleScript shim to allow EPICS application to
|
||||
* send arbitrary AppleScript messages to other applications.
|
||||
*
|
||||
* To use this subroutine in an application make the following
|
||||
* changes to the application Makefile:
|
||||
* - Add runAppleScript.m to the application SRCS.
|
||||
* - Add -framework Foundation to the application LDFLAGS.
|
||||
*/
|
||||
#import <Foundation/Foundation.h>
|
||||
#include <errlog.h>
|
||||
|
||||
int
|
||||
runAppleScript(const char *format, ...)
|
||||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
NSString *script;
|
||||
NSMutableDictionary *err;
|
||||
NSAppleScript *nsa;
|
||||
va_list args;
|
||||
int ret = 0;
|
||||
|
||||
va_start(args, format);
|
||||
script = [[NSString alloc] initWithFormat:
|
||||
[NSString stringWithCString:format] arguments:args];
|
||||
va_end(args);
|
||||
err = [NSMutableDictionary dictionaryWithCapacity:10];
|
||||
nsa = [[NSAppleScript alloc] initWithSource:script];
|
||||
if ([nsa executeAndReturnError:&err] == nil) {
|
||||
errlogPrintf("Failed to run AppleScript: %s\n",
|
||||
[[err objectForKey:NSAppleScriptErrorMessage] cString]);
|
||||
ret = -1;
|
||||
}
|
||||
[script release];
|
||||
[nsa release];
|
||||
[pool release];
|
||||
return ret;
|
||||
}
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
@@ -6,22 +6,23 @@
|
||||
|
||||
### Table of Contents
|
||||
|
||||
- [What is EPICS base?](#0_0_1)
|
||||
- [What is new in this release?](#0_0_2)
|
||||
- [Copyright](#0_0_3)
|
||||
- [Supported platforms](#0_0_4)
|
||||
- [Supported compilers](#0_0_5)
|
||||
- [Software requirements](#0_0_6)
|
||||
- [Documentation](#0_0_8)
|
||||
- [Directory Structure](#0_0_10)
|
||||
- [Build related components](#0_0_11)
|
||||
- [Building EPICS base (Unix and Win32)](#0_0_12)
|
||||
- [Example application and extension](#0_0_13)
|
||||
- [Multiple host platforms](#0_0_14)
|
||||
- [What is EPICS base?](#what-is-epics-base?)
|
||||
- [What is new in this release?](#what-is-new-in-this-release?)
|
||||
- [Copyright](#copyright)
|
||||
- [Supported platforms](#supported-platforms)
|
||||
- [Supported compilers](#supported-compilers)
|
||||
- [Software requirements](#software-requirements)
|
||||
- [Host system storage requirements](#host-system-storage-requirements)
|
||||
- [Documentation](#documentation)
|
||||
- [Directory Structure](#directory-structure)
|
||||
- [Site-specific build configuration](#site-specific-build-configuration)
|
||||
- [Building EPICS base](#building-epics-base)
|
||||
- [Example application and extension](#example-application-and-extension)
|
||||
- [Multiple host platforms](#multiple-host-platforms)
|
||||
|
||||
-----
|
||||
|
||||
### <span id="0_0_1">What is EPICS base?</span>
|
||||
### What is EPICS base?
|
||||
|
||||
The Experimental Physics and Industrial Control Systems (EPICS) is an
|
||||
extensible set of software components and tools with which application
|
||||
@@ -33,17 +34,17 @@ function. EPICS base allows an arbitrary number of target systems,
|
||||
IOCs (input/output controllers), and host systems, OPIs (operator
|
||||
interfaces) of various types.
|
||||
|
||||
### <span id="0_0_2">What is new in this release?</span>
|
||||
### What is new in this release?
|
||||
|
||||
Please check the `RELEASE_NOTES` file in the distribution for
|
||||
Please check the `documentation/RELEASE_NOTES.md` file for
|
||||
description of changes and release migration details.
|
||||
|
||||
### <span id="0_0_3">Copyright Licenses</span>
|
||||
### Copyright
|
||||
|
||||
Please review the LICENSE file included in the distribution for legal
|
||||
terms of usage.
|
||||
Please review the `LICENSE` file included in the distribution for
|
||||
legal terms of usage.
|
||||
|
||||
### <span id="0_0_4">Supported platforms</span>
|
||||
### Supported platforms
|
||||
|
||||
The list of platforms supported by this version of EPICS base is given
|
||||
in the `configure/CONFIG_SITE` file. If you are trying to build EPICS
|
||||
@@ -54,7 +55,7 @@ base/configure/os/directory. You can start by copying existing
|
||||
configuration files in the configure/os directory and then make
|
||||
changes for your new platforms.
|
||||
|
||||
### <span id="0_0_5">Supported compilers</span>
|
||||
### Supported compilers
|
||||
|
||||
This version of EPICS base has been built and tested using the host
|
||||
vendor's C and C++ compilers, as well as the GNU gcc and g++
|
||||
@@ -63,27 +64,33 @@ targets. You may need the C and C++ compilers to be in your search
|
||||
path to do EPICS builds; check the definitions of CC and CCC in
|
||||
`base/configure/os/CONFIG.<host>.<host>` if you have problems.
|
||||
|
||||
### <span id="0_0_6">Software requirements</span>
|
||||
### Software requirements
|
||||
|
||||
**GNU make**
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your path so
|
||||
that a gnumake version 4.1 or later is available.
|
||||
#### GNU make
|
||||
|
||||
You must use the GNU version of `make` for EPICS builds. Set your path
|
||||
so that version 4.1 or later is available. The macOS version of `make`
|
||||
is older but does still work.
|
||||
|
||||
#### Perl
|
||||
|
||||
**Perl**
|
||||
You must have Perl version 5.10 or later installed. The EPICS
|
||||
configuration files do not specify the perl full pathname, so the perl
|
||||
executable must be found through your normal search path.
|
||||
|
||||
**Unzip and tar (Winzip on WIN32 systems)**
|
||||
#### Unzip and tar (Winzip on WIN32 systems)
|
||||
|
||||
You must have tools available to unzip and untar the EPICS base
|
||||
distribution file.
|
||||
|
||||
**Target systems**
|
||||
#### Target systems
|
||||
|
||||
EPICS supports IOCs running on embedded platforms such as VxWorks and
|
||||
RTEMS built using a cross-compiler, and also supports soft IOCs
|
||||
running as processes on the host platform.
|
||||
|
||||
**vxWorks**
|
||||
#### vxWorks
|
||||
|
||||
You must have vxWorks 6.8 or later installed if any of your target
|
||||
systems are vxWorks systems; the C++ compiler from older versions cannot
|
||||
compile recently developed code. The vxWorks installation provides the
|
||||
@@ -96,127 +103,146 @@ Consult the [vxWorks 6.x](https://epics.anl.gov/base/vxWorks6.php) EPICS
|
||||
web pages about and the vxWorks documentation for information about
|
||||
configuring your vxWorks operating system for use with EPICS.
|
||||
|
||||
**RTEMS**
|
||||
#### RTEMS
|
||||
|
||||
For RTEMS targets, you need RTEMS core and toolset version 4.9.x or
|
||||
4.10.x (4.11 or 5.x are not yet supported).
|
||||
4.10.x. RTEMS 5 is experimental in EPICS 7.0.6.
|
||||
|
||||
**GNU readline or Tecla library**
|
||||
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. EPICS (EPICS shell) is the default specified in
|
||||
`CONFIG_COMMON`. A READLINE override is defined for linux-x86 in the
|
||||
EPICS distribution. Comment out `COMMANDLINE_LIBRARY=READLINE` in
|
||||
`configure/os/CONFIG_SITE.Common.linux-x86` if readline is not
|
||||
installed on linux-x86. Command-line editing and history will then be
|
||||
those supplied by the os. On vxWorks the ledLib command-line input
|
||||
library is used instead.
|
||||
#### Command Line Editing
|
||||
|
||||
### <span id="0_0_8">Documentation</span>
|
||||
GNU readline and other similar libraries can be used by the IOC shell
|
||||
to provide command line editing and command line history recall. The
|
||||
GNU readline development package (or Apple's emulator on macOS) must
|
||||
be installed for a target when its build configuration variable
|
||||
`COMMANDLINE_LIBRARY` is set to `READLINE`. The default specified in
|
||||
`CONFIG_COMMON` is `EPICS`, but most linux target builds can detect if
|
||||
readline is available and will then use it. RTEMS targets may be
|
||||
configured to use `LIBTECLA` if available, and on vxWorks the OS's
|
||||
ledLib line-editing library is normally used.
|
||||
|
||||
EPICS documentation is available through the [EPICS
|
||||
website](https://epics.anl.gov/) at Argonne.
|
||||
### Host system storage requirements
|
||||
|
||||
The compressed tar file is approximately 3 MB in size. The
|
||||
distribution source tree takes up approximately 21 MB. A 64-bit host
|
||||
architecture may need around 610 MB to compile, while cross-compiled
|
||||
targets are somewhat smaller.
|
||||
|
||||
### Documentation
|
||||
|
||||
EPICS documentation is available through the [EPICS website](https://epics.anl.gov/) at Argonne.
|
||||
|
||||
Release specific documentation can also be found in the
|
||||
base/documentation directory of the distribution.
|
||||
`base/documentation` directory of the distribution.
|
||||
|
||||
### <span id="0_0_10">Directory Structure</span>
|
||||
### Directory Structure
|
||||
|
||||
#### Distribution directory structure:
|
||||
#### Distribution directory structure
|
||||
|
||||
```
|
||||
base Root directory of the base distribution
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/documentation Distribution documentation
|
||||
base/src Source code in various subdirectories
|
||||
base/startup Scripts for setting up path and environment
|
||||
base Root directory of the distribution
|
||||
base/configure Build rules and OS-independent config files
|
||||
base/configure/os OS-dependent build config files
|
||||
base/documentation Distribution documentation
|
||||
base/src Source code in various subdirectories
|
||||
base/startup Scripts for setting up path and environment
|
||||
```
|
||||
|
||||
#### Install directories created by the build:
|
||||
#### Directories created by the build
|
||||
|
||||
These are created in the root directory of the installation (`base`
|
||||
above) or under the directory pointed to by the `INSTALL_LOCATION`
|
||||
configuration variable if that has been set.
|
||||
|
||||
```
|
||||
bin Installed scripts and executables in subdirs
|
||||
cfg Installed build configuration files
|
||||
db Installed data bases
|
||||
dbd Installed data base definitions
|
||||
doc Installed documentation files
|
||||
html Installed html documentation
|
||||
include Installed header files
|
||||
include/os Installed os specific header files in subdirs
|
||||
include/compiler Installed compiler-specific header files
|
||||
lib Installed libraries in arch subdirectories
|
||||
lib/perl Installed perl modules
|
||||
templates Installed templates
|
||||
bin Installed scripts and executables in subdirs
|
||||
cfg Installed build configuration files
|
||||
db Installed database files
|
||||
dbd Installed database definition files
|
||||
html Installed html documentation
|
||||
include Installed header files
|
||||
include/os Installed OS-specific header files in subdirs
|
||||
include/compiler Installed compiler-specific header files
|
||||
lib Installed libraries in arch subdirectories
|
||||
lib/perl Installed perl modules
|
||||
templates Installed templates
|
||||
```
|
||||
|
||||
### <span id="0_0_11">Build related components</span>
|
||||
#### `base/documentation` Directory
|
||||
|
||||
#### base/documentation directory - contains setup, build, and install documents
|
||||
This contains documents on how to setup, build, and install EPICS.
|
||||
|
||||
```
|
||||
README.md Instructions for setup and building epics base
|
||||
README.darwin.html Installation notes for Mac OS X (Darwin)
|
||||
RELEASE_NOTES.html Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
README.md This file
|
||||
RELEASE_NOTES.md Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
```
|
||||
|
||||
#### base/startup directory - contains scripts to set environment and path
|
||||
#### `base/startup` Directory
|
||||
|
||||
This contains several example scripts that show how to set up the
|
||||
build environment and PATH for using EPICS. Sites would usually copy and/or modify these files as appropriate for their environment; they are not used by the build system at all.
|
||||
|
||||
```
|
||||
EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
|
||||
unix.csh C shell script to set path and env variables
|
||||
unix.sh Bourne shell script to set path and env variables
|
||||
win32.bat Bat file example to configure win32-x86 target
|
||||
windows.bat Bat file example to configure windows-x64 target
|
||||
EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
|
||||
unix.csh C shell script to set path and env variables
|
||||
unix.sh Bourne shell script to set path and env variables
|
||||
win32.bat Bat file example to configure win32-x86 target
|
||||
windows.bat Bat file example to configure windows-x64 target
|
||||
```
|
||||
|
||||
#### base/configure directory - contains build definitions and rules
|
||||
#### `base/configure` directory
|
||||
|
||||
This contains build-system files providing definitions and rules
|
||||
required by GNU Make to build EPICS. Users should only need to modify the `CONFIG_SITE` files to configure the EPICS build.
|
||||
|
||||
```
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
CONFIG_APP_INCLUDE
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_FILE_TYPE
|
||||
CONFIG_SITE Site specific make definitions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
MAKEFILE Installs CONFIG* RULES* creates
|
||||
RELEASE Location of external products
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_EXPAND
|
||||
RULES_FILE_TYPE
|
||||
RULES_TARGET
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
CONFIG Main entry point for building EPICS
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
CONFIG_APP_INCLUDE
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_FILE_TYPE
|
||||
CONFIG_SITE Site specific make definitions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
MAKEFILE Installs CONFIG* RULES* creates
|
||||
RELEASE Location of external products
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_EXPAND
|
||||
RULES_FILE_TYPE
|
||||
RULES_TARGET
|
||||
RULES_TOP Rules specific to a <top> dir only
|
||||
Sample.Makefile Sample makefile with comments
|
||||
```
|
||||
|
||||
#### base/configure/os directory - contains os-arch specific definitions
|
||||
#### `base/configure/os` Directory
|
||||
|
||||
Files in here provide definitions that are shared by or specific to particular host and/or target architectures. Users should only need to modify the `CONFIG_SITE` files in this directory to configure the EPICS build.
|
||||
|
||||
```
|
||||
CONFIG.<host>.<target> Specific host-target build definitions
|
||||
CONFIG.Common.<target> Specific target definitions for all hosts
|
||||
CONFIG.<host>.Common Specific host definitions for all targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all targets
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts
|
||||
CONFIG.Common.vxWorksCommon Specific host definitions for all vx targets
|
||||
CONFIG_SITE.<host>.<target> Site specific host-target definitions
|
||||
CONFIG_SITE.Common.<target> Site specific target defs for all hosts
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
CONFIG.<host>.<target> Definitions for a specific host-target combination
|
||||
CONFIG.Common.<target> Definitions for a specific target, any host
|
||||
CONFIG.<host>.Common Definitions for a specific host, any target
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts, any target
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets, any host
|
||||
CONFIG.Common.RTEMS Definitions for all RTEMS targets, any host
|
||||
CONFIG.Common.vxWorksCommon Definitions for all vxWorks targets, any host
|
||||
CONFIG_SITE.<host>.<target> Local settings for a specific host-target combination
|
||||
CONFIG_SITE.Common.<target> Local settings for a specific target, any host
|
||||
CONFIG_SITE.<host>.Common Local settings for a specific host, any target
|
||||
CONFIG_SITE.Common.RTEMS Local settings for all RTEMS targets, any host
|
||||
CONFIG_SITE.Common.vxWorksCommon Local settings for all vxWorks targets, any host
|
||||
```
|
||||
|
||||
### <span id="0_0_12">Building EPICS base (Unix and Win32)</span>
|
||||
### Building EPICS base
|
||||
|
||||
#### Unpack file
|
||||
|
||||
@@ -228,74 +254,79 @@ systems.
|
||||
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 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
|
||||
host operating system followed by a dash and then your host
|
||||
architecture, e.g. linux-x86_64. If you are not using the OS
|
||||
vendor's c/c++ compiler for host builds, you will need another dash
|
||||
followed by the alternate compiler name (e.g. "-gnu" for GNU c/c++
|
||||
compilers on a solaris host or "-mingw" for MinGW c/c++ compilers on
|
||||
Windows). See `configure/CONFIG_SITE` for a list of supported
|
||||
`EPICS_HOST_ARCH` values.
|
||||
* **`EPICS_HOST_ARCH`**
|
||||
|
||||
* `PATH`
|
||||
As already mentioned, you must have the perl executable and you may
|
||||
need C and C++ compilers in your search path. For building base you
|
||||
also must have echo in your search path. For Unix host builds you
|
||||
also need ln, cpp, cp, rm, mv, and mkdir in your search path and
|
||||
/bin/chmod must exist. On some Unix systems you may also need ar and
|
||||
ranlib in your path, and the C compiler may require as and ld in
|
||||
your path. On solaris systems you need uname in your path.
|
||||
Some host builds of EPICS require that the environment variable
|
||||
`EPICS_HOST_ARCH` be defined. The perl script `EpicsHostArch.pl` in the
|
||||
`base/startup` directory prints the value which the build will use if
|
||||
the variable is not set before the build starts. Architecture names
|
||||
start with the operating system followed by a dash and the host CPU
|
||||
architecture, e.g. `linux-x86_64`. Some architecture names have another
|
||||
dash followed by another keyword, for example when building for Windows
|
||||
but using the MinGW compiler the name must be `windows-x64-mingw`. See
|
||||
`configure/CONFIG_SITE` for a list of supported host architecture names.
|
||||
|
||||
* `LD_LIBRARY_PATH`
|
||||
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`
|
||||
must include the full pathname to
|
||||
`$(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)` when invoking
|
||||
executables, or some equivalent OS-specific mechanism (such as
|
||||
/etc/ld.so.conf on Linux) must be used. Shared libraries are now
|
||||
built by default on all Unix type hosts.
|
||||
* **`PATH`**
|
||||
As already mentioned, you must have the `perl` executable and you may
|
||||
need C and C++ compilers in your search path. When building base you
|
||||
must have `echo` in your search path. For Unix host builds you will
|
||||
also need `cp`, `rm`, `mv`, and `mkdir` in your search path. Some Unix
|
||||
systems may also need `ar` and `ranlib`, and the C/C++ compilers may
|
||||
require `as` and `ld` in your path. On Solaris systems you need
|
||||
`uname` in your path.
|
||||
|
||||
#### Do site-specific build configuration
|
||||
* **`LD_LIBRARY_PATH`**
|
||||
EPICS shared libraries and executables normally contain the full path
|
||||
to any libraries they require, so setting this variable is not usually
|
||||
necessary. However, if you move the EPICS installation to a new
|
||||
location after building it then in order for the shared libraries to
|
||||
be found at runtime it may need to be set, or some equivalent
|
||||
OS-specific mechanism such as `/etc/ld.so.conf` on Linux must be used.
|
||||
Shared libraries are now built by default on all Unix type hosts.
|
||||
|
||||
**Site configuration**
|
||||
To configure EPICS, you may want to modify the default definitions
|
||||
in the following files:
|
||||
### Site-specific build configuration
|
||||
|
||||
#### Site configuration
|
||||
|
||||
To configure EPICS, you may want to modify some values set in the
|
||||
following files:
|
||||
>>>>>>> mirror/3.15
|
||||
|
||||
```
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO2 full path location
|
||||
configure/CONFIG_SITE Build settings. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
```
|
||||
|
||||
**Host configuration**
|
||||
To configure each host system, you may override the default
|
||||
definitions by adding a new file in the configure/os directory with
|
||||
override definitions. The new file should have the same name as the
|
||||
distribution file to be overridden except with CONFIG in the name
|
||||
changed to `CONFIG_SITE`.
|
||||
#### Host configuration
|
||||
|
||||
To configure each host system, you can override the default
|
||||
definitions by adding a new settings file (or editing an existing
|
||||
settings file) in the `configure/os` directory with your override
|
||||
definitions. The settings file has the same name as the definitions
|
||||
file to be overridden except with `CONFIG` in the name changed to
|
||||
`CONFIG_SITE`.
|
||||
|
||||
```
|
||||
configure/os/CONFIG.<host>.<host> Host build settings
|
||||
configure/os/CONFIG.<host>.Common Host common build settings
|
||||
configure/os/CONFIG.<host>.<host> Host self-build definitions
|
||||
configure/os/CONFIG.<host>.Common Host common build definitions
|
||||
configure/os/CONFIG_SITE.<host>.<host> Host self-build overrides
|
||||
configure/os/CONFIG_SITE.<host>.Common Host common build overrides
|
||||
```
|
||||
|
||||
**Target configuration**
|
||||
#### Target configuration
|
||||
|
||||
To configure each target system, you may override the default
|
||||
definitions by adding a new file in the configure/os directory with
|
||||
override definitions. The new file should have the same name as the
|
||||
distribution file to be overridden except with CONFIG in the name
|
||||
replaced by `CONFIG_SITE`. This step is necessary even if the host
|
||||
system is the only target system.
|
||||
definitions by adding a new settings file (or editing an existing
|
||||
settings file) in the `configure/os` directory with your override
|
||||
definitions. The settings file has the same name as the definitions
|
||||
file to be overridden except with `CONFIG` in the name changed to
|
||||
`CONFIG_SITE`.
|
||||
|
||||
```
|
||||
configure/os/CONFIG.Common.<target> Target common settings
|
||||
configure/os/CONFIG.<host>.<target> Host-target settings
|
||||
configure/os/CONFIG.Common.<target> Target common definitions
|
||||
configure/os/CONFIG.<host>.<target> Host-target definitions
|
||||
configure/os/CONFIG_SITE.Common.<target> Target common overrides
|
||||
configure/os/CONFIG_SITE.<host>.<target> Host-target overrides
|
||||
```
|
||||
|
||||
#### Build EPICS base
|
||||
@@ -305,24 +336,29 @@ by issuing the following commands in the distribution's root
|
||||
directory (base):
|
||||
|
||||
```
|
||||
gnumake clean uninstall
|
||||
gnumake
|
||||
make distclean
|
||||
make
|
||||
```
|
||||
|
||||
The command "gnumake clean uninstall" will remove all files and
|
||||
directories generated by a previous build. The command "gnumake"
|
||||
The command `make distclean` will remove all files and
|
||||
directories generated by a previous build. The command `make`
|
||||
will build and install everything for the configured host and
|
||||
targets.
|
||||
|
||||
It is recommended that you do a "gnumake clean uninstall" at the
|
||||
It is recommended that you do a `make distclean` at the
|
||||
root directory of an EPICS directory structure before each complete
|
||||
rebuild to ensure that all components will be rebuilt.
|
||||
|
||||
### <span id="0_0_13">Example application and extension</span>
|
||||
In some cases GNU Make may have been installed as `gmake` or
|
||||
`gnumake`, in which case the above commands will have to be adjusted
|
||||
to match.
|
||||
|
||||
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.
|
||||
### Example application and extension
|
||||
|
||||
A perl tool `makeBaseApp.pl` and several template applications are
|
||||
included in the distribution. This script instantiates the selected
|
||||
template into an empty directory to provide an example application
|
||||
that can be built and then executed to try out this release of base.
|
||||
|
||||
Instructions for building and executing the EPICS example application
|
||||
can be found in the section "Example Application" of Chapter 2,
|
||||
@@ -335,26 +371,30 @@ application as a host-based IOC, you will be able to quickly implement
|
||||
a complete EPICS system and be able to run channel access clients on
|
||||
the host system.
|
||||
|
||||
A perl script, makeBaseExt.pl, is included in the distribution file.
|
||||
This script will create a sample extension that can be built and
|
||||
executed. The makeBaseApp.pl and makeBaseExt.pl scripts are installed
|
||||
into the install location `bin/<hostarch>` directory during the base
|
||||
build.
|
||||
Another perl script `makeBaseExt.pl` is also included in the
|
||||
distribution file for creating an extensions tree and sample
|
||||
application that can also be built and executed. Both these scripts
|
||||
are installed into the install location `bin/<hostarch>` directory
|
||||
during the base build.
|
||||
|
||||
### <span id="0_0_14">Multiple host platforms</span>
|
||||
### Multiple host platforms
|
||||
|
||||
You can build using a single EPICS directory structure on multiple
|
||||
host systems and for multiple cross target systems. The intermediate
|
||||
and binary files generated by the build will be created in separate
|
||||
subdirectories and installed into the appropriate separate host/target
|
||||
install directories. EPICS executables and perl scripts are installed
|
||||
into the `$(INSTALL_LOCATION)/bin/<arch>` directories. Libraries are
|
||||
installed into $`(INSTALL_LOCATION)/lib/<arch>`. The default
|
||||
definition for `$(INSTALL_LOCATION)` is `$(TOP)` which is the root
|
||||
directory in the distribution directory structure, base. Created
|
||||
object files are stored in `O.<arch>` source subdirectories, This
|
||||
allows objects for multiple cross target architectures to be
|
||||
maintained at the same time. To build EPICS base for a specific
|
||||
install directories.
|
||||
|
||||
EPICS executables and perl scripts are installed into the
|
||||
`$(INSTALL_LOCATION)/bin/<arch>` directories. Libraries are installed
|
||||
into $`(INSTALL_LOCATION)/lib/<arch>`. The default definition for
|
||||
`$(INSTALL_LOCATION)` is `$(TOP)` which is the root directory in the
|
||||
distribution directory structure, `base`. Intermediate object files
|
||||
are stored in `O.<arch>` source subdirectories during the build
|
||||
process, to allow objects for multiple cross target architectures
|
||||
to be maintained at the same time.
|
||||
|
||||
To build EPICS base for a specific
|
||||
host/target combination you must have the proper host/target C/C++
|
||||
cross compiler and target header files and the base/configure/os
|
||||
directory must have the appropriate configure files.
|
||||
|
||||
@@ -2,21 +2,306 @@
|
||||
|
||||
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
|
||||
from commits to new releases in an older Base series are not described at the
|
||||
top of this file but have entries that appear lower down, under the series to
|
||||
which they were originally committed.** Thus it is important to read more than
|
||||
just the first section to understand everything that has changed in each
|
||||
release.
|
||||
from commits to the 3.15 branch are not described at the top of this file but
|
||||
lower down, under the 3.15 release to which they were originally committed.**
|
||||
Thus it is important to read more than just the first section to understand
|
||||
everything that has changed in each release.
|
||||
|
||||
The PVA submodules each have their own individual sets of release notes which
|
||||
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.5
|
||||
## EPICS Release 7.0.6
|
||||
|
||||
<!-- Insert new items immediately below here ... -->
|
||||
### Support for obsolete architectures removed
|
||||
|
||||
These target architectures have been removed:
|
||||
|
||||
+ darwin-ppc, darwin-ppcx86
|
||||
+ linux-386, linux-486, linux-586, linux-686, linux-athlon (cross-build)
|
||||
+ linux-cris, linux-cris_v10, linux-cris_v32 (cross-build)
|
||||
+ RTEMS-at91rm9200ek, RTEMS-gen68360, RTEMS-mcp750, RTEMS-mvme167,
|
||||
RTEMS-psim (cross-build)
|
||||
|
||||
### Experimental Support for RTEMS 5
|
||||
|
||||
The new major release of the RTEMS real-time OS contains many changes
|
||||
including the ability to support SMP systems. This release of EPICS
|
||||
can still be built with RTEMS 4.9.x or 4.10.x and should work just
|
||||
the same as earlier releases, although due to code having moved around
|
||||
we recommend thorough testing before this release is first used in
|
||||
production systems.
|
||||
|
||||
This release of EPICS comes with support for several new RTEMS targets
|
||||
running on RTEMS 5:
|
||||
|
||||
- RTEMS-beagleboneblack
|
||||
- RTEMS-pc686
|
||||
- RTEMS-qoriq_e500 (MVME2500)
|
||||
- RTEMS-xilinx_zynq_a9_qemu
|
||||
- RTEMS-xilinx_zynq_zedboard
|
||||
|
||||
The EPICS support for RTEMS 4 has always relied on RTEMS-specific
|
||||
kernel APIs which cannot be used on an SMP system, so a new port was
|
||||
created to use the Posix real-time APIs that are now recommended for
|
||||
RTEMS 5. Note that a single installation of EPICS cannot build both
|
||||
RTEMS 4 and RTEMS 5 targets, if you need to support targets running
|
||||
on both versions you must use a separate installation, and be sure
|
||||
to run `make distclean` if switching a single source tree from one
|
||||
to the other (both header files and dependency files are different
|
||||
between the two and must be cleaned out).
|
||||
|
||||
The configuration variable RTEMS_VERSION in the EPICS config file
|
||||
`configure/os/CONFIG_SITE.Common.RTEMS` must be set to the full 3-
|
||||
part version number for RTEMS 4 releases, e.g. `4.9.1`, `4.10.2`
|
||||
but for RTEMS 5.1 and later it must only contain the major version
|
||||
number e.g. `5`.
|
||||
|
||||
Some RTEMS BSPs can be built and may work with the newer libbsd
|
||||
network stack which RTEMS is moving over to, but most of the MVME
|
||||
boards (and the uC5282) still require the legacy network stack.
|
||||
|
||||
The dependency on bspExt has been removed, EPICS now provides its
|
||||
own routine for VMEbus probing (or uses one built into the BSP).
|
||||
|
||||
Anyone using this release on RTEMS is advised to discuss problems
|
||||
building or running it on either the tech-talk or core-talk email
|
||||
lists so the core developers can help with and find out about any
|
||||
problems with the old or new port.
|
||||
|
||||
Known Issues:
|
||||
- MVME2100 and MVME2700 need changes to the RTEMS 5 BSP to build.
|
||||
- VMEBus support is not yet available for the MVME2500 BSP.
|
||||
- There are some known issues with floating point on MVME2500,
|
||||
probably related to its newer e500 FPU.
|
||||
- Changed network driver for beatnik to work with libbsd. Some
|
||||
issues with DHCP, but network stack usable. Can load env from
|
||||
NVRAM.
|
||||
|
||||
### `epicsEnvShow` accepts a glob pattern
|
||||
|
||||
The optional argument to epicsEnvShow can now be a glob pattern.
|
||||
|
||||
### New function `epicsStrnGlobMatch()`
|
||||
|
||||
The function `epicsStrnGlobMatch(char* str, size_t len, char* pattern)`
|
||||
works exactly the same as `epicsStrGlobMatch()` but takes an additional
|
||||
length arguments which limits the number of characters of `str` to match.
|
||||
|
||||
### Automatic fallback to thread when unable to exec caRepeater
|
||||
|
||||
A process using libca which does not find an existing caRepeater process
|
||||
will attempt to start one by running the caRepeater executable.
|
||||
This is not always possible, usually when caRepeater is not in `$PATH`.
|
||||
Now, instead of printing a warning, an internal caRepeater thread
|
||||
will be started (as is done be RTEMS and vxWorks targets).
|
||||
|
||||
If this fallback occurs, the lifetime of the caRepeater thread
|
||||
may be shorter than the lifetime of a separate caRepeater process
|
||||
would have been.
|
||||
|
||||
It remains the recommended practice to explicitly start a caRepeater
|
||||
instance. Examples of both systemd (`caRepeater.service`) and sysv
|
||||
(`S99caRepeater`) scripts may be found under `bin/`.
|
||||
|
||||
### Glob pattern allowed in `var` command
|
||||
|
||||
When used with one argument, the `var` command can be used with a glob pattern
|
||||
for printing matching variables.
|
||||
|
||||
### Formalize/fix `FINAL_LOCATION`
|
||||
|
||||
The `FINAL_LOCATION` make variable has for some time been an undocumented
|
||||
means of performing a staged build. This is a build which "installs" to
|
||||
a temporary location, which will later be moved to a final location.
|
||||
|
||||
This has now been added to `configure/CONFIG_SITE`.
|
||||
|
||||
Usage analogous to the autotools recipe
|
||||
|
||||
```sh
|
||||
./configure --prefix=/usr/lib/epics
|
||||
make install DESTDIR=/tmp/build
|
||||
```
|
||||
|
||||
would be
|
||||
|
||||
```sh
|
||||
make INSTALL_LOCATION=/tmp/build FINAL_LOCATION=/usr/lib/epics
|
||||
```
|
||||
|
||||
`FINAL_LOCATION` is now correctly used in systemd and sysv init scripts
|
||||
`caRepeater.service`, `S99caRepeater`, and `S99logServer`.
|
||||
|
||||
### epicsEnvShow accepts glob pattern
|
||||
|
||||
The optional argument to epicsEnvShow can now be a glob pattern.
|
||||
|
||||
### New function `epicsStrnGlobMatch()`
|
||||
|
||||
The function `epicsStrnGlobMatch(char* str, size_t len, char* pattern)`
|
||||
works exactly the same as `epicsStrGlobMatch()` but takes an additional
|
||||
length arguments which limits the number of characters of `str` to match.
|
||||
|
||||
### Glob pattern allowed in `var` command
|
||||
|
||||
When used with one argument, the `var` command can be used with a glob pattern
|
||||
for printing matching variables.
|
||||
|
||||
### Fix for input links marked "special"
|
||||
|
||||
The calcout record (and a number of synApps record types) marks its input
|
||||
link fields with the attribute `special(SPC_MOD)` and provides code in
|
||||
the record's `special()` routine to reinitialize the related value field
|
||||
whenever the input link field is set to a numeric constant. Unfortunately the
|
||||
changes to the link handling code broke this behaviour (reported as Launchpad
|
||||
[bug #1824277](https://bugs.launchpad.net/epics-base/+bug/1824277))
|
||||
back in the Base 3.16.1 release. This issue has been fixed in Base, although
|
||||
external record types may require some fixing to ensure they are correctly
|
||||
checking for and initializing the link in their `special()` routine.
|
||||
|
||||
### IOCsh sets `${PWD}`
|
||||
|
||||
IOC shell will now ensure `${PWD}` is set on startup,
|
||||
and updated by the `cd` iocsh function.
|
||||
|
||||
### Add Alarm Message and Time Tag Fields
|
||||
|
||||
Two new fields have been added to `dbCommon` so will be present in all
|
||||
records: `AMSG` and `UTAG`.
|
||||
|
||||
#### `AMSG`
|
||||
|
||||
`AMSG` can hold an arbitrary 40-character string, providing additional
|
||||
information about the alarm condition indicated in `STAT` and `SEVR`. With no
|
||||
alarm it will hold an empty string. The new `recGblSetSevrMsg()` function can
|
||||
be used in place of `recGblSetSevr()` to signal an alarm while providing a
|
||||
message.
|
||||
|
||||
For example, a device support's `read_bi()` routine for a hypothetical
|
||||
multi-channel ethernet attached device might flag a communication error
|
||||
between the IOC and controller, or an error involving a certain channel like
|
||||
this:
|
||||
|
||||
```c
|
||||
static long read_bi(biRecord* prec) {
|
||||
...
|
||||
if (!priv->connected) {
|
||||
recGblSetSevrMsg(prec, COMM_ALARM, INVALID_ALARM,
|
||||
"No controller connected");
|
||||
return S_dev_noDevice;
|
||||
}
|
||||
if (!priv->err) {
|
||||
recGblSetSevrMsg(prec, READ_ALARM, INVALID_ALARM,
|
||||
"Channel %u disconnexted", priv->chan);
|
||||
return S_dev_noDevice;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
```
|
||||
|
||||
#### `UTAG`
|
||||
|
||||
`UTAG` holds an `epicsUInt64` value which is semantically part of the record's
|
||||
timestamp (`TIME`). The value defaults to zero if not explicitly set. Device
|
||||
support or an event time provider which supports this feature may write a tag
|
||||
value directly to the `dbCommon::utag` field.
|
||||
|
||||
`TSEL` links will copy both `TIME` and `UTAG` between records if the link type
|
||||
supports this (CA links do not).
|
||||
|
||||
A `utag` server side channel filter has been added which can be configured to
|
||||
filter out monitor updates which don't pass the test `(UTAG & M) == V` where
|
||||
`M` and `V` are client specified integers. For example running the command
|
||||
`camonitor BPM0:X.{utag:{M:1,V:1}}` will only show updates for which
|
||||
`(UTAG & 1) == 1` i.e. the least significant bit of the `UTAG` field is set.
|
||||
|
||||
This feature is intended for use by intelligent devices which can provide
|
||||
contextual information along with a value/alarm/time. For example, a beam
|
||||
diagnostic device which is aware of whether a beam signal should be present
|
||||
(eg. from a global timing system).
|
||||
|
||||
#### Link Support
|
||||
|
||||
Two new optional methods have been added to the Link Support Entry Table
|
||||
(`struct lset`): `lset::getAlarmMsg()` and `lset::getTimeStampTag()`. See
|
||||
comments in dbLink.h for details on implementing these.
|
||||
|
||||
Two new accessor functions have also been added which call these methods:
|
||||
`dbGetAlarmMsg()` and `dbGetTimeStampTag()`.
|
||||
|
||||
#### Compatibility
|
||||
|
||||
User code wishing to call these interfaces while maintaining compatibility with older
|
||||
versions of Base may add some of the following macro definitions, and ensure
|
||||
that the variables referenced by output pointers are initialized.
|
||||
|
||||
```c
|
||||
#ifndef HAS_ALARM_MESSAGE
|
||||
# define recGblSetSevrMsg(REC, STAT, SEVR, ...) recGblSetSevr(REC, STAT, SEVR)
|
||||
#endif
|
||||
#ifndef dbGetAlarmMsg
|
||||
# define dbGetAlarmMsg(LINK, STAT, SEVR, BUF, BUFLEN) dbGetAlarm(LINK, STAT, SEVR)
|
||||
#endif
|
||||
#ifndef dbGetTimeStampTag
|
||||
# define dbGetTimeStampTag(LINK, STAMP, TAG) dbGetTimeStamp(LINK, STAMP)
|
||||
#endif
|
||||
```
|
||||
|
||||
|
||||
### Timeouts for Unit Test Programs
|
||||
|
||||
The unit test programs that are run by the `make runtests` or `make tapfiles`
|
||||
commands get executed by a `.t` wrapper script which is normally generated by
|
||||
the EPICS `makeTestfile.pl` program. Those generated wrapper scripts now
|
||||
impose a time-limit on the test program they execute, and will kill it if it
|
||||
runs for longer than 500 seconds (8 minutes 20) without exiting. That
|
||||
time-limit can be changed for any such test by modifying the Makefile which
|
||||
creates and runs the `.t` wrapper script.
|
||||
|
||||
Setting the environment variable `EPICS_UNITTEST_TIMEOUT` to the desired
|
||||
number of seconds while the Makefile is generating the test script changes the
|
||||
timeout in that script. For example:
|
||||
|
||||
```
|
||||
TESTSCRIPTS_HOST += hourLongTest.t
|
||||
hourLongTest.t: export EPICS_UNITTEST_TIMEOUT=3600
|
||||
```
|
||||
|
||||
When selecting such a timeout remember that different Continuous Integration
|
||||
systems such as GitHub Actions and Appveyor run on processors with different
|
||||
speeds, so allow enough head-room for slower systems to complete the test.
|
||||
|
||||
Test programs written directly in Perl as a `.plt` script should implement a
|
||||
similar timeout for themselves. The "netget" test in Base does this in a way
|
||||
that works on Windows as well as Unix-like hosts.
|
||||
|
||||
### Timeouts for Unit Test Programs
|
||||
|
||||
The unit test programs that are run by the `make runtests` or `make tapfiles`
|
||||
commands get executed by a `.t` wrapper script which is normally generated by
|
||||
the EPICS `makeTestfile.pl` program. Those generated wrapper scripts now
|
||||
impose a time-limit on the test program they execute, and will kill it if it
|
||||
runs for longer than 500 seconds (8 minutes 20) without exiting. That
|
||||
time-limit can be changed for any such test by modifying the Makefile which
|
||||
creates and runs the `.t` wrapper script.
|
||||
|
||||
Setting the environment variable `EPICS_UNITTEST_TIMEOUT` to the desired
|
||||
number of seconds while the Makefile is generating the test script changes the
|
||||
timeout in that script. For example:
|
||||
|
||||
```
|
||||
TESTSCRIPTS_HOST += hourLongTest.t
|
||||
hourLongTest.t: export EPICS_UNITTEST_TIMEOUT=3600
|
||||
```
|
||||
|
||||
When selecting such a timeout remember that different Continuous Integration
|
||||
systems such as GitHub Actions and Appveyor run on processors with different
|
||||
speeds, so allow enough head-room for slower systems to complete the test.
|
||||
|
||||
Test programs written directly in Perl as a `.plt` script should implement a
|
||||
similar timeout for themselves. The "netget" test in Base does this in a way
|
||||
that works on Windows as well as Unix-like hosts.
|
||||
|
||||
-----
|
||||
|
||||
@@ -1688,7 +1973,36 @@ 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
|
||||
## Changes from the 3.15 branch since 3.15.9
|
||||
|
||||
|
||||
## Changes made between 3.15.8 and 3.15.9
|
||||
|
||||
### Use waitable timers on Microsoft Windows
|
||||
|
||||
The `epicsEventWaitWithTimeout()` and `epicsThreadSleep()` functions have
|
||||
been changed to use waitable timers. On Windows 10 version 1803 or higher
|
||||
they will use high resolution timers for more consistent timing.
|
||||
|
||||
See [this Google Groups thread](https://groups.google.com/a/chromium.org/g/scheduler-dev/c/0GlSPYreJeY)
|
||||
for a comparison of the performance of different timers.
|
||||
|
||||
### Build target for documentation
|
||||
|
||||
The build target `inc` now works again after a very long hiatus. It now
|
||||
generates and installs just the dbd, header and html files, without compiling
|
||||
any C/C++ code. This can be used to speed up CI jobs that only generate
|
||||
documentation.
|
||||
|
||||
### Bug fixes
|
||||
|
||||
- The error status returned by a record support's `special()` method is now propagated out of the `dbPut()` routine again (broken since 3.15.0).
|
||||
- [gh: #80](https://github.com/epics-base/epics-base/issues/80), VS-2015 and
|
||||
later have working strtod()
|
||||
- [lp: #1776141](https://bugs.launchpad.net/epics-base/+bug/1776141), Catch
|
||||
buffer overflow from long link strings
|
||||
- [lp: #1899697](https://bugs.launchpad.net/epics-base/+bug/1899697), Records
|
||||
in wrong PHAS order
|
||||
|
||||
### Change to the `junitfiles` self-test build target
|
||||
|
||||
@@ -1696,7 +2010,9 @@ 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.)
|
||||
|
||||
-----
|
||||
### Fixes and code cleanups
|
||||
|
||||
Issues reported by various static code checkers.
|
||||
|
||||
## Changes made between 3.15.7 and 3.15.8
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ SCRIPTS_Linux = caRepeater.service
|
||||
|
||||
EXPAND += S99caRepeater@
|
||||
EXPAND += caRepeater.service@
|
||||
EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))
|
||||
EXPAND_VARS = INSTALL_BIN=$(FINAL_LOCATION)/bin/$(T_A)
|
||||
|
||||
SRC_DIRS += $(CURDIR)/test
|
||||
PROD_HOST += ca_test
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
#ifndef INC_caProto_H
|
||||
#define INC_caProto_H
|
||||
|
||||
// Pick up definition of IPPORT_USERRESERVED
|
||||
#include <osiSock.h>
|
||||
|
||||
#define capStrOf(A) #A
|
||||
#define capStrOfX(A) capStrOf ( A )
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user