source: gs2-extensions/iOS-3.x/trunk/Makefile

Last change on this file was 22603, checked in by davidb, 14 years ago

Initial cut as iOs 3.x version of Greenstone2.app

File size: 6.3 KB
Line 
1# Makefile for iPhone Application for iPhone gcc compiler (SDK Headers)
2# (Based on TabBarSample)
3#
4# Modified to work as an extension within:
5# <greensotne_home>/ext/iOS-3.x directory
6
7PROJECTNAME=Greenstone2
8APPFOLDER=$(PROJECTNAME).app
9MINIMUMVERSION:=3.2
10
11SDK=/var/toolchain/sys32
12
13CC=arm-apple-darwin9-gcc
14CXX=arm-apple-darwin9-g++
15LD=$(CXX)
16
17
18LDFLAGS = -arch arm -lobjc
19LDFLAGS += -framework UIKit
20LDFLAGS += -framework CoreGraphics
21LDFLAGS += -framework Foundation
22//LDFLAGS += -framework AVFoundation
23//LDFLAGS += -framework AddressBook
24//LDFLAGS += -framework AddressBookUI
25//LDFLAGS += -framework AudioToolbox
26//LDFLAGS += -framework AudioUnit
27//LDFLAGS += -framework CFNetwork
28//LDFLAGS += -framework CoreAudio
29//LDFLAGS += -framework CoreData
30//LDFLAGS += -framework CoreFoundation
31LDFLAGS += -framework CoreGraphics
32//LDFLAGS += -framework GraphicsServices
33//LDFLAGS += -framework CoreLocation
34//LDFLAGS += -framework ExternalAccessory
35//LDFLAGS += -framework GameKit
36//LDFLAGS += -framework IOKit
37//LDFLAGS += -framework MapKit
38//LDFLAGS += -framework MediaPlayer
39//LDFLAGS += -framework MessageUI
40//LDFLAGS += -framework MobileCoreServices
41//LDFLAGS += -framework OpenAL
42//LDFLAGS += -framework OpenGLES
43//LDFLAGS += -framework QuartzCore
44//LDFLAGS += -framework Security
45//LDFLAGS += -framework StoreKit
46//LDFLAGS += -framework System
47//LDFLAGS += -framework SystemConfiguration
48//LDFLAGS += -framework CoreSurface
49//LDFLAGS += -framework GraphicsServices
50//LDFLAGS += -framework Celestial
51//LDFLAGS += -framework WebCore
52//LDFLAGS += -framework WebKit
53//LDFLAGS += -framework SpringBoardUI
54//LDFLAGS += -framework TelephonyUI
55//LDFLAGS += -framework JavaScriptCore
56//LDFLAGS += -framework PhotoLibrary
57
58LDFLAGS += -L"$(SDK)/usr/lib"
59LDFLAGS += -F"$(SDK)/System/Library/Frameworks"
60LDFLAGS += -F"$(SDK)/System/Library/PrivateFrameworks"
61LDFLAGS += -bind_at_load
62LDFLAGS += -multiply_defined suppress
63LDFLAGS += -march=armv6
64LDFLAGS += -mcpu=arm1176jzf-s
65LDFLAGS += -mmacosx-version-min=10.5
66//LDFLAGS += -dynamiclib
67
68BUILDDIR=./build/$(MINIMUMVERSION)
69SRCDIR=./Classes
70RESDIR=./Resources
71
72OBJS=$(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m))
73OBJS+=$(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c))
74OBJS+=$(patsubst %.mm,%.o,$(wildcard $(SRCDIR)/*.mm))
75OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))
76OBJS+=$(patsubst %.mm,%.o,$(wildcard ./*.mm))
77
78PCH=$(wildcard *.pch)
79RESOURCES=$(wildcard ./*.png)
80RESOURCES+=$(wildcard $(RESDIR)/*)
81NIBS=$(patsubst %.xib,%.nib,$(wildcard Xib/*.xib))
82
83CFLAGS += -g -DDEBUG -D_DEBUG
84CFLAGS += -I"$(SDK)/usr/include"
85CFLAGS += -std=gnu99
86CFLAGS += -Diphoneos_version_min=$(MINIMUMVERSION)
87CFLAGS += -Wno-attributes -Wno-trigraphs -Wreturn-type -Wunused-variable
88CFLAGS += $(addprefix -I,$(SRCDIR))
89
90CXXFLAGS += -g -DDEBUG -D_DEBUG
91CXXFLAGS += -I"$(SDK)/usr/include"
92CXXFLAGS += -Diphoneos_version_min=$(MINIMUMVERSION)
93CXXFLAGS += -Wno-attributes -Wno-trigraphs -Wreturn-type -Wunused-variable
94CXXFLAGS += $(addprefix -I,$(SRCDIR))
95CXXFLAGS += -I"$(SDK)/usr/include/c++/4.2.1"
96CXXFLAGS += -I"$(SDK)/usr/include/c++/4.2.1/armv7-apple-darwin9"
97
98
99#--
100# Now for Greenstone specific flags
101#--
102
103GSDL_DIR = ../..
104GDBM_DIR = $(GSDL_DIR)/common-src/packages/gdbm
105
106INDEXERS_DIR = $(GSDL_DIR)/common-src/indexers
107PACKAGES_DIR = $(GSDL_DIR)/common-src/packages
108COMMONLIB_DIR = $(GSDL_DIR)/common-src/src/lib
109COLSERVR_DIR = $(GSDL_DIR)/runtime-src/src/colservr
110RECPTION_DIR = $(GSDL_DIR)/runtime-src/src/recpt
111PROTOCOL_DIR = $(GSDL_DIR)/runtime-src/src/protocol
112
113ENABLE_ACCENTFOLD = 1
114ifeq ($(ENABLE_ACCENTFOLD), 1)
115ACCENTFOLD_LIBS = $(INDEXERS_DIR)/packages/unac/libunac.a
116else
117ACCENTFOLD_LIBS =
118endif
119
120
121GSDL_CFLAGS = -I$(GDBM_DIR)/include \
122 -I$(INDEXERS_DIR)/mgpp/text \
123 -I$(COMMONLIB_DIR) \
124 -I$(PROTOCOL_DIR) -I$(COLSERVR_DIR) -I$(RECPTION_DIR)
125
126CFLAGS += $(GSDL_CFLAGS)
127CXXFLAGS += $(GSDL_CFLAGS)
128
129LDFLAGS += -L$(GDBM_DIR)/lib -lgdbm \
130 -L$(INDEXERS_DIR)/mg/src/text -lmgtext \
131 -L$(INDEXERS_DIR)/mg/lib -lmglib \
132 -L$(INDEXERS_DIR)/mgpp/text -lmgpptext \
133 -L$(INDEXERS_DIR)/mgpp/lib -lmgpplib \
134 $(COMMONLIB_DIR)/gsdllib.a \
135 $(PROTOCOL_DIR)/gsdlprotocol.a \
136 $(COLSERVR_DIR)/gsdlcolservr.a \
137 $(RECPTION_DIR)/gsdlrecpt.a \
138 $(ACCENTFOLD_LIBS) \
139 $(PACKAGES_DIR)/iconv/lib/libiconv.a \
140 -L$(PACKAGES_DIR)/expat/lib -lexpat \
141 -L/usr/local/lib -lgcc_eh
142
143# =======
144
145
146
147all: $(PROJECTNAME)
148
149$(PROJECTNAME): $(OBJS) Makefile
150 $(LD) -o $@ $(filter %.o,$^) $(LDFLAGS)
151
152# $(LD) $(LDFLAGS) $(filter %.o,$^) -o $@
153
154
155%.o: %.m %.h $(PCH) $(filter-out $(patsubst %.o,%.h,$(OBJS)), $(wildcard $(SRCDIR)/*.h))
156 $(CC) --include $(PCH) -c $(CFLAGS) $< -o $@
157
158%.o: %.m
159 $(CC) --include $(PCH) -c $(CFLAGS) $< -o $@
160
161%.o: %.c %.h $(PCH)
162 $(CC) --include $(PCH) -c $(CFLAGS) $< -o $@
163
164%.o: %.mm %.h $(PCH) $(filter-out $(patsubst %.o,%.h,$(OBJS)), $(wildcard $(SRCDIR)/*.h))
165 $(CXX) --include $(PCH) -c $(CXXFLAGS) $< -o $@
166
167%.o: %.mm
168 $(CXX) --include $(PCH) -c $(CXXFLAGS) $< -o $@
169
170%.o: %.cpp %.h $(PCH)
171 $(CXX) --include $(PCH) -c $(CXXFLAGS) $< -o $@
172
173dist: $(PROJECTNAME) Makefile $(PROJECTNAME)-Info.plist $(RESOURCES)
174 @rm -rf $(BUILDDIR)
175 @mkdir -p $(BUILDDIR)/$(APPFOLDER)
176ifneq ($(RESOURCES),)
177 @-cp -r $(RESOURCES) $(BUILDDIR)/$(APPFOLDER)
178 @-$(foreach DIR, .svn .DS_Store .git* , find $(BUILDDIR)/$(APPFOLDER) -name '$(DIR)' -prune -exec rm -rfv {} \;;)
179endif
180 @cp $(PROJECTNAME)-Info.plist $(BUILDDIR)/$(APPFOLDER)/Info.plist
181 @./plutil -key CFBundleExecutable -value $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)/Info.plist
182 @./plutil -key CFBundleDisplayName -value $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)/Info.plist
183 @./plutil -key CFBundleName -value $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)/Info.plist
184 @./plutil -key CFBundleIdentifier -value com.yourcompany.iphone.$(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)/Info.plist
185 @./plutil -UIDeviceFamily -array $(BUILDDIR)/$(APPFOLDER)/Info.plist
186 @./plutil -UIDeviceFamily -arrayadd -string 1 $(BUILDDIR)/$(APPFOLDER)/Info.plist
187 @./plutil -UIDeviceFamily -arrayadd -string 2 $(BUILDDIR)/$(APPFOLDER)/Info.plist
188 @./plutil -key NSMainNibFile -remove $(BUILDDIR)/$(APPFOLDER)/Info.plist
189 @echo "APPL????" > $(BUILDDIR)/$(APPFOLDER)/PkgInfo
190 ldid -S $(PROJECTNAME)
191 @mv $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)/
192
193install: dist
194 ./appinstall $(BUILDDIR)/$(APPFOLDER)
195
196distclean:
197 @rm -rf $(BUILDDIR)
198
199clean:
200 @rm -f $(OBJS)
201 @rm -rf $(BUILDDIR)
202 @rm -f $(PROJECTNAME)
203
204.PHONY: all dist install distclean clean
205
206
207
Note: See TracBrowser for help on using the repository browser.