Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 1 | __________ __ ___. |
| 2 | Open \______ \ ____ ____ | | _\_ |__ _______ ___ |
| 3 | Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / |
| 4 | Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
| 5 | Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
| 6 | \/ \/ \/ \/ \/ |
| 7 | |
Daniel Stenberg | e083a1d | 2003-02-20 21:01:57 +0000 | [diff] [blame] | 8 | Build Your Own Rockbox |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 9 | |
Daniel Stenberg | 39d8db2 | 2007-01-11 22:35:28 +0000 | [diff] [blame] | 10 | 1. Check out 'rockbox' from SVN (or extract a downloaded archive). |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 11 | |
Daniel Stenberg | 39d8db2 | 2007-01-11 22:35:28 +0000 | [diff] [blame] | 12 | $ svn co svn://svn.rockbox.org/rockbox/trunk rockbox |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 13 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 14 | or |
| 15 | |
Daniel Stenberg | 39d8db2 | 2007-01-11 22:35:28 +0000 | [diff] [blame] | 16 | $ tar xjf rockbox.tar.bz2 |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 17 | |
| 18 | 2. Create a build directory, preferably in the same directory as the firmware/ |
| 19 | and apps/ directories. This is where all generated files will be written. |
| 20 | |
| 21 | $ cd rockbox |
| 22 | $ mkdir build |
| 23 | $ cd build |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 24 | |
Paul Louden | 6c487eb | 2007-03-26 16:44:00 +0000 | [diff] [blame] | 25 | 3. Make sure you have sh/arm/m68k-elf-gcc and siblings in the PATH. Make sure |
| 26 | that you have 'perl' in your PATH too. Your gcc cross compiler needs to be |
| 27 | a particular version depending on what player you are compiling for. These |
| 28 | can be acquired with the rockboxdev.sh script in the /tools/ folder of the |
| 29 | source, or will have been included if you've installed one of the |
| 30 | toolchains or development environments provided at http://www.rockbox.org/ |
| 31 | |
| 32 | $ which sh-elf-gcc |
| 33 | $ which perl |
| 34 | |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 35 | 4. In your build directory, run the 'tools/configure' script and enter what |
Daniel Stenberg | e083a1d | 2003-02-20 21:01:57 +0000 | [diff] [blame] | 36 | target you want to build for and if you want a debug version or not (and a |
| 37 | few more questions). It'll prompt you. The debug version is for making a |
| 38 | gdb version out of it. It is only useful if you run gdb towards your target |
| 39 | Archos. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 40 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 41 | $ ../tools/configure |
| 42 | |
Daniel Stenberg | e083a1d | 2003-02-20 21:01:57 +0000 | [diff] [blame] | 43 | 5. *ploink*. Now you have got a Makefile generated for you. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 44 | |
Paul Louden | 6c487eb | 2007-03-26 16:44:00 +0000 | [diff] [blame] | 45 | 6. Run 'make' and soon the necessary pieces from the firmware and the apps |
Daniel Stenberg | 5059ce5 | 2002-11-29 10:21:55 +0000 | [diff] [blame] | 46 | directories have been compiled, linked and scrambled for you. |
| 47 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 48 | $ make |
Daniel Stenberg | 39d8db2 | 2007-01-11 22:35:28 +0000 | [diff] [blame] | 49 | $ make zip |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 50 | |
Paul Louden | 6c487eb | 2007-03-26 16:44:00 +0000 | [diff] [blame] | 51 | 7. unzip the rockbox.zip on your music player, reboot it and |
Daniel Stenberg | 39d8db2 | 2007-01-11 22:35:28 +0000 | [diff] [blame] | 52 | *smile*. |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 53 | |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 54 | Whenever the tools/configure script gets updated, you can make your makefile |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 55 | updated too by running 'tools/configure update'. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 56 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 57 | If you want to build for more than one target, just create several build |
| 58 | directories and create a setup for each target: |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 59 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 60 | $ mkdir build-fmrecorder |
| 61 | $ cd build-fmrecorder |
| 62 | $ ../tools/configure |
| 63 | |
| 64 | $ mkdir build-player |
| 65 | $ cd build-player |
| 66 | $ ../tools/configure |
| 67 | |
| 68 | Questions anyone? Ask on the mailing list. We'll be happy to help you! |