fix whitespace damage
[buildroot.git] / package / qtopia4 / qtopia4.mk
blob77dcd9ef8129d3c2f3f56feb34f5987e5b987174
1 ######################################################################
3 # qtopia4 (Qtopia Core 4)
4 # http://www.trolltech.com/
6 # This makefile composed by Thomas Lundquist <thomasez@zelow.no>
8 # BTW, this uses alot of FPU calls and it's pretty slow if you use
9 # the kernels FPU emulation so it's better to choose soft float in the
10 # buildroot config (and uClibc.config of course, if you have your own.)
12 ######################################################################
14 # BUG: In "OpenSuSE 10.2", dbus.h is at dbus-1.0/dbus/dbus.h
15 # instead of at "dbus/dbus.h"
16 # (cd /usr/include; sudo ln -s dbus-1.0/dbus dbus)
17 # to fix
19 QTOPIA4_VERSION:=4.3.2
20 QTOPIA4_CAT:=$(ZCAT)
22 BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME:=$(strip $(subst ",, $(BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME)))
23 #"))
24 BR2_PACKAGE_QTOPIA4_COMMERCIAL_PASSWORD:=$(strip $(subst ",, $(BR2_PACKAGE_QTOPIA4_COMMERCIAL_PASSWORD)))
25 #"))
27 # What to download, free or commercial version.
28 ifneq ($(BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME),)
30 QTOPIA4_SITE:=http://$(BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME):$(BR2_QTOPIA4_COMMERCIAL_PASSWORD)@dist.trolltech.com/$(BR2_PACKAGE_QTOPIA4_COMMERCIAL_USERNAME)
31 QTOPIA4_SOURCE:=qtopia-core-commercial-src-$(QTOPIA4_VERSION).tar.gz
32 QTOPIA4_TARGET_DIR:=$(BUILD_DIR)/qtopia-core-commercial-src-$(QTOPIA4_VERSION)
33 QTOPIA4_HOST_DIR:=$(TOOL_BUILD_DIR)/qtopia-core-commercial-src-$(QTOPIA4_VERSION)
35 else
37 # Good, good, we are free:
39 QTOPIA4_SITE=ftp://ftp.trolltech.com/qt/source/
40 QTOPIA4_SOURCE:=qtopia-core-opensource-src-$(QTOPIA4_VERSION).tar.gz
41 QTOPIA4_TARGET_DIR:=$(BUILD_DIR)/qtopia-core-opensource-src-$(QTOPIA4_VERSION)
42 QTOPIA4_HOST_DIR:=$(TOOL_BUILD_DIR)/qtopia-core-opensource-src-$(QTOPIA4_VERSION)
44 ifeq ($(BR2_PACKAGE_QTOPIA4_GPL_LICENSE_APPROVED),y)
45 QTOPIA4_APPROVE_GPL_LICENSE:=-confirm-license
46 endif
48 endif
50 # If you want extra tweaking you can copy
51 # $(QTOPIA4_TARGET_DIR)/src/corelib/global/qconfig-myfile.h
52 # to the qtopia4 packages directory (where this .mk file is) and
53 # remove the comment.
54 # QTOPIA4_QCONFIG_COMMAND:=-qconfig myfile
56 # For the options you can set in this file, look at
57 # $(QTOPIA4_TARGET_DIR)/src/corelib/global/qfeatures.txt
59 QTOPIA4_QCONFIG_FILE:=package/qtopia4/qconfig-myfile.h
60 QTOPIA4_QCONFIG_FILE_LOCATION:=/src/corelib/global/
62 ifeq ($(BR2_LARGEFILE),y)
63 QTOPIA4_LARGEFILE=-largefile
64 else
65 QTOPIA4_LARGEFILE=-no-largefile
66 endif
68 ifeq ($(BR2_PACKAGE_QTOPIA4_QT3SUPPORT),y)
69 QTOPIA4_QT3SUPPORT=-qt3support
70 else
71 QTOPIA4_QT3SUPPORT=-no-qt3support
72 endif
74 QTOPIA4_DEP_LIBS:=
75 ifeq ($(BR2_PACKAGE_JPEG),y)
76 QTOPIA4_DEP_LIBS+=jpeg
77 endif
78 ifeq ($(BR2_PACKAGE_LIBPNG),y)
79 QTOPIA4_DEP_LIBS+=libpng
80 endif
82 ifeq ($(BR2_PACKAGE_TSLIB),y)
83 #BUG: Qtopia refuse to recognize -qt-mouse-tslib
84 #QTOPIA4_TSLIB=-qt-mouse-tslib
85 QTOPIA4_DEP_LIBS+=tslib
86 QTOPIA4_TSLIB_DEB="-D TSLIBMOUSEHANDLER_DEBUG"
87 QTOPIA4_TSLIB_DEB:=$(strip $(subst ",, $(QTOPIA4_TSLIB_DEB)))
88 #"))
89 endif
91 ifeq ($(BR2_PACKAGE_QTOPIA4_DEBUG),y)
92 QTOPIA4_DEBUG="-debug $(QTOPIA4_TSLIB_DEB)"
93 else
94 QTOPIA4_DEBUG=-release
95 endif
97 ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
98 QTOPIA4_SHARED=-shared
99 else
100 QTOPIA4_SHARED=-static
101 endif
103 ifeq ($(BR2_ENDIAN),"LITTLE")
104 QTOPIA4_ENDIAN=-little-endian
105 else
106 QTOPIA4_ENDIAN=-big-endian
107 endif
109 ifeq ($(BR2_PACKAGE_QTOPIA4_DEPTHS),"")
110 QTOPIA4_DEPTHS=-depths 8
111 else
112 QTOPIA4_DEPTHS:=$(strip $(subst ",, $(BR2_PACKAGE_QTOPIA4_DEPTHS)))
113 #"))
114 endif
116 ifeq ($(BR2_PACKAGE_QTOPIA4_GIF),y)
117 QTOPIA4_GIF_LIB=-qt-gif
118 else
119 QTOPIA4_GIF_LIB=-no-gif
120 endif
122 ifeq ($(BR2_PACKAGE_QTOPIA4_LIBMNG),y)
123 QTOPIA4_MNG_LIB=-qt-libmng
124 else
125 QTOPIA4_MNG_LIB=-no-libmng
126 endif
128 ifeq ($(BR2_PACKAGE_QTOPIA4_QTZLIB),y)
129 QTOPIA4_ZLIB=-qt-zlib
130 endif
131 ifeq ($(BR2_PACKAGE_QTOPIA4_SYSTEMZLIB),y)
132 QTOPIA4_ZLIB=-system-zlib
133 else
134 QTOPIA4_ZLIB=-no-zlib
135 endif
137 ifeq ($(BR2_PACKAGE_QTOPIA4_QTJPEG),y)
138 QTOPIA4_JPEG=-qt-libjpeg
139 endif
140 ifeq ($(BR2_PACKAGE_QTOPIA4_SYSTEMJPEG),y)
141 QTOPIA4_JPEG=-system-libjpeg
142 else
143 QTOPIA4_JPEG=-no-libjpeg
144 endif
147 QTOPIA4_DEBUG:=$(strip $(subst ",, $(QTOPIA4_DEBUG)))
148 #"))
149 BR2_PACKAGE_QTOPIA4_EMB_PLATFORM:=$(strip $(subst ",, $(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)))
150 #"))
153 # Variable for other Qt applications to use
154 QTOPIA4_QMAKE:=$(QTOPIA4_TARGET_DIR)/bin/qmake
156 $(DL_DIR)/$(QTOPIA4_SOURCE):
157 $(WGET) -P $(DL_DIR) $(QTOPIA4_SITE)/$(QTOPIA4_SOURCE)
159 qtopia4-source: $(DL_DIR)/$(QTOPIA4_SOURCE)
162 $(QTOPIA4_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QTOPIA4_SOURCE)
163 $(QTOPIA4_CAT) $(DL_DIR)/$(QTOPIA4_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
164 toolchain/patch-kernel.sh $(QTOPIA4_TARGET_DIR) package/qtopia4/ \
165 qtopia-$(QTOPIA4_VERSION)-\*.patch\*
166 touch $@
168 # This configure is very tailored towards a specific need.
169 $(QTOPIA4_TARGET_DIR)/.configured: $(QTOPIA4_TARGET_DIR)/.unpacked
170 # Patching configure to get rid of some features I don't want.
171 # (I don't want SQL either but there is no option for that at all,
172 # the SQL library will be built even without the plugins/drivers).
173 ifneq ($(BR2_INET_IPV6),y)
174 $(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/' $(QTOPIA4_TARGET_DIR)/configure
175 $(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(QTOPIA4_TARGET_DIR)/configure
176 endif
177 $(SED) 's/^CFG_XINERAMA=auto/CFG_XINERAMA=no/' $(QTOPIA4_TARGET_DIR)/configure
178 $(SED) 's,-O2,$(TARGET_CFLAGS),' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
179 -[ -f $(QTOPIA4_QCONFIG_FILE) ] && cp $(QTOPIA4_QCONFIG_FILE) \
180 $(QTOPIA4_TARGET_DIR)/$(QTOPIA4_QCONFIG_FILE_LOCATION)
181 (cd $(QTOPIA4_TARGET_DIR); rm -rf config.cache; \
182 PATH=$(TARGET_PATH) \
183 QPEHOME=/usr \
184 QPEDIR=/usr \
185 ./configure \
186 -v \
187 -platform linux-g++ \
188 -embedded $(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM) \
189 -xplatform qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++ \
190 $(QTOPIA4_QCONFIG_COMMAND) \
191 $(QTOPIA4_DEBUG) \
192 $(QTOPIA4_SHARED) \
193 $(QTOPIA4_DEPTHS) \
194 -no-stl \
195 -no-cups \
196 -no-nis \
197 -no-freetype \
198 -no-accessibility \
199 $(QTOPIA4_MNG_LIB) \
200 $(QTOPIA4_GIF_LIB) \
201 $(QTOPIA4_JPEG) \
202 $(QTOPIA4_ZLIB) \
203 -no-sql-db2 \
204 -no-sql-ibase \
205 -no-sql-mysql \
206 -no-sql-oci \
207 -no-sql-odbc \
208 -no-sql-psql \
209 -no-sql-sqlite \
210 -no-sql-sqlite2 \
211 -no-sql-tds \
212 -prefix $(QTOPIA4_TARGET_DIR) \
213 -docdir $(QTOPIA4_TARGET_DIR)/doc \
214 -headerdir $(QTOPIA4_TARGET_DIR)/include \
215 -datadir $(QTOPIA4_TARGET_DIR) \
216 -plugindir $(QTOPIA4_TARGET_DIR)/plugins \
217 -translationdir $(QTOPIA4_TARGET_DIR)/translations \
218 -sysconfdir $(QTOPIA4_TARGET_DIR) \
219 -examplesdir $(QTOPIA4_TARGET_DIR)/examples \
220 -demosdir $(QTOPIA4_TARGET_DIR)/demos \
221 -fast \
222 -nomake examples \
223 -no-rpath \
224 $(QTOPIA4_QT3SUPPORT) \
225 $(QTOPIA4_TSLIB) \
226 $(QTOPIA4_LARGEFILE) \
227 $(QTOPIA4_ENDIAN) \
228 $(QTOPIA4_APPROVE_GPL_LICENSE) \
230 touch $@
232 $(QTOPIA4_TARGET_DIR)/.built: $(QTOPIA4_TARGET_DIR)/.configured
233 $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(QTOPIA4_TARGET_DIR) sub-src
234 touch $@
236 $(QTOPIA4_TARGET_DIR)/.installed: $(QTOPIA4_TARGET_DIR)/.built
237 mkdir -p $(TARGET_DIR)/usr/lib/fonts
238 touch $(TARGET_DIR)/usr/lib/fonts/fontdir
239 cp -dpf $(QTOPIA4_TARGET_DIR)/lib/fonts/helvetica*.qpf $(TARGET_DIR)/usr/lib/fonts
240 cp -dpf $(QTOPIA4_TARGET_DIR)/lib/fonts/fixed*.qpf $(TARGET_DIR)/usr/lib/fonts
241 cp -dpf $(QTOPIA4_TARGET_DIR)/lib/fonts/micro*.qpf $(TARGET_DIR)/usr/lib/fonts
242 ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
243 cp -dpf $(QTOPIA4_TARGET_DIR)/lib/libQt*.so.* $(TARGET_DIR)/usr/lib/
244 -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.$(QTOPIA4_VERSION)
245 endif
246 # Install image plugins if they are built
247 if [ -d $(QTOPIA4_TARGET_DIR)/plugins/imageformats ]; then \
248 mkdir -p $(TARGET_DIR)/usr/lib/qt4/plugins; \
249 cp -dpfr $(QTOPIA4_TARGET_DIR)/plugins/imageformats $(TARGET_DIR)/usr/lib/qt4/plugins; \
250 $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/qt4/plugins/imageformats/*; \
252 # Remove Sql libraries, not needed
253 -rm $(TARGET_DIR)/usr/lib/libQtSql*
254 # Remove Svg libraries, not needed
255 -rm $(TARGET_DIR)/usr/lib/libQtSvg*
256 # Fix compiler path
257 $(SED) '\,QMAKE_CC, c\QMAKE_CC = $(TARGET_CC)' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
258 $(SED) '\,QMAKE_CXX, c\QMAKE_CXX = $(TARGET_CXX)' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
259 $(SED) '\,QMAKE_LINK, c\QMAKE_LINK = $(TARGET_CXX)' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
260 $(SED) '\,QMAKE_LINK_SHLIB, c\QMAKE_LINK_SHLIB = $(TARGET_CXX)' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
261 $(SED) '\,QMAKE_AR, c\QMAKE_AR = $(TARGET_CROSS)ar cqs' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
262 $(SED) '\,QMAKE_RANLIB, c\QMAKE_RANLIB = $(TARGET_RANLIB)' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
263 $(SED) '\,QMAKE_STRIP, c\QMAKE_STRIP = $(TARGET_CROSS)strip' $(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
264 touch $@
267 qtopia4: uclibc zlib $(QTOPIA4_DEP_LIBS) $(QTOPIA4_TARGET_DIR)/.installed
269 qtopia4-clean:
270 -$(MAKE) -C $(QTOPIA4_TARGET_DIR) clean
272 qtopia4-dirclean:
273 rm -rf $(QTOPIA4_TARGET_DIR)
275 #############################################################
277 # Toplevel Makefile options
279 #############################################################
280 ifeq ($(BR2_PACKAGE_QTOPIA4),y)
281 TARGETS+=qtopia4
282 endif