Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Patches
  • Category Infrastructure → Build environment
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Daily build (which?)
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by zagor - 2008-11-07
Last edited by zagor - 2008-11-20

FS#9534 - Unified makefile

Here’s a snapshot of my “unified makefile” work in progress.

I’m not asking for bug reports. I am far from done. If you have opinions about the concept as such, though, feel free to comment.

The current state is that it builds the core completely (no plugins or codecs) and links it fine on ipod video, but nothing else.

If you want to play with other targets, remove/comment out the STARTUP(crt0.o) line in the app.lds file for that target.

Closed by  zagor
2008-11-20 11:38
Reason for closing:  Accepted
Project Manager
zagor commented on 2008-11-10 16:02

One step further: Now builds single-file plugins as well, with plugin-specific compiler flags.

Project Manager
zagor commented on 2008-11-11 10:15

Added codec libraries.

Project Manager
zagor commented on 2008-11-11 15:09

Ipod video now compiles completely. Plugins, codecs and all.

Project Manager
zagor commented on 2008-11-11 15:50

Added missing codecs.make, and some polishing.

Project Manager
zagor commented on 2008-11-12 13:14

Now includes all plugins (subdir plugins were missing from patch 5).

Project Manager
zagor commented on 2008-11-12 16:07

Split up codecs.make into subdir files. Added codec-specific -O flags.

Is it done now?

Project Manager
zagor commented on 2008-11-13 12:55

No. Targets are done, working on simulator now.

Project Manager
zagor commented on 2008-11-14 00:40

Targets and sims are now ready. Bootloader remains.

Now is the time to start testing builds for your favourite targets. I’m sure there’s a couple of glitches left.

Project Manager
zagor commented on 2008-11-14 15:33

Commit candidate. Please review and comment.

Hi Bjorn,

I get patch errors: http://www.pastebin.ca/1256232 Should Makefile itself be in the patch?

Ah - I spoke too soon:

$ make
Generating dependencies
CC uclpack
CC lang.c
CC apps/action.c
CC apps/alarm_menu.c
CC apps/abrepeat.c
BMP2RB remote_rockboxlogo.128x42x1.bmp
CC buildsim/apps/bitmaps/remote_native/remote_rockboxlogo.128x42x1.c
BMP2RB remote_usblogo.104x27x1.bmp
CC buildsim/apps/bitmaps/remote_native/remote_usblogo.104x27x1.c
BMP2RB remote_default_icons.6x8x1.bmp
CC buildsim/apps/bitmaps/remote_native/remote_default_icons.6x8x1.c
CONVBDF fonts/08-Schumacher-Clean.bdf
CC apps/bookmark.c
In file included from /home/Steve/rockbox/apps/bookmark.c:34:
/home/Steve/rockbox/apps/recorder/icons.h:33:33: bitmaps/rockboxlogo.h: No such file or directory
make: *** [/home/Steve/rockbox/buildsim/apps/bookmark.o] Error 1

Project Manager

I got the makefile rejects too but they’re harmless.

But I didn’t get any rockbox-info.txt file created!?

Project Manager
zagor commented on 2008-11-14 23:10

Steve: Thanks, fixed. (change line 13 in apps/bitmaps/bitmaps.make from = to += if you don’t want to reapply the whole patch)

Daniel: Thanks. rockbox-info.txt added.

It seems /usr/bin/patch just doesn’t handle removed files well. I have attached a version of this patch done with “svn diff –no-diff-deleted” that should apply easier.

Project Manager
zagor commented on 2008-11-14 23:13

Uh, patch 10 was not against svn head. So here’s patch11, against r19106.

Admin
fg commented on 2008-11-15 01:00

m:robe 100:
/home/fg/rockbox/patched/apps/plugins/bitmaps/remote_native/SOURCES:20:6: warning: “LCD_REMOTE_DEPTH” is not defined
/home/fg/rockbox/patched/apps/plugins/bitmaps/remote_native/SOURCES:22:8: warning: “LCD_REMOTE_DEPTH” is not defined

h120 (and all other coldfires):
/home/fg/rockbox/dev/m68k-elf/bin/../lib/gcc/m68k-elf/3.4.6/../../../../m68k-elf/bin/ld: warning: cannot find entry symbol start; defaulting to 0010212c
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c: In function `mpc_move_next’:
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:184: warning: implicit declaration of function `swap32’ /home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c: In function `mpc_decoder_setup’:
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:1467: warning: implicit declaration of function `coldfire_set_macsr’ /home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:1467: error: `EMAC_FRACTIONAL’ undeclared (first use in this function)
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:1467: error: (Each undeclared identifier is reported only once
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:1467: error: for each function it appears in.)
/home/fg/rockbox/patched/apps/codecs/libmusepack/mpc_decoder.c:1467: error: `EMAC_SATURATE’ undeclared (first use in this function)
make: *** [/home/fg/rockbox/patched/build-h120/apps/codecs/libmusepack/mpc_decoder.o] Error 1

Builds for other supported targets seem to be OK (although I haven’t checked if all rocks were built) . I’m now building others as well. I haven’t tried sims or bootloaders yet

In a build against a completely clean tree, it was failing due to dependencies on sysfont.h and iaudio_bl_flash.h. This is an attempt to add those deps, and a rule for iaudio_bl_flash.h, to be applied on top of unified_make11-nodelete.patch. It works for me, but may need further improvement.

Project Manager
zagor commented on 2008-11-16 01:36

All reported issues fixed.

Admin
fg commented on 2008-11-16 16:10

I tested all “normal” builds and quickly compared the zips:
- thai.lng isn’t included in the zips for some reason
- ondio sp and player don’t have a rombox.ucl anymore
- m200v4 and logik dax builds have linker errors that aren’t there in trunk
- (probably as expected) no more midiplay.rock, but midi.rock instead

Admin
fg commented on 2008-11-16 16:48

Bootloaders seem to build, except for the archoses (bootbox issues):
/home/fg/rockbox/patched/tools/root.make:33: /home/fg/rockbox/patched/flash/bootbox/apps.make: No such file or directory
/home/fg/rockbox/patched/tools/root.make:34: /home/fg/rockbox/patched/flash/bootbox/lang/lang.make: No such file or directory
/home/fg/rockbox/patched/tools/root.make:41: /home/fg/rockbox/patched/flash/bootbox/plugins/bitmaps/pluginbitmaps.make: No such file or directory
/home/fg/rockbox/patched/tools/root.make:42: /home/fg/rockbox/patched/flash/bootbox/plugins/plugins.make: No such file or directory
make: *** No rule to make target `/home/fg/rockbox/patched/flash/bootbox/plugins/plugins.make’. Stop.

The meizu m3 bootloader also doesn’t build, but that’s probably because of a meizu-specific bug (i.e. my fault). As that one isn’t in the build table, it can be fixed later

Admin
fg commented on 2008-11-16 19:36

All swcodec sims build on linux, but the hwcodec ones don’t:
/home/fg/rockbox/patched/buildls-fmrecorder/uisimulator/sdl/sound.o: In function `pcm_apply_settings_nolock’:
/home/fg/rockbox/patched/uisimulator/sdl/sound.c:75: undefined reference to `pcm_curr_sampr’ /home/fg/rockbox/patched/uisimulator/sdl/sound.c:78: undefined reference to `pcm_curr_sampr’ /home/fg/rockbox/patched/buildls-fmrecorder/uisimulator/sdl/sound.o: In function `sdl_audio_callback’:
/home/fg/rockbox/patched/uisimulator/sdl/sound.c:235: undefined reference to `pcm_callback_for_more’ /home/fg/rockbox/patched/uisimulator/sdl/sound.c:236: undefined reference to `pcm_callback_for_more’ /home/fg/rockbox/patched/uisimulator/sdl/sound.c:256: undefined reference to `pcm_play_dma_stopped_callback’ collect2: ld returned 1 exit status
make: * [/home/fg/rockbox/patched/buildls-fmrecorder/rockboxui] Error 1 The player gets another error first:
make:
* No rule to make target `lcd-playersim.h’, needed by `/home/fg/rockbox/patched/buildls-player/uisimulator/sdl/lcd-charcells.o’. Stop.

I get:
make: *** No rule to make target `../lib/codeclib.h’, needed by `/home/chshrcat/build/rockbox/build/s_firm/apps/codecs/demac/libdemac/entropy.o’. Stop.

when building vs current svn. changing apps/codecs/demac/libdemac/entropy.c to include “codeclib.h” resolves it for me.

On Gigabeat S, now that I’ve had a chance to attempt to play music, I’m getting codec failures attempting to play mp3 and vorbis (there’s nothing else on the player).

1) Small sync issue when patching:
… patching file apps/codecs/demac/libdemac/parser.h
Hunk #1 FAILED at 31.
1 out of 1 hunk FAILED – saving rejects to file apps/codecs/demac/libdemac/parser.h.rej
can’t find file to patch at input line 3189
Perhaps you used the wrong -p or –strip option?
The text leading up to this was:


————————– File to patch:
Skip this patch? [y]
Skipping patch.
1 out of 1 hunk ignored

2) Warnings displayed when making:
$ make
Makefile:67: warning: overriding commands for target `install’ /home/Steve/rockbox/tools/root.make:140: warning: ignoring old commands for target `install’ Makefile:72: warning: overriding commands for target `fullinstall’ /home/Steve/rockbox/tools/root.make:145: warning: ignoring old commands for target `fullinstall’ Generating dependencies

3) Error buildimg H300 sim under Cygwin:
make: *** No rule to make target `/home/Steve/rockbox/buildsim/apps/SDL_main.o’, needed by `/home/Steve/rockbox/buildsim/rockboxui.exe’. Stop.

Project Manager
zagor commented on 2008-11-18 08:18

Reported issues fixed, except:

- I don’t have a gigabeat s so I haven’t verified if it works. It works on my c200 though.
- I also don’t have a cygwin environment to test in, so that is likely still broken.

Thanks Bjorn - much better on Cygwin now, but sim builds still fail (as you expected).

Error is as before - “make: *** No rule to make target `/home/Steve/rockbox/buildsim/apps/SDL_main.o’, needed by `/home/Steve/rockbox/buildsim/rockboxui.exe’. Stop.”

Full output is at http://www.pastebin.ca/1260177, if it helps at all. Also attached a comparison of the old and new makefiles.

Project Manager
zagor commented on 2008-11-18 23:45

According to tonight’s 103 test builds, this patch should now compile on all targets svn compiles on.

The cygwin issue is still unsolved. My only clue is the file /usr/include/SDL/SDL_main.h. Can you upload make.dep somewhere?

Hi Bjorn,

Here’s my make.dep.

Project Manager
zagor commented on 2008-11-19 12:16

Once more unto the breach.

http://pastebin.com/m29f5c5e8 is the output for Cygwin/H300 sim.

Project Manager
zagor commented on 2008-11-20 09:46

Cygwin sim problems were due to mingw being an older gcc than any other compiler we use, and hence generating the dependencies differently.

This patch fixes that, so cygwin builds work now.

I can confirm it works for me now! (You probably didn’t need confirmation, but it can’t hurt.)

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing