blob: 178776ee31bbbf960b58501507ac6c6f92697517 [file] [log] [blame]
Robert Hak40bafc52002-08-21 10:19:23 +00001 __________ __ ___.
2 Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
6 \/ \/ \/ \/ \/
7
Daniel Stenberge083a1d2003-02-20 21:01:57 +00008Build Your Own Rockbox
Robert Hak40bafc52002-08-21 10:19:23 +00009
Daniel Stenberg39d8db22007-01-11 22:35:28 +0000101. Check out 'rockbox' from SVN (or extract a downloaded archive).
Robert Hak40bafc52002-08-21 10:19:23 +000011
Daniel Stenberg39d8db22007-01-11 22:35:28 +000012 $ svn co svn://svn.rockbox.org/rockbox/trunk rockbox
Robert Hak40bafc52002-08-21 10:19:23 +000013
Björn Stenberg4b392cd2003-07-10 11:52:42 +000014 or
15
Daniel Stenberg39d8db22007-01-11 22:35:28 +000016 $ tar xjf rockbox.tar.bz2
Björn Stenberg4b392cd2003-07-10 11:52:42 +000017
182. 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 Hak40bafc52002-08-21 10:19:23 +000024
Paul Louden6c487eb2007-03-26 16:44:00 +0000253. 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 Hak40bafc52002-08-21 10:19:23 +0000354. In your build directory, run the 'tools/configure' script and enter what
Daniel Stenberge083a1d2003-02-20 21:01:57 +000036 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 Hak40bafc52002-08-21 10:19:23 +000040
Björn Stenberg4b392cd2003-07-10 11:52:42 +000041 $ ../tools/configure
42
Daniel Stenberge083a1d2003-02-20 21:01:57 +0000435. *ploink*. Now you have got a Makefile generated for you.
Robert Hak40bafc52002-08-21 10:19:23 +000044
Paul Louden6c487eb2007-03-26 16:44:00 +0000456. Run 'make' and soon the necessary pieces from the firmware and the apps
Daniel Stenberg5059ce52002-11-29 10:21:55 +000046 directories have been compiled, linked and scrambled for you.
47
Björn Stenberg4b392cd2003-07-10 11:52:42 +000048 $ make
Daniel Stenberg39d8db22007-01-11 22:35:28 +000049 $ make zip
Björn Stenberg4b392cd2003-07-10 11:52:42 +000050
Paul Louden6c487eb2007-03-26 16:44:00 +0000517. unzip the rockbox.zip on your music player, reboot it and
Daniel Stenberg39d8db22007-01-11 22:35:28 +000052 *smile*.
Björn Stenberg4b392cd2003-07-10 11:52:42 +000053
Robert Hak40bafc52002-08-21 10:19:23 +000054Whenever the tools/configure script gets updated, you can make your makefile
Björn Stenberg4b392cd2003-07-10 11:52:42 +000055updated too by running 'tools/configure update'.
Robert Hak40bafc52002-08-21 10:19:23 +000056
Björn Stenberg4b392cd2003-07-10 11:52:42 +000057If you want to build for more than one target, just create several build
58directories and create a setup for each target:
Robert Hak40bafc52002-08-21 10:19:23 +000059
Björn Stenberg4b392cd2003-07-10 11:52:42 +000060 $ mkdir build-fmrecorder
61 $ cd build-fmrecorder
62 $ ../tools/configure
63
64 $ mkdir build-player
65 $ cd build-player
66 $ ../tools/configure
67
68Questions anyone? Ask on the mailing list. We'll be happy to help you!