From e1b1183f401974700a67db76f39e2bba9a5984e1 Mon Sep 17 00:00:00 2001 From: Dominik Riebeling Date: Thu, 23 Dec 2010 18:59:58 +0000 Subject: [PATCH] Tweak Makefiles a bit to allow cross compiling Rockbox Utility. - pass AR to the lib Makefiles to make sure the correct one gets used. - create an archive index for archives. - simplify ucl Makefile a bit. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28883 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/mkamsboot/Makefile | 2 +- rbutil/mkmpioboot/Makefile | 2 +- rbutil/mktccboot/Makefile | 2 +- rbutil/rbutilqt/rbutilqt.pro | 25 +++++++++++++------------ tools/rbspeex/Makefile | 2 +- tools/ucl/src/Makefile | 15 +++++++-------- 6 files changed, 24 insertions(+), 24 deletions(-) diff --git a/rbutil/mkamsboot/Makefile b/rbutil/mkamsboot/Makefile index 0a9ab3b4e7..a76259794e 100644 --- a/rbutil/mkamsboot/Makefile +++ b/rbutil/mkamsboot/Makefile @@ -60,7 +60,7 @@ $(OBJDIR)%.o: %.c libmkamsboot$(RBARCH).a: $(LIBOBJS) @echo AR $@ - $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ + $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ # building the standalone executable $(OUTPUT): $(OBJS) $(EXTRADEPS) diff --git a/rbutil/mkmpioboot/Makefile b/rbutil/mkmpioboot/Makefile index 7ba7c41a1f..5e138b6f12 100644 --- a/rbutil/mkmpioboot/Makefile +++ b/rbutil/mkmpioboot/Makefile @@ -54,7 +54,7 @@ $(OBJDIR)%.o: %.c libmkmpioboot$(RBARCH).a: $(LIBOBJS) @echo AR $@ - $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ + $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ # building the standalone executable $(OUTPUT): $(OBJS) $(EXTRADEPS) diff --git a/rbutil/mktccboot/Makefile b/rbutil/mktccboot/Makefile index 1b8ff5b349..7a7acf87b7 100644 --- a/rbutil/mktccboot/Makefile +++ b/rbutil/mktccboot/Makefile @@ -56,7 +56,7 @@ $(OUT)/%.o: %.c $(OUT) libmktccboot$(RBARCH).a: $(LIBOBJS) @echo AR $@ - $(SILENT)$(AR) ruc $(TARGET_DIR)$@ $^ + $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $^ # building the standalone executable $(OUTPUT): $(OBJS) $(EXTRADEPS) diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro index 56be36d9fc..ca7214989c 100644 --- a/rbutil/rbutilqt/rbutilqt.pro +++ b/rbutil/rbutilqt/rbutilqt.pro @@ -64,30 +64,35 @@ mac { !static:unix:!mac { LIBSPEEX = $$system(pkg-config --silence-errors --libs speex speexdsp) } +# The external Makefiles use ar to create libs. To allow cross-compiling pass +# the ar that matches the current gcc. Since qmake doesn't provide a variable +# holding the correct ar without any additions we need to figure it ourselves +# here. This assumes that QMAKE_CC will always be "gcc", maybe with a postfix. +MYAR = $$replace(QMAKE_CC,gcc.*,ar) rbspeex.commands = @$(MAKE) \ TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/rbspeex \ librbspeex$$RBLIBPOSTFIX \ - CC=\"$$QMAKE_CC\" \ - SYS_SPEEX=\"$$LIBSPEEX\" + SYS_SPEEX=\"$$LIBSPEEX\" \ + CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" libucl.commands = @$(MAKE) \ TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/tools/ucl/src \ libucl$$RBLIBPOSTFIX \ - CC=\"$$QMAKE_CC\" + CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" libmkamsboot.commands = @$(MAKE) \ TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkamsboot \ APPVERSION=\"rbutil\" \ libmkamsboot$$RBLIBPOSTFIX \ - CC=\"$$QMAKE_CC\" + CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" libmktccboot.commands = @$(MAKE) \ TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mktccboot \ libmktccboot$$RBLIBPOSTFIX \ - CC=\"$$QMAKE_CC\" + CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" libmkmpioboot.commands = @$(MAKE) \ TARGET_DIR=$$MYBUILDDIR -C $$RBBASE_DIR/rbutil/mkmpioboot \ APPVERSION=\"rbutil\" \ libmkmpioboot$$RBLIBPOSTFIX \ - CC=\"$$QMAKE_CC\" + CC=\"$$QMAKE_CC\" AR=\"$$MYAR\" QMAKE_EXTRA_TARGETS += rbspeex libucl libmkamsboot libmktccboot libmkmpioboot PRE_TARGETDEPS += rbspeex libucl libmkamsboot libmktccboot libmkmpioboot @@ -111,7 +116,7 @@ INCLUDEPATH += $$RBBASE_DIR/rbutil/ipodpatcher $$RBBASE_DIR/rbutil/sansapatcher DEPENDPATH = $$INCLUDEPATH -LIBS += -L$$OUT_PWD -L$$MYBUILDDIR -lrbspeex -lmkamsboot -lmktccboot -lmkmpioboot -lucl +LIBS += -L$$OUT_PWD -L$$MYBUILDDIR -lrbspeex -lmkamsboot -lmktccboot -lmkmpioboot -lucl -lz # Add a (possibly found) libspeex now, don't do this before -lrbspeex! !static:!isEmpty(LIBSPEEX) { @@ -152,10 +157,6 @@ unix:!static:libusb1:!macx { DEFINES += LIBUSB1 LIBS += -lusb-1.0 } -unix { - # explicitly link zlib, we do need it. Don't rely on implicit linking via Qt. - LIBS += -lz -} unix:!macx:static { # force statically linking of libusb. Libraries that are appended @@ -177,7 +178,7 @@ macx:intel { } macx { CONFIG += x86 - LIBS += -L/usr/local/lib -lz \ + LIBS += -L/usr/local/lib \ -framework IOKit -framework CoreFoundation -framework Carbon \ -framework SystemConfiguration -framework CoreServices INCLUDEPATH += /usr/local/include diff --git a/tools/rbspeex/Makefile b/tools/rbspeex/Makefile index 2fb1c4dc00..e52543c40c 100644 --- a/tools/rbspeex/Makefile +++ b/tools/rbspeex/Makefile @@ -72,7 +72,7 @@ $(DEPFILE): $(SOURCES) $(OUT)/librbspeex.a: $(OBJS) $(DEPFILE) $(OUT)/rbspeex.o @echo AR $(OUT)/librbspeex$(RBARCH).a - $(SILENT)$(AR) ruv $@ $+ > /dev/null 2>&1 + $(SILENT)$(AR) rucs $@ $+ > /dev/null 2>&1 librbspeex$(RBARCH).a: $(OUT)/librbspeex.a $(SILENT)cp $(OUT)/librbspeex.a $(TARGET_DIR)librbspeex$(RBARCH).a diff --git a/tools/ucl/src/Makefile b/tools/ucl/src/Makefile index c519844e93..3a13acc47e 100644 --- a/tools/ucl/src/Makefile +++ b/tools/ucl/src/Makefile @@ -21,17 +21,16 @@ OUT = $(TARGET_DIR)build$(RBARCH) SOURCES = alloc.c io.c n2b_99.c n2b_d.c n2b_ds.c n2b_to.c n2d_99.c \ n2d_d.c n2d_ds.c n2d_to.c n2e_99.c n2e_d.c n2e_ds.c n2e_to.c ucl_crc.c \ - ucl_dll.c ucl_init.c ucl_ptr.c ucl_str.c ucl_util.c + ucl_init.c ucl_ptr.c ucl_str.c ucl_util.c #ucl_dll.c -OBJS = $(OUT)/alloc.o $(OUT)/io.o $(OUT)/n2b_99.o $(OUT)/n2b_d.o $(OUT)/n2b_ds.o $(OUT)/n2b_to.o $(OUT)/n2d_99.o \ - $(OUT)/n2d_d.o $(OUT)/n2d_ds.o $(OUT)/n2d_to.o $(OUT)/n2e_99.o $(OUT)/n2e_d.o $(OUT)/n2e_ds.o $(OUT)/n2e_to.o $(OUT)/ucl_crc.o \ - $(OUT)/ucl_dll.o $(OUT)/ucl_init.o $(OUT)/ucl_ptr.o $(OUT)/ucl_str.o $(OUT)/ucl_util.o +OBJS = $(addprefix $(OUT)/,$(SOURCES:%.c=%.o)) + +# This Makefile is _not_ used to build uclpack for Rockbox builds anymore (they +# use tools.make), so we can use $(CC) and $(AR) here. -# we don't use $(AR) and $(RANLIB) below since we want the _native_ tools -# not the cross-compiler tools libucl$(RBARCH).a: $(OUT) $(OBJS) - $(SILENT)ar ruv $(TARGET_DIR)$@ $(OBJS) >/dev/null 2>&1 - $(SILENT)ranlib $(TARGET_DIR)$@ + @echo AR $@ + $(SILENT)$(AR) rucs $(TARGET_DIR)$@ $(OBJS) >/dev/null 2>&1 $(OUT)/%.o: %.c @echo CC $<