MokoMakefile

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Tips)
(Tips)
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:
--- Makefile.bak        2007-03-07 20:49:40.937825664 +0200
+
  PARALLEL_MAKE = "-j 4"
+++ Makefile    2007-03-08 10:47:49.291062294 +0200
+
  BB_NUMBER_THREADS = "4"
@@ -116,7 +116,9 @@
+
        [ -e build/conf/local.conf ] || \
+
        ( echo 'MACHINE = "fic-gta01"' > build/conf/local.conf ; \
+
          echo 'DISTRO = "openmoko"' >> build/conf/local.conf ; \
+
-        echo 'BUILD_ARCH = "'`uname -m`'"' >> build/conf/local.conf )
+
+        echo 'BUILD_ARCH = "'`uname -m`'"' >> build/conf/local.conf ; \
+
  +        echo 'PARALLEL_MAKE = "-j 4"' >> build/conf/local.conf ; \
+
  +        echo 'BB_NUMBER_THREADS = "4"' >> build/conf/local.conf )
+
+
  setup-env:
+
        [ -e setup-env ] || \
+
 
+
  
 
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.
 
Change the PARALLEL_MAKE and BB_NUMBER_THREADS values to something that suits better if it chokes your machine.

Revision as of 13:52, 8 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/