Compare commits
21 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba5508b39e | ||
|
|
d5eab412b4 | ||
|
|
fff4249771 | ||
|
|
11e2f1852b | ||
|
|
53e23e3684 | ||
|
|
f0ce39129c | ||
|
|
1583d41197 | ||
|
|
98bc1d8f1f | ||
|
|
4484a9c302 | ||
|
|
ebc4b5ca2a | ||
|
|
26c268eb28 | ||
|
|
02c1c016c4 | ||
|
|
27a1224d6d | ||
|
|
157a7af098 | ||
|
|
3c1e223dc7 | ||
|
|
4f4f76a5db | ||
|
|
e91a588370 | ||
|
|
29e657d585 | ||
|
|
4413c7d75e | ||
|
|
48b15417a6 | ||
|
|
1ac8bf7479 |
@@ -15,14 +15,6 @@
|
|||||||
cache:
|
cache:
|
||||||
- C:\Users\appveyor\.tools -> appveyor\do.py
|
- C:\Users\appveyor\.tools -> appveyor\do.py
|
||||||
|
|
||||||
#---------------------------------#
|
|
||||||
# additional packages #
|
|
||||||
#---------------------------------#
|
|
||||||
|
|
||||||
install:
|
|
||||||
# for the sequencer
|
|
||||||
- cinst re2c
|
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# repository cloning #
|
# repository cloning #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
@@ -31,6 +23,8 @@ install:
|
|||||||
init:
|
init:
|
||||||
# Set autocrlf to make batch files work
|
# Set autocrlf to make batch files work
|
||||||
- git config --global core.autocrlf true
|
- git config --global core.autocrlf true
|
||||||
|
# print the connection info for RDP connections (see 'debugging' below)
|
||||||
|
- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||||
|
|
||||||
# Set clone depth (do not fetch complete history)
|
# Set clone depth (do not fetch complete history)
|
||||||
clone_depth: 50
|
clone_depth: 50
|
||||||
@@ -42,12 +36,25 @@ skip_commits:
|
|||||||
- 'templates/*'
|
- 'templates/*'
|
||||||
- '**/*.html'
|
- '**/*.html'
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
- '.travis.yml'
|
||||||
|
|
||||||
|
#---------------------------------#
|
||||||
|
# additional packages #
|
||||||
|
#---------------------------------#
|
||||||
|
|
||||||
|
install:
|
||||||
|
# fetch submodules (like ci-scripts)
|
||||||
|
- cmd: git submodule update --init --recursive
|
||||||
|
# for the sequencer
|
||||||
|
- cinst re2c
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# build matrix configuration #
|
# build matrix configuration #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
|
|
||||||
|
# Default build worker image
|
||||||
|
image: Visual Studio 2015
|
||||||
|
|
||||||
# Build Configurations: dll/static, regular/debug
|
# Build Configurations: dll/static, regular/debug
|
||||||
configuration:
|
configuration:
|
||||||
- dynamic
|
- dynamic
|
||||||
@@ -65,12 +72,12 @@ environment:
|
|||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
SET: test00
|
SET: test00
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
- CMP: mingw
|
- CMP: mingw
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
VV: 0
|
VV: 0
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
BASE: 3.15
|
BASE: 3.15
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
@@ -141,7 +148,6 @@ test_script:
|
|||||||
## so you may want to adjust the build matrix above to just build the one of interest
|
## so you may want to adjust the build matrix above to just build the one of interest
|
||||||
|
|
||||||
#on_failure:
|
#on_failure:
|
||||||
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
|
||||||
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
44
README.md
44
README.md
@@ -49,7 +49,7 @@ example.
|
|||||||
|
|
||||||
## Supported CI Services
|
## Supported CI Services
|
||||||
|
|
||||||
### Travis-CI
|
### [Travis-CI](https://travis-ci.org/)
|
||||||
- Use different compilers (gcc, clang)
|
- Use different compilers (gcc, clang)
|
||||||
- Use different gcc versions
|
- Use different gcc versions
|
||||||
- Cross-compile for Windows 32bit and 64bit using MinGW and WINE
|
- Cross-compile for Windows 32bit and 64bit using MinGW and WINE
|
||||||
@@ -57,12 +57,16 @@ example.
|
|||||||
- Compile on MacOS
|
- Compile on MacOS
|
||||||
- Built dependencies are cached (for faster builds)
|
- Built dependencies are cached (for faster builds)
|
||||||
|
|
||||||
### AppVeyor
|
See specific **[ci-scripts on Travis-CI README](travis/README.md)** for more details.
|
||||||
|
|
||||||
|
### [AppVeyor](https://www.appveyor.com/)
|
||||||
- Use different compilers (Visual Studio, MinGW)
|
- Use different compilers (Visual Studio, MinGW)
|
||||||
- Use different Visual Studio versions: \
|
- Use different Visual Studio versions: \
|
||||||
2008, 2010, 2012, 2013, 2015, 2017, 2019
|
2008, 2010, 2012, 2013, 2015, 2017, 2019
|
||||||
- Compile for Windows 32bit and 64bit
|
- Compile for Windows 32bit and 64bit
|
||||||
|
|
||||||
|
See specific **[ci-scripts on AppVeyor README](appveyor/README.md)** for more details.
|
||||||
|
|
||||||
## How to Use the CI-Scripts
|
## How to Use the CI-Scripts
|
||||||
|
|
||||||
1. Get an account on a supported CI service provider platform.
|
1. Get an account on a supported CI service provider platform.
|
||||||
@@ -194,19 +198,30 @@ specific job will run the job with high verbosity,
|
|||||||
printing every command as it is being executed and switching the dependency
|
printing every command as it is being executed and switching the dependency
|
||||||
builds to higher verbosity.
|
builds to higher verbosity.
|
||||||
|
|
||||||
For local debugging, you may set `CACHEDIR` to change the location for the
|
For debugging on your local machine, you may set `CACHEDIR` to change the
|
||||||
dependency builds. [default is `$HOME/.cache`]
|
location for the dependency builds. [default is `$HOME/.cache`]
|
||||||
|
|
||||||
## References: EPICS Modules Using ci-scripts
|
## References: EPICS Modules Using ci-scripts
|
||||||
|
|
||||||
EPICS Base: [pvData](https://github.com/epics-base/pvDataCPP),
|
[EPICS Base](https://github.com/epics-base/epics-base) and its submodules
|
||||||
|
[pvData](https://github.com/epics-base/pvDataCPP),
|
||||||
[pvAccess](https://github.com/epics-base/pvAccessCPP),
|
[pvAccess](https://github.com/epics-base/pvAccessCPP),
|
||||||
[pva2pva](https://github.com/epics-base/pva2pva)
|
[pva2pva](https://github.com/epics-base/pva2pva)
|
||||||
|
|
||||||
EPICS Modules: [PCAS](https://github.com/epics-modules/pcas),
|
EPICS Modules:
|
||||||
[ASYN](https://github.com/epics-modules/asyn)
|
[ASYN](https://github.com/epics-modules/asyn),
|
||||||
|
[devlib2](https://github.com/epics-modules/devlib2),
|
||||||
|
[ecmc](https://github.com/epics-modules/ecmc),
|
||||||
|
[ip](https://github.com/epics-modules/ip),
|
||||||
|
[lua](https://github.com/epics-modules/lua),
|
||||||
|
[MCoreUtils](https://github.com/epics-modules/MCoreUtils),
|
||||||
|
[modbus](https://github.com/epics-modules/modbus),
|
||||||
|
[motor](https://github.com/epics-modules/motor),
|
||||||
|
[PCAS](https://github.com/epics-modules/pcas),
|
||||||
|
[sscan](https://github.com/epics-modules/sscan),
|
||||||
|
[vac](https://github.com/epics-modules/vac)
|
||||||
|
|
||||||
ESS: [Motor driver (model 3) for EtherCAT Motion Controller][ref.ethercatmc]
|
ESS: [EtherCAT MC Motor Driver][ref.ethercatmc]
|
||||||
|
|
||||||
ITER: [OPC UA Device Support](https://github.com/ralphlange/opcua)
|
ITER: [OPC UA Device Support](https://github.com/ralphlange/opcua)
|
||||||
|
|
||||||
@@ -221,22 +236,27 @@ This will make all builds (not just for your module) verbose.
|
|||||||
|
|
||||||
Update the submodule in `.ci` first, then change your CI configuration
|
Update the submodule in `.ci` first, then change your CI configuration
|
||||||
(if needed) and commit both to your module. E.g., to update your Travis
|
(if needed) and commit both to your module. E.g., to update your Travis
|
||||||
setup to release 2.2.1 of ci-scripts:
|
setup to release 2.3.5 of ci-scripts:
|
||||||
```bash
|
```bash
|
||||||
cd .ci
|
cd .ci
|
||||||
git pull origin v2.2.1
|
git pull origin v2.3.5
|
||||||
cd -
|
cd -
|
||||||
git add .ci
|
git add .ci
|
||||||
# if needed:
|
# if needed:
|
||||||
edit .travis.yml
|
edit .travis.yml
|
||||||
git add .travis.yml
|
git add .travis.yml
|
||||||
git commit -m "Update ci-scripts submodule to v2.2.1"
|
git commit -m "Update ci-scripts submodule to v2.3.5"
|
||||||
```
|
```
|
||||||
|
|
||||||
Check the example configuration files inside ci-scripts (and their
|
Check the example configuration files inside ci-scripts (and their
|
||||||
changes) to see what might be needed and/or interesting to change
|
changes) to see what might be needed and/or interesting to change
|
||||||
in your configuration.
|
in your configuration.
|
||||||
|
|
||||||
|
Depending on the changes contained in the ci-scripts update, it might
|
||||||
|
be advisable to clear the CI caches after updating ci-scripts. E.g.,
|
||||||
|
a change in setting up EPICS Base will not be applied if Base is found
|
||||||
|
in the cache.
|
||||||
|
|
||||||
**Why does running the scripts locally on my MacOS machine fail?**
|
**Why does running the scripts locally on my MacOS machine fail?**
|
||||||
|
|
||||||
The ci-scripts for Travis-CI require Bash version 4.
|
The ci-scripts for Travis-CI require Bash version 4.
|
||||||
@@ -273,7 +293,7 @@ in file LICENSE that is included with this distribution.
|
|||||||
<!-- Links -->
|
<!-- Links -->
|
||||||
[badge.version]: https://badge.fury.io/gh/epics-base%2Fci-scripts.svg
|
[badge.version]: https://badge.fury.io/gh/epics-base%2Fci-scripts.svg
|
||||||
[badge.travis]: https://travis-ci.org/epics-base/ci-scripts.svg?branch=master
|
[badge.travis]: https://travis-ci.org/epics-base/ci-scripts.svg?branch=master
|
||||||
[badge.appveyor]: https://ci.appveyor.com/api/projects/status/xwdv8fpxu0byp3hn?svg=true
|
[badge.appveyor]: https://ci.appveyor.com/api/projects/status/8b578alg974axvux?svg=true
|
||||||
|
|
||||||
[reddit.bash]: https://www.reddit.com/r/bash/comments/393oqv/why_is_the_version_of_bash_included_in_os_x_so_old/
|
[reddit.bash]: https://www.reddit.com/r/bash/comments/393oqv/why_is_the_version_of_bash_included_in_os_x_so_old/
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,39 @@
|
|||||||
diff -ruN ../3.14/src/dbtools/Makefile ./src/dbtools/Makefile
|
diff --git a/config/RULES.Db b/config/RULES.Db
|
||||||
--- ../3.14/src/dbtools/Makefile 2017-03-16 21:37:51.278140900 +0100
|
index b4946c7aa..90b76ed08 100644
|
||||||
+++ ./src/dbtools/Makefile 2020-04-06 12:40:51.723550846 +0200
|
--- a/config/RULES.Db
|
||||||
@@ -11,6 +11,11 @@
|
+++ b/config/RULES.Db
|
||||||
|
@@ -12,11 +12,7 @@
|
||||||
|
#
|
||||||
|
MAKEBPT = $(EPICS_BASE_HOST_BIN)/makeBpt$(EXE)
|
||||||
|
|
||||||
|
-ifndef MSI
|
||||||
|
-# Tool from R3.14 extensions bin, R3.13 extensions bin, or user path
|
||||||
|
-MSI = $(firstword $(wildcard $(EPICS_EXTENSIONS_HOST_BIN)/msi$(HOSTEXE) \
|
||||||
|
- $(EPICS_EXTENSIONS)/bin/$(HOST_ARCH)/msi$(HOSTEXE)) msi$(HOSTEXE))
|
||||||
|
-endif
|
||||||
|
+MSI = $(EPICS_BASE_HOST_BIN)/msi$(HOSTEXE)
|
||||||
|
|
||||||
|
DBEXPAND = $(EPICS_BASE_HOST_BIN)/dbExpand$(EXE)
|
||||||
|
DBST = dbst
|
||||||
|
diff --git a/configure/CONFIG_BASE b/configure/CONFIG_BASE
|
||||||
|
index 7ee5a5b89..9a9793093 100644
|
||||||
|
--- a/configure/CONFIG_BASE
|
||||||
|
+++ b/configure/CONFIG_BASE
|
||||||
|
@@ -112,8 +112,5 @@ ifndef DBST
|
||||||
|
DBST = dbst
|
||||||
|
endif
|
||||||
|
|
||||||
|
-ifndef MSI
|
||||||
|
-MSI = msi
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
+MSI = $(EPICS_BASE_HOST_BIN)/msi$(HOSTEXE)
|
||||||
|
|
||||||
|
diff --git a/src/dbtools/Makefile b/src/dbtools/Makefile
|
||||||
|
index 38ed52c9e..8655a5337 100644
|
||||||
|
--- a/src/dbtools/Makefile
|
||||||
|
+++ b/src/dbtools/Makefile
|
||||||
|
@@ -11,6 +11,11 @@ TOP=../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
@@ -13,9 +45,11 @@ diff -ruN ../3.14/src/dbtools/Makefile ./src/dbtools/Makefile
|
|||||||
INC += dbLoadTemplate.h
|
INC += dbLoadTemplate.h
|
||||||
INC += dbtoolsIocRegister.h
|
INC += dbtoolsIocRegister.h
|
||||||
|
|
||||||
diff -ruN ../3.14/src/dbtools/msi.c ./src/dbtools/msi.c
|
diff --git a/src/dbtools/msi.c b/src/dbtools/msi.c
|
||||||
--- ../3.14/src/dbtools/msi.c 1970-01-01 01:00:00.000000000 +0100
|
new file mode 100644
|
||||||
+++ ./src/dbtools/msi.c 2013-05-13 19:00:43.000000000 +0200
|
index 000000000..525d4f25b
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/src/dbtools/msi.c
|
||||||
@@ -0,0 +1,798 @@
|
@@ -0,0 +1,798 @@
|
||||||
+/*************************************************************************\
|
+/*************************************************************************\
|
||||||
+* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
+* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||||
|
|||||||
@@ -308,9 +308,11 @@ class TestSetupForBuild(unittest.TestCase):
|
|||||||
platform = os.environ['PLATFORM']
|
platform = os.environ['PLATFORM']
|
||||||
cc = os.environ['CMP']
|
cc = os.environ['CMP']
|
||||||
args = Namespace(paths=[])
|
args = Namespace(paths=[])
|
||||||
|
do.building_base = True
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
os.environ.pop('EPICS_HOST_ARCH', None)
|
os.environ.pop('EPICS_HOST_ARCH', None)
|
||||||
|
do.clear_lists()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
os.environ['CONFIGURATION'] = self.configuration
|
os.environ['CONFIGURATION'] = self.configuration
|
||||||
@@ -380,6 +382,47 @@ class TestSetupForBuild(unittest.TestCase):
|
|||||||
self.assertTrue(re.search('strawberry', os.environ['PATH'], flags=re.IGNORECASE),
|
self.assertTrue(re.search('strawberry', os.environ['PATH'], flags=re.IGNORECASE),
|
||||||
'Strawberry Perl location not in PATH for vs2019')
|
'Strawberry Perl location not in PATH for vs2019')
|
||||||
|
|
||||||
|
def setBase314(self, yesno):
|
||||||
|
cfg_base_version = os.path.join('configure', 'CONFIG_BASE_VERSION')
|
||||||
|
fout = open(cfg_base_version, 'w')
|
||||||
|
print('# test file for base version detection', file=fout)
|
||||||
|
print('BASE_3_14={0}'.format(yesno), file=fout)
|
||||||
|
fout.close()
|
||||||
|
|
||||||
|
def setTestResultsTarget(self, target):
|
||||||
|
rules_build = os.path.join('configure', 'RULES_BUILD')
|
||||||
|
fout = open(rules_build, 'w')
|
||||||
|
print('# test file for target detection', file=fout)
|
||||||
|
print('{0}: something'.format(target), file=fout)
|
||||||
|
fout.close()
|
||||||
|
|
||||||
|
def test_DetectionBase314No(self):
|
||||||
|
self.setBase314('NO')
|
||||||
|
do.setup_for_build(self.args)
|
||||||
|
self.assertFalse(do.isbase314, 'Falsely detected Base 3.14')
|
||||||
|
|
||||||
|
def test_DetectionBase314Yes(self):
|
||||||
|
self.setBase314('YES')
|
||||||
|
do.setup_for_build(self.args)
|
||||||
|
self.assertTrue(do.isbase314, 'Base 3.14 = YES not detected')
|
||||||
|
|
||||||
|
def test_DetectionTestResultsTarget314No(self):
|
||||||
|
self.setBase314('YES')
|
||||||
|
self.setTestResultsTarget('nottherighttarget')
|
||||||
|
do.setup_for_build(self.args)
|
||||||
|
self.assertFalse(do.has_test_results, 'Falsely detected test-results target')
|
||||||
|
|
||||||
|
def test_DetectionTestResultsTarget314Yes(self):
|
||||||
|
self.setBase314('YES')
|
||||||
|
self.setTestResultsTarget('test-results')
|
||||||
|
do.setup_for_build(self.args)
|
||||||
|
self.assertFalse(do.has_test_results, 'Falsely found test-results on Base 3.14')
|
||||||
|
|
||||||
|
def test_DetectionTestResultsTargetNot314Yes(self):
|
||||||
|
self.setBase314('NO')
|
||||||
|
self.setTestResultsTarget('test-results')
|
||||||
|
do.setup_for_build(self.args)
|
||||||
|
self.assertTrue(do.has_test_results, 'Target test-results not detected')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if 'VV' in os.environ and os.environ['VV'] == '1':
|
if 'VV' in os.environ and os.environ['VV'] == '1':
|
||||||
|
|||||||
@@ -12,14 +12,6 @@
|
|||||||
cache:
|
cache:
|
||||||
- C:\Users\appveyor\.tools
|
- C:\Users\appveyor\.tools
|
||||||
|
|
||||||
#---------------------------------#
|
|
||||||
# additional packages #
|
|
||||||
#---------------------------------#
|
|
||||||
|
|
||||||
install:
|
|
||||||
# for the sequencer
|
|
||||||
- cinst re2c
|
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# repository cloning #
|
# repository cloning #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
@@ -28,6 +20,8 @@ install:
|
|||||||
init:
|
init:
|
||||||
# Set autocrlf to make batch files work
|
# Set autocrlf to make batch files work
|
||||||
- git config --global core.autocrlf true
|
- git config --global core.autocrlf true
|
||||||
|
# print the connection info for RDP connections (see 'debugging' below)
|
||||||
|
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
||||||
|
|
||||||
# Set clone depth (do not fetch complete history)
|
# Set clone depth (do not fetch complete history)
|
||||||
clone_depth: 50
|
clone_depth: 50
|
||||||
@@ -39,6 +33,17 @@ skip_commits:
|
|||||||
- 'templates/*'
|
- 'templates/*'
|
||||||
- '**/*.html'
|
- '**/*.html'
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
- '.travis.yml'
|
||||||
|
|
||||||
|
#---------------------------------#
|
||||||
|
# additional packages #
|
||||||
|
#---------------------------------#
|
||||||
|
|
||||||
|
install:
|
||||||
|
# fetch submodules (like ci-scripts)
|
||||||
|
- cmd: git submodule update --init --recursive
|
||||||
|
# for the sequencer
|
||||||
|
- cinst re2c
|
||||||
|
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
# build matrix configuration #
|
# build matrix configuration #
|
||||||
@@ -48,6 +53,9 @@ skip_commits:
|
|||||||
# are executed sequentially, each one taking 10-15 minutes.
|
# are executed sequentially, each one taking 10-15 minutes.
|
||||||
# Consider this when defining your build matrix. (A full matrix build takes more than 8 hours.)
|
# Consider this when defining your build matrix. (A full matrix build takes more than 8 hours.)
|
||||||
|
|
||||||
|
# Default build worker image
|
||||||
|
image: Visual Studio 2015
|
||||||
|
|
||||||
# Build Configurations: dll/static, regular/debug
|
# Build Configurations: dll/static, regular/debug
|
||||||
configuration:
|
configuration:
|
||||||
- dynamic
|
- dynamic
|
||||||
@@ -62,8 +70,8 @@ environment:
|
|||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
SET: test00
|
SET: test00
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
- CMP: mingw
|
- CMP: mingw
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||||
@@ -107,11 +115,8 @@ matrix:
|
|||||||
# building & testing #
|
# building & testing #
|
||||||
#---------------------------------#
|
#---------------------------------#
|
||||||
|
|
||||||
install:
|
|
||||||
- cmd: git submodule update --init --recursive
|
|
||||||
- cmd: python .ci/appveyor/do.py prepare
|
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
- cmd: python .ci/appveyor/do.py prepare
|
||||||
- cmd: python .ci/appveyor/do.py build
|
- cmd: python .ci/appveyor/do.py build
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
@@ -129,9 +134,8 @@ on_finish:
|
|||||||
## note that you will need to connect within the usual build timeout limit (60 minutes)
|
## note that you will need to connect within the usual build timeout limit (60 minutes)
|
||||||
## so you may want to adjust the build matrix above to just build the one of interest
|
## so you may want to adjust the build matrix above to just build the one of interest
|
||||||
|
|
||||||
# print the connection info
|
# to print the RDP connection info
|
||||||
#init:
|
# uncomment the appropriate line in the init: section above
|
||||||
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
|
|
||||||
|
|
||||||
# block a failed build (until the watchdog barks)
|
# block a failed build (until the watchdog barks)
|
||||||
#on_failure:
|
#on_failure:
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ skip_commits:
|
|||||||
- 'templates/*'
|
- 'templates/*'
|
||||||
- '**/*.html'
|
- '**/*.html'
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
|
- '.travis.yml'
|
||||||
|
|
||||||
|
install:
|
||||||
|
- cmd: git submodule update --init --recursive
|
||||||
|
|
||||||
|
image: Visual Studio 2019
|
||||||
|
|
||||||
# Build Configurations: dll/static, regular/debug
|
# Build Configurations: dll/static, regular/debug
|
||||||
configuration:
|
configuration:
|
||||||
@@ -32,10 +38,8 @@ environment:
|
|||||||
matrix:
|
matrix:
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
BASE: 7.0
|
BASE: 7.0
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
- CMP: vs2019
|
- CMP: vs2019
|
||||||
BASE: 3.15
|
BASE: 3.15
|
||||||
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
|
||||||
|
|
||||||
# Platform: processor architecture
|
# Platform: processor architecture
|
||||||
platform:
|
platform:
|
||||||
@@ -53,11 +57,8 @@ matrix:
|
|||||||
- platform: x64
|
- platform: x64
|
||||||
CMP: vs2008
|
CMP: vs2008
|
||||||
|
|
||||||
install:
|
|
||||||
- cmd: git submodule update --init --recursive
|
|
||||||
- cmd: python .ci/appveyor/do.py prepare
|
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
- cmd: python .ci/appveyor/do.py prepare
|
||||||
- cmd: python .ci/appveyor/do.py build
|
- cmd: python .ci/appveyor/do.py build
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
1. Get an account on [AppVeyor](https://www.appveyor.com/), connect
|
1. Get an account on [AppVeyor](https://www.appveyor.com/), connect
|
||||||
it to your GitHub account and activate your support module's
|
it to your GitHub account and activate your support module's
|
||||||
repository. For more details, please refer to the
|
repository. For more details, please see below and refer to the
|
||||||
[AppVeyor documentation](https://www.appveyor.com/docs/).
|
[AppVeyor documentation](https://www.appveyor.com/docs/).
|
||||||
|
|
||||||
2. Add the ci-scripts respository as a Git Submodule
|
2. Add the ci-scripts respository as a Git Submodule
|
||||||
@@ -45,11 +45,68 @@
|
|||||||
|
|
||||||
Your builds will take long. \
|
Your builds will take long. \
|
||||||
AppVeyor only grants a single worker VM - all jobs of the matrix are
|
AppVeyor only grants a single worker VM - all jobs of the matrix are
|
||||||
executed sequentially. Each job will take around 10 minutes.
|
executed sequentially. Each job will take between 6 and 15 minutes,
|
||||||
|
plus testing time.
|
||||||
|
|
||||||
The `matrix: / exclude:` setting can be used to reduce the number of
|
The `matrix: / exclude:` setting can be used to reduce the number of
|
||||||
jobs. Check the [AppVeyor docs](https://www.appveyor.com/docs/build-configuration/#build-matrix)
|
jobs. Check the [AppVeyor docs][appveyor.doc.matrix]
|
||||||
for more ways to reduce the build matrix size.
|
for more ways to reduce the build matrix size.
|
||||||
|
E.g., you can opt for not creating matrix axes for `configuration:`
|
||||||
|
and`platform:` by moving these configurations into the job lines
|
||||||
|
under `environment: / matrix:`.
|
||||||
|
|
||||||
6. Push your changes and check
|
6. Push your changes and check
|
||||||
[ci.appveyor.com](https://ci.appveyor.com/) for your build results.
|
[ci.appveyor.com](https://ci.appveyor.com/) for your build results.
|
||||||
|
|
||||||
|
## GitHub / AppVeyor Integration and Authentication
|
||||||
|
|
||||||
|
### Security
|
||||||
|
Enabling Two-Factor-Authentication (2FA) is always a good idea, for all
|
||||||
|
your web based services, including GitHub and AppVeyor. \
|
||||||
|
Get an app for your phone (Authy works fine for me, but there are plenty),
|
||||||
|
and your phone will generate one-time passwords to verify your identity
|
||||||
|
to the service if required (e.g., when logging in from a new device).
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
You can use different ways and services to authenticate when you log into
|
||||||
|
your AppVeyor account. The easiest way - at least when you're using the
|
||||||
|
service with repositories on GitHub - is to use GitHub authentication.
|
||||||
|
|
||||||
|
### GitHub Integration
|
||||||
|
AppVeyor offers two ways to integrate with GitHub: through a GitHub
|
||||||
|
application or through an OAuth application. GitHub applications are using
|
||||||
|
the newer API, allow easier fine-grained access rights tuning and are
|
||||||
|
preferred.
|
||||||
|
|
||||||
|
The differences are mostly visible when you work with repositories under
|
||||||
|
organizational GitHub accounts: Using OAuth, AppVeyor always has the full
|
||||||
|
rights of your personal GitHub account.
|
||||||
|
GitHub applications on the other hand have separate instances and
|
||||||
|
configuration for every organizational account you are using on GitHub.
|
||||||
|
|
||||||
|
### Enabling Builds for your Repository
|
||||||
|
On the 'Projects' tab of your AppVeyor web interface, create a new project.
|
||||||
|
If the repository is not listed on the project creation page,
|
||||||
|
verify the Integration settings. Most of the relevant configuration
|
||||||
|
is taken from GitHub and has to be set up there.
|
||||||
|
|
||||||
|
### AppVeyor Account Sharing
|
||||||
|
You can always invite other AppVeyor users to have access to an AppVeyor
|
||||||
|
account, forming a team. Such additional shared accounts are a way to make
|
||||||
|
the AppVeyor limits (e.g., one parallel builder per account) more manageable.
|
||||||
|
|
||||||
|
## Known Issues
|
||||||
|
|
||||||
|
#### Build Worker Images
|
||||||
|
The AppVeyor documentation on build worker images doesn't seem to fully
|
||||||
|
describe the way things are handled internally.
|
||||||
|
|
||||||
|
The tested and suggested reproducible way of defining the build worker image
|
||||||
|
is shown in the example configuration files:
|
||||||
|
|
||||||
|
- Set the default image using the `image:` tag.
|
||||||
|
- Override the image for specific jobs by setting the
|
||||||
|
`APPVEYOR_BUILD_WORKER_IMAGE` environment variable.
|
||||||
|
|
||||||
|
<!-- Links -->
|
||||||
|
[appveyor.doc.matrix]: https://www.appveyor.com/docs/build-configuration/#build-matrix
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ ciscriptsdir = os.path.abspath(os.path.dirname(sys.argv[0]))
|
|||||||
if os.path.basename(ciscriptsdir) == 'appveyor':
|
if os.path.basename(ciscriptsdir) == 'appveyor':
|
||||||
ciscriptsdir = ciscriptsdir.rstrip(os.pathsep+'appveyor')
|
ciscriptsdir = ciscriptsdir.rstrip(os.pathsep+'appveyor')
|
||||||
|
|
||||||
if 'BASE' not in os.environ or os.environ['BASE'] == 'SELF':
|
if 'BASE' in os.environ and os.environ['BASE'] == 'SELF':
|
||||||
building_base = True
|
building_base = True
|
||||||
places['EPICS_BASE'] = '.'
|
places['EPICS_BASE'] = '.'
|
||||||
else:
|
else:
|
||||||
@@ -78,9 +78,13 @@ def modlist():
|
|||||||
zip7 = r'C:\Program Files\7-Zip\7z'
|
zip7 = r'C:\Program Files\7-Zip\7z'
|
||||||
make = ''
|
make = ''
|
||||||
isbase314 = False
|
isbase314 = False
|
||||||
|
has_test_results = False
|
||||||
silent_dep_builds = True
|
silent_dep_builds = True
|
||||||
|
|
||||||
def host_info():
|
def host_info():
|
||||||
|
print('{0}AppVeyor Build Worker Image:{1} {2}'
|
||||||
|
.format(ANSI_CYAN, ANSI_RESET, os.environ['APPVEYOR_BUILD_WORKER_IMAGE']))
|
||||||
|
|
||||||
print('{0}Python setup{1}'.format(ANSI_CYAN, ANSI_RESET))
|
print('{0}Python setup{1}'.format(ANSI_CYAN, ANSI_RESET))
|
||||||
print(sys.version)
|
print(sys.version)
|
||||||
print('PYTHONPATH')
|
print('PYTHONPATH')
|
||||||
@@ -96,10 +100,13 @@ def host_info():
|
|||||||
|
|
||||||
# Used from unittests
|
# Used from unittests
|
||||||
def clear_lists():
|
def clear_lists():
|
||||||
|
global isbase314, has_test_results
|
||||||
del seen_setups[:]
|
del seen_setups[:]
|
||||||
del modules_to_compile[:]
|
del modules_to_compile[:]
|
||||||
setup.clear()
|
setup.clear()
|
||||||
places.clear()
|
places.clear()
|
||||||
|
isbase314 = False
|
||||||
|
has_test_results = False
|
||||||
|
|
||||||
# Error-handler to make shutil.rmtree delete read-only files on Windows
|
# Error-handler to make shutil.rmtree delete read-only files on Windows
|
||||||
def remove_readonly(func, path, excinfo):
|
def remove_readonly(func, path, excinfo):
|
||||||
@@ -327,7 +334,7 @@ def add_dependency(dep):
|
|||||||
if 'BASE_3_14=YES' in f.read():
|
if 'BASE_3_14=YES' in f.read():
|
||||||
print('Adding MSI 1.7 to {0}'.format(place))
|
print('Adding MSI 1.7 to {0}'.format(place))
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
sp.check_call(['patch', '-p0', '-i', os.path.join(ciscriptsdir, 'add-msi-to-314.patch')],
|
sp.check_call(['patch', '-p1', '-i', os.path.join(ciscriptsdir, 'add-msi-to-314.patch')],
|
||||||
cwd=place)
|
cwd=place)
|
||||||
else:
|
else:
|
||||||
# force including RELEASE.local for non-base modules by overwriting their configure/RELEASE
|
# force including RELEASE.local for non-base modules by overwriting their configure/RELEASE
|
||||||
@@ -354,7 +361,7 @@ def add_dependency(dep):
|
|||||||
update_release_local(setup[dep+"_VARNAME"], place)
|
update_release_local(setup[dep+"_VARNAME"], place)
|
||||||
|
|
||||||
def setup_for_build(args):
|
def setup_for_build(args):
|
||||||
global make, isbase314
|
global make, isbase314, has_test_results
|
||||||
dllpaths = []
|
dllpaths = []
|
||||||
|
|
||||||
# there is no combined static and debug EPICS_HOST_ARCH target,
|
# there is no combined static and debug EPICS_HOST_ARCH target,
|
||||||
@@ -412,6 +419,14 @@ def setup_for_build(args):
|
|||||||
if 'BASE_3_14=YES' in myfile.read():
|
if 'BASE_3_14=YES' in myfile.read():
|
||||||
isbase314 = True
|
isbase314 = True
|
||||||
|
|
||||||
|
if not isbase314:
|
||||||
|
rules_build = os.path.join(base_place, 'configure', 'RULES_BUILD')
|
||||||
|
if os.path.exists(rules_build):
|
||||||
|
with open(rules_build) as myfile:
|
||||||
|
for line in myfile:
|
||||||
|
if re.match('^test-results:', line):
|
||||||
|
has_test_results = True
|
||||||
|
|
||||||
bindir = os.path.join(os.getcwd(), 'bin', os.environ['EPICS_HOST_ARCH'])
|
bindir = os.path.join(os.getcwd(), 'bin', os.environ['EPICS_HOST_ARCH'])
|
||||||
if os.path.isdir(bindir):
|
if os.path.isdir(bindir):
|
||||||
dllpaths.append(bindir)
|
dllpaths.append(bindir)
|
||||||
@@ -477,6 +492,29 @@ def prepare(args):
|
|||||||
else:
|
else:
|
||||||
optitype = 'optimized'
|
optitype = 'optimized'
|
||||||
|
|
||||||
|
# Enable/fix parallel build for VisualStudio compiler on older Base versions
|
||||||
|
add_vs_fix = True
|
||||||
|
config_win = os.path.join(places['EPICS_BASE'], 'configure', 'os', 'CONFIG.win32-x86.win32-x86')
|
||||||
|
with open(config_win) as myfile:
|
||||||
|
for line in myfile:
|
||||||
|
if re.match(r'^ifneq \(\$\(VisualStudioVersion\),11\.0\)', line):
|
||||||
|
add_vs_fix = False
|
||||||
|
if add_vs_fix:
|
||||||
|
with open(config_win, 'a') as myfile:
|
||||||
|
myfile.write('''
|
||||||
|
# Fix parallel build for some VisualStudio versions
|
||||||
|
ifneq ($(VisualStudioVersion),)
|
||||||
|
ifneq ($(VisualStudioVersion),11.0)
|
||||||
|
ifeq ($(findstring -FS,$(OPT_CXXFLAGS_NO)),)
|
||||||
|
OPT_CXXFLAGS_NO += -FS
|
||||||
|
OPT_CFLAGS_NO += -FS
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
OPT_CXXFLAGS_NO := $(filter-out -FS,$(OPT_CXXFLAGS_NO))
|
||||||
|
OPT_CFLAGS_NO := $(filter-out -FS,$(OPT_CFLAGS_NO))
|
||||||
|
endif
|
||||||
|
endif''')
|
||||||
|
|
||||||
print('EPICS Base build system set up for {0} build with {1} linking'
|
print('EPICS Base build system set up for {0} build with {1} linking'
|
||||||
.format(optitype, linktype))
|
.format(optitype, linktype))
|
||||||
|
|
||||||
@@ -537,8 +575,9 @@ def build(args):
|
|||||||
def test(args):
|
def test(args):
|
||||||
setup_for_build(args)
|
setup_for_build(args)
|
||||||
print('{0}Running the main module tests{1}'.format(ANSI_YELLOW, ANSI_RESET))
|
print('{0}Running the main module tests{1}'.format(ANSI_YELLOW, ANSI_RESET))
|
||||||
call_make(['tapfiles'], parallel=0)
|
call_make(['tapfiles'])
|
||||||
call_make(['test-results'], parallel=0, silent=True)
|
if has_test_results:
|
||||||
|
call_make(['test-results'], parallel=0, silent=True)
|
||||||
|
|
||||||
def doExec(args):
|
def doExec(args):
|
||||||
'exec user command with vcvars'
|
'exec user command with vcvars'
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ DB += dbExample2.db
|
|||||||
DB += dbSubExample.db
|
DB += dbSubExample.db
|
||||||
DB += user.substitutions
|
DB += user.substitutions
|
||||||
|
|
||||||
|
# Host-side expansion of substitutions file with MSI
|
||||||
|
DB += dbExample3.db
|
||||||
|
|
||||||
# If <anyname>.db template is not named <anyname>*.template add
|
# If <anyname>.db template is not named <anyname>*.template add
|
||||||
# <anyname>_TEMPLATE = <templatename>
|
# <anyname>_TEMPLATE = <templatename>
|
||||||
|
|
||||||
|
|||||||
8
exampleApp/Db/dbExample3.substitutions
Normal file
8
exampleApp/Db/dbExample3.substitutions
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# Example host-side substitutions file
|
||||||
|
|
||||||
|
file dbExample2.db {
|
||||||
|
pattern { user, no, scan }
|
||||||
|
{ "ralph", 4, "1 second" }
|
||||||
|
{ "ralph", 5, "2 second" }
|
||||||
|
{ "ralph", 6, "5 second" }
|
||||||
|
}
|
||||||
@@ -43,3 +43,18 @@
|
|||||||
|
|
||||||
6. Push your changes and check
|
6. Push your changes and check
|
||||||
[travis-ci.org](https://travis-ci.org/) for your build results.
|
[travis-ci.org](https://travis-ci.org/) for your build results.
|
||||||
|
|
||||||
|
## Caches
|
||||||
|
|
||||||
|
Travis keeps the caches separate for different jobs. As soon as the job
|
||||||
|
description (in the `.travis.yml` configuration file) or its environment
|
||||||
|
settings change (adding a space character is enough), the cache is different
|
||||||
|
and will be rebuilt when the job runs.
|
||||||
|
|
||||||
|
This also means that changing a value inside a setup file will _not_
|
||||||
|
invalidate the cache - in that case you will have to manually delete the cache
|
||||||
|
through the Travis web interface. (Or add a space character in the job
|
||||||
|
configuration.)
|
||||||
|
|
||||||
|
Caches are automatically removed after approx. four weeks.
|
||||||
|
Your jobs will have to rebuild them once in a while.
|
||||||
|
|||||||
@@ -6,13 +6,21 @@ set -e
|
|||||||
|
|
||||||
CACHEDIR=${CACHEDIR:-${HOME}/.cache}
|
CACHEDIR=${CACHEDIR:-${HOME}/.cache}
|
||||||
|
|
||||||
eval $(grep "EPICS_BASE=" ${CACHEDIR}/RELEASE.local)
|
if [ "$BASE" = "SELF" ]
|
||||||
|
then
|
||||||
|
EPICS_BASE=$CURDIR
|
||||||
|
else
|
||||||
|
eval $(grep "EPICS_BASE=" ${CACHEDIR}/RELEASE.local)
|
||||||
|
fi
|
||||||
export EPICS_BASE
|
export EPICS_BASE
|
||||||
|
|
||||||
[ -z "$EPICS_HOST_ARCH" -a -f $EPICS_BASE/src/tools/EpicsHostArch.pl ] && EPICS_HOST_ARCH=$(perl $EPICS_BASE/src/tools/EpicsHostArch.pl)
|
[ -z "$EPICS_HOST_ARCH" -a -f $EPICS_BASE/src/tools/EpicsHostArch.pl ] && EPICS_HOST_ARCH=$(perl $EPICS_BASE/src/tools/EpicsHostArch.pl)
|
||||||
[ -z "$EPICS_HOST_ARCH" -a -f $EPICS_BASE/startup/EpicsHostArch.pl ] && EPICS_HOST_ARCH=$(perl $EPICS_BASE/startup/EpicsHostArch.pl)
|
[ -z "$EPICS_HOST_ARCH" -a -f $EPICS_BASE/startup/EpicsHostArch.pl ] && EPICS_HOST_ARCH=$(perl $EPICS_BASE/startup/EpicsHostArch.pl)
|
||||||
export EPICS_HOST_ARCH
|
export EPICS_HOST_ARCH
|
||||||
|
|
||||||
|
# Base 3.15 doesn't have -qemu target architecture and needs an extra define
|
||||||
|
[ -e $EPICS_BASE/configure/os/CONFIG.Common.RTEMS-pc386-qemu ] || EXTRA_QEMU=RTEMS_QEMU_FIXUPS=YES
|
||||||
|
|
||||||
# use array variable to get the quoting right while using separate words for arguments
|
# use array variable to get the quoting right while using separate words for arguments
|
||||||
[ -n "$EXTRA0" ] && EXTRA[0]="$EXTRA0"
|
[ -n "$EXTRA0" ] && EXTRA[0]="$EXTRA0"
|
||||||
[ -n "$EXTRA1" ] && EXTRA[1]="$EXTRA1"
|
[ -n "$EXTRA1" ] && EXTRA[1]="$EXTRA1"
|
||||||
@@ -21,15 +29,18 @@ export EPICS_HOST_ARCH
|
|||||||
[ -n "$EXTRA4" ] && EXTRA[4]="$EXTRA4"
|
[ -n "$EXTRA4" ] && EXTRA[4]="$EXTRA4"
|
||||||
[ -n "$EXTRA5" ] && EXTRA[5]="$EXTRA5"
|
[ -n "$EXTRA5" ] && EXTRA[5]="$EXTRA5"
|
||||||
|
|
||||||
make -j2 "${EXTRA[@]}"
|
make -j2 $EXTRA_QEMU "${EXTRA[@]}"
|
||||||
|
|
||||||
ret=0
|
ret=0
|
||||||
|
|
||||||
if [ "$TEST" != "NO" ]
|
if [ "$TEST" != "NO" ]
|
||||||
then
|
then
|
||||||
make tapfiles || ret=$?
|
make -j2 tapfiles || ret=$?
|
||||||
|
|
||||||
make -sk test-results
|
if grep -q "BASE_3_14=NO" $EPICS_BASE/configure/CONFIG_BASE_VERSION
|
||||||
|
then
|
||||||
|
grep -q "^test-results:" $EPICS_BASE/configure/RULES_BUILD && make -sk test-results
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit $ret
|
exit $ret
|
||||||
|
|||||||
@@ -71,7 +71,8 @@ then
|
|||||||
mod_uc=${mod^^}
|
mod_uc=${mod^^}
|
||||||
eval add_dependency $mod_uc \${${mod_uc}:=master}
|
eval add_dependency $mod_uc \${${mod_uc}:=master}
|
||||||
done
|
done
|
||||||
[ -e ./configure ] && cp ${CACHEDIR}/RELEASE.local ./configure/RELEASE.local
|
[ -d ./configure ] && target=./configure/RELEASE.local || target=./RELEASE.local
|
||||||
|
cp ${CACHEDIR}/RELEASE.local $target
|
||||||
|
|
||||||
fold_end check.out.dependencies
|
fold_end check.out.dependencies
|
||||||
fi
|
fi
|
||||||
@@ -183,8 +184,10 @@ EOF
|
|||||||
RTEMS_VERSION=$RTEMS
|
RTEMS_VERSION=$RTEMS
|
||||||
RTEMS_BASE=$HOME/.rtems
|
RTEMS_BASE=$HOME/.rtems
|
||||||
EOF
|
EOF
|
||||||
|
# Base 3.15 doesn't have -qemu target architecture
|
||||||
|
[ -e $EPICS_BASE/configure/os/CONFIG.Common.RTEMS-pc386-qemu ] && QEMU=-qemu
|
||||||
cat << EOF >> $EPICS_BASE/configure/CONFIG_SITE
|
cat << EOF >> $EPICS_BASE/configure/CONFIG_SITE
|
||||||
CROSS_COMPILER_TARGET_ARCHS += RTEMS-pc386-qemu
|
CROSS_COMPILER_TARGET_ARCHS += RTEMS-pc386$QEMU
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ add_dependency() {
|
|||||||
if [ -e ${versionfile} ] && grep -q "BASE_3_14=YES" ${versionfile}
|
if [ -e ${versionfile} ] && grep -q "BASE_3_14=YES" ${versionfile}
|
||||||
then
|
then
|
||||||
echo "Adding MSI 1.7 to $CACHEDIR/$dirname-$TAG"
|
echo "Adding MSI 1.7 to $CACHEDIR/$dirname-$TAG"
|
||||||
( cd $dirname-$TAG; patch -p0 < $SCRIPTDIR/../add-msi-to-314.patch )
|
( cd $dirname-$TAG; patch -p1 < $SCRIPTDIR/../add-msi-to-314.patch )
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# fix non-base modules that do not include the .local files in configure/RELEASE
|
# fix non-base modules that do not include the .local files in configure/RELEASE
|
||||||
|
|||||||
Reference in New Issue
Block a user