doc: update mac instructions

Use sdn-ng scripts to build toolchain instead of repeating them here.

Fixes #6912

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This commit is contained in:
Anas Nashif 2018-05-15 09:52:49 +03:00 committed by Anas Nashif
parent 0daf69bb57
commit 2a892d5d6d

View File

@ -108,114 +108,20 @@ To build for the ARM-based Nordic nRF52 Development Kit:
Setting Up the Toolchain
************************
Install tools needed for building the toolchain (if needed):
In case a toolchain is not available for the board you are using, you can build
a toolchain from scratch using crosstool-NG. Follow the steps on the
crosstool-NG website to `prepare your host
<http://crosstool-ng.github.io/docs/os-setup/>`_
.. code-block:: console
Follow the `Zephyr SDK with Crosstool NG instructions <https://github.com/zephyrproject-rtos/sdk-ng/blob/master/README.md>`_ to build
the toolchain for various architectures. You will need to clone the ``sdk-ng``
repo and run the following command::
brew install gettext help2man mpfr gmp coreutils wget
brew tap homebrew/dupes
brew install grep --with-default-names
./go.sh <arch>
.. note::
Currently only i586 and arm builds are verified.
To build the toolchain, you will need crosstool-ng version 1.23 or higher.
Install it by using Homebrew:
.. code-block:: console
brew install crosstool-ng
Creating a Case-sensitive File System
=====================================
Building the compiler requires a case-sensitive file system. Therefore, use
:program:`diskutil` to create an 8 GB blank sparse image making sure you select
case-sensitive file system (OS X Extended (Case-sensitive, Journaled) and
mount it.
Alternatively you can use the script below to create the image:
.. code-block:: bash
#!/bin/bash
ImageName=CrossToolNG
ImageNameExt=${ImageName}.sparseimage
diskutil umount force /Volumes/${ImageName} && true
rm -f ${ImageNameExt} && true
hdiutil create ${ImageName} -volname ${ImageName} -type SPARSE -size 8g -fs HFSX
hdiutil mount ${ImageNameExt}
cd /Volumes/$ImageName
When mounted, the file system of the image will be available under
:file:`/Volumes`. Change to the mounted directory:
.. code-block:: console
cd /Volumes/CrossToolNG
mkdir build
cd build
Setting the Toolchain Options
=============================
In the Zephyr kernel source tree we provide configurations for NIOS-II and
X86 that can be used to preselect the options needed for building the toolchain.
The configuration files can be found in
:file:`${ZEPHYR_BASE}/scripts/cross_compiler/`.
Currently the following configurations are provided:
* i586.config: for standard ABI, for example for Galileo and qemu_x86
* iamcu.config: for IAMCU ABI, for example for the Arduino 101
* nios2.config: for Nios II boards
.. code-block:: console
cp ${ZEPHYR_BASE}/scripts/cross_compiler/i586.config .config
You can create a toolchain configuration or customize an existing configuration
yourself using the configuration menus:
.. code-block:: console
export CT_PREFIX=/Volumes/CrossToolNG
ct-ng oldconfig
Verifying the Configuration of the Toolchain
============================================
Before building the toolchain it is advisable to perform a quick verification
of the configuration set for the toolchain.
1. Open the generated :file:`.config` file.
2. Verify the following lines are present, assuming the sparse image was
mounted under :file:`/Volumes/CrossToolNG`:
.. code-block:: bash
...
CT_LOCAL_TARBALLS_DIR="/Volumes/CrossToolNG/src"
# CT_SAVE_TARBALLS is not set
CT_WORK_DIR="${CT_TOP_DIR}/.build"
CT_PREFIX_DIR="/Volumes/CrossToolNG/x-tools/${CT_TARGET}"
CT_INSTALL_DIR="${CT_PREFIX_DIR}"
# Following options prevent link errors
CT_WANTS_STATIC_LINK=n
CT_CC_STATIC_LIBSTDCXX=n
...
Building the Toolchain
======================
To build the toolchain, enter:
.. code-block:: console
ct-ng build
The above process takes a while. When finished, the toolchain will be available
under :file:`/Volumes/CrossToolNG/x-tools`.
Repeat the step for all architectures you want to support in your environment.
@ -225,7 +131,7 @@ and use the target location where the toolchain was installed, type:
.. code-block:: console
export ZEPHYR_TOOLCHAIN_VARIANT=xtools
export XTOOLS_TOOLCHAIN_PATH=/Volumes/CrossToolNG/x-tools
export XTOOLS_TOOLCHAIN_PATH=/Volumes/CrossToolNGNew/build/output/
To use the same toolchain in new sessions in the future you can set the
@ -234,7 +140,7 @@ variables in the file :file:`${HOME}/.zephyrrc`, for example:
.. code-block:: console
cat <<EOF > ~/.zephyrrc
export XTOOLS_TOOLCHAIN_PATH=/Volumes/CrossToolNG/x-tools
export XTOOLS_TOOLCHAIN_PATH=/Volumes/CrossToolNGNew/build/output/
export ZEPHYR_TOOLCHAIN_VARIANT=xtools
EOF
@ -244,3 +150,4 @@ variables in the file :file:`${HOME}/.zephyrrc`, for example:
.. _Homebrew site: http://brew.sh/
.. _crosstool-ng site: http://crosstool-ng.org