avoided embedded TOP for non sub-modules
This commit is contained in:
@ -20,5 +20,14 @@ CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
|
|||||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
||||||
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
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
|
include $(TOP)/configure/RULES
|
||||||
|
|
||||||
|
@ -6,15 +6,15 @@
|
|||||||
TOP = ..
|
TOP = ..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Submodules for bundle build
|
DIRS += libcom
|
||||||
SUBMODULES += libcom
|
|
||||||
|
|
||||||
SUBMODULES += ca
|
DIRS += ca
|
||||||
ca_DEPEND_DIRS = libcom
|
ca_DEPEND_DIRS = libcom
|
||||||
|
|
||||||
SUBMODULES += database
|
DIRS += database
|
||||||
database_DEPEND_DIRS = ca
|
database_DEPEND_DIRS = ca
|
||||||
|
|
||||||
|
# Submodules for bundle build
|
||||||
SUBMODULES += pvData
|
SUBMODULES += pvData
|
||||||
pvData_DEPEND_DIRS = libcom
|
pvData_DEPEND_DIRS = libcom
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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 <<EOF >> 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
|
|
@ -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
|
|
@ -7,11 +7,9 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = .
|
TOP = ../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
DIRS += configure src
|
DIRS += src
|
||||||
|
|
||||||
src_DEPEND_DIRS = configure
|
|
||||||
|
|
||||||
include $(TOP)/configure/RULES_TOP
|
include $(TOP)/configure/RULES_TOP
|
||||||
|
@ -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
|
|
@ -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=</absolute/path/to/install/top>
|
|
||||||
|
|
||||||
# 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 = </IOC's/absolute/path/to/install/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
|
|
@ -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
|
|
@ -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
|
|
@ -1,6 +0,0 @@
|
|||||||
# RULES
|
|
||||||
|
|
||||||
include $(CONFIG)/RULES
|
|
||||||
|
|
||||||
# Library should be rebuilt because LIBOBJS may have changed.
|
|
||||||
$(LIBNAME): ../Makefile
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_DIRS
|
|
||||||
include $(CONFIG)/RULES_DIRS
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_TOP
|
|
||||||
include $(CONFIG)/RULES_TOP
|
|
@ -7,7 +7,7 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Channel Access Client
|
# Channel Access Client
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
|
||||||
TOP = ../..
|
TOP = ../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
@ -109,7 +109,7 @@ EXPAND += S99caRepeater@
|
|||||||
EXPAND += caRepeater.service@
|
EXPAND += caRepeater.service@
|
||||||
EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))
|
EXPAND_VARS = INSTALL_BIN=$(abspath $(INSTALL_BIN))
|
||||||
|
|
||||||
SRC_DIRS += $(TOP)/src/client/test
|
SRC_DIRS += $(CURDIR)/test
|
||||||
PROD_HOST += ca_test
|
PROD_HOST += ca_test
|
||||||
ca_test_SRCS = ca_test_main.c ca_test.c
|
ca_test_SRCS = ca_test_main.c ca_test.c
|
||||||
ca_test_LIBS = ca Com
|
ca_test_LIBS = ca Com
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../..
|
TOP = ../../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Special settings for Darwin:
|
# Special settings for Darwin:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
TOP=../..
|
TOP=../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../..
|
TOP = ../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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 <<EOF >> 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
|
|
@ -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
|
|
@ -7,11 +7,10 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = .
|
TOP = ../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
DIRS += configure src
|
DIRS += src
|
||||||
src_DEPEND_DIRS = configure
|
|
||||||
|
|
||||||
DIRS += test
|
DIRS += test
|
||||||
test_DEPEND_DIRS = src
|
test_DEPEND_DIRS = src
|
||||||
|
@ -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
|
|
@ -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=</absolute/path/to/install/top>
|
|
||||||
|
|
||||||
# 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 = </IOC's/absolute/path/to/install/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
|
|
@ -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
|
|
@ -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
|
|
@ -1,6 +0,0 @@
|
|||||||
# RULES
|
|
||||||
|
|
||||||
include $(CONFIG)/RULES
|
|
||||||
|
|
||||||
# Library should be rebuilt because LIBOBJS may have changed.
|
|
||||||
$(LIBNAME): ../Makefile
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES.ioc
|
|
||||||
include $(CONFIG)/RULES.ioc
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_DIRS
|
|
||||||
include $(CONFIG)/RULES_DIRS
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_TOP
|
|
||||||
include $(CONFIG)/RULES_TOP
|
|
@ -7,7 +7,7 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# PDB Tools
|
# PDB Tools
|
||||||
|
@ -6,12 +6,14 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
TOP=../..
|
IOCDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
|
||||||
|
TOP=../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
SRC = $(TOP)/src
|
USR_CPPFLAGS += -DUSE_TYPED_RSET
|
||||||
IOCDIR = $(SRC)/ioc
|
|
||||||
|
SHRLIB_VERSION = 3.17.0
|
||||||
|
|
||||||
LIBRARY_IOC += dbCore
|
LIBRARY_IOC += dbCore
|
||||||
dbCore_LIBS += ca Com
|
dbCore_LIBS += ca Com
|
||||||
|
@ -6,11 +6,13 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
STDDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
|
||||||
TOP = ../..
|
TOP = ../../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
STDDIR=$(TOP)/src/std
|
USR_CPPFLAGS += -DUSE_TYPED_RSET
|
||||||
|
|
||||||
|
SHRLIB_VERSION = 3.17.0
|
||||||
|
|
||||||
LIBRARY_IOC += dbRecStd
|
LIBRARY_IOC += dbRecStd
|
||||||
dbRecStd_LIBS = dbCore ca Com
|
dbRecStd_LIBS = dbCore ca Com
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
TOP=../..
|
TOP=../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
TOP=../..
|
TOP=../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
DIRS += ioc/db
|
DIRS += ioc/db
|
||||||
|
@ -6,12 +6,13 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
CURDIR := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
|
||||||
TOP = ../../..
|
TOP = ../../../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Allow access to private headers in db/
|
# 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
|
TESTLIBRARY = dbTestIoc
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../../..
|
TOP = ../../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
@ -7,10 +7,12 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../../..
|
TOP = ../../../../..
|
||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
USR_CPPFLAGS += -DUSE_TYPED_RSET
|
||||||
|
|
||||||
TESTLIBRARY = Recs
|
TESTLIBRARY = Recs
|
||||||
|
|
||||||
Recs_SRCS += xRecord.c
|
Recs_SRCS += xRecord.c
|
||||||
|
@ -8,6 +8,8 @@ TOP=../../..
|
|||||||
|
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
USR_CPPFLAGS += -DUSE_TYPED_RSET
|
||||||
|
|
||||||
TESTLIBRARY = Recs
|
TESTLIBRARY = Recs
|
||||||
|
|
||||||
Recs_SRCS += ioRecord.c
|
Recs_SRCS += ioRecord.c
|
||||||
|
@ -7,9 +7,11 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../../..
|
TOP = ../../../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
USR_CPPFLAGS += -DUSE_TYPED_RSET
|
||||||
|
|
||||||
TESTLIBRARY = dbRecStdTest
|
TESTLIBRARY = dbRecStdTest
|
||||||
|
|
||||||
dbRecStdTest_SRCS += asTestLib.c
|
dbRecStdTest_SRCS += asTestLib.c
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# in the file LICENSE that is included with this distribution.
|
# in the file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ../..
|
TOP = ../../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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 <<EOF >> 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
|
|
@ -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
|
|
@ -7,11 +7,10 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = .
|
TOP = ../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
DIRS += configure src
|
DIRS += src
|
||||||
src_DEPEND_DIRS = configure
|
|
||||||
|
|
||||||
DIRS += RTEMS
|
DIRS += RTEMS
|
||||||
RTEMS_DEPEND_DIRS = src
|
RTEMS_DEPEND_DIRS = src
|
||||||
@ -22,4 +21,4 @@ vxWorks_DEPEND_DIRS = src
|
|||||||
DIRS += test
|
DIRS += test
|
||||||
test_DEPEND_DIRS = RTEMS vxWorks
|
test_DEPEND_DIRS = RTEMS vxWorks
|
||||||
|
|
||||||
include $(TOP)/configure/RULES_TOP
|
include $(TOP)/configure/RULES_DIRS
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
include $(TOP)/configure/CONFIG_LIBCOM_VERSION
|
include $(TOP)/configure/CONFIG_LIBCOM_VERSION
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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=</absolute/path/to/install/top>
|
|
||||||
|
|
||||||
# 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 = </IOC's/absolute/path/to/install/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
|
|
@ -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
|
|
@ -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
|
|
@ -1,6 +0,0 @@
|
|||||||
# RULES
|
|
||||||
|
|
||||||
include $(CONFIG)/RULES
|
|
||||||
|
|
||||||
# Library should be rebuilt because LIBOBJS may have changed.
|
|
||||||
$(LIBNAME): ../Makefile
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_DIRS
|
|
||||||
include $(CONFIG)/RULES_DIRS
|
|
@ -1,2 +0,0 @@
|
|||||||
#RULES_TOP
|
|
||||||
include $(CONFIG)/RULES_TOP
|
|
@ -6,15 +6,13 @@
|
|||||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
LIBCOM := $(or $(dir $(lastword $(MAKEFILE_LIST))), .)
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Uncomment this to remove the (benign) valgrind helper stubs
|
# Uncomment this to remove the (benign) valgrind helper stubs
|
||||||
#USR_CFLAGS += -DNVALGRIND
|
#USR_CFLAGS += -DNVALGRIND
|
||||||
|
|
||||||
LIBCOM = $(TOP)/src
|
|
||||||
|
|
||||||
INC += valgrind/valgrind.h
|
INC += valgrind/valgrind.h
|
||||||
|
|
||||||
INC += libComVersion.h
|
INC += libComVersion.h
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
PROD_LIBS += Com
|
PROD_LIBS += Com
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
# in file LICENSE that is included with this distribution.
|
# in file LICENSE that is included with this distribution.
|
||||||
#*************************************************************************
|
#*************************************************************************
|
||||||
|
|
||||||
TOP = ..
|
TOP = ../../..
|
||||||
include $(TOP)/configure/CONFIG
|
include $(TOP)/configure/CONFIG
|
||||||
|
|
||||||
# Install Boost smart_ptr headers needed by VxWorks 6.x
|
# Install Boost smart_ptr headers needed by VxWorks 6.x
|
||||||
|
Reference in New Issue
Block a user