Get beastpatcher working on OSX.
[kugel-rb.git] / utils / MTP / beastpatcher / Makefile
blobfad6a161e444ee0432cc7b7d66e8cc318f0d2eb4
1 CFLAGS=-Wall -W -DWITH_BOOTOBJS -I../../../tools
3 ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
4 OUTPUT=beastpatcher.exe
5 CROSS=
6 CFLAGS+=-mno-cygwin
7 else
8 ifeq ($(findstring MINGW,$(shell uname)),MINGW)
9 OUTPUT=beastpatcher.exe
10 CROSS=
11 else
12 OUTPUT=beastpatcher
13 CROSS=i586-mingw32msvc-
14 endif
15 endif
17 ifneq ($(findstring MINGW,$(shell uname)),MINGW)
18 LIBS = /usr/lib/libmtp.a /usr/lib/libusb.a
19 CFLAGS += $(shell printf \
20 '\#include <libmtp.h>\nlibmtp version: LIBMTP_VERSION\n' | \
21 gcc -E -P - -o - | grep -q '^libmtp version: 0\.2' && echo '-DOLDMTP')
22 CFLAGS += $(shell printf \
23 '\#include <libmtp.h>\nlibmtp version: LIBMTP_VERSION\n' | \
24 gcc -E -P - -o - | grep -q '^libmtp version: 0\.2\.[0-5]' && echo '-DREALLYOLDMTP')
25 endif
26 WINLIBS = ../MTP_DLL.dll
28 NATIVECC = gcc
29 CC = $(CROSS)gcc
31 all: $(OUTPUT)
33 SOURCES = beastpatcher.c bootimg.c mknkboot.c main.c
34 HEADERS = beastpatcher.h mtp_common.h bootimg.h mknkboot.h
35 OBJS = beastpatcher.o bootimg.o mknkboot.o main.o mtp_libmtp.o
36 MTPSRCS_W32 = mtp_win32.c
37 MTPSRCS_MTP = mtp_libmtp.c
39 beastpatcher: $(SOURCES) $(HEADERS) $(MTPSRCS_MTP)
40 gcc $(CFLAGS) -DBEASTPATCHER -o beastpatcher $(SOURCES) $(MTPSRCS_MTP) $(LIBS)
41 strip beastpatcher
43 beastpatcher.exe: $(SOURCES) $(HEADERS) $(MTPSRCS_W32) $(WINLIBS)
44 $(CC) $(CFLAGS) -DBEASTPATCHER -o beastpatcher.exe $(SOURCES) $(MTPSRCS_W32) $(WINLIBS)
45 $(CROSS)strip beastpatcher.exe
47 beastpatcher-mac: beastpatcher-i386 beastpatcher-ppc
48 lipo -create beastpatcher-ppc beastpatcher-i386 -output beastpatcher-mac
50 beastpatcher-i386: $(SOURCES) $(HEADERS) $(MTPSRCS_MTP) usb.h libmtp.h libusb-i386.a libmtp-i386.a
51 gcc -c -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch i386 $(CFLAGS) -I. -DBEASTPATCHER $(SOURCES) $(MTPSRCS_MTP)
52 gcc -framework iokit -framework coreservices -arch i386 -o beastpatcher-i386 $(OBJS) libusb-i386.a libmtp-i386.a -liconv
53 strip beastpatcher-i386
55 beastpatcher-ppc: $(SOURCES) $(HEADERS) $(MTPSRCS_MTP) usb.h libmtp.h libusb-ppc.a libmtp-ppc.a
56 gcc -c -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -arch ppc $(CFLAGS) -I. -DBEASTPATCHER $(SOURCES) $(MTPSRCS_MTP)
57 gcc -framework iokit -framework coreservices -arch ppc -o beastpatcher-ppc $(OBJS) libusb-ppc.a libmtp-ppc.a -liconv
58 strip beastpatcher-ppc
60 bin2c: ../../../rbutil/tools/bin2c.c
61 $(NATIVECC) $(CFLAGS) -o bin2c ../../../rbutil/tools/bin2c.c
63 bootimg.c: bootloader.bin bin2c
64 ./bin2c bootloader.bin bootimg
66 mknkboot: mknkboot.c
67 $(SILENT)$(NATIVECC) $(CFLAGS) $+ -o $@
68 clean:
69 rm -f beastpatcher.exe beastpatcher-mac beastpatcher-i386 beastpatcher-ppc beastpatcher bin2c bootimg.c bootimg.h mknkboot *~ *.o