MokoMakefile

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Tips)
m (Added bullets to each tip)
Line 40: Line 40:
  
 
===Tips===  
 
===Tips===  
You can reduce the amount of consumed disk space significantly by adding
+
*You can reduce the amount of consumed disk space significantly by adding
 
   INHERIT += "rm_work"
 
   INHERIT += "rm_work"
 
in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.
 
in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.
  
  
If you an encounter an error with monotone similar to the following:
+
*If you an encounter an error with monotone similar to the following:
 
   mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema
 
   mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema
 
Then you need to upgrade OE.mtn  Use the following command while in /home/moko:
 
Then you need to upgrade OE.mtn  Use the following command while in /home/moko:
Line 51: Line 51:
  
  
For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.
+
*For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.
 
Edit the local.conf and add the following lines:
 
Edit the local.conf and add the following lines:
 
  PARALLEL_MAKE = "-j 4"
 
  PARALLEL_MAKE = "-j 4"

Revision as of 18:57, 9 March 2007

Contents

MokoMakefile

MokoMakefile is a fully automated way of setting up an OpenMoko development environment. It is an invaluable tool for getting new developers up and running with a build environment which is configured the same as all the other existing developers. It brings the same repeatability to build environment creation and maintenance as that which OpenEmbedded brings to the main task of actually building embedded software distributions.

Note that MokoMakefile does *not* replace bitbake, or svn, or monotone, or openembedded, or qmake, or anything else. It is a wrapper around all that to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by OpenMoko. Note that you need about 7 GB of available disk space for MokoMakefile to succeed.

MokoMakefile is developed by Rod Whitby - it is not an official product of OpenMoko (although I would be happy for them to pick it up and use it internally). If there is any discrepancy between the official OpenMoko build instructions, and the operation of the MokoMakefile, then you should consider the official instructions to be correct.

Installation

Here are the steps to use it:

1 - Make sure your build host is set up according to:

  http://www.openembedded.org/wiki/OEandYourDistro

2 - Create your $OMDIR directory:

  mkdir /home/moko ; cd /home/moko

3 - Grab MokoMakefile:

  wget http://www.rwhitby.net/files/openmoko/Makefile

4 - Set up the environment:

  make setup

5 - Start building:

  make openmoko-devel-image

This will set up the recommended directory structure as described in Building OpenMoko from scratch, will download all the required software (from the right places with the right versions), and will immediately start building an image.

Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually. The choice is yours.

Updating the environment

For easy maintenance of your build environment the following commands are available.

1 - To update the MokoMakefile to the latest version:

  make update-makefile 

2 - To update the OpenMoko repository checkout and the MokoMakefile patches to the latest version:

  make update

3 - To make sure that any recent changes to the build directory structure have been applied:

  make setup 

A quick way to rebuild a new image with the latest updates:

  make update-makefile; make update; make setup; make openmoko-devel-image

Tips

  • You can reduce the amount of consumed disk space significantly by adding
  INHERIT += "rm_work"

in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.


  • If you an encounter an error with monotone similar to the following:
  mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema

Then you need to upgrade OE.mtn Use the following command while in /home/moko:

  # mtn --db OE.mtn db migrate


  • For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.

Edit the local.conf and add the following lines:

PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADS = "4"

Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.

Testimonials

MokoMakefile is recommended by 3 out of 3 new developers on #openmoko, and one of them said "For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!"

Project page: http://mokomakefile.projects.openmoko.org/

Personal tools

MokoMakefile

MokoMakefile is a fully automated way of setting up an OpenMoko development environment. It is an invaluable tool for getting new developers up and running with a build environment which is configured the same as all the other existing developers. It brings the same repeatability to build environment creation and maintenance as that which OpenEmbedded brings to the main task of actually building embedded software distributions.

Note that MokoMakefile does *not* replace bitbake, or svn, or monotone, or openembedded, or qmake, or anything else. It is a wrapper around all that to make it easy to set up and maintain a development environment that fully complies with the setup instructions published by OpenMoko. Note that you need about 7 GB of available disk space for MokoMakefile to succeed.

MokoMakefile is developed by Rod Whitby - it is not an official product of OpenMoko (although I would be happy for them to pick it up and use it internally). If there is any discrepancy between the official OpenMoko build instructions, and the operation of the MokoMakefile, then you should consider the official instructions to be correct.

Installation

Here are the steps to use it:

1 - Make sure your build host is set up according to:

  http://www.openembedded.org/wiki/OEandYourDistro

2 - Create your $OMDIR directory:

  mkdir /home/moko ; cd /home/moko

3 - Grab MokoMakefile:

  wget http://www.rwhitby.net/files/openmoko/Makefile

4 - Set up the environment:

  make setup

5 - Start building:

  make openmoko-devel-image

This will set up the recommended directory structure as described in Building OpenMoko from scratch, will download all the required software (from the right places with the right versions), and will immediately start building an image.

Once you have done this, you can choose to continue using the MokoMakefile to initiate your subsequent builds, or you can go into the build directory and run bitbake commands manually. The choice is yours.

Updating the environment

For easy maintenance of your build environment the following commands are available.

1 - To update the MokoMakefile to the latest version:

  make update-makefile 

2 - To update the OpenMoko repository checkout and the MokoMakefile patches to the latest version:

  make update

3 - To make sure that any recent changes to the build directory structure have been applied:

  make setup 

A quick way to rebuild a new image with the latest updates:

  make update-makefile; make update; make setup; make openmoko-devel-image

Tips

  • You can reduce the amount of consumed disk space significantly by adding
  INHERIT += "rm_work"

in your local.conf (e.g. /home/moko/build/conf/local.conf). This will remove the contents of each build/tmp/work/*/<package> directory after the corresponding package builds correctly.


  • If you an encounter an error with monotone similar to the following:
  mtn: misuse: database /home/moko/OE.mtn is laid out according to an old schema

Then you need to upgrade OE.mtn Use the following command while in /home/moko:

  # mtn --db OE.mtn db migrate


  • For people with multiple CPU's (or dual-core ones) this small patch might be useful to build things faster.

Edit the local.conf and add the following lines:

PARALLEL_MAKE = "-j 4"
BB_NUMBER_THREADS = "4"

Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.

Testimonials

MokoMakefile is recommended by 3 out of 3 new developers on #openmoko, and one of them said "For some reason last night I couldn't get my manual install of everything to work (bb complained about my bbpath I think) ... but with your makefile, it works great!"

Project page: http://mokomakefile.projects.openmoko.org/