MoxieDev
From MoxieWiki
MoxieDev is the source and build environment for the moxie toolchain, simulators and firmware. It is hosted in a publicly accessible git repository by the great team at github.com.
Contents |
Getting MoxieDev binaries
Users of modern RPM based distributions (Fedora, CentOS, RHEL) can download RPMs from the moxiedev yum repository. First, install the yum configury like so...
$ rpm -ivh http://moxielogic.org/download/moxielogic-repo-1-2.noarch.rpm
Then download the binaries like so:
$ yum groupinstall moxiedev
The binaries in this repository will be updated on an ad hoc basis, but shouldn't fall too far behind the latest trunk sources. Note that if you are using CentOS or RHEL, you may have you pull in qemu from the EPEL repository as a dependency.
Getting the MoxieDev source
MoxieDev is designed to be built and run on Linux. The tree is quite large. As of March 5, 2009, the fully built tree consumes 5.5G of storage. The sources alone are 4.9G (including some large benchmark data sets).
To check out the source tree:
$ git clone git://github.com/atgreen/moxiedev.git
Building the MoxieDev source
MoxieDev builds are controlled by an ant script in the top level of the source tree called build.xml. To build the sources, all that is required is...
$ ant build
This builds all of the MoxieDev components and installs them within the source tree under the "root" directory.
Other build targets includes:
- benchmark: Run the MiBench benchmarks using moxie-elf-run (the gdb moxie simulator).
- build: Build all of the tools and libraries, installing them under the "root" directory.
- clean: Clean the tree, deleting all binaries and temporary files.
- gcccheck: Run the GCC testsuite. This assumes you have already run "ant build".
- gdbcheck: Run the GDB testsuite. This assumes you have already run "ant build".
- srpm: Produce source RPMS for binutils and gcc.
- usage: Print out all build targets (this list).
Hacking the MoxieDev source
The MoxieDev mercurial repository contains checked-out copies of the sources for various upstream projects, including:
- GCC: managed by svn. This is the trunk of the tree with moxie patches.
- src: managed by cvs. This is a subset of the full src tree with moxie patches, containing the trunk sources for the gas, ld, binutils, sim, and gdb modules.
- qemu: managed by git. This is the trunk of the qemu tree with moxie patches.
- u-boot: managed by git. This is the trunk of the u-boot with moxie patches.
- linux-2.6: managed by git. This is a trunk of the Linus' 2.6 kernel tree with moxie patches.
- elf2flt: managed by cvs. This is the trunk from cvs.uclinux.org and contains moxie patches.
- uClibc: managed by git. This is the trunk of the tree with moxie patches.
To update to the latest upstream sources, simply cd into the appropriate directory and issue appropriate update command or script. For instance, gcc provides contrib/gcc_update.
MoxieDev also includes tarballs of specific upstream project releases (some of which are exploded in place), such as MiBench and mpfr. These are updated on an ad-hoc basis.
Local changes to these upstream projects are logged in ChangeLog.moxie files, using standard GNU ChangeLog notation.
