#*************************************************************************
# 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  - Global site configuration file
#

#  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-aarch64         (M1 based Apple using CLANG compiler)
#	darwin-x86             (Intel based Apple using CLANG compiler)
#	freebsd-x86            (GNU compiler used for host builds)
#	freebsd-x86_64         (GNU compiler used for host builds)
#	linux-aarch64          (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)

#  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)


#  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.

#  The cross-compiler architectures to build EPICS for
#
#  Currently Supporting:

#       ios-arm                 (darwin-x86 host)
#       ios-386                 (darwin-x86 host)
#       linux-arm               (linux-x86 or -x86_64 host)
#       linux-aarch64           (linux-x86_64 host)
#       linux-microblaze
#       linux-xscale_be
#       vxWorks-486
#       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-beagleboneblack
#       RTEMS-beatnik
#       RTEMS-mvme2100
#       RTEMS-mvme2700
#       RTEMS-mvme3100
#       RTEMS-mvme5500
#       RTEMS-pc386             (RTEMS 4)
#       RTEMS-pc386-qemu        (RTEMS 4)
#       RTEMS-pc686             (RTEMS 5)
#       RTEMS-pc686-qemu        (RTEMS 5)
#       RTEMS-qoriq_e500
#       RTEMS-uC5282
#       RTEMS-xilinx-zynq-a9_qemu
#       RTEMS-xilinx_zynq_zedboard
#       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=

# 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>

# The location from which files placed in INSTALL_LOCATION will actually run.
# This path is compiled into executables, and so should be an absolute.
#  May be used to achieve the effect of autotools.  eg.
#   ./configure --prefix=<FINAL_LOCATION>
#   make DESTDIR=<INSTALL_LOCATION>
# Defaults to the absolute expansion of $(INSTALL_LOCATION)
#FINAL_LOCATION=

# 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.
ifeq ($(INSTALL_LOCATION),$(EPICS_BASE))
EPICS_SITE_VERSION=$(shell $(PERL) -MPOSIX -e 'print strftime "%Y-%m-%d", localtime')
endif

# 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, NO, or ORIGIN.  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.
#  ORIGIN is a feature of the ELF executable format used by Linux, freebsd, and solaris.
LINKER_USE_RPATH = YES

# Only used when LINKER_USE_RPATH=ORIGIN
# The build time root(s) of the relocatable tree (separate multiple w/ ':').
# Linking to libraries under any root directory will be relative.
# Linking to libraries outside of this root will be absolute.
# All root directories are considered to be the same.
LINKER_ORIGIN_ROOT = $(INSTALL_LOCATION)

# Overrides for the settings above may appear in a CONFIG_SITE.local file
-include $(CONFIG)/CONFIG_SITE.local
