The preprocess2file helper is mainly used to preprocess
linker scripts, but piping the preprocessor output to
'grep' masks the exit code of gcc, so if it fails (eg.
due to an #error directive) then it does not cause the
build to fail like it should.
In this particular case the grep commands don't seem to
be doing anything, since the "-P" option suppresses line
markers, which "grep -v ^$(_hash)" is probably meant to
filter out. The intent behind "grep -v ^$$" is unclear
since the preprocessor doesn't seem to output any line
beginning with '$', but in any event it seems unnecessary.
Change-Id: Ie23f5de1fe1bfb5890c7b2f3c7fa05401931d89f
Looks like I forgot to test the hosted builds and for some
reason thought that make would expand objcopy recursively...
Change-Id: I61264eadcb1235660566f6a9f19f8718ebe14583
This reverts commit 91ec6f1e1e.
Reason for revert: Massive sea of red, looks like hosted + sim builds.
Change-Id: I98a3954d68ad2cc521e13c3683bf4a6f45f88b36
From what I can see the Creative Zen Vision ports, which
were the only ones to set USE_ELF prior to the Echo R1 port,
do not work except for a bootloader and never even got to
the point of booting Rockbox. This explains why they build
codecs and plugins as ELF binaries, yet there is no code to
load ELF format codecs or plugins.
Anyhow, add a new setting, PLUGIN_USE_ELF, which controls
whether plugins & codecs are left as ELF or converted to
flat binaries. This makes it possible for the Echo R1 to
use the flat binary .rock format, and makes it possible to
have ELF plugins/codecs on targets with non-ELF main binaries.
Seeing as nothing needs ELF plugins/codecs right now, the
new default is to generate them as flat binaries unless
the target requests otherwise.
Change-Id: I9ffae669978de5cc7ad214cd50d97ad6e8938394
This commit adds changes to the original rockbox sources.
Note: the port files, functions, folders, etc., will be referred
to as 'ctru' to avoid using the Nintendo name elsewhere.
Change-Id: I0e2d3d4d2a75bd45ea67dc3452eb8d5487cf1f5a
Make 4.3 and newer doesn't interpret comments in a shell call,
whereas Make 4.2 and older do. Escaping the comment directly
works on old makes, but on new makes the backslash is passed
as well -- which we want to avoid.
The safe way to pass a literal "#" character to the shell on
both versions is by embedding it in a variable and expanding
that. It's ugly, but it works...
Change-Id: I1a217c42d747fd5aa83f9990c234e06966ac1a00
GNU grep 3.8 warns about "\#" when compiling. The "#" has to be
escaped for Makefiles and shell, but it isn't special to grep so
grep thinks it's an invalid escape sequence.
Change-Id: Ieb2607d42b7daa1939ca0101b915ec0c7afd4298
paths.
If ROOTDIR=/rockbox and BUILDDIR=/rockbox/build-something, it is now possible to
successfully build both target binaries and simulators.
Change-Id: If12d1d5933c5a15feebf627a4f1636dc1e3a67fa
* bmp2rb generated a .h file that rockbox .c files used.
* .h files in .c files were used to generate dependency graphs for make
* When Make saw the .h file for the bitmap, it didn't know how what
to do with them
* Only arose in parallel builds
Fixed this by adding explicit dependencies for the .h files as part of
the existing 'bmpdepfile' function.
Solves the Xduoo X3 bootloader build failure that I could trigger 100%
of the time by using 'make -j8'
Change-Id: I6b3e78dde26c820a3b6c7c286e7d6c981b8e01fc
librbcodec users must provide these two files when the library is built.
rbcodecconfig.h provides configuration #defines and basic types, and
will be included by public librbcodec headers, so it must not conflict
with the user's code. rbcodecplatform.h provides various OS functions,
and will only be included by source files and private headers. This
system is intended to provide maximum flexibility for use on embedded
systems, where no operating system headers are included. Unix systems
can just copy rbcodecconfig-example.h and rbcodecplatform-unix.h with
minimal changes.
Change-Id: I350a2274d173da391fd1ca00c4202e9760d91def
Reviewed-on: http://gerrit.rockbox.org/143
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
libs in $ROOT/lib now add to $(CORE_LIBS) and $(EXTRA_LIBS) and are
automatically linked by the core and codecs/plugins respectively.
Change-Id: Iff482c792a8c8142718f6a16a450c6e2f1497c9a
- some functions don't need to return their output, drop $(shell ... )
and prefix with $(SILENT), make V=1 will show the complete scripts being
run
- tweak make.dep generation: make the temporary file appear in root.make
only, and remove a useless "real command", there is already a real
command (mv)
- make addtargetdir.pl terminate its output with a newline ($(shell) did
that for us)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27855 a1c6a512-1295-4272-9138-f99709370657
* apps.make: depends on ctype.o instead of errno.o to depend on config-*.h so that it works for simulator.
* lang.make: add dependency of lang.h to make it sure that the file is updated properly when needed.
* plugins.make: object files don't depend on libpluginbitmaps.a.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24256 a1c6a512-1295-4272-9138-f99709370657
Many #include lines adjusted to conform to the new standards.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19146 a1c6a512-1295-4272-9138-f99709370657