1
0
Fork 0
forked from len0rd/rockbox

Move building libraries to separate Makefile.

Previously several additional rules were added by qmake to build the required
libraries. This has a couple of problems on Windows, requiring the use of a
msys shell.

Additional variables are passed as environment variables. Windows doesn't
understand this. Passing the variables via make command line argument works but
make won't be able to change those variables anymore, breaking things. Use
intermediate variables passed via make command line that are then exported by
the called Makefile. This doesn't work in the generated Makefile since the
export lines must not be part of a rule.

Also cleans up the project file a bit.

Change-Id: Iaffb059ce8bafe17a35bd1e0a74ae7acd966c138
This commit is contained in:
Dominik Riebeling 2013-05-04 00:15:18 +02:00
parent d964199cc7
commit 8a1cd81b3a
2 changed files with 68 additions and 56 deletions

View file

@ -31,9 +31,9 @@ MOC_DIR = $$MYBUILDDIR/moc
RCC_DIR = $$MYBUILDDIR/rcc
!silent {
ADDENV = "V=1"
VERBOSE = "V=1"
} else {
ADDENV = "@"
VERBOSE =
}
# check version of Qt installation
@ -72,65 +72,23 @@ message("Rockbox Base dir: "$$RBBASE_DIR)
# here. This assumes that QMAKE_CC will always be "gcc", maybe with a postfix.
MYAR = $$replace(QMAKE_CC,gcc.*,ar)
librbspeex.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/rbspeex/ \
extralibs.commands = $$SILENT \
$(MAKE) -f $$RBBASE_DIR/rbutil/rbutilqt/Makefile.libs \
$$VERBOSE \
SYS_SPEEX=$$LIBSPEEX \
BUILD_DIR=$$MYLIBBUILDDIR/ \
TARGET_DIR=$$MYLIBBUILDDIR \
SYS_SPEEX=\"$$LIBSPEEX\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/tools/rbspeex librbspeex.a
libucl.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/ucl/ \
TARGET_DIR=$$MYLIBBUILDDIR \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/tools/ucl/src libucl.a
libipodpatcher.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/ipodpatcher/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/ipodpatcher libipodpatcher.a
libsansapatcher.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/sansapatcher/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/sansapatcher libsansapatcher.a
libmkamsboot.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/mkamsboot/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/mkamsboot libmkamsboot.a
libmktccboot.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/mktccboot/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/mktccboot libmktccboot.a
libmkmpioboot.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/mkmpioboot/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/mkmpioboot libmkmpioboot.a
libchinachippatcher.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/chinachippatcher/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/chinachippatcher libchinachippatcher.a
libmkimxboot.commands = $$ADDENV \
BUILD_DIR=$$MYLIBBUILDDIR/mkimxboot/ \
TARGET_DIR=$$MYLIBBUILDDIR \
APPVERSION=\"rbutil\" \
CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
$(MAKE) -C $$RBBASE_DIR/rbutil/mkimxboot libmkimxboot.a
RBBASE_DIR=$$RBBASE_DIR \
EXTRALIBS_CC=\"$$QMAKE_CC\" \
EXTRALIB_CFLAGS=\"$$MACHINEFLAGS\" \
EXTRALIBS_AR=\"$$MYAR\" \
libs
# Note: order is important for RBLIBS! The libs are appended to the linker
# flags in this order, put libucl at the end.
RBLIBS = librbspeex libipodpatcher libsansapatcher libmkamsboot libmktccboot \
libmkmpioboot libchinachippatcher libmkimxboot libucl
QMAKE_EXTRA_TARGETS += $$RBLIBS
PRE_TARGETDEPS += $$RBLIBS
QMAKE_EXTRA_TARGETS += extralibs
PRE_TARGETDEPS += extralibs
# rule for creating ctags file
tags.commands = ctags -R --c++-kinds=+p --fields=+iaS --extra=+q $(SOURCES)