Reorganization as separate pcas module
This commit is contained in:
32
.travis.yml
32
.travis.yml
@ -1,32 +0,0 @@
|
||||
sudo: false
|
||||
dist: trusty
|
||||
language: c
|
||||
compiler:
|
||||
- gcc
|
||||
env:
|
||||
- CMPLR=gcc
|
||||
- CMPLR=gcc EXTRA=CMD_CXXFLAGS=-std=c++11
|
||||
- CMPLR=gcc STATIC=YES
|
||||
- CMPLR=clang
|
||||
- CMPLR=clang STATIC=YES
|
||||
- WINE=32 TEST=NO STATIC=YES
|
||||
- WINE=32 TEST=NO STATIC=NO
|
||||
- RTEMS=4.10 TEST=NO
|
||||
- RTEMS=4.9 TEST=NO
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libreadline6-dev
|
||||
- libncurses5-dev
|
||||
- perl
|
||||
- clang
|
||||
- g++-mingw-w64-i686
|
||||
- bison
|
||||
- flex
|
||||
- texinfo
|
||||
- install-info
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cache
|
||||
install: sh ci/travis-prepare.sh </dev/null
|
||||
script: sh ci/travis-build.sh </dev/null
|
18
Makefile
18
Makefile
@ -1,21 +1,13 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# Makefile at top of application tree
|
||||
TOP = .
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
# Bootstrap resolution: tools not installed yet
|
||||
TOOLS = $(TOP)/src/tools
|
||||
# Directories to build, any order
|
||||
DIRS += configure
|
||||
DIRS += src
|
||||
|
||||
DIRS += configure src
|
||||
# Add any additional dependency rules here:
|
||||
|
||||
src_DEPEND_DIRS = configure
|
||||
|
||||
include $(TOP)/configure/RULES_TOP
|
||||
|
||||
|
24
README
24
README
@ -1,24 +0,0 @@
|
||||
---------------------------------------------------------
|
||||
EPICS Base - the central core of a control system toolkit
|
||||
---------------------------------------------------------
|
||||
|
||||
Copyright UChicago Argonne LLC, as Operator of Argonne
|
||||
National Laboratory.
|
||||
Copyright (c) 1991-2003 The Regents of the University of
|
||||
California, as Operator of Los Alamos National Laboratory.
|
||||
|
||||
EPICS Base is distributed subject to a Software License
|
||||
Agreement found in the file LICENSE that is included with
|
||||
this distribution.
|
||||
|
||||
---------------------------------------------------------
|
||||
|
||||
Installation and release information can be found in the
|
||||
various files in the documentation subdirectory.
|
||||
|
||||
Additional information about EPICS including mailing list
|
||||
archives and subscription instructions, documentation and
|
||||
training materials, additional components, links to other
|
||||
websites etc. is available on the EPICS home page at
|
||||
http://www.aps.anl.gov/epics/
|
||||
|
86
appveyor.yml
86
appveyor.yml
@ -1,86 +0,0 @@
|
||||
# AppVeyor configuration for EPICS Base
|
||||
|
||||
# Ralph Lange <ralph.lange@gmx.de>
|
||||
# Copyright (c) 2016-2017 ITER Organization
|
||||
|
||||
# Version format
|
||||
version: base-{branch}-{build}
|
||||
|
||||
#---------------------------------#
|
||||
# repository cloning #
|
||||
#---------------------------------#
|
||||
|
||||
# Called at very beginning, before repo cloning
|
||||
init:
|
||||
# Set autocrlf to make batch files work
|
||||
- git config --global core.autocrlf true
|
||||
|
||||
# Set clone depth (do not fetch complete history)
|
||||
clone_depth: 2
|
||||
|
||||
# Skipping commits affecting only specific files
|
||||
skip_commits:
|
||||
files:
|
||||
- 'documentation/*'
|
||||
- 'templates/*'
|
||||
- '**/*.html'
|
||||
- '**/*.md'
|
||||
|
||||
#---------------------------------#
|
||||
# build matrix configuration #
|
||||
#---------------------------------#
|
||||
|
||||
# Build Configurations: dll/static, regular/debug
|
||||
configuration:
|
||||
- dynamic
|
||||
- static
|
||||
- dynamic-debug
|
||||
- static-debug
|
||||
|
||||
# Environment variables: compiler toolchain
|
||||
environment:
|
||||
matrix:
|
||||
- TOOLCHAIN: 9.0
|
||||
- TOOLCHAIN: 10.0
|
||||
- TOOLCHAIN: 11.0
|
||||
- TOOLCHAIN: 12.0
|
||||
- TOOLCHAIN: 14.0
|
||||
- TOOLCHAIN: cygwin
|
||||
- TOOLCHAIN: mingw
|
||||
|
||||
# Platform: architecture
|
||||
platform:
|
||||
- x86
|
||||
- x64
|
||||
|
||||
# Matrix configuration: allow specific failing jobs
|
||||
matrix:
|
||||
exclude:
|
||||
# VS Express installs don't have the 64 bit compiler
|
||||
- platform: x64
|
||||
TOOLCHAIN: 9.0
|
||||
- platform: x64
|
||||
TOOLCHAIN: 10.0
|
||||
|
||||
#---------------------------------#
|
||||
# building & testing #
|
||||
#---------------------------------#
|
||||
|
||||
install:
|
||||
- cmd: ci/appveyor-prepare.bat
|
||||
|
||||
build_script:
|
||||
- cmd: ci/appveyor-make.bat
|
||||
|
||||
test_script:
|
||||
- cmd: ci/appveyor-make.bat runtests
|
||||
|
||||
#---------------------------------#
|
||||
# notifications #
|
||||
#---------------------------------#
|
||||
|
||||
notifications:
|
||||
|
||||
- provider: Slack
|
||||
incoming_webhook:
|
||||
secure: RYOm3FIUYeZGjWKaeTVKwq+C3fzK54AKwbmAoECED45mex3lN+8HmrC845a6mg9xPUJ/ND51RopWVaKDD9/UzaM0SO195RQLKqUTIUafiuM=
|
@ -1,118 +0,0 @@
|
||||
:: Universal build script for AppVeyor (https://ci.appveyor.com/)
|
||||
:: Environment:
|
||||
:: TOOLCHAIN - toolchain version [9.0/10.0/11.0/12.0/14.0/cygwin/mingw]
|
||||
:: CONFIGURATION - determines EPICS build [dynamic/static]
|
||||
:: PLATFORM - architecture [x86/x64]
|
||||
::
|
||||
:: All command line args are passed to make
|
||||
|
||||
Setlocal EnableDelayedExpansion
|
||||
|
||||
set "ST="
|
||||
if /i "%CONFIGURATION%"=="static" set ST=-static
|
||||
|
||||
set OS=64BIT
|
||||
if "%PLATFORM%"=="x86" set OS=32BIT
|
||||
|
||||
echo [INFO] Platform: %OS%
|
||||
|
||||
:: Use parallel make, except for 3.14
|
||||
set "MAKEARGS=-j2 -Otarget"
|
||||
if "%APPVEYOR_REPO_BRANCH%"=="3.14" set MAKEARGS=
|
||||
|
||||
if "%TOOLCHAIN%"=="cygwin" (
|
||||
set "MAKE=make"
|
||||
if "%OS%"=="64BIT" (
|
||||
set "EPICS_HOST_ARCH=cygwin-x86_64"
|
||||
set "INCLUDE=C:\cygwin64\include;%INCLUDE%"
|
||||
set "PATH=C:\cygwin64\bin;%PATH%"
|
||||
echo [INFO] Cygwin Toolchain 64bit
|
||||
) else (
|
||||
set "EPICS_HOST_ARCH=cygwin-x86"
|
||||
set "INCLUDE=C:\cygwin\include;%INCLUDE%"
|
||||
set "PATH=C:\cygwin\bin;%PATH%"
|
||||
echo [INFO] Cygwin Toolchain 32bit
|
||||
)
|
||||
echo [INFO] Compiler Version
|
||||
gcc -v
|
||||
goto Finish
|
||||
)
|
||||
|
||||
if "%TOOLCHAIN%"=="mingw" (
|
||||
set "MAKE=mingw32-make"
|
||||
if "%OS%"=="64BIT" (
|
||||
set "EPICS_HOST_ARCH=windows-x64-mingw"
|
||||
set "INCLUDE=C:\tools\mingw64\include;%INCLUDE%"
|
||||
set "PATH=C:\tools\mingw64\bin;%PATH%"
|
||||
echo [INFO] MinGW Toolchain 64bit
|
||||
) else (
|
||||
set "EPICS_HOST_ARCH=win32-x86-mingw"
|
||||
set "INCLUDE=C:\tools\mingw32\include;%INCLUDE%"
|
||||
set "PATH=C:\tools\mingw32\bin;%PATH%"
|
||||
echo [INFO] MinGW Toolchain 32bit
|
||||
)
|
||||
echo [INFO] Compiler Version
|
||||
gcc -v
|
||||
goto Finish
|
||||
)
|
||||
|
||||
set "VSINSTALL=C:\Program Files (x86)\Microsoft Visual Studio %TOOLCHAIN%"
|
||||
set "MAKE=C:\tools\make"
|
||||
|
||||
if "%OS%"=="64BIT" (
|
||||
set EPICS_HOST_ARCH=windows-x64%ST%
|
||||
if exist "%VSINSTALL%\VC\vcvarsall.bat" (
|
||||
call "%VSINSTALL%\VC\vcvarsall.bat" amd64
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 (
|
||||
call "%VSINSTALL%\VC\vcvarsall.bat" x86_amd64
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 goto MSMissing
|
||||
)
|
||||
goto MSFound
|
||||
)
|
||||
if exist "%VSINSTALL%\VC\bin\amd64\vcvars64.bat" (
|
||||
call "%VSINSTALL%\VC\bin\amd64\vcvars64.bat"
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 goto MSMissing
|
||||
goto MSFound
|
||||
)
|
||||
) else (
|
||||
set EPICS_HOST_ARCH=win32-x86%ST%
|
||||
if exist "%VSINSTALL%\VC\vcvarsall.bat" (
|
||||
call "%VSINSTALL%\VC\vcvarsall.bat" x86
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 goto MSMissing
|
||||
goto MSFound
|
||||
)
|
||||
if exist "%VSINSTALL%\VC\bin\vcvars32.bat" (
|
||||
call "%VSINSTALL%\VC\bin\vcvars32.bat"
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 goto MSMissing
|
||||
goto MSFound
|
||||
)
|
||||
if exist "%VSINSTALL%\Common7\Tools\vsvars32.bat" (
|
||||
call "%VSINSTALL%\Common7\Tools\vsvars32.bat"
|
||||
where cl
|
||||
if !ERRORLEVEL! NEQ 0 goto MSMissing
|
||||
goto MSFound
|
||||
)
|
||||
)
|
||||
|
||||
:MSMissing
|
||||
echo [INFO] Installation for MSVC Toolchain %TOOLCHAIN% / %OS% seems to be missing
|
||||
exit 1
|
||||
|
||||
:MSFound
|
||||
echo [INFO] Microsoft Visual Studio Toolchain %TOOLCHAIN%
|
||||
echo [INFO] Compiler Version
|
||||
cl
|
||||
|
||||
:Finish
|
||||
echo [INFO] EPICS_HOST_ARCH: %EPICS_HOST_ARCH%
|
||||
echo [INFO] Make version
|
||||
%MAKE% --version
|
||||
echo [INFO] Perl version
|
||||
perl --version
|
||||
|
||||
%MAKE% %MAKEARGS% %*
|
@ -1,70 +0,0 @@
|
||||
:: Build script for AppVeyor (https://ci.appveyor.com/)
|
||||
:: Environment:
|
||||
:: TOOLCHAIN - Toolchain Version [9.0/10.0/11.0/12.0/14.0/cygwin/mingw]
|
||||
:: CONFIGURATION - determines EPICS build [dynamic/static, -debug]
|
||||
:: PLATFORM - "x86" -> use 32bit architecture
|
||||
::
|
||||
:: Prepares an Appveyor build by excuting the following steps
|
||||
:: - Set up configure\CONFIG_SITE for static vs. dynamic build
|
||||
:: - Install Cygwin / Mingw (TOOLCHAIN setting) in the in the appropriate flavor
|
||||
:: - Download and install Make-4.1 from EPICS download page
|
||||
|
||||
Setlocal EnableDelayedExpansion
|
||||
|
||||
set OS=64BIT
|
||||
if "%PLATFORM%"=="x86" set OS=32BIT
|
||||
|
||||
echo [INFO] Platform: %OS%
|
||||
|
||||
if "%TOOLCHAIN%"=="cygwin" (
|
||||
echo.%CONFIGURATION% | findstr /C:"static">nul && (
|
||||
echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
|
||||
echo STATIC_BUILD=YES>> configure\CONFIG_SITE
|
||||
echo [INFO] EPICS set up for static build
|
||||
) || (
|
||||
echo [INFO] EPICS set up for dynamic build
|
||||
)
|
||||
echo.%CONFIGURATION% | findstr /C:"debug">nul && (
|
||||
echo HOST_OPT=NO>> configure\CONFIG_SITE
|
||||
echo [INFO] EPICS set up for debug build
|
||||
) || (
|
||||
echo [INFO] EPICS set up for optimized build
|
||||
)
|
||||
if "%OS%"=="64BIT" (
|
||||
echo [INFO] Installing Cygwin 64bit and dependencies
|
||||
@powershell -Command "(new-object net.webclient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe', 'C:\cygwin64\setup-x86_64.exe')"
|
||||
C:\cygwin64\setup-x86_64.exe -q -P "libreadline-devel,libncursesw-devel"
|
||||
) else (
|
||||
echo [INFO] Installing Cygwin 32bit and dependencies
|
||||
@powershell -Command "(new-object net.webclient).DownloadFile('http://www.cygwin.com/setup-x86.exe', 'C:\cygwin\setup-x86.exe')"
|
||||
C:\cygwin\setup-x86.exe -q -P "libreadline-devel,libncursesw-devel"
|
||||
)
|
||||
)
|
||||
|
||||
if "%TOOLCHAIN%"=="mingw" (
|
||||
echo.%CONFIGURATION% | findstr /C:"static">nul && (
|
||||
echo SHARED_LIBRARIES=NO>> configure\CONFIG_SITE
|
||||
echo STATIC_BUILD=YES>> configure\CONFIG_SITE
|
||||
echo [INFO] EPICS set up for static build
|
||||
) || (
|
||||
echo [INFO] EPICS set up for dynamic build
|
||||
)
|
||||
echo.%CONFIGURATION% | findstr /C:"debug">nul && (
|
||||
echo HOST_OPT=NO>> configure\CONFIG_SITE
|
||||
echo [INFO] EPICS set up for debug build
|
||||
) || (
|
||||
echo [INFO] EPICS set up for optimized build
|
||||
)
|
||||
if "%OS%"=="64BIT" (
|
||||
echo [INFO] Installing MinGW 64bit
|
||||
cinst mingw || cinst mingw
|
||||
) else (
|
||||
echo [INFO] Installing MinGW 32bit
|
||||
cinst mingw --x86 || cinst mingw --x86
|
||||
)
|
||||
)
|
||||
|
||||
echo [INFO] Installing Make 4.1
|
||||
@powershell -Command "(new-object net.webclient).DownloadFile('https://www.aps.anl.gov/epics/download/tools/make-4.1-win64.zip', 'C:\tools\make-4.1.zip')"
|
||||
cd \tools
|
||||
"C:\Program Files\7-Zip\7z" e make-4.1.zip
|
@ -1,90 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e -x
|
||||
|
||||
die() {
|
||||
echo "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
ticker() {
|
||||
while true
|
||||
do
|
||||
sleep 60
|
||||
date -R
|
||||
[ -r "$1" ] && tail -n10 "$1"
|
||||
done
|
||||
}
|
||||
|
||||
CACHEKEY=1
|
||||
|
||||
EPICS_HOST_ARCH=`sh startup/EpicsHostArch`
|
||||
|
||||
[ -e configure/os/CONFIG_SITE.Common.linux-x86 ] || die "Wrong location: $PWD"
|
||||
|
||||
case "$CMPLR" in
|
||||
clang)
|
||||
echo "Host compiler is clang"
|
||||
cat << EOF >> configure/os/CONFIG_SITE.Common.$EPICS_HOST_ARCH
|
||||
GNU = NO
|
||||
CMPLR_CLASS = clang
|
||||
CC = clang
|
||||
CCC = clang++
|
||||
EOF
|
||||
;;
|
||||
*) echo "Host compiler is default";;
|
||||
esac
|
||||
|
||||
if [ "$STATIC" = "YES" ]
|
||||
then
|
||||
echo "Build static libraries/executables"
|
||||
cat << EOF >> configure/CONFIG_SITE
|
||||
SHARED_LIBRARIES=NO
|
||||
STATIC_BUILD=YES
|
||||
EOF
|
||||
fi
|
||||
|
||||
# requires wine and g++-mingw-w64-i686
|
||||
if [ "$WINE" = "32" ]
|
||||
then
|
||||
echo "Cross mingw32"
|
||||
sed -i -e '/CMPLR_PREFIX/d' configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
|
||||
cat << EOF >> configure/os/CONFIG_SITE.linux-x86.win32-x86-mingw
|
||||
CMPLR_PREFIX=i686-w64-mingw32-
|
||||
EOF
|
||||
cat << EOF >> configure/CONFIG_SITE
|
||||
CROSS_COMPILER_TARGET_ARCHS+=win32-x86-mingw
|
||||
EOF
|
||||
fi
|
||||
|
||||
# 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' configure/os/CONFIG_SITE.Common.RTEMS
|
||||
cat << EOF >> configure/os/CONFIG_SITE.Common.RTEMS
|
||||
RTEMS_VERSION=$RTEMS
|
||||
RTEMS_BASE=/home/travis/.cache/rtems${RTEMS}-i386
|
||||
EOF
|
||||
cat << EOF >> 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 $EXTRA
|
||||
|
||||
if [ "$TEST" != "NO" ]
|
||||
then
|
||||
make tapfiles
|
||||
find . -name '*.tap' -print0 | xargs -0 -n1 prove -e cat -f
|
||||
fi
|
@ -1,40 +0,0 @@
|
||||
#!/bin/sh
|
||||
set -e -x
|
||||
|
||||
die() {
|
||||
echo "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
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"
|
125
configure/CONFIG
125
configure/CONFIG
@ -1,117 +1,28 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
#
|
||||
# Common build definitions
|
||||
# CONFIG - Load build configuration data
|
||||
#
|
||||
# Do not make changes to this file!
|
||||
|
||||
ifneq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
|
||||
EPICS_BASE = $(INSTALL_LOCATION)
|
||||
CONFIG = $(TOP)/configure
|
||||
BASE_TOP=YES
|
||||
else
|
||||
CONFIG ?= $(EPICS_BASE)/configure
|
||||
endif
|
||||
# Allow user to override where the build rules come from
|
||||
RULES = $(EPICS_BASE)
|
||||
|
||||
# Provide a default if the user hasn't set EPICS_HOST_ARCH
|
||||
ifeq ($(origin EPICS_HOST_ARCH), undefined)
|
||||
# NB: We use a simply expanded variable here for performance:
|
||||
EPICS_HOST_ARCH := $(shell $(CONFIG)/../startup/EpicsHostArch.pl)
|
||||
endif
|
||||
#
|
||||
|
||||
-include $(CONFIG)/RELEASE
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).Common
|
||||
# RELEASE files point to other application tops
|
||||
include $(TOP)/configure/RELEASE
|
||||
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).Common
|
||||
ifdef T_A
|
||||
-include $(CONFIG)/RELEASE.Common.$(T_A)
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
-include $(TOP)/configure/RELEASE.Common.$(T_A)
|
||||
-include $(TOP)/configure/RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
endif
|
||||
|
||||
include $(CONFIG)/CONFIG_COMMON
|
||||
include $(CONFIG)/CONFIG_FILE_TYPE
|
||||
|
||||
# Base-specific build options
|
||||
#
|
||||
include $(CONFIG)/CONFIG_BASE
|
||||
|
||||
# Site-specific build options
|
||||
#
|
||||
include $(CONFIG)/CONFIG_SITE
|
||||
|
||||
# Version numbering
|
||||
#
|
||||
include $(CONFIG)/CONFIG_BASE_VERSION
|
||||
|
||||
# Host architecture specific definitions
|
||||
#
|
||||
include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).Common
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).Common
|
||||
|
||||
RELEASE_TOPS := $(shell $(CONVERTRELEASE) -T $(TOP) releaseTops)
|
||||
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
|
||||
|
||||
# Cross compile specific definitions
|
||||
#
|
||||
ifneq ($(EPICS_HOST_ARCH),$(T_A))
|
||||
include $(CONFIG)/CONFIG.CrossCommon
|
||||
endif
|
||||
|
||||
# Target architecture specific definitions
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG.Common.$(T_A)
|
||||
|
||||
# Host-Target architecture specific definitions
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
# Site specific target and host-target definitions and overrides
|
||||
#
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.$(T_A)
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
|
||||
# RELEASE file specific definitions
|
||||
#
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
-include $(CONFIG)/CONFIG_APP_INCLUDE
|
||||
endif
|
||||
|
||||
endif # ifdef T_A
|
||||
|
||||
|
||||
# Include <top>/cfg/CONFIG* definitions from tops defined in RELEASE* files
|
||||
#
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
RELEASE_TOPS_REVERSE := $(shell \
|
||||
$(PERL) -e '$$,=" ";print reverse @ARGV' $(RELEASE_TOPS))
|
||||
RELEASE_CFG_CONFIGS = $(foreach top, $(RELEASE_TOPS_REVERSE), \
|
||||
$(wildcard $($(top))/cfg/CONFIG*))
|
||||
ifneq ($(RELEASE_CFG_CONFIGS),)
|
||||
include $(RELEASE_CFG_CONFIGS)
|
||||
endif
|
||||
-include $(TOP)/configure/CONFIG_SITE.Common.$(T_A)
|
||||
-include $(TOP)/configure/CONFIG_SITE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
endif
|
||||
|
||||
# Include $(INSTALL_CFG)/CONFIG* definitions
|
||||
#
|
||||
TOP_CFG_CONFIGS = $(wildcard $(INSTALL_CFG)/CONFIG*)
|
||||
ifneq ($(TOP_CFG_CONFIGS),)
|
||||
include $(TOP_CFG_CONFIGS)
|
||||
endif
|
||||
|
||||
# User specific definitions
|
||||
#
|
||||
-include $(HOME)/configure/CONFIG_USER
|
||||
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH)
|
||||
ifdef T_A
|
||||
-include $(HOME)/configure/CONFIG_USER.Common.$(T_A)
|
||||
-include $(HOME)/configure/CONFIG_USER.$(EPICS_HOST_ARCH).$(T_A)
|
||||
endif
|
||||
|
||||
|
@ -1,31 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Cross compiler default definitions
|
||||
|
||||
# Build class: either HOST or CROSS
|
||||
# Used to determine OPT and WARN compiler flags
|
||||
BUILD_CLASS = CROSS
|
||||
|
||||
# Cross build: either defined or not
|
||||
# Used in os/CONFIG.Common.<arch> files
|
||||
# ifdef CROSS looks better than ifeq ($(BUILD_CLASS),CROSS)
|
||||
CROSS = YES
|
||||
|
||||
GNU_TARGET_INCLUDE_DIR = $(GNU_TARGET:%= $(GNU_DIR)/%/include)
|
||||
GNU_TARGET_LIB_DIR = $(GNU_TARGET:%= $(GNU_DIR)/%/lib)
|
||||
|
||||
CROSS_INCLUDES = $(addprefix -I,$(GNU_TARGET_INCLUDE_DIR))
|
||||
CROSS_LDFLAGS = $(addprefix -L,$(GNU_TARGET_LIB_DIR))
|
||||
|
||||
CMPLR_PREFIX_CROSS=$(addsuffix -,$(GNU_TARGET))
|
||||
CMPLR_PREFIX=$(CMPLR_PREFIX_$(BUILD_CLASS))
|
||||
|
||||
# Cross builds usually use the gnu compiler
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
@ -1,61 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# GNU compiler defaults
|
||||
|
||||
GNU = YES
|
||||
|
||||
CMPLR_CLASS = gcc
|
||||
|
||||
GNU_BIN = $(GNU_DIR)/bin
|
||||
GNU_LIB = $(GNU_DIR)/lib
|
||||
|
||||
CC = $(GNU_BIN)/$(CMPLR_PREFIX)gcc$(CMPLR_SUFFIX)
|
||||
CCC = $(GNU_BIN)/$(CMPLR_PREFIX)g++$(CMPLR_SUFFIX)
|
||||
AR = $(GNU_BIN)/$(CMPLR_PREFIX)ar$(CMPLR_SUFFIX) -rc
|
||||
LD = $(GNU_BIN)/$(CMPLR_PREFIX)ld$(CMPLR_SUFFIX) -r
|
||||
CPP = $(CC) -x c -E
|
||||
RANLIB = $(GNU_BIN)/$(CMPLR_PREFIX)ranlib$(CMPLR_SUFFIX)
|
||||
|
||||
PROF_CFLAGS_YES = -p
|
||||
GPROF_CFLAGS_YES = -pg
|
||||
CODE_CFLAGS = $(PROF_CFLAGS_$(PROFILE)) $(GPROF_CFLAGS_$(GPROF))
|
||||
WARN_CFLAGS_YES = -Wall
|
||||
WARN_CFLAGS_NO = -w
|
||||
OPT_CFLAGS_YES = -O3
|
||||
OPT_CFLAGS_NO = -g
|
||||
|
||||
PROF_CXXFLAGS_YES = -p
|
||||
GPROF_CXXFLAGS_YES = -pg
|
||||
CODE_CXXFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
WARN_CXXFLAGS_YES = -Wall
|
||||
WARN_CXXFLAGS_NO = -w
|
||||
OPT_CXXFLAGS_YES = -O3
|
||||
OPT_CXXFLAGS_NO = -g
|
||||
|
||||
CODE_LDFLAGS = $(PROF_CXXFLAGS_$(PROFILE)) $(GPROF_CXXFLAGS_$(GPROF))
|
||||
|
||||
PIPE_CFLAGS_YES_YES = -pipe
|
||||
PIPE_CFLAGS = $(PIPE_CFLAGS_$(GCC_PIPE)_$(GNU))
|
||||
PIPE_CXXFLAGS = $(PIPE_CFLAGS)
|
||||
|
||||
STATIC_LDFLAGS_YES = -static
|
||||
STATIC_LDFLAGS_NO =
|
||||
|
||||
SHRLIB_CFLAGS = -fPIC
|
||||
SHRLIB_LDFLAGS = -shared -fPIC
|
||||
LOADABLE_SHRLIB_LDFLAGS = -shared -fPIC
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc
|
||||
|
||||
# Use compiler flags to generate header dependancies files
|
||||
HDEPENDS_METHOD = COMP
|
||||
HDEPENDS_COMPFLAGS = -MM -MF $@
|
||||
|
@ -1,584 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# check for add-on CFLAGS and CXXFLAGS
|
||||
#
|
||||
# Rules:
|
||||
# 1) USR_CFLAGS is used
|
||||
# 2) if there is a special USR_CFLAGS_$(OS_CLASS), it's
|
||||
# appended to 1)
|
||||
# 3) if there is no special defined, but a generic USR_CFLAGS_DEFAULT,
|
||||
# this one is appended
|
||||
# 4) if you have the special case that your USR_CFLAGS_$(OS_CLASS) is
|
||||
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
|
||||
# USR_CFLAGS = <defines for all systems>
|
||||
# USR_CFLAGS_WIN = -nil-
|
||||
# USR_CFLAGS_DEFAULT = <defines for most systems, not WIN32>
|
||||
#
|
||||
# These rules apply to these Makefile-variables:
|
||||
# USR_CFLAGS C flags
|
||||
# USR_CXXFLAGS C++ flags
|
||||
# USR_CPPFLAGS c preprocesser flags
|
||||
# SRCS source files for building libraries and prods
|
||||
# USR_SRCS source files for building libraries and prods
|
||||
# PROD_SRCS source files for building prods
|
||||
# LIB_SRCS source files for building libraries
|
||||
# LIBSRCS source files for building libraries (deprecated)
|
||||
# PROD_OBJS object files for building prods
|
||||
# LIB_OBJS object files for building libraries
|
||||
# USR_OBJS object files for building libraries and prods
|
||||
# USR_LIBS libs needed by PROD and TESTPROD and LIBRARY
|
||||
# PROD_LIBS libs needed by PROD and TESTPROD
|
||||
# LIB_LIBS libs needed by shared LIBRARY
|
||||
# SHRLIB_LIBS libs needed by shared LIBRARY
|
||||
# USR_OBJLIBS R3.13 vxWorks object libs needed building libraries and prods
|
||||
# PROD_OBJLIBS R3.13 vxWorks object libs needed for building prods
|
||||
# LIB_OBJLIBS R3.13 vxWorks object libs needed for building libraries
|
||||
# USR_SYS_LIBS system libs needed building libraries and prods
|
||||
# PROD_SYS_LIBS system libs needed for building prods
|
||||
# LIB_SYS_LIBS system libs needed for building libraries
|
||||
# USR_LDFLAGS ld flags for building libraries and prods
|
||||
# PROD_LDFLAGS ld flags for building prods
|
||||
# LIB_LDFLAGS ld flags for building libraries
|
||||
# PROD products to build and install
|
||||
# PROD_HOST products to build and install
|
||||
# PROD_IOC products to build and install
|
||||
# TESTPROD products to build
|
||||
# TESTPROD_HOST products to build
|
||||
# TESTPROD_IOC products to build
|
||||
# LIBRARY libraries to build and install
|
||||
# LIBRARY_HOST libraries to build and install
|
||||
# LIBRARY_IOC libraries to build and install
|
||||
# TESTLIBRARY libraries to build
|
||||
# TESTLIBRARY_HOST libraries to build
|
||||
# TESTLIBRARY_IOC libraries to build
|
||||
# LOADABLE_LIBRARY libraries to build and install
|
||||
# LOADABLE_LIBRARY_HOST libraries to build and install
|
||||
# LOADABLE_LIBRARY_IOC libraries to build and install
|
||||
# SCRIPTS scripts and install
|
||||
# SCRIPTS_HOST host system scripts to install
|
||||
# SCRIPTS_IOC ioc system scripts to install
|
||||
# TESTSCRIPTS scripts
|
||||
# TESTSCRIPTS_HOST host system scripts
|
||||
# TESTSCRIPTS_IOC ioc system scripts
|
||||
# OBJS object files to build and install
|
||||
# OBJS_HOST host system object files to build and install
|
||||
# OBJS_IOC ioc system object files to build and install
|
||||
# USR_INCLUDES include directories
|
||||
# BIN_INSTALLS binaries to install
|
||||
# LIB_INSTALLS library binaries to install
|
||||
# RCS win32 resource files for building libraries and prods
|
||||
# PROD_RCS win32 resource files for building prods
|
||||
# LIB_RCS win32 resource files for building libraries
|
||||
#
|
||||
# Remark:
|
||||
# If you define INC, e.g. INC = getopt.h, the source
|
||||
# (getopt.h) must be in the source directory (..) and/or
|
||||
# in one or more ../os/<OS_CLASS> directories.
|
||||
#
|
||||
# Additional target architecture, T_A, Rules for USR_CFLAGS, USR_CXXFLAGS,
|
||||
# and USR_CPPFLAGS which are applied before the above os_class Rules:
|
||||
# 1) USR_CFLAGS_$(OS_CLASS) is used
|
||||
# 2) if there is a special $(USR_CFLAGS_$(T_A)), it's
|
||||
# appended to 1)
|
||||
# 3) if there is no special defined, but a generic USR_CFLAGS_$(OS_CLASS)_DEFAULT,
|
||||
# this one is appended
|
||||
# 4) if you have the special case that your $(USR_CFLAGS_$(T_A)) is
|
||||
# empty but you don't want 3), you have to define it as '-nil-', e.g.:
|
||||
# USR_CFLAGS_vxWorks = <defines for all OS_CLASS=vxWorks target systems>
|
||||
# USR_CFLAGS_vxWorks-68040 = -nil-
|
||||
# USR_CFLAGS_vxWorks_DEFAULT = <defines for most vxWorks systems, not 68040>
|
||||
#
|
||||
#
|
||||
|
||||
ifneq ($(strip $(USR_CFLAGS_$(T_A))),)
|
||||
USR_CFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CFLAGS_$(OS_CLASS)+=$(USR_CFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CFLAGS_$(OS_CLASS))),)
|
||||
USR_CFLAGS+=$(subst -nil-,,$(USR_CFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CFLAGS_DEFAULT
|
||||
USR_CFLAGS+=$(USR_CFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_INCLUDES_$(OS_CLASS))),)
|
||||
USR_INCLUDES+=$(subst -nil-,,$(USR_INCLUDES_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_INCLUDES_DEFAULT
|
||||
USR_INCLUDES+=$(USR_INCLUDES_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(T_A))),)
|
||||
USR_CXXFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CXXFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CXXFLAGS_$(OS_CLASS)+=$(USR_CXXFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CXXFLAGS_$(OS_CLASS))),)
|
||||
USR_CXXFLAGS+=$(subst -nil-,,$(USR_CXXFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CXXFLAGS_DEFAULT
|
||||
USR_CXXFLAGS+=$(USR_CXXFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CPPFLAGS_$(T_A))),)
|
||||
USR_CPPFLAGS_$(OS_CLASS)+=$(subst -nil-,,$(USR_CPPFLAGS_$(T_A)))
|
||||
else
|
||||
ifdef USR_CPPFLAGS_$(OS_CLASS)_DEFAULT
|
||||
USR_CPPFLAGS_$(OS_CLASS)+=$(USR_CPPFLAGS_$(OS_CLASS)_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_CPPFLAGS_$(OS_CLASS))),)
|
||||
USR_CPPFLAGS+=$(subst -nil-,,$(USR_CPPFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_CPPFLAGS_DEFAULT
|
||||
USR_CPPFLAGS+=$(USR_CPPFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_LDFLAGS_$(OS_CLASS))),)
|
||||
USR_LDFLAGS+=$(subst -nil-,,$(USR_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_LDFLAGS_DEFAULT
|
||||
USR_LDFLAGS+=$(USR_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_LDFLAGS_$(OS_CLASS))),)
|
||||
PROD_LDFLAGS+=$(subst -nil-,,$(PROD_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_LDFLAGS_DEFAULT
|
||||
PROD_LDFLAGS+=$(PROD_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_LDFLAGS_$(OS_CLASS))),)
|
||||
LIB_LDFLAGS+=$(subst -nil-,,$(LIB_LDFLAGS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_LDFLAGS_DEFAULT
|
||||
LIB_LDFLAGS+=$(LIB_LDFLAGS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBSRCS_$(OS_CLASS))),)
|
||||
LIBSRCS += $(subst -nil-,,$(LIBSRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIBSRCS_DEFAULT
|
||||
LIBSRCS+=$(LIBSRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_SRCS_$(OS_CLASS))),)
|
||||
LIB_SRCS += $(subst -nil-,,$(LIB_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_SRCS_DEFAULT
|
||||
LIB_SRCS+=$(LIB_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SRCS_$(OS_CLASS))),)
|
||||
SRCS += $(subst -nil-,,$(SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SRCS_DEFAULT
|
||||
SRCS+=$(SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_SRCS_$(OS_CLASS))),)
|
||||
USR_SRCS += $(subst -nil-,,$(USR_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_SRCS_DEFAULT
|
||||
USR_SRCS+=$(USR_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_SRCS_$(OS_CLASS))),)
|
||||
PROD_SRCS += $(subst -nil-,,$(PROD_SRCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_SRCS_DEFAULT
|
||||
PROD_SRCS+=$(PROD_SRCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(BIN_INSTALLS_$(OS_CLASS))),)
|
||||
BIN_INSTALLS+=$(subst -nil-,,$(BIN_INSTALLS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef BIN_INSTALLS_DEFAULT
|
||||
BIN_INSTALLS+=$(BIN_INSTALLS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_INSTALLS_$(OS_CLASS))),)
|
||||
LIB_INSTALLS+=$(subst -nil-,,$(LIB_INSTALLS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_INSTALLS_DEFAULT
|
||||
LIB_INSTALLS+=$(LIB_INSTALLS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_OBJS_$(OS_CLASS))),)
|
||||
PROD_OBJS+=$(subst -nil-,,$(PROD_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_OBJS_DEFAULT)))
|
||||
PROD_OBJS+=$(PROD_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_OBJS_$(OS_CLASS))),)
|
||||
USR_OBJS+=$(subst -nil-,,$(USR_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(USR_OBJS_DEFAULT)))
|
||||
USR_OBJS+=$(USR_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_$(OS_CLASS))),)
|
||||
OBJS+=$(subst -nil-,,$(OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_DEFAULT)))
|
||||
OBJS+=$(OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_IOC_$(OS_CLASS))),)
|
||||
OBJS_IOC+=$(subst -nil-,,$(OBJS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_IOC_DEFAULT)))
|
||||
OBJS_IOC+=$(OBJS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(OBJS_HOST_$(OS_CLASS))),)
|
||||
OBJS_HOST+=$(subst -nil-,,$(OBJS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(OBJS_HOST_DEFAULT)))
|
||||
OBJS_HOST+=$(OBJS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_OBJLIBS_$(OS_CLASS))),)
|
||||
PROD_OBJLIBS+=$(subst -nil-,,$(PROD_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_OBJLIBS_DEFAULT
|
||||
PROD_OBJLIBS+=$(PROD_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_OBJLIBS_$(OS_CLASS))),)
|
||||
LIB_OBJLIBS+=$(subst -nil-,,$(LIB_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_OBJLIBS_DEFAULT
|
||||
LIB_OBJLIBS+=$(LIB_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_OBJLIBS_$(OS_CLASS))),)
|
||||
USR_OBJLIBS+=$(subst -nil-,,$(USR_OBJLIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_OBJLIBS_DEFAULT
|
||||
USR_OBJLIBS+=$(USR_OBJLIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_OBJS_$(OS_CLASS))),)
|
||||
LIB_OBJS+=$(subst -nil-,,$(LIB_OBJS_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIB_OBJS_DEFAULT)))
|
||||
LIB_OBJS+=$(LIB_OBJS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_$(OS_CLASS))),)
|
||||
LIBRARY+=$(subst -nil-,,$(LIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_DEFAULT)))
|
||||
LIBRARY+=$(LIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_IOC_$(OS_CLASS))),)
|
||||
LIBRARY_IOC+=$(subst -nil-,,$(LIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_IOC_DEFAULT)))
|
||||
LIBRARY_IOC+=$(LIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIBRARY_HOST_$(OS_CLASS))),)
|
||||
LIBRARY_HOST+=$(subst -nil-,,$(LIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LIBRARY_HOST_DEFAULT)))
|
||||
LIBRARY_HOST+=$(LIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_$(OS_CLASS))),)
|
||||
TESTLIBRARY+=$(subst -nil-,,$(TESTLIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_DEFAULT)))
|
||||
TESTLIBRARY+=$(TESTLIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_IOC_$(OS_CLASS))),)
|
||||
TESTLIBRARY_IOC+=$(subst -nil-,,$(TESTLIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_IOC_DEFAULT)))
|
||||
TESTLIBRARY_IOC+=$(TESTLIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTLIBRARY_HOST_$(OS_CLASS))),)
|
||||
TESTLIBRARY_HOST+=$(subst -nil-,,$(TESTLIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTLIBRARY_HOST_DEFAULT)))
|
||||
TESTLIBRARY_HOST+=$(TESTLIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY+=$(subst -nil-,,$(LOADABLE_LIBRARY_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_DEFAULT)))
|
||||
LOADABLE_LIBRARY+=$(LOADABLE_LIBRARY_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_HOST_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY_HOST+=$(subst -nil-,,$(LOADABLE_LIBRARY_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_HOST_DEFAULT)))
|
||||
LOADABLE_LIBRARY_HOST+=$(LOADABLE_LIBRARY_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LOADABLE_LIBRARY_IOC_$(OS_CLASS))),)
|
||||
LOADABLE_LIBRARY_IOC+=$(subst -nil-,,$(LOADABLE_LIBRARY_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(LOADABLE_LIBRARY_IOC_DEFAULT)))
|
||||
LOADABLE_LIBRARY_IOC+=$(LOADABLE_LIBRARY_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_LIBS_$(OS_CLASS))),)
|
||||
PROD_LIBS += $(subst -nil-,,$(PROD_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_LIBS_DEFAULT
|
||||
PROD_LIBS += $(PROD_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
# SHRLIB_LIBS deprecated
|
||||
ifneq ($(strip $(SHRLIB_LIBS_$(OS_CLASS))),)
|
||||
SHRLIB_LIBS += $(subst -nil-,,$(SHRLIB_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SHRLIB_LIBS_DEFAULT
|
||||
SHRLIB_LIBS += $(SHRLIB_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_LIBS_$(OS_CLASS))),)
|
||||
LIB_LIBS += $(subst -nil-,,$(LIB_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_LIBS_DEFAULT
|
||||
LIB_LIBS += $(LIB_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
|
||||
USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_LIBS_DEFAULT
|
||||
USR_LIBS += $(USR_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific library contents (if defined) to SYS_PROD_LIBS
|
||||
#
|
||||
# SYS_PROD_LIBS deprecated
|
||||
ifneq ($(strip $(SYS_PROD_LIBS_$(OS_CLASS))),)
|
||||
SYS_PROD_LIBS += $(subst -nil-,,$(SYS_PROD_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SYS_PROD_LIBS_DEFAULT
|
||||
SYS_PROD_LIBS += $(SYS_PROD_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
PROD_SYS_LIBS+=$(SYS_PROD_LIBS)
|
||||
|
||||
ifneq ($(strip $(PROD_SYS_LIBS_$(OS_CLASS))),)
|
||||
PROD_SYS_LIBS += $(subst -nil-,,$(PROD_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_SYS_LIBS_DEFAULT
|
||||
PROD_SYS_LIBS += $(PROD_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_SYS_LIBS_$(OS_CLASS))),)
|
||||
LIB_SYS_LIBS += $(subst -nil-,,$(LIB_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_SYS_LIBS_DEFAULT
|
||||
LIB_SYS_LIBS += $(LIB_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(USR_SYS_LIBS_$(OS_CLASS))),)
|
||||
USR_SYS_LIBS += $(subst -nil-,,$(USR_SYS_LIBS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef USR_SYS_LIBS_DEFAULT
|
||||
USR_SYS_LIBS += $(USR_SYS_LIBS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific products
|
||||
#
|
||||
ifneq ($(strip $(PROD_$(OS_CLASS))),)
|
||||
PROD+=$(subst -nil-,,$(PROD_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_DEFAULT)))
|
||||
PROD+=$(PROD_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_IOC_$(OS_CLASS))),)
|
||||
PROD_IOC+=$(subst -nil-,,$(PROD_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_IOC_DEFAULT)))
|
||||
PROD_IOC+=$(PROD_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_HOST_$(OS_CLASS))),)
|
||||
PROD_HOST+=$(subst -nil-,,$(PROD_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(PROD_HOST_DEFAULT)))
|
||||
PROD_HOST+=$(PROD_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific products
|
||||
#
|
||||
ifneq ($(strip $(TESTPROD_$(OS_CLASS))),)
|
||||
TESTPROD+=$(subst -nil-,,$(TESTPROD_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_DEFAULT)))
|
||||
TESTPROD+=$(TESTPROD_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTPROD_IOC_$(OS_CLASS))),)
|
||||
TESTPROD_IOC+=$(subst -nil-,,$(TESTPROD_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_IOC_DEFAULT)))
|
||||
TESTPROD_IOC+=$(TESTPROD_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTPROD_HOST_$(OS_CLASS))),)
|
||||
TESTPROD_HOST+=$(subst -nil-,,$(TESTPROD_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTPROD_HOST_DEFAULT)))
|
||||
TESTPROD_HOST+=$(TESTPROD_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq ($(strip $(SCRIPTS_$(OS_CLASS))),)
|
||||
SCRIPTS += $(subst -nil-,,$(SCRIPTS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef SCRIPTS_DEFAULT
|
||||
SCRIPTS += $(SCRIPTS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SCRIPTS_IOC_$(OS_CLASS))),)
|
||||
SCRIPTS_IOC+=$(subst -nil-,,$(SCRIPTS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(SCRIPTS_IOC_DEFAULT)))
|
||||
SCRIPTS_IOC+=$(SCRIPTS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(SCRIPTS_HOST_$(OS_CLASS))),)
|
||||
SCRIPTS_HOST+=$(subst -nil-,,$(SCRIPTS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(SCRIPTS_HOST_DEFAULT)))
|
||||
SCRIPTS_HOST+=$(SCRIPTS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific scripts
|
||||
#
|
||||
ifneq ($(strip $(TESTSCRIPTS_$(OS_CLASS))),)
|
||||
TESTSCRIPTS += $(subst -nil-,,$(TESTSCRIPTS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef TESTSCRIPTS_DEFAULT
|
||||
TESTSCRIPTS += $(TESTSCRIPTS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTSCRIPTS_IOC_$(OS_CLASS))),)
|
||||
TESTSCRIPTS_IOC+=$(subst -nil-,,$(TESTSCRIPTS_IOC_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTSCRIPTS_IOC_DEFAULT)))
|
||||
TESTSCRIPTS_IOC+=$(TESTSCRIPTS_IOC_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(TESTSCRIPTS_HOST_$(OS_CLASS))),)
|
||||
TESTSCRIPTS_HOST+=$(subst -nil-,,$(TESTSCRIPTS_HOST_$(OS_CLASS)))
|
||||
else
|
||||
ifneq (,$(strip $(TESTSCRIPTS_HOST_DEFAULT)))
|
||||
TESTSCRIPTS_HOST+=$(TESTSCRIPTS_HOST_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# concat specific resource files
|
||||
#
|
||||
ifneq ($(strip $(RCS_$(OS_CLASS))),)
|
||||
RCS += $(subst -nil-,,$(RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef RCS_DEFAULT
|
||||
RCS += $(RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(PROD_RCS_$(OS_CLASS))),)
|
||||
PROD_RCS += $(subst -nil-,,$(PROD_RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef PROD_RCS_DEFAULT
|
||||
PROD_RCS+=$(PROD_RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(LIB_RCS_$(OS_CLASS))),)
|
||||
LIB_RCS += $(subst -nil-,,$(LIB_RCS_$(OS_CLASS)))
|
||||
else
|
||||
ifdef LIB_RCS_DEFAULT
|
||||
LIB_RCS+=$(LIB_RCS_DEFAULT)
|
||||
endif
|
||||
endif
|
||||
|
@ -1,32 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
export TOP
|
||||
|
||||
ifneq ($(RELEASE_TOPS),)
|
||||
|
||||
define RELEASE_FLAGS_template
|
||||
export $(1)
|
||||
$(1)_HOST_BIN = $$(strip $$($(1)))/bin/$(EPICS_HOST_ARCH)
|
||||
$(1)_HOST_LIB = $$(strip $$($(1)))/lib/$(EPICS_HOST_ARCH)
|
||||
$(1)_BIN = $$(wildcard $$(strip $$($(1)))/bin/$(T_A))
|
||||
$(1)_LIB = $$(wildcard $$(strip $$($(1)))/lib/$(T_A))
|
||||
SHRLIB_SEARCH_DIRS += $$($(1)_LIB)
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/compiler/$(CMPLR_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include/os/$(OS_CLASS)))
|
||||
RELEASE_INCLUDES += $$(addprefix -I,$$(wildcard $$(strip $$($(1)))/include))
|
||||
RELEASE_DBD_DIRS += $$(wildcard $$(strip $$($(1)))/dbd)
|
||||
RELEASE_DB_DIRS += $$(wildcard $$(strip $$($(1)))/db)
|
||||
RELEASE_PERL_MODULE_DIRS += $$(wildcard $$(strip $$($(1)))/lib/perl)
|
||||
endef
|
||||
$(foreach top, $(RELEASE_TOPS), \
|
||||
$(eval $(call RELEASE_FLAGS_template,$(top))))
|
||||
|
||||
endif
|
||||
|
@ -1,94 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# EPICS Base directories
|
||||
|
||||
EPICS_BASE_HOST_BIN = $(EPICS_BASE)/bin/$(EPICS_HOST_ARCH)
|
||||
EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)
|
||||
ifdef T_A
|
||||
EPICS_BASE_LIB = $(EPICS_BASE)/lib/$(T_A)
|
||||
EPICS_BASE_BIN = $(EPICS_BASE)/bin/$(T_A)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# EPICS Base Ioc libraries
|
||||
|
||||
EPICS_BASE_IOC_LIBS += dbRecStd dbCore ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# EPICS Base Host libraries
|
||||
|
||||
EPICS_BASE_HOST_LIBS += cas gdd
|
||||
EPICS_BASE_HOST_LIBS += ca Com
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Version number for base shared libraries (and win32 products)
|
||||
|
||||
ifdef BASE_TOP
|
||||
# Unix lib.so.<v.r.m> Darwin lib.<v.r.m>.dylib
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
# Windows only allows 2 levels of version numbering
|
||||
PROD_VERSION = $(EPICS_VERSION).$(EPICS_REVISION)
|
||||
BASE_CPPFLAGS += -DUSE_TYPED_RSET
|
||||
endif # BASE_TOP
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Base c preprocessor flags
|
||||
|
||||
# osithread default stack
|
||||
OSITHREAD_USE_DEFAULT_STACK = NO
|
||||
OSITHREAD_DEFAULT_STACK_FLAGS_YES = -DOSITHREAD_USE_DEFAULT_STACK
|
||||
|
||||
BASE_CPPFLAGS += $(OSITHREAD_DEFAULT_STACK_FLAGS_$(OSITHREAD_USE_DEFAULT_STACK))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Where to find the installed build tools
|
||||
# Windows does not like commands with relative paths starting ../
|
||||
# but the Perl scripts in TOP/src/tools are OK
|
||||
|
||||
TOOLS = $(abspath $(EPICS_BASE_HOST_BIN))
|
||||
FIND_TOOL = $(firstword $(wildcard $(TOOLS)/$(1) $(TOP)/src/tools/$(1)))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# EPICS Base build tools and tool flags
|
||||
|
||||
MAKEBPT = $(TOOLS)/makeBpt$(HOSTEXE)
|
||||
DBEXPAND = $(PERL) $(TOOLS)/dbdExpand.pl
|
||||
DBTORECORDTYPEH = $(PERL) $(TOOLS)/dbdToRecordtypeH.pl
|
||||
DBTOMENUH = $(PERL) $(TOOLS)/dbdToMenuH.pl
|
||||
REGISTERRECORDDEVICEDRIVER = $(PERL) $(TOOLS)/registerRecordDeviceDriver.pl
|
||||
CONVERTRELEASE = $(PERL) $(call FIND_TOOL,convertRelease.pl)
|
||||
FULLPATHNAME = $(PERL) $(TOOLS)/fullPathName.pl
|
||||
TAPTOJUNIT = $(PERL) $(TOOLS)/tap-to-junit-xml.pl
|
||||
GENVERSIONHEADER = $(PERL) $(TOOLS)/genVersionHeader.pl $(QUIET_FLAG)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# tools for installing libraries and products
|
||||
INSTALL = $(PERL) $(TOOLS)/installEpics.pl $(QUIET_FLAG)
|
||||
INSTALL_PRODUCT = $(INSTALL)
|
||||
INSTALL_LIBRARY = $(INSTALL)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# tools for making header dependancies and variable replacement
|
||||
MKMF = $(PERL) $(TOOLS)/mkmf.pl
|
||||
REPLACEVAR = $(PERL) $(TOOLS)/replaceVAR.pl
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Our versions of lex (flex) and yacc (antelope)
|
||||
EYACC = $(TOOLS)/antelope$(HOSTEXE)
|
||||
ELEX = $(TOOLS)/e_flex$(HOSTEXE) -S$(EPICS_BASE)/include/flex.skel.static
|
||||
|
||||
YACC = $(EYACC)
|
||||
LEX = $(ELEX)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# The 3.15 version of msi supports new options
|
||||
|
||||
MSI3_15 = $(EPICS_BASE_HOST_BIN)/msi
|
@ -1,74 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# EPICS Version information
|
||||
#
|
||||
# Only the person making an official EPICS release should make changes in
|
||||
# this file.
|
||||
#
|
||||
# EPICS_SITE_VERSION is defined in CONFIG_SITE for sites that want a local
|
||||
# version number to be included in the reported version string.
|
||||
|
||||
# We define BASE_3_14 and BASE_3_15 as NO and BASE_3_16 as YES, so
|
||||
# ifdef BASE_3_14
|
||||
# true for 3.14 or later
|
||||
# ifdef BASE_3_15
|
||||
# true for 3.15 or later
|
||||
# ifeq ($(BASE_3_14),YES)
|
||||
# true for 3.14.x only
|
||||
# ifeq ($(BASE_3_15),YES)
|
||||
# true for 3.15 only
|
||||
# ifeq ($(BASE_3_16),YES)
|
||||
# true for 3.16 only.
|
||||
|
||||
BASE_3_14 = NO
|
||||
BASE_3_15 = NO
|
||||
BASE_3_16 = YES
|
||||
|
||||
# EPICS_VERSION must be a number >0 and <256
|
||||
EPICS_VERSION = 3
|
||||
|
||||
# EPICS_REVISION must be a number >=0 and <256
|
||||
EPICS_REVISION = 16
|
||||
|
||||
# EPICS_MODIFICATION must be a number >=0 and <256
|
||||
EPICS_MODIFICATION = 1
|
||||
|
||||
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
|
||||
# Not included if zero
|
||||
EPICS_PATCH_LEVEL = 0
|
||||
|
||||
# This will end in -DEV between official releases
|
||||
EPICS_DEV_SNAPSHOT=-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-pre1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre2
|
||||
#EPICS_DEV_SNAPSHOT=-pre2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc1
|
||||
#EPICS_DEV_SNAPSHOT=-rc1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc2
|
||||
#EPICS_DEV_SNAPSHOT=-rc2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=
|
||||
|
||||
# No changes should be needed below here
|
||||
|
||||
ifneq ($(EPICS_PATCH_LEVEL),0)
|
||||
EPICS_PATCH_VSTRING=.$(EPICS_PATCH_LEVEL)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(EPICS_SITE_VERSION)),)
|
||||
EPICS_SITE_VSTRING=-$(EPICS_SITE_VERSION)
|
||||
endif
|
||||
|
||||
EPICS_SHORT_VERSION=$(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)$(EPICS_PATCH_VSTRING)
|
||||
EPICS_VERSION_NUMBER=$(EPICS_SHORT_VERSION)$(EPICS_DEV_SNAPSHOT)$(EPICS_SITE_VSTRING)
|
||||
EPICS_VERSION_STRING="EPICS Version $(EPICS_VERSION_NUMBER)"
|
||||
|
||||
# Provide this in case anyone is still using the old name
|
||||
COMMIT_DATE="-no-date-"
|
@ -1,463 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# CONFIG_COMMON
|
||||
#
|
||||
# This file is to be maintained by the community.
|
||||
#
|
||||
# Common Configuration Information
|
||||
|
||||
#-------------------------------------------------------
|
||||
# POSIX is OS default
|
||||
POSIX=YES
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Divider symbol
|
||||
DIVIDER = .
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build architectures
|
||||
|
||||
# CROSS1 will be defined only when CROSS_COMPILER_HOST_ARCHS is NOT defined
|
||||
CROSS1 = $(CROSS_COMPILER_TARGET_ARCHS$(word 1,$(CROSS_COMPILER_HOST_ARCHS)))
|
||||
|
||||
# CROSS2 will be defined only when CROSS_COMPILER_HOST_ARCHS is defined
|
||||
# and EPICS_HOST_ARCH is one of its words
|
||||
CROSS2 = $(CROSS_COMPILER_TARGET_ARCHS$(filter-out 1,$(words $(filter $(EPICS_HOST_ARCH),$(CROSS_COMPILER_HOST_ARCHS)))))
|
||||
|
||||
BUILD_ARCHS = $(EPICS_HOST_ARCH) $(CROSS1) $(CROSS2)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Default for perl if it's on the PATH,
|
||||
# otherwise override this in os/CONFIG_SITE.<host_arch>.Common
|
||||
PERL = perl -CSD
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Check configure/RELEASE file for consistency
|
||||
CHECK_RELEASE_YES = checkRelease
|
||||
CHECK_RELEASE_NO = noCheckRelease
|
||||
CHECK_RELEASE_WARN = warnRelease
|
||||
|
||||
#-------------------------------------------------------
|
||||
# GNU directory
|
||||
# GNU_DIR definition is here because it is used to find
|
||||
# READLINE library even if GNU compiler is not used
|
||||
GNU_DIR = /usr
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Directories
|
||||
|
||||
INSTALL_LOCATION = $(TOP)
|
||||
|
||||
INSTALL_LOCATION_LIB = $(INSTALL_LOCATION)/lib
|
||||
INSTALL_LOCATION_BIN = $(INSTALL_LOCATION)/bin
|
||||
|
||||
INSTALL_HOST_BIN = $(INSTALL_LOCATION_BIN)/$(EPICS_HOST_ARCH)
|
||||
INSTALL_HOST_LIB = $(INSTALL_LOCATION_LIB)/$(EPICS_HOST_ARCH)
|
||||
|
||||
INSTALL_INCLUDE = $(INSTALL_LOCATION)/include
|
||||
INSTALL_DOC = $(INSTALL_LOCATION)/doc
|
||||
INSTALL_HTML = $(INSTALL_LOCATION)/html
|
||||
INSTALL_TEMPLATES = $(INSTALL_LOCATION)/templates
|
||||
INSTALL_DBD = $(INSTALL_LOCATION)/dbd
|
||||
INSTALL_DB = $(INSTALL_LOCATION)/db
|
||||
INSTALL_CONFIG = $(INSTALL_LOCATION)/configure
|
||||
|
||||
# Directory for OS independant build created files
|
||||
COMMON_DIR = ../O.Common
|
||||
|
||||
# IOC's absolute path to $(TOP), may be overridden inside the application
|
||||
IOCS_APPL_TOP = $(shell $(FULLPATHNAME) $(INSTALL_LOCATION))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Make echo output - suppress echoing if make's '-s' flag is set
|
||||
NOP = :
|
||||
ECHO = @$(if $(findstring s,$(patsubst T_A=%,,$(MAKEFLAGS))),$(NOP),echo)
|
||||
QUIET_FLAG := $(if $(findstring s,$(MAKEFLAGS)),-q,)
|
||||
|
||||
#-------------------------------------------------------
|
||||
ifdef T_A
|
||||
|
||||
INSTALL_LIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_SHRLIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_TCLLIB = $(INSTALL_LOCATION_LIB)/$(T_A)
|
||||
INSTALL_BIN = $(INSTALL_LOCATION_BIN)/$(T_A)
|
||||
|
||||
#Directories for libraries
|
||||
SHRLIB_SEARCH_DIRS = $(INSTALL_LIB)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Ext, app, and module configure dir targets
|
||||
CONFIG_INSTALLS += ../RULES_BUILD ../RELEASE*
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Cross compile default, HOST or CROSS, CONFIG.crossCommon will override
|
||||
BUILD_CLASS = HOST
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build defaults, CONFIG_SITE, CONFIG, or os/CONFIG* will override
|
||||
STATIC_BUILD=NO
|
||||
SHARED_LIBRARIES=YES
|
||||
HOST_OPT=YES
|
||||
CROSS_OPT=YES
|
||||
HOST_WARN=YES
|
||||
CROSS_WARN=YES
|
||||
GNU=NO
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Run checkRelease in $(TOP)/configure/O.*
|
||||
CONFIG_TARGETS += $(CHECK_RELEASE_$(CHECK_RELEASE))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prefix and suffix
|
||||
DEP = .d
|
||||
OBJ = .o
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX =
|
||||
LIB_PREFIX =
|
||||
LIB_SUFFIX =
|
||||
SHRLIB_PREFIX = $(LIB_PREFIX)
|
||||
DLLSTUB_PREFIX = $(LIB_PREFIX)
|
||||
DLLSTUB_SUFFIX = $(LIB_SUFFIX)
|
||||
|
||||
BUILDLIB_PREFIX_YES = $(DLLSTUB_PREFIX)
|
||||
BUILDLIB_PREFIX_NO = $(LIB_PREFIX)
|
||||
BUILDLIB_SUFFIX_YES = $(DLLSTUB_SUFFIX)
|
||||
BUILDLIB_SUFFIX_NO = $(LIB_SUFFIX)
|
||||
BUILDLIB_PREFIX = $(BUILDLIB_PREFIX_$(SHARED_LIBRARIES))
|
||||
BUILDLIB_SUFFIX = $(BUILDLIB_SUFFIX_$(SHARED_LIBRARIES))
|
||||
|
||||
#--------------------------------------------------
|
||||
# vpath directories
|
||||
POSIX_YES = os/posix
|
||||
GENERIC_SRC_DIRS = .. $(SRC_DIRS)
|
||||
OS_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, os/$(OS_CLASS) $(POSIX_$(POSIX)) os/default ))
|
||||
CMPLR_SRC_DIRS += . $(foreach dir, .. $(SRC_DIRS), \
|
||||
$(addprefix $(dir)/, compiler/$(CMPLR_CLASS) compiler/default ))
|
||||
ALL_SRC_DIRS = $(CMPLR_SRC_DIRS) $(OS_SRC_DIRS) $(GENERIC_SRC_DIRS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# compile line include directories
|
||||
INSTALL_INCLUDES += \
|
||||
-I$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)/os/$(OS_CLASS) \
|
||||
-I$(INSTALL_INCLUDE)
|
||||
SRC_INCLUDES = -I$(COMMON_DIR) $(addprefix -I, $(wildcard $(ALL_SRC_DIRS)))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Target filename definitions
|
||||
OBJSNAME = $(addsuffix $(OBJ),$(basename $(OBJS)))
|
||||
PRODNAME = $(addsuffix $(EXE),$(basename $(PROD)))
|
||||
TESTPRODNAME = $(addsuffix $(EXE),$(basename $(TESTPROD)))
|
||||
|
||||
SHRLIBNAME = $(SHRLIBNAME_$(SHARED_LIBRARIES))
|
||||
TESTSHRLIBNAME = $(TESTSHRLIBNAME_$(SHARED_LIBRARIES))
|
||||
|
||||
#--------------------------------------------------
|
||||
# obj files
|
||||
|
||||
TARGET_OBJS = $($*_OBJLIBS) $($*_LDOBJS) $(addsuffix $(OBJ),$(basename $($*_OBJS) $($*_SRCS)))
|
||||
|
||||
PRODUCT_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(USR_OBJS) $(PROD_OBJS)))
|
||||
PROD_LD_OBJS = $(USR_OBJLIBS) $(PROD_OBJLIBS) $(TARGET_OBJS) $(PRODUCT_OBJS)
|
||||
|
||||
LIBRARY_OBJS = $(addsuffix $(OBJ),$(basename $(SRCS) $(USR_SRCS) $(LIB_SRCS) $(LIBSRCS) $(USR_OBJS) $(LIB_OBJS)))
|
||||
LIBRARY_LD_OBJS = $(USR_OBJLIBS) $(LIB_OBJLIBS) $(TARGET_OBJS) $(LIBRARY_OBJS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Windows resource files
|
||||
|
||||
TARGET_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $($*_RCS))),)
|
||||
|
||||
PROD_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(PROD_RCS))),)
|
||||
PROD_LD_RESS = $(TARGET_RESS) $(PROD_RESS)
|
||||
|
||||
LIBRARY_RESS = $(if $(RES),$(addsuffix $(RES),$(basename $(RCS) $(LIB_RCS) $(LIBRARY_RCS))),)
|
||||
LIBRARY_LD_RESS = $(TARGET_RESS) $(LIBRARY_RESS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C preprocessor, compiler, and linker flag defaults
|
||||
|
||||
# Target architecture specific flags
|
||||
ARCH_DEP_CPPFLAGS =
|
||||
ARCH_DEP_CFLAGS =
|
||||
ARCH_DEP_CXXFLAGS = $(ARCH_DEP_CFLAGS)
|
||||
ARCH_DEP_LDFLAGS =
|
||||
ARCH_DEP_LDLIBS =
|
||||
|
||||
# Target operating system specific flags
|
||||
OP_SYS_CPPFLAGS =
|
||||
OP_SYS_CFLAGS =
|
||||
OP_SYS_CXXFLAGS = $(OP_SYS_CFLAGS)
|
||||
OP_SYS_LDFLAGS =
|
||||
OP_SYS_INCLUDES =
|
||||
|
||||
# Makefile specific flags
|
||||
USR_INCLUDES =
|
||||
USR_CFLAGS =
|
||||
USR_CXXFLAGS =
|
||||
USR_LDFLAGS =
|
||||
USR_LIBS =
|
||||
USR_CPPFLAGS =
|
||||
USR_DBDFLAGS =
|
||||
USR_ARFLAGS =
|
||||
|
||||
# Variables to be set only on the command-line:
|
||||
# CMD_INCLUDES =
|
||||
# CMD_CFLAGS =
|
||||
# CMD_CXXFLAGS =
|
||||
# CMD_LDFLAGS =
|
||||
# CMD_CPPFLAGS =
|
||||
# CMD_DBFLAGS =
|
||||
# CMD_DBDFLAGS =
|
||||
# CMD_ARFLAGS =
|
||||
|
||||
# Debug specific options
|
||||
DEBUG_CPPFLAGS =
|
||||
DEBUG_CFLAGS =
|
||||
DEBUG_CXXFLAGS = $(DEBUG_CFLAGS)
|
||||
DEBUG_LDFLAGS =
|
||||
DEBUG_LDLIBS =
|
||||
|
||||
# Target specific options
|
||||
TARGET_INCLUDES = $($(basename $@)_INCLUDES_$(T_A))
|
||||
TARGET_CFLAGS = $($(basename $@)_CFLAGS_$(T_A))
|
||||
TARGET_CXXFLAGS = $($(basename $@)_CXXFLAGS_$(T_A))
|
||||
TARGET_CPPFLAGS = $($(basename $@)_CPPFLAGS_$(T_A))
|
||||
|
||||
TARGET_INCLUDES += $($(basename $@)_INCLUDES_$(OS_CLASS)) $($(basename $@)_INCLUDES)
|
||||
TARGET_CFLAGS += $($(basename $@)_CFLAGS_$(OS_CLASS)) $($(basename $@)_CFLAGS)
|
||||
TARGET_CXXFLAGS += $($(basename $@)_CXXFLAGS_$(OS_CLASS)) $($(basename $@)_CXXFLAGS)
|
||||
TARGET_CPPFLAGS += $($(basename $@)_CPPFLAGS_$(OS_CLASS)) $($(basename $@)_CPPFLAGS)
|
||||
|
||||
TARGET_LDFLAGS = $($*_LDFLAGS)
|
||||
|
||||
# Warnings flags
|
||||
WARN_CPPFLAGS = $(WARN_CPPFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CFLAGS = $(WARN_CFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
WARN_CXXFLAGS = $(WARN_CXXFLAGS_$($(BUILD_CLASS)_WARN))
|
||||
|
||||
# Optimization flags
|
||||
OPT_CPPFLAGS = $(OPT_CPPFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
OPT_CFLAGS = $(OPT_CFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
OPT_CXXFLAGS = $(OPT_CXXFLAGS_$($(BUILD_CLASS)_OPT))
|
||||
|
||||
# Static build flags
|
||||
STATIC_CFLAGS = $(STATIC_CFLAGS_$(STATIC_BUILD))
|
||||
STATIC_CXXCFLAGS = $(STATIC_CXXFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDFLAGS = $(STATIC_LDFLAGS_$(STATIC_BUILD))
|
||||
STATIC_LDLIBS = $(STATIC_LDLIBS_$(STATIC_BUILD))
|
||||
|
||||
#--------------------------------------------------
|
||||
# cflags for shared library src files (from SHRLIB_CFLAGS)
|
||||
LIBRARY_SRCS=$(basename $(foreach lib,$(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY),$($(lib)_OBJSNAME) $(LIBRARY_OBJS)))
|
||||
LIBRARY_SRC_CFLAGS=$($(patsubst $*,SHRLIB,$(findstring $*,$(LIBRARY_SRCS)))_CFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# prefix, suffix, and ldflags for loadable shared libraries
|
||||
TARGET_LIB_LDFLAGS=$($(patsubst $*,LOADABLE_,$(findstring $*,$(LOADABLE_LIBRARY)))SHRLIB_LDFLAGS)
|
||||
LOADABLE_SHRLIB_PREFIX=$(SHRLIB_PREFIX)
|
||||
LOADABLE_SHRLIB_SUFFIX=$(SHRLIB_SUFFIX)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command-line input support default
|
||||
COMMANDLINE_LIBRARY = EPICS
|
||||
OP_SYS_LDLIBS += $(LDLIBS_$(COMMANDLINE_LIBRARY))
|
||||
OP_SYS_LDFLAGS += $(LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
RUNTIME_LDFLAGS += $(RUNTIME_LDFLAGS_$(COMMANDLINE_LIBRARY))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Flags
|
||||
|
||||
INCLUDES = -I. $(SRC_INCLUDES) $(INSTALL_INCLUDES) $(RELEASE_INCLUDES)\
|
||||
$(TARGET_INCLUDES) $(USR_INCLUDES) $(CMD_INCLUDES) $(OP_SYS_INCLUDES)\
|
||||
$($(BUILD_CLASS)_INCLUDES)
|
||||
|
||||
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
|
||||
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
|
||||
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
|
||||
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
|
||||
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
|
||||
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
|
||||
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
|
||||
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
|
||||
$(GNU_LDLIBS_$(GNU))
|
||||
|
||||
CPPFLAGS = $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
|
||||
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
|
||||
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
|
||||
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# ar definition default
|
||||
ARFLAGS =
|
||||
ARCMD = $(AR) $(ARFLAGS) $(USR_ARFLAGS) $(CMD_ARFLAGS) $@ $(LIBRARY_LD_OBJS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# 'Munch' link-edit
|
||||
MUNCH_CMD = $(LD) $(MUNCH_LDFLAGS) -o $@ $^
|
||||
|
||||
#--------------------------------------------------
|
||||
# LEX default options
|
||||
#
|
||||
# Allow 8-bit characters
|
||||
LEXOPT += -8
|
||||
# Generate an "interactive" scanner, solves problems at EOF.
|
||||
LEXOPT += -I
|
||||
|
||||
#--------------------------------------------------
|
||||
# Build compile line here
|
||||
|
||||
COMPILE.c = $(CC) $(CPPFLAGS) $(CFLAGS) $(INCLUDES)
|
||||
COMPILE.cpp = $(CCC) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES)
|
||||
|
||||
#--------------------------------------------------
|
||||
# C preprocessor command
|
||||
PREPROCESS.cpp = $(CPP) $(CPPFLAGS) $(INCLUDES) $< > $@
|
||||
|
||||
#--------------------------------------------------
|
||||
# genVersion header defaults
|
||||
|
||||
# C macro name
|
||||
GENVERSIONMACRO = VCSVERSION
|
||||
# C macro default value (empty to use date+time)
|
||||
GENVERSIONDEFAULT =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Header dependency file generation
|
||||
|
||||
HDEPENDS_METHOD = MKMF
|
||||
|
||||
HDEPENDS_MKMFFLAGS = -m $@ $(INCLUDES) $*$(OBJ)
|
||||
HDEPENDS_MKMF.c = $(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDS_MKMFFLAGS)
|
||||
HDEPENDS_MKMF.cpp = $(MKMF) $(HDEPENDS_FLAGS) $(HDEPENDS_MKMFFLAGS)
|
||||
|
||||
HDEPENDS_COMP.c = $(COMPILE.c) $(HDEPENDS_COMPFLAGS) $(HDEPENDS_ARCHFLAGS)
|
||||
HDEPENDS_COMP.cpp = $(COMPILE.cpp) $(HDEPENDS_COMPFLAGS) $(HDEPENDS_ARCHFLAGS)
|
||||
|
||||
HDEPENDS.c = $(HDEPENDS_$(HDEPENDS_METHOD).c)
|
||||
HDEPENDS.cpp = $(HDEPENDS_$(HDEPENDS_METHOD).cpp)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Dependency files
|
||||
|
||||
TARGET_SRCS = $(foreach name, \
|
||||
$(TESTPROD) $(PROD) $(TESTLIBRARY) $(LIBRARY) $(LOADABLE_LIBRARY), \
|
||||
$($(name)_SRCS))
|
||||
SRC_FILES = $(LIB_SRCS) $(LIBSRCS) $(SRCS) $(USR_SRCS) $(PROD_SRCS) $(TARGET_SRCS)
|
||||
HDEPENDS_FILES = $(addsuffix $(DEP),$(notdir $(basename $(SRC_FILES))))
|
||||
|
||||
#--------------------------------------------------
|
||||
# Deprecated and no longer used in Base
|
||||
|
||||
PATH_FILTER = $(1)$(warning PATH_FILTER is deprecated; used for $(1))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Names of installed items
|
||||
#
|
||||
# each list starts with the destination directory name(s)
|
||||
# to make sure it's there
|
||||
|
||||
INSTALL_PROD= $(PRODNAME:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_LIBS= $(LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_MUNCHS= $(MUNCHNAME:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_SHRLIBS= $(SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_LOADABLE_SHRLIBS= $(LOADABLE_SHRLIBNAME:%=$(INSTALL_SHRLIB)/%)
|
||||
INSTALL_DLLSTUB_LIBS=$(DLLSTUB_LIBNAME:%=$(INSTALL_LIB)/%)
|
||||
INSTALL_TCLLIBS=$(TCLLIBNAME:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_TCLINDEX=$(TCLINDEX:%=$(INSTALL_TCLLIB)/%)
|
||||
INSTALL_SCRIPTS = $(SCRIPTS:%= $(INSTALL_BIN)/%)
|
||||
INSTALL_OBJS = $(OBJSNAME:%= $(INSTALL_BIN)/%)
|
||||
|
||||
INSTALL_DOCS = $(DOCS:%= $(INSTALL_DOC)/%)
|
||||
INSTALL_HTMLS = $(HTMLS:%= $(INSTALL_HTML)/$(HTMLS_DIR)/%)
|
||||
|
||||
INSTALL_TEMPLATE = $(addprefix $(INSTALL_TEMPLATES_SUBDIR)/, \
|
||||
$(subst $(CONFIG),top/configure,$(TEMPLATES)))
|
||||
INSTALL_CONFIGS = $(CONFIGS:%= $(INSTALL_CONFIG)/%)
|
||||
|
||||
INSTALL_BIN_INSTALLS = $(addprefix $(INSTALL_BIN)/,$(notdir $(BIN_INSTALLS)))
|
||||
INSTALL_LIB_INSTALLS = $(addprefix $(INSTALL_LIB)/,$(notdir $(LIB_INSTALLS)))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Installed file permissions
|
||||
BIN_PERMISSIONS = 555
|
||||
LIB_PERMISSIONS = 444
|
||||
SHRLIB_PERMISSIONS = 555
|
||||
INSTALL_PERMISSIONS = 444
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#
|
||||
# auto determine the directory paths that things are installed to
|
||||
# RULES:
|
||||
# 0) found in any one of several compiler specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)
|
||||
# 1) not found in (0) and found in any one of several OS specific paths
|
||||
# => install to $(INSTALL_INCLUDE)/os/$(OS_CLASS)
|
||||
# 2) not found in (1) and found in generic paths
|
||||
# => install to $(INSTALL_INCLUDE)
|
||||
# 3) not found in (1) or (2) then may be (not yet) computer generated
|
||||
# => install into $(INSTALL_INCLUDE)/os/$(OS_CLASS) and let
|
||||
# build rules work on vpath
|
||||
#
|
||||
# These rules guarantee that the users include from
|
||||
# no more than three directories
|
||||
#
|
||||
INSTALL_INC += $(foreach inc, $(INC), \
|
||||
$(firstword \
|
||||
$(CMPLR_INSTALL_INC) \
|
||||
$(OS_INSTALL_INC) \
|
||||
$(GENERIC_INSTALL_INC) \
|
||||
$(GENERATED_INSTALL_INC) ) )
|
||||
INSTALL_INC += $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INC_$(OS_CLASS)) )
|
||||
|
||||
#
|
||||
# Rule 0
|
||||
#
|
||||
CMPLR_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/, $(INSTALL_INC_jjj) )
|
||||
INSTALL_INC_jjj = $(foreach dir, $(CMPLR_SRC_DIRS), $(INSTALL_INC_iii) )
|
||||
INSTALL_INC_iii = $(subst $(dir)/, , $(INSTALL_INC_hhh) )
|
||||
INSTALL_INC_hhh = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 1
|
||||
#
|
||||
OS_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/os/$(OS_CLASS)/, $(INSTALL_INC_ggg) )
|
||||
INSTALL_INC_ggg = $(foreach dir, $(OS_SRC_DIRS), $(INSTALL_INC_fff) )
|
||||
INSTALL_INC_fff = $(subst $(dir)/, , $(INSTALL_INC_eee) )
|
||||
INSTALL_INC_eee = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 2
|
||||
#
|
||||
GENERIC_INSTALL_INC = $(addprefix $(INSTALL_INCLUDE)/, $(INSTALL_INC_ccc) )
|
||||
INSTALL_INC_ccc = $(foreach dir, .. $(SRC_DIRS), $(INSTALL_INC_bbb) )
|
||||
INSTALL_INC_bbb = $(subst $(dir)/, , $(INSTALL_INC_aaa) )
|
||||
INSTALL_INC_aaa = $(wildcard $(addsuffix /$(inc), $(dir)) )
|
||||
|
||||
#
|
||||
# Rule 3
|
||||
#
|
||||
GENERATED_INSTALL_INC = $(INSTALL_INCLUDE)/$(inc)
|
||||
|
||||
COMMON_INC += $(filter $(COMMON_DIR)/%, $(foreach file, $(INC), \
|
||||
$(firstword $(SOURCE_INC) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_INC = $(wildcard $(file) $(SOURCE_INC_bbb) )
|
||||
SOURCE_INC_bbb = $(foreach dir, $(ALL_SRC_DIRS), $(SOURCE_INC_aaa) )
|
||||
SOURCE_INC_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
endif
|
@ -1,58 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Author: Andrew Johnson
|
||||
# Date: 20 April 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_ENV - EPICS Environment Parameter configuration file
|
||||
#
|
||||
# This file is read by the script base/src/libCom/env/bldEnvdata.pl
|
||||
# Variable definitions must take the form
|
||||
# VAR = VALUE
|
||||
# or
|
||||
# VAR = "Value containing spaces"
|
||||
# with each one on its own line.
|
||||
# Enclosing spaces and "" will be trimmed.
|
||||
#
|
||||
|
||||
# Default environment settings
|
||||
|
||||
# Channel Access:
|
||||
# Details are in the CA reference manual
|
||||
# (see CAref.html in this distribution)
|
||||
EPICS_CA_ADDR_LIST=""
|
||||
EPICS_CA_AUTO_ADDR_LIST=YES
|
||||
EPICS_CA_NAME_SERVERS=""
|
||||
EPICS_CA_CONN_TMO=30.0
|
||||
EPICS_CA_REPEATER_PORT=5065
|
||||
EPICS_CA_SERVER_PORT=5064
|
||||
EPICS_CA_MAX_ARRAY_BYTES=16384
|
||||
EPICS_CA_AUTO_ARRAY_BYTES=YES
|
||||
EPICS_CA_BEACON_PERIOD=15.0
|
||||
EPICS_CA_MAX_SEARCH_PERIOD=300.0
|
||||
EPICS_CA_MCAST_TTL=1
|
||||
EPICS_CAS_BEACON_PERIOD=
|
||||
EPICS_CAS_BEACON_PORT=
|
||||
EPICS_CAS_AUTO_BEACON_ADDR_LIST=""
|
||||
EPICS_CAS_BEACON_ADDR_LIST=""
|
||||
EPICS_CAS_SERVER_PORT=
|
||||
EPICS_CAS_INTF_ADDR_LIST=""
|
||||
EPICS_CAS_IGNORE_ADDR_LIST=""
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_PORT Log server port number etc.
|
||||
EPICS_IOC_LOG_PORT=7004
|
||||
|
||||
# Other services:
|
||||
|
||||
EPICS_CMD_PROTO_PORT=
|
||||
EPICS_AR_PORT=7002
|
||||
|
@ -1,67 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# Macros and rules to create a new installation file type
|
||||
#
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Module developers can now define a new type of file, e.g. ABC,
|
||||
# so that files of type ABC will be installed into a directory
|
||||
# defined by INSTALL_ABC. This is done by creating a new CONFIG<name>
|
||||
# file, e.g. CONFIG_ABC, with the following lines:
|
||||
#
|
||||
# FILE_TYPE += ABC
|
||||
# INSTALL_ABC = $(INSTALL_LOCATION)/abc
|
||||
#
|
||||
# The INSTALL_ABC directory should be be a subdirectory of
|
||||
# $(INSTALL_LOCATION). The file type ABC should be target
|
||||
# architecture independent (alh files, medm files, edm files).
|
||||
#
|
||||
# Files of type ABC are then installed into the INSTALL_ABC
|
||||
# directory by adding a line like the following to a Makefile.
|
||||
#
|
||||
# ABC += <filename1> <filename2> <filename3>
|
||||
#
|
||||
# Rules necessary to create files of type ABC should be put in
|
||||
# a RULES_ABC file. Variables used by those rules should appear
|
||||
# in a CONFIG_ABC file.
|
||||
#
|
||||
# The module developer installs new CONFIG* or RULES* files
|
||||
# into the directory $(INSTALL_LOCATION)/cfg by including the
|
||||
# following Makefile line:
|
||||
#
|
||||
# CFG += CONFIG_ABC RULES_ABC
|
||||
#
|
||||
# CONFIG and RULES files in the $(INSTALL_LOCATION)/cfg directory
|
||||
# are included by the Base config files so their definitions and
|
||||
# rules are available for use by later src directory Makefiles in
|
||||
# the same module, or by other modules with a RELEASE line that
|
||||
# points to the TOP of the module providing these files.
|
||||
|
||||
FILE_TYPE += ADL
|
||||
INSTALL_ADL = $(INSTALL_LOCATION)/adl
|
||||
|
||||
FILE_TYPE += ALH
|
||||
INSTALL_ALH = $(INSTALL_LOCATION)/alh
|
||||
|
||||
FILE_TYPE += CFG
|
||||
INSTALL_CFG = $(INSTALL_LOCATION)/cfg
|
||||
|
||||
FILE_TYPE += EDL
|
||||
INSTALL_EDL = $(INSTALL_LOCATION)/edl
|
||||
|
||||
FILE_TYPE += PERL_MODULES
|
||||
INSTALL_PERL_MODULES = $(INSTALL_LOCATION_LIB)/perl
|
||||
|
||||
FILE_TYPE += PKGCONFIG
|
||||
INSTALL_PKGCONFIG = $(INSTALL_LOCATION_LIB)/pkgconfig
|
||||
|
||||
INSTALLS_CFG = $(CFG:%= $(INSTALL_CFG)/%)
|
||||
DIRECTORY_TARGETS += $(foreach type, $(FILE_TYPE),$(INSTALL_$(type)))
|
||||
|
@ -1,178 +1,42 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# CONFIG_SITE
|
||||
|
||||
# Make any application-specific changes to the EPICS build
|
||||
# configuration variables in this file.
|
||||
#
|
||||
# CONFIG_SITE - Global site configuration 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)
|
||||
|
||||
# The host architecture performing the build, in the form
|
||||
# <operating system>-<architecture>[-<toolset>]
|
||||
#
|
||||
# Currently Supporting:
|
||||
# cygwin-x86 (cygwin compiler used for host builds)
|
||||
# cygwin-x86_64 (cygwin compiler used for host builds)
|
||||
# darwin-ppc (PowerPC based Apple running OSX)
|
||||
# darwin-ppcx86 (Universal binaries for both CPUs)
|
||||
# darwin-x86 (Intel based Apple running OSX)
|
||||
# freebsd-x86 (GNU compiler used for host builds)
|
||||
# freebsd-x86_64 (GNU compiler used for host builds)
|
||||
# linux-arm (GNU compiler used for host builds)
|
||||
# linux-ppc (GNU compiler used for host builds)
|
||||
# linux-ppc64 (GNU compiler used for host builds)
|
||||
# linux-x86 (GNU compiler used for host builds)
|
||||
# linux-x86_64 (GNU compiler used for host builds)
|
||||
# solaris-sparc (Sun compiler used for host builds)
|
||||
# solaris-sparc-gnu (GNU compiler used for host builds)
|
||||
# solaris-sparc64 (Sun compiler used for host builds)
|
||||
# solaris-sparc64-gnu (GNU compiler used for host builds)
|
||||
# solaris-x86 (Sun compiler used for host builds)
|
||||
# solaris-x86-gnu (GNU compiler used for host builds)
|
||||
# solaris-x86_64 (Sun compiler used for host builds)
|
||||
# solaris-x86_64-gnu (GNU compiler used for host builds)
|
||||
# win32-x86 (MS Visual C++ compiler used for host builds)
|
||||
# win32-x86-mingw (MinGW compiler used for host builds)
|
||||
# win32-x86-static (MS Visual C++ compiler used for host builds)
|
||||
# windows-x64 (MS Visual C++ compiler used for host builds)
|
||||
# windows-x64-mingw (MinGW compiler used for host builds)
|
||||
# windows-x64-static (MS Visual C++ compiler used for host builds)
|
||||
# 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
|
||||
|
||||
# Debugging builds:
|
||||
# linux-arm-debug (GNU compiler used for host builds)
|
||||
# linux-x86-debug (GNU compiler with -g option for host builds)
|
||||
# linux-x86_64-debug (GNU compiler with -g option for host builds)
|
||||
# solaris-sparc-debug (sun compiler no optimization,-g for debugging info)
|
||||
# win32-x86-debug (MS Visual C++ compiler with debug option for host builds)
|
||||
# windows-x64-debug (MS Visual C++ compiler with debug option for host builds)
|
||||
# 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>
|
||||
|
||||
# EPICS_HOST_ARCH is a required environment variable
|
||||
# Do not set EPICS_HOST_ARCH in this file.
|
||||
# Use base/startup files to set EPICS_HOST_ARCH or
|
||||
# provide EPICS_HOST_ARCH on the GNU make command line.
|
||||
# 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>
|
||||
|
||||
# The cross-compiler architectures to build EPICS for
|
||||
#
|
||||
# Currently Supporting:
|
||||
# For application debugging purposes, override the HOST_OPT and/
|
||||
# or CROSS_OPT settings from base/configure/CONFIG_SITE
|
||||
#HOST_OPT = NO
|
||||
#CROSS_OPT = NO
|
||||
|
||||
# ios-arm (darwin-x86 host)
|
||||
# ios-386 (darwin-x86 host)
|
||||
# linux-386 (linux-x86 host)
|
||||
# linux-486 (linux-x86 host)
|
||||
# linux-586 (linux-x86 host)
|
||||
# linux-686 (linux-x86 host)
|
||||
# linux-arm (linux-x86 or -x86_64 host)
|
||||
# linux-arm_eb (linux-x86 host)
|
||||
# linux-arm_el (linux-x86 host)
|
||||
# linux-athlon (linux-x86 host)
|
||||
# linux-cris (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v10 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-cris_v32 (Axis GNU crosscompiler on linux-x86 host)
|
||||
# linux-microblaze
|
||||
# linux-xscale_be
|
||||
# vxWorks-486
|
||||
# vxWorks-68040
|
||||
# vxWorks-68040lc
|
||||
# vxWorks-68060
|
||||
# vxWorks-pentium
|
||||
# vxWorks-ppc32 (32-bit PowerPC CPUs with full FPU)
|
||||
# vxWorks-ppc32sf (32-bit PowerPC CPUs without FPU)
|
||||
# vxWorks-ppc603
|
||||
# vxWorks-ppc603_long
|
||||
# vxWorks-ppc604
|
||||
# vxWorks-ppc604_long
|
||||
# vxWorks-ppc604_altivec
|
||||
# vxWorks-mpc8540
|
||||
# vxWorks-mpc8548
|
||||
# RTEMS-at91rm9200ek
|
||||
# RTEMS-beatnik
|
||||
# RTEMS-gen68360
|
||||
# RTEMS-mcp750
|
||||
# RTEMS-mvme167
|
||||
# RTEMS-mvme2100
|
||||
# RTEMS-mvme2700
|
||||
# RTEMS-mvme3100
|
||||
# RTEMS-mvme5500
|
||||
# RTEMS-pc386
|
||||
# RTEMS-psim
|
||||
# RTEMS-uC5282
|
||||
# win32-x86-mingw (linux-x86 or -x86_64 host)
|
||||
#
|
||||
|
||||
# Which target architectures to cross-compile for.
|
||||
# Definitions in configure/os/CONFIG_SITE.<host>.Common
|
||||
# may override this setting.
|
||||
CROSS_COMPILER_TARGET_ARCHS=
|
||||
#CROSS_COMPILER_TARGET_ARCHS=vxWorks-ppc32
|
||||
|
||||
# If only some of your host architectures can compile the
|
||||
# above CROSS_COMPILER_TARGET_ARCHS specify those host
|
||||
# architectures here. If the combination is complicated,
|
||||
# set CROSS_COMPILER_TARGET_ARCHS in the appropriate
|
||||
# configure/os/CONFIG_SITE.<host>.Common files instead.
|
||||
CROSS_COMPILER_HOST_ARCHS=
|
||||
|
||||
# The 'runtests', 'tapfiles' and 'junitfiles' make targets normally only run
|
||||
# self-tests for the EPICS_HOST_ARCH architecture. If the host can execute
|
||||
# the self-test programs for any other cross-built architectures such as
|
||||
# a -debug architecture, those architectures must be named in this variable:
|
||||
CROSS_COMPILER_RUNTEST_ARCHS=
|
||||
|
||||
# Build shared libraries (DLLs on Windows).
|
||||
# Must be either YES or NO. Definitions in the target-specific
|
||||
# os/CONFIG.Common.<target> and os/CONFIG_SITE.Common.<target> files may
|
||||
# override this setting. On Windows only these combinations are valid:
|
||||
# SHARED_LIBRARIES = YES and STATIC_BUILD = NO
|
||||
# SHARED_LIBRARIES = NO and STATIC_BUILD = YES
|
||||
SHARED_LIBRARIES=YES
|
||||
|
||||
# Build client objects statically.
|
||||
# Must be either YES or NO.
|
||||
STATIC_BUILD=NO
|
||||
|
||||
# Host build optimization.
|
||||
# Must be either YES or NO.
|
||||
HOST_OPT=YES
|
||||
|
||||
# Cross build optimization.
|
||||
# Must be either YES or NO.
|
||||
CROSS_OPT=YES
|
||||
|
||||
# Generate verbose compiler warnings for host builds.
|
||||
# Must be either YES or NO.
|
||||
HOST_WARN=YES
|
||||
|
||||
# Generate verbose compiler warnings for cross-compiled builds.
|
||||
# Must be either YES or NO.
|
||||
CROSS_WARN=YES
|
||||
|
||||
# Installation directory, if you want Base to be installed into a
|
||||
# different location then uncomment and set this.
|
||||
#INSTALL_LOCATION=<fullpathname>
|
||||
|
||||
# Use POSIX thread priority scheduling (if available).
|
||||
# Must be either YES or NO
|
||||
USE_POSIX_THREAD_PRIORITY_SCHEDULING = YES
|
||||
|
||||
# Site version number, if set will append '-' and this string to the
|
||||
# EPICS version number string that is reported by many tools.
|
||||
EPICS_SITE_VERSION =
|
||||
|
||||
# For GNU compiler, use pipes rather than temporary files for
|
||||
# communication between the various stages of compilation.
|
||||
# Must be either YES or NO
|
||||
GCC_PIPE = NO
|
||||
|
||||
# Set RPATH when linking executables and libraries.
|
||||
# Must be either YES or NO. If you set this to NO you must also provide a
|
||||
# way for Base executables to find their shared libraries when they are
|
||||
# run at build-time, e.g. set the LD_LIBRARY_PATH environment variable.
|
||||
LINKER_USE_RPATH = YES
|
||||
|
||||
# Overrides for the settings above may appear in a CONFIG_SITE.local file
|
||||
-include $(CONFIG)/CONFIG_SITE.local
|
||||
# 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,83 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2010 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Author: Andrew Johnson
|
||||
# Date: 1 May 1995
|
||||
#
|
||||
# Experimental Physics and Industrial Control System (EPICS)
|
||||
#
|
||||
# CONFIG_SITE_ENV - EPICS Environment Parameter Site configuration file
|
||||
#
|
||||
# This file is read by the script base/src/libCom/env/bldEnvdata.pl
|
||||
# Variable definitions must take the form
|
||||
# VAR = VALUE
|
||||
# or
|
||||
# VAR = "Value containing spaces"
|
||||
# with each one on its own line.
|
||||
# Enclosing spaces and "" will be trimmed.
|
||||
#
|
||||
|
||||
# Site-specific environment settings
|
||||
|
||||
# Time service:
|
||||
# EPICS_TIMEZONE
|
||||
# local timezone info for vxWorks and RTEMS IOCs. The format is
|
||||
# <name>::<minutesWest>:<start daylight>:<end daylight>
|
||||
# where the start and end are mmddhh - that is month,day,hour
|
||||
# e.g. for ANL in 2016: EPICS_TIMEZONE=CST/CDT::360:031302:110602
|
||||
#
|
||||
# DST for 2016 US: Mar 13 - Nov 06
|
||||
# EU: Mar 27 - Oct 30
|
||||
# DST for 2017 US: Mar 12 - Nov 05
|
||||
# EU: Mar 26 - Oct 29
|
||||
# DST for 2018 US: Mar 11 - Nov 04
|
||||
# EU: Mar 25 - Oct 28
|
||||
# DST for 2019 US: Mar 10 - Nov 03
|
||||
# EU: Mar 31 - Oct 27
|
||||
# DST for 2020 US: Mar 08 - Nov 01
|
||||
# EU: Mar 29 - Oct 25
|
||||
# DST for 2021 US: Mar 14 - Nov 07
|
||||
# EU: Mar 28 - Oct 31
|
||||
# (see: http://www.timeanddate.com/time/dst/2016.html etc. )
|
||||
#
|
||||
# These values are for 2016:
|
||||
EPICS_TIMEZONE=CST/CDT::360:031302:110602
|
||||
#EPICS_TIMEZONE=CET/CEST::-60:032702:103002
|
||||
|
||||
# EPICS_TS_NTP_INET
|
||||
# NTP time server ip address. Uses boot host if not set.
|
||||
EPICS_TS_NTP_INET=
|
||||
|
||||
# IOC Shell:
|
||||
# IOCSH_PS1
|
||||
# Prompt string
|
||||
# IOCSH_HISTSIZE
|
||||
# Number of lines of command history to keep.
|
||||
# IOCSH_HISTEDIT_DISABLE
|
||||
# Prevents use of readline or equivalent if defined.
|
||||
IOCSH_PS1="epics> "
|
||||
IOCSH_HISTSIZE=50
|
||||
IOCSH_HISTEDIT_DISABLE=
|
||||
|
||||
# Log Server:
|
||||
# EPICS_IOC_LOG_INET
|
||||
# Log server ip addr.
|
||||
# EPICS_IOC_LOG_FILE_NAME
|
||||
# pathname to the log file.
|
||||
# EPICS_IOC_LOG_FILE_LIMIT
|
||||
# maximum log file size.
|
||||
# EPICS_IOC_LOG_FILE_COMMAND
|
||||
# A shell command string used to obtain a new
|
||||
# path name in response to SIGHUP - the new path name will
|
||||
# replace any path name supplied in EPICS_IOC_LOG_FILE_NAME
|
||||
|
||||
EPICS_IOC_LOG_INET=
|
||||
EPICS_IOC_LOG_FILE_NAME=
|
||||
EPICS_IOC_LOG_FILE_COMMAND=
|
||||
EPICS_IOC_LOG_FILE_LIMIT=1000000
|
||||
|
@ -1,24 +1,8 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# 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
|
||||
|
||||
# Bootstrap resolution: tools not installed yet
|
||||
TOOLS = $(TOP)/src/tools
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../CONFIG*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../os/CONFIG*))
|
||||
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RELEASE*))
|
||||
CONFIGS += $(subst ../,,$(wildcard ../RULES*))
|
||||
TARGETS = $(CONFIG_TARGETS)
|
||||
CONFIGS += $(subst ../,,$(wildcard $(CONFIG_INSTALLS)))
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
|
@ -1,22 +1,42 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2012 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# RELEASE - Location of external support modules
|
||||
#
|
||||
# RELEASE: Define the location of external EPICS products
|
||||
# IF YOU MAKE ANY CHANGES to this file you must subsequently
|
||||
# do a "gnumake rebuild" in this application's top level
|
||||
# directory.
|
||||
#
|
||||
|
||||
# The version of this file in Base should normally be empty.
|
||||
# The build process does not check dependencies against files
|
||||
# that are outside this application, thus you should do a
|
||||
# "gnumake rebuild" in the top level directory after EPICS_BASE
|
||||
# or any other external module pointed to below is rebuilt.
|
||||
#
|
||||
# Define INSTALL_LOCATION in CONFIG_SITE
|
||||
# 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 can 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.
|
||||
|
||||
# NB: Settings in RELEASE files can be overridden in files named
|
||||
# RELEASE.$(EPICS_HOST_ARCH).Common
|
||||
# RELEASE.Common.$(T_A)
|
||||
# RELEASE.$(EPICS_HOST_ARCH).$(T_A)
|
||||
# Variables and paths to dependent modules:
|
||||
#MODULES = /path/to/modules
|
||||
#MYMODULE = $(MODULES)/my-module
|
||||
|
||||
# If using the sequencer, point SNCSEQ at its top directory:
|
||||
#SNCSEQ = $(MODULES)/seq-ver
|
||||
|
||||
# EPICS_BASE should appear last so earlier modules can override stuff:
|
||||
EPICS_BASE = /home/ralph/work/EPICS/V3/3.16
|
||||
|
||||
# Set RULES here if you want to use build rules from somewhere
|
||||
# other than EPICS_BASE:
|
||||
#RULES = $(MODULES)/build-rules
|
||||
|
||||
# These allow developers to override the RELEASE variable settings
|
||||
# without having to modify the configure/RELEASE file itself.
|
||||
-include $(TOP)/../RELEASE.local
|
||||
-include $(TOP)/configure/RELEASE.local
|
||||
|
@ -1,20 +1,6 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# RULES
|
||||
|
||||
ifndef T_A
|
||||
|
||||
include $(CONFIG)/RULES_ARCHS
|
||||
|
||||
else #T_A
|
||||
|
||||
include $(CONFIG)/RULES_BUILD
|
||||
|
||||
endif # T_A defined
|
||||
include $(CONFIG)/RULES
|
||||
|
||||
# Library should be rebuilt because LIBOBJS may have changed.
|
||||
$(LIBNAME): ../Makefile
|
||||
|
@ -1,541 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#RULES.Db
|
||||
|
||||
# Set db substitutions and template file suffixes
|
||||
SUBST_SUFFIX ?= .substitutions
|
||||
TEMPL_SUFFIX ?= .template
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# vpath
|
||||
|
||||
vpath %.pm $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.pod $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.dbd $(USR_VPATH) $(SRC_DIRS) $(dir $(DBD))
|
||||
vpath %.db $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
|
||||
vpath %.vdb $(USR_VPATH) $(SRC_DIRS) $(dir $(DB))
|
||||
vpath %$(SUBST_SUFFIX) $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %$(TEMPL_SUFFIX) $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath bpt%.data $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %.acf $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
vpath %.acs $(USR_VPATH) $(SRC_DIRS) $(COMMON_DIR)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# dbflags dbdflags
|
||||
|
||||
DBD_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DBD) $(RELEASE_DBD_DIRS)
|
||||
DB_SEARCH_DIRS = . .. $(COMMON_DIR) $(SRC_DIRS) $(INSTALL_DB) $(RELEASE_DB_DIRS)
|
||||
|
||||
DBDFLAGS = $(USR_DBDFLAGS) $(CMD_DBDFLAGS) $(addprefix -I,$(DBD_SEARCH_DIRS))
|
||||
DBFLAGS = $($*_DBFLAGS) $(USR_DBFLAGS) $(CMD_DBFLAGS) $(addprefix -I,$(DB_SEARCH_DIRS))
|
||||
REGRDDFLAGS = $(DBDFLAGS) $($*_REGRDDFLAGS) $(USR_REGRDDFLAGS) $(CMD_REGRDDFLAGS)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Targets
|
||||
|
||||
# ---------------------------------------------------
|
||||
# To allow os specific dbd files AND have the -j option work properly,
|
||||
|
||||
CROSS_TARGET_OS_TYPES = $(sort $(foreach target, \
|
||||
$(EPICS_HOST_ARCH) $(CROSS_COMPILER_TARGET_ARCHS), \
|
||||
$(firstword $(subst -, ,$(target)))))
|
||||
DBD += $(foreach type, $(CROSS_TARGET_OS_TYPES), $(DBD_$(type)))
|
||||
|
||||
# Users add os specific dbd files to a Makefile as follows
|
||||
#
|
||||
# DBD_vxWorks += abcVx.dbd
|
||||
# DBD_RTEMS += abcRTEMS.dbd
|
||||
# DBD_solaris += abcSolaris.dbd
|
||||
#
|
||||
# ---------------------------------------------------
|
||||
# DBD concatination files
|
||||
|
||||
COMMON_DBDCATS += $(addprefix $(COMMON_DIR)/,$(DBDCAT))
|
||||
DBDCAT_SOURCES += $(foreach file, $($*_DBD), $(DBDCAT_SOURCE) )
|
||||
DBDCAT_SOURCE = $(firstword $(wildcard $(file) $(foreach dir, \
|
||||
$(DBD_SEARCH_DIRS),$(addsuffix /$(file),$(dir)))) \
|
||||
$(COMMON_DIR)/$(file))
|
||||
|
||||
DBDCAT_COMMAND = $(if $(DBDCAT_SOURCES),\
|
||||
$(CAT) $(DBDCAT_SOURCES) > $(notdir $@),\
|
||||
@echo "No input files for $(notdir $@)")
|
||||
|
||||
INSTALL_DBDS += $(addprefix $(INSTALL_DBD)/,$(DBDCAT))
|
||||
|
||||
# ---------------------------------------------------
|
||||
|
||||
DBDINC_NAME = $(patsubst %.h,%,$(patsubst %.dbd,%,$(DBDINC)))
|
||||
DBD += $(addsuffix .dbd,$(DBDINC_NAME))
|
||||
INC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
|
||||
INSTALL_DBDS += $(addprefix $(INSTALL_DBD)/,$(notdir $(DBD)))
|
||||
|
||||
COMMON_DBDS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DBD), \
|
||||
$(firstword $(SOURCE_DBD) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_DBD = $(wildcard $(file) $(SOURCE_DBD_bbb) )
|
||||
SOURCE_DBD_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DBD_aaa) )
|
||||
SOURCE_DBD_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
INSTALL_DBS += $(addprefix $(INSTALL_DB)/,$(notdir $(DB)))
|
||||
|
||||
COMMON_DBS += $(filter $(COMMON_DIR)/%, $(foreach file, $(DB), \
|
||||
$(firstword $(SOURCE_DB) $(COMMON_DIR)/$(file) ) ) )
|
||||
SOURCE_DB = $(wildcard $(file) $(SOURCE_DB_bbb) )
|
||||
SOURCE_DB_bbb = $(foreach dir, $(GENERIC_SRC_DIRS), $(SOURCE_DB_aaa) )
|
||||
SOURCE_DB_aaa = $(addsuffix /$(file), $(dir) )
|
||||
|
||||
COMMONS = $(COMMON_DIR)/*.dbd $(COMMON_DIR)/*.db $(COMMON_DIR)/*.h \
|
||||
$(COMMON_DIR)/*$(SUBST_SUFFIX) $(COMMON_DIR)/*$(TEMPL_SUFFIX)
|
||||
|
||||
# Remove trailing numbers (to 99) on stem
|
||||
TEMPLATE1 = $(patsubst %0,%,$(patsubst %1,%,$(patsubst %2,%,$(patsubst %3,%, \
|
||||
$(patsubst %4,%,$(patsubst %5,%,$(patsubst %6,%,$(patsubst %7,%, \
|
||||
$(patsubst %8,%,$(patsubst %9,%,$*))))))))))
|
||||
TEMPLATE2 = $(patsubst %0,%,$(patsubst %1,%,$(patsubst %2,%,$(patsubst %3,%, \
|
||||
$(patsubst %4,%,$(patsubst %5,%,$(patsubst %6,%,$(patsubst %7,%, \
|
||||
$(patsubst %8,%,$(patsubst %9,%,$(TEMPLATE1)))))))))))
|
||||
TEMPLATE3 = $(addsuffix $(TEMPL_SUFFIX),$(addprefix ../,$(TEMPLATE2)))
|
||||
TEMPLATE_FILENAME = $(firstword $(wildcard $($*_TEMPLATE) \
|
||||
$(addprefix ../,$($*_TEMPLATE)) ../$*$(TEMPL_SUFFIX) $(TEMPLATE3) \
|
||||
../template))
|
||||
|
||||
INSTALL_DB_INSTALLS = $(addprefix $(INSTALL_DB)/,$(notdir $(DB_INSTALLS)))
|
||||
INSTALL_DBD_INSTALLS = $(addprefix $(INSTALL_DBD)/,$(notdir $(DBD_INSTALLS)))
|
||||
|
||||
COMMONDEP_TARGET = $(COMMON_DIR)/$(basename $@)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# acf files
|
||||
|
||||
# An access security configuration file, *.acf, can be created from
|
||||
# an *.acs file (has format of acf file plus #include "filename" lines)
|
||||
|
||||
# flags for GNU compiler
|
||||
ACF_CPPFLAGS_YES = -undef -nostdinc
|
||||
ACF_CPPFLAGS = $(ACF_CPPFLAGS_$(GNU))
|
||||
|
||||
ACF_INCLUDES = -I. $(TARGET_INCLUDES) $(USR_INCLUDES)\
|
||||
$(SRC_INCLUDES) -I$(INSTALL_DB)
|
||||
ACFDEPENDS_CMD = $(MKMF) -m $@ $(ACF_INCLUDES) $(COMMONDEP_TARGET) $<
|
||||
ACF_CMD = $(CPP) $(ACF_CPPFLAGS) $(ACF_INCLUDES) $< > $@
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# dependencies
|
||||
|
||||
HINC += $(addsuffix .h,$(DBDINC_NAME))
|
||||
COMMON_DBDINC += $(addprefix $(COMMON_DIR)/,$(HINC))
|
||||
|
||||
DBDDEPENDS_FILES += $(addsuffix $(DEP),$(HINC) \
|
||||
$(patsubst $(COMMON_DIR)/%,%,$(COMMON_DBS)) \
|
||||
$(patsubst $(COMMON_DIR)/%,%, \
|
||||
$(filter-out $(COMMON_DIR)/bpt%.dbd,$(COMMON_DBDS))))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
ifndef T_A
|
||||
|
||||
DEP = .d
|
||||
TEMPLATE3 += $(addsuffix $(TEMPL_SUFFIX), $(TEMPLATE2))
|
||||
|
||||
COMMON_DIR = .
|
||||
INSTALL_DBDS =
|
||||
INSTALL_DBS =
|
||||
COMMON_DBDS = $(DBD)
|
||||
COMMON_DBS = $(DB)
|
||||
COMMONS = $(DBD) $(DB)
|
||||
|
||||
ACTIONS = inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += runtests tapfiles clean-tests test-results junitfiles
|
||||
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(BUILD_ARCHS), $(action)$(DIVIDER)$(arch)))
|
||||
cleanArchTargets = $(foreach arch, $(BUILD_ARCHS), clean$(DIVIDER)$(arch))
|
||||
|
||||
-include $(TOP)/configure/CONFIG_APP_INCLUDE
|
||||
|
||||
all: install
|
||||
|
||||
install: buildInstall
|
||||
|
||||
buildInstall : build
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
.PHONY: all $(ACTIONS)
|
||||
|
||||
$(actionArchTargets) $(BUILD_ARCHS): install
|
||||
$(cleanArchTargets): clean
|
||||
|
||||
.PHONY: $(BUILD_ARCHS) $(actionArchTargets) $(cleanArchTargets)
|
||||
|
||||
else
|
||||
# T_A is defined
|
||||
ifeq ($(EPICS_HOST_ARCH),$(T_A))
|
||||
host: install
|
||||
else
|
||||
host:
|
||||
endif
|
||||
|
||||
.PHONY: host
|
||||
endif # T_A
|
||||
|
||||
ifneq (,$(strip $(DBDDEPENDS_FILES)))
|
||||
-include $(DBDDEPENDS_FILES)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# build dependancies, clean rule
|
||||
|
||||
inc : $(COMMON_INC) $(INSTALL_INC)
|
||||
|
||||
build : $(COMMON_DBDS) $(COMMON_DBS) $(COMMON_DBDCATS) \
|
||||
$(INSTALL_DBDS) $(INSTALL_DBS) \
|
||||
$(DBDDEPENDS_FILES) $(TARGETS) \
|
||||
$(INSTALL_DB_INSTALLS) $(INSTALL_DBD_INSTALLS)
|
||||
|
||||
clean: db_clean
|
||||
|
||||
db_clean :
|
||||
@$(RM) $(COMMONS) $(DBDDEPENDS_FILES)
|
||||
@$(RM) *_registerRecordDeviceDriver.cpp
|
||||
@$(RM) $(TARGETS)
|
||||
|
||||
.PHONY : db_clean
|
||||
|
||||
realclean: clean
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Dependency files
|
||||
|
||||
%Record.h$(DEP): $(COMMON_DIR)/%Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%Record.h$(DEP): %Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%Record.h$(DEP): ../%Record.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTORECORDTYPEH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): $(COMMON_DIR)/menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
menu%.h$(DEP): ../menu%.dbd
|
||||
@$(RM) $@
|
||||
@$(DBTOMENUH) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP): %.dbd.pod
|
||||
@$(RM) $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" > $@
|
||||
|
||||
%.dbd$(DEP): %Include.dbd
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP): ../%Include.dbd
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.dbd$(DEP):
|
||||
@$(RM) $@
|
||||
@$(DBEXPAND) -D $(DBDFLAGS) -o $(COMMONDEP_TARGET) $($*_DBD) > $@
|
||||
@echo "$(COMMONDEP_TARGET): ../Makefile" >> $@
|
||||
|
||||
%.db$(DEP): %$(SUBST_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) -S$< $(TEMPLATE_FILENAME) > $@
|
||||
|
||||
%.db$(DEP): ../%$(SUBST_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) -S$< $(TEMPLATE_FILENAME) > $@
|
||||
|
||||
%.db$(DEP): %$(TEMPL_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
|
||||
%.db$(DEP): ../%$(TEMPL_SUFFIX)
|
||||
@$(RM) $@
|
||||
$(MSI3_15) -D $(DBFLAGS) -o $(COMMONDEP_TARGET) $< > $@
|
||||
|
||||
%.acf$(DEP): %.acs
|
||||
@$(RM) $@
|
||||
@$(ACFDEPENDS_CMD)
|
||||
|
||||
%.acf$(DEP): ../%.acs
|
||||
@$(RM) $@
|
||||
@$(ACFDEPENDS_CMD)
|
||||
|
||||
.PRECIOUS: %$(DEP)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Substitution files
|
||||
|
||||
# WARNING: CREATESUBSTITUTIONS script needs output dir on command line
|
||||
|
||||
ifdef CREATESUBSTITUTIONS
|
||||
$(COMMON_DIR)/%$(SUBST_SUFFIX):
|
||||
$(ECHO) "Create substitutions"
|
||||
@$(RM) $@
|
||||
$(CREATESUBSTITUTIONS) $@
|
||||
endif
|
||||
|
||||
$(INSTALL_DB)/%$(SUBST_SUFFIX): %$(SUBST_SUFFIX)
|
||||
$(ECHO) "Installing substitution file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%$(SUBST_SUFFIX): ../%$(SUBST_SUFFIX)
|
||||
$(ECHO) "Installing substitution file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%$(SUBST_SUFFIX)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Template files
|
||||
|
||||
$(INSTALL_DB)/%$(TEMPL_SUFFIX): %$(TEMPL_SUFFIX)
|
||||
$(ECHO) "Installing template file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%$(TEMPL_SUFFIX): ../%$(TEMPL_SUFFIX)
|
||||
$(ECHO) "Installing template file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%$(TEMPL_SUFFIX)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# INC files
|
||||
|
||||
$(COMMON_DIR)/%Record.h: $(COMMON_DIR)/%Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%Record.h: %Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%Record.h: ../%Record.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTORECORDTYPEH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: $(COMMON_DIR)/menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/menu%.h: ../menu%.dbd
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBTOMENUH) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.h
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# DBD files
|
||||
|
||||
$(COMMON_DIR)/bpt%.dbd: bpt%.data
|
||||
@$(RM) $(notdir $@)
|
||||
$(MAKEBPT) $< $(notdir $@)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: %.dbd.pod
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podRemove.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: %Include.dbd
|
||||
$(ECHO) "Expanding dbd file $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd: ../%Include.dbd
|
||||
$(ECHO) "Expanding dbd file $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
# Make DBDCAT file x depend on x_DBD source files
|
||||
define DBDCAT_template
|
||||
$$(COMMON_DIR)/$(1).dbd : ../Makefile $$(foreach file, $$($(1)_DBD),$$(DBDCAT_SOURCE) )
|
||||
endef
|
||||
$(foreach name,$(subst .dbd,,$(DBDCAT)), $(eval $(call DBDCAT_template,$(name))))
|
||||
|
||||
$(COMMON_DBDCATS):$(COMMON_DIR)/%.dbd:
|
||||
$(ECHO) "Creating dbd file $(notdir $@)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBDCAT_COMMAND)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.dbd:
|
||||
$(ECHO) "Creating dbd file $(notdir $@)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(DBEXPAND) $(DBDFLAGS) -o $(notdir $@) $($*_DBD)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(INSTALL_DBD)/%: $(COMMON_DIR)/%
|
||||
$(ECHO) "Installing created dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: %
|
||||
$(ECHO) "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DBD)/%: ../%
|
||||
$(ECHO) "Installing dbd file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DBD_INSTALLS_template
|
||||
$$(INSTALL_DBD)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DBD)
|
||||
endef
|
||||
$(foreach file, $(DBD_INSTALLS), $(eval $(call DBD_INSTALLS_template, $(file))))
|
||||
|
||||
.PRECIOUS: $(COMMON_DBDS) $(COMMON_DIR)/%.dbd
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# HTML files
|
||||
|
||||
$(COMMON_DIR)/%.html: %.dbd.pod $(TOOLS)/dbdToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/dbdToHtml.pl $(DBDFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: %.pod $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: %.pm $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: ../%.pm $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -s -o $(notdir $@) $<
|
||||
@$(MKDIR) $(dir $@)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.html: ../%.pl $(TOOLS)/podToHtml.pl
|
||||
@$(RM) $(notdir $@)
|
||||
$(PERL) $(TOOLS)/podToHtml.pl -s -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.html %.html
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# DB files
|
||||
|
||||
$(COMMON_DIR)/%.db: $(COMMON_DIR)/%.edf
|
||||
$(E2DB) $(E2DB_SYSFLAGS) $(E2DB_FLAGS) -n $*.VAR $<
|
||||
@$(REPLACEVAR) < $*.VAR > $@
|
||||
@$(RM) $*.VAR
|
||||
|
||||
$(COMMON_DIR)/%.db: %$(SUBST_SUFFIX)
|
||||
$(ECHO) "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) -S$< $(TEMPLATE_FILENAME)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db: ../%$(SUBST_SUFFIX)
|
||||
$(ECHO) "Inflating database from $< $(TEMPLATE_FILENAME)"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) -S$< $(TEMPLATE_FILENAME)
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db: %$(TEMPL_SUFFIX)
|
||||
$(ECHO) "Inflating database from $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.db: ../%$(TEMPL_SUFFIX)
|
||||
$(ECHO) "Inflating database from $<"
|
||||
@$(RM) $(notdir $@)
|
||||
$(MSI3_15) $(DBFLAGS) -o $(notdir $@) $<
|
||||
@$(MV) $(notdir $@) $@
|
||||
|
||||
$(COMMON_DIR)/%.acf: %.acs
|
||||
$(ECHO) "Creating acf file $@"
|
||||
@$(RM) $@
|
||||
$(ACF_CMD)
|
||||
|
||||
$(COMMON_DIR)/%.acf: ../%.acs
|
||||
$(ECHO) "Creating acf file $@"
|
||||
@$(RM) $@
|
||||
$(ACF_CMD)
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.acf
|
||||
|
||||
$(INSTALL_DB)/%: %
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%: ../%
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DB)/%.db: $(COMMON_DIR)/%.db
|
||||
$(ECHO) "Installing created db file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
define DB_INSTALLS_template
|
||||
$$(INSTALL_DB)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$^ $$(INSTALL_DB)
|
||||
endef
|
||||
$(foreach file, $(DB_INSTALLS), $(eval $(call DB_INSTALLS_template, $(file))))
|
||||
|
||||
.PRECIOUS: $(COMMON_DIR)/%.edf
|
||||
.PRECIOUS: $(COMMON_DBS)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# register record,device,driver support
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: $(COMMON_DIR)/%.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: %.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
%_registerRecordDeviceDriver.cpp: ../%.dbd
|
||||
@$(RM) $@
|
||||
$(REGISTERRECORDDEVICEDRIVER) $(REGRDDFLAGS) -o $@ $< $(basename $@) $(IOCS_APPL_TOP)
|
||||
|
||||
.PRECIOUS: %_registerRecordDeviceDriver.cpp
|
||||
|
@ -1,37 +1,2 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#RULES.ioc
|
||||
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
||||
build$(DIVIDER)$(ARCH) build: buildInstall
|
||||
install$(DIVIDER)$(ARCH) install: buildInstall
|
||||
$(ARCH): buildInstall
|
||||
|
||||
ifeq ($(filter $(ARCH),$(BUILD_ARCHS)),$(strip $(ARCH)))
|
||||
buildInstall$(DIVIDER)$(ARCH) buildInstall: $(TARGETS)
|
||||
|
||||
clean$(DIVIDER)$(ARCH) clean:
|
||||
$(RM) cdCommands envPaths dllPath.bat relPaths.sh
|
||||
else
|
||||
buildInstall$(DIVIDER)$(ARCH) buildInstall:
|
||||
clean$(DIVIDER)$(ARCH) clean:
|
||||
endif
|
||||
|
||||
cdCommands dllPath.bat relPaths.sh: \
|
||||
$(wildcard $(TOP)/configure/RELEASE*) \
|
||||
$(wildcard $(TOP)/configure/CONFIG_SITE*) | $(INSTALL_BIN)
|
||||
$(CONVERTRELEASE) -a $(ARCH) -t $(IOCS_APPL_TOP) $@
|
||||
|
||||
envPaths: $(wildcard $(TOP)/configure/RELEASE*) \
|
||||
$(wildcard $(TOP)/configure/CONFIG_SITE*) | $(INSTALL_BIN)
|
||||
$(CONVERTRELEASE) -t $(IOCS_APPL_TOP) $@
|
||||
|
||||
realclean:
|
||||
$(RM) cdCommands envPaths dllPath.bat relPaths.sh
|
||||
include $(CONFIG)/RULES.ioc
|
||||
|
@ -1,95 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
all: install
|
||||
host: install$(DIVIDER)$(EPICS_HOST_ARCH)
|
||||
|
||||
ACTIONS = inc
|
||||
ACTIONS += build
|
||||
ACTIONS += install
|
||||
ACTIONS += buildInstall
|
||||
ACTIONS += runtests tapfiles clean-tests test-results junitfiles
|
||||
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(addprefix $(action)$(DIVIDER), $(BUILD_ARCHS)))
|
||||
|
||||
cleanArchTargets = $(addprefix clean$(DIVIDER), $(BUILD_ARCHS))
|
||||
|
||||
buildDirs = $(addprefix O., $(BUILD_ARCHS))
|
||||
|
||||
# Include <top>/cfg/DIR_RULES* files from tops defined in RELEASE* files
|
||||
# Do this here so they can add ACTIONS
|
||||
#
|
||||
RELEASE_CFG_DIR_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/DIR_RULES*))
|
||||
ifneq ($(RELEASE_CFG_DIR_RULES),)
|
||||
include $(RELEASE_CFG_DIR_RULES)
|
||||
endif
|
||||
|
||||
# Create EPICS_HOST_ARCH dependancies for GNU make -j option.
|
||||
# Needed in dirs where EPICS_HOST_ARCH build creates a tool used in
|
||||
# cross arch builds
|
||||
|
||||
CROSS_ARCHS += $(CROSS1) $(CROSS2)
|
||||
|
||||
define DEP_template
|
||||
$(2) : $(EPICS_HOST_ARCH)
|
||||
$(1)$(DIVIDER)$(2) : $(1)$(DIVIDER)$(EPICS_HOST_ARCH) O.$(2)
|
||||
endef
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(CROSS_ARCHS), \
|
||||
$(eval $(call DEP_template,$(action),$(arch)))))
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
$(buildDirs) O.Common : clean
|
||||
rebuild : install
|
||||
endif
|
||||
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
actionPart = $(word 1, $(subst $(DIVIDER), ,$@))
|
||||
$(actionArchTargets) : $(buildDirs) O.Common
|
||||
$(MAKE) -C O.$(archPart) -f ../Makefile TOP=$(TOP)/.. \
|
||||
T_A=$(archPart) $(actionPart)
|
||||
|
||||
$(BUILD_ARCHS) : % : O.% O.Common
|
||||
$(MAKE) -C O.$@ -f ../Makefile TOP=$(TOP)/.. T_A=$@
|
||||
|
||||
$(ACTIONS) : % : $(foreach arch, $(BUILD_ARCHS), %$(DIVIDER)$(arch))
|
||||
|
||||
$(buildDirs):
|
||||
$(PERL) $(TOOLS)/makeMakefile.pl $@ $(TOP)/..
|
||||
|
||||
O.Common:
|
||||
$(MKDIR) O.Common
|
||||
|
||||
# Clean rules
|
||||
#
|
||||
clean: archsCommonClean
|
||||
|
||||
archsCommonClean:
|
||||
$(RMDIR) $(buildDirs) O.Common
|
||||
|
||||
archclean:
|
||||
$(RMDIR) $(buildDirs)
|
||||
|
||||
$(cleanArchTargets):
|
||||
$(RMDIR) O.$(archPart)
|
||||
|
||||
realclean:
|
||||
$(RMDIR) O.*
|
||||
|
||||
.PHONY : $(actionArchTargets)
|
||||
.PHONY : $(cleanArchTargets)
|
||||
.PHONY : $(BUILD_ARCHS) rebuild archsCommonClean
|
||||
.PHONY : $(ACTIONS) clean realclean archclean host all
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
@ -1,531 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# Rules for making things specified in Makefile
|
||||
#
|
||||
# we are in O.$(T_A), but most sources are elsewhere
|
||||
#
|
||||
|
||||
ifndef BASE_RULES_BUILD
|
||||
BASE_RULES_BUILD=1
|
||||
|
||||
vpath %.c $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.cc $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.cpp $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.rc $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.h $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.hpp $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.html $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.skel.static $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.y $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.l $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.pl $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/CONFIG_ADDONS
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Set PROD, TESTPROD, OBJS, and LIBRARY
|
||||
|
||||
SCRIPTS_HOST += $(PERL_SCRIPTS)
|
||||
# PERL_SCRIPTS are installed into existing $(INSTALL_BIN) for Host systems
|
||||
|
||||
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
|
||||
LIBRARY += $(LIBRARY_HOST)
|
||||
LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_HOST)
|
||||
OBJS += $(OBJS_HOST)
|
||||
PROD += $(PROD_HOST)
|
||||
SCRIPTS += $(SCRIPTS_HOST)
|
||||
TESTLIBRARY += $(TESTLIBRARY_HOST)
|
||||
TESTSCRIPTS += $(TESTSCRIPTS_HOST)
|
||||
TESTPROD += $(TESTPROD_HOST)
|
||||
endif
|
||||
|
||||
ifeq ($(findstring Ioc,$(VALID_BUILDS)),Ioc)
|
||||
LIBRARY += $(LIBRARY_IOC)
|
||||
LOADABLE_LIBRARY += $(LOADABLE_LIBRARY_IOC)
|
||||
OBJS += $(OBJS_IOC)
|
||||
PROD += $(PROD_IOC)
|
||||
SCRIPTS += $(SCRIPTS_IOC)
|
||||
TESTLIBRARY += $(TESTLIBRARY_IOC)
|
||||
TESTSCRIPTS += $(TESTSCRIPTS_IOC)
|
||||
TESTPROD += $(TESTPROD_IOC)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
ifdef TEMPLATES_DIR
|
||||
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)/$(TEMPLATES_DIR)
|
||||
else
|
||||
INSTALL_TEMPLATES_SUBDIR = $(INSTALL_TEMPLATES)
|
||||
endif
|
||||
|
||||
HTMLS_DIR ?= .
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# First target
|
||||
|
||||
all: install
|
||||
ifeq ($(EPICS_HOST_ARCH),$T_A)
|
||||
host: install
|
||||
else
|
||||
# Do nothing
|
||||
host:
|
||||
endif
|
||||
|
||||
-include $(CONFIG)/RULES_FILE_TYPE
|
||||
|
||||
-include $(CONFIG)/RULES.Db
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Include defines and rules for prod, library and test* targets
|
||||
|
||||
#ifneq (,$(strip $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) ))
|
||||
include $(CONFIG)/RULES_TARGET
|
||||
#endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Read dependency files
|
||||
|
||||
ifneq (,$(strip $(HDEPENDS_FILES)))
|
||||
$(filter-out $(wildcard *$(DEP)), $(HDEPENDS_FILES)): | $(COMMON_INC)
|
||||
-include $(HDEPENDS_FILES)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Products and Object libraries
|
||||
#
|
||||
PRODTARGETS += $(PRODNAME) $(MUNCHNAME) $(CTDT_SRCS) $(CTDT_OBJS) $(NMS)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Test specifications and test result files
|
||||
#
|
||||
ifneq (,$(strip $(TESTS)))
|
||||
TARGETS += testspec
|
||||
endif
|
||||
|
||||
# Enable testing if this host can run tests on the current target
|
||||
ifneq (,$(findstring $(T_A),$(EPICS_HOST_ARCH) $(CROSS_COMPILER_RUNTEST_ARCHS)))
|
||||
RUNTESTS_ENABLED = YES
|
||||
TAPFILES += $(TESTSCRIPTS:.t=.tap)
|
||||
JUNITFILES += $(TAPFILES:.tap=.xml)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Libraries
|
||||
#
|
||||
|
||||
LIBTARGETS += $(LIBNAME) $(INSTALL_LIBS) $(TESTLIBNAME) \
|
||||
$(SHRLIBNAME) $(INSTALL_SHRLIBS) $(TESTSHRLIBNAME) \
|
||||
$(DLLSTUB_LIBNAME) $(INSTALL_DLLSTUB_LIBS) $(TESTDLLSTUB_LIBNAME) \
|
||||
$(LOADABLE_SHRLIBNAME) $(INSTALL_LOADABLE_SHRLIBS)
|
||||
|
||||
|
||||
# Main targets
|
||||
|
||||
install: buildInstall
|
||||
|
||||
buildInstall: build
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
install: $(patsubst rebuild,clean,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
|
||||
rebuild: clean install
|
||||
|
||||
build: inc
|
||||
|
||||
build: $(OBJSNAME) $(LIBTARGETS) $(PRODTARGETS) $(TESTPRODNAME) \
|
||||
$(TARGETS) $(TESTSCRIPTS) $(INSTALL_LIB_INSTALLS)
|
||||
|
||||
inc : $(COMMON_INC) $(INSTALL_INC) $(INSTALL_CONFIGS)
|
||||
|
||||
buildInstall : \
|
||||
$(INSTALL_SCRIPTS) $(INSTALL_PROD) $(INSTALL_MUNCHS) \
|
||||
$(INSTALL_TCLLIBS) $(INSTALL_TCLINDEX) \
|
||||
$(INSTALL_OBJS) \
|
||||
$(INSTALL_DOCS) \
|
||||
$(INSTALL_HTMLS) \
|
||||
$(INSTALL_TEMPLATE) \
|
||||
$(INSTALL_BIN_INSTALLS)
|
||||
|
||||
clean: build_clean
|
||||
|
||||
build_clean:
|
||||
$(ECHO) "Cleaning"
|
||||
@$(RM) *.i *$(OBJ) *.a $(TESTPRODNAME) \
|
||||
$(LIBNAME) $(TESTLIBNAME) $(SHRLIBNAME) $(TESTSHRLIBNAME) \
|
||||
$(DLLSTUB_LIBNAME) $(TESTDLLSTUB_LIBNAME) \
|
||||
$(LOADABLE_SHRLIBNAME) \
|
||||
$(INC) $(TARGETS) $(TDS) $(CLEANS) \
|
||||
*.out MakefileInclude *.manifest *.exp \
|
||||
$(COMMON_INC) $(HDEPENDS_FILES) $(PRODTARGETS) \
|
||||
$(TESTSCRIPTS) $(TAPFILES) $(JUNITFILES)
|
||||
ifdef RES
|
||||
@$(RM) *$(RES)
|
||||
endif
|
||||
|
||||
$(DIRECTORY_TARGETS) :
|
||||
$(MKDIR) $@
|
||||
|
||||
# Install LIB_INSTALLS libraries before linking executables
|
||||
$(TESTPRODNAME) $(PRODNAME): | $(INSTALL_LIB_INSTALLS)
|
||||
|
||||
# Install built libraries too, unless Makefile says to wait
|
||||
ifneq ($(DELAY_INSTALL_LIBS),YES)
|
||||
$(TESTPRODNAME) $(PRODNAME): | $(INSTALL_LIBS) $(INSTALL_DLLSTUB_LIBS)
|
||||
endif
|
||||
|
||||
# RELEASE file consistency checking
|
||||
checkRelease:
|
||||
$(CONVERTRELEASE) checkRelease
|
||||
warnRelease:
|
||||
-$(CONVERTRELEASE) checkRelease
|
||||
noCheckRelease:
|
||||
ifeq ($(EPICS_HOST_ARCH),$(T_A))
|
||||
$(info Warning: RELEASE file consistency checks have been disabled)
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# The order of the following rules is
|
||||
# VERY IMPORTANT !!!!
|
||||
|
||||
$(TESTPRODNAME) $(PRODNAME): $(PRODUCT_OBJS) $(PROD_RESS) $(PROD_DEPLIBS)
|
||||
|
||||
$(TESTPRODNAME) $(PRODNAME): %$(EXE):
|
||||
@$(RM) $@
|
||||
$(DEBUGCMD) $(LINK.cpp)
|
||||
$(MT_EXE_COMMAND)
|
||||
|
||||
%_ctdt$(OBJ) : %_ctdt.c
|
||||
@$(RM) $@
|
||||
$(COMPILE.ctdt) $<
|
||||
|
||||
%$(DEP):%.c
|
||||
@$(RM) $@
|
||||
$(HDEPENDS.c) $<
|
||||
|
||||
%$(DEP):%.cc
|
||||
@$(RM) $@
|
||||
$(HDEPENDS.cpp) $<
|
||||
|
||||
%$(DEP):%.cpp
|
||||
@$(RM) $@
|
||||
$(HDEPENDS.cpp) $<
|
||||
|
||||
# Cancel GNUMake's built-in rules, which don't have our _INC
|
||||
# dependencies so could get used in some circumstances (gdd)
|
||||
%.o : %.c
|
||||
%.o : %.cc
|
||||
%.o : %.cpp
|
||||
|
||||
# Include files are order-only prerequisites for compilation:
|
||||
%$(OBJ): %.c | $(COMMON_INC) $(INSTALL_INC)
|
||||
@$(RM) $@
|
||||
$(COMPILE.c) -c $<
|
||||
|
||||
%$(OBJ): %.cc | $(COMMON_INC) $(INSTALL_INC)
|
||||
@$(RM) $@
|
||||
$(COMPILE.cpp) -c $<
|
||||
|
||||
%$(OBJ): %.cpp | $(COMMON_INC) $(INSTALL_INC)
|
||||
@$(RM) $@
|
||||
$(COMPILE.cpp) -c $<
|
||||
|
||||
# Windows resource compiler
|
||||
%$(RES): %.rc
|
||||
@$(RM) $@
|
||||
$(RCCMD)
|
||||
|
||||
YACCOPT ?= $($*_YACCOPT)
|
||||
#
|
||||
# rename the y.tab.h file only if we
|
||||
# are creating it
|
||||
#
|
||||
%.c: %.y
|
||||
@$(RM) $*.tab.c
|
||||
@$(RM) $*.tab.h
|
||||
$(YACC) -b$* $(YACCOPT) $<
|
||||
$(MV) $*.tab.c $*.c
|
||||
$(if $(findstring -d, $(YACCOPT)),$(MV) $*.tab.h $*.h,)
|
||||
|
||||
# must be a seperate rule since when not using '-d' the
|
||||
# prefix for .h will be different then .c
|
||||
%.h : %.c %.y
|
||||
|
||||
%.c: %.l
|
||||
@$(RM) $*.yy.c
|
||||
$(LEX) $(LEXOPT) -t $< > $*.yy.c
|
||||
@$(RM) $@
|
||||
$(MV) $*.yy.c $@
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Libraries, shared/DLL and stubs
|
||||
|
||||
$(LIBNAME) $(TESTLIBNAME): $(LIBRARY_OBJS)
|
||||
|
||||
$(filter-out $(DLLSTUB_LIBNAME) $(TESTDLLSTUB_LIBNAME), $(LIBNAME) $(TESTLIBNAME)): $(LIB_PREFIX)%$(LIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(ARCMD)
|
||||
ifneq ($(strip $(RANLIB)),)
|
||||
$(RANLIB) $@
|
||||
endif # RANLIB
|
||||
|
||||
$(SHRLIBNAME) $(DLLSTUB_LIBNAME) $(TESTSHRLIBNAME) $(TESTDLLSTUB_LIBNAME): \
|
||||
$(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
# Stub library timestamps may be earlier than the DLL itself.
|
||||
# This order-only prerequisite resolves any related problems.
|
||||
# The $(LINK.shrlib) command must build both library files if
|
||||
# the target requires a separate stub library file.
|
||||
$(DLLSTUB_LIBNAME): | $(SHRLIBNAME);
|
||||
$(SHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
$(MT_DLL_COMMAND)
|
||||
|
||||
$(TESTDLLSTUB_LIBNAME): | $(TESTSHRLIBNAME);
|
||||
$(TESTSHRLIBNAME): $(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
$(MT_DLL_COMMAND)
|
||||
|
||||
$(LOADABLE_SHRLIBNAME): $(LIBRARY_OBJS) $(LIBRARY_RESS) $(SHRLIB_DEPLIBS)
|
||||
|
||||
$(LOADABLE_SHRLIBNAME): $(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX):
|
||||
@$(RM) $@
|
||||
$(LINK.shrlib)
|
||||
$(MT_DLL_COMMAND)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# C++ munching for VxWorks
|
||||
|
||||
%.nm: %$(EXE)
|
||||
@$(RM) $@
|
||||
$(NM) $< > $@
|
||||
|
||||
%.nm: %$(OBJ)
|
||||
@$(RM) $@
|
||||
$(NM) $< > $@
|
||||
|
||||
%_ctdt.c: %.nm $(TOOLS)/munch.pl
|
||||
@$(RM) $@
|
||||
$(PERL) $(TOOLS)/munch.pl -o $@ $<
|
||||
|
||||
$(MUNCHNAME): %$(MUNCH_SUFFIX): $(MUNCH_DEPENDS) %$(EXE)
|
||||
@$(RM) $@
|
||||
$(MUNCH_CMD)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# GeSys modules for RTEMS
|
||||
$(MODNAME): %$(MODEXT): %$(EXE)
|
||||
@echo "Building module $@"
|
||||
@$(RM) $@
|
||||
$(LINK.mod)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Automated testing
|
||||
|
||||
runtests: $(TESTSCRIPTS)
|
||||
ifdef RUNTESTS_ENABLED
|
||||
-$(PERL) -MTest::Harness -e 'runtests @ARGV if @ARGV;' $^
|
||||
endif
|
||||
|
||||
testspec: $(TESTSCRIPTS)
|
||||
@$(RM) $@
|
||||
@echo OS-class: $(OS_CLASS) > $@
|
||||
@echo Target-arch: $(T_A) >> $@
|
||||
$(if $^, @echo Tests: $^ >> $@)
|
||||
$(if $(TESTFILES), @echo Files: $(TESTFILES) >> $@)
|
||||
$(if $(TESTSPEC_$(OS_CLASS)), @echo "Harness: $(TESTSPEC_$(OS_CLASS))" >> $@)
|
||||
|
||||
test-results: tapfiles
|
||||
ifneq ($(TAPFILES),)
|
||||
ifdef RUNTESTS_ENABLED
|
||||
prove --failures --ext .tap --exec cat --color $(TAPFILES)
|
||||
endif
|
||||
endif
|
||||
|
||||
clean-tests:
|
||||
ifneq ($(TAPFILES),)
|
||||
$(RM) $(TAPFILES)
|
||||
endif
|
||||
ifneq ($(JUNITFILES),)
|
||||
$(RM) $(JUNITFILES)
|
||||
endif
|
||||
|
||||
tapfiles: $(TESTSCRIPTS) $(TAPFILES)
|
||||
junitfiles: $(JUNITFILES)
|
||||
|
||||
# A .tap file is the output from running the associated test script
|
||||
%.tap: %.t
|
||||
ifdef RUNTESTS_ENABLED
|
||||
-$(PERL) $< -tap > $@
|
||||
endif
|
||||
|
||||
%.xml: %.tap
|
||||
$(TAPTOJUNIT) --puretap --output $@ --input $< $*
|
||||
|
||||
# If there's a perl test script (.plt) available, use it
|
||||
%.t: ../%.plt
|
||||
@$(RM) $@
|
||||
$(CP) $< $@
|
||||
|
||||
# Test programs (.t files) must be written in Perl.
|
||||
# Generate a perl program to exec the real test binary.
|
||||
%.t: %$(EXE) $(TOOLS)/makeTestfile.pl
|
||||
@$(RM) $@
|
||||
$(PERL) $(TOOLS)/makeTestfile.pl $@ $<
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Generate header with version number from VCS
|
||||
|
||||
ifneq ($(GENVERSION),)
|
||||
$(COMMON_DIR)/$(GENVERSION): FORCE
|
||||
$(GENVERSIONHEADER) -t $(TOP) -N $(GENVERSIONMACRO) -V "$(GENVERSIONDEFAULT)" $@
|
||||
endif
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Install rules for BIN_INSTALLS and LIB_INSTALLS
|
||||
|
||||
define BIN_INSTALLS_template
|
||||
$$(INSTALL_BIN)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$(<F)"
|
||||
@$$(INSTALL) -d -m $$(BIN_PERMISSIONS) $$^ $$(INSTALL_BIN)
|
||||
endef
|
||||
$(foreach file, $(BIN_INSTALLS), $(eval $(call BIN_INSTALLS_template, $(file))))
|
||||
|
||||
define LIB_INSTALLS_template
|
||||
$$(INSTALL_LIB)/$$(notdir $(1)) : $(1)
|
||||
$(ECHO) "Installing $$(<F)"
|
||||
@$$(INSTALL) -d -m $$(LIB_PERMISSIONS) $$^ $$(INSTALL_LIB)
|
||||
endef
|
||||
$(foreach file, $(LIB_INSTALLS), $(eval $(call LIB_INSTALLS_template, $(file))))
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
$(INSTALL_BIN)/%: ../os/$(OS_CLASS)/%
|
||||
$(ECHO) "Installing os-specific script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: %
|
||||
$(ECHO) "Installing created executable $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_BIN)/%: ../%
|
||||
$(ECHO) "Installing script $@"
|
||||
@$(INSTALL_PRODUCT) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_BIN)
|
||||
|
||||
$(INSTALL_LIB)/%$(LIB_SUFFIX): %$(LIB_SUFFIX)
|
||||
$(ECHO) "Installing library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_LIB)
|
||||
|
||||
ifneq ($(LIB_SUFFIX),$(DLLSTUB_SUFFIX))
|
||||
$(INSTALL_LIB)/%$(DLLSTUB_SUFFIX): %$(DLLSTUB_SUFFIX)
|
||||
$(ECHO) "Installing DLL stub library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(LIB_PERMISSIONS) $< $(INSTALL_LIB)
|
||||
endif # SUFFIX
|
||||
|
||||
$(INSTALL_SHRLIBS): $(INSTALL_SHRLIB)/%: %
|
||||
$(ECHO) "Installing shared library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(SHRLIB_PERMISSIONS) $< $(INSTALL_SHRLIB)
|
||||
ifneq ($(SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE))
|
||||
ifneq (,$(strip $(SHRLIB_VERSION)))
|
||||
@$(RM) $(subst $(SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE),$@)
|
||||
ln -s $< $(subst $(SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE),$@)
|
||||
endif # SHRLIB_VERSION
|
||||
endif # SHRLIB_SUFFIX
|
||||
|
||||
ifneq ($(INSTALL_TCLLIB),$(INSTALL_BIN))
|
||||
$(INSTALL_TCLLIB)/%: %
|
||||
$(ECHO) "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
|
||||
|
||||
$(INSTALL_TCLLIB)/%: ../%
|
||||
$(ECHO) "Installing Tcl library $@"
|
||||
@$(INSTALL) -d -m $(BIN_PERMISSIONS) $< $(INSTALL_TCLLIB)
|
||||
endif
|
||||
|
||||
$(INSTALL_TCLLIB)/$(TCLINDEX): $(INSTALL_TCLLIBS)
|
||||
$(ECHO) "Updating $@"
|
||||
$(ECHO) eval auto_mkindex $(INSTALL_TCLLIB) "$(TCLLIBNAME)" | tclsh
|
||||
|
||||
$(INSTALL_LOADABLE_SHRLIBS): $(INSTALL_SHRLIB)/%: %
|
||||
$(ECHO) "Installing loadable shared library $@"
|
||||
@$(INSTALL_LIBRARY) -d -m $(SHRLIB_PERMISSIONS) $< $(INSTALL_SHRLIB)
|
||||
ifneq ($(LOADABLE_SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE))
|
||||
ifneq (,$(strip $(LOADABLE_SHRLIB_VERSION)))
|
||||
@$(RM) $(subst $(LOADABLE_SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE),$@)
|
||||
ln -s $< $(subst $(LOADABLE_SHRLIB_SUFFIX),$(SHRLIB_SUFFIX_BASE),$@)
|
||||
endif # LOADABLE_SHRLIB_VERSION
|
||||
endif # LOADABLE_SHRLIB_SUFFIX
|
||||
|
||||
$(INSTALL_CONFIG)/%: %
|
||||
$(ECHO) "Installing config file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_CONFIG)/%: ../%
|
||||
$(ECHO) "Installing config file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/% : $(COMMON_DIR)/%
|
||||
$(ECHO) "Installing generated generic include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/% : %
|
||||
$(ECHO) "Installing generic include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/os/$(OS_CLASS)/% : %
|
||||
$(ECHO) "Installing OS dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_INCLUDE)/compiler/$(CMPLR_CLASS)/% : %
|
||||
$(ECHO) "Installing compiler dependent include file $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_DOC)/%: %
|
||||
$(ECHO) "Installing doc $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_DOC)/%: ../%
|
||||
$(ECHO) "Installing doc $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(INSTALL_DOC)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: %
|
||||
$(ECHO) "Installing html $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: ../%
|
||||
$(ECHO) "Installing html $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_HTML)/$(HTMLS_DIR)/%: $(COMMON_DIR)/%
|
||||
$(ECHO) "Installing generated html $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES_SUBDIR)/%: ../%
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
$(INSTALL_TEMPLATES_SUBDIR)/%: %
|
||||
$(ECHO) "Installing $@"
|
||||
@$(INSTALL) -d -m $(INSTALL_PERMISSIONS) $< $(@D)
|
||||
|
||||
-include $(CONFIG)/RULES_EXPAND
|
||||
|
||||
.PRECIOUS: %.i %.o %.c %.nm %.cpp %.cc
|
||||
.PRECIOUS: $(COMMON_INC)
|
||||
|
||||
.PHONY: all host inc build install clean rebuild buildInstall build_clean
|
||||
.PHONY: runtests tapfiles clean-tests test-results junitfiles
|
||||
.PHONY: checkRelease warnRelease noCheckRelease FORCE
|
||||
|
||||
endif # BASE_RULES_BUILD
|
||||
# EOF RULES_BUILD
|
@ -1,98 +1,2 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2006 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
ARCHS += $(BUILD_ARCHS)
|
||||
ACTIONS += inc build install buildInstall clean realclean archclean
|
||||
ACTIONS += runtests tapfiles clean-tests test-results junitfiles
|
||||
|
||||
dirActionArchTargets = $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(action)$(DIVIDER)$(arch))))
|
||||
dirArchTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(dir)$(DIVIDER)$(arch)))
|
||||
dirActionTargets += $(foreach dir, $(DIRS), \
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(dir)$(DIVIDER)$(action)))
|
||||
actionArchTargets = $(foreach action, $(ACTIONS), \
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(action)$(DIVIDER)$(arch)))
|
||||
|
||||
all: install
|
||||
host: install$(DIVIDER)$(EPICS_HOST_ARCH)
|
||||
|
||||
# Include <top>/cfg/DIR_RULES* files from tops defined in RELEASE* files
|
||||
# Do this here so they can add ACTIONS
|
||||
#
|
||||
RELEASE_CFG_DIR_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/DIR_RULES*))
|
||||
ifneq ($(RELEASE_CFG_DIR_RULES),)
|
||||
include $(RELEASE_CFG_DIR_RULES)
|
||||
endif
|
||||
|
||||
# Allows rebuild to work with parallel builds option, -j.
|
||||
ifeq (rebuild,$(filter rebuild,$(MAKECMDGOALS)))
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)install): \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)clean)
|
||||
rebuild: $(foreach dir, $(DIRS), $(dir)$(DIVIDER)install)
|
||||
endif
|
||||
|
||||
# Create directory dependancies lines for GNU make -j option
|
||||
# Only works with GNU make 3.81 or later (uses eval function)
|
||||
define DEP_template1
|
||||
$(1): $$($(1)_DEPEND_DIRS)
|
||||
endef
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template1,$(dir))))
|
||||
|
||||
define DEP_template2
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
endef
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template2,$(dir),$(action)))))
|
||||
|
||||
define DEP_template3
|
||||
$(1)$$(DIVIDER)$(2) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2),$$(ddir)))
|
||||
endef
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template3,$(dir),$(arch)))))
|
||||
|
||||
define DEP_template4
|
||||
$(1)$$(DIVIDER)$(2)$$(DIVIDER)$(3) : $$(foreach ddir, $$($(1)_DEPEND_DIRS), \
|
||||
$$(addsuffix $$(DIVIDER)$(2)$$(DIVIDER)$(3),$$(ddir)))
|
||||
endef
|
||||
$(foreach arch, $(ARCHS), \
|
||||
$(foreach action, $(ACTIONS), \
|
||||
$(foreach dir, $(DIRS), \
|
||||
$(eval $(call DEP_template4,$(dir),$(action),$(arch))))))
|
||||
|
||||
dirPart = $(join $(dir $@), $(word 1, $(subst $(DIVIDER), ,$(notdir $@))))
|
||||
actionArchPart = $(join $(word 2, $(subst $(DIVIDER), ,$(notdir $@))), \
|
||||
$(addprefix $(DIVIDER),$(word 3, $(subst $(DIVIDER), ,$(notdir $@)))))
|
||||
$(DIRS) $(dirActionTargets) $(dirArchTargets) $(dirActionArchTargets) :
|
||||
$(MAKE) -C $(dirPart) $(actionArchPart)
|
||||
|
||||
$(ARCHS) $(ACTIONS) $(actionArchTargets) :%: \
|
||||
$(foreach dir, $(DIRS), $(dir)$(DIVIDER)%)
|
||||
|
||||
.PHONY : $(DIRS) all host rebuild
|
||||
.PHONY : $(ARCHS) $(ACTIONS)
|
||||
.PHONY : $(dirActionTargets) $(dirArchTargets)
|
||||
.PHONY : $(dirActionArchTargets)
|
||||
.PHONY : $(actionArchTargets)
|
||||
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
||||
#RULES_DIRS
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
@ -1,64 +0,0 @@
|
||||
# <top>/configure/RULES_EXPAND
|
||||
|
||||
vpath %@ $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Variable expansion
|
||||
|
||||
# Default settings
|
||||
EXPAND_TOOL ?= $(PERL) $(TOOLS)/expandVars.pl
|
||||
|
||||
EXPANDFLAGS += -t $(INSTALL_LOCATION) -a $(T_A)
|
||||
EXPANDFLAGS += $(addprefix -D ,$(EXPAND_VARS))
|
||||
|
||||
# The names of files to be expanded must end with '@'
|
||||
EXPANDED = $(EXPAND:%@=%)
|
||||
|
||||
$(EXPANDED): %: %@
|
||||
$(ECHO) "Expanding $< to $@"
|
||||
@$(RM) $@
|
||||
@$(EXPAND_TOOL) $(EXPANDFLAGS) $($@_EXPANDFLAGS) $< $@
|
||||
|
||||
clean: expand_clean
|
||||
|
||||
expand_clean:
|
||||
@$(RM) $(EXPANDED)
|
||||
|
||||
.PRECIOUS: $(EXPANDED)
|
||||
.PHONY: expand_clean
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Assemblies (files assembled from snippets)
|
||||
|
||||
ASSEMBLE_TOOL ?= $(PERL) $(TOOLS)/assembleSnippets.pl
|
||||
|
||||
define COMMON_ASSEMBLY_template
|
||||
$1_SNIPPETS += $$(foreach dir, .. $$(SRC_DIRS), \
|
||||
$$(wildcard $$(dir)/$$($1_PATTERN)))
|
||||
$(COMMON_DIR)/$1: $$($1_SNIPPETS)
|
||||
$(ECHO) "Assembling common file $$@ from snippets"
|
||||
@$(RM) $1
|
||||
$(ASSEMBLE_TOOL) -o $1 $$^
|
||||
@$(MV) $1 $$@
|
||||
endef
|
||||
$(foreach asy, $(COMMON_ASSEMBLIES), \
|
||||
$(eval $(call COMMON_ASSEMBLY_template,$(strip $(asy)))))
|
||||
|
||||
define ASSEMBLY_template
|
||||
$1_SNIPPETS += $$(foreach dir, .. $$(SRC_DIRS), \
|
||||
$$(wildcard $$(dir)/$$($1_PATTERN)))
|
||||
$1: $$($1_SNIPPETS)
|
||||
$(ECHO) "Assembling file $$@ from snippets"
|
||||
@$(RM) $$@
|
||||
$(ASSEMBLE_TOOL) -o $$@ $$^
|
||||
endef
|
||||
$(foreach asy, $(ASSEMBLIES), \
|
||||
$(eval $(call ASSEMBLY_template,$(strip $(asy)))))
|
||||
|
||||
define ASSEMBLY_DEP_template
|
||||
$1$(DEP):
|
||||
@echo $1: > $$@
|
||||
endef
|
||||
$(foreach asy, $(sort $(COMMON_ASSEMBLIES) $(ASSEMBLIES)), \
|
||||
$(eval $(call ASSEMBLY_DEP_template,$(strip $(asy)))))
|
||||
|
@ -1,73 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# Include <top>/configure/RULES_BUILD from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_RULES_BUILDS = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/configure/RULES_BUILD))
|
||||
ifneq ($(RELEASE_RULES_BUILDS),)
|
||||
include $(RELEASE_RULES_BUILDS)
|
||||
endif
|
||||
|
||||
# Include <top>/cfg/RULES* files from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_CFG_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/RULES*))
|
||||
ifneq ($(RELEASE_CFG_RULES),)
|
||||
include $(RELEASE_CFG_RULES)
|
||||
endif
|
||||
|
||||
# If this is not BASE then include <TOP>/configure/RULES_BUILD
|
||||
#
|
||||
ifeq ($(wildcard $(TOP)/configure/CONFIG_BASE_VERSION),)
|
||||
TOP_RULES_BUILDS = $(wildcard $(TOP)/configure/RULES_BUILD)
|
||||
ifneq ($(TOP_RULES_BUILDS),)
|
||||
include $(TOP_RULES_BUILDS)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Include our own $(INSTALL_CFG)/RULES* files
|
||||
#
|
||||
TOP_CFG_RULES = $(wildcard $(INSTALL_CFG)/RULES*)
|
||||
ifneq ($(TOP_CFG_RULES),)
|
||||
include $(TOP_CFG_RULES)
|
||||
endif
|
||||
|
||||
# Rules to install each FILE_TYPE
|
||||
#
|
||||
define FILE_TYPE_template
|
||||
$(1) += $$(if $$(strip $$($(1)_$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_$(OS_CLASS))), \
|
||||
$$($(1)_DEFAULT))
|
||||
INSTALLS_$(1) = $$($(1):%=$$(INSTALL_$(1))/%)
|
||||
|
||||
$$(INSTALL_$(1))/%: ../%
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
$$(INSTALL_$(1))/%: %
|
||||
$(ECHO) "Installing $(1) file $$@"
|
||||
@$$(INSTALL) -d -m $$(INSTALL_PERMISSIONS) $$< $$(dir $$@)
|
||||
|
||||
buildInstall: $$(INSTALLS_$(1))
|
||||
endef
|
||||
$(foreach type, $(FILE_TYPE), \
|
||||
$(eval $(call FILE_TYPE_template,$(strip $(type)))))
|
||||
|
||||
# Cleaning FILE_TYPE files
|
||||
#
|
||||
clean: file_type_clean
|
||||
|
||||
file_type_clean:
|
||||
@$(RM) $(foreach type, $(FILE_TYPE), $($(type)))
|
||||
|
||||
.PHONY : file_type_clean
|
||||
|
||||
# User specific rules
|
||||
#
|
||||
-include $(HOME)/configure/RULES_USER
|
@ -1,54 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# Octave definitions and rules
|
||||
|
||||
ifeq ($(findstring Host,$(VALID_BUILDS)),Host)
|
||||
|
||||
FILE_TYPE += OCTAVE
|
||||
INSTALL_OCTAVE = $(INSTALL_LOCATION_LIB)/octave
|
||||
DIRECTORY_TARGETS += $(INSTALL_OCTAVE)
|
||||
|
||||
ifdef T_A
|
||||
|
||||
MKOCTFILE_FLAGS += --mex --verbose -DOCTAVE
|
||||
MKOCTFILE_FLAGS += $(RELEASE_INCLUDES) $(addprefix -L,$(SHRLIB_SEARCH_DIRS))
|
||||
|
||||
vpath %.mex $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
|
||||
define OCTAVES_template
|
||||
$(1) : $$($(1)_SRCS)
|
||||
endef
|
||||
$(foreach file, $(OCTAVES),$(eval $(call OCTAVES_template,$(strip $(file)))))
|
||||
|
||||
clean: octave_clean
|
||||
|
||||
#This clean works from O.* dirs.
|
||||
octave_clean:
|
||||
@$(RM) *.mex *.m
|
||||
|
||||
.PHONY: octave_clean
|
||||
|
||||
.PRECIOUS: *.m *.mex
|
||||
|
||||
%.mex:
|
||||
mkoctfile $(MKOCTFILE_FLAGS) $($*_LIBS:%=-l%) $($*_SRCS)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
# Makefile usage:
|
||||
# OCTAVES += abc.mex def.mex
|
||||
# abc_SRCS = a1.c a2.c
|
||||
# abc_LIBS = ca Com
|
||||
# def_SRCS = a3.c a4.c
|
||||
# def_LIBS = ca Com
|
@ -1,154 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# RULES_TARGET
|
||||
#
|
||||
# This file is to be maintained by the community.
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define TARGET_template
|
||||
$(1)_$(2) += $$(if $$(strip $$($(1)_$(2)_$$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_$(2)_$$(OS_CLASS))), \
|
||||
$$($(1)_$(2)_DEFAULT))
|
||||
endef
|
||||
|
||||
$(foreach type, SRCS RCS OBJS LDFLAGS OBJLIBS LDOBJS SYS_LIBS , \
|
||||
$(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) , \
|
||||
$(eval $(call TARGET_template,$(strip $(target)),$(type)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# This define block requires GNU make 3.81
|
||||
define PROD_template
|
||||
ifeq ($$(strip $$($(1)_OBJS) $$($(1)_SRCS) $$(PRODUCT_OBJS)),)
|
||||
$(1)_OBJS = $(1)$$(OBJ)
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD), \
|
||||
$(eval $(call PROD_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define TARGET2_template
|
||||
$(1)_LDLIBS += $$($(1)_LIBS)
|
||||
$(1)_LDLIBS += $$(if $$(strip $$($(1)_LIBS_$(OS_CLASS))), \
|
||||
$$(subst -nil-,,$$($(1)_LIBS_$(OS_CLASS))), \
|
||||
$$($(1)_LIBS_DEFAULT))
|
||||
|
||||
$(1)_RESS = $$(if $(RES),$$(addsuffix $(RES),$$(basename $$($(1)_RCS))),)
|
||||
$(1)_OBJSNAME = $$(addsuffix $(OBJ),$$(basename $$($(1)_OBJS) $$($(1)_SRCS) ))
|
||||
$(1)_DEPLIBS = $$(foreach lib, $$($(1)_LDLIBS), \
|
||||
$$(firstword $$(wildcard \
|
||||
$$(addsuffix /$(DLLSTUB_PREFIX)$$(lib)$(DLLSTUB_SUFFIX), \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
$$(addsuffix /$(SHRLIB_PREFIX)$$(lib)*$(SHRLIB_SUFFIX_BASE)*, \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
$$(addsuffix /$(LIB_PREFIX)$$(lib)$(LIB_SUFFIX), \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
) $$(addsuffix /$(BUILDLIB_PREFIX)$$(lib)$(BUILDLIB_SUFFIX), \
|
||||
$$(firstword $$($$(lib)_DIR) $(SHRLIB_SEARCH_DIRS)))))
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD) $(LIBRARY) $(TESTLIBRARY) $(LOADABLE_LIBRARY) , \
|
||||
$(eval $(call TARGET2_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define PROD2_template
|
||||
|
||||
$(1)$$(EXE): $$($(1)_OBJSNAME) $$($(1)_RESS) $$($(1)_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(PROD) $(TESTPROD), \
|
||||
$(eval $(call PROD2_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LIBRARY_template
|
||||
|
||||
$(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS), \
|
||||
$$(firstword $$(wildcard \
|
||||
$$(addsuffix /$(DLLSTUB_PREFIX)$$(lib)$(DLLSTUB_SUFFIX), \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
$$(addsuffix /$(SHRLIB_PREFIX)$$(lib)*$(SHRLIB_SUFFIX_BASE)*, \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
$$(addsuffix /$(LIB_PREFIX)$$(lib)$(LIB_SUFFIX), \
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)) \
|
||||
) $$(addsuffix /$(BUILDLIB_PREFIX)$$(lib)$(BUILDLIB_SUFFIX), \
|
||||
$$(firstword $$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))))
|
||||
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LIB_PREFIX)$(1)$$(LIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
|
||||
ifeq ($$(SHARED_LIBRARIES),YES)
|
||||
|
||||
ifdef SHRLIB_SUFFIX
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
endef
|
||||
|
||||
$(foreach target, $(LIBRARY) $(TESTLIBRARY), \
|
||||
$(eval $(call LIBRARY_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LIBRARY2_template
|
||||
BUILD_LIBRARY += $$(if $$(strip $$($(1)_OBJSNAME) $$(LIBRARY_OBJS)),$(1),)
|
||||
|
||||
# Needed for -j parallel builds option
|
||||
ifeq ($$(SHARED_LIBRARIES),YES)
|
||||
ifdef SHRLIB_SUFFIX
|
||||
$$(INSTALL_LIB)/$$(DLLSTUB_PREFIX)$(1)$$(DLLSTUB_SUFFIX): \
|
||||
$$(INSTALL_SHRLIB)/$$(SHRLIB_PREFIX)$(1)$$(SHRLIB_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
endef
|
||||
|
||||
$(foreach target, $(LIBRARY), \
|
||||
$(eval $(call LIBRARY2_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LIBRARY3_template
|
||||
$(1)_DIR = .
|
||||
TESTBUILD_LIBRARY += $$(if $$(strip $$($(1)_OBJSNAME) $$(LIBRARY_OBJS)),$(1),)
|
||||
endef
|
||||
|
||||
$(foreach target, $(TESTLIBRARY), \
|
||||
$(eval $(call LIBRARY3_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
define LOADABLE_LIBRARY_template
|
||||
LOADABLE_BUILD_LIBRARY += $$(if $$(strip $$($(1)_OBJSNAME) $$(LIBRARY_OBJS)),$(1),)
|
||||
|
||||
$(1)_DLL_DEPLIBS=$$(foreach lib, $$($(1)_DLL_LIBS),\
|
||||
$$(firstword $$(wildcard $$(addsuffix /$$(LIB_PREFIX)$$(lib).\*,\
|
||||
$$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))\
|
||||
$$(addsuffix /$$(LIB_PREFIX)$$(lib)$$(LIB_SUFFIX),\
|
||||
$$(firstword $$($$(lib)_DIR) $$(SHRLIB_SEARCH_DIRS)))))
|
||||
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_OBJSNAME) $$($(1)_RESS)
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DEPLIBS)
|
||||
$$(LOADABLE_SHRLIB_PREFIX)$(1)$$(LOADABLE_SHRLIB_SUFFIX):$$($(1)_DLL_DEPLIBS)
|
||||
endef
|
||||
|
||||
$(foreach target, $(LOADABLE_LIBRARY), \
|
||||
$(eval $(call LOADABLE_LIBRARY_template,$(strip $(target)))))
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
|
@ -1,87 +1,2 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in the file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
include $(CONFIG)/RULES_DIRS
|
||||
|
||||
distclean: realclean cvsclean realuninstall
|
||||
|
||||
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
|
||||
cvsclean:
|
||||
$(PERL) $(CVSCLEAN)
|
||||
|
||||
realuninstall: uninstallDirs
|
||||
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
||||
|
||||
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC) \
|
||||
$(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB) $(DIRECTORY_TARGETS)
|
||||
uninstallDirs:
|
||||
$(RMDIR) $(UNINSTALL_DIRS)
|
||||
|
||||
uninstall: archuninstall uninstallDirs
|
||||
|
||||
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS)) | cleandirs
|
||||
|
||||
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
||||
uninstall$(DIVIDER)%:
|
||||
$(RMDIR) $(INSTALL_LOCATION_BIN)/$(archPart)
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)/$(archPart)
|
||||
|
||||
cleandirs:
|
||||
@$(NOP)
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_BIN)/*),)
|
||||
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
||||
endif
|
||||
ifeq ($(wildcard $(INSTALL_LOCATION_LIB)/*),)
|
||||
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
||||
endif
|
||||
|
||||
|
||||
help:
|
||||
@echo "Usage: gnumake [options] [target] ..."
|
||||
@echo "Targets supported by all Makefiles:"
|
||||
@echo " all - Same as install (default rule)"
|
||||
@echo " inc - Installs header files"
|
||||
@echo " build - Builds and installs all targets"
|
||||
@echo " install - Builds and installs all targets"
|
||||
@echo " buildInstall - Same as install (deprecated)"
|
||||
@echo " clean - Removes the O.<arch> dirs created by running make"
|
||||
@echo " In O.<arch> dir, clean removes build created files"
|
||||
@echo " realclean - Removes ALL O.<arch> dirs"
|
||||
@echo " Cannot be used within an O.<arch> dir"
|
||||
@echo " rebuild - Same as clean install"
|
||||
@echo " archclean - Removes O.<arch> dirs but not O.Common dir"
|
||||
@echo " runtests - Run self-tests, summarize results"
|
||||
@echo "\"Partial\" build targets supported by Makefiles:"
|
||||
@echo " host - Builds and installs $(EPICS_HOST_ARCH) only."
|
||||
@echo " inc$(DIVIDER)<arch> - Installs <arch> only header files."
|
||||
@echo " build$(DIVIDER)<arch> - Builds and installs <arch> only."
|
||||
@echo " install$(DIVIDER)<arch> - Builds and installs <arch> only."
|
||||
@echo " clean$(DIVIDER)<arch> - Cleans <arch> binaries in O.<arch> dirs only."
|
||||
@echo " uninstall$(DIVIDER)<arch> - Remove bin & lib directories for <arch> only."
|
||||
@echo "Targets supported by top level Makefile:"
|
||||
@echo " archuninstall - Remove bin & lib directories created by this hostarch."
|
||||
@echo " uninstall - Remove install directories created by this hostarch."
|
||||
@echo " realuninstall - Removes ALL install dirs"
|
||||
@echo " distclean - Same as realclean cvsclean realuninstall."
|
||||
@echo " cvsclean - Removes cvs .#* files in all dirs of directory tree"
|
||||
@echo " help - Prints this list of valid make targets "
|
||||
@echo "Indiv. object targets are supported by O.<arch> level Makefile .e.g"
|
||||
@echo " xxxRecord.o"
|
||||
|
||||
.PHONY: cleandirs distclean cvsclean realuninstall archuninstall uninstallDirs
|
||||
.PHONY: uninstall help
|
||||
|
||||
# Include <top>/cfg/TOP_RULES* files from tops defined in RELEASE* files
|
||||
#
|
||||
RELEASE_CFG_TOP_RULES = $(foreach top, $(RELEASE_TOPS), \
|
||||
$(wildcard $($(top))/cfg/TOP_RULES*))
|
||||
ifneq ($(RELEASE_CFG_TOP_RULES),)
|
||||
include $(RELEASE_CFG_TOP_RULES)
|
||||
endif
|
||||
#RULES_TOP
|
||||
include $(CONFIG)/RULES_TOP
|
||||
|
@ -1,216 +0,0 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Makefile for base/src/sample
|
||||
#
|
||||
#
|
||||
# Sample Makefile showing some possible entries
|
||||
# that are allowed using RULES_BUILD.
|
||||
#
|
||||
|
||||
TOP = ../../..
|
||||
include $(TOP)/configure/CONFIG
|
||||
|
||||
# Add-on CPPFLAGS that are needed by this Makefile.
|
||||
# (If possible, all system specific flags should be
|
||||
# defined in configure/os/CONFIG.<host>.<target>
|
||||
#
|
||||
# These CPPFLAGS rules also apply to these Makefile-variables:
|
||||
# CPPFLAGS C preprocessor flags
|
||||
# CFLAGS C flags
|
||||
# CXXFLAGS C++ flags
|
||||
# LDFLAGS link flags
|
||||
#
|
||||
# This is used on all systems:
|
||||
USR_CPPFLAGS = -DVAR=value -Ddefine_for_all_systems
|
||||
# ..only for WIN32:
|
||||
USR_CPPFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
#
|
||||
# -nil- is special:
|
||||
# if USR_CPPFLAGS_WIN32 was undefined or empty, .._DEFAULT would have
|
||||
# been used.
|
||||
# To indicate
|
||||
# "yes, there is a special USR_CPPFLAGS for WIN32, but it's empty"
|
||||
# you have to set it to -nil-:
|
||||
USR_CPPFLAGS_WIN32 = -nil-
|
||||
# .. for all other arch classes:
|
||||
USR_CPPFLAGS_DEFAULT = -DVERSION='generic Unix'
|
||||
|
||||
# CPPFLAGS that are only used to compile a_file.c or a_file.cpp:
|
||||
#
|
||||
a_file_CPPFLAGS = -DIN_A_FILE
|
||||
a_file_CPPFLAGS_WIN32 = -DVERSION='WIN32 port'
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# general rule for all .c .cpp .h .hh files and scripts:
|
||||
#
|
||||
# In here you supply just the filename without '../' etc.
|
||||
# While building in an O.xxx subdir, the
|
||||
# sources are extracted from the
|
||||
# ../os/$(OS_CLASS) directory if it exists, or
|
||||
# ../os/default directory if it exists, or
|
||||
# .. directory
|
||||
# ---------------------------------------------------------
|
||||
|
||||
# includes to install from this Makefile
|
||||
#
|
||||
# again: if INC_$(OS_CLASS) is defined, it is added to INC,
|
||||
# otherwise INC_DEFAULT (if defined) is added:
|
||||
#
|
||||
INC_DEFAULT = for_all_but_WIN32_or_vxWorks.h
|
||||
INC_WIN32 = only_for_WIN32.h
|
||||
INC_vxWorks = -nil- # vxWorks uses no special include
|
||||
INC = file.h
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# defining a library
|
||||
# --------------------------------------------------------------------
|
||||
#
|
||||
# Contents of a library are specified via SRCS, LIB_SRCS, or .._SRCS.
|
||||
# From this the platform specific object names (.o, .obj, ...)
|
||||
# are derived automatically.
|
||||
#
|
||||
# Platform specific objects:
|
||||
# use .._OBJS_$(OS_CLASS) or .._OBJS_DEFAULT
|
||||
#
|
||||
# Platform specific files can also be put in
|
||||
# separate os/OS_CLASS directories!
|
||||
#
|
||||
# For almost every file the seach order is:
|
||||
# ./os/OS_CLASS
|
||||
# ./os/generic
|
||||
# .
|
||||
# So usually only LIB_SRCS should be sufficient!
|
||||
|
||||
# SRCS files will be used for both LIBRARY and PROD
|
||||
SRCS = file_for_lib.c another_file.cpp
|
||||
SRCS_DEFAULT = posix.c
|
||||
SRCS_WIN32 = win32_special.c
|
||||
SRCS_Linux = -nil-
|
||||
#
|
||||
libname_SRCS = file_for_lib.c another_file.cpp
|
||||
libname_SRCS_DEFAULT = posix.c
|
||||
libname_SRCS_WIN32 = win32_special.c
|
||||
libname_SRCS_Linux = -nil-
|
||||
#
|
||||
# SRCS that are used for all libraries
|
||||
LIB_SRCS = file_for_lib.c another_file.cpp
|
||||
LIB_SRCS_DEFAULT = posix.c
|
||||
LIB_SRCS_WIN32 = win32_special.c
|
||||
LIB_SRCS_Linux = -nil-
|
||||
|
||||
# Library to build:
|
||||
# lib$(LIBRARY).a or ..dll/..exp/..lib
|
||||
#
|
||||
LIBRARY=libname
|
||||
#
|
||||
# Host or Ioc platform specific library to build:
|
||||
#
|
||||
LIBRARY_IOC=libnameIoc
|
||||
LIBRARY_HOST=libnameHost
|
||||
|
||||
# Library version
|
||||
SHRLIB_VERSION =
|
||||
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
|
||||
# On Unix type hosts .$(SHRLIB_VERSION) is appended to library name
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
# defining products (executable programs)
|
||||
# --------------------------------------------------------------------
|
||||
#
|
||||
# if SRCS is undefined, it defaults to $(PROD).c
|
||||
SRCS=a.c b.c c.c
|
||||
|
||||
# SRCS that are used for all PRODs
|
||||
#
|
||||
PROD_SRCS = ppp.c qqq.c
|
||||
|
||||
# SRCS that are only used for PROD a_file
|
||||
#
|
||||
a_file_SRCS = aa.c bb.c
|
||||
|
||||
#
|
||||
# EPICS libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# note that DLL_LIBS (the libraries needed to link a shareable
|
||||
# library) is created by default from the PROD/SYS libraries specified
|
||||
# below minus the name of the sharable library (LIBRARY)
|
||||
#
|
||||
#
|
||||
# ---------- libraries for a specific product pppp
|
||||
# for all systems
|
||||
pppp_LIBS = Com Ca
|
||||
# for most systems:
|
||||
pppp_LIBS_DEFAULT = mathlib
|
||||
pppp_LIBS_WIN32 = -nil-
|
||||
|
||||
# ---------- libraries for all products
|
||||
# for all systems
|
||||
PROD_LIBS = Com Ca
|
||||
# for most systems:
|
||||
PROD_LIBS_DEFAULT = mathlib
|
||||
PROD_LIBS_WIN32 = -nil-
|
||||
|
||||
# ---------- Libraries for all products and all libraries:
|
||||
# for all systems
|
||||
USR_LIBS = Xm Xt X11
|
||||
Xm_DIR = $(MOTIF_LIB)
|
||||
Xt_DIR = $(X11_LIB)
|
||||
X11_DIR = $(X11_LIB)
|
||||
|
||||
# for most systems
|
||||
USR_LIBS_DEFAULT = foolib
|
||||
USR_LIBS_WIN32 = -nil-
|
||||
foolib_DIR = $(FOO_LIB)
|
||||
|
||||
# system libs needed to link PROD, TESTPROD and sharable library
|
||||
#
|
||||
# ---------- system libraries for all products
|
||||
# for all systems:
|
||||
PROD_SYS_LIBS = m
|
||||
# for most systems:
|
||||
PROD_SYS_LIBS_DEFAULT = foolib
|
||||
PROD_SYS_LIBS_WIN32 = -nil-
|
||||
|
||||
# Product,
|
||||
# may be caRepeater.o -> caRepeater
|
||||
# or caRepeater.obj -> caRepeater.exe
|
||||
PROD = prod
|
||||
PROD_DEFAULT = product_for_rest
|
||||
PROD_WIN32 = product_only_for_WIN32
|
||||
PROD_Linux = product_only_for_Linux
|
||||
PROD_solaris = product_only_for_solaris
|
||||
|
||||
PROD_HOST = product_only_for_host_type_systems
|
||||
PROD_IOC = product_only_for_ioc_type_systems
|
||||
|
||||
# Product version
|
||||
PROD_VERSION =
|
||||
# On WIN32 results in /version:$(SHRLIB_VERSION) link option
|
||||
# On Unix type hosts PROD_VERSION) is ignored
|
||||
|
||||
# Scripts to install
|
||||
#
|
||||
# If there is both ../$(SCRIPTS) and ../$(OS_CLASS)/$(SCRIPTS),
|
||||
# the latter, system specific version will be installed!
|
||||
#
|
||||
SCRIPTS_DEFAULT = script_for_rest
|
||||
SCRIPTS_WIN32 = script_only_for_WIN32
|
||||
SCRIPTS_Linux = script_only_for_Linux
|
||||
SCRIPTS = script
|
||||
|
||||
# if you want to build products locally without installing:
|
||||
# TESTPROD = test
|
||||
|
||||
# put all definitions before the following include line
|
||||
# put all rules after the following include line
|
||||
|
||||
include $(TOP)/configure/RULES
|
||||
|
||||
# EOF Makefile
|
@ -1,157 +0,0 @@
|
||||
#
|
||||
# This file contains definitions for RTEMS builds
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# University of Saskatchewan
|
||||
# eric.norum@usask.ca
|
||||
#
|
||||
# Contains definitions common to all RTEMS targets
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
# Sites may override definitions in os/CONFIG_SITE.Common.RTEMS
|
||||
#-------------------------------------------------------
|
||||
#
|
||||
|
||||
#-------------------------------------------------------
|
||||
# RTEMS tools are similar to UNIX tools
|
||||
-include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
GNU_TARGET_INCLUDE_DIR =
|
||||
unexport GCC_EXEC_PREFIX
|
||||
|
||||
#--------------------------------------------------
|
||||
# Get RTEMS_BASE definition
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.RTEMS
|
||||
|
||||
ifneq ($(CONFIG),$(TOP)/configure)
|
||||
-include $(TOP)/configure/CONFIG_SITE.Common.RTEMS
|
||||
endif
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Pick up the RTEMS tool/path definitions from the RTEMS BSP directory.
|
||||
include $(RTEMS_BASE)/$(RTEMS_TARGET_CPU)-rtems$(RTEMS_VERSION)/$(subst RTEMS-,,$(T_A))/Makefile.inc
|
||||
include $(RTEMS_CUSTOM)
|
||||
include $(CONFIG.CC)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# RTEMS cross-development tools
|
||||
CC = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) $(GCCSPECS) -fasm
|
||||
CCC = $(RTEMS_TOOLS)/bin/$(CXX)
|
||||
CPP = $(RTEMS_TOOLS)/bin/$(CC_FOR_TARGET) -x c -E
|
||||
AR = $(RTEMS_TOOLS)/bin/$(AR_FOR_TARGET)
|
||||
LD = $(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -r
|
||||
|
||||
RANLIB := $(RTEMS_TOOLS)/bin/$(RANLIB)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build types
|
||||
VALID_BUILDS = Ioc
|
||||
|
||||
#--------------------------------------------------
|
||||
# The RTEMS Makefiles redefine several macros, so we have to
|
||||
# reset them to the proper EPICS values, from CONFIG_COMMON
|
||||
CFLAGS = $($(BUILD_CLASS)_CFLAGS) $(POSIX_CFLAGS) $(OPT_CFLAGS)\
|
||||
$(DEBUG_CFLAGS) $(PIPE_CFLAGS) $(WARN_CFLAGS) $(TARGET_CFLAGS)\
|
||||
$(USR_CFLAGS) $(CMD_CFLAGS) $(ARCH_DEP_CFLAGS) $(CODE_CFLAGS)\
|
||||
$(STATIC_CFLAGS) $(OP_SYS_CFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
CXXFLAGS = $($(BUILD_CLASS)_CXXFLAGS) $(POSIX_CXXFLAGS) $(OPT_CXXFLAGS)\
|
||||
$(DEBUG_CXXFLAGS) $(PIPE_CFLAGS) $(WARN_CXXFLAGS) $(TARGET_CXXFLAGS)\
|
||||
$(USR_CXXFLAGS) $(CMD_CXXFLAGS) $(ARCH_DEP_CXXFLAGS) $(CODE_CXXFLAGS)\
|
||||
$(STATIC_CXXCFLAGS) $(OP_SYS_CXXFLAGS) $(LIBRARY_SRC_CFLAGS)
|
||||
|
||||
LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(CMD_LDFLAGS)\
|
||||
$(POSIX_LDFLAGS) $(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(OP_SYS_LDFLAGS)\
|
||||
$($(BUILD_CLASS)_LDFLAGS) $(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LDLIBS = $(POSIX_LDLIBS) $(ARCH_DEP_LDLIBS) $(DEBUG_LDLIBS) $(OP_SYS_LDLIBS)\
|
||||
$(GNU_LDLIBS_$(GNU))
|
||||
|
||||
CPPFLAGS += $($(BUILD_CLASS)_CPPFLAGS) $(POSIX_CPPFLAGS) $(OPT_CPPFLAGS)\
|
||||
$(DEBUG_CPPFLAGS) $(WARN_CPPFLAGS) $(BASE_CPPFLAGS) $(TARGET_CPPFLAGS)\
|
||||
$(USR_CPPFLAGS) $(CMD_CPPFLAGS) $(ARCH_DEP_CPPFLAGS) $(OP_SYS_CPPFLAGS)\
|
||||
$(OP_SYS_INCLUDE_CPPFLAGS) $(CODE_CPPFLAGS)
|
||||
|
||||
ECHO = @$(if $(findstring s,$(patsubst T_A=%,,$(MAKEFLAGS))),$(NOP),echo)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Although RTEMS uses gcc, it wants to use gcc its own way
|
||||
CROSS_CPPFLAGS =
|
||||
CROSS_LDFLAGS =
|
||||
SHRLIB_CFLAGS =
|
||||
OPT_CFLAGS_YES = $(CFLAGS_OPTIMIZE_V)
|
||||
OPT_CXXFLAGS_YES = $(CFLAGS_OPTIMIZE_V)
|
||||
OPT_CFLAGS_NO = $(CFLAGS_DEBUG_V)
|
||||
OPT_CXXFLAGS_NO = $(CFLAGS_DEBUG_V)
|
||||
|
||||
MODEXT=.obj
|
||||
|
||||
#--------------------------------------------------
|
||||
# operating system class (include/os/<os_class>)
|
||||
OS_CLASS = RTEMS
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_LDLIBS += -lrtemsCom -lc -lrtemscpu -lCom -lnfs -lm
|
||||
OP_SYS_LDFLAGS += $(CPU_CFLAGS) -u Init \
|
||||
$(PROJECT_RELEASE)/lib/no-dpmem.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-mp.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-part.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-signal.rel \
|
||||
$(PROJECT_RELEASE)/lib/no-rtmon.rel
|
||||
|
||||
MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
|
||||
|
||||
# Do not link against libraries which are part of the Generic Image
|
||||
GESYS_LIBS += -lgcc
|
||||
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++ -lbspExt
|
||||
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
|
||||
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
|
||||
|
||||
# While not part of the Generic Image it provides symbols which
|
||||
# would conflict.
|
||||
GESYS_LIBS += -lrtemsCom
|
||||
|
||||
#--------------------------------------------------
|
||||
# Options for building GeSys loadable objects
|
||||
|
||||
MODNAME_YES = $(PRODNAME:%$(EXE)=%$(MODEXT))
|
||||
MODNAME += $(MODNAME_$(USE_GESYS))
|
||||
PRODTARGETS += $(MODNAME)
|
||||
BIN_INSTALLS += $(MODNAME)
|
||||
|
||||
# changes to LDFLAGS in CONFIG_COMMON and LINK.cpp in CONFIG.Common.UnixCommon
|
||||
# should be reflected here with the following exceptions
|
||||
#
|
||||
# replace OP_SYS_LDFLAGS with MOD_SYS_LDFLAGS
|
||||
# replace PROD_LDLIBS with MOD_LDLIBS
|
||||
# remove STATIC_LDFLAGS
|
||||
|
||||
MOD_LDLIBS = $(filter-out $(GESYS_LIBS),$(PROD_LDLIBS))
|
||||
|
||||
MOD_LDFLAGS = $(OPT_LDFLAGS) $(TARGET_LDFLAGS) $(USR_LDFLAGS) $(POSIX_LDFLAGS) \
|
||||
$(ARCH_DEP_LDFLAGS) $(DEBUG_LDFLAGS) $(MOD_SYS_LDFLAGS) $($(BUILD_CLASS)_LDFLAGS)\
|
||||
$(RUNTIME_LDFLAGS) $(CODE_LDFLAGS)
|
||||
|
||||
LINK.mod = $(CCC) -o $@ $(PRODDIR_LDFLAGS) $(MOD_LDFLAGS)
|
||||
LINK.mod += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(MOD_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# RTEMS has neither shared libraries nor dynamic loading
|
||||
STATIC_BUILD=YES
|
||||
SHARED_LIBRARIES=NO
|
||||
CODE_CFLAGS =
|
||||
CODE_CXXFLAGS =
|
||||
|
||||
#--------------------------------------------------
|
||||
# Override the usual RTEMS verbosity from ar
|
||||
ARFLAGS = rc
|
||||
|
||||
#--------------------------------------------------
|
||||
# Command-line input support
|
||||
LDLIBS_LIBTECLA = -ltecla_r -lncurses
|
||||
LDLIBS_READLINE = -lreadline -lncurses
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).RTEMS
|
@ -1,13 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-at91rm9200ek
|
||||
# Author: Ralf Hartmann
|
||||
# BESSY
|
||||
# Ralf.Hartmann@bessy.de
|
||||
#
|
||||
# Atmel AT91RM9200-EK evaluation kit
|
||||
# using the AT91RM9200 ARM9-based 32-bit RISC microcontroller
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=arm
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,36 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-beatnik
|
||||
# Author: Dayle Kotturi <dayle@slac.stanford.edu>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
|
||||
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
|
||||
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
|
||||
|
||||
%.sym: %$(EXE)
|
||||
$(XSYMS) $^ $@
|
||||
|
||||
%.bin: %$(EXE)
|
||||
$(OBJCOPY) -Obinary $^ $@
|
||||
|
||||
#PRODTARGETS+=$(INSTALL_RTEMSSYMS) $(INSTALL_RTEMSIMGS)
|
@ -1,9 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,9 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,9 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=m68k
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,29 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-mvme2100
|
||||
# Author: W. Eric Norum <wenorum@lbl.gov>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
gzip -f9 rtems
|
||||
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@ \
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
|
||||
-Map $<.map
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,25 +0,0 @@
|
||||
#
|
||||
# Author: Matt Rippa
|
||||
#
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
ARCH_DEP_CFLAGS += -DNVRAM_INDIRECT
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
gzip -f9 rtems
|
||||
$(RTEMS_TOOLS)/bin/$(LD_FOR_TARGET) -o $@ \
|
||||
$(PROJECT_RELEASE)/lib/bootloader.o \
|
||||
--just-symbols=$< \
|
||||
-b binary rtems.gz \
|
||||
-T $(PROJECT_RELEASE)/lib/ppcboot.lds \
|
||||
-Map $<.map
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,36 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-mvme3100
|
||||
# Author: W. Eric Norum <wenorum@lbl.gov>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
RTEMSSYMS=$(PRODNAME:%$(EXE)=%.sym)
|
||||
RTEMSIMGS=$(PRODNAME:%$(EXE)=%.bin)
|
||||
INSTALL_RTEMSSYMS=$(RTEMSSYMS:%=$(INSTALL_BIN)/%)
|
||||
INSTALL_RTEMSIMGS=$(RTEMSIMGS:%=$(INSTALL_BIN)/%)
|
||||
|
||||
%.sym: %$(EXE)
|
||||
$(XSYMS) $^ $@
|
||||
|
||||
%.bin: %$(EXE)
|
||||
$(OBJCOPY) -Obinary $^ $@
|
||||
|
||||
#PRODTARGETS+=$(INSTALL_RTEMSSYMS) $(INSTALL_RTEMSIMGS)
|
@ -1,26 +0,0 @@
|
||||
#
|
||||
# CONFIG.Common.RTEMS-mvme5500
|
||||
# Author: W. Eric Norum <wenorum@lbl.gov>
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
EXE = .elf
|
||||
RTEMS_TARGET_CPU = powerpc
|
||||
GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,24 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=i386
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< temp.bin
|
||||
$(BIN2BOOT) $@ 0x00097E00 \
|
||||
$(PROJECT_RELEASE)/lib/start16.bin 0x00097C00 0 temp.bin 0x00100000 0
|
||||
rm -f temp.bin
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
||||
#
|
||||
# Put text segment where it will work with etherboot
|
||||
#
|
||||
OP_SYS_LDFLAGS += -Wl,-Ttext,0x100000
|
@ -1,9 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# University of Saskatchewan
|
||||
# eric.norum@usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU=ppc
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,17 +0,0 @@
|
||||
#
|
||||
# Author: W. Eric Norum
|
||||
# Canadian Light Source
|
||||
# eric@cls.usask.ca
|
||||
#
|
||||
# All RTEMS targets use the same Makefile fragment
|
||||
#
|
||||
RTEMS_TARGET_CPU = m68k
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< $@
|
||||
endef
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
@ -1,107 +0,0 @@
|
||||
# CONFIG.Common.UnixCommon
|
||||
#
|
||||
# Contains definitions common to all Unix target archs
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
# Sites may override definitions in CONFIG_SITE.Common.UnixCommon
|
||||
# or CONFIG_SITE.<host>.UnixCommon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Unix valid build types
|
||||
VALID_BUILDS = Host Ioc
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Unix prefix and suffix definitions
|
||||
EXE =
|
||||
OBJ = .o
|
||||
#Library prefix and suffixes
|
||||
LIB_PREFIX = lib
|
||||
LIB_SUFFIX = .a
|
||||
SHRLIB_SUFFIX_BASE = .so
|
||||
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(SHRLIB_VERSION))
|
||||
LOADABLE_SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)$(addprefix .,$(LOADABLE_SHRLIB_VERSION))
|
||||
LOADABLE_SHRLIB_PREFIX = lib
|
||||
|
||||
#-------------------------------------------------------
|
||||
# names of libraries to build
|
||||
# <lib> -> lib<lib>.a
|
||||
LIBNAME = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
TESTLIBNAME = $(TESTBUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
# <lib> -> lib<lib>.so.<version>
|
||||
SHRLIBNAME_YES = $(BUILD_LIBRARY:%=$(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX))
|
||||
TESTSHRLIBNAME_YES = $(TESTBUILD_LIBRARY:%=$(SHRLIB_PREFIX)%$(SHRLIB_SUFFIX))
|
||||
LOADABLE_SHRLIBNAME = $(LOADABLE_BUILD_LIBRARY:%=$(LOADABLE_SHRLIB_PREFIX)%$(LOADABLE_SHRLIB_SUFFIX))
|
||||
|
||||
#-------------------------------------------------------
|
||||
# shrlib: SHRLIB_DEPLIBS, SHRLIB_LDLIBS and SHRLIBDIR_LDFLAGS definitions
|
||||
|
||||
# SHRLIB_LIBS deprecated
|
||||
LIB_LIBS += $(SHRLIB_LIBS)
|
||||
|
||||
SHRLIB_DEPLIBS = $(foreach lib, $(LIB_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard \
|
||||
$(addsuffix /$(DLLSTUB_PREFIX)$(lib)$(DLLSTUB_SUFFIX), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
$(addsuffix /$(SHRLIB_PREFIX)$(lib)*$(SHRLIB_SUFFIX_BASE)*, \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
) $(addsuffix /$(BUILDLIB_PREFIX)$(lib)$(BUILDLIB_SUFFIX), \
|
||||
$(if $(filter $(lib),$(TESTLIBRARY)),.,$(INSTALL_LIB)))))
|
||||
|
||||
SHRLIB_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(LIB_LIBS) $(USR_LIBS)) \
|
||||
$(STATIC_LDLIBS) \
|
||||
$(addprefix -l, $($*_SYS_LIBS) $(LIB_SYS_LIBS) $(USR_SYS_LIBS)) \
|
||||
$(LDLIBS)
|
||||
|
||||
SHRLIB_DEPLIB_DIRS = $(foreach word, \
|
||||
$(sort $(INSTALL_LIB)/ $(dir $($*_DEPLIBS) $(SHRLIB_DEPLIBS))), \
|
||||
$(shell $(FULLPATHNAME) $(word)))
|
||||
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIB_DEPLIB_DIRS:%=-L%)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Prod: PROD_DEPLIBS, PROD_LDLIBS and PRODDIR_LDFLAGS definitions
|
||||
|
||||
PROD_DEPLIBS = $(foreach lib, $(PROD_LIBS) $(USR_LIBS), \
|
||||
$(firstword $(wildcard \
|
||||
$(addsuffix /$(DLLSTUB_PREFIX)$(lib)$(DLLSTUB_SUFFIX), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
$(addsuffix /$(SHRLIB_PREFIX)$(lib)*$(SHRLIB_SUFFIX_BASE)*, \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
$(addsuffix /$(LIB_PREFIX)$(lib)$(LIB_SUFFIX), \
|
||||
$($(lib)_DIR) $(SHRLIB_SEARCH_DIRS)) \
|
||||
) $(addsuffix /$(BUILDLIB_PREFIX)$(lib)$(BUILDLIB_SUFFIX), \
|
||||
$(if $(filter $(lib),$(TESTLIBRARY)),.,$(INSTALL_LIB)))))
|
||||
|
||||
PROD_LDLIBS = $(addprefix -l, $($*_LDLIBS) $(PROD_LIBS) $(USR_LIBS)) \
|
||||
$(STATIC_LDLIBS) \
|
||||
$(addprefix -l, $($*_SYS_LIBS) $(PROD_SYS_LIBS) $(USR_SYS_LIBS))
|
||||
|
||||
LDLIBS_STATIC_YES = LDLIBS
|
||||
LDLIBS_SHARED_NO = LDLIBS
|
||||
PROD_LDLIBS += $($(firstword $(LDLIBS_STATIC_$(STATIC_BUILD)) \
|
||||
$(LDLIBS_SHARED_$(SHARED_LIBRARIES))))
|
||||
|
||||
PROD_DEPLIB_DIRS = $(foreach word, \
|
||||
$(sort $(INSTALL_LIB)/ $(dir $($*_DEPLIBS) $(PROD_DEPLIBS))), \
|
||||
$(shell $(FULLPATHNAME) $(word)))
|
||||
|
||||
PRODDIR_LDFLAGS += $(PROD_DEPLIB_DIRS:%=-L%)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Link definitions
|
||||
LINK.cpp = $(CCC) -o $@ $(STATIC_LDFLAGS) $(PRODDIR_LDFLAGS) $(LDFLAGS)
|
||||
LINK.cpp += $(PROD_LDFLAGS) $(PROD_LD_OBJS) $(PROD_LD_RESS) $(PROD_LDLIBS)
|
||||
LINK.shrlib = $(CCC) -o $@ $(TARGET_LIB_LDFLAGS) $(SHRLIBDIR_LDFLAGS) $(LDFLAGS)
|
||||
LINK.shrlib += $(LIB_LDFLAGS) $(LIBRARY_LD_OBJS) $(LIBRARY_LD_RESS) $(SHRLIB_LDLIBS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system definitions
|
||||
OP_SYS_CPPFLAGS += -DUNIX
|
||||
OP_SYS_LDLIBS += -lm
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.UnixCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).UnixCommon
|
@ -1,94 +0,0 @@
|
||||
# CONFIG.Common.cygwin-x86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for cygwin-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.cygwin-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = cygwin32
|
||||
ARCH_CLASS = x86
|
||||
|
||||
# Link libraries controlled by COMMANDLINE_LIBRARY
|
||||
# The Cygwin version 1.7.15 needs readline and ncursesw,
|
||||
# older ones may need readline and curses.
|
||||
LDLIBS_READLINE_NCURSESW = -lreadline -lncursesw
|
||||
LDLIBS_READLINE_CURSES = -lreadline -lcurses
|
||||
LDLIBS_READLINE = -lreadline
|
||||
|
||||
POSIX_CPPFLAGS = -D_POSIX_THREADS -D_POSIX_TIMERS
|
||||
POSIX_LDLIBS += -lpthread
|
||||
|
||||
ARCH_DEP_CFLAGS += -m32
|
||||
ARCH_DEP_LDFLAGS += -m32
|
||||
|
||||
# 32-bit compiler defines _X86_ 1
|
||||
# Compiler defines __CYGWIN__ 1
|
||||
# 32-bit compiler defines __CYGWIN32__ 1
|
||||
# Compiler defines __unix__ 1
|
||||
# Compiler defines __unix 1
|
||||
# Compiler defines unix 1
|
||||
|
||||
# This macro now deprecated, use __CYGWIN__ in the future
|
||||
OP_SYS_CPPFLAGS += -DCYGWIN32
|
||||
|
||||
EXE = .exe
|
||||
|
||||
# Use .o for static object files, .obj for shared library object files
|
||||
OBJ_NO = .o
|
||||
OBJ_YES = .obj
|
||||
OBJ = $(OBJ_$(SHARED_LIBRARIES))
|
||||
|
||||
COMPILE.c += $(if $(filter %$(OBJ),$@),-o $@)
|
||||
COMPILE.cpp += $(if $(filter %$(OBJ),$@),-o $@)
|
||||
HDEPENDS_ARCHFLAGS = -MT $*$(OBJ)
|
||||
|
||||
BUILD_DLL_CFLAGS_YES = -DEPICS_BUILD_DLL
|
||||
BUILD_DLL_CFLAGS_NO =
|
||||
BUILD_DLL_CFLAGS = $(BUILD_DLL_CFLAGS_$(SHARED_LIBRARIES))
|
||||
STATIC_CFLAGS_YES = $(BUILD_DLL_CFLAGS)
|
||||
STATIC_CFLAGS_NO = $(BUILD_DLL_CFLAGS) -DEPICS_CALL_DLL
|
||||
STATIC_CXXFLAGS_YES = $(BUILD_DLL_CFLAGS)
|
||||
STATIC_CXXFLAGS_NO = $(BUILD_DLL_CFLAGS) -DEPICS_CALL_DLL
|
||||
|
||||
# Adjust names of libraries to build
|
||||
#
|
||||
SHRLIB_PREFIX =
|
||||
SHRLIB_SUFFIX_BASE = .dll
|
||||
SHRLIB_SUFFIX = $(SHRLIB_SUFFIX_BASE)
|
||||
SHRLIBNAME_YES = $(BUILD_LIBRARY:%=%$(SHRLIB_SUFFIX))
|
||||
TESTSHRLIBNAME_YES = $(TESTBUILD_LIBRARY:%=%$(SHRLIB_SUFFIX_BASE))
|
||||
LOADABLE_SHRLIBNAME = $(LOADABLE_BUILD_LIBRARY:%=%$(LOADABLE_SHRLIB_SUFFIX))
|
||||
|
||||
#
|
||||
# When SHARED_LIBRARIES is YES we are building a DLL link library
|
||||
# When SHARED_LIBRARIES is NO we are building an object library
|
||||
#
|
||||
LIB_PREFIX_NO =
|
||||
LIB_SUFFIX_NO = .lib
|
||||
LIB_PREFIX_YES = lib
|
||||
LIB_SUFFIX_YES = .dll.a
|
||||
LIB_PREFIX = $(LIB_PREFIX_$(SHARED_LIBRARIES))
|
||||
LIB_SUFFIX = $(LIB_SUFFIX_$(SHARED_LIBRARIES))
|
||||
DLLSTUB_PREFIX = lib
|
||||
DLLSTUB_SUFFIX = .dll.a
|
||||
|
||||
DLLSTUB_LIBNAME_YES = $(BUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
DLLSTUB_LIBNAME = $(DLLSTUB_LIBNAME_$(SHARED_LIBRARIES))
|
||||
TESTDLLSTUB_LIBNAME_YES = $(TESTBUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
TESTDLLSTUB_LIBNAME = $(TESTDLLSTUB_LIBNAME_$(SHARED_LIBRARIES))
|
||||
TESTLIBNAME_NO = $(TESTBUILD_LIBRARY:%=$(LIB_PREFIX)%$(LIB_SUFFIX))
|
||||
TESTLIBNAME = $(TESTLIBNAME_$(SHARED_LIBRARIES))
|
||||
|
||||
# dll install location
|
||||
INSTALL_SHRLIB = $(INSTALL_BIN)
|
||||
|
||||
|
||||
# Cygwin supports the sunrpc package in versions before 1.7.
|
||||
# Cygwin supports the tirpc (Transport Independent RPC) package in versions 1.7 and later.
|
||||
# uname -r return a string like "1.76(0230/5/3)"
|
||||
CYGWIN_RPC_LIB= $(if $(findstring 1.5,$(shell uname -r)),rpc,tirpc)
|
||||
|
@ -1,13 +0,0 @@
|
||||
# CONFIG.Common.cygwin-x86_64
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for cygwin-x86_64 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.cygwin-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.cygwin-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -m64
|
||||
ARCH_DEP_LDFLAGS = -m64
|
||||
|
@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppc
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for darwin-ppc target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppc
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppc
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-ppcx86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Darwin universal PowerPC + x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-ppcx86
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-ppcx86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
@ -1,14 +0,0 @@
|
||||
# CONFIG.Common.darwin-x86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for darwin-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.darwin-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
#
|
||||
# To build universal binaries, configure ARCH_CLASS
|
||||
# in the file CONFIG_SITE.Common.darwin-x86
|
||||
|
||||
# Include definitions common to all Darwin targets
|
||||
include $(CONFIG)/os/CONFIG.darwinCommon.darwinCommon
|
@ -1,33 +0,0 @@
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.freebsd-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all freebsd targets
|
||||
include $(CONFIG)/os/CONFIG.Common.freebsdCommon
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
ifeq ($(EPICS_HOST_ARCH),freebsd-x86)
|
||||
# Added for 386,486,... cross builds
|
||||
CMPLR_PREFIX=
|
||||
CROSS_INCLUDES=
|
||||
CROSS_LDFLAGS=
|
||||
# Use -w not -Wall
|
||||
#WARN_CFLAGS_YES = -w
|
||||
#WARN_CXXFLAGS_YES = -w
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsd-x86
|
||||
-include $(CONFIG)/os/CONFIG.freebsd-x86.freebsd-x86
|
||||
-include $(CONFIG)/os/CONFIG_SITE.freebsd-x86.freebsd-x86
|
||||
else
|
||||
GNU_TARGET=i586-pc-freebsd-gnu
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
endif
|
||||
|
@ -1,33 +0,0 @@
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd-x86_64 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.freebsd-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all freebsd targets
|
||||
include $(CONFIG)/os/CONFIG.Common.freebsdCommon
|
||||
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_64_
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
ifeq ($(EPICS_HOST_ARCH),freebsd-x86_64)
|
||||
# Added for 386,486,... cross builds
|
||||
CMPLR_PREFIX=
|
||||
CROSS_INCLUDES=
|
||||
CROSS_LDFLAGS=
|
||||
# Use -w not -Wall
|
||||
#WARN_CFLAGS_YES = -w
|
||||
#WARN_CXXFLAGS_YES = -w
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsd-x86_64
|
||||
-include $(CONFIG)/os/CONFIG.freebsd-x86_64.freebsd-x86_64
|
||||
-include $(CONFIG)/os/CONFIG_SITE.freebsd-x86_64.freebsd-x86_64
|
||||
else
|
||||
GNU_TARGET=i586-pc-freebsd-gnu
|
||||
CMPLR_SUFFIX=
|
||||
CMPLR_PREFIX=$(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
||||
endif
|
||||
|
@ -1,38 +0,0 @@
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for freebsd target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.freebsdCommon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = freebsd
|
||||
|
||||
CODE_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
POSIX_CPPFLAGS = -D_POSIX_THREADS
|
||||
POSIX_LDLIBS = -lpthread
|
||||
|
||||
# -D_BSD_SOURCE for gethostname() in unistd.h as needed by cacChannelIO.cpp.
|
||||
OP_SYS_CPPFLAGS += -D_BSD_SOURCE
|
||||
OP_SYS_CPPFLAGS += -Dfreebsd
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
|
||||
GNU_LDLIBS_YES = -lgcc_pic
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.freebsdCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).freebsdCommon
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.ios-arm
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for ios-arm target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.ios-arm
|
||||
# or CONFIG_SITE.<host>.ios-arm
|
||||
#-------------------------------------------------------
|
||||
|
||||
IOS_PLATFORM = iPhoneOS
|
||||
|
||||
OP_SYS_CFLAGS += -fno-inline-functions
|
||||
OP_SYS_CFLAGS += -miphoneos-version-min=$(IOS_DEPLOYMENT_TARGET)
|
||||
OP_SYS_LDFLAGS += -miphoneos-version-min=$(IOS_DEPLOYMENT_TARGET)
|
||||
|
||||
# iOS optimization flags for arm architecture
|
||||
OPT_CFLAGS_YES = -O2
|
||||
OPT_CXXFLAGS_YES = -O2
|
||||
|
||||
# Include definitions common to all iphone targets
|
||||
include $(CONFIG)/os/CONFIG.Common.iosCommon
|
@ -1,16 +0,0 @@
|
||||
# CONFIG.Common.ios-x86
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for ios-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.ios-x86
|
||||
# or CONFIG_SITE.<host>.ios-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
IOS_PLATFORM = iPhoneSimulator
|
||||
|
||||
OP_SYS_CFLAGS += -mios-simulator-version-min=$(IOS_DEPLOYMENT_TARGET)
|
||||
OP_SYS_LDFLAGS += -mios-simulator-version-min=$(IOS_DEPLOYMENT_TARGET)
|
||||
|
||||
# Include definitions common to all iOS targets
|
||||
include $(CONFIG)/os/CONFIG.Common.iosCommon
|
@ -1,116 +0,0 @@
|
||||
# CONFIG.Common.iosCommon
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for all Apple iOS builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.iosCommon
|
||||
# or CONFIG_SITE.<host>.iosCommon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
# Include common gnu compiler definitions
|
||||
include $(CONFIG)/CONFIG.gnuCommon
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Valid build types
|
||||
VALID_BUILDS = Ioc
|
||||
|
||||
#-------------------------------------------------------
|
||||
# operating system class (include/os/<os_class>)
|
||||
OS_CLASS = iOS
|
||||
|
||||
#--------------------------------------------------
|
||||
# GNU and SDK directories
|
||||
GNU_DIR = $(PLATFORM_DIR)/Developer/usr
|
||||
SDK_DIR = $(PLATFORM_DIR)/Developer/SDKs/$(IOS_PLATFORM).sdk
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Build architecture flags
|
||||
# ARCH_CLASS must contain a list of CPU architectures which must be
|
||||
# valid arguments to the -arch options for the cc and ld commands.
|
||||
# ARCH_CLASS is defined in a CONFIG_SITE file which is not loaded
|
||||
# until after this file.
|
||||
#
|
||||
ARCH_DEP_FLAGS = $(addprefix -arch ,$(ARCH_CLASS))
|
||||
ARCH_DEP_CFLAGS += $(ARCH_DEP_FLAGS)
|
||||
ARCH_DEP_LDFLAGS += $(ARCH_DEP_FLAGS)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Operating system flags
|
||||
OP_SYS_CFLAGS += -isysroot $(SDK_DIR)
|
||||
OP_SYS_LDFLAGS += -isysroot $(SDK_DIR)
|
||||
|
||||
#--------------------------------------------------
|
||||
# Always compile in debugging symbol table information
|
||||
#
|
||||
OPT_CFLAGS_YES += -g
|
||||
OPT_CXXFLAGS_YES += -g
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Compiler definitions:
|
||||
|
||||
CC_GNU = gcc
|
||||
CCC_GNU = g++
|
||||
CMPLR_CLASS_GNU = gcc
|
||||
|
||||
CC_LLVM_GNU = llvm-gcc
|
||||
CCC_LLVM_GNU = llvm-g++
|
||||
CMPLR_CLASS_LLVM_GNU = gcc
|
||||
|
||||
CC_CLANG = clang
|
||||
CCC_CLANG = clang++
|
||||
CMPLR_CLASS_CLANG = clang
|
||||
|
||||
CMPLR_CLASS = $(CMPLR_CLASS_$(COMPILER))
|
||||
|
||||
# Convert the iOS platform to lowercase for passing to xcrun's sdk parameter
|
||||
XCRUN_SDK_BASE = $(shell echo $(IOS_PLATFORM) | tr A-Z a-z)
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Linker flags
|
||||
GNU_LDLIBS_YES =
|
||||
OP_SYS_LDFLAGS += -dynamic -Z -L$(SDK_DIR)/usr/lib -L$(SDK_DIR)/usr/lib/system
|
||||
|
||||
#-------------------------------------------------------
|
||||
# Shared libraries
|
||||
SHRLIB_VERSION = $(EPICS_VERSION).$(EPICS_REVISION).$(EPICS_MODIFICATION)
|
||||
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
|
||||
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
|
||||
-compatibility_version $(EPICS_VERSION).$(EPICS_REVISION) \
|
||||
-current_version $(SHRLIB_VERSION)
|
||||
SHRLIB_SUFFIX_BASE = .dylib
|
||||
SHRLIB_SUFFIX = .$(SHRLIB_VERSION)$(SHRLIB_SUFFIX_BASE)
|
||||
|
||||
LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress
|
||||
|
||||
#--------------------------------------------------
|
||||
# code flags
|
||||
CODE_CFLAGS = -fno-common -Wno-unused-value
|
||||
CODE_CXXFLAGS = -fno-common
|
||||
|
||||
#
|
||||
# Add support for Objective-C source
|
||||
#
|
||||
vpath %.m $(USR_VPATH) $(ALL_SRC_DIRS)
|
||||
%.o: %.m
|
||||
$(COMPILE.c) -c $<
|
||||
|
||||
#--------------------------------------------------
|
||||
# Header dependency file generation
|
||||
#
|
||||
HDEPENDS_METHOD = MKMF
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.iosCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).iosCommon
|
||||
|
||||
#--------------------------------------------------
|
||||
# Find the Xcode programs for the selected SDK
|
||||
CC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CC_$(COMPILER)))
|
||||
CCC := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find $(CCC_$(COMPILER)))
|
||||
AR := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ar) -rc
|
||||
LD := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ld) -r
|
||||
RANLIB := $(shell xcrun -sdk $(XCRUN_SDK_BASE) -find ranlib)
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-386
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for linux-386 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-386
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i386
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i386-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-386 file, e.g. GNU_TARGET=i386-pc-linux-gnu
|
||||
|
@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-486
|
||||
#
|
||||
# Definitions for linux-486 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS = -march=i486
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i486-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-486 file, e.g. GNU_TARGET=i486-pc-linux-gnu
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-586
|
||||
#
|
||||
# Definitions for linux-586 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-586
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i586 is equivalent to pentium
|
||||
ARCH_DEP_CFLAGS = -march=i586
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i586-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-586 file, e.g. GNU_TARGET=i586-pc-linux-gnu
|
||||
|
||||
|
@ -1,20 +0,0 @@
|
||||
# CONFIG.Common.linux-686
|
||||
#
|
||||
# Definitions for linux-686 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-686
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
# i686 is euivalent to pentiumpro
|
||||
ARCH_DEP_CFLAGS = -march=i686
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. i686-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-686 file, e.g. GNU_TARGET=i686-pc-linux-gnu
|
||||
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.linux-arm
|
||||
#
|
||||
# Definitions for linux-arm target builds
|
||||
# Override these settings in CONFIG_SITE.Common.linux-arm
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = arm
|
||||
|
@ -1,10 +0,0 @@
|
||||
# CONFIG.Common.linux-arm-debug
|
||||
#
|
||||
# Definitions for linux-arm with debug compiler flags
|
||||
# Override these settings in CONFIG_SITE.Common.linux-arm-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-arm target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-arm
|
||||
|
||||
HOST_OPT=NO
|
@ -1,9 +0,0 @@
|
||||
# CONFIG.Common.linux-arm_eb
|
||||
#
|
||||
# Definitions for linux-arm_eb (big endian) target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_eb
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Linux-arm targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-arm
|
||||
|
@ -1,9 +0,0 @@
|
||||
# CONFIG.Common.linux-arm_el
|
||||
#
|
||||
# Definitions for linux-arm_el (little endian) target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-arm_el
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-arm targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-arm
|
||||
|
@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-athlon
|
||||
#
|
||||
# Definitions for linux-athlon target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-athlon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux x86 targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
ARCH_DEP_CFLAGS += -march=athlon-mp -mfpmath=sse
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
endif
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. athlon-pc-linux-gnu-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-athlon file, e.g. GNU_TARGET=athlon-pc-linux-gnu
|
||||
|
@ -1,58 +0,0 @@
|
||||
# CONFIG.Common.linux-cris
|
||||
#
|
||||
# Author: Peter Zumbruch
|
||||
# GSI
|
||||
# P.Zumbruch@gsi.de
|
||||
#
|
||||
# Definitions for linux-cris target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-cris
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = cris
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
GNU_TARGET = cris-axis-linux-gnu
|
||||
|
||||
# prefix of compiler tools
|
||||
CMPLR_SUFFIX =
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
|
||||
# CROSS_TOP_DIR
|
||||
# usually AXIS_TOP_DIR is defined via
|
||||
# the init_env script of the SDK provided by Axis
|
||||
#
|
||||
## AXIS_TOP_DIR defined? Make missing mandatory variable visible
|
||||
AXIS_TOP_DIR?=UNDEFINED_ENV__AXIS_TOP_DIR
|
||||
AXIS_SDK_DIR?=$(AXIS_TOP_DIR)
|
||||
|
||||
# CROSS_INCLUDES
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/include
|
||||
AXIS_SDK_TARGET_INCLUDE_DIR +=$(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/include
|
||||
|
||||
CROSS_INCLUDES = $(addprefix -isystem ,$(AXIS_SDK_TARGET_INCLUDE_DIR))
|
||||
|
||||
# CROSS_LDFLAGS
|
||||
AXIS_SDK_TARGET_LIB_DIR = $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/lib
|
||||
AXIS_SDK_TARGET_LIB_DIR += $(AXIS_SDK_DIR)/target/$(GNU_TARGET)/usr/lib
|
||||
|
||||
CROSS_LDFLAGS = $(addprefix -L,$(AXIS_SDK_TARGET_LIB_DIR))
|
||||
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.linux-cris
|
||||
ifeq ($(EPICS_HOST_ARCH), linux-x86)
|
||||
-include $(CONFIG)/os/CONFIG.linux-x86.linux-cris
|
||||
-include $(CONFIG)/os/CONFIG_SITE.linux-x86.linux-cris
|
||||
endif
|
||||
endif
|
||||
|
||||
SHARED_LIBRARIES=NO
|
||||
STATIC_BUILD=YES
|
||||
|
||||
ARCH_DEP_CFLAGS += -mno-mul-bug-workaround
|
||||
OP_SYS_CFLAGS += -mlinux
|
||||
ARCH_DEP_CPPFLAGS += -D_cris_ -mlinux
|
||||
|
||||
#uncomment CRIS_COMPILER_DEBUG for debugging cris-compiled code
|
||||
#CRIS_COMPILER_DEBUG
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-microblaze
|
||||
#
|
||||
# This file is maintained by the build community.
|
||||
#
|
||||
# Definitions for Xilinx MicroBlaze FPGA Soft Core Processor target builds.
|
||||
# This target has been tested with the Xilinx Spartan 6 MicroBlaze.
|
||||
|
||||
# Site-specific overrides of these definitions should be made in the file
|
||||
# CONFIG_SITE.Common.linux-microblaze
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = microblaze
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
GNU_TARGET = microblazeel-unknown-linux-gnu
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
@ -1,13 +0,0 @@
|
||||
# CONFIG.Common.linux-ppc
|
||||
#
|
||||
# Definitions for linux-ppc target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-ppc
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_ppc_
|
||||
|
@ -1,15 +0,0 @@
|
||||
# CONFIG.Common.linux-ppc64
|
||||
#
|
||||
# Definitions for linux-ppc64 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-ppc64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = ppc64
|
||||
|
||||
ARCH_DEP_CPPFLAGS += -D_ppc_64_
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-x86
|
||||
#
|
||||
# Definitions for linux-x86 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
ARCH_DEP_CFLAGS = $(GNU_TUNE_CFLAGS)
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_
|
||||
|
||||
OP_SYS_CFLAGS += -m32
|
||||
OP_SYS_LDFLAGS += -m32
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. x86-redhat-linux-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-x86 file, e.g. GNU_TARGET=x86-redhat-linux
|
||||
|
@ -1,10 +0,0 @@
|
||||
# CONFIG.Common.linux-x86-debug
|
||||
#
|
||||
# Definitions for linux-x86 with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-x86-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-x86 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86
|
||||
|
||||
HOST_OPT=NO
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.linux-x86_64
|
||||
#
|
||||
# Definitions for linux-x86_64 target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = x86_64
|
||||
|
||||
ARCH_DEP_CFLAGS = $(GNU_TUNE_CFLAGS)
|
||||
ARCH_DEP_CPPFLAGS += -D_X86_64_
|
||||
|
||||
OP_SYS_CFLAGS += -m64
|
||||
OP_SYS_LDFLAGS += -m64
|
||||
|
||||
# If your crosscompiler name has a GNU target prefix like <gnutarget>-gcc,
|
||||
# e.g. x86_64-redhat-linux-gcc, put a GNU_TARGET definition in
|
||||
# CONFIG_SITE.<host>.linux-x86_64 file, e.g. GNU_TARGET=x86_64-redhat-linux
|
||||
|
@ -1,10 +0,0 @@
|
||||
# CONFIG.Common.linux-x86_64-debug
|
||||
#
|
||||
# Definitions for linux-x86_64 with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linux-x86_64-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all linux-x86_64 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.linux-x86_64
|
||||
|
||||
HOST_OPT=NO
|
@ -1,19 +0,0 @@
|
||||
# CONFIG.Common.linux-xscale_be
|
||||
#
|
||||
# Definitions for linux-xscale_be (big-endian) target builds.
|
||||
# This target has been tested with the MOXA UC-7408-LX Plus.
|
||||
|
||||
# Site-specific overrides of these definitions should be made in the file
|
||||
# CONFIG_SITE.Common.linux-xscale_be
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Linux targets
|
||||
include $(CONFIG)/os/CONFIG.Common.linuxCommon
|
||||
|
||||
ARCH_CLASS = xscale
|
||||
|
||||
ifeq ($(BUILD_CLASS),CROSS)
|
||||
VALID_BUILDS = Ioc
|
||||
GNU_TARGET = xscale_be
|
||||
CMPLR_PREFIX = $(addsuffix -,$(GNU_TARGET))
|
||||
endif
|
@ -1,44 +0,0 @@
|
||||
# CONFIG.Common.linuxCommon
|
||||
#
|
||||
# Definitions for linux target builds
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.linuxCommon
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix targets
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = Linux
|
||||
|
||||
# Define _GNU_SOURCE and _DEFAULT_SOURCE for maximum portability
|
||||
POSIX_CPPFLAGS = -D_GNU_SOURCE -D_DEFAULT_SOURCE
|
||||
POSIX_LDLIBS = -lpthread
|
||||
|
||||
OP_SYS_CPPFLAGS += -Dlinux
|
||||
OP_SYS_LDLIBS += -lrt -ldl
|
||||
# Use -rdynamic to maximize symbols available for stacktrace
|
||||
OP_SYS_LDFLAGS += -rdynamic
|
||||
|
||||
# Linker flags for static & shared-library builds
|
||||
STATIC_LDFLAGS_YES= -Wl,-Bstatic
|
||||
STATIC_LDFLAGS_NO=
|
||||
STATIC_LDLIBS_YES= -Wl,-Bdynamic
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-Wl,-rpath,%)
|
||||
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Link libraries controlled by COMMANDLINE_LIBRARY
|
||||
# The newest Linux versions only need readline, older ones need both
|
||||
# readline and ncurses, and the oldest need readline and curses
|
||||
LDLIBS_READLINE = -lreadline
|
||||
LDLIBS_READLINE_NCURSES = -lreadline -lncurses
|
||||
LDLIBS_READLINE_CURSES = -lreadline -lcurses
|
||||
|
||||
#--------------------------------------------------
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.linuxCommon
|
||||
-include $(CONFIG)/os/CONFIG_SITE.$(EPICS_HOST_ARCH).linuxCommon
|
@ -1,63 +0,0 @@
|
||||
# CONFIG.Common.solaris-sparc
|
||||
#
|
||||
# Definitions for solaris-sparc target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = solaris
|
||||
ARCH_CLASS = sparc
|
||||
|
||||
CODE_CPPFLAGS = -D__EXTENSIONS__
|
||||
|
||||
COMPILER_CPPFLAGS += -mt
|
||||
COMPILER_LDFLAGS += -mt
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
|
||||
POSIX_CFLAGS = -xc99 -D_POSIX_C_SOURCE=200112L
|
||||
POSIX_LDLIBS += -lposix4 -lpthread
|
||||
|
||||
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS)
|
||||
OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS)
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-R%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
|
||||
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
GNU_TARGET=sparc-sun-solaris2
|
||||
|
||||
STLPORT_CFLAGS_YES= -library=stlport4
|
||||
STLPORT_CFLAGS_NO=
|
||||
STLPORT_LDLIBS_YES =
|
||||
STLPORT_LDLIBS_NO = -lCstd
|
||||
|
||||
# can be overridden in CONFIG_SITE.Common.solaris-sparc
|
||||
USE_STLPORT=NO
|
||||
|
||||
OP_SYS_CFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
OP_SYS_LDFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
|
||||
|
||||
# OS libraries used when generating shared libraries or static binaries
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
OP_SYS_LDLIBS_8 += -ldl -lCrun -lc
|
||||
OP_SYS_LDLIBS_9 += -ldl -lumem -lCrun -lc
|
||||
OP_SYS_LDLIBS_10 += -lumem -lCrun -lc
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
READLINE_DIR = $(GNU_DIR)
|
||||
INCLUDES_READLINE = -I$(READLINE_DIR)/include
|
||||
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
|
||||
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
|
||||
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
# Use archive if there is a problem with the readline shared library
|
||||
#LDLIBS_READLINE = -Bstatic -lreadline -Bdynamic -lcurses
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.solaris-sparc-debug
|
||||
#
|
||||
# Definitions for solaris-sparc with debug compiler flags
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
# Removes -O optimization and adds -g compile option
|
||||
HOST_OPT=NO
|
@ -1,20 +0,0 @@
|
||||
# CONFIG.Common.solaris-sparc-gnu
|
||||
#
|
||||
# Definitions for solaris-sparc gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
COMPILER_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
POSIX_CFLAGS = -std=gnu99 -D_POSIX_C_SOURCE=200112L
|
||||
|
||||
STLPORT_LDLIBS_NO =
|
||||
|
||||
OP_SYS_LDLIBS_8 = -ldl
|
||||
OP_SYS_LDLIBS_9 = -ldl
|
||||
OP_SYS_LDLIBS_10 =
|
||||
OP_SYS_LDLIBS_11 = -lc
|
||||
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.solaris-sparc64
|
||||
#
|
||||
# Definitions for solaris-sparc64 compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-sparc target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc
|
||||
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
@ -1,12 +0,0 @@
|
||||
# CONFIG.Common.solaris-sparc64-gnu
|
||||
#
|
||||
# Definitions for solaris-sparc64 gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-sparc64-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-sparc-gnu target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-sparc-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -mcpu=v9 -m64
|
||||
ARCH_DEP_LDFLAGS += -mcpu=v9 -m64
|
||||
ARCH_DEP_LDFLAGS += -L$(GNU_LIB)/sparcv9 -R$(GNU_LIB)/sparcv9
|
@ -1,65 +0,0 @@
|
||||
# CONFIG.Common.solaris-x86
|
||||
#
|
||||
# Definitions for solaris-x86 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-x86
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all Unix target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.UnixCommon
|
||||
|
||||
OS_CLASS = solaris
|
||||
ARCH_CLASS = x86
|
||||
|
||||
CODE_CPPFLAGS = -D__EXTENSIONS__
|
||||
|
||||
COMPILER_CPPFLAGS += -mt
|
||||
COMPILER_LDFLAGS += -mt
|
||||
|
||||
SOLARIS_VERSION = $(subst 5.,,$(shell uname -r))
|
||||
|
||||
POSIX_CFLAGS = -xc99 -D_POSIX_C_SOURCE=200112L
|
||||
POSIX_LDLIBS += -lposix4 -lpthread
|
||||
|
||||
OP_SYS_CPPFLAGS += -DSOLARIS=$(SOLARIS_VERSION) $(COMPILER_CPPFLAGS)
|
||||
OP_SYS_LDFLAGS += $(COMPILER_LDFLAGS)
|
||||
ARCH_DEP_CPPFLAGS = -D_X86_
|
||||
|
||||
# Set runtime path for shared libraries
|
||||
SHRLIBDIR_RPATH_LDFLAGS_YES += $(SHRLIB_DEPLIB_DIRS:%=-R%)
|
||||
SHRLIBDIR_LDFLAGS += $(SHRLIBDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
# Set runtime path for products
|
||||
PRODDIR_RPATH_LDFLAGS_YES += $(PROD_DEPLIB_DIRS:%=-R%)
|
||||
PRODDIR_LDFLAGS += $(PRODDIR_RPATH_LDFLAGS_$(LINKER_USE_RPATH))
|
||||
|
||||
GNU_TARGET=x86-sun-solaris2
|
||||
|
||||
STLPORT_CFLAGS_YES= -library=stlport4
|
||||
STLPORT_CFLAGS_NO=
|
||||
STLPORT_LDLIBS_YES =
|
||||
STLPORT_LDLIBS_NO = -lCstd
|
||||
|
||||
# can be overridden from ...SITE
|
||||
USE_STLPORT=NO
|
||||
|
||||
OP_SYS_CFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
OP_SYS_LDFLAGS+=$(STLPORT_CFLAGS_$(USE_STLPORT))
|
||||
|
||||
OP_SYS_LDLIBS += -lsocket -lnsl
|
||||
OP_SYS_LDLIBS_8 += -ldl -lCrun -lc
|
||||
OP_SYS_LDLIBS_9 += -ldl -lCrun -lc
|
||||
OP_SYS_LDLIBS_10 += -lCrun -lc
|
||||
OP_SYS_LDLIBS_11 += -lCrun -lc
|
||||
OP_SYS_LDLIBS += $(OP_SYS_LDLIBS_$(SOLARIS_VERSION))
|
||||
OP_SYS_LDLIBS += $(STLPORT_LDLIBS_$(USE_STLPORT))
|
||||
|
||||
# Definitions used when COMMANDLINE_LIBRARY is READLINE
|
||||
READLINE_DIR = $(GNU_DIR)
|
||||
INCLUDES_READLINE = -I$(READLINE_DIR)/include
|
||||
RUNTIME_LDFLAGS_READLINE_YES += -R$(READLINE_DIR)/lib
|
||||
RUNTIME_LDFLAGS_READLINE += $(RUNTIME_LDFLAGS_READLINE_$(LINKER_USE_RPATH))
|
||||
LDFLAGS_READLINE += -L$(READLINE_DIR)/lib
|
||||
LDLIBS_READLINE = -lreadline -lcurses
|
||||
# Use archive if there is a problem with the readline shared library
|
||||
#LDLIBS_READLINE = -Bstatic -lreadline -Bdynamic -lcurses
|
||||
|
@ -1,20 +0,0 @@
|
||||
# CONFIG.Common.solaris-x86-gnu
|
||||
#
|
||||
# Definitions for solaris-x86 gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-x86-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-x86 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86
|
||||
|
||||
COMPILER_CPPFLAGS = -D_REENTRANT
|
||||
|
||||
POSIX_CFLAGS = -std=gnu99 -D_POSIX_C_SOURCE=200112L
|
||||
|
||||
STLPORT_LDLIBS_NO =
|
||||
|
||||
OP_SYS_LDLIBS_8 = -ldl -lc
|
||||
OP_SYS_LDLIBS_9 = -ldl -lc
|
||||
OP_SYS_LDLIBS_10 = -lc
|
||||
OP_SYS_LDLIBS_11 = -lc
|
||||
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.solaris-x86_64
|
||||
#
|
||||
# Definitions for solaris-x86_64 compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-x86_64
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-x86 target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86
|
||||
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
@ -1,12 +0,0 @@
|
||||
# CONFIG.Common.solaris-x86_64-gnu
|
||||
#
|
||||
# Definitions for solaris-x86_64 gnu compiler target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.solaris-x86_64-gnu
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all solaris-x86-gnu target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.solaris-x86-gnu
|
||||
|
||||
ARCH_DEP_CFLAGS += -m64
|
||||
ARCH_DEP_LDFLAGS += -m64
|
||||
#ARCH_DEP_LDFLAGS += -L$(GNU_LIB)/amd64 -R$(GNU_LIB)/amd64
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-486
|
||||
#
|
||||
# Definitions for vxWorks-486 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-486
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = pentium
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=I80486 -D_X86_
|
||||
ARCH_DEP_CFLAGS = -mtune=i486 -march=i486
|
||||
ARCH_DEP_CFLAGS += -fno-zero-initialized-in-bss -fno-defer-pop
|
||||
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-486
|
||||
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-486-debug
|
||||
#
|
||||
# Definitions for vxWorks-486-debug target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-486-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-486
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68040
|
||||
#
|
||||
# Definitions for vxWorks-68040 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68040
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68040
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
OPT_CFLAGS_YES = -O0
|
||||
|
||||
GNU_TARGET = m68k-wrs-vxworks
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68040-debug
|
||||
#
|
||||
# Definitions for vxWorks-68040-debug target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68040-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-68040
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68040lc
|
||||
#
|
||||
# Definitions for vxWorks-68040lc target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68040lc
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68LC040
|
||||
ARCH_DEP_CFLAGS = -m68040 -msoft-float
|
||||
|
||||
OPT_CFLAGS_YES = -O0
|
||||
|
||||
GNU_TARGET = m68k-wrs-vxworks
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68040lc-debug
|
||||
#
|
||||
# Definitions for vxWorks-68040lc-debug target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68040lc-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-68040lc
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68060
|
||||
#
|
||||
# Definitions for vxWorks-68060 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68060
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = 68k
|
||||
|
||||
ARCH_CLASS = 68k
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=MC68060
|
||||
ARCH_DEP_CFLAGS = -m68040
|
||||
|
||||
OPT_CFLAGS_YES = -O0
|
||||
|
||||
GNU_TARGET = m68k-wrs-vxworks
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-68060-debug
|
||||
#
|
||||
# Definitions for vxWorks-68060-debug target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-68060-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-68060
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,22 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-mpc8540
|
||||
#
|
||||
# Definitions for vxWorks-mpc8540 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8540
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
GNU_DIR_5 = $(WIND_BASE)/gnu/3.3/$(WIND_HOST_TYPE)
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC85XX
|
||||
ARCH_DEP_CFLAGS = -mcpu=8540 -msoft-float -mspe=no -mabi=no-spe
|
||||
ARCH_DEP_CFLAGS += -mstrict-align -mlongcall
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-mpc8540-debug
|
||||
#
|
||||
# Definitions for vxWorks-mpc8540-debug target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8540-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-mpc8540
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,23 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-mpc8548
|
||||
#
|
||||
# Definitions for vxWorks-mpc8548 target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8548
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = ppc
|
||||
|
||||
ARCH_CLASS = ppc
|
||||
|
||||
# Architecture specific build flags
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PPC32
|
||||
ARCH_DEP_CFLAGS = -DCPU_VARIANT=_ppc85XX_e500v2
|
||||
ARCH_DEP_CFLAGS += -mlongcall
|
||||
|
||||
# This flag isn't present in early vxWorks 6.x versions
|
||||
#ARCH_DEP_CFLAGS += -te500v2
|
||||
|
||||
GNU_TARGET = powerpc-wrs-vxworks
|
@ -1,11 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-mpc8548-debug
|
||||
#
|
||||
# Definitions for vxWorks-mpc8548-debug targets.
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-mpc8548-debug
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorks-mpc8548
|
||||
|
||||
CROSS_OPT = NO
|
||||
|
@ -1,21 +0,0 @@
|
||||
# CONFIG.Common.vxWorks-pentium
|
||||
#
|
||||
# Definitions for vxWorks-pentium target archs
|
||||
# Sites may override these definitions in CONFIG_SITE.Common.vxWorks-pentium
|
||||
#-------------------------------------------------------
|
||||
|
||||
# Include definitions common to all vxWorks target archs
|
||||
include $(CONFIG)/os/CONFIG.Common.vxWorksCommon
|
||||
|
||||
# Vx GNU cross compiler suffix
|
||||
CMPLR_SUFFIX = pentium
|
||||
|
||||
ARCH_CLASS = x86
|
||||
|
||||
ARCH_DEP_CPPFLAGS = -DCPU=PENTIUM -D_X86_
|
||||
ARCH_DEP_CFLAGS = -mtune=pentium -march=pentium
|
||||
ARCH_DEP_CFLAGS += -fno-zero-initialized-in-bss -fno-defer-pop
|
||||
|
||||
# Allow site overrides
|
||||
-include $(CONFIG)/os/CONFIG_SITE.Common.vxWorks-pentium
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user