# # RTEMS Tools Project (http://www.rtems.org/) # Copyright 2010-2013 Chris Johns (chrisj@rtems.org) # All rights reserved. # # This file is part of the RTEMS Tools package in 'rtems-tools'. # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # All paths in defaults must be Unix format. Do not store any Windows format # paths in the defaults. # # Every entry must describe the type of checking a host must pass. # # Records: # key: type, attribute, value # type : none, dir, exe, triplet # attribute: none, required, optional # value : 'single line', '''multi line''' # # # Global defaults # [global] # Nothing nil: none, none, '' # Set to invalid values. _bset: none, none, '' name: none, none, '' version: none, none, '' release: none, none, '' buildname: none, none, '%{name}' # GNU triples needed to build packages _host: triplet, required, '' _build: triplet, required, '' _target: none, optional, '' # The user _uid: none, convert, '%(%{__id_u} -n)' # Default flags that can be overridded to supply specific host or build # flags and include paths to the tools. The host is the final platform # the tools will run on and build is the host building the tools. optflags_host: none, convert, '-O2 -pipe' optincludes_host: none, convert, '' optflags_build: none, convert, '-O2 -pipe' optincludes_build: none, convert, '' # Extra path a platform can override. _extra_path: none, none, '%{_sbdir}' _ld_library_path: none, none, 'LD_LIBRARY_PATH' # Paths _host_platform: none, none, '%{_host_cpu}-%{_host_vendor}-%{_host_os}%{?_gnu}' _arch: none, none, '%{_host_arch}' _topdir: dir, required, '%{_cwd}' _configdir: dir, optional, '%{_topdir}/config:%{_sbdir}/config:%{_sbtop}/bare/config' _tardir: dir, optional, '%{_topdir}/tar' _sourcedir: dir, optional, '%{_topdir}/sources' _patchdir: dir, optional, '%{_topdir}/patches:%{_sbdir}/patches' _builddir: dir, optional, '%{_topdir}/build/%{buildname}' _buildcxcdir: dir, optional, '%{_topdir}/build/%{buildname}-cxc' _docdir: dir, none, '%{_defaultdocdir}' _tmppath: dir, none, '%{_topdir}/build/tmp' _tmproot: dir, none, '%{_tmppath}/sb-%{_uid}/%{_bset}' _tmpcxcroot: dir, none, '%{_tmppath}/sb-%{_uid}-cxc/%{_bset}' buildroot: dir, none, '%{_tmppath}/%{buildname}-%{_uid}' buildcxcroot: dir, none, '%{_tmppath}/%{buildname}-%{_uid}-cxc' _datadir: dir, none, '%{_prefix}/share' _defaultdocdir: dir, none, '%{_prefix}/share/doc' _exeext: none, none, '' _exec_prefix: dir, none, '%{_prefix}' _bindir: dir, none, '%{_exec_prefix}/bin' _sbindir: dir, none, '%{_exec_prefix}/sbin' _libexecdir: dir, none, '%{_exec_prefix}/libexec' _datarootdir: dir, none, '%{_prefix}/share' _datadir: dir, none, '%{_datarootdir}' _sysconfdir: dir, none, '%{_prefix}/etc' _sharedstatedir: dir, none, '%{_prefix}/com' _localstatedir: dir, none, '%{prefix}/var' _includedir: dir, none, '%{_prefix}/include' _lib: dir, none, 'lib' _libdir: dir, none, '%{_exec_prefix}/%{_lib}' _libexecdir: dir, none, '%{_exec_prefix}/libexec' _mandir: dir, none, '%{_datarootdir}/man' _infodir: dir, none, '%{_datarootdir}/info' _localedir: dir, none, '%{_datarootdir}/locale' _localedir: dir, none, '%{_datadir}/locale' _localstatedir: dir, none, '%{_prefix}/var' _prefix: dir, none, '%{_usr}' _usr: dir, none, '/usr/local' _usrsrc: dir, none, '%{_usr}/src' _var: dir, none, '/usr/local/var' _varrun: dir, none, '%{_var}/run' # Defaults, override in platform specific modules. ___setup_shell: exe, required, '/bin/sh' __aclocal: exe, optional, 'aclocal' __ar: exe, required, 'ar' __arch_install_post: exe, none, '%{nil}' __as: exe, required, 'as' __autoconf: exe, optional, 'autoconf' __autoheader: exe, optional, 'autoheader' __automake: exe, optional, 'automake' __autoreconf: exe, optional, 'autoreconf' __awk: exe, required, 'awk' __bash: exe, optional, '/bin/bash' __bison: exe, required, '/usr/bin/bison' __bzip2: exe, required, '/usr/bin/bzip2' __cat: exe, required, '/bin/cat' __cc: exe, required, '/usr/bin/gcc' __chgrp: exe, required, '/usr/bin/chgrp' __chmod: exe, required, '/bin/chmod' __chown: exe, required, '/usr/sbin/chown' __cp: exe, required, '/bin/cp' __cpp: exe, none, '%{__cc} -E' __cvs: exe, required, '/usr/bin/cvs' __cvs_z: none, none, '%{__cvs} -z 9' __cxx: exe, required, '/usr/bin/g++' __flex: exe, required, '/usr/bin/flex' __git: exe, required, '/usr/bin/git' __grep: exe, required, '/usr/bin/grep' __gzip: exe, required, '/usr/bin/gzip' __id: exe, required, '/usr/bin/id' __id_u: exe, none, '%{__id} -u' __install: exe, required, '/usr/bin/install' __install_info: exe, optional, '/usr/bin/install-info' __ld: exe, required, '/usr/bin/ld' __ldconfig: exe, required, '/sbin/ldconfig' __ln_s: exe, none, 'ln -s' __make: exe, required, 'make' __makeinfo: exe, required, '/usr/bin/makeinfo' __mkdir: exe, required, '/bin/mkdir' __mkdir_p: exe, none, '/bin/mkdir -p' __mv: exe, required, '/bin/mv' __nm: exe, required, '/usr/bin/nm' __objcopy: exe, optional, '/usr/bin/objcopy' __objdump: exe, optional, '/usr/bin/objdump' __patch_bin: exe, required, '/usr/bin/patch' __patch_opts: none, none, '%{nil}' __patch: exe, none, '%{__patch_bin} %{__patch_opts}' __perl: exe, optional, 'perl' __svn: exe, optional, '/usr/bin/svn' __ranlib: exe, required, 'ranlib' __rm: exe, required, '/bin/rm' __rmfile: exe, none, '%{__rm} -f' __rmdir: exe, none, '%{__rm} -rf' __sed: exe, required, '/usr/bin/sed' __setup_post: exe, none, '%{__chmod} -R a+rX,g-w,o-w .' __sh: exe, required, '/bin/sh' __tar: exe, required, '/usr/bin/tar' __tar_extract: exe, none, '%{__tar} -xvvf' __touch: exe, required, '/usr/bin/touch' __unzip: exe, required, '/usr/bin/unzip' __xz: exe, required, '/usr/bin/xz' # Shell Build Settings. ___build_args: none, none, '-e' ___build_cmd: none, none, '%{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_remhost} }%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} %{_remroot} }%{___build_shell} %{___build_args}' ___build_post: none, none, 'exit 0' # Prebuild set up script. ___build_pre: none, none, '''# ___build_pre in as set up in defaults.py # Save the original path away. export SB_ORIG_PATH=${PATH} # Directories %{?_prefix:SB_PREFIX="%{_prefix}"} %{?_prefix:SB_PREFIX_CLEAN=$(echo "%{_prefix}" | %{__sed} -e 's/^\///')} SB_SOURCE_DIR="%{_sourcedir}" SB_BUILD_DIR="%{_builddir}" # host == build, use build; host != build , host uses host and build uses build SB_OPT_HOST_CFLAGS="%{optflags_host} %{optincludes_host}" SB_OPT_HOST_LDFLAGS="%{?_tmproot:-L%{_tmproot}/${SB_PREFIX_CLEAN}/lib}" SB_OPT_BUILD_CFLAGS="%{optflags_build} %{?_tmproot:-I%{_tmproot}/${SB_PREFIX_CLEAN}/include}" SB_OPT_BUILD_LDFLAGS="%{?_tmproot:-L%{_tmproot}/${SB_PREFIX_CLEAN}/lib}" SB_OPT_CFLAGS="${SB_OPT_BUILD_CFLAGS} %{optincludes_build}" SB_ARCH="%{_arch}" SB_OS="%{_os}" export SB_SOURCE_DIR SB_BUILD_DIR SB_ARCH SB_OS export SB_OPT_HOST_CFLAGS SB_OPT_HOST_LDFLAGS SB_OPT_BUILD_CFLAGS SB_OPT_BUILD_LDFLAGS SB_OPT_CFLAGS # Documentation SB_DOC_DIR="%{_docdir}" export SB_DOC_DIR # Packages SB_PACKAGE_NAME="%{name}" SB_PACKAGE_BUILDNAME="%{buildname}" SB_PACKAGE_VERSION="%{version}" SB_PACKAGE_RELEASE="%{release}" export SB_PACKAGE_NAME SB_PACKAGE_VERSION SB_PACKAGE_RELEASE # Build directories export SB_PREFIX %{?_builddir:SB_BUILD_DIR="%{_builddir}"} %{?buildroot:SB_BUILD_ROOT="%{buildroot}"} %{?buildroot:%{?_prefix:SB_BUILD_ROOT_BINDIR="%{buildroot}/${SB_PREFIX_CLEAN}/bin"}} export SB_BUILD_ROOT SB_BUILD_DIR SB_BUILD_ROOT_BINDIR %{?_buildcxcdir:SB_BUILD_CXC_DIR="%{_buildcxcdir}"} %{?buildcxcroot:SB_BUILD_CXC_ROOT="%{buildcxcroot}"} %{?buildcxcroot:%{?_prefix:SB_BUILD_CXC_ROOT_BINDIR="%{buildcxcroot}/${SB_PREFIX_CLEAN}/bin"}} export SB_BUILD_CXC_ROOT SB_BUILD_CXC_DIR SB_BUILD_CXC_ROOT_BINDIR %{?_tmproot:SB_TMPROOT="%{_tmproot}"} %{?_tmproot:%{?_prefix:SB_TMPPREFIX="%{_tmproot}/${SB_PREFIX_CLEAN}"}} %{?_tmproot:%{?_prefix:SB_TMPBINDIR="%{_tmproot}/${SB_PREFIX_CLEAN}/bin"}} export SB_TMPROOT SB_TMPPREFIX SB_TMPBINDIR %{?_tmpcxcroot:SB_TMPCXCROOT="%{_tmproot}"} %{?_tmpcxcroot:%{?_prefix:SB_TMPCXCPREFIX="%{_tmpcxcroot}/${SB_PREFIX_CLEAN}"}} %{?_tmpcxcroot:%{?_prefix:SB_TMPCXCBINDIR="%{_tmpcxcroot}/${SB_PREFIX_CLEAN}/bin"}} export SB_TMPCXCROOT SB_TMPCXCPREFIX SB_TMPCXCBINDIR # Extra path support %{?_extra_path:SB_EXTRAPATH="%{_extra_path}"} # The compiler flags %{?_targetcflags:CFLAGS_FOR_TARGET="%{_targetcflags}"} %{?_targetcxxflags:CXXFLAGS_FOR_TARGET="%{_targetcxxflags}"} export CFLAGS_FOR_TARGET export CXXFLAGS_FOR_TARGET # Set up the path. Put the CXC path first. if test -n "${SB_TMPBINDIR}" ; then PATH="${SB_TMPBINDIR}:$PATH" fi if test -n "${SB_TMPCXCBINDIR}" ; then PATH="${SB_TMPCXCBINDIR}:$PATH" fi if test -n "${SB_EXTRAPATH}" ; then PATH="${SB_EXTRAPATH}:$PATH" fi export PATH # Default environment set up. LANG=C export LANG unset DISPLAY || : umask 022 cd "%{_builddir}"''' ___build_shell: none, none, '%{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}' ___build_template: none, none, '''#!%{___build_shell} %{___build_pre} %{nil}''' # Configure command configure: none, none, ''' CFLAGS="${CFLAGS:-${SB_OPT_CFLAGS}" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:-${SB_OPT_CFLAGS}}" ; export CXXFLAGS ; FFLAGS="${FFLAGS:-${SB_OPT_CFLAGS}}" ; export FFLAGS ; ./configure --build=%{_build} --host=%{_host} \ --target=%{_target_platform} \ --program-prefix=%{?_program_prefix} \ --prefix=%{_prefix} \ --exec-prefix=%{_exec_prefix} \ --bindir=%{_bindir} \ --sbindir=%{_sbindir} \ --sysconfdir=%{_sysconfdir} \ --datadir=%{_datadir} \ --includedir=%{_includedir} \ --libdir=%{_libdir} \ --libexecdir=%{_libexecdir} \ --localstatedir=%{_localstatedir} \ --sharedstatedir=%{_sharedstatedir} \ --mandir=%{_mandir} \ --infodir=%{_infodir}''' # Build script support. build_directory: none, none, ''' if test "%{_build}" != "%{_host}" ; then build_dir="build-cxc" else build_dir="build" fi''' # Host/build flags. host_build_flags: none, none, ''' # Host and build flags, Cxc build if host and build are different. # Note, gcc is not ready to be compiled with -std=gnu99 (this needs to be checked). if test "%{_build}" != "%{_host}" ; then # Canadian cross build CC=$(echo "%{_host}-gcc ${SB_OPT_HOST_CFLAGS} ${SB_OPT_HOST_LDFLAGS}" | sed -e 's,-std=gnu99 ,,') CXX=$(echo "%{_host}-g++ ${SB_OPT_HOST_CFLAGS} ${SB_OPT_HOST_LDFLAGS}" | sed -e 's,-std=gnu99 ,,') CFLAGS="${SB_OPT_HOST_CFLAGS}" LDFLAGS="${SB_OPT_HOST_LDFLAGS}" CFLAGS_FOR_BUILD="${SB_OPT_BUILD_CFLAGS}" LDFLAGS_FOR_BUILD="${SB_OPT_BUILD_LDFLAGS}" CXXFLAGS_FOR_BUILD="${SB_OPT_BUILD_CFLAGS}" CC_FOR_BUILD=$(echo "%{__cc} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,') CXX_FOR_BUILD=$(echo "%{__cxx} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,') else LDFLAGS="${SB_OPT_BUILD_LDFLAGS}" CC=$(echo "%{__cc} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,') CXX=$(echo "%{__cxx} ${SB_OPT_BUILD_CFLAGS}" | sed -e 's,-std=gnu99 ,,') CC_FOR_BUILD=${CC} CXX_FOR_BUILD=${CXX} fi export CC CXX CC_FOR_BUILD CXX_FOR_BUILD CFLAGS CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS LDFLAGS_FOR_BUILD''' # Build/build flags. build_build_flags: none, none, ''' # Build and build flags means force build == host # gcc is not ready to be compiled with -std=gnu99 LDFLAGS="${SB_OPT_HOST_LDFLAGS}" CC=$(echo "%{__cc} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,') CXX=$(echo "%{__cxx} ${SB_OPT_CFLAGS}" | sed -e 's,-std=gnu99 ,,') CC_FOR_BUILD=${CC} CXX_FOR_BUILD=${CXX} export CC CXX CC_FOR_BUILD CXX_FOR_BUILD CFLAGS LDFLAGS''' # Default package settings _forced_static: none, none, '-Xlinker -Bstatic ${LIBS_STATIC} -Xlinker -Bdynamic' __xz: exe, required, '/usr/bin/xz' # Mail Support _mail_smtp_host: none, none, 'localhost' _mail_tools_to: none, none, 'rtems-tooltestresults@rtems.org' # Newlib ICONV encodings _newlib_iconv_encodings: none, none, '''big5,cp775,cp850,cp852,cp855,\ cp866,euc_jp,euc_kr,euc_tw,iso_8859_1,iso_8859_10,iso_8859_11,\ iso_8859_13,iso_8859_14,iso_8859_15,iso_8859_2,iso_8859_3,\ iso_8859_4,iso_8859_5,iso_8859_6,iso_8859_7,iso_8859_8,iso_8859_9,\ iso_ir_111,koi8_r,koi8_ru,koi8_u,koi8_uni,ucs_2,ucs_2_internal,\ ucs_2be,ucs_2le,ucs_4,ucs_4_internal,ucs_4be,ucs_4le,us_ascii,\ utf_16,utf_16be,utf_16le,utf_8,win_1250,win_1251,win_1252,\ win_1253,win_1254,win_1255,win_1256,win_1257,win_1258'''