From 49b323b93c4aba4dbdc5d49094eaea56db876b7a Mon Sep 17 00:00:00 2001 From: Michael Davidsaver Date: Mon, 5 Nov 2018 15:57:55 -0800 Subject: [PATCH] avoided embedded TOP for non sub-modules --- .../configure => configure}/CONFIG_CA_MODULE | 0 .../configure => configure}/CONFIG_CA_VERSION | 0 .../CONFIG_DATABASE_MODULE | 0 .../CONFIG_DATABASE_VERSION | 0 .../CONFIG_LIBCOM_MODULE | 0 .../CONFIG_LIBCOM_VERSION | 0 configure/Makefile | 9 ++ modules/Makefile | 8 +- modules/ca/.ci/travis-build.sh | 21 --- modules/ca/.ci/travis-prepare.sh | 132 ----------------- modules/ca/.travis.yml | 26 ---- modules/ca/Makefile | 6 +- modules/ca/configure/CONFIG | 28 ---- modules/ca/configure/CONFIG_SITE | 42 ------ modules/ca/configure/Makefile | 15 -- modules/ca/configure/RELEASE | 39 ----- modules/ca/configure/RULES | 6 - modules/ca/configure/RULES_DIRS | 2 - modules/ca/configure/RULES_TOP | 2 - modules/ca/src/Makefile | 2 +- modules/ca/src/client/Makefile | 6 +- modules/ca/src/perl/Makefile | 2 +- modules/ca/src/template/Makefile | 2 +- modules/ca/src/tools/Makefile | 2 +- modules/database/.ci/travis-build.sh | 21 --- modules/database/.ci/travis-prepare.sh | 133 ------------------ modules/database/.travis.yml | 26 ---- modules/database/Makefile | 5 +- modules/database/configure/CONFIG | 36 ----- modules/database/configure/CONFIG_SITE | 42 ------ modules/database/configure/Makefile | 15 -- modules/database/configure/RELEASE | 40 ------ modules/database/configure/RULES | 6 - modules/database/configure/RULES.ioc | 2 - modules/database/configure/RULES_DIRS | 2 - modules/database/configure/RULES_TOP | 2 - modules/database/src/Makefile | 2 +- modules/database/src/ioc/Makefile | 8 +- modules/database/src/std/Makefile | 8 +- modules/database/src/template/Makefile | 2 +- modules/database/src/tools/Makefile | 2 +- modules/database/test/Makefile | 2 +- modules/database/test/ioc/db/Makefile | 7 +- modules/database/test/ioc/dbtemplate/Makefile | 2 +- modules/database/test/std/filters/Makefile | 4 +- modules/database/test/std/link/Makefile | 2 + modules/database/test/std/rec/Makefile | 4 +- modules/database/test/tools/Makefile | 2 +- modules/libcom/.ci/travis-build.sh | 21 --- modules/libcom/.ci/travis-prepare.sh | 123 ---------------- modules/libcom/.travis.yml | 26 ---- modules/libcom/Makefile | 7 +- modules/libcom/RTEMS/Makefile | 2 +- modules/libcom/configure/CONFIG | 44 ------ modules/libcom/configure/CONFIG_SITE | 42 ------ modules/libcom/configure/Makefile | 15 -- modules/libcom/configure/RELEASE | 38 ----- modules/libcom/configure/RULES | 6 - modules/libcom/configure/RULES_DIRS | 2 - modules/libcom/configure/RULES_TOP | 2 - modules/libcom/src/Makefile | 6 +- modules/libcom/test/Makefile | 2 +- modules/libcom/vxWorks/Makefile | 2 +- 63 files changed, 60 insertions(+), 1003 deletions(-) rename {modules/ca/configure => configure}/CONFIG_CA_MODULE (100%) rename {modules/ca/configure => configure}/CONFIG_CA_VERSION (100%) rename {modules/database/configure => configure}/CONFIG_DATABASE_MODULE (100%) rename {modules/database/configure => configure}/CONFIG_DATABASE_VERSION (100%) rename {modules/libcom/configure => configure}/CONFIG_LIBCOM_MODULE (100%) rename {modules/libcom/configure => configure}/CONFIG_LIBCOM_VERSION (100%) delete mode 100755 modules/ca/.ci/travis-build.sh delete mode 100755 modules/ca/.ci/travis-prepare.sh delete mode 100644 modules/ca/.travis.yml delete mode 100644 modules/ca/configure/CONFIG delete mode 100644 modules/ca/configure/CONFIG_SITE delete mode 100644 modules/ca/configure/Makefile delete mode 100644 modules/ca/configure/RELEASE delete mode 100644 modules/ca/configure/RULES delete mode 100644 modules/ca/configure/RULES_DIRS delete mode 100644 modules/ca/configure/RULES_TOP delete mode 100755 modules/database/.ci/travis-build.sh delete mode 100755 modules/database/.ci/travis-prepare.sh delete mode 100644 modules/database/.travis.yml delete mode 100644 modules/database/configure/CONFIG delete mode 100644 modules/database/configure/CONFIG_SITE delete mode 100644 modules/database/configure/Makefile delete mode 100644 modules/database/configure/RELEASE delete mode 100644 modules/database/configure/RULES delete mode 100644 modules/database/configure/RULES.ioc delete mode 100644 modules/database/configure/RULES_DIRS delete mode 100644 modules/database/configure/RULES_TOP delete mode 100755 modules/libcom/.ci/travis-build.sh delete mode 100755 modules/libcom/.ci/travis-prepare.sh delete mode 100644 modules/libcom/.travis.yml delete mode 100644 modules/libcom/configure/CONFIG delete mode 100644 modules/libcom/configure/CONFIG_SITE delete mode 100644 modules/libcom/configure/Makefile delete mode 100644 modules/libcom/configure/RELEASE delete mode 100644 modules/libcom/configure/RULES delete mode 100644 modules/libcom/configure/RULES_DIRS delete mode 100644 modules/libcom/configure/RULES_TOP diff --git a/modules/ca/configure/CONFIG_CA_MODULE b/configure/CONFIG_CA_MODULE similarity index 100% rename from modules/ca/configure/CONFIG_CA_MODULE rename to configure/CONFIG_CA_MODULE diff --git a/modules/ca/configure/CONFIG_CA_VERSION b/configure/CONFIG_CA_VERSION similarity index 100% rename from modules/ca/configure/CONFIG_CA_VERSION rename to configure/CONFIG_CA_VERSION diff --git a/modules/database/configure/CONFIG_DATABASE_MODULE b/configure/CONFIG_DATABASE_MODULE similarity index 100% rename from modules/database/configure/CONFIG_DATABASE_MODULE rename to configure/CONFIG_DATABASE_MODULE diff --git a/modules/database/configure/CONFIG_DATABASE_VERSION b/configure/CONFIG_DATABASE_VERSION similarity index 100% rename from modules/database/configure/CONFIG_DATABASE_VERSION rename to configure/CONFIG_DATABASE_VERSION diff --git a/modules/libcom/configure/CONFIG_LIBCOM_MODULE b/configure/CONFIG_LIBCOM_MODULE similarity index 100% rename from modules/libcom/configure/CONFIG_LIBCOM_MODULE rename to configure/CONFIG_LIBCOM_MODULE diff --git a/modules/libcom/configure/CONFIG_LIBCOM_VERSION b/configure/CONFIG_LIBCOM_VERSION similarity index 100% rename from modules/libcom/configure/CONFIG_LIBCOM_VERSION rename to configure/CONFIG_LIBCOM_VERSION diff --git a/configure/Makefile b/configure/Makefile index 377879766..f48278dd3 100644 --- a/configure/Makefile +++ b/configure/Makefile @@ -20,5 +20,14 @@ CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*)) CONFIGS += $(subst ../,,$(wildcard ../RELEASE*)) CONFIGS += $(subst ../,,$(wildcard ../RULES*)) +CFG += CONFIG_LIBCOM_MODULE +CFG += CONFIG_LIBCOM_VERSION + +CFG += CONFIG_CA_MODULE +CFG += CONFIG_CA_VERSION + +CFG += CONFIG_DATABASE_MODULE +CFG += CONFIG_DATABASE_VERSION + include $(TOP)/configure/RULES diff --git a/modules/Makefile b/modules/Makefile index 214e914f1..e1ce468c4 100644 --- a/modules/Makefile +++ b/modules/Makefile @@ -6,15 +6,15 @@ TOP = .. include $(TOP)/configure/CONFIG -# Submodules for bundle build -SUBMODULES += libcom +DIRS += libcom -SUBMODULES += ca +DIRS += ca ca_DEPEND_DIRS = libcom -SUBMODULES += database +DIRS += database database_DEPEND_DIRS = ca +# Submodules for bundle build SUBMODULES += pvData pvData_DEPEND_DIRS = libcom diff --git a/modules/ca/.ci/travis-build.sh b/modules/ca/.ci/travis-build.sh deleted file mode 100755 index 622979b9d..000000000 --- a/modules/ca/.ci/travis-build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -set -e -x - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 $EXTRA - -if [ "$TEST" != "NO" ] -then - make -j2 tapfiles - make -s test-results -fi diff --git a/modules/ca/.ci/travis-prepare.sh b/modules/ca/.ci/travis-prepare.sh deleted file mode 100755 index 85dc8d7ce..000000000 --- a/modules/ca/.ci/travis-prepare.sh +++ /dev/null @@ -1,132 +0,0 @@ -#!/bin/sh -set -e -x - -CURDIR="$PWD" - -QDIR="$HOME/.cache/qemu" - -if [ -n "$RTEMS" -a "$TEST" = "YES" ] -then - git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu" - cd "$HOME/.build/qemu" - - HEAD=`git log -n1 --pretty=format:%H` - echo "HEAD revision $HEAD" - - [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"` - echo "Cached revision $BUILT" - - if [ "$HEAD" != "$BUILT" ] - then - echo "Building QEMU" - git submodule --quiet update --init - - install -d "$HOME/.build/qemu/build" - cd "$HOME/.build/qemu/build" - - "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror - make -j2 - make install - - echo "$HEAD" > "$HOME/.cache/qemu/built" - fi -fi - -cd "$CURDIR" - -cat << EOF > configure/RELEASE.local -EPICS_BASE=$HOME/.source/epics-base -EOF - -install -d "$HOME/.source" -cd "$HOME/.source" - -add_base_module() { - MODULE=$1 - BRANCH=$2 - ( cd epics-base/modules && \ - git clone --quiet --depth 5 --branch "$MODULE"/"$BRANCH" https://github.com/${REPOBASE:-epics-base}/epics-base.git "$MODULE" && \ - cd "$MODULE" && git log -n1 ) -} - -git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base -( cd epics-base && git log -n1 ) -add_base_module libcom "${BRLIBCOM:-master}" - -EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch` - -# requires wine and g++-mingw-w64-i686 -if [ "$WINE" = "32" ] -then - echo "Cross mingw32" - sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw - cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw -CMPLR_PREFIX=i686-w64-mingw32- -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw -EOF -fi - -if [ "$STATIC" = "YES" ] -then - echo "Build static libraries/executables" - cat << EOF >> epics-base/configure/CONFIG_SITE -SHARED_LIBRARIES=NO -STATIC_BUILD=YES -EOF -fi - -case "$CMPLR" in -clang) - echo "Host compiler is clang" - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH -GNU = NO -CMPLR_CLASS = clang -CC = clang -CCC = clang++ -EOF - - # hack - sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon - - clang --version - ;; -*) - echo "Host compiler is default" - gcc --version - ;; -esac - -cat <> epics-base/configure/CONFIG_SITE -USR_CPPFLAGS += $USR_CPPFLAGS -USR_CFLAGS += $USR_CFLAGS -USR_CXXFLAGS += $USR_CXXFLAGS -EOF - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - echo "Cross RTEMS${RTEMS} for pc386" - install -d /home/travis/.cache - curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \ - | tar -C /home/travis/.cache -xj - - sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS -RTEMS_VERSION=$RTEMS -RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386 -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386 -EOF - - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 -C epics-base $EXTRA diff --git a/modules/ca/.travis.yml b/modules/ca/.travis.yml deleted file mode 100644 index 5a99b886a..000000000 --- a/modules/ca/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -sudo: false -dist: trusty -language: c -compiler: - - gcc -addons: - apt: - packages: - - libreadline6-dev - - libncurses5-dev - - perl - - clang - - g++-mingw-w64-i686 -install: - - ./.ci/travis-prepare.sh -script: - - ./.ci/travis-build.sh -env: - - BRCORE=master BRLIBCOM=master TEST=NO - - CMPLR=clang TEST=NO - - USR_CXXFLAGS=-std=c++11 TEST=NO - - CMPLR=clang USR_CXXFLAGS=-std=c++11 TEST=NO - - WINE=32 TEST=NO STATIC=YES - - WINE=32 TEST=NO STATIC=NO - - RTEMS=4.10 TEST=NO - - RTEMS=4.9 TEST=NO diff --git a/modules/ca/Makefile b/modules/ca/Makefile index 13feff6c2..eeb147b07 100644 --- a/modules/ca/Makefile +++ b/modules/ca/Makefile @@ -7,11 +7,9 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = . +TOP = ../.. include $(TOP)/configure/CONFIG -DIRS += configure src - -src_DEPEND_DIRS = configure +DIRS += src include $(TOP)/configure/RULES_TOP diff --git a/modules/ca/configure/CONFIG b/modules/ca/configure/CONFIG deleted file mode 100644 index 331fd7024..000000000 --- a/modules/ca/configure/CONFIG +++ /dev/null @@ -1,28 +0,0 @@ -# CONFIG - Load build configuration data -# -# Do not make changes to this file! - -# Allow user to override where the build rules come from -RULES = $(EPICS_BASE) - -# RELEASE files point to other application tops -include $(TOP)/configure/RELEASE --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common -ifdef T_A --include $(TOP)/configure/RELEASE.Common.$(T_A) --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A) -endif - -CONFIG = $(RULES)/configure -include $(CONFIG)/CONFIG - -# Override the Base definition: -INSTALL_LOCATION = $(TOP) - -# CONFIG_SITE files contain other build configuration settings -include $(TOP)/configure/CONFIG_SITE --include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common -ifdef T_A - -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A) - -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) -endif diff --git a/modules/ca/configure/CONFIG_SITE b/modules/ca/configure/CONFIG_SITE deleted file mode 100644 index d78c7f514..000000000 --- a/modules/ca/configure/CONFIG_SITE +++ /dev/null @@ -1,42 +0,0 @@ -# CONFIG_SITE - -# Make any application-specific changes to the EPICS build -# configuration variables in this file. -# -# Host/target specific settings can be specified in files named -# CONFIG_SITE.$(EPICS_HOST_ARCH).Common -# CONFIG_SITE.Common.$(T_A) -# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) - -# CHECK_RELEASE controls the consistency checking of the support -# applications pointed to by the RELEASE* files. -# Normally CHECK_RELEASE should be set to YES. -# Set CHECK_RELEASE to NO to disable checking completely. -# Set CHECK_RELEASE to WARN to perform consistency checking but -# continue building even if conflicts are found. -CHECK_RELEASE = YES - -# Set this when you only want to compile this application -# for a subset of the cross-compiled target architectures -# that Base is built for. -#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32 - -# To install files into a location other than $(TOP) define -# INSTALL_LOCATION here. -#INSTALL_LOCATION= - -# Set this when the IOC and build host use different paths -# to the install location. This may be needed to boot from -# a Microsoft FTP server say, or on some NFS configurations. -#IOCS_APPL_TOP = - -# For application debugging purposes, override the HOST_OPT and/ -# or CROSS_OPT settings from base/configure/CONFIG_SITE -#HOST_OPT = NO -#CROSS_OPT = NO - -# These allow developers to override the CONFIG_SITE variable -# settings without having to modify the configure/CONFIG_SITE -# file itself. --include $(TOP)/../CONFIG_SITE.local --include $(TOP)/configure/CONFIG_SITE.local diff --git a/modules/ca/configure/Makefile b/modules/ca/configure/Makefile deleted file mode 100644 index e2f373893..000000000 --- a/modules/ca/configure/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -#************************************************************************* -# EPICS BASE is distributed subject to a Software License Agreement found -# in file LICENSE that is included with this distribution. -#************************************************************************* -TOP = .. - -include $(TOP)/configure/CONFIG - -TARGETS = $(CONFIG_TARGETS) -CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) - -CFG += CONFIG_CA_MODULE -CFG += CONFIG_CA_VERSION - -include $(TOP)/configure/RULES diff --git a/modules/ca/configure/RELEASE b/modules/ca/configure/RELEASE deleted file mode 100644 index a2d9f554a..000000000 --- a/modules/ca/configure/RELEASE +++ /dev/null @@ -1,39 +0,0 @@ -# RELEASE - Location of external support modules -# -# IF YOU CHANGE ANY PATHS in this file or make API changes to -# any modules it refers to, you should do a "make rebuild" in -# this application's top level directory. -# -# The EPICS build process does not check dependencies against -# any files from outside the application, so it is safest to -# rebuild it completely if any modules it depends on change. -# -# Host- or target-specific settings can be given in files named -# RELEASE.$(EPICS_HOST_ARCH).Common -# RELEASE.Common.$(T_A) -# RELEASE.$(EPICS_HOST_ARCH).$(T_A) -# -# This file is parsed by both GNUmake and an EPICS Perl script, -# so it may ONLY contain definititions of paths to other support -# modules, variable definitions that are used in module paths, -# and include statements that pull in other RELEASE files. -# Variables may be used before their values have been set. -# Build variables that are NOT used in paths should be set in -# the CONFIG_SITE file. - -# Variables and paths to dependent modules: -#MODULES = /path/to/modules -#MYMODULE = $(MODULES)/my-module - -# If building the EPICS modules individually, set these: -#EPICS_LIBCOM = $(MODULES)/libcom-3.17.0 -#EPICS_BASE = $(MODULES)/core-7.0.1 - -# Set RULES here if you want to use build rules from elsewhere: -#RULES = $(MODULES)/build-rules - -# These lines allow developers to override these RELEASE settings -# without having to modify this file directly. --include $(TOP)/../RELEASE.local --include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local --include $(TOP)/configure/RELEASE.local diff --git a/modules/ca/configure/RULES b/modules/ca/configure/RULES deleted file mode 100644 index 6d56e14e8..000000000 --- a/modules/ca/configure/RULES +++ /dev/null @@ -1,6 +0,0 @@ -# RULES - -include $(CONFIG)/RULES - -# Library should be rebuilt because LIBOBJS may have changed. -$(LIBNAME): ../Makefile diff --git a/modules/ca/configure/RULES_DIRS b/modules/ca/configure/RULES_DIRS deleted file mode 100644 index 3ba269dcc..000000000 --- a/modules/ca/configure/RULES_DIRS +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_DIRS -include $(CONFIG)/RULES_DIRS diff --git a/modules/ca/configure/RULES_TOP b/modules/ca/configure/RULES_TOP deleted file mode 100644 index 2b8cbc6da..000000000 --- a/modules/ca/configure/RULES_TOP +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_TOP -include $(CONFIG)/RULES_TOP diff --git a/modules/ca/src/Makefile b/modules/ca/src/Makefile index 650b3550f..335cec67e 100644 --- a/modules/ca/src/Makefile +++ b/modules/ca/src/Makefile @@ -7,7 +7,7 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG # Channel Access Client diff --git a/modules/ca/src/client/Makefile b/modules/ca/src/client/Makefile index c5fc5c49d..cae6ee065 100644 --- a/modules/ca/src/client/Makefile +++ b/modules/ca/src/client/Makefile @@ -6,8 +6,8 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* - -TOP = ../.. +CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .) +TOP = ../../../.. include $(TOP)/configure/CONFIG @@ -109,7 +109,7 @@ EXPAND += S99caRepeater@ EXPAND += caRepeater.service@ EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN)) -SRC_DIRS += $(TOP)/src/client/test +SRC_DIRS += $(CURDIR)/test PROD_HOST += ca_test ca_test_SRCS = ca_test_main.c ca_test.c ca_test_LIBS = ca Com diff --git a/modules/ca/src/perl/Makefile b/modules/ca/src/perl/Makefile index 5b2bd5920..65f42ee3a 100644 --- a/modules/ca/src/perl/Makefile +++ b/modules/ca/src/perl/Makefile @@ -5,7 +5,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../.. +TOP = ../../../.. include $(TOP)/configure/CONFIG # Special settings for Darwin: diff --git a/modules/ca/src/template/Makefile b/modules/ca/src/template/Makefile index 913d92bf4..8683dfd3c 100644 --- a/modules/ca/src/template/Makefile +++ b/modules/ca/src/template/Makefile @@ -1,4 +1,4 @@ -TOP=../.. +TOP=../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/ca/src/tools/Makefile b/modules/ca/src/tools/Makefile index 7ebcc021b..c56e21eca 100644 --- a/modules/ca/src/tools/Makefile +++ b/modules/ca/src/tools/Makefile @@ -9,7 +9,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../.. +TOP = ../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/database/.ci/travis-build.sh b/modules/database/.ci/travis-build.sh deleted file mode 100755 index 622979b9d..000000000 --- a/modules/database/.ci/travis-build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -set -e -x - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 $EXTRA - -if [ "$TEST" != "NO" ] -then - make -j2 tapfiles - make -s test-results -fi diff --git a/modules/database/.ci/travis-prepare.sh b/modules/database/.ci/travis-prepare.sh deleted file mode 100755 index ce2c18b5d..000000000 --- a/modules/database/.ci/travis-prepare.sh +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/sh -set -e -x - -CURDIR="$PWD" - -QDIR="$HOME/.cache/qemu" - -if [ -n "$RTEMS" -a "$TEST" = "YES" ] -then - git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu" - cd "$HOME/.build/qemu" - - HEAD=`git log -n1 --pretty=format:%H` - echo "HEAD revision $HEAD" - - [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"` - echo "Cached revision $BUILT" - - if [ "$HEAD" != "$BUILT" ] - then - echo "Building QEMU" - git submodule --quiet update --init - - install -d "$HOME/.build/qemu/build" - cd "$HOME/.build/qemu/build" - - "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror - make -j2 - make install - - echo "$HEAD" > "$HOME/.cache/qemu/built" - fi -fi - -cd "$CURDIR" - -cat << EOF > configure/RELEASE.local -EPICS_BASE=$HOME/.source/epics-base -EOF - -install -d "$HOME/.source" -cd "$HOME/.source" - -add_base_module() { - MODULE=$1 - BRANCH=$2 - ( cd epics-base/modules && \ - git clone --quiet --depth 5 --branch "$MODULE"/"$BRANCH" https://github.com/${REPOBASE:-epics-base}/epics-base.git "$MODULE" && \ - cd "$MODULE" && git log -n1 ) -} - -git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base -( cd epics-base && git log -n1 ) -add_base_module libcom "${BRLIBCOM:-master}" -add_base_module ca "${BRCA:-master}" - -EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch` - -# requires wine and g++-mingw-w64-i686 -if [ "$WINE" = "32" ] -then - echo "Cross mingw32" - sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw - cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw -CMPLR_PREFIX=i686-w64-mingw32- -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw -EOF -fi - -if [ "$STATIC" = "YES" ] -then - echo "Build static libraries/executables" - cat << EOF >> epics-base/configure/CONFIG_SITE -SHARED_LIBRARIES=NO -STATIC_BUILD=YES -EOF -fi - -case "$CMPLR" in -clang) - echo "Host compiler is clang" - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH -GNU = NO -CMPLR_CLASS = clang -CC = clang -CCC = clang++ -EOF - - # hack - sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon - - clang --version - ;; -*) - echo "Host compiler is default" - gcc --version - ;; -esac - -cat <> epics-base/configure/CONFIG_SITE -USR_CPPFLAGS += $USR_CPPFLAGS -USR_CFLAGS += $USR_CFLAGS -USR_CXXFLAGS += $USR_CXXFLAGS -EOF - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - echo "Cross RTEMS${RTEMS} for pc386" - install -d /home/travis/.cache - curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \ - | tar -C /home/travis/.cache -xj - - sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS -RTEMS_VERSION=$RTEMS -RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386 -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386 -EOF - - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 -C epics-base $EXTRA diff --git a/modules/database/.travis.yml b/modules/database/.travis.yml deleted file mode 100644 index 127ae7bc9..000000000 --- a/modules/database/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -sudo: false -dist: trusty -language: c -compiler: - - gcc -addons: - apt: - packages: - - libreadline6-dev - - libncurses5-dev - - perl - - clang - - g++-mingw-w64-i686 -install: - - ./.ci/travis-prepare.sh -script: - - ./.ci/travis-build.sh -env: - - BRCORE=master BRLIBCOM=master BRCA=master - - CMPLR=clang - - USR_CXXFLAGS=-std=c++11 - - CMPLR=clang USR_CXXFLAGS=-std=c++11 - - WINE=32 TEST=NO STATIC=YES - - WINE=32 TEST=NO STATIC=NO - - RTEMS=4.10 TEST=NO - - RTEMS=4.9 TEST=NO diff --git a/modules/database/Makefile b/modules/database/Makefile index 9998e6cf5..9bb746e82 100644 --- a/modules/database/Makefile +++ b/modules/database/Makefile @@ -7,11 +7,10 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = . +TOP = ../.. include $(TOP)/configure/CONFIG -DIRS += configure src -src_DEPEND_DIRS = configure +DIRS += src DIRS += test test_DEPEND_DIRS = src diff --git a/modules/database/configure/CONFIG b/modules/database/configure/CONFIG deleted file mode 100644 index c471407c4..000000000 --- a/modules/database/configure/CONFIG +++ /dev/null @@ -1,36 +0,0 @@ -# CONFIG - Load build configuration data -# -# Do not make changes to this file! - -# Allow user to override where the build rules come from -RULES = $(EPICS_BASE) - -# RELEASE files point to other application tops -include $(TOP)/configure/RELEASE --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common -ifdef T_A --include $(TOP)/configure/RELEASE.Common.$(T_A) --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A) -endif - -BUILDING_DATABASE = DEFINED - -CONFIG = $(RULES)/configure -include $(CONFIG)/CONFIG - -# Override the Base definition: -INSTALL_LOCATION = $(TOP) - -# Use new RSET definition -BASE_CPPFLAGS += -DUSE_TYPED_RSET - -# Shared library ABI version. -SHRLIB_VERSION = $(EPICS_DATABASE_MAJOR_VERSION).$(EPICS_DATABASE_MINOR_VERSION).$(EPICS_DATABASE_MAINTENANCE_VERSION) - -# CONFIG_SITE files contain other build configuration settings -include $(TOP)/configure/CONFIG_SITE --include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common -ifdef T_A - -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A) - -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) -endif diff --git a/modules/database/configure/CONFIG_SITE b/modules/database/configure/CONFIG_SITE deleted file mode 100644 index d78c7f514..000000000 --- a/modules/database/configure/CONFIG_SITE +++ /dev/null @@ -1,42 +0,0 @@ -# CONFIG_SITE - -# Make any application-specific changes to the EPICS build -# configuration variables in this file. -# -# Host/target specific settings can be specified in files named -# CONFIG_SITE.$(EPICS_HOST_ARCH).Common -# CONFIG_SITE.Common.$(T_A) -# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) - -# CHECK_RELEASE controls the consistency checking of the support -# applications pointed to by the RELEASE* files. -# Normally CHECK_RELEASE should be set to YES. -# Set CHECK_RELEASE to NO to disable checking completely. -# Set CHECK_RELEASE to WARN to perform consistency checking but -# continue building even if conflicts are found. -CHECK_RELEASE = YES - -# Set this when you only want to compile this application -# for a subset of the cross-compiled target architectures -# that Base is built for. -#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32 - -# To install files into a location other than $(TOP) define -# INSTALL_LOCATION here. -#INSTALL_LOCATION= - -# Set this when the IOC and build host use different paths -# to the install location. This may be needed to boot from -# a Microsoft FTP server say, or on some NFS configurations. -#IOCS_APPL_TOP = - -# For application debugging purposes, override the HOST_OPT and/ -# or CROSS_OPT settings from base/configure/CONFIG_SITE -#HOST_OPT = NO -#CROSS_OPT = NO - -# These allow developers to override the CONFIG_SITE variable -# settings without having to modify the configure/CONFIG_SITE -# file itself. --include $(TOP)/../CONFIG_SITE.local --include $(TOP)/configure/CONFIG_SITE.local diff --git a/modules/database/configure/Makefile b/modules/database/configure/Makefile deleted file mode 100644 index dd292091c..000000000 --- a/modules/database/configure/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -#************************************************************************* -# EPICS BASE is distributed subject to a Software License Agreement found -# in file LICENSE that is included with this distribution. -#************************************************************************* -TOP = .. - -include $(TOP)/configure/CONFIG - -TARGETS = $(CONFIG_TARGETS) -CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) - -CFG += CONFIG_DATABASE_MODULE -CFG += CONFIG_DATABASE_VERSION - -include $(TOP)/configure/RULES diff --git a/modules/database/configure/RELEASE b/modules/database/configure/RELEASE deleted file mode 100644 index 9b685a13e..000000000 --- a/modules/database/configure/RELEASE +++ /dev/null @@ -1,40 +0,0 @@ -# RELEASE - Location of external support modules -# -# IF YOU CHANGE ANY PATHS in this file or make API changes to -# any modules it refers to, you should do a "make rebuild" in -# this application's top level directory. -# -# The EPICS build process does not check dependencies against -# any files from outside the application, so it is safest to -# rebuild it completely if any modules it depends on change. -# -# Host- or target-specific settings can be given in files named -# RELEASE.$(EPICS_HOST_ARCH).Common -# RELEASE.Common.$(T_A) -# RELEASE.$(EPICS_HOST_ARCH).$(T_A) -# -# This file is parsed by both GNUmake and an EPICS Perl script, -# so it may ONLY contain definititions of paths to other support -# modules, variable definitions that are used in module paths, -# and include statements that pull in other RELEASE files. -# Variables may be used before their values have been set. -# Build variables that are NOT used in paths should be set in -# the CONFIG_SITE file. - -# Variables and paths to dependent modules: -#MODULES = /path/to/modules -#MYMODULE = $(MODULES)/my-module - -# If building the EPICS modules individually, set these: -#EPICS_CA = $(MODULES)/ca-4.13.1 -#EPICS_LIBCOM = $(MODULES)/libcom-3.17.0 -#EPICS_BASE = $(MODULES)/core-7.0.1 - -# Set RULES here if you want to use build rules from elsewhere: -#RULES = $(MODULES)/build-rules - -# These lines allow developers to override these RELEASE settings -# without having to modify this file directly. --include $(TOP)/../RELEASE.local --include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local --include $(TOP)/configure/RELEASE.local diff --git a/modules/database/configure/RULES b/modules/database/configure/RULES deleted file mode 100644 index 6d56e14e8..000000000 --- a/modules/database/configure/RULES +++ /dev/null @@ -1,6 +0,0 @@ -# RULES - -include $(CONFIG)/RULES - -# Library should be rebuilt because LIBOBJS may have changed. -$(LIBNAME): ../Makefile diff --git a/modules/database/configure/RULES.ioc b/modules/database/configure/RULES.ioc deleted file mode 100644 index 901987c6c..000000000 --- a/modules/database/configure/RULES.ioc +++ /dev/null @@ -1,2 +0,0 @@ -#RULES.ioc -include $(CONFIG)/RULES.ioc diff --git a/modules/database/configure/RULES_DIRS b/modules/database/configure/RULES_DIRS deleted file mode 100644 index 3ba269dcc..000000000 --- a/modules/database/configure/RULES_DIRS +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_DIRS -include $(CONFIG)/RULES_DIRS diff --git a/modules/database/configure/RULES_TOP b/modules/database/configure/RULES_TOP deleted file mode 100644 index 2b8cbc6da..000000000 --- a/modules/database/configure/RULES_TOP +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_TOP -include $(CONFIG)/RULES_TOP diff --git a/modules/database/src/Makefile b/modules/database/src/Makefile index dfd1d3be9..0cc46fa40 100644 --- a/modules/database/src/Makefile +++ b/modules/database/src/Makefile @@ -7,7 +7,7 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG # PDB Tools diff --git a/modules/database/src/ioc/Makefile b/modules/database/src/ioc/Makefile index 325872826..9ff00407d 100644 --- a/modules/database/src/ioc/Makefile +++ b/modules/database/src/ioc/Makefile @@ -6,12 +6,14 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* -TOP=../.. +IOCDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .) +TOP=../../../.. include $(TOP)/configure/CONFIG -SRC = $(TOP)/src -IOCDIR = $(SRC)/ioc +USR_CPPFLAGS += -DUSE_TYPED_RSET + +SHRLIB_VERSION = 3.17.0 LIBRARY_IOC += dbCore dbCore_LIBS += ca Com diff --git a/modules/database/src/std/Makefile b/modules/database/src/std/Makefile index 20a8658cb..2434bf0a4 100644 --- a/modules/database/src/std/Makefile +++ b/modules/database/src/std/Makefile @@ -6,11 +6,13 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* - -TOP = ../.. +STDDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .) +TOP = ../../../.. include $(TOP)/configure/CONFIG -STDDIR=$(TOP)/src/std +USR_CPPFLAGS += -DUSE_TYPED_RSET + +SHRLIB_VERSION = 3.17.0 LIBRARY_IOC += dbRecStd dbRecStd_LIBS = dbCore ca Com diff --git a/modules/database/src/template/Makefile b/modules/database/src/template/Makefile index 6259b6fca..8dfc6c6f3 100644 --- a/modules/database/src/template/Makefile +++ b/modules/database/src/template/Makefile @@ -1,4 +1,4 @@ -TOP=../.. +TOP=../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/database/src/tools/Makefile b/modules/database/src/tools/Makefile index e19c0c58f..bfd329fbe 100644 --- a/modules/database/src/tools/Makefile +++ b/modules/database/src/tools/Makefile @@ -4,7 +4,7 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* -TOP=../.. +TOP=../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/database/test/Makefile b/modules/database/test/Makefile index 0f2c64263..b54d01757 100644 --- a/modules/database/test/Makefile +++ b/modules/database/test/Makefile @@ -7,7 +7,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG DIRS += ioc/db diff --git a/modules/database/test/ioc/db/Makefile b/modules/database/test/ioc/db/Makefile index e1f06cd3b..ee2ab7632 100644 --- a/modules/database/test/ioc/db/Makefile +++ b/modules/database/test/ioc/db/Makefile @@ -6,12 +6,13 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in the file LICENSE that is included with this distribution. #************************************************************************* - -TOP = ../../.. +CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .) +TOP = ../../../../.. include $(TOP)/configure/CONFIG # Allow access to private headers in db/ -USR_CPPFLAGS = -I $(TOP)/src/ioc/db +USR_CPPFLAGS += -I $(CURDIR)/../../../src/ioc/db +USR_CPPFLAGS += -DUSE_TYPED_RSET TESTLIBRARY = dbTestIoc diff --git a/modules/database/test/ioc/dbtemplate/Makefile b/modules/database/test/ioc/dbtemplate/Makefile index 4442a4ff8..dbb13f337 100644 --- a/modules/database/test/ioc/dbtemplate/Makefile +++ b/modules/database/test/ioc/dbtemplate/Makefile @@ -5,7 +5,7 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../../.. +TOP = ../../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/database/test/std/filters/Makefile b/modules/database/test/std/filters/Makefile index 718b8d523..c95e10861 100644 --- a/modules/database/test/std/filters/Makefile +++ b/modules/database/test/std/filters/Makefile @@ -7,10 +7,12 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../../.. +TOP = ../../../../.. include $(TOP)/configure/CONFIG +USR_CPPFLAGS += -DUSE_TYPED_RSET + TESTLIBRARY = Recs Recs_SRCS += xRecord.c diff --git a/modules/database/test/std/link/Makefile b/modules/database/test/std/link/Makefile index 8540cdf84..c72301bea 100644 --- a/modules/database/test/std/link/Makefile +++ b/modules/database/test/std/link/Makefile @@ -8,6 +8,8 @@ TOP=../../.. include $(TOP)/configure/CONFIG +USR_CPPFLAGS += -DUSE_TYPED_RSET + TESTLIBRARY = Recs Recs_SRCS += ioRecord.c diff --git a/modules/database/test/std/rec/Makefile b/modules/database/test/std/rec/Makefile index 185c2c0c1..872087521 100644 --- a/modules/database/test/std/rec/Makefile +++ b/modules/database/test/std/rec/Makefile @@ -7,9 +7,11 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../../.. +TOP = ../../../../.. include $(TOP)/configure/CONFIG +USR_CPPFLAGS += -DUSE_TYPED_RSET + TESTLIBRARY = dbRecStdTest dbRecStdTest_SRCS += asTestLib.c diff --git a/modules/database/test/tools/Makefile b/modules/database/test/tools/Makefile index ac7f42071..2dd045e8e 100644 --- a/modules/database/test/tools/Makefile +++ b/modules/database/test/tools/Makefile @@ -5,7 +5,7 @@ # in the file LICENSE that is included with this distribution. #************************************************************************* -TOP = ../.. +TOP = ../../../.. include $(TOP)/configure/CONFIG diff --git a/modules/libcom/.ci/travis-build.sh b/modules/libcom/.ci/travis-build.sh deleted file mode 100755 index 622979b9d..000000000 --- a/modules/libcom/.ci/travis-build.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -set -e -x - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 $EXTRA - -if [ "$TEST" != "NO" ] -then - make -j2 tapfiles - make -s test-results -fi diff --git a/modules/libcom/.ci/travis-prepare.sh b/modules/libcom/.ci/travis-prepare.sh deleted file mode 100755 index 9a4d23772..000000000 --- a/modules/libcom/.ci/travis-prepare.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/sh -set -e -x - -CURDIR="$PWD" - -QDIR="$HOME/.cache/qemu" - -if [ -n "$RTEMS" -a "$TEST" = "YES" ] -then - git clone --quiet --branch vme --depth 10 https://github.com/mdavidsaver/qemu.git "$HOME/.build/qemu" - cd "$HOME/.build/qemu" - - HEAD=`git log -n1 --pretty=format:%H` - echo "HEAD revision $HEAD" - - [ -e "$HOME/.cache/qemu/built" ] && BUILT=`cat "$HOME/.cache/qemu/built"` - echo "Cached revision $BUILT" - - if [ "$HEAD" != "$BUILT" ] - then - echo "Building QEMU" - git submodule --quiet update --init - - install -d "$HOME/.build/qemu/build" - cd "$HOME/.build/qemu/build" - - "$HOME/.build/qemu/configure" --prefix="$HOME/.cache/qemu/usr" --target-list=i386-softmmu --disable-werror - make -j2 - make install - - echo "$HEAD" > "$HOME/.cache/qemu/built" - fi -fi - -cd "$CURDIR" - -cat << EOF > configure/RELEASE.local -EPICS_BASE=$HOME/.source/epics-base -EOF - -install -d "$HOME/.source" -cd "$HOME/.source" - -git clone --quiet --depth 5 --branch core/"${BRCORE:-master}" https://github.com/${REPOBASE:-epics-base}/epics-base.git epics-base -(cd epics-base && git log -n1 ) - -EPICS_HOST_ARCH=`sh epics-base/startup/EpicsHostArch` - -# requires wine and g++-mingw-w64-i686 -if [ "$WINE" = "32" ] -then - echo "Cross mingw32" - sed -i -e '/CMPLR_PREFIX/d' epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw - cat << EOF >> epics-base/configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw -CMPLR_PREFIX=i686-w64-mingw32- -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw -EOF -fi - -if [ "$STATIC" = "YES" ] -then - echo "Build static libraries/executables" - cat << EOF >> epics-base/configure/CONFIG_SITE -SHARED_LIBRARIES=NO -STATIC_BUILD=YES -EOF -fi - -case "$CMPLR" in -clang) - echo "Host compiler is clang" - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH -GNU = NO -CMPLR_CLASS = clang -CC = clang -CCC = clang++ -EOF - - # hack - sed -i -e 's/CMPLR_CLASS = gcc/CMPLR_CLASS = clang/' epics-base/configure/CONFIG.gnuCommon - - clang --version - ;; -*) - echo "Host compiler is default" - gcc --version - ;; -esac - -cat <> epics-base/configure/CONFIG_SITE -USR_CPPFLAGS += $USR_CPPFLAGS -USR_CFLAGS += $USR_CFLAGS -USR_CXXFLAGS += $USR_CXXFLAGS -EOF - -# set RTEMS to eg. "4.9" or "4.10" -# requires qemu, bison, flex, texinfo, install-info -if [ -n "$RTEMS" ] -then - echo "Cross RTEMS${RTEMS} for pc386" - install -d /home/travis/.cache - curl -L "https://github.com/mdavidsaver/rsb/releases/download/travis-20160306-2/rtems${RTEMS}-i386-trusty-20190306-2.tar.gz" \ - | tar -C /home/travis/.cache -xj - - sed -i -e '/^RTEMS_VERSION/d' -e '/^RTEMS_BASE/d' epics-base/configure/os/CONFIG_SITE.Common.RTEMS - cat << EOF >> epics-base/configure/os/CONFIG_SITE.Common.RTEMS -RTEMS_VERSION=$RTEMS -RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386 -EOF - cat << EOF >> epics-base/configure/CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS+=RTEMS-pc386 -EOF - - # find local qemu-system-i386 - export PATH="$HOME/.cache/qemu/usr/bin:$PATH" - echo -n "Using QEMU: " - type qemu-system-i386 || echo "Missing qemu" - EXTRA=RTEMS_QEMU_FIXUPS=YES -fi - -make -j2 -C epics-base $EXTRA diff --git a/modules/libcom/.travis.yml b/modules/libcom/.travis.yml deleted file mode 100644 index 8b1e2ab3e..000000000 --- a/modules/libcom/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -sudo: false -dist: trusty -language: c -compiler: - - gcc -addons: - apt: - packages: - - libreadline6-dev - - libncurses5-dev - - perl - - clang - - g++-mingw-w64-i686 -install: - - ./.ci/travis-prepare.sh -script: - - ./.ci/travis-build.sh -env: - - BRCORE=master - - CMPLR=clang - - USR_CXXFLAGS=-std=c++11 - - CMPLR=clang USR_CXXFLAGS=-std=c++11 - - WINE=32 TEST=NO STATIC=YES - - WINE=32 TEST=NO STATIC=NO - - RTEMS=4.10 TEST=NO - - RTEMS=4.9 TEST=NO diff --git a/modules/libcom/Makefile b/modules/libcom/Makefile index 442a6f7d1..5a03a4348 100644 --- a/modules/libcom/Makefile +++ b/modules/libcom/Makefile @@ -7,11 +7,10 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = . +TOP = ../.. include $(TOP)/configure/CONFIG -DIRS += configure src -src_DEPEND_DIRS = configure +DIRS += src DIRS += RTEMS RTEMS_DEPEND_DIRS = src @@ -22,4 +21,4 @@ vxWorks_DEPEND_DIRS = src DIRS += test test_DEPEND_DIRS = RTEMS vxWorks -include $(TOP)/configure/RULES_TOP +include $(TOP)/configure/RULES_DIRS diff --git a/modules/libcom/RTEMS/Makefile b/modules/libcom/RTEMS/Makefile index 311c25024..b46889db1 100644 --- a/modules/libcom/RTEMS/Makefile +++ b/modules/libcom/RTEMS/Makefile @@ -7,7 +7,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG include $(TOP)/configure/CONFIG_LIBCOM_VERSION diff --git a/modules/libcom/configure/CONFIG b/modules/libcom/configure/CONFIG deleted file mode 100644 index 774ed251c..000000000 --- a/modules/libcom/configure/CONFIG +++ /dev/null @@ -1,44 +0,0 @@ -# CONFIG - Load build configuration data -# -# Do not make changes to this file! - -ifeq ($(strip $(EPICS_HOST_ARCH)),) - $(warning EPICS_HOST_ARCH is not set.) -endif - -# Allow user to override where the build rules come from -RULES = $(EPICS_BASE) - -# RELEASE files point to other application tops -include $(TOP)/configure/RELEASE --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common -ifdef T_A --include $(TOP)/configure/RELEASE.Common.$(T_A) --include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A) -endif - -ifeq ($(strip $(RULES)),) - ifeq ($(strip $(EPICS_BASE)),) - $(warning Build error: EPICS_BASE not set after including RELEASE files.) - else - $(warning Build error: EPICS_BASE set but RULES variable empty.) - endif - $(error Makefiles loaded: $(MAKEFILE_LIST)) - # Die before the include of $(CONFIG)/CONFIG below does -endif - -BUILDING_LIBCOM = DEFINED - -CONFIG = $(RULES)/configure -include $(CONFIG)/CONFIG - -# Override the Base definition: -INSTALL_LOCATION = $(TOP) - -# CONFIG_SITE files contain other build configuration settings -include $(TOP)/configure/CONFIG_SITE --include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).Common -ifdef T_A - -include $(TOP)/configure/CONFIG_SITE.Common.$(T_A) - -include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) -endif diff --git a/modules/libcom/configure/CONFIG_SITE b/modules/libcom/configure/CONFIG_SITE deleted file mode 100644 index d78c7f514..000000000 --- a/modules/libcom/configure/CONFIG_SITE +++ /dev/null @@ -1,42 +0,0 @@ -# CONFIG_SITE - -# Make any application-specific changes to the EPICS build -# configuration variables in this file. -# -# Host/target specific settings can be specified in files named -# CONFIG_SITE.$(EPICS_HOST_ARCH).Common -# CONFIG_SITE.Common.$(T_A) -# CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A) - -# CHECK_RELEASE controls the consistency checking of the support -# applications pointed to by the RELEASE* files. -# Normally CHECK_RELEASE should be set to YES. -# Set CHECK_RELEASE to NO to disable checking completely. -# Set CHECK_RELEASE to WARN to perform consistency checking but -# continue building even if conflicts are found. -CHECK_RELEASE = YES - -# Set this when you only want to compile this application -# for a subset of the cross-compiled target architectures -# that Base is built for. -#CROSS_COMPILER_TARGET_ARCHS = vxWorks-ppc32 - -# To install files into a location other than $(TOP) define -# INSTALL_LOCATION here. -#INSTALL_LOCATION= - -# Set this when the IOC and build host use different paths -# to the install location. This may be needed to boot from -# a Microsoft FTP server say, or on some NFS configurations. -#IOCS_APPL_TOP = - -# For application debugging purposes, override the HOST_OPT and/ -# or CROSS_OPT settings from base/configure/CONFIG_SITE -#HOST_OPT = NO -#CROSS_OPT = NO - -# These allow developers to override the CONFIG_SITE variable -# settings without having to modify the configure/CONFIG_SITE -# file itself. --include $(TOP)/../CONFIG_SITE.local --include $(TOP)/configure/CONFIG_SITE.local diff --git a/modules/libcom/configure/Makefile b/modules/libcom/configure/Makefile deleted file mode 100644 index 85a7b5843..000000000 --- a/modules/libcom/configure/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -#************************************************************************* -# EPICS BASE is distributed subject to a Software License Agreement found -# in file LICENSE that is included with this distribution. -#************************************************************************* -TOP = .. - -include $(TOP)/configure/CONFIG - -TARGETS = $(CONFIG_TARGETS) -CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS))) - -CFG += CONFIG_LIBCOM_MODULE -CFG += CONFIG_LIBCOM_VERSION - -include $(TOP)/configure/RULES diff --git a/modules/libcom/configure/RELEASE b/modules/libcom/configure/RELEASE deleted file mode 100644 index 819b441e7..000000000 --- a/modules/libcom/configure/RELEASE +++ /dev/null @@ -1,38 +0,0 @@ -# RELEASE - Location of external support modules -# -# IF YOU CHANGE ANY PATHS in this file or make API changes to -# any modules it refers to, you should do a "make rebuild" in -# this application's top level directory. -# -# The EPICS build process does not check dependencies against -# any files from outside the application, so it is safest to -# rebuild it completely if any modules it depends on change. -# -# Host- or target-specific settings can be given in files named -# RELEASE.$(EPICS_HOST_ARCH).Common -# RELEASE.Common.$(T_A) -# RELEASE.$(EPICS_HOST_ARCH).$(T_A) -# -# This file is parsed by both GNUmake and an EPICS Perl script, -# so it may ONLY contain definititions of paths to other support -# modules, variable definitions that are used in module paths, -# and include statements that pull in other RELEASE files. -# Variables may be used before their values have been set. -# Build variables that are NOT used in paths should be set in -# the CONFIG_SITE file. - -# Variables and paths to dependent modules: -#MODULES = /path/to/modules -#MYMODULE = $(MODULES)/my-module - -# If building the EPICS modules individually, set these: -#EPICS_BASE = $(MODULES)/core-7.0.1 - -# Set RULES here if you want to use build rules from elsewhere: -#RULES = $(MODULES)/build-rules - -# These lines allow developers to override these RELEASE settings -# without having to modify this file directly. --include $(TOP)/../RELEASE.local --include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local --include $(TOP)/configure/RELEASE.local diff --git a/modules/libcom/configure/RULES b/modules/libcom/configure/RULES deleted file mode 100644 index 6d56e14e8..000000000 --- a/modules/libcom/configure/RULES +++ /dev/null @@ -1,6 +0,0 @@ -# RULES - -include $(CONFIG)/RULES - -# Library should be rebuilt because LIBOBJS may have changed. -$(LIBNAME): ../Makefile diff --git a/modules/libcom/configure/RULES_DIRS b/modules/libcom/configure/RULES_DIRS deleted file mode 100644 index 3ba269dcc..000000000 --- a/modules/libcom/configure/RULES_DIRS +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_DIRS -include $(CONFIG)/RULES_DIRS diff --git a/modules/libcom/configure/RULES_TOP b/modules/libcom/configure/RULES_TOP deleted file mode 100644 index 2b8cbc6da..000000000 --- a/modules/libcom/configure/RULES_TOP +++ /dev/null @@ -1,2 +0,0 @@ -#RULES_TOP -include $(CONFIG)/RULES_TOP diff --git a/modules/libcom/src/Makefile b/modules/libcom/src/Makefile index d61b26803..4a1c61e38 100644 --- a/modules/libcom/src/Makefile +++ b/modules/libcom/src/Makefile @@ -6,15 +6,13 @@ # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* - -TOP = .. +LIBCOM := $(or $(dir $(lastword $(MAKEFILE_LIST))), .) +TOP = ../../.. include $(TOP)/configure/CONFIG # Uncomment this to remove the (benign) valgrind helper stubs #USR_CFLAGS += -DNVALGRIND -LIBCOM = $(TOP)/src - INC += valgrind/valgrind.h INC += libComVersion.h diff --git a/modules/libcom/test/Makefile b/modules/libcom/test/Makefile index 1c26c44b7..87405f72f 100755 --- a/modules/libcom/test/Makefile +++ b/modules/libcom/test/Makefile @@ -7,7 +7,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG PROD_LIBS += Com diff --git a/modules/libcom/vxWorks/Makefile b/modules/libcom/vxWorks/Makefile index e2c0b5d2d..3eced3b08 100644 --- a/modules/libcom/vxWorks/Makefile +++ b/modules/libcom/vxWorks/Makefile @@ -5,7 +5,7 @@ # in file LICENSE that is included with this distribution. #************************************************************************* -TOP = .. +TOP = ../../.. include $(TOP)/configure/CONFIG # Install Boost smart_ptr headers needed by VxWorks 6.x