-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile.template
137 lines (111 loc) · 4.3 KB
/
Makefile.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Makefile for iPhone Application for Xcode gcc compiler (SDK Headers)
#############################################################################
# SETTINGS
#############################################################################
# Project Settings
PROJECT_NAME=Bootlace
APP_FOLDER=$(PROJECT_NAME).app
INSTALL_FOLDER=$(PROJECT_NAME).app
# Your iPhone's IP address (in order to copy over the app)
IPHONE_IP=%IPHONE_IP%
# SDK Settings
SDK_PREFIX_PATH=%SDK_PREFIX_PATH%
SDK_VER=3.1.2
DARWIN_VER=%DARWIN_VER%
SDK=$(SDK_PREFIX_PATH)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(SDK_VER).sdk
IPHONEOS_PLATFORM=$(SDK_PREFIX_PATH)/Platforms/iPhoneOS.platform
# Depency Settings
ARCHIVE_HEADERS=%ARCHIVE_HEADERS%
ARCHIVE_STATIC_LIB=%ARCHIVE_STATIC_LIB%
KENNYTM_PRIVATE_FRAMEWORKS=%KENNYTM_PRIVATE_FRAMEWORKS%
#############################################################################
# DO NOT EDIT BELOW UNLESS NECESSARY
#############################################################################
CC=$(IPHONEOS_PLATFORM)/Developer/usr/bin/arm-apple-darwin$(DARWIN_VER)-gcc-4.2.1
CPP=$(IPHONEOS_PLATFORM)/Developer/usr/bin/arm-apple-darwin$(DARWIN_VER)-g++-4.2.1
LD=$(CC)
LDFLAGS += -framework CoreFoundation
LDFLAGS += -framework Foundation
LDFLAGS += -framework UIKit
LDFLAGS += -framework CoreGraphics
LDFLAGS += -framework AddressBookUI
LDFLAGS += -framework AddressBook
LDFLAGS += -framework QuartzCore
LDFLAGS += -framework GraphicsServices
//LDFLAGS += -framework CoreSurface
//LDFLAGS += -framework CoreAudio
//LDFLAGS += -framework Celestial
//LDFLAGS += -framework AudioToolbox
LDFLAGS += -framework WebCore
//LDFLAGS += -framework WebKit
//LDFLAGS += -framework SystemConfiguration
//LDFLAGS += -framework CFNetwork
//LDFLAGS += -framework MediaPlayer
//LDFLAGS += -framework OpenGLES
//LDFLAGS += -framework OpenAL
LDFLAGS += -L"$(SDK)/usr/lib"
LDFLAGS += -F"$(SDK)/System/Library/Frameworks"
LDFLAGS += -F"$(SDK)/System/Library/PrivateFrameworks"
CFLAGS += -I"$(IPHONEOS_PLATFORM)/Developer/usr/lib/gcc/arm-apple-darwin$(DARWIN_VER)/4.2.1/include/"
CFLAGS += -I"$(SDK)/usr/include"
CFLAGS += -I"$(IPHONEOS_PLATFORM)/Developer/usr/include/"
CFLAGS += -I"$(ARCHIVE_HEADERS)"
LDFLAGS += -lz
LDFLAGS += $(ARCHIVE_STATIC_LIB)
//LDFLAGS += -larchive
LDFLAGS += -lIOKit
CFLAGS += -IHeaders
CFLAGS += -DDEBUG -std=c99
CFLAGS += -Diphoneos_version_min=$(SDK_VER)
CFLAGS += -F"$(SDK)/System/Library/Frameworks"
CFLAGS += -F"$(SDK)/System/Library/PrivateFrameworks"
CFLAGS += -I"$(KENNYTM_PRIVATE_FRAMEWORKS)"
CPPFLAGS=$CFLAGS
BUILDDIR=./build/$(SDK_VER)
SRCDIR=./Classes
RESDIR=./Resources
OBJS=$(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m))
OBJS+=$(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c))
OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))
OBJS+=$(patsubst %.m,%.o,$(wildcard *.m))
PCH=$(wildcard *.pch)
RESOURCES=$(wildcard $(RESDIR)/*)
NIBS=$(patsubst %.xib,%.nib,$(wildcard *.xib))
all: $(PROJECT_NAME)
$(PROJECT_NAME): $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.m
$(CC) -c $(CFLAGS) $< -o $@
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
%.o: %.cpp
$(CPP) -c $(CPPFLAGS) $< -o $@
%.nib: %.xib
ibtool $< --compile $@
dist: $(PROJECT_NAME) $(NIBS)
rm -rf $(BUILDDIR)
mkdir -p $(BUILDDIR)/$(APP_FOLDER)
cp -r $(RESOURCES) $(BUILDDIR)/$(APP_FOLDER)
cp Info.plist $(BUILDDIR)/$(APP_FOLDER)/Info.plist
cp Bootlace_ $(BUILDDIR)/$(APP_FOLDER)/Bootlace_
@echo "APPL????" > $(BUILDDIR)/$(APP_FOLDER)/PkgInfo
mv $(NIBS) $(BUILDDIR)/$(APP_FOLDER)
export CODESIGN_ALLOCATE=$(IPHONEOS_PLATFORM)/Developer/usr/bin/codesign_allocate;
./ldid_intel -S $(PROJECT_NAME)
mv $(PROJECT_NAME) $(BUILDDIR)/$(APP_FOLDER)
install: dist
@echo "Going to install application onto remote iPhone via SSH and SCP (setup SSH keys if you have not)"
scp -r $(BUILDDIR)/$(APP_FOLDER) root@$(IPHONE_IP):/Applications/$(INSTALL_FOLDER)
@echo "Application $(INSTALL_FOLDER) installed, telling iPhone to respring..."
ssh root@$(IPHONE_IP) 'respring'
ssh root@$(IPHONE_IP) 'chmod +s /Applications/$(INSTALL_FOLDER)/Bootlace'
uninstall:
ssh root@$(IPHONE_IP) 'rm -fr /Applications/$(INSTALL_FOLDER); respring'
@echo "Application $(INSTALL_FOLDER) uninstalled, telling iPhone to respring..."
ssh root@$(IPHONE_IP) 'respring'
install_respring:
scp respring_arm root@$(IPHONE_IP):/usr/bin/respring
clean:
@rm -f $(SRCDIR)/*.o *.o
@rm -rf $(BUILDDIR)
@rm -f $(PROJECT_NAME)