]>
Commit | Line | Data |
---|---|---|
0263db76 | 1 | sdks := /Developer/Platforms/iPhoneOS.platform/Developer/SDKs |
ea958716 | 2 | ioss := $(sort $(patsubst $(sdks)/iPhoneOS%.sdk,%,$(wildcard $(sdks)/iPhoneOS*.sdk))) |
0263db76 | 3 | |
ea958716 | 4 | ios := $(word $(words $(ioss)),$(ioss)) |
670fdb01 | 5 | gcc := 4.2 |
c21004b9 JF |
6 | |
7 | flags := | |
8 | link := | |
9 | ||
d1ba8fd3 JF |
10 | ifeq (o,O) # gzip is actually better |
11 | dpkg := /Library/Cydia/bin/dpkg-deb | |
12 | ifeq ($(wildcard $(dpkg)),$(dpkg)) | |
13 | dpkg := $(dpkg) -zlzma | |
14 | else | |
15 | dpkg := dpkg-deb -zbzip2 | |
16 | endif | |
17 | else | |
c21004b9 | 18 | dpkg := dpkg-deb |
d1ba8fd3 | 19 | endif |
c21004b9 | 20 | |
0263db76 | 21 | sdk := $(sdks)/iPhoneOS$(ios).sdk |
ee4120ad JF |
22 | |
23 | flags += -F$(sdk)/System/Library/PrivateFrameworks | |
c21004b9 JF |
24 | flags += -I. -isystem sysroot/usr/include -Lsysroot/usr/lib |
25 | flags += -Wall -Werror -Wno-deprecated-declarations | |
26 | flags += -fmessage-length=0 | |
27 | flags += -g0 -O2 | |
7c8912f8 JF |
28 | flags += -fobjc-exceptions |
29 | ||
30 | xflags := | |
31 | xflags += -fobjc-call-cxx-cdtors | |
c21004b9 JF |
32 | |
33 | link += -framework CoreFoundation | |
34 | link += -framework CoreGraphics | |
35 | link += -framework Foundation | |
36 | link += -framework GraphicsServices | |
37 | link += -framework IOKit | |
38 | link += -framework JavaScriptCore | |
39 | link += -framework QuartzCore | |
0e371502 | 40 | link += -framework SpringBoardServices |
c21004b9 | 41 | link += -framework SystemConfiguration |
c21004b9 JF |
42 | link += -framework WebCore |
43 | link += -framework WebKit | |
44 | ||
45 | link += -lapr-1 | |
46 | link += -lapt-pkg | |
47 | link += -lpcre | |
48 | ||
49 | link += -multiply_defined suppress | |
5f6bff8c | 50 | |
e17a8c4f JF |
51 | uikit := |
52 | uikit += -framework UIKit | |
53 | ||
54 | backrow := | |
55 | backrow += -FAppleTV -framework BackRow -framework AppleTV | |
56 | ||
f9ba524a JF |
57 | version := $(shell ./version.sh) |
58 | ||
ee4120ad | 59 | #cycc = cycc -r4.2 -i$(ios) -o$@ |
89b0ea4a | 60 | gxx := /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-$(gcc) |
435cb857 | 61 | cycc = $(gxx) -mthumb -arch armv6 -o $@ -mcpu=arm1176jzf-s -miphoneos-version-min=2.0 -isysroot $(sdk) -idirafter /usr/include -F{sysroot,}/Library/Frameworks |
ee4120ad | 62 | |
7c8912f8 JF |
63 | flags += -DCYDIA_VERSION='"$(version)"' |
64 | ||
65 | dirs := Menes CyteKit Cydia SDURLCache | |
66 | ||
67 | code := $(foreach dir,$(dirs),$(wildcard $(foreach ext,h hpp c cpp m mm,$(dir)/*.$(ext)))) | |
68 | code := $(filter-out SDURLCache/SDURLCacheTests.m,$(code)) | |
69 | code += MobileCydia.mm iPhonePrivate.h Cytore.hpp lookup3.c | |
70 | ||
71 | source := $(filter %.m,$(code)) $(filter %.mm,$(code)) | |
72 | source += $(filter %.c,$(code)) $(filter %.cpp,$(code)) | |
73 | header := $(filter %.h,$(code)) $(filter %.hpp,$(code)) | |
74 | ||
75 | object := $(source) | |
76 | object := $(object:.c=.o) | |
77 | object := $(object:.cpp=.o) | |
78 | object := $(object:.m=.o) | |
79 | object := $(object:.mm=.o) | |
80 | object := $(object:%=Objects/%) | |
81 | ||
e17a8c4f | 82 | all: MobileCydia |
dc5812ec | 83 | |
5f6bff8c | 84 | clean: |
e17a8c4f | 85 | rm -f MobileCydia |
7c8912f8 JF |
86 | rm -rf Objects/ |
87 | ||
88 | Objects/%.o: %.c $(header) | |
89 | @mkdir -p $(dir $@) | |
90 | @echo "[cycc] $<" | |
91 | @$(cycc) -c -o $@ -x c $< | |
92 | ||
93 | Objects/%.o: %.m $(header) | |
94 | @mkdir -p $(dir $@) | |
95 | @echo "[cycc] $<" | |
96 | @$(cycc) -c -o $@ $< $(flags) | |
5f6bff8c | 97 | |
7c8912f8 JF |
98 | Objects/%.o: %.mm $(header) |
99 | @mkdir -p $(dir $@) | |
100 | @echo "[cycc] $<" | |
101 | @$(cycc) -c -o $@ $< $(flags) $(xflags) | |
e95a1972 | 102 | |
8a2c6d14 JF |
103 | sysroot: |
104 | @echo "Please read compiling.txt: you do not have a ./sysroot/ folder with the on-device requirements." 1>&2 | |
105 | @echo 1>&2 | |
106 | @exit 1 | |
107 | ||
7c8912f8 JF |
108 | MobileCydia: sysroot $(object) |
109 | @echo "[link] $(object:Objects/%=%)" | |
110 | @$(cycc) $(filter %.o,$^) $(flags) $(link) $(uikit) | |
111 | @echo "[sign] $@" | |
112 | @ldid -Slaunch.xml $@ || { rm -f $@ && false; } | |
03c0f7a9 | 113 | |
e17a8c4f JF |
114 | CydiaAppliance: CydiaAppliance.mm |
115 | $(cycc) $(filter %.mm,$^) $(flags) -bundle $(link) $(backrow) | |
116 | ||
117 | package: MobileCydia | |
7e2bd591 | 118 | sudo rm -rf _ |
03c0f7a9 JF |
119 | mkdir -p _/var/lib/cydia |
120 | ||
121 | mkdir -p _/usr/libexec | |
c21004b9 | 122 | cp -a Library _/usr/libexec/cydia |
7e2bd591 | 123 | cp -a sysroot/usr/bin/du _/usr/libexec/cydia |
03c0f7a9 JF |
124 | |
125 | mkdir -p _/System/Library | |
c21004b9 | 126 | cp -a LaunchDaemons _/System/Library/LaunchDaemons |
03c0f7a9 JF |
127 | |
128 | mkdir -p _/Applications | |
e17a8c4f JF |
129 | cp -a MobileCydia.app _/Applications/Cydia.app |
130 | cp -a MobileCydia _/Applications/Cydia.app/MobileCydia | |
131 | ||
132 | #mkdir -p _/Applications/Lowtide.app/Appliances | |
133 | #cp -a Cydia.frappliance _/Applications/Lowtide.app/Appliances | |
134 | #cp -a CydiaAppliance _/Applications/Lowtide.app/Appliances/Cydia.frappliance | |
03c0f7a9 | 135 | |
03c0f7a9 | 136 | mkdir -p _/DEBIAN |
3adcfba7 | 137 | ./control.sh _ >_/DEBIAN/control |
03c0f7a9 | 138 | |
7fc02989 JF |
139 | find _ -name '*.png' -exec ./pngcrush.sh '{}' ';' |
140 | ||
7e2bd591 JF |
141 | sudo chown -R 0 _ |
142 | sudo chgrp -R 0 _ | |
e17a8c4f | 143 | sudo chmod 6755 _/Applications/Cydia.app/MobileCydia |
7e2bd591 | 144 | |
3adcfba7 | 145 | mkdir -p debs |
f9ba524a | 146 | ln -sf debs/cydia_$(version)_iphoneos-arm.deb Cydia.deb |
3adcfba7 | 147 | $(dpkg) -b _ Cydia.deb |
ce0372db | 148 | @echo "$$(stat -L -f "%z" Cydia.deb) $$(stat -f "%Y" Cydia.deb)" |
8cc774c5 JF |
149 | |
150 | .PHONY: all clean sign |