summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rbutil/libtools.make27
-rw-r--r--rbutil/rbutilqt/rbutilqt.pro25
2 files changed, 17 insertions, 35 deletions
diff --git a/rbutil/libtools.make b/rbutil/libtools.make
index 4e66161011..0d028e09be 100644
--- a/rbutil/libtools.make
+++ b/rbutil/libtools.make
@@ -42,10 +42,15 @@ endif
42endif 42endif
43endif 43endif
44 44
45NATIVECC = gcc 45NATIVECC ?= gcc
46CC ?= gcc 46CC ?= gcc
47# OS X specifics. Needs to consider cross compiling for Windows.
47ifeq ($(findstring Darwin,$(shell uname)),Darwin) 48ifeq ($(findstring Darwin,$(shell uname)),Darwin)
48ifneq ($(findstring mingw,$(CROSS)$(CC)),mingw) 49ifneq ($(findstring mingw,$(CROSS)$(CC)),mingw)
50# when building libs for OS X build for both i386 and ppc at the same time.
51# This creates fat objects, and ar can only create the archive but not operate
52# on it. As a result the ar call must NOT use the u (update) flag.
53CFLAGS += -arch ppc -arch i386
49# building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode) 54# building against SDK 10.4 is not compatible with gcc-4.2 (default on newer Xcode)
50# might need adjustment for older Xcode. 55# might need adjustment for older Xcode.
51CC ?= gcc-4.0 56CC ?= gcc-4.0
@@ -105,27 +110,11 @@ $(TARGET_DIR)$(OUTPUT).dll: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
105 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -shared -o $@ $^ \ 110 $(SILENT)$(CROSS)$(CC) $(CFLAGS) -shared -o $@ $^ \
106 -Wl,--output-def,$(TARGET_DIR)$(OUTPUT).def 111 -Wl,--output-def,$(TARGET_DIR)$(OUTPUT).def
107 112
113# create lib file from objects
108$(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS)) 114$(TARGET_DIR)lib$(OUTPUT)$(RBARCH).a: $(LIBOBJS) $(addprefix $(OBJDIR),$(EXTRALIBOBJS))
109 @echo AR $(notdir $@) 115 @echo AR $(notdir $@)
110 $(SILENT)mkdir -p $(dir $@) 116 $(SILENT)mkdir -p $(dir $@)
111 $(SILENT)$(AR) rucs $@ $^ 117 $(SILENT)$(AR) rcs $@ $^
112
113# some trickery to build ppc and i386 from a single call
114ifeq ($(RBARCH),)
115$(TARGET_DIR)lib$(OUTPUT)i386.a:
116 make RBARCH=i386 TARGET_DIR=$(TARGET_DIR) lib$(OUTPUT)i386.a
117
118$(TARGET_DIR)lib$(OUTPUT)ppc.a:
119 make RBARCH=ppc TARGET_DIR=$(TARGET_DIR) lib$(OUTPUT)ppc.a
120endif
121
122lib$(OUTPUT)-universal: $(TARGET_DIR)lib$(OUTPUT)i386.a \
123 $(TARGET_DIR)lib$(OUTPUT)ppc.a
124 @echo LIPO $(notdir $(TARGET_DIR)lib$(OUTPUT).a)
125 $(SILENT) rm -f $(TARGET_DIR)lib$(OUTPUT).a
126 $(SILENT)lipo -create $(TARGET_DIR)lib$(OUTPUT)i386.a \
127 $(TARGET_DIR)lib$(OUTPUT)ppc.a \
128 -output $(TARGET_DIR)lib$(OUTPUT).a
129 118
130clean: 119clean:
131 rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)lib$(OUTPUT)*.a $(OUTPUT).dmg 120 rm -f $(OBJS) $(OUTPUT) $(TARGET_DIR)lib$(OUTPUT)*.a $(OUTPUT).dmg
diff --git a/rbutil/rbutilqt/rbutilqt.pro b/rbutil/rbutilqt/rbutilqt.pro
index 270e47b1f7..1f281cbce6 100644
--- a/rbutil/rbutilqt/rbutilqt.pro
+++ b/rbutil/rbutilqt/rbutilqt.pro
@@ -52,13 +52,6 @@ RBBASE_DIR = $$replace(RBBASE_DIR,/rbutil/rbutilqt,)
52 52
53message("Rockbox Base dir: "$$RBBASE_DIR) 53message("Rockbox Base dir: "$$RBBASE_DIR)
54 54
55# custom rules for rockbox-specific libs
56!mac {
57 RBLIBPOSTFIX = .a
58}
59mac {
60 RBLIBPOSTFIX = -universal
61}
62# check for system speex. Add a custom rule for pre-building librbspeex if not 55# check for system speex. Add a custom rule for pre-building librbspeex if not
63# found. Newer versions of speex are split up into libspeex and libspeexdsp, 56# found. Newer versions of speex are split up into libspeex and libspeexdsp,
64# and some distributions package them separately. Check for both and fall back 57# and some distributions package them separately. Check for both and fall back
@@ -83,54 +76,54 @@ librbspeex.commands = $$ADDENV \
83 TARGET_DIR=$$MYLIBBUILDDIR \ 76 TARGET_DIR=$$MYLIBBUILDDIR \
84 SYS_SPEEX=\"$$LIBSPEEX\" \ 77 SYS_SPEEX=\"$$LIBSPEEX\" \
85 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 78 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
86 $(MAKE) -C $$RBBASE_DIR/tools/rbspeex librbspeex$$RBLIBPOSTFIX 79 $(MAKE) -C $$RBBASE_DIR/tools/rbspeex librbspeex.a
87libucl.commands = $$ADDENV \ 80libucl.commands = $$ADDENV \
88 BUILD_DIR=$$MYLIBBUILDDIR/ucl/ \ 81 BUILD_DIR=$$MYLIBBUILDDIR/ucl/ \
89 TARGET_DIR=$$MYLIBBUILDDIR \ 82 TARGET_DIR=$$MYLIBBUILDDIR \
90 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 83 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
91 $(MAKE) -C $$RBBASE_DIR/tools/ucl/src libucl$$RBLIBPOSTFIX 84 $(MAKE) -C $$RBBASE_DIR/tools/ucl/src libucl.a
92libipodpatcher.commands = $$ADDENV \ 85libipodpatcher.commands = $$ADDENV \
93 BUILD_DIR=$$MYLIBBUILDDIR/ipodpatcher/ \ 86 BUILD_DIR=$$MYLIBBUILDDIR/ipodpatcher/ \
94 TARGET_DIR=$$MYLIBBUILDDIR \ 87 TARGET_DIR=$$MYLIBBUILDDIR \
95 APPVERSION=\"rbutil\" \ 88 APPVERSION=\"rbutil\" \
96 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 89 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
97 $(MAKE) -C $$RBBASE_DIR/rbutil/ipodpatcher libipodpatcher$$RBLIBPOSTFIX 90 $(MAKE) -C $$RBBASE_DIR/rbutil/ipodpatcher libipodpatcher.a
98libsansapatcher.commands = $$ADDENV \ 91libsansapatcher.commands = $$ADDENV \
99 BUILD_DIR=$$MYLIBBUILDDIR/sansapatcher/ \ 92 BUILD_DIR=$$MYLIBBUILDDIR/sansapatcher/ \
100 TARGET_DIR=$$MYLIBBUILDDIR \ 93 TARGET_DIR=$$MYLIBBUILDDIR \
101 APPVERSION=\"rbutil\" \ 94 APPVERSION=\"rbutil\" \
102 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 95 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
103 $(MAKE) -C $$RBBASE_DIR/rbutil/sansapatcher libsansapatcher$$RBLIBPOSTFIX 96 $(MAKE) -C $$RBBASE_DIR/rbutil/sansapatcher libsansapatcher.a
104libmkamsboot.commands = $$ADDENV \ 97libmkamsboot.commands = $$ADDENV \
105 BUILD_DIR=$$MYLIBBUILDDIR/mkamsboot/ \ 98 BUILD_DIR=$$MYLIBBUILDDIR/mkamsboot/ \
106 TARGET_DIR=$$MYLIBBUILDDIR \ 99 TARGET_DIR=$$MYLIBBUILDDIR \
107 APPVERSION=\"rbutil\" \ 100 APPVERSION=\"rbutil\" \
108 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 101 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
109 $(MAKE) -C $$RBBASE_DIR/rbutil/mkamsboot libmkamsboot$$RBLIBPOSTFIX 102 $(MAKE) -C $$RBBASE_DIR/rbutil/mkamsboot libmkamsboot.a
110libmktccboot.commands = $$ADDENV \ 103libmktccboot.commands = $$ADDENV \
111 BUILD_DIR=$$MYLIBBUILDDIR/mktccboot/ \ 104 BUILD_DIR=$$MYLIBBUILDDIR/mktccboot/ \
112 TARGET_DIR=$$MYLIBBUILDDIR \ 105 TARGET_DIR=$$MYLIBBUILDDIR \
113 APPVERSION=\"rbutil\" \ 106 APPVERSION=\"rbutil\" \
114 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 107 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
115 $(MAKE) -C $$RBBASE_DIR/rbutil/mktccboot libmktccboot$$RBLIBPOSTFIX 108 $(MAKE) -C $$RBBASE_DIR/rbutil/mktccboot libmktccboot.a
116libmkmpioboot.commands = $$ADDENV \ 109libmkmpioboot.commands = $$ADDENV \
117 BUILD_DIR=$$MYLIBBUILDDIR/mkmpioboot/ \ 110 BUILD_DIR=$$MYLIBBUILDDIR/mkmpioboot/ \
118 TARGET_DIR=$$MYLIBBUILDDIR \ 111 TARGET_DIR=$$MYLIBBUILDDIR \
119 APPVERSION=\"rbutil\" \ 112 APPVERSION=\"rbutil\" \
120 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 113 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
121 $(MAKE) -C $$RBBASE_DIR/rbutil/mkmpioboot libmkmpioboot$$RBLIBPOSTFIX 114 $(MAKE) -C $$RBBASE_DIR/rbutil/mkmpioboot libmkmpioboot.a
122libchinachippatcher.commands = $$ADDENV \ 115libchinachippatcher.commands = $$ADDENV \
123 BUILD_DIR=$$MYLIBBUILDDIR/chinachippatcher/ \ 116 BUILD_DIR=$$MYLIBBUILDDIR/chinachippatcher/ \
124 TARGET_DIR=$$MYLIBBUILDDIR \ 117 TARGET_DIR=$$MYLIBBUILDDIR \
125 APPVERSION=\"rbutil\" \ 118 APPVERSION=\"rbutil\" \
126 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 119 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
127 $(MAKE) -C $$RBBASE_DIR/rbutil/chinachippatcher libchinachippatcher$$RBLIBPOSTFIX 120 $(MAKE) -C $$RBBASE_DIR/rbutil/chinachippatcher libchinachippatcher.a
128libmkimxboot.commands = $$ADDENV \ 121libmkimxboot.commands = $$ADDENV \
129 BUILD_DIR=$$MYLIBBUILDDIR/mkimxboot/ \ 122 BUILD_DIR=$$MYLIBBUILDDIR/mkimxboot/ \
130 TARGET_DIR=$$MYLIBBUILDDIR \ 123 TARGET_DIR=$$MYLIBBUILDDIR \
131 APPVERSION=\"rbutil\" \ 124 APPVERSION=\"rbutil\" \
132 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \ 125 CC=\"$$QMAKE_CC\" CFLAGS=\"$$MACHINEFLAGS\" AR=\"$$MYAR\" \
133 $(MAKE) -C $$RBBASE_DIR/rbutil/mkimxboot libmkimxboot$$RBLIBPOSTFIX 126 $(MAKE) -C $$RBBASE_DIR/rbutil/mkimxboot libmkimxboot.a
134# Note: order is important for RBLIBS! The libs are appended to the linker 127# Note: order is important for RBLIBS! The libs are appended to the linker
135# flags in this order, put libucl at the end. 128# flags in this order, put libucl at the end.
136RBLIBS = librbspeex libipodpatcher libsansapatcher libmkamsboot libmktccboot \ 129RBLIBS = librbspeex libipodpatcher libsansapatcher libmkamsboot libmktccboot \