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 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 10 | 1. Check out 'rockbox' from CVS (or extract a downloaded archive). You |
| 11 | want to check out 'rockbox-devel' instead if you want the simulator |
| 12 | code too (for trying out things on host before making target tests). |
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 | (For more information about the simulator, read UISIMULATOR.) |
Robert Hak | 5f84df9 | 2002-08-21 10:22:49 +0000 | [diff] [blame] | 15 | |
Björn Stenberg | d4c1fc6 | 2004-11-11 09:36:41 +0000 | [diff] [blame] | 16 | $ cvs -d:pserver:anonymous@www.rockbox.org:/cvsroot/rockbox login |
| 17 | $ cvs -z3 -d:pserver:anonymous@www.rockbox.org:/cvsroot/rockbox co rockbox |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 18 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 19 | or |
| 20 | |
| 21 | $ tar xzf rockbox.tar.gz |
| 22 | |
| 23 | 2. Create a build directory, preferably in the same directory as the firmware/ |
| 24 | and apps/ directories. This is where all generated files will be written. |
| 25 | |
| 26 | $ cd rockbox |
| 27 | $ mkdir build |
| 28 | $ cd build |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 29 | |
| 30 | 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] | 31 | target you want to build for and if you want a debug version or not (and a |
| 32 | few more questions). It'll prompt you. The debug version is for making a |
| 33 | gdb version out of it. It is only useful if you run gdb towards your target |
| 34 | Archos. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 35 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 36 | $ ../tools/configure |
| 37 | |
Daniel Stenberg | e083a1d | 2003-02-20 21:01:57 +0000 | [diff] [blame] | 38 | 5. *ploink*. Now you have got a Makefile generated for you. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 39 | |
Daniel Stenberg | 5059ce5 | 2002-11-29 10:21:55 +0000 | [diff] [blame] | 40 | 6. Make sure you have sh-elf-gcc and siblings in the PATH. Make sure that you |
| 41 | have 'perl' in your PATH too. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 42 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 43 | $ which sh-elf-gcc |
| 44 | $ which perl |
| 45 | |
Daniel Stenberg | 5059ce5 | 2002-11-29 10:21:55 +0000 | [diff] [blame] | 46 | 7. Run 'make' and soon the necessary pieces from the firmware and the apps |
| 47 | directories have been compiled, linked and scrambled for you. |
| 48 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 49 | $ make |
| 50 | |
Daniel Stenberg | e083a1d | 2003-02-20 21:01:57 +0000 | [diff] [blame] | 51 | 8. Copy the archos.mod or ajbrec.ajz file to your archos, reboot it and |
| 52 | *smile*. Recent Rockbox versions need no reboots, just PLAY a new rockbox |
| 53 | version and that'll be loaded and replace the currently running version. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 54 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 55 | $ mount /dev/sda1 /mnt/archos |
| 56 | $ cp ajbrec.ajz /mnt/archos |
| 57 | $ umount /mnt/archos |
| 58 | |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 59 | 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] | 60 | updated too by running 'tools/configure update'. |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 61 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 62 | If you want to build for more than one target, just create several build |
| 63 | directories and create a setup for each target: |
Robert Hak | 40bafc5 | 2002-08-21 10:19:23 +0000 | [diff] [blame] | 64 | |
Björn Stenberg | 4b392cd | 2003-07-10 11:52:42 +0000 | [diff] [blame] | 65 | $ mkdir build-fmrecorder |
| 66 | $ cd build-fmrecorder |
| 67 | $ ../tools/configure |
| 68 | |
| 69 | $ mkdir build-player |
| 70 | $ cd build-player |
| 71 | $ ../tools/configure |
| 72 | |
| 73 | Questions anyone? Ask on the mailing list. We'll be happy to help you! |