Rockbox
Find a file
Thomas Martitz abdc5935be Introduce plugin_crt0.c that every plugin links.
It handles exit() properly, calling the handler also when the plugin returns
normally (also it makes exit() more standard compliant while at it).
It also holds PLUGIN_HEADER, so that it doesn't need to be in each plugin anymore.

To work better together with callbacks passed to rb->default_event_handler_ex introduce exit_on_usb() which will call the exit handler before showing the usb screen and exit() after it.
In most cases it was passed a callback which was manually called at all other return points. This can now be done via atexit().

In future plugin_crt0.c could also handle clearing bss, initializing iram and more.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27862 a1c6a512-1295-4272-9138-f99709370657
2010-08-23 16:56:49 +00:00
android Android port: also include native libraries in APK file 2010-08-17 21:13:13 +00:00
apps Introduce plugin_crt0.c that every plugin links. 2010-08-23 16:56:49 +00:00
backdrops Cabbiev2 480x800 port, very similar to the 320x480 one. 2010-08-12 19:06:40 +00:00
bootloader Introduce NORETURN_ATTR wrapper for __attribute__((noreturn)), using this and a bit further cleanup in main gets rid of a warning when compiling for android. 2010-08-12 13:38:25 +00:00
docs FS10820 - Shopper, a shopping list plugin by Daniel Rigby. 2010-08-18 09:10:37 +00:00
firmware Some Nano2G FTL cosmetics 2010-08-21 14:40:53 +00:00
flash Move memset6() declaration to string-extra.h, kills a warning compiling for android since it ships a memory.h. 2010-08-12 13:55:01 +00:00
fonts Polish charset for 09-Nedore font, FS #11460 by Tomasz Kowalczyk 2010-07-05 11:54:03 +00:00
gdb Generate C file / header for svn version string 2010-05-27 09:41:46 +00:00
icons Revert hotkey bitmaps 2010-05-07 14:46:42 +00:00
lib/skin_parser New skin tag: %if(<tag>, <operator>, <operand> [,option count]) which lets you do very simple logical comparissons on other tags. 2010-08-19 13:49:32 +00:00
manual Small change to sansa fuze keymap. 2010-08-17 14:30:10 +00:00
rbutil Update Brazilian Portuguese translation for Rockbox Utility 2010-08-12 08:32:54 +00:00
tools makefiles 2010-08-21 18:07:12 +00:00
uisimulator Rockbox as an application: Commit current Android port progress. 2010-08-02 20:34:47 +00:00
utils Theme Editor: Changed playlist rendering to match new syntax 2010-08-15 02:04:06 +00:00
wps Further upgrades of Cabbiev2 wps files to viewports - FS#11490 by HAyden Pearce and me 2010-08-21 23:39:19 +00:00

               __________               __   ___.
     Open      \______   \ ____   ____ |  | _\_ |__   _______  ___
     Source     |       _//  _ \_/ ___\|  |/ /| __ \ /  _ \  \/  /
     Jukebox    |    |   (  <_> )  \___|    < | \_\ (  <_> > <  <
     Firmware   |____|_  /\____/ \___  >__|_ \|___  /\____/__/\_ \
                       \/            \/     \/    \/            \/

Build Your Own Rockbox

1. Check out 'rockbox' from SVN (or extract a downloaded archive).

   $ svn co svn://svn.rockbox.org/rockbox/trunk rockbox

     or

   $ tar xjf rockbox.tar.bz2

2. Create a build directory, preferably in the same directory as the firmware/
   and apps/ directories. This is where all generated files will be written.

   $ cd rockbox
   $ mkdir build
   $ cd build

3. Make sure you have sh/arm/m68k-elf-gcc and siblings in the PATH. Make sure
   that you have 'perl' in your PATH too. Your gcc cross compiler needs to be
   a particular version depending on what player you are compiling for. These
   can be acquired with the rockboxdev.sh script in the /tools/ folder of the
   source, or will have been included if you've installed one of the
   toolchains or development environments provided at http://www.rockbox.org/

   $ which sh-elf-gcc
   $ which perl

4. In your build directory, run the 'tools/configure' script and enter what
   target you want to build for and if you want a debug version or not (and a
   few more questions). It'll prompt you. The debug version is for making a
   gdb version out of it. It is only useful if you run gdb towards your target
   Archos.

   $ ../tools/configure

5. *ploink*. Now you have got a Makefile generated for you.

6. Run 'make' and soon the necessary pieces from the firmware and the apps
   directories have been compiled, linked and scrambled for you.

   $ make
   $ make zip

7. unzip the rockbox.zip on your music player, reboot it and
   *smile*.

If you want to build for more than one target, just create several build
directories and create a setup for each target:

   $ mkdir build-fmrecorder
   $ cd build-fmrecorder
   $ ../tools/configure

   $ mkdir build-player
   $ cd build-player
   $ ../tools/configure

Questions anyone? Ask on the mailing list. We'll be happy to help you!