Merge ~epics-core/epics-base/+git/Com:make-simple into ~epics-core/epics-base/+git/epics-base:7.0

Proposed by mdavidsaver
Status: Merged
Merged at revision: 966965c2c1df55293f43978100af19a24c8e5e8e
Proposed branch: ~epics-core/epics-base/+git/Com:make-simple
Merge into: ~epics-core/epics-base/+git/epics-base:7.0
Diff against target: 1899 lines (+86/-101)
45 files modified
configure/CONFIG (+5/-1)
configure/CONFIG_LIBCOM_MODULE (+3/-11)
configure/Makefile (+9/-0)
configure/RULES_BUILD (+3/-3)
dev/null (+0/-2)
modules/Makefile (+4/-4)
modules/ca/Makefile (+2/-4)
modules/ca/src/Makefile (+1/-1)
modules/ca/src/client/Makefile (+3/-3)
modules/ca/src/perl/Makefile (+1/-3)
modules/ca/src/perl/capr.pl (+1/-3)
modules/ca/src/template/Makefile (+1/-1)
modules/ca/src/tools/Makefile (+1/-1)
modules/database/Makefile (+2/-3)
modules/database/src/Makefile (+1/-1)
modules/database/src/ioc/Makefile (+5/-3)
modules/database/src/std/Makefile (+5/-3)
modules/database/src/template/Makefile (+1/-1)
modules/database/src/tools/Makefile (+1/-3)
modules/database/src/tools/dbExpand.pl (+1/-3)
modules/database/src/tools/dbdExpand.pl (+1/-3)
modules/database/src/tools/dbdReport.pl (+1/-3)
modules/database/src/tools/dbdToHtml.pl (+1/-3)
modules/database/src/tools/dbdToMenuH.pl (+1/-3)
modules/database/src/tools/dbdToRecordtypeH.pl (+1/-3)
modules/database/src/tools/registerRecordDeviceDriver.pl (+1/-3)
modules/database/test/Makefile (+1/-1)
modules/database/test/ioc/db/Makefile (+4/-3)
modules/database/test/ioc/dbtemplate/Makefile (+1/-1)
modules/database/test/std/filters/Makefile (+3/-1)
modules/database/test/std/link/Makefile (+3/-1)
modules/database/test/std/rec/Makefile (+3/-1)
modules/database/test/tools/Makefile (+1/-1)
modules/libcom/Makefile (+3/-4)
modules/libcom/RTEMS/Makefile (+1/-1)
modules/libcom/src/Makefile (+2/-4)
modules/libcom/src/env/Makefile (+0/-1)
modules/libcom/src/env/RULES (+1/-1)
modules/libcom/src/env/bldEnvData.pl (+1/-3)
modules/libcom/test/Makefile (+1/-1)
modules/libcom/vxWorks/Makefile (+1/-1)
src/template/base/makeBaseApp.pl (+1/-1)
src/tools/convertRelease.pl (+1/-1)
src/tools/expandVars.pl (+1/-1)
src/tools/fullPathName.pl (+1/-1)
Reviewer Review Type Date Requested Status
Andrew Johnson Approve
mdavidsaver Approve
Review via email: mp+361381@code.launchpad.net

Description of the change

Makefile simplifications related to the former sub-modules (libcom, ca, database) which have causing confusion, and extra complexity in packaging.

1. Remove modules/*/configure and CI leftovers. As these are no longer built separately, this is unnecessary complexity (need to set EPICS_HOST_ARCH to build in sub-dirs).

2. Remove bin/*/*ModuleDirs.pm. The Makefile rule is left (though it could be removed). Places where $(INSTALL_LOCATION) appears in generated code add complexity to packaging.

To post a comment you must log in.
Revision history for this message
Andrew Johnson (anj) wrote :

Not saying that I approve of this change, but while I'm looking at what you did...

You probably didn't see these Perl errors (which only occur after a distclean):

tux% make -s -C configure
Can't locate EPICS/Path.pm in @INC (@INC contains: /local/anj/base-7.0/src/tools/../../lib/perl /home/phoebus/ANJ/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../src/tools/convertRelease.pl line 24.
BEGIN failed--compilation aborted at ../src/tools/convertRelease.pl line 24.
Can't locate EPICS/Path.pm in @INC (@INC contains: /local/anj/base-7.0/src/tools/../../lib/perl /home/phoebus/ANJ/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../../src/tools/convertRelease.pl line 24.
BEGIN failed--compilation aborted at ../../src/tools/convertRelease.pl line 24.
...

They are easy to fix though, just revert your changes in src/tools. Those scripts are designed to be able to be run from the src/tools directory before the build has got as far as installing them, so by including $Bin in the library search path (i.e. the path to the directory that the .pl script is actually running from) they can find the local modules they need (which also haven't been installed yet). The src/tools scripts never loaded a xxxModuleDirs file.

For the other scripts where you removed $Bin from the search path and a 'use xxxModuleDirs;', you should also remove the now unnecessary line
    no lib $Bin;
which removed $Bin from the library search path after the xxxModuleDirs file had been loaded.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

> ... You probably didn't see these Perl errors ...

You're right, I don't. Which is puzzling considering that I've been (re)building with this change for several months now. You see this during Base build?

Revision history for this message
Andrew Johnson (anj) wrote :

Yup, those errors were from the top of your branch. I just replicated them:

tux% git clone -b make-simple --reference base-7.0 git+ssh://git.launchpad.net/~epics-core/epics-base/+git/Com dev-7.0
Cloning into 'dev-7.0'...
Checking connectivity... done.
Checking out files: 100% (1733/1733), done.
tux% cd dev-7.0/
tux% make -s -C configure
Can't locate EPICS/Path.pm in @INC (@INC contains: /local/anj/dev-7.0/src/tools/../../lib/perl /home/phoebus/ANJ/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../src/tools/convertRelease.pl line 24.
BEGIN failed--compilation aborted at ../src/tools/convertRelease.pl line 24.
Can't locate EPICS/Path.pm in @INC (@INC contains: /local/anj/dev-7.0/src/tools/../../lib/perl /home/phoebus/ANJ/perl5/lib/perl5 /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ../../src/tools/convertRelease.pl line 24.
BEGIN failed--compilation aborted at ../../src/tools/convertRelease.pl line 24.
...

They don't prevent Base from building though.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

This shows up in the travis build anyway.

https://travis-ci.org/mdavidsaver/epics-base/jobs/475161570

> They don't prevent Base from building though.

... because it comes from the configure/RELEASE parsing mechanics. Specifically:

> RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)

This will be empty when building Base itself, so we can just skip it.

Revision history for this message
Andrew Johnson (anj) wrote :

The Makefile rule for %ModuleDirs.pm cannot be removed, it will still be needed for external Perl scripts that use Perl modules from Base. The caPerl makeBaseApp template demonstrates the need.

You didn't make the changes I suggested in the last paragraph of my first comment yet: Remove the now unnecessary 'no lib $Bin;' lines from the scripts modules/database/src/tools/*.pl and modules/libcom/src/env/bldEnvData.pl where you removed a 'use ...ModuleDirs;' line.

I still object that the libcom, ca and database directories appear under modules/ when after these changes they aren't structured as modules any more. If we're going to undo their modular nature like this they should be moved back under src/ and test/.

One point of our making them modules was to move towards allowing CA and RSRV to become optional and unbundling them — are you abandoning that idea?

Revision history for this message
Andrew Johnson (anj) wrote :

Core Group mtg: Further exploration on Perl ModuleDirs files by ANJ; diff comments with fixes, but in principle this is acceptable.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

I've addressed two of three comments. I'm not going to try to make the caPerlApp example automatically set $PERL5LIB (I would rather drop it).

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

wrt. the *ModuleDirs.pm idea. One alternative I can imagine is injecting these paths directly into the .pl before/during installation?

Though even this would raise an issue which would need to be addressed in the rpath-origin MR.

https://code.launchpad.net/~epics-core/epics-base/+git/make/+merge/359132

Isn't there some way we can avoid encoding more absolute paths in the installed tree? I'm close to getting rid of these!

Revision history for this message
Andrew Johnson (anj) wrote :

With the changes already included in this MR Base doesn't generate any *ModuleDirs.pm files at all, they will only be generated by support modules that explicitly ask for one. I don't understand why you appear to be so strongly opposed to Base keeping the capability of generating them for other configurations (which is all I was asking for in my first paragraph back on 2019-03-07).

I understand the need for Debian packaging to remove install absolute paths from Base's installed files. When packaging EPICS it should be possible to install all the .pm files from $(INSTALL_DIR)/lib/perl and its sub-dirs (and the libCap5.so file) under one of the system directories that Perl searches automatically — those dir's are listed under @INC at the end of the 'perl -V' output, I expect Debian tells you somewhere which to use. Then the packaging process can remove all of the 'use lib' and 'use FindBin' lines from the EPICS Perl scripts and they will still find the modules they need. The one file that might need special attention is CA.pm which uses Perl's Dynaloader to load libCap5.so but as long as the relative path from CA.pm to libCap5.so is retained, the existing code will continue to work for that.

The packaging process can also remove the similar code that adjusts @INC from the top of the caPerlApp/*.pl template files, and delete the _APPNAME_ModuleDirs.pm line from the caPerlApp/Makefile. Templates that are instantiated on a Debian system will work fine when run on a system that has the modules installed as above. The won't work on a non-Debian system without adjustment, but I don't see that as a major problem.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

I think we're confusing each other. So the only change you're asking for is to revert the changes to .pl files under "modules/ca/src/template/top/caPerlApp"?

Revision history for this message
Andrew Johnson (anj) wrote :

I don't think so since they still have the 'use _APPNAME_ModuleDirs;' lines in them. I'm not trying to undo what you've done, I was just trying to get you to agree that you won't try to remove the *ModuleDirs.pm generation rules (contrary to the second point in your "Description of Change" at the top of this Merge Request). I would like to take one more look at this before it gets merged, I might have some minor name changes (of course!).

I was also explaining how the Debian packaging could more closely integrate our Perl modules into the rest of the Debian system.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

> you won't try to remove the *ModuleDirs.pm generation rules

I'm not! From me, "could be removed" is an option not a plan. I would however, like to remove any usage of it in Base. I appreciate that you may not see much distance between these two points, but I do. I'm relenting on the caPerlApp template in the hope of moving things forward.

I will reiterate for emphasis that my objections include having things which aren't executables under bin/ as well as encoding __absolute__ paths in the installed tree. The former coming in part from my desire, in the long term, to see our installed tree more closely follow *NIX conventions (LSB etc.). The later from my desire in the near term to be able to copy and use the installed tree from a different path.

Revision history for this message
mdavidsaver (mdavidsaver) :
review: Approve
Revision history for this message
Andrew Johnson (anj) wrote :

Still looking at this, ideas pending.

review: Needs Information (hold for anj)
Revision history for this message
Andrew Johnson (anj) wrote :

Videocon 9/17: Approved, some merge conflicts expected.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/configure/CONFIG b/configure/CONFIG
index e40d3f5..153e69e 100644
--- a/configure/CONFIG
+++ b/configure/CONFIG
@@ -58,8 +58,12 @@ include $(CONFIG)/CONFIG_BASE_VERSION
58include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common58include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
59-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common59-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
6060
61# Parse configure/RELEASE
62# except when building Base itself, where this file is empty,
63# and would error in src/tools/ anyway.
64ifndef BASE_TOP
61RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)65RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
6266endif
6367
64ifdef T_A68ifdef T_A
6569
diff --git a/modules/ca/configure/CONFIG_CA_MODULE b/configure/CONFIG_CA_MODULE
66similarity index 100%70similarity index 100%
67rename from modules/ca/configure/CONFIG_CA_MODULE71rename from modules/ca/configure/CONFIG_CA_MODULE
68rename to configure/CONFIG_CA_MODULE72rename to configure/CONFIG_CA_MODULE
diff --git a/modules/ca/configure/CONFIG_CA_VERSION b/configure/CONFIG_CA_VERSION
69similarity index 100%73similarity index 100%
70rename from modules/ca/configure/CONFIG_CA_VERSION74rename from modules/ca/configure/CONFIG_CA_VERSION
71rename to configure/CONFIG_CA_VERSION75rename to configure/CONFIG_CA_VERSION
diff --git a/modules/database/configure/CONFIG_DATABASE_MODULE b/configure/CONFIG_DATABASE_MODULE
72similarity index 100%76similarity index 100%
73rename from modules/database/configure/CONFIG_DATABASE_MODULE77rename from modules/database/configure/CONFIG_DATABASE_MODULE
74rename to configure/CONFIG_DATABASE_MODULE78rename to configure/CONFIG_DATABASE_MODULE
diff --git a/modules/database/configure/CONFIG_DATABASE_VERSION b/configure/CONFIG_DATABASE_VERSION
75similarity index 100%79similarity index 100%
76rename from modules/database/configure/CONFIG_DATABASE_VERSION80rename from modules/database/configure/CONFIG_DATABASE_VERSION
77rename to configure/CONFIG_DATABASE_VERSION81rename to configure/CONFIG_DATABASE_VERSION
diff --git a/modules/libcom/configure/CONFIG_LIBCOM_MODULE b/configure/CONFIG_LIBCOM_MODULE
78similarity index 64%82similarity index 64%
79rename from modules/libcom/configure/CONFIG_LIBCOM_MODULE83rename from modules/libcom/configure/CONFIG_LIBCOM_MODULE
80rename to configure/CONFIG_LIBCOM_MODULE84rename to configure/CONFIG_LIBCOM_MODULE
index 175606c..32bb937 100644
--- a/modules/libcom/configure/CONFIG_LIBCOM_MODULE
+++ b/configure/CONFIG_LIBCOM_MODULE
@@ -5,18 +5,10 @@
5# in file LICENSE that is included with this distribution.5# in file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
77
8# Set EPICS_LIBCOM if necessary
9ifndef EPICS_LIBCOM
10 EPICS_LIBCOM = $(if $(BUILDING_LIBCOM),$(INSTALL_LOCATION),$(EPICS_BASE))
11
12 # Paths to tools built here
13 EPICS_LIBCOM_HOST_BIN ?= $(EPICS_LIBCOM)/bin/$(EPICS_HOST_ARCH)
14endif
15
16# Set location of locally generated tools8# Set location of locally generated tools
17YACC = $(abspath $(EPICS_LIBCOM_HOST_BIN))/antelope$(HOSTEXE)9YACC = $(abspath $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH))/antelope$(HOSTEXE)
18LEX = $(abspath $(EPICS_LIBCOM_HOST_BIN))/e_flex$(HOSTEXE) \10LEX = $(abspath $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH))/e_flex$(HOSTEXE) \
19 -S$(EPICS_LIBCOM)/include/flex.skel.static11 -S$(EPICS_BASE)/include/flex.skel.static
2012
21# Default stack size for osiThread13# Default stack size for osiThread
22OSITHREAD_USE_DEFAULT_STACK = NO14OSITHREAD_USE_DEFAULT_STACK = NO
diff --git a/modules/libcom/configure/CONFIG_LIBCOM_VERSION b/configure/CONFIG_LIBCOM_VERSION
23similarity index 100%15similarity index 100%
24rename from modules/libcom/configure/CONFIG_LIBCOM_VERSION16rename from modules/libcom/configure/CONFIG_LIBCOM_VERSION
25rename to configure/CONFIG_LIBCOM_VERSION17rename to configure/CONFIG_LIBCOM_VERSION
diff --git a/configure/Makefile b/configure/Makefile
index 3778797..f48278d 100644
--- a/configure/Makefile
+++ b/configure/Makefile
@@ -20,5 +20,14 @@ CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
20CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))20CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
21CONFIGS += $(subst ../,,$(wildcard ../RULES*))21CONFIGS += $(subst ../,,$(wildcard ../RULES*))
2222
23CFG += CONFIG_LIBCOM_MODULE
24CFG += CONFIG_LIBCOM_VERSION
25
26CFG += CONFIG_CA_MODULE
27CFG += CONFIG_CA_VERSION
28
29CFG += CONFIG_DATABASE_MODULE
30CFG += CONFIG_DATABASE_VERSION
31
23include $(TOP)/configure/RULES32include $(TOP)/configure/RULES
2433
diff --git a/configure/RULES_BUILD b/configure/RULES_BUILD
index 2a78a96..6267889 100644
--- a/configure/RULES_BUILD
+++ b/configure/RULES_BUILD
@@ -190,7 +190,7 @@ endif
190checkRelease:190checkRelease:
191 +$(CONVERTRELEASE) checkRelease191 +$(CONVERTRELEASE) checkRelease
192warnRelease:192warnRelease:
193 -$(CONVERTRELEASE) checkRelease193 $(CONVERTRELEASE) checkRelease
194noCheckRelease:194noCheckRelease:
195ifeq ($(EPICS_HOST_ARCH),$(T_A))195ifeq ($(EPICS_HOST_ARCH),$(T_A))
196 $(info Warning: RELEASE file consistency checks have been disabled)196 $(info Warning: RELEASE file consistency checks have been disabled)
@@ -350,7 +350,7 @@ $(MODNAME): %$(MODEXT): %$(EXE)
350350
351runtests: $(TESTSCRIPTS)351runtests: $(TESTSCRIPTS)
352ifdef RUNTESTS_ENABLED352ifdef RUNTESTS_ENABLED
353 -$(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^353 $(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^
354endif354endif
355355
356testspec: $(TESTSCRIPTS)356testspec: $(TESTSCRIPTS)
@@ -385,7 +385,7 @@ junitfiles: $(JUNITFILES)
385# A .tap file is the output from running the associated test script385# A .tap file is the output from running the associated test script
386%.tap: %.t386%.tap: %.t
387ifdef RUNTESTS_ENABLED387ifdef RUNTESTS_ENABLED
388 -$(PERL) $< -tap > $@388 $(PERL) $< -tap > $@
389endif389endif
390390
391%.xml: %.tap391%.xml: %.tap
diff --git a/modules/Makefile b/modules/Makefile
index 0ed2b0e..ae221de 100644
--- a/modules/Makefile
+++ b/modules/Makefile
@@ -7,15 +7,15 @@ TOP = ..
7include $(TOP)/configure/CONFIG7include $(TOP)/configure/CONFIG
8include CONFIG_SITE.local8include CONFIG_SITE.local
99
10# Submodules for bundle build10DIRS += libcom
11SUBMODULES += libcom
1211
13SUBMODULES += ca12DIRS += ca
14ca_DEPEND_DIRS = libcom13ca_DEPEND_DIRS = libcom
1514
16SUBMODULES += database15DIRS += database
17database_DEPEND_DIRS = ca16database_DEPEND_DIRS = ca
1817
18# Submodules for bundle build
19SUBMODULES += pvData19SUBMODULES += pvData
20pvData_DEPEND_DIRS = libcom20pvData_DEPEND_DIRS = libcom
2121
diff --git a/modules/ca/.ci/travis-build.sh b/modules/ca/.ci/travis-build.sh
22deleted file mode 10075522deleted file mode 100755
index 622979b..0000000
--- a/modules/ca/.ci/travis-build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
1#!/bin/sh
2set -e -x
3
4# set RTEMS to eg. "4.9" or "4.10"
5# requires qemu, bison, flex, texinfo, install-info
6if [ -n "$RTEMS" ]
7then
8 # find local qemu-system-i386
9 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
10 echo -n "Using QEMU: "
11 type qemu-system-i386 || echo "Missing qemu"
12 EXTRA=RTEMS_QEMU_FIXUPS=YES
13fi
14
15make -j2 $EXTRA
16
17if [ "$TEST" != "NO" ]
18then
19 make -j2 tapfiles
20 make -s test-results
21fi
diff --git a/modules/ca/.ci/travis-prepare.sh b/modules/ca/.ci/travis-prepare.sh
22deleted file mode 1007550deleted file mode 100755
index 85dc8d7..0000000
--- a/modules/ca/.ci/travis-prepare.sh
+++ /dev/null
@@ -1,132 +0,0 @@
1#!/bin/sh
2set -e -x
3
4CURDIR="$PWD"
5
6QDIR="$HOME/.cache/qemu"
7
8if [ -n "$RTEMS" -a "$TEST" = "YES" ]
9then
10 git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu"
11 cd "$HOME/.build/qemu"
12
13 HEAD=`git log -n1 --pretty=format:%H`
14 echo "HEAD revision $HEAD"
15
16 [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"`
17 echo "Cached revision $BUILT"
18
19 if [ "$HEAD" != "$BUILT" ]
20 then
21 echo "Building QEMU"
22 git submodule --quiet update --init
23
24 install -d "$HOME/.build/qemu/build"
25 cd "$HOME/.build/qemu/build"
26
27 "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror
28 make -j2
29 make install
30
31 echo "$HEAD" > "$HOME/.cache/qemu/built"
32 fi
33fi
34
35cd "$CURDIR"
36
37cat << EOF > configure/RELEASE.local
38EPICS_BASE=$HOME/.source/epics-base
39EOF
40
41install -d "$HOME/.source"
42cd "$HOME/.source"
43
44add_base_module() {
45 MODULE=$1
46 BRANCH=$2
47 ( cd epics-base/modules && \
48 git clone --quiet --depth 5 --branch "$MODULE"/"$BRANCH" https://github.com/${REPOBASE:-epics-base}/epics-base.git "$MODULE" && \
49 cd "$MODULE" && git log -n1 )
50}
51
52git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base
53( cd epics-base && git log -n1 )
54add_base_module libcom "${BRLIBCOM:-master}"
55
56EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch`
57
58# requires wine and g++-mingw-w64-i686
59if [ "$WINE" = "32" ]
60then
61 echo "Cross mingw32"
62 sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
63 cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
64CMPLR_PREFIX=i686-w64-mingw32-
65EOF
66 cat << EOF >> epics-base/configure/CONFIG_SITE
67CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
68EOF
69fi
70
71if [ "$STATIC" = "YES" ]
72then
73 echo "Build static libraries/executables"
74 cat << EOF >> epics-base/configure/CONFIG_SITE
75SHARED_LIBRARIES=NO
76STATIC_BUILD=YES
77EOF
78fi
79
80case "$CMPLR" in
81clang)
82 echo "Host compiler is clang"
83 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
84GNU = NO
85CMPLR_CLASS = clang
86CC = clang
87CCC = clang++
88EOF
89
90 # hack
91 sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon
92
93 clang --version
94 ;;
95*)
96 echo "Host compiler is default"
97 gcc --version
98 ;;
99esac
100
101cat <<EOF >> epics-base/configure/CONFIG_SITE
102USR_CPPFLAGS += $USR_CPPFLAGS
103USR_CFLAGS += $USR_CFLAGS
104USR_CXXFLAGS += $USR_CXXFLAGS
105EOF
106
107# set RTEMS to eg. "4.9" or "4.10"
108# requires qemu, bison, flex, texinfo, install-info
109if [ -n "$RTEMS" ]
110then
111 echo "Cross RTEMS${RTEMS} for pc386"
112 install -d /home/travis/.cache
113 curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \
114 | tar -C /home/travis/.cache -xj
115
116 sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS
117 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS
118RTEMS_VERSION=$RTEMS
119RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386
120EOF
121 cat << EOF >> epics-base/configure/CONFIG_SITE
122CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386
123EOF
124
125 # find local qemu-system-i386
126 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
127 echo -n "Using QEMU: "
128 type qemu-system-i386 || echo "Missing qemu"
129 EXTRA=RTEMS_QEMU_FIXUPS=YES
130fi
131
132make -j2 -C epics-base $EXTRA
diff --git a/modules/ca/.travis.yml b/modules/ca/.travis.yml
133deleted file mode 1006440deleted file mode 100644
index 5a99b88..0000000
--- a/modules/ca/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
1sudo: false
2dist: trusty
3language: c
4compiler:
5 - gcc
6addons:
7 apt:
8 packages:
9 - libreadline6-dev
10 - libncurses5-dev
11 - perl
12 - clang
13 - g++-mingw-w64-i686
14install:
15 - ./.ci/travis-prepare.sh
16script:
17 - ./.ci/travis-build.sh
18env:
19 - BRCORE=master BRLIBCOM=master TEST=NO
20 - CMPLR=clang TEST=NO
21 - USR_CXXFLAGS=-std=c++11 TEST=NO
22 - CMPLR=clang USR_CXXFLAGS=-std=c++11 TEST=NO
23 - WINE=32 TEST=NO STATIC=YES
24 - WINE=32 TEST=NO STATIC=NO
25 - RTEMS=4.10 TEST=NO
26 - RTEMS=4.9 TEST=NO
diff --git a/modules/ca/Makefile b/modules/ca/Makefile
index 13feff6..eeb147b 100644
--- a/modules/ca/Makefile
+++ b/modules/ca/Makefile
@@ -7,11 +7,9 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = .10TOP = ../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13DIRS += configure src13DIRS += src
14
15src_DEPEND_DIRS = configure
1614
17include $(TOP)/configure/RULES_TOP15include $(TOP)/configure/RULES_TOP
diff --git a/modules/ca/configure/CONFIG b/modules/ca/configure/CONFIG
18deleted file mode 10064416deleted file mode 100644
index 331fd70..0000000
--- a/modules/ca/configure/CONFIG
+++ /dev/null
@@ -1,28 +0,0 @@
1# CONFIG - Load build configuration data
2#
3# Do not make changes to this file!
4
5# Allow user to override where the build rules come from
6RULES = $(EPICS_BASE)
7
8# RELEASE files point to other application tops
9include $(TOP)/configure/RELEASE
10-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
11ifdef T_A
12-include $(TOP)/configure/RELEASE.Common.$(T_A)
13-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
14endif
15
16CONFIG = $(RULES)/configure
17include $(CONFIG)/CONFIG
18
19# Override the Base definition:
20INSTALL_LOCATION = $(TOP)
21
22# CONFIG_SITE files contain other build configuration settings
23include $(TOP)/configure/CONFIG_SITE
24-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
25ifdef T_A
26 -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
27 -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
28endif
diff --git a/modules/ca/configure/CONFIG_SITE b/modules/ca/configure/CONFIG_SITE
29deleted file mode 1006440deleted file mode 100644
index d78c7f5..0000000
--- a/modules/ca/configure/CONFIG_SITE
+++ /dev/null
@@ -1,42 +0,0 @@
1# CONFIG_SITE
2
3# Make any application-specific changes to the EPICS build
4# configuration variables in this file.
5#
6# Host/target specific settings can be specified in files named
7# CONFIG_SITE.$(EPICS_HOST_ARCH).Common
8# CONFIG_SITE.Common.$(T_A)
9# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
10
11# CHECK_RELEASE controls the consistency checking of the support
12# applications pointed to by the RELEASE* files.
13# Normally CHECK_RELEASE should be set to YES.
14# Set CHECK_RELEASE to NO to disable checking completely.
15# Set CHECK_RELEASE to WARN to perform consistency checking but
16# continue building even if conflicts are found.
17CHECK_RELEASE = YES
18
19# Set this when you only want to compile this application
20# for a subset of the cross-compiled target architectures
21# that Base is built for.
22#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
23
24# To install files into a location other than $(TOP) define
25# INSTALL_LOCATION here.
26#INSTALL_LOCATION=</absolute/path/to/install/top>
27
28# Set this when the IOC and build host use different paths
29# to the install location. This may be needed to boot from
30# a Microsoft FTP server say, or on some NFS configurations.
31#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
32
33# For application debugging purposes, override the HOST_OPT and/
34# or CROSS_OPT settings from base/configure/CONFIG_SITE
35#HOST_OPT = NO
36#CROSS_OPT = NO
37
38# These allow developers to override the CONFIG_SITE variable
39# settings without having to modify the configure/CONFIG_SITE
40# file itself.
41-include $(TOP)/../CONFIG_SITE.local
42-include $(TOP)/configure/CONFIG_SITE.local
diff --git a/modules/ca/configure/Makefile b/modules/ca/configure/Makefile
43deleted file mode 1006440deleted file mode 100644
index e2f3738..0000000
--- a/modules/ca/configure/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
1#*************************************************************************
2# EPICS BASE is distributed subject to a Software License Agreement found
3# in file LICENSE that is included with this distribution.
4#*************************************************************************
5TOP = ..
6
7include $(TOP)/configure/CONFIG
8
9TARGETS = $(CONFIG_TARGETS)
10CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
11
12CFG += CONFIG_CA_MODULE
13CFG += CONFIG_CA_VERSION
14
15include $(TOP)/configure/RULES
diff --git a/modules/ca/configure/RELEASE b/modules/ca/configure/RELEASE
16deleted file mode 1006440deleted file mode 100644
index a2d9f55..0000000
--- a/modules/ca/configure/RELEASE
+++ /dev/null
@@ -1,39 +0,0 @@
1# RELEASE - Location of external support modules
2#
3# IF YOU CHANGE ANY PATHS in this file or make API changes to
4# any modules it refers to, you should do a "make rebuild" in
5# this application's top level directory.
6#
7# The EPICS build process does not check dependencies against
8# any files from outside the application, so it is safest to
9# rebuild it completely if any modules it depends on change.
10#
11# Host- or target-specific settings can be given in files named
12# RELEASE.$(EPICS_HOST_ARCH).Common
13# RELEASE.Common.$(T_A)
14# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
15#
16# This file is parsed by both GNUmake and an EPICS Perl script,
17# so it may ONLY contain definititions of paths to other support
18# modules, variable definitions that are used in module paths,
19# and include statements that pull in other RELEASE files.
20# Variables may be used before their values have been set.
21# Build variables that are NOT used in paths should be set in
22# the CONFIG_SITE file.
23
24# Variables and paths to dependent modules:
25#MODULES = /path/to/modules
26#MYMODULE = $(MODULES)/my-module
27
28# If building the EPICS modules individually, set these:
29#EPICS_LIBCOM = $(MODULES)/libcom-3.17.0
30#EPICS_BASE = $(MODULES)/core-7.0.1
31
32# Set RULES here if you want to use build rules from elsewhere:
33#RULES = $(MODULES)/build-rules
34
35# These lines allow developers to override these RELEASE settings
36# without having to modify this file directly.
37-include $(TOP)/../RELEASE.local
38-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
39-include $(TOP)/configure/RELEASE.local
diff --git a/modules/ca/configure/RULES b/modules/ca/configure/RULES
40deleted file mode 1006440deleted file mode 100644
index 6d56e14..0000000
--- a/modules/ca/configure/RULES
+++ /dev/null
@@ -1,6 +0,0 @@
1# RULES
2
3include $(CONFIG)/RULES
4
5# Library should be rebuilt because LIBOBJS may have changed.
6$(LIBNAME): ../Makefile
diff --git a/modules/ca/configure/RULES_DIRS b/modules/ca/configure/RULES_DIRS
7deleted file mode 1006440deleted file mode 100644
index 3ba269d..0000000
--- a/modules/ca/configure/RULES_DIRS
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_DIRS
2include $(CONFIG)/RULES_DIRS
diff --git a/modules/ca/configure/RULES_TOP b/modules/ca/configure/RULES_TOP
3deleted file mode 1006440deleted file mode 100644
index 2b8cbc6..0000000
--- a/modules/ca/configure/RULES_TOP
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_TOP
2include $(CONFIG)/RULES_TOP
diff --git a/modules/ca/src/Makefile b/modules/ca/src/Makefile
index 650b355..335cec6 100644
--- a/modules/ca/src/Makefile
+++ b/modules/ca/src/Makefile
@@ -7,7 +7,7 @@
7# in the file LICENSE that is included with this distribution.7# in the file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13# Channel Access Client13# Channel Access Client
diff --git a/modules/ca/src/client/Makefile b/modules/ca/src/client/Makefile
index c5fc5c4..cae6ee0 100644
--- a/modules/ca/src/client/Makefile
+++ b/modules/ca/src/client/Makefile
@@ -6,8 +6,8 @@
6# EPICS BASE is distributed subject to a Software License Agreement found6# EPICS BASE is distributed subject to a Software License Agreement found
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
10TOP = ../..10TOP = ../../../..
1111
12include $(TOP)/configure/CONFIG12include $(TOP)/configure/CONFIG
1313
@@ -109,7 +109,7 @@ EXPAND += S99caRepeater@
109EXPAND += caRepeater.service@109EXPAND += caRepeater.service@
110EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))110EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))
111111
112SRC_DIRS += $(TOP)/src/client/test112SRC_DIRS += $(CURDIR)/test
113PROD_HOST += ca_test113PROD_HOST += ca_test
114ca_test_SRCS = ca_test_main.c ca_test.c114ca_test_SRCS = ca_test_main.c ca_test.c
115ca_test_LIBS = ca Com115ca_test_LIBS = ca Com
diff --git a/modules/ca/src/perl/Makefile b/modules/ca/src/perl/Makefile
index 7890f34..65619e9 100644
--- a/modules/ca/src/perl/Makefile
+++ b/modules/ca/src/perl/Makefile
@@ -5,7 +5,7 @@
5# in file LICENSE that is included with this distribution.5# in file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
77
8TOP = ../..8TOP = ../../../..
9include $(TOP)/configure/CONFIG9include $(TOP)/configure/CONFIG
1010
11ifdef T_A11ifdef T_A
@@ -55,8 +55,6 @@ ifeq ($(findstring $(OS_CLASS),WIN32 cygwin32),) # Doesn't build on WIN32
55 PERL_MODULES += CA.pm55 PERL_MODULES += CA.pm
56 PERL_MODULES += $(PERL_ARCHPATH)/$(LOADABLE_SHRLIB_PREFIX)Cap5$(LOADABLE_SHRLIB_SUFFIX)56 PERL_MODULES += $(PERL_ARCHPATH)/$(LOADABLE_SHRLIB_PREFIX)Cap5$(LOADABLE_SHRLIB_SUFFIX)
5757
58 PERL_SCRIPTS += caModuleDirs.pm
59
60 HTMLS_DIR = .58 HTMLS_DIR = .
61 HTMLS = CA.html59 HTMLS = CA.html
62endif60endif
diff --git a/modules/ca/src/perl/capr.pl b/modules/ca/src/perl/capr.pl
index e551afc..21e56ec 100644
--- a/modules/ca/src/perl/capr.pl
+++ b/modules/ca/src/perl/capr.pl
@@ -10,9 +10,7 @@
10use strict;10use strict;
1111
12use FindBin qw($Bin);12use FindBin qw($Bin);
13use lib ($Bin, "$Bin/../../lib/perl");13use lib ("$Bin/../../lib/perl");
14use caModuleDirs;
15no lib $Bin;
1614
17use Getopt::Std;15use Getopt::Std;
18use EPICS::Path;16use EPICS::Path;
diff --git a/modules/ca/src/template/Makefile b/modules/ca/src/template/Makefile
index 913d92b..8683dfd 100644
--- a/modules/ca/src/template/Makefile
+++ b/modules/ca/src/template/Makefile
@@ -1,4 +1,4 @@
1TOP=../..1TOP=../../../..
22
3include $(TOP)/configure/CONFIG3include $(TOP)/configure/CONFIG
44
diff --git a/modules/ca/src/tools/Makefile b/modules/ca/src/tools/Makefile
index 7ebcc02..c56e21e 100644
--- a/modules/ca/src/tools/Makefile
+++ b/modules/ca/src/tools/Makefile
@@ -9,7 +9,7 @@
9# in file LICENSE that is included with this distribution.9# in file LICENSE that is included with this distribution.
10#*************************************************************************10#*************************************************************************
1111
12TOP = ../..12TOP = ../../../..
1313
14include $(TOP)/configure/CONFIG14include $(TOP)/configure/CONFIG
1515
diff --git a/modules/database/.ci/travis-build.sh b/modules/database/.ci/travis-build.sh
16deleted file mode 10075516deleted file mode 100755
index 622979b..0000000
--- a/modules/database/.ci/travis-build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
1#!/bin/sh
2set -e -x
3
4# set RTEMS to eg. "4.9" or "4.10"
5# requires qemu, bison, flex, texinfo, install-info
6if [ -n "$RTEMS" ]
7then
8 # find local qemu-system-i386
9 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
10 echo -n "Using QEMU: "
11 type qemu-system-i386 || echo "Missing qemu"
12 EXTRA=RTEMS_QEMU_FIXUPS=YES
13fi
14
15make -j2 $EXTRA
16
17if [ "$TEST" != "NO" ]
18then
19 make -j2 tapfiles
20 make -s test-results
21fi
diff --git a/modules/database/.ci/travis-prepare.sh b/modules/database/.ci/travis-prepare.sh
22deleted file mode 1007550deleted file mode 100755
index ce2c18b..0000000
--- a/modules/database/.ci/travis-prepare.sh
+++ /dev/null
@@ -1,133 +0,0 @@
1#!/bin/sh
2set -e -x
3
4CURDIR="$PWD"
5
6QDIR="$HOME/.cache/qemu"
7
8if [ -n "$RTEMS" -a "$TEST" = "YES" ]
9then
10 git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu"
11 cd "$HOME/.build/qemu"
12
13 HEAD=`git log -n1 --pretty=format:%H`
14 echo "HEAD revision $HEAD"
15
16 [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"`
17 echo "Cached revision $BUILT"
18
19 if [ "$HEAD" != "$BUILT" ]
20 then
21 echo "Building QEMU"
22 git submodule --quiet update --init
23
24 install -d "$HOME/.build/qemu/build"
25 cd "$HOME/.build/qemu/build"
26
27 "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror
28 make -j2
29 make install
30
31 echo "$HEAD" > "$HOME/.cache/qemu/built"
32 fi
33fi
34
35cd "$CURDIR"
36
37cat << EOF > configure/RELEASE.local
38EPICS_BASE=$HOME/.source/epics-base
39EOF
40
41install -d "$HOME/.source"
42cd "$HOME/.source"
43
44add_base_module() {
45 MODULE=$1
46 BRANCH=$2
47 ( cd epics-base/modules && \
48 git clone --quiet --depth 5 --branch "$MODULE"/"$BRANCH" https://github.com/${REPOBASE:-epics-base}/epics-base.git "$MODULE" && \
49 cd "$MODULE" && git log -n1 )
50}
51
52git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base
53( cd epics-base && git log -n1 )
54add_base_module libcom "${BRLIBCOM:-master}"
55add_base_module ca "${BRCA:-master}"
56
57EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch`
58
59# requires wine and g++-mingw-w64-i686
60if [ "$WINE" = "32" ]
61then
62 echo "Cross mingw32"
63 sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
64 cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
65CMPLR_PREFIX=i686-w64-mingw32-
66EOF
67 cat << EOF >> epics-base/configure/CONFIG_SITE
68CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
69EOF
70fi
71
72if [ "$STATIC" = "YES" ]
73then
74 echo "Build static libraries/executables"
75 cat << EOF >> epics-base/configure/CONFIG_SITE
76SHARED_LIBRARIES=NO
77STATIC_BUILD=YES
78EOF
79fi
80
81case "$CMPLR" in
82clang)
83 echo "Host compiler is clang"
84 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
85GNU = NO
86CMPLR_CLASS = clang
87CC = clang
88CCC = clang++
89EOF
90
91 # hack
92 sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon
93
94 clang --version
95 ;;
96*)
97 echo "Host compiler is default"
98 gcc --version
99 ;;
100esac
101
102cat <<EOF >> epics-base/configure/CONFIG_SITE
103USR_CPPFLAGS += $USR_CPPFLAGS
104USR_CFLAGS += $USR_CFLAGS
105USR_CXXFLAGS += $USR_CXXFLAGS
106EOF
107
108# set RTEMS to eg. "4.9" or "4.10"
109# requires qemu, bison, flex, texinfo, install-info
110if [ -n "$RTEMS" ]
111then
112 echo "Cross RTEMS${RTEMS} for pc386"
113 install -d /home/travis/.cache
114 curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \
115 | tar -C /home/travis/.cache -xj
116
117 sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS
118 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS
119RTEMS_VERSION=$RTEMS
120RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386
121EOF
122 cat << EOF >> epics-base/configure/CONFIG_SITE
123CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386
124EOF
125
126 # find local qemu-system-i386
127 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
128 echo -n "Using QEMU: "
129 type qemu-system-i386 || echo "Missing qemu"
130 EXTRA=RTEMS_QEMU_FIXUPS=YES
131fi
132
133make -j2 -C epics-base $EXTRA
diff --git a/modules/database/.travis.yml b/modules/database/.travis.yml
134deleted file mode 1006440deleted file mode 100644
index 127ae7b..0000000
--- a/modules/database/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
1sudo: false
2dist: trusty
3language: c
4compiler:
5 - gcc
6addons:
7 apt:
8 packages:
9 - libreadline6-dev
10 - libncurses5-dev
11 - perl
12 - clang
13 - g++-mingw-w64-i686
14install:
15 - ./.ci/travis-prepare.sh
16script:
17 - ./.ci/travis-build.sh
18env:
19 - BRCORE=master BRLIBCOM=master BRCA=master
20 - CMPLR=clang
21 - USR_CXXFLAGS=-std=c++11
22 - CMPLR=clang USR_CXXFLAGS=-std=c++11
23 - WINE=32 TEST=NO STATIC=YES
24 - WINE=32 TEST=NO STATIC=NO
25 - RTEMS=4.10 TEST=NO
26 - RTEMS=4.9 TEST=NO
diff --git a/modules/database/Makefile b/modules/database/Makefile
index 9998e6c..9bb746e 100644
--- a/modules/database/Makefile
+++ b/modules/database/Makefile
@@ -7,11 +7,10 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = .10TOP = ../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13DIRS += configure src13DIRS += src
14src_DEPEND_DIRS = configure
1514
16DIRS += test15DIRS += test
17test_DEPEND_DIRS = src16test_DEPEND_DIRS = src
diff --git a/modules/database/configure/CONFIG b/modules/database/configure/CONFIG
18deleted file mode 10064417deleted file mode 100644
index c471407..0000000
--- a/modules/database/configure/CONFIG
+++ /dev/null
@@ -1,36 +0,0 @@
1# CONFIG - Load build configuration data
2#
3# Do not make changes to this file!
4
5# Allow user to override where the build rules come from
6RULES = $(EPICS_BASE)
7
8# RELEASE files point to other application tops
9include $(TOP)/configure/RELEASE
10-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
11ifdef T_A
12-include $(TOP)/configure/RELEASE.Common.$(T_A)
13-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
14endif
15
16BUILDING_DATABASE = DEFINED
17
18CONFIG = $(RULES)/configure
19include $(CONFIG)/CONFIG
20
21# Override the Base definition:
22INSTALL_LOCATION = $(TOP)
23
24# Use new RSET definition
25BASE_CPPFLAGS += -DUSE_TYPED_RSET
26
27# Shared library ABI version.
28SHRLIB_VERSION = $(EPICS_DATABASE_MAJOR_VERSION).$(EPICS_DATABASE_MINOR_VERSION).$(EPICS_DATABASE_MAINTENANCE_VERSION)
29
30# CONFIG_SITE files contain other build configuration settings
31include $(TOP)/configure/CONFIG_SITE
32-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
33ifdef T_A
34 -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
35 -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
36endif
diff --git a/modules/database/configure/CONFIG_SITE b/modules/database/configure/CONFIG_SITE
37deleted file mode 1006440deleted file mode 100644
index d78c7f5..0000000
--- a/modules/database/configure/CONFIG_SITE
+++ /dev/null
@@ -1,42 +0,0 @@
1# CONFIG_SITE
2
3# Make any application-specific changes to the EPICS build
4# configuration variables in this file.
5#
6# Host/target specific settings can be specified in files named
7# CONFIG_SITE.$(EPICS_HOST_ARCH).Common
8# CONFIG_SITE.Common.$(T_A)
9# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
10
11# CHECK_RELEASE controls the consistency checking of the support
12# applications pointed to by the RELEASE* files.
13# Normally CHECK_RELEASE should be set to YES.
14# Set CHECK_RELEASE to NO to disable checking completely.
15# Set CHECK_RELEASE to WARN to perform consistency checking but
16# continue building even if conflicts are found.
17CHECK_RELEASE = YES
18
19# Set this when you only want to compile this application
20# for a subset of the cross-compiled target architectures
21# that Base is built for.
22#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
23
24# To install files into a location other than $(TOP) define
25# INSTALL_LOCATION here.
26#INSTALL_LOCATION=</absolute/path/to/install/top>
27
28# Set this when the IOC and build host use different paths
29# to the install location. This may be needed to boot from
30# a Microsoft FTP server say, or on some NFS configurations.
31#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
32
33# For application debugging purposes, override the HOST_OPT and/
34# or CROSS_OPT settings from base/configure/CONFIG_SITE
35#HOST_OPT = NO
36#CROSS_OPT = NO
37
38# These allow developers to override the CONFIG_SITE variable
39# settings without having to modify the configure/CONFIG_SITE
40# file itself.
41-include $(TOP)/../CONFIG_SITE.local
42-include $(TOP)/configure/CONFIG_SITE.local
diff --git a/modules/database/configure/Makefile b/modules/database/configure/Makefile
43deleted file mode 1006440deleted file mode 100644
index dd29209..0000000
--- a/modules/database/configure/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
1#*************************************************************************
2# EPICS BASE is distributed subject to a Software License Agreement found
3# in file LICENSE that is included with this distribution.
4#*************************************************************************
5TOP = ..
6
7include $(TOP)/configure/CONFIG
8
9TARGETS = $(CONFIG_TARGETS)
10CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
11
12CFG += CONFIG_DATABASE_MODULE
13CFG += CONFIG_DATABASE_VERSION
14
15include $(TOP)/configure/RULES
diff --git a/modules/database/configure/RELEASE b/modules/database/configure/RELEASE
16deleted file mode 1006440deleted file mode 100644
index 9b685a1..0000000
--- a/modules/database/configure/RELEASE
+++ /dev/null
@@ -1,40 +0,0 @@
1# RELEASE - Location of external support modules
2#
3# IF YOU CHANGE ANY PATHS in this file or make API changes to
4# any modules it refers to, you should do a "make rebuild" in
5# this application's top level directory.
6#
7# The EPICS build process does not check dependencies against
8# any files from outside the application, so it is safest to
9# rebuild it completely if any modules it depends on change.
10#
11# Host- or target-specific settings can be given in files named
12# RELEASE.$(EPICS_HOST_ARCH).Common
13# RELEASE.Common.$(T_A)
14# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
15#
16# This file is parsed by both GNUmake and an EPICS Perl script,
17# so it may ONLY contain definititions of paths to other support
18# modules, variable definitions that are used in module paths,
19# and include statements that pull in other RELEASE files.
20# Variables may be used before their values have been set.
21# Build variables that are NOT used in paths should be set in
22# the CONFIG_SITE file.
23
24# Variables and paths to dependent modules:
25#MODULES = /path/to/modules
26#MYMODULE = $(MODULES)/my-module
27
28# If building the EPICS modules individually, set these:
29#EPICS_CA = $(MODULES)/ca-4.13.1
30#EPICS_LIBCOM = $(MODULES)/libcom-3.17.0
31#EPICS_BASE = $(MODULES)/core-7.0.1
32
33# Set RULES here if you want to use build rules from elsewhere:
34#RULES = $(MODULES)/build-rules
35
36# These lines allow developers to override these RELEASE settings
37# without having to modify this file directly.
38-include $(TOP)/../RELEASE.local
39-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
40-include $(TOP)/configure/RELEASE.local
diff --git a/modules/database/configure/RULES b/modules/database/configure/RULES
41deleted file mode 1006440deleted file mode 100644
index 6d56e14..0000000
--- a/modules/database/configure/RULES
+++ /dev/null
@@ -1,6 +0,0 @@
1# RULES
2
3include $(CONFIG)/RULES
4
5# Library should be rebuilt because LIBOBJS may have changed.
6$(LIBNAME): ../Makefile
diff --git a/modules/database/configure/RULES.ioc b/modules/database/configure/RULES.ioc
7deleted file mode 1006440deleted file mode 100644
index 901987c..0000000
--- a/modules/database/configure/RULES.ioc
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES.ioc
2include $(CONFIG)/RULES.ioc
diff --git a/modules/database/configure/RULES_DIRS b/modules/database/configure/RULES_DIRS
3deleted file mode 1006440deleted file mode 100644
index 3ba269d..0000000
--- a/modules/database/configure/RULES_DIRS
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_DIRS
2include $(CONFIG)/RULES_DIRS
diff --git a/modules/database/configure/RULES_TOP b/modules/database/configure/RULES_TOP
3deleted file mode 1006440deleted file mode 100644
index 2b8cbc6..0000000
--- a/modules/database/configure/RULES_TOP
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_TOP
2include $(CONFIG)/RULES_TOP
diff --git a/modules/database/src/Makefile b/modules/database/src/Makefile
index dfd1d3b..0cc46fa 100644
--- a/modules/database/src/Makefile
+++ b/modules/database/src/Makefile
@@ -7,7 +7,7 @@
7# in the file LICENSE that is included with this distribution.7# in the file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13# PDB Tools13# PDB Tools
diff --git a/modules/database/src/ioc/Makefile b/modules/database/src/ioc/Makefile
index 3258728..9ff0040 100644
--- a/modules/database/src/ioc/Makefile
+++ b/modules/database/src/ioc/Makefile
@@ -6,12 +6,14 @@
6# EPICS BASE is distributed subject to a Software License Agreement found6# EPICS BASE is distributed subject to a Software License Agreement found
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
9TOP=../..9IOCDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
10TOP=../../../..
1011
11include $(TOP)/configure/CONFIG12include $(TOP)/configure/CONFIG
1213
13SRC = $(TOP)/src14USR_CPPFLAGS += -DUSE_TYPED_RSET
14IOCDIR = $(SRC)/ioc15
16SHRLIB_VERSION = 3.17.0
1517
16LIBRARY_IOC += dbCore18LIBRARY_IOC += dbCore
17dbCore_LIBS += ca Com19dbCore_LIBS += ca Com
diff --git a/modules/database/src/std/Makefile b/modules/database/src/std/Makefile
index 20a8658..2434bf0 100644
--- a/modules/database/src/std/Makefile
+++ b/modules/database/src/std/Makefile
@@ -6,11 +6,13 @@
6# EPICS BASE is distributed subject to a Software License Agreement found6# EPICS BASE is distributed subject to a Software License Agreement found
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99STDDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
10TOP = ../..10TOP = ../../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13STDDIR=$(TOP)/src/std13USR_CPPFLAGS += -DUSE_TYPED_RSET
14
15SHRLIB_VERSION = 3.17.0
1416
15LIBRARY_IOC += dbRecStd17LIBRARY_IOC += dbRecStd
16dbRecStd_LIBS = dbCore ca Com18dbRecStd_LIBS = dbCore ca Com
diff --git a/modules/database/src/template/Makefile b/modules/database/src/template/Makefile
index 6259b6f..8dfc6c6 100644
--- a/modules/database/src/template/Makefile
+++ b/modules/database/src/template/Makefile
@@ -1,4 +1,4 @@
1TOP=../..1TOP=../../../..
22
3include $(TOP)/configure/CONFIG3include $(TOP)/configure/CONFIG
44
diff --git a/modules/database/src/tools/Makefile b/modules/database/src/tools/Makefile
index e19c0c5..f54ab9c 100644
--- a/modules/database/src/tools/Makefile
+++ b/modules/database/src/tools/Makefile
@@ -4,7 +4,7 @@
4# EPICS BASE is distributed subject to a Software License Agreement found4# EPICS BASE is distributed subject to a Software License Agreement found
5# in file LICENSE that is included with this distribution.5# in file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
7TOP=../..7TOP=../../../..
88
9include $(TOP)/configure/CONFIG9include $(TOP)/configure/CONFIG
1010
@@ -27,8 +27,6 @@ PERL_MODULES += DBD/Variable.pm
27PERL_MODULES += EPICS/IOC.pm27PERL_MODULES += EPICS/IOC.pm
28HTMLS += EPICS/IOC.html28HTMLS += EPICS/IOC.html
2929
30PERL_SCRIPTS += databaseModuleDirs.pm
31
32PERL_SCRIPTS += makeIncludeDbd.pl30PERL_SCRIPTS += makeIncludeDbd.pl
3331
34PERL_SCRIPTS += dbdToMenuH.pl32PERL_SCRIPTS += dbdToMenuH.pl
diff --git a/modules/database/src/tools/dbExpand.pl b/modules/database/src/tools/dbExpand.pl
index 25cab26..6596e43 100644
--- a/modules/database/src/tools/dbExpand.pl
+++ b/modules/database/src/tools/dbExpand.pl
@@ -12,9 +12,7 @@
12use strict;12use strict;
1313
14use FindBin qw($Bin);14use FindBin qw($Bin);
15use lib ($Bin, "$Bin/../../lib/perl");15use lib ("$Bin/../../lib/perl");
16use databaseModuleDirs;
17no lib $Bin;
1816
19use DBD;17use DBD;
20use DBD::Parser;18use DBD::Parser;
diff --git a/modules/database/src/tools/dbdExpand.pl b/modules/database/src/tools/dbdExpand.pl
index a87ef47..74e81eb 100644
--- a/modules/database/src/tools/dbdExpand.pl
+++ b/modules/database/src/tools/dbdExpand.pl
@@ -10,9 +10,7 @@
10use strict;10use strict;
1111
12use FindBin qw($Bin);12use FindBin qw($Bin);
13use lib ($Bin, "$Bin/../../lib/perl");13use lib ("$Bin/../../lib/perl");
14use databaseModuleDirs;
15no lib $Bin;
1614
17use DBD;15use DBD;
18use DBD::Parser;16use DBD::Parser;
diff --git a/modules/database/src/tools/dbdReport.pl b/modules/database/src/tools/dbdReport.pl
index 0d4c854..3f2269d 100644
--- a/modules/database/src/tools/dbdReport.pl
+++ b/modules/database/src/tools/dbdReport.pl
@@ -8,9 +8,7 @@
8#*************************************************************************8#*************************************************************************
99
10use FindBin qw($Bin);10use FindBin qw($Bin);
11use lib ($Bin, "$Bin/../../lib/perl");11use lib ("$Bin/../../lib/perl");
12use databaseModuleDirs;
13no lib $Bin;
1412
15use DBD;13use DBD;
16use DBD::Parser;14use DBD::Parser;
diff --git a/modules/database/src/tools/dbdToHtml.pl b/modules/database/src/tools/dbdToHtml.pl
index e9711f7..66d46f9 100644
--- a/modules/database/src/tools/dbdToHtml.pl
+++ b/modules/database/src/tools/dbdToHtml.pl
@@ -10,9 +10,7 @@
10use strict;10use strict;
1111
12use FindBin qw($Bin);12use FindBin qw($Bin);
13use lib ($Bin, "$Bin/../../lib/perl");13use lib ("$Bin/../../lib/perl");
14use databaseModuleDirs;
15no lib $Bin;
1614
17use DBD;15use DBD;
18use DBD::Parser;16use DBD::Parser;
diff --git a/modules/database/src/tools/dbdToMenuH.pl b/modules/database/src/tools/dbdToMenuH.pl
index ac4345b..76aff7d 100644
--- a/modules/database/src/tools/dbdToMenuH.pl
+++ b/modules/database/src/tools/dbdToMenuH.pl
@@ -8,9 +8,7 @@
8#*************************************************************************8#*************************************************************************
99
10use FindBin qw($Bin);10use FindBin qw($Bin);
11use lib ($Bin, "$Bin/../../lib/perl");11use lib ("$Bin/../../lib/perl");
12use databaseModuleDirs;
13no lib $Bin;
1412
15use EPICS::Getopts;13use EPICS::Getopts;
16use File::Basename;14use File::Basename;
diff --git a/modules/database/src/tools/dbdToRecordtypeH.pl b/modules/database/src/tools/dbdToRecordtypeH.pl
index b1eb77d..891b5b5 100644
--- a/modules/database/src/tools/dbdToRecordtypeH.pl
+++ b/modules/database/src/tools/dbdToRecordtypeH.pl
@@ -8,9 +8,7 @@
8#*************************************************************************8#*************************************************************************
99
10use FindBin qw($Bin);10use FindBin qw($Bin);
11use lib ($Bin, "$Bin/../../lib/perl");11use lib ("$Bin/../../lib/perl");
12use databaseModuleDirs;
13no lib $Bin;
1412
15use EPICS::Getopts;13use EPICS::Getopts;
16use File::Basename;14use File::Basename;
diff --git a/modules/database/src/tools/registerRecordDeviceDriver.pl b/modules/database/src/tools/registerRecordDeviceDriver.pl
index 02bb9b7..acbcc51 100644
--- a/modules/database/src/tools/registerRecordDeviceDriver.pl
+++ b/modules/database/src/tools/registerRecordDeviceDriver.pl
@@ -12,9 +12,7 @@
12use strict;12use strict;
1313
14use FindBin qw($Bin);14use FindBin qw($Bin);
15use lib ($Bin, "$Bin/../../lib/perl");15use lib ("$Bin/../../lib/perl");
16use databaseModuleDirs;
17no lib $Bin;
1816
19use DBD;17use DBD;
20use DBD::Parser;18use DBD::Parser;
diff --git a/modules/database/test/Makefile b/modules/database/test/Makefile
index 0f2c642..b54d017 100644
--- a/modules/database/test/Makefile
+++ b/modules/database/test/Makefile
@@ -7,7 +7,7 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13DIRS += ioc/db13DIRS += ioc/db
diff --git a/modules/database/test/ioc/db/Makefile b/modules/database/test/ioc/db/Makefile
index e1f06cd..ee2ab76 100644
--- a/modules/database/test/ioc/db/Makefile
+++ b/modules/database/test/ioc/db/Makefile
@@ -6,12 +6,13 @@
6# EPICS BASE is distributed subject to a Software License Agreement found6# EPICS BASE is distributed subject to a Software License Agreement found
7# in the file LICENSE that is included with this distribution.7# in the file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
10TOP = ../../..10TOP = ../../../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13# Allow access to private headers in db/13# Allow access to private headers in db/
14USR_CPPFLAGS = -I $(TOP)/src/ioc/db14USR_CPPFLAGS += -I $(CURDIR)/../../../src/ioc/db
15USR_CPPFLAGS += -DUSE_TYPED_RSET
1516
16TESTLIBRARY = dbTestIoc17TESTLIBRARY = dbTestIoc
1718
diff --git a/modules/database/test/ioc/dbtemplate/Makefile b/modules/database/test/ioc/dbtemplate/Makefile
index 4442a4f..dbb13f3 100644
--- a/modules/database/test/ioc/dbtemplate/Makefile
+++ b/modules/database/test/ioc/dbtemplate/Makefile
@@ -5,7 +5,7 @@
5# in the file LICENSE that is included with this distribution.5# in the file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
77
8TOP = ../../..8TOP = ../../../../..
99
10include $(TOP)/configure/CONFIG10include $(TOP)/configure/CONFIG
1111
diff --git a/modules/database/test/std/filters/Makefile b/modules/database/test/std/filters/Makefile
index 718b8d5..c95e108 100644
--- a/modules/database/test/std/filters/Makefile
+++ b/modules/database/test/std/filters/Makefile
@@ -7,10 +7,12 @@
7# in the file LICENSE that is included with this distribution.7# in the file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ../../..10TOP = ../../../../..
1111
12include $(TOP)/configure/CONFIG12include $(TOP)/configure/CONFIG
1313
14USR_CPPFLAGS += -DUSE_TYPED_RSET
15
14TESTLIBRARY = Recs16TESTLIBRARY = Recs
1517
16Recs_SRCS += xRecord.c18Recs_SRCS += xRecord.c
diff --git a/modules/database/test/std/link/Makefile b/modules/database/test/std/link/Makefile
index 8540cdf..2563fd5 100644
--- a/modules/database/test/std/link/Makefile
+++ b/modules/database/test/std/link/Makefile
@@ -4,10 +4,12 @@
4# EPICS BASE is distributed subject to a Software License Agreement found4# EPICS BASE is distributed subject to a Software License Agreement found
5# in the file LICENSE that is included with this distribution.5# in the file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
7TOP=../../..7TOP=../../../../..
88
9include $(TOP)/configure/CONFIG9include $(TOP)/configure/CONFIG
1010
11USR_CPPFLAGS += -DUSE_TYPED_RSET
12
11TESTLIBRARY = Recs13TESTLIBRARY = Recs
1214
13Recs_SRCS += ioRecord.c15Recs_SRCS += ioRecord.c
diff --git a/modules/database/test/std/rec/Makefile b/modules/database/test/std/rec/Makefile
index 185c2c0..8720875 100644
--- a/modules/database/test/std/rec/Makefile
+++ b/modules/database/test/std/rec/Makefile
@@ -7,9 +7,11 @@
7# in the file LICENSE that is included with this distribution.7# in the file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ../../..10TOP = ../../../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13USR_CPPFLAGS += -DUSE_TYPED_RSET
14
13TESTLIBRARY = dbRecStdTest15TESTLIBRARY = dbRecStdTest
1416
15dbRecStdTest_SRCS += asTestLib.c17dbRecStdTest_SRCS += asTestLib.c
diff --git a/modules/database/test/tools/Makefile b/modules/database/test/tools/Makefile
index ac7f420..2dd045e 100644
--- a/modules/database/test/tools/Makefile
+++ b/modules/database/test/tools/Makefile
@@ -5,7 +5,7 @@
5# in the file LICENSE that is included with this distribution.5# in the file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
77
8TOP = ../..8TOP = ../../../..
9include $(TOP)/configure/CONFIG9include $(TOP)/configure/CONFIG
1010
1111
diff --git a/modules/libcom/.ci/travis-build.sh b/modules/libcom/.ci/travis-build.sh
12deleted file mode 10075512deleted file mode 100755
index 622979b..0000000
--- a/modules/libcom/.ci/travis-build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
1#!/bin/sh
2set -e -x
3
4# set RTEMS to eg. "4.9" or "4.10"
5# requires qemu, bison, flex, texinfo, install-info
6if [ -n "$RTEMS" ]
7then
8 # find local qemu-system-i386
9 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
10 echo -n "Using QEMU: "
11 type qemu-system-i386 || echo "Missing qemu"
12 EXTRA=RTEMS_QEMU_FIXUPS=YES
13fi
14
15make -j2 $EXTRA
16
17if [ "$TEST" != "NO" ]
18then
19 make -j2 tapfiles
20 make -s test-results
21fi
diff --git a/modules/libcom/.ci/travis-prepare.sh b/modules/libcom/.ci/travis-prepare.sh
22deleted file mode 1007550deleted file mode 100755
index 9a4d237..0000000
--- a/modules/libcom/.ci/travis-prepare.sh
+++ /dev/null
@@ -1,123 +0,0 @@
1#!/bin/sh
2set -e -x
3
4CURDIR="$PWD"
5
6QDIR="$HOME/.cache/qemu"
7
8if [ -n "$RTEMS" -a "$TEST" = "YES" ]
9then
10 git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu"
11 cd "$HOME/.build/qemu"
12
13 HEAD=`git log -n1 --pretty=format:%H`
14 echo "HEAD revision $HEAD"
15
16 [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"`
17 echo "Cached revision $BUILT"
18
19 if [ "$HEAD" != "$BUILT" ]
20 then
21 echo "Building QEMU"
22 git submodule --quiet update --init
23
24 install -d "$HOME/.build/qemu/build"
25 cd "$HOME/.build/qemu/build"
26
27 "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror
28 make -j2
29 make install
30
31 echo "$HEAD" > "$HOME/.cache/qemu/built"
32 fi
33fi
34
35cd "$CURDIR"
36
37cat << EOF > configure/RELEASE.local
38EPICS_BASE=$HOME/.source/epics-base
39EOF
40
41install -d "$HOME/.source"
42cd "$HOME/.source"
43
44git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base
45(cd epics-base && git log -n1 )
46
47EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch`
48
49# requires wine and g++-mingw-w64-i686
50if [ "$WINE" = "32" ]
51then
52 echo "Cross mingw32"
53 sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
54 cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
55CMPLR_PREFIX=i686-w64-mingw32-
56EOF
57 cat << EOF >> epics-base/configure/CONFIG_SITE
58CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
59EOF
60fi
61
62if [ "$STATIC" = "YES" ]
63then
64 echo "Build static libraries/executables"
65 cat << EOF >> epics-base/configure/CONFIG_SITE
66SHARED_LIBRARIES=NO
67STATIC_BUILD=YES
68EOF
69fi
70
71case "$CMPLR" in
72clang)
73 echo "Host compiler is clang"
74 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
75GNU = NO
76CMPLR_CLASS = clang
77CC = clang
78CCC = clang++
79EOF
80
81 # hack
82 sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon
83
84 clang --version
85 ;;
86*)
87 echo "Host compiler is default"
88 gcc --version
89 ;;
90esac
91
92cat <<EOF >> epics-base/configure/CONFIG_SITE
93USR_CPPFLAGS += $USR_CPPFLAGS
94USR_CFLAGS += $USR_CFLAGS
95USR_CXXFLAGS += $USR_CXXFLAGS
96EOF
97
98# set RTEMS to eg. "4.9" or "4.10"
99# requires qemu, bison, flex, texinfo, install-info
100if [ -n "$RTEMS" ]
101then
102 echo "Cross RTEMS${RTEMS} for pc386"
103 install -d /home/travis/.cache
104 curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \
105 | tar -C /home/travis/.cache -xj
106
107 sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS
108 cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS
109RTEMS_VERSION=$RTEMS
110RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386
111EOF
112 cat << EOF >> epics-base/configure/CONFIG_SITE
113CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386
114EOF
115
116 # find local qemu-system-i386
117 export PATH="$HOME/.cache/qemu/usr/bin:$PATH"
118 echo -n "Using QEMU: "
119 type qemu-system-i386 || echo "Missing qemu"
120 EXTRA=RTEMS_QEMU_FIXUPS=YES
121fi
122
123make -j2 -C epics-base $EXTRA
diff --git a/modules/libcom/.travis.yml b/modules/libcom/.travis.yml
124deleted file mode 1006440deleted file mode 100644
index 8b1e2ab..0000000
--- a/modules/libcom/.travis.yml
+++ /dev/null
@@ -1,26 +0,0 @@
1sudo: false
2dist: trusty
3language: c
4compiler:
5 - gcc
6addons:
7 apt:
8 packages:
9 - libreadline6-dev
10 - libncurses5-dev
11 - perl
12 - clang
13 - g++-mingw-w64-i686
14install:
15 - ./.ci/travis-prepare.sh
16script:
17 - ./.ci/travis-build.sh
18env:
19 - BRCORE=master
20 - CMPLR=clang
21 - USR_CXXFLAGS=-std=c++11
22 - CMPLR=clang USR_CXXFLAGS=-std=c++11
23 - WINE=32 TEST=NO STATIC=YES
24 - WINE=32 TEST=NO STATIC=NO
25 - RTEMS=4.10 TEST=NO
26 - RTEMS=4.9 TEST=NO
diff --git a/modules/libcom/Makefile b/modules/libcom/Makefile
index 442a6f7..5a03a43 100644
--- a/modules/libcom/Makefile
+++ b/modules/libcom/Makefile
@@ -7,11 +7,10 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = .10TOP = ../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13DIRS += configure src13DIRS += src
14src_DEPEND_DIRS = configure
1514
16DIRS += RTEMS15DIRS += RTEMS
17RTEMS_DEPEND_DIRS = src16RTEMS_DEPEND_DIRS = src
@@ -22,4 +21,4 @@ vxWorks_DEPEND_DIRS = src
22DIRS += test21DIRS += test
23test_DEPEND_DIRS = RTEMS vxWorks22test_DEPEND_DIRS = RTEMS vxWorks
2423
25include $(TOP)/configure/RULES_TOP24include $(TOP)/configure/RULES_DIRS
diff --git a/modules/libcom/RTEMS/Makefile b/modules/libcom/RTEMS/Makefile
index 311c250..b46889d 100644
--- a/modules/libcom/RTEMS/Makefile
+++ b/modules/libcom/RTEMS/Makefile
@@ -7,7 +7,7 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
12include $(TOP)/configure/CONFIG_LIBCOM_VERSION12include $(TOP)/configure/CONFIG_LIBCOM_VERSION
1313
diff --git a/modules/libcom/configure/CONFIG b/modules/libcom/configure/CONFIG
14deleted file mode 10064414deleted file mode 100644
index 774ed25..0000000
--- a/modules/libcom/configure/CONFIG
+++ /dev/null
@@ -1,44 +0,0 @@
1# CONFIG - Load build configuration data
2#
3# Do not make changes to this file!
4
5ifeq ($(strip $(EPICS_HOST_ARCH)),)
6 $(warning EPICS_HOST_ARCH is not set.)
7endif
8
9# Allow user to override where the build rules come from
10RULES = $(EPICS_BASE)
11
12# RELEASE files point to other application tops
13include $(TOP)/configure/RELEASE
14-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
15ifdef T_A
16-include $(TOP)/configure/RELEASE.Common.$(T_A)
17-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
18endif
19
20ifeq ($(strip $(RULES)),)
21 ifeq ($(strip $(EPICS_BASE)),)
22 $(warning Build error: EPICS_BASE not set after including RELEASE files.)
23 else
24 $(warning Build error: EPICS_BASE set but RULES variable empty.)
25 endif
26 $(error Makefiles loaded: $(MAKEFILE_LIST))
27 # Die before the include of $(CONFIG)/CONFIG below does
28endif
29
30BUILDING_LIBCOM = DEFINED
31
32CONFIG = $(RULES)/configure
33include $(CONFIG)/CONFIG
34
35# Override the Base definition:
36INSTALL_LOCATION = $(TOP)
37
38# CONFIG_SITE files contain other build configuration settings
39include $(TOP)/configure/CONFIG_SITE
40-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
41ifdef T_A
42 -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
43 -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
44endif
diff --git a/modules/libcom/configure/CONFIG_SITE b/modules/libcom/configure/CONFIG_SITE
45deleted file mode 1006440deleted file mode 100644
index d78c7f5..0000000
--- a/modules/libcom/configure/CONFIG_SITE
+++ /dev/null
@@ -1,42 +0,0 @@
1# CONFIG_SITE
2
3# Make any application-specific changes to the EPICS build
4# configuration variables in this file.
5#
6# Host/target specific settings can be specified in files named
7# CONFIG_SITE.$(EPICS_HOST_ARCH).Common
8# CONFIG_SITE.Common.$(T_A)
9# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
10
11# CHECK_RELEASE controls the consistency checking of the support
12# applications pointed to by the RELEASE* files.
13# Normally CHECK_RELEASE should be set to YES.
14# Set CHECK_RELEASE to NO to disable checking completely.
15# Set CHECK_RELEASE to WARN to perform consistency checking but
16# continue building even if conflicts are found.
17CHECK_RELEASE = YES
18
19# Set this when you only want to compile this application
20# for a subset of the cross-compiled target architectures
21# that Base is built for.
22#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32
23
24# To install files into a location other than $(TOP) define
25# INSTALL_LOCATION here.
26#INSTALL_LOCATION=</absolute/path/to/install/top>
27
28# Set this when the IOC and build host use different paths
29# to the install location. This may be needed to boot from
30# a Microsoft FTP server say, or on some NFS configurations.
31#IOCS_APPL_TOP = </IOC's/absolute/path/to/install/top>
32
33# For application debugging purposes, override the HOST_OPT and/
34# or CROSS_OPT settings from base/configure/CONFIG_SITE
35#HOST_OPT = NO
36#CROSS_OPT = NO
37
38# These allow developers to override the CONFIG_SITE variable
39# settings without having to modify the configure/CONFIG_SITE
40# file itself.
41-include $(TOP)/../CONFIG_SITE.local
42-include $(TOP)/configure/CONFIG_SITE.local
diff --git a/modules/libcom/configure/Makefile b/modules/libcom/configure/Makefile
43deleted file mode 1006440deleted file mode 100644
index 85a7b58..0000000
--- a/modules/libcom/configure/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
1#*************************************************************************
2# EPICS BASE is distributed subject to a Software License Agreement found
3# in file LICENSE that is included with this distribution.
4#*************************************************************************
5TOP = ..
6
7include $(TOP)/configure/CONFIG
8
9TARGETS = $(CONFIG_TARGETS)
10CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
11
12CFG += CONFIG_LIBCOM_MODULE
13CFG += CONFIG_LIBCOM_VERSION
14
15include $(TOP)/configure/RULES
diff --git a/modules/libcom/configure/RELEASE b/modules/libcom/configure/RELEASE
16deleted file mode 1006440deleted file mode 100644
index 819b441..0000000
--- a/modules/libcom/configure/RELEASE
+++ /dev/null
@@ -1,38 +0,0 @@
1# RELEASE - Location of external support modules
2#
3# IF YOU CHANGE ANY PATHS in this file or make API changes to
4# any modules it refers to, you should do a "make rebuild" in
5# this application's top level directory.
6#
7# The EPICS build process does not check dependencies against
8# any files from outside the application, so it is safest to
9# rebuild it completely if any modules it depends on change.
10#
11# Host- or target-specific settings can be given in files named
12# RELEASE.$(EPICS_HOST_ARCH).Common
13# RELEASE.Common.$(T_A)
14# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
15#
16# This file is parsed by both GNUmake and an EPICS Perl script,
17# so it may ONLY contain definititions of paths to other support
18# modules, variable definitions that are used in module paths,
19# and include statements that pull in other RELEASE files.
20# Variables may be used before their values have been set.
21# Build variables that are NOT used in paths should be set in
22# the CONFIG_SITE file.
23
24# Variables and paths to dependent modules:
25#MODULES = /path/to/modules
26#MYMODULE = $(MODULES)/my-module
27
28# If building the EPICS modules individually, set these:
29#EPICS_BASE = $(MODULES)/core-7.0.1
30
31# Set RULES here if you want to use build rules from elsewhere:
32#RULES = $(MODULES)/build-rules
33
34# These lines allow developers to override these RELEASE settings
35# without having to modify this file directly.
36-include $(TOP)/../RELEASE.local
37-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
38-include $(TOP)/configure/RELEASE.local
diff --git a/modules/libcom/configure/RULES b/modules/libcom/configure/RULES
39deleted file mode 1006440deleted file mode 100644
index 6d56e14..0000000
--- a/modules/libcom/configure/RULES
+++ /dev/null
@@ -1,6 +0,0 @@
1# RULES
2
3include $(CONFIG)/RULES
4
5# Library should be rebuilt because LIBOBJS may have changed.
6$(LIBNAME): ../Makefile
diff --git a/modules/libcom/configure/RULES_DIRS b/modules/libcom/configure/RULES_DIRS
7deleted file mode 1006440deleted file mode 100644
index 3ba269d..0000000
--- a/modules/libcom/configure/RULES_DIRS
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_DIRS
2include $(CONFIG)/RULES_DIRS
diff --git a/modules/libcom/configure/RULES_TOP b/modules/libcom/configure/RULES_TOP
3deleted file mode 1006440deleted file mode 100644
index 2b8cbc6..0000000
--- a/modules/libcom/configure/RULES_TOP
+++ /dev/null
@@ -1,2 +0,0 @@
1#RULES_TOP
2include $(CONFIG)/RULES_TOP
diff --git a/modules/libcom/src/Makefile b/modules/libcom/src/Makefile
index d61b268..4a1c61e 100644
--- a/modules/libcom/src/Makefile
+++ b/modules/libcom/src/Makefile
@@ -6,15 +6,13 @@
6# EPICS BASE is distributed subject to a Software License Agreement found6# EPICS BASE is distributed subject to a Software License Agreement found
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99LIBCOM := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13# Uncomment this to remove the (benign) valgrind helper stubs13# Uncomment this to remove the (benign) valgrind helper stubs
14#USR_CFLAGS += -DNVALGRIND14#USR_CFLAGS += -DNVALGRIND
1515
16LIBCOM = $(TOP)/src
17
18INC += valgrind/valgrind.h16INC += valgrind/valgrind.h
1917
20INC += libComVersion.h18INC += libComVersion.h
diff --git a/modules/libcom/src/env/Makefile b/modules/libcom/src/env/Makefile
index 804426b..94322a2 100644
--- a/modules/libcom/src/env/Makefile
+++ b/modules/libcom/src/env/Makefile
@@ -12,7 +12,6 @@ SRC_DIRS += $(LIBCOM)/env
12vpath %.pl $(USR_VPATH) $(SRC_DIRS)12vpath %.pl $(USR_VPATH) $(SRC_DIRS)
1313
14PERL_SCRIPTS += bldEnvData.pl14PERL_SCRIPTS += bldEnvData.pl
15PERL_SCRIPTS += libcomModuleDirs.pm
1615
17INC += envDefs.h16INC += envDefs.h
1817
diff --git a/modules/libcom/src/env/RULES b/modules/libcom/src/env/RULES
index 02df6aa..5ef766d 100644
--- a/modules/libcom/src/env/RULES
+++ b/modules/libcom/src/env/RULES
@@ -8,7 +8,7 @@
8# This is a Makefile fragment, see src/libCom/Makefile.8# This is a Makefile fragment, see src/libCom/Makefile.
99
10envData.c: $(LIBCOM)/env/envDefs.h \10envData.c: $(LIBCOM)/env/envDefs.h \
11 $(INSTALL_HOST_BIN)/bldEnvData.pl $(INSTALL_HOST_BIN)/libcomModuleDirs.pm \11 $(INSTALL_HOST_BIN)/bldEnvData.pl \
12 $(CONFIG)/CONFIG_ENV $(CONFIG)/CONFIG_SITE_ENV \12 $(CONFIG)/CONFIG_ENV $(CONFIG)/CONFIG_SITE_ENV \
13 $(wildcard $(CONFIG)/os/CONFIG_SITE_ENV.$(T_A))13 $(wildcard $(CONFIG)/os/CONFIG_SITE_ENV.$(T_A))
14 $(PERL) $(INSTALL_HOST_BIN)/bldEnvData.pl $(QUIET_FLAG) -t $(T_A) \14 $(PERL) $(INSTALL_HOST_BIN)/bldEnvData.pl $(QUIET_FLAG) -t $(T_A) \
diff --git a/modules/libcom/src/env/bldEnvData.pl b/modules/libcom/src/env/bldEnvData.pl
index e3c21b7..693be65 100644
--- a/modules/libcom/src/env/bldEnvData.pl
+++ b/modules/libcom/src/env/bldEnvData.pl
@@ -14,9 +14,7 @@
14use strict;14use strict;
1515
16use FindBin qw($Bin);16use FindBin qw($Bin);
17use lib ($Bin, "$Bin/../../lib/perl");17use lib ("$Bin/../../lib/perl");
18use libcomModuleDirs;
19no lib $Bin;
2018
21use Getopt::Std;19use Getopt::Std;
22use File::Basename;20use File::Basename;
diff --git a/modules/libcom/test/Makefile b/modules/libcom/test/Makefile
index c8680e3..e90c6bc 100755
--- a/modules/libcom/test/Makefile
+++ b/modules/libcom/test/Makefile
@@ -7,7 +7,7 @@
7# in file LICENSE that is included with this distribution.7# in file LICENSE that is included with this distribution.
8#*************************************************************************8#*************************************************************************
99
10TOP = ..10TOP = ../../..
11include $(TOP)/configure/CONFIG11include $(TOP)/configure/CONFIG
1212
13PROD_LIBS += Com13PROD_LIBS += Com
diff --git a/modules/libcom/vxWorks/Makefile b/modules/libcom/vxWorks/Makefile
index e2c0b5d..3eced3b 100644
--- a/modules/libcom/vxWorks/Makefile
+++ b/modules/libcom/vxWorks/Makefile
@@ -5,7 +5,7 @@
5# in file LICENSE that is included with this distribution.5# in file LICENSE that is included with this distribution.
6#*************************************************************************6#*************************************************************************
77
8TOP = ..8TOP = ../../..
9include $(TOP)/configure/CONFIG9include $(TOP)/configure/CONFIG
1010
11# Install Boost smart_ptr headers needed by VxWorks 6.x11# Install Boost smart_ptr headers needed by VxWorks 6.x
diff --git a/src/template/base/makeBaseApp.pl b/src/template/base/makeBaseApp.pl
index d6da8ad..0421f00 100644
--- a/src/template/base/makeBaseApp.pl
+++ b/src/template/base/makeBaseApp.pl
@@ -3,7 +3,7 @@
3# Authors: Ralph Lange, Marty Kraimer, Andrew Johnson and Janet Anderson3# Authors: Ralph Lange, Marty Kraimer, Andrew Johnson and Janet Anderson
44
5use FindBin qw($Bin);5use FindBin qw($Bin);
6use lib ("$Bin/../../lib/perl", $Bin);6use lib ("$Bin/../../lib/perl");
77
8use Cwd;8use Cwd;
9use Getopt::Std;9use Getopt::Std;
diff --git a/src/tools/convertRelease.pl b/src/tools/convertRelease.pl
index a5a1a77..2533784 100644
--- a/src/tools/convertRelease.pl
+++ b/src/tools/convertRelease.pl
@@ -19,7 +19,7 @@ use Getopt::Std;
19$Getopt::Std::STANDARD_HELP_VERSION = 1;19$Getopt::Std::STANDARD_HELP_VERSION = 1;
2020
21use FindBin qw($Bin);21use FindBin qw($Bin);
22use lib ("$Bin/../../lib/perl", $Bin);22use lib ("$Bin/../../lib/perl");
2323
24use EPICS::Path;24use EPICS::Path;
25use EPICS::Release;25use EPICS::Release;
diff --git a/src/tools/expandVars.pl b/src/tools/expandVars.pl
index 01e65fb..855aca3 100644
--- a/src/tools/expandVars.pl
+++ b/src/tools/expandVars.pl
@@ -10,7 +10,7 @@
10use strict;10use strict;
1111
12use FindBin qw($Bin);12use FindBin qw($Bin);
13use lib ("$Bin/../../lib/perl", $Bin);13use lib ("$Bin/../../lib/perl");
1414
15use EPICS::Getopts;15use EPICS::Getopts;
16use EPICS::Path;16use EPICS::Path;
diff --git a/src/tools/fullPathName.pl b/src/tools/fullPathName.pl
index c8ac49a..20ef6d2 100644
--- a/src/tools/fullPathName.pl
+++ b/src/tools/fullPathName.pl
@@ -17,7 +17,7 @@ use Getopt::Std;
17$Getopt::Std::STANDARD_HELP_VERSION = 1;17$Getopt::Std::STANDARD_HELP_VERSION = 1;
1818
19use FindBin qw($Bin);19use FindBin qw($Bin);
20use lib ("$Bin/../../lib/perl", $Bin);20use lib ("$Bin/../../lib/perl");
2121
22use EPICS::Path;22use EPICS::Path;
2323

Subscribers

People subscribed via source and target branches