Merge branch 'vuplus-1.6k' of code.vuplus.com:/opt/repository/openembedded into vuplu...
[vuplus_openembedded] / recipes / qte / qte-common_2.3.10.inc
1 DESCRIPTION = "Qt/Embedded Version ${PV}"
2 SECTION = "libs"
3 PRIORITY = "optional"
4 HOMEPAGE = "http://www.trolltech.com"
5 LICENSE = "GPL"
6 DEPENDS = "zlib libpng jpeg tslib uicmoc-native"
7 #DEPENDS_append_c7x0 = " sharp-aticore-oss"
8 PROVIDES = "virtual/libqte2"
9
10 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qte-${PV}"
11
12 # Workaround GCC 4.1 issues with -fvisibility-inlines-hidden (see #1521)
13 # by disabling it for qpe only. TODO: pinpoint actual issue causing GCC 
14 # misbehavior.
15 #
16 # Laibsch: Remove -fno-visibility-inlines-hidden instead of negating it
17 # Laibsch: Fixes bug 1631
18 #CXXFLAGS += "-fno-visibility-inlines-hidden"
19 CXXFLAGS := "${@oe_filter_out('-fvisibility-inlines-hidden', '${CXXFLAGS}', d)}"
20
21 SRC_URI = "ftp://ftp.trolltech.com/pub/qt/source/qt-embedded-${PV}-free.tar.gz;md5sum=1f7ad30113afc500cab7f5b2f4dec0d7 \
22            file://qpe.patch;patch=1 \
23            file://vt-switch.patch;patch=1 \
24            file://daemonize.patch;patch=1 \
25            file://no-moc.patch;patch=1 \
26            file://gcc3.patch;patch=1 \
27            file://gcc4.patch;patch=1 \
28            file://encoding.patch;patch=1 \
29            file://fix-qgfxraster.patch;patch=1 \
30            file://qt-visibility.patch;patch=1 \
31            file://tslib.patch;patch=1 \
32            file://handhelds.patch;patch=1 \
33            file://qiconview-speed.patch;patch=1 \
34            file://qtabbar.patch;patch=1 \
35            file://increase-qxml-robustness.patch;patch=1 \
36            file://qte-fix-iconsize.patch;patch=1 \
37            file://fix-linuxfb-setmode.patch;patch=1 \
38            file://fix-linuxfb-offscreenoverflow.patch;patch=1 \
39            file://fix-qscreen-sync.patch;patch=1 \
40            file://improve-calibration-r0.patch;patch=1 \
41            file://key.patch;patch=1 \
42            file://bidimetrics.patch;patch=5 \
43            file://fix-native-build.patch;patch=1 \
44            file://fix-errno-exception-spec.patch;patch=1 \
45            file://keyboardless-buttonmap.patch;patch=1 \
46            file://kernel-keymap.patch;patch=1 \
47            file://kernel-keymap-corgi.patch;patch=1 \
48            file://remove-unused-kbdhandler.patch;patch=1 \
49            file://disable-dup-rotation.patch;patch=1 \
50            file://fix-qte-asm-include.patch;patch=1 \
51            file://sharp_char.h \
52            file://switches.h "
53
54 #
55 # add device specific patches here
56 #
57
58 W100_ACCEL_PATCHES = "file://c7x0-w100-accel.patch;patch=1 \
59                       file://c7x0-w100-gcc4.patch;patch=1 \
60                       file://suspend-resume-hooks.patch;patch=1"
61
62 #SRC_URI_append_c7x0         = "${W100_ACCEL_PATCHES} "
63 #SRC_URI_append_spitz        = "file://spitz-adhoc-keypad-rotate.patch;patch=1 "
64 #SRC_URI_append_akita        = "file://spitz-adhoc-keypad-rotate.patch;patch=1 "
65
66 # "ipaqs" used to have this, but later were proven to at least work
67 # without it. Review again and see if has interesting bits to be applied
68 # universally.
69 #SRC_URI_append   = "file://ipaq_sound_fix.patch;patch=1 "
70
71
72 S = "${WORKDIR}/qt-${PV}"
73 export QTDIR = "${S}"
74
75 require qte-functions.inc
76 QTE_ARCH := "${@qte_arch(d)}"
77
78 #
79 # add device configuration here
80 #
81 EXTRA_OECONF_CONFIG = "-qconfig qpe"
82 #EXTRA_OECONF_CONFIG_c7x0 = "-qconfig qpe -accel-w100"
83 EXTRA_OECONF_CONFIG_native = "-qconfig qpe -qvfb"
84
85 EXTRA_OECONF = "-system-jpeg -system-libpng -system-zlib -no-qvfb -no-xft -no-vnc -gif \
86                 -xplatform ${TARGET_OS}-${QTE_ARCH}-g++ ${EXTRA_OECONF_CONFIG} -depths 8,16,32"
87 EXTRA_OEMAKE = "-e"
88
89 #
90 # add device flags here
91 #
92 EXTRA_DEFINES                   = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ"
93 #EXTRA_DEFINES_spitz            = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ -DQT_QWS_SLCXK"
94 #EXTRA_DEFINES_akita             = "-DQT_QWS_TSLIB -DQT_QWS_CUSTOM -DQT_QWS_IPAQ -DQT_QWS_SLCXK"
95
96 #
97 # don't touch anything below here
98 #
99 export SYSCONF_CC = "${CC}"
100 export SYSCONF_CXX = "${CXX}"
101 export SYSCONF_LINK = "${CCLD}"
102 export SYSCONF_SHLIB = "${CCLD}"
103 export SYSCONF_CFLAGS = "${CFLAGS}"
104 export SYSCONF_LINK_SHLIB = "${CCLD}"
105 export SYSCONF_CXXFLAGS = "${CXXFLAGS} -pipe -DQWS -fno-exceptions -frtti -DNO_DEBUG ${EXTRA_DEFINES} -DUSE_BIDI"
106 # enable if gcc supports visibility
107 #export SYSCONF_CXXFLAGS = "${CXXFLAGS} -pipe -DQWS -fno-exceptions -frtti -fvisibility=hidden -DGCC_SUPPORTS_VISIBILITY -DNO_DEBUG ${EXTRA_DEFINES} -DUSE_BIDI"
108 export SYSCONF_LFLAGS = "${LDFLAGS} -lts"
109 export SYSCONF_MOC = "${STAGING_BINDIR_NATIVE}/moc"
110 export SYSCONF_UIC = "${STAGING_BINDIR_NATIVE}/uic"
111
112 # generate uclibc and eabi configurations
113 do_configure() {
114         for f in ${S}/configs/linux-*-g++-shared; do
115                 sed -e 's,-linux-,-linux-uclibc-,g' < $f \
116                         > `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibc-,'`
117                 sed -e 's,-linux-,-linux-gnueabi-,g' < $f \
118                         > `dirname $f`/`basename $f | sed -e 's,linux-,linux-gnueabi-,'`
119                 sed -e 's,-linux-,-linux-uclibceabi-,g' < $f \
120                         > `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibceabi-,'`
121         done
122         echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qte failed. EXTRA_OECONF was ${EXTRA_OECONF}"
123 }
124
125 do_compile() {
126         unset CC LD CCLD CXX RANLIB AR STRIP CFLAGS LDFLAGS CXXFLAGS CPPFLAGS
127         install -d include/asm/ 
128         install -m 0644 ${WORKDIR}/sharp_char.h include/asm/
129         install -d include/linux/
130         install -m 0644 ${WORKDIR}/switches.h   include/linux/
131
132         # Create symlinks first and then compile the library
133         oe_runmake symlinks
134         oe_runmake src-mt sub-src
135 }
136
137 do_stage() {
138         rm -rf ${STAGING_DIR_HOST}/qt2
139         install -d ${STAGING_DIR_HOST}/qt2/lib
140         oe_libinstall -so -C lib lib${PN} ${STAGING_DIR_HOST}/qt2/lib
141         rm -f include/qxt.h
142         install -d ${STAGING_DIR_HOST}/qt2/include
143         cp -pfLR include/* ${STAGING_DIR_HOST}/qt2/include
144         cp -pPR lib/fonts ${STAGING_DIR_HOST}/qt2/lib/
145 }
146
147 do_install() {
148         oe_libinstall -so -C lib lib${PN} ${D}${libdir}
149
150         install -d ${D}/${includedir}/qte
151         install -m 0644 include/*.h ${D}/${includedir}/qte/
152 }
153
154 FILES_${PN} = "${libdir}/lib${PN}.so.*"
155 FILES_${PN}-dev = "${includedir}/* ${libdir}/lib${PN}.so"
156 FILES_${PN}-dbg += "${libdir}/.debug/"