#### -*-shell-script-*-
####
#### %CopyrightBegin%
####
#### Copyright Ericsson AB 2009-2010. All Rights Reserved.
####
#### The contents of this file are subject to the Erlang Public License,
#### Version 1.1, (the "License"); you may not use this file except in
#### compliance with the License. You should have received a copy of the
#### Erlang Public License along with this software. If not, it can be
#### retrieved online at http://www.erlang.org/.
####
#### Software distributed under the License is distributed on an "AS IS"
#### basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
#### the License for the specific language governing rights and limitations
#### under the License.
####
#### %CopyrightEnd%
####
#### File: erl-xcomp-vxworks_ppc32.conf
#### Author: Rickard Green/Patrik Nyblom
####
#### --------------------------------------------------------------------------
#### When cross compiling Erlang/OTP using `otp_build`, copy this file and set
#### the variables needed below. Then pass the path to the copy of this file as
#### an argument to `otp_build` in the configure stage:
#### `otp_build configure --xcomp-conf=<FILE>`
#### --------------------------------------------------------------------------
### Note that you cannot define arbitrary variables in a cross compilation
### configuration file. Only the ones listed below will be guaranteed to be
### visible throughout the whole execution of all `configure` scripts. Other
### variables needs to be defined as arguments to `configure` or exported in
### the environment.
### ### Variables for `otp_build` Only ###
### Variables in this section are only used, when configuring Erlang/OTP for
### cross compilation using `$ERL_TOP/otp_build configure`.
### *NOTE*! These variables currently have *no* effect if you configure using
### the `configure` script directly.
## `erl_xcomp_build` - The build system used. This value will be passed as
## `--build=$erl_xcomp_build` argument to the `configure` script. It does
## not have to be a full `CPU-VENDOR-OS` triplet, but can be. The full
## `CPU-VENDOR-OS` triplet will be created by
## `$ERL_TOP/erts/autoconf/config.sub $erl_xcomp_build`.
## If set to `guess`, the build system will be guessed using
## `$ERL_TOP/erts/autoconf/config.guess`.
erl_xcomp_build=guess
## `erl_xcomp_host` - Cross host/target system to build for. This value will
## be passed as `--host=$erl_xcomp_host` argument to the `configure` script.
## It does not have to be a full `CPU-VENDOR-OS` triplet, but can be. The
## full `CPU-VENDOR-OS` triplet will be created by:
## `$ERL_TOP/erts/autoconf/config.sub $erl_xcomp_host`
erl_xcomp_host=powerpc-wrs-vxworks
## `erl_xcomp_configure_flags` - Extra configure flags to pass to the
## `configure` script.
erl_xcomp_configure_flags="--disable-threads --without-termcap"
### ### Cross Compiler and Other Tools ###
### If the cross compilation tools are prefixed by `<HOST>-` you probably do
### not need to set these variables (where `<HOST>` is what has been passed as
### `--host=<HOST>` argument to `configure`).
### All variables in this section can also be used when native compiling.
## `CC` - C compiler.
CC="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/ccppc"
## `CFLAGS` - C compiler flags.
CFLAGS="-DCPU=PPC32 -DTOOL_FAMILY=gnu -DTOOL=gnu -DWANT_NONBLOCKING -DHAVE_SENS -DHAVE_MEMMOVE -DVXWORKS -I$WIND_BASE/vxworks-6.3/target/h -I$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/lib/gcc/powerpc-wrs-vxworks/3.4.4/include -I$WIND_BASE/vxworks-6.3/target/h/wrn/coreip -I$WIND_BASE/vxworks-6.3/target/h -mstrict-align -fvolatile -fno-builtin -mlongcall"
## `STATIC_CFLAGS` - Static C compiler flags.
#STATIC_CFLAGS=
## `CFLAG_RUNTIME_LIBRARY_PATH` - This flag should set runtime library
## search path for the shared libraries. Note that this actually is a
## linker flag, but it needs to be passed via the compiler.
#CFLAG_RUNTIME_LIBRARY_PATH=
## `CPP` - C pre-processor.
CPP="$CC $CFLAGS -E"
## `CPPFLAGS` - C pre-processor flags.
#CPPFLAGS=
## `CXX` - C++ compiler.
#CXX=
## `CXXFLAGS` - C++ compiler flags.
#CXXFLAGS=
## `LD` - Linker.
LD="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/ldppc"
## `LDFLAGS` - Linker flags.
LDFLAGS="-mlongcall"
## `LIBS` - Libraries.
#LIBS=
### #### *D*ynamic *E*rlang *D*river Linking ####
### *NOTE*! Either set all or none of the `DED_LD*` variables.
## `DED_LD` - Linker for Dynamically loaded Erlang Drivers.
#DED_LD=
## `DED_LDFLAGS` - Linker flags to use with `DED_LD`.
#DED_LDFLAGS=
## `DED_LD_FLAG_RUNTIME_LIBRARY_PATH` - This flag should set runtime library
## search path for shared libraries when linking with `DED_LD`.
#DED_LD_FLAG_RUNTIME_LIBRARY_PATH=
### #### Large File Support ####
### *NOTE*! Either set all or none of the `LFS_*` variables.
## `LFS_CFLAGS` - Large file support C compiler flags.
#LFS_CFLAGS=
## `LFS_LDFLAGS` - Large file support linker flags.
#LFS_LDFLAGS=
## `LFS_LIBS` - Large file support libraries.
#LFS_LIBS=
### #### Other Tools ####
## `RANLIB` - `ranlib` archive index tool.
RANLIB="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/ranlibppc"
## `AR` - `ar` archiving tool.
AR="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/arppc"
## `GETCONF` - `getconf` system configuration inspection tool. `getconf` is
## currently used for finding out large file support flags to use, and
## on Linux systems for finding out if we have an NPTL thread library or
## not.
#GETCONF=
### ### Cross System Root Locations ###
## `erl_xcomp_sysroot` - The absolute path to the system root of the cross
## compilation environment. Currently, the `crypto`, `odbc`, `ssh` and
## `ssl` applications need the system root. These applications will be
## skipped if the system root has not been set. The system root might be
## needed for other things too. If this is the case and the system root
## has not been set, `configure` will fail and request you to set it.
#erl_xcomp_sysroot=
## `erl_xcomp_isysroot` - The absolute path to the system root for includes
## of the cross compilation environment. If not set, this value defaults
## to `$erl_xcomp_sysroot`, i.e., only set this value if the include system
## root path is not the same as the system root path.
#erl_xcomp_isysroot=
### ### Optional Feature, and Bug Tests ###
### These tests cannot (always) be done automatically when cross compiling. You
### usually do not need to set these variables. Only set these if you really
### know what you are doing.
### Note that some of these values will override results of tests performed
### by `configure`, and some will not be used until `configure` is sure that
### it cannot figure the result out.
### The `configure` script will issue a warning when a default value is used.
### When a variable has been set, no warning will be issued.
## `erl_xcomp_after_morecore_hook` - `yes|no`. Defaults to `no`. If `yes`, the
## target system must have a working `__after_morecore_hook` that can be
## used for tracking used `malloc()` implementations core memory usage.
## This is currently only used by unsupported features.
#erl_xcomp_after_morecore_hook=
## `erl_xcomp_bigendian` - `yes|no`. No default. If `yes`, the target system
## must be big endian. If `no`, little endian. This can often be
## automatically detected, but not always. If not automatically detected,
## `configure` will fail unless this variable is set. Since no default
## value is used, `configure` will try to figure this out automatically.
erl_xcomp_bigendian=yes
## `erl_xcomp_clock_gettime_cpu_time` - `yes|no`. Defaults to `no`. If `yes`,
## the target system must have a working `clock_gettime()` implementation
## that can be used for retrieving process CPU time.
#erl_xcomp_clock_gettime_cpu_time=
## `erl_xcomp_getaddrinfo` - `yes|no`. Defaults to `no`. If `yes`, the target
## system must have a working `getaddrinfo()` implementation that can
## handle both IPv4 and IPv6.
#erl_xcomp_getaddrinfo=
## `erl_xcomp_gethrvtime_procfs_ioctl` - `yes|no`. Defaults to `no`. If `yes`,
## the target system must have a working `gethrvtime()` implementation and
## is used with procfs `ioctl()`.
#erl_xcomp_gethrvtime_procfs_ioctl=
## `erl_xcomp_dlsym_brk_wrappers` - `yes|no`. Defaults to `no`. If `yes`, the
## target system must have a working `dlsym(RTLD_NEXT, <S>)` implementation
## that can be used on `brk` and `sbrk` symbols used by the `malloc()`
## implementation in use, and by this track the `malloc()` implementations
## core memory usage. This is currently only used by unsupported features.
#erl_xcomp_dlsym_brk_wrappers=
## `erl_xcomp_kqueue` - `yes|no`. Defaults to `no`. If `yes`, the target system
## must have a working `kqueue()` implementation that returns a file
## descriptor which can be used by `poll()` and/or `select()`. If `no` and
## the target system has not got `epoll()` or `/dev/poll`, the kernel-poll
## feature will be disabled.
#erl_xcomp_kqueue=
## `erl_xcomp_linux_clock_gettime_correction` - `yes|no`. Defaults to `yes` on
## Linux; otherwise, `no`. If `yes`, `clock_gettime(CLOCK_MONOTONIC, _)` on
## the target system must work. This variable is recommended to be set to
## `no` on Linux systems with kernel versions less than 2.6.
#erl_xcomp_linux_clock_gettime_correction=
## `erl_xcomp_linux_nptl` - `yes|no`. Defaults to `yes` on Linux; otherwise,
## `no`. If `yes`, the target system must have NPTL (Native POSIX Thread
## Library). Older Linux systems have LinuxThreads instead of NPTL (Linux
## kernel versions typically less than 2.6).
#erl_xcomp_linux_nptl=
## `erl_xcomp_linux_usable_sigaltstack` - `yes|no`. Defaults to `yes` on Linux;
## otherwise, `no`. If `yes`, `sigaltstack()` must be usable on the target
## system. `sigaltstack()` on Linux kernel versions less than 2.4 are
## broken.
#erl_xcomp_linux_usable_sigaltstack=
## `erl_xcomp_linux_usable_sigusrx` - `yes|no`. Defaults to `yes`. If `yes`,
## the `SIGUSR1` and `SIGUSR2` signals must be usable by the ERTS. Old
## LinuxThreads thread libraries (Linux kernel versions typically less than
## 2.2) used these signals and made them unusable by the ERTS.
#erl_xcomp_linux_usable_sigusrx=
## `erl_xcomp_poll` - `yes|no`. Defaults to `no` on Darwin/MacOSX; otherwise,
## `yes`. If `yes`, the target system must have a working `poll()`
## implementation that also can handle devices. If `no`, `select()` will be
## used instead of `poll()`.
#erl_xcomp_poll=
## `erl_xcomp_putenv_copy` - `yes|no`. Defaults to `no`. If `yes`, the target
## system must have a `putenv()` implementation that stores a copy of the
## key/value pair.
#erl_xcomp_putenv_copy=
## `erl_xcomp_reliable_fpe` - `yes|no`. Defaults to `no`. If `yes`, the target
## system must have reliable floating point exceptions.
#erl_xcomp_reliable_fpe=
####