diff options
-rw-r--r-- | rbutil/libtools.make | 27 | ||||
-rw-r--r-- | rbutil/rbutilqt/rbutilqt.pro | 25 |
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 | |||
42 | endif | 42 | endif |
43 | endif | 43 | endif |
44 | 44 | ||
45 | NATIVECC = gcc | 45 | NATIVECC ?= gcc |
46 | CC ?= gcc | 46 | CC ?= gcc |
47 | # OS X specifics. Needs to consider cross compiling for Windows. | ||
47 | ifeq ($(findstring Darwin,$(shell uname)),Darwin) | 48 | ifeq ($(findstring Darwin,$(shell uname)),Darwin) |
48 | ifneq ($(findstring mingw,$(CROSS)$(CC)),mingw) | 49 | ifneq ($(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. | ||
53 | CFLAGS += -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. |
51 | CC ?= gcc-4.0 | 56 | CC ?= 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 | ||
114 | ifeq ($(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 | ||
120 | endif | ||
121 | |||
122 | lib$(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 | ||
130 | clean: | 119 | clean: |
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 | ||
53 | message("Rockbox Base dir: "$$RBBASE_DIR) | 53 | message("Rockbox Base dir: "$$RBBASE_DIR) |
54 | 54 | ||
55 | # custom rules for rockbox-specific libs | ||
56 | !mac { | ||
57 | RBLIBPOSTFIX = .a | ||
58 | } | ||
59 | mac { | ||
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 |
87 | libucl.commands = $$ADDENV \ | 80 | libucl.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 |
92 | libipodpatcher.commands = $$ADDENV \ | 85 | libipodpatcher.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 |
98 | libsansapatcher.commands = $$ADDENV \ | 91 | libsansapatcher.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 |
104 | libmkamsboot.commands = $$ADDENV \ | 97 | libmkamsboot.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 |
110 | libmktccboot.commands = $$ADDENV \ | 103 | libmktccboot.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 |
116 | libmkmpioboot.commands = $$ADDENV \ | 109 | libmkmpioboot.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 |
122 | libchinachippatcher.commands = $$ADDENV \ | 115 | libchinachippatcher.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 |
128 | libmkimxboot.commands = $$ADDENV \ | 121 | libmkimxboot.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. |
136 | RBLIBS = librbspeex libipodpatcher libsansapatcher libmkamsboot libmktccboot \ | 129 | RBLIBS = librbspeex libipodpatcher libsansapatcher libmkamsboot libmktccboot \ |