#### -*-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=' #### -------------------------------------------------------------------------- ### 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. ### ---- `otp_build' only variables ------------------------------------------- ### 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 - Build system. ## 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 `erl_xcomp_build=guess', the build system will be guessed using: ## `$ERL_TOP/erts/autoconf/config.guess'. erl_xcomp_build=guess ## erl_xcomp_host - Cross host system. ## 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. ## Extra flags to pass to the `configure' script. erl_xcomp_configure_flags="--disable-threads --without-termcap" ### ---- Cross compiler and other tools to use -------------------------------- ### If the cross compilation tools are prefixed by `-' you probably do ### not need to set these variables (where `' is what has been passed as ### `--host=' argument to `configure'). ## 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 - C compiler runtime library path flag. ## This flag should set a specific runtime library path for the shared ## library at link time. Note that this is actually 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" ### -- Dynamic Erlang Driver linker flags. -- ### NOTE! Either define all or non of the DED_LD* variables. ## DED_LD - Linker. #DED_LD= ## DED_LDFLAGS - Linker flags. #DED_LDFLAGS= ## DED_LD_FLAG_RUNTIME_LIBRARY_PATH - Linker runtime library path flag. ## This flag should set a specific runtime library path for the shared ## library at link time. #DED_LD_FLAG_RUNTIME_LIBRARY_PATH= ### -- Other tools -- ## RANLIB - ranlib RANLIB="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/ranlibppc" ## AR - ar AR="$WIND_BASE/gnu/3.4.4-vxworks-6.3/$WIND_HOST_TYPE/bin/arppc" ### ---- Cross System Root Locations ------------------------------------------ ## erl_xcomp_sysroot - Absolute cross system root path. ## 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 - Absolute cross include system root path. ## 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, or bug tests --------------------------------------- ### These tests cannot (always) be done automatically when cross compiling. You ### usually does not need to set these variables. Only set these if you really ### know what you are doing. ### 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_bigendian - yes|no ## 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. No default value is used, i.e., `configure' will try to figure ## this out automatically. erl_xcomp_bigendian=yes ## 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_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 less than 2.2) ## used these signals and made them unusable by the ERTS. #erl_xcomp_linux_usable_sigusrx= ## 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_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_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_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= ## 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_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_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. #erl_xcomp_after_morecore_hook= ## erl_xcomp_dlsym_brk_wrappers - yes|no (defaults to `no') ## If `yes', the target system must have a working `dlsym(RTLD_NEXT, )' ## 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. #erl_xcomp_dlsym_brk_wrappers= #### --------------------------------------------------------------------------