Tree [4b268a] workspace/master /
History



File Date Author Commit
maint 2011-12-19 Peter A. Bigot Peter A. Bigot [a6e209] Add full development environment to modules
mspgcc 2011-12-19 Peter A. Bigot Peter A. Bigot [a6e209] Add full development environment to modules
.gitmodules 2012-04-06 Peter A. Bigot Peter A. Bigot [eb7ca0] maint/test430: add submodule
README.txt 2011-12-24 Peter A. Bigot Peter A. Bigot [9a954c] Update for 20111224 release
binutils 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis
gcc 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis
gdb 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis
msp430-libc 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis
msp430mcu 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis
test430 2012-06-18 Peter A. Bigot Peter A. Bigot [4b268a] Update for 20120618 basis

Read Me

This area is a git workspace for the `mspgcc toolchain
<http://sourceforge.net/projects/mspgcc/>`_.  It uses submodules to configure
a consistent set of toolchain elements from their individual git
repositories.

Notes:

* Users of this repository are expected to be familiar with git and with
  building software packages like gcc on POSIX systems.  Normal users of the
  mspgcc toolchain should obtain pre-built packages from a distribution
  maintainer.

* A full checkout using the shared mechanism described below requires 1.8GB
  of disk space, and does not include any build files.  Intermediate build
  files for the whole toolchain requires about 800MB, and an installation
  requires about 340MB.

The initial checkout is performed with::

  git clone \
    -b workspace/master \
    git://mspgcc.git.sourceforge.net/gitroot/mspgcc/mspgcc \
    msp430

workspace/master is the primary development branch.  Other branches in the
workspace/* hierarchy may be relevant in the future.

Once the mspgcc repository has been cloned into the workspace, the
submodules need to be created and cloned.  Since the workspace contains
several copies of some large repositories, each configured for a different
branch, significant space and download time can be saved if the initial
checkout clones the copies from an existing local repository.  To prepare
your workspace that shares repositories this way, do::

  cd msp430
  # Create and register the local directories for the submodules
  git submodule init
  # Create local branches for the upstream shared ones
  for b in maint master patches tests/master ; do
    git branch ${b} origin/${b}
  done
  # Clone the mspgcc-based workspaces
  ( cd mspgcc ;
    git clone -b maint .. maint ;
    git clone -b master .. master ;
    git clone -b patches .. patches ;
    git clone -b tests/master .. tests )
  # Retrieve the individual component libraries, and create a local
  # maint branch if relevant
  for m in binutils gcc gdb msp430-libc msp430mcu ; do
    git submodule update ${m}
    ( cd ${m} ; git fetch ; git branch maint origin/maint )
  done
  git submodule update test430
  # Clone the maint branches
  ( cd maint ;
    git clone -b maint ../binutils binutils ;
    git clone -b maint ../gcc gcc ;
    git clone -b maint ../gdb gdb ;
    git clone -b maint ../msp430-libc msp430-libc ;
    git clone -b maint ../msp430mcu msp430mcu )
  # Full update to make sure everything's there
  git submodule update

If this is too much hassle, just run::

  cd msp430
  git submodule init

After the workspace is initialized, you can update it periodically with:

 git pull
 git submodule update

The script maint/gcc/scripts/test430.sh can be used to build the complete
system.  From the workspace root, run:

  export MSP430_ROOT=$(pwd)
  mkdir -p BUILD
  cd BUILD
  ${MSP430_ROOT}/maint/gcc/scripts/test430.sh dev

Note that the default value for the MAKECPUS environment variable in this
script assumes the build host is capable of running eight jobs in parallel.
You may want to override this if building on a less capable machine.

This builds a complete toolchain tagged "dev", using the sources checked out
in ${MSP430_ROOT}, in build areas BUILD/(tool)/dev and installed in
${MSP430_ROOT}/install/dev.  Note that msp430-libc does not fully support
separated build, so intermediate files are left in ``msp430-libc/src/Build``
rather than in BUILD/msp430-libc/dev.

The msp430 target support for binutils and gcc includes target-specific
tests, which can be run if you have DejaGNU (runtest) installed::

  (cd BUILD/binutils/dev ; make check-gas RUNTESTFLAGS=msp430.exp)
  (cd BUILD/gcc/dev ; make check-gcc RUNTESTFLAGS=msp430.exp)

The toolchain test suite can be run with::

  export TEST430_ROOT=$(MSP430_ROOT)/test430
  cd mspgcc/tests
  make

Note that the toolchain test suite assumes you have an EXP430 development
board and a FET430UIF installed on your development host; see the test430
README for details.