/[gentoo-x86]/eclass/qt4-build.eclass
Gentoo

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.130 - (hide annotations) (download)
Tue May 22 13:41:59 2012 UTC (2 years, 3 months ago) by pesa
Branch: MAIN
Changes since 1.129: +6 -2 lines
Update SRC_URI for Qt 4.8.1 and later.

1 pesa 1.115 # Copyright 1999-2012 Gentoo Foundation
2 caleb 1.1 # Distributed under the terms of the GNU General Public License v2
3 pesa 1.130 # $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.129 2012/05/20 17:12:34 pesa Exp $
4 caleb 1.1
5     # @ECLASS: qt4-build.eclass
6     # @MAINTAINER:
7 pesa 1.98 # Qt herd <qt@gentoo.org>
8 ingmar 1.8 # @BLURB: Eclass for Qt4 split ebuilds.
9 caleb 1.1 # @DESCRIPTION:
10 pesa 1.98 # This eclass contains various functions that are used when building Qt4.
11 caleb 1.1
12 pesa 1.123 case ${EAPI} in
13     2|3|4) : ;;
14     *) die "qt4-build.eclass requires EAPI 2, 3 or 4." ;;
15     esac
16    
17 pesa 1.124 inherit base eutils flag-o-matic multilib toolchain-funcs versionator
18    
19     if [[ ${PV} == *9999* ]]; then
20     QT4_BUILD_TYPE="live"
21     inherit git-2
22     else
23     QT4_BUILD_TYPE="release"
24     fi
25    
26     HOMEPAGE="http://qt-project.org/ http://qt.nokia.com/"
27     LICENSE="|| ( LGPL-2.1 GPL-3 )"
28 caleb 1.1
29 abcd 1.59 MY_PV=${PV/_/-}
30 pesa 1.100 MY_P=qt-everywhere-opensource-src-${MY_PV}
31    
32 pesa 1.124 case ${QT4_BUILD_TYPE} in
33     live)
34     EGIT_REPO_URI="git://gitorious.org/qt/qt.git
35     https://git.gitorious.org/qt/qt.git"
36     EGIT_BRANCH="${PV%.9999}"
37     ;;
38     release)
39 pesa 1.130 if version_is_at_least 4.8.1; then
40     SRC_URI="http://releases.qt-project.org/qt4/source/${MY_P}.tar.gz"
41     else
42     SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz"
43     fi
44 pesa 1.124 ;;
45     esac
46 pesa 1.100
47     IUSE="aqua debug pch"
48 pesa 1.124 if [[ ${CATEGORY}/${PN} != x11-libs/qt-xmlpatterns ]]; then
49 pesa 1.100 IUSE+=" +exceptions"
50 pesa 1.124 fi
51     if version_is_at_least 4.8; then
52 hwoarang 1.96 IUSE+=" c++0x qpa"
53     fi
54    
55 pesa 1.127 DEPEND="virtual/pkgconfig"
56 pesa 1.124 if [[ ${QT4_BUILD_TYPE} == live ]]; then
57     DEPEND+=" dev-lang/perl"
58     fi
59    
60 hwoarang 1.36 RDEPEND="
61     !<x11-libs/qt-assistant-${PV}
62     !>x11-libs/qt-assistant-${PV}-r9999
63 pesa 1.125 !<x11-libs/qt-bearer-${PV}
64     !>x11-libs/qt-bearer-${PV}-r9999
65 hwoarang 1.36 !<x11-libs/qt-core-${PV}
66     !>x11-libs/qt-core-${PV}-r9999
67     !<x11-libs/qt-dbus-${PV}
68     !>x11-libs/qt-dbus-${PV}-r9999
69 pesa 1.100 !<x11-libs/qt-declarative-${PV}
70     !>x11-libs/qt-declarative-${PV}-r9999
71 hwoarang 1.36 !<x11-libs/qt-demo-${PV}
72     !>x11-libs/qt-demo-${PV}-r9999
73     !<x11-libs/qt-gui-${PV}
74     !>x11-libs/qt-gui-${PV}-r9999
75 wired 1.65 !<x11-libs/qt-multimedia-${PV}
76     !>x11-libs/qt-multimedia-${PV}-r9999
77 hwoarang 1.36 !<x11-libs/qt-opengl-${PV}
78     !>x11-libs/qt-opengl-${PV}-r9999
79 pesa 1.119 !<x11-libs/qt-openvg-${PV}
80     !>x11-libs/qt-openvg-${PV}-r9999
81 hwoarang 1.36 !<x11-libs/qt-phonon-${PV}
82     !>x11-libs/qt-phonon-${PV}-r9999
83     !<x11-libs/qt-qt3support-${PV}
84     !>x11-libs/qt-qt3support-${PV}-r9999
85     !<x11-libs/qt-script-${PV}
86     !>x11-libs/qt-script-${PV}-r9999
87     !<x11-libs/qt-sql-${PV}
88     !>x11-libs/qt-sql-${PV}-r9999
89     !<x11-libs/qt-svg-${PV}
90     !>x11-libs/qt-svg-${PV}-r9999
91     !<x11-libs/qt-test-${PV}
92     !>x11-libs/qt-test-${PV}-r9999
93     !<x11-libs/qt-webkit-${PV}
94     !>x11-libs/qt-webkit-${PV}-r9999
95     !<x11-libs/qt-xmlpatterns-${PV}
96     !>x11-libs/qt-xmlpatterns-${PV}-r9999
97     "
98 abcd 1.55
99 abcd 1.59 S=${WORKDIR}/${MY_P}
100 yngwin 1.25
101 hwoarang 1.34 # @FUNCTION: qt4-build_pkg_setup
102     # @DESCRIPTION:
103 pesa 1.109 # Sets up PATH and LD_LIBRARY_PATH.
104 caleb 1.1 qt4-build_pkg_setup() {
105 abcd 1.57 [[ ${EAPI} == 2 ]] && use !prefix && EPREFIX=
106    
107 yngwin 1.66 # Protect users by not allowing downgrades between releases
108     # Downgrading revisions within the same release should be allowed
109 pesa 1.100 if has_version '>'${CATEGORY}/${P}-r9999; then
110     if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
111 pesa 1.124 eerror
112 yngwin 1.66 eerror "Sanity check to keep you from breaking your system:"
113     eerror " Downgrading Qt is completely unsupported and will break your system!"
114 pesa 1.124 eerror
115 yngwin 1.66 die "aborting to save your system"
116     else
117     ewarn "Downgrading Qt is completely unsupported and will break your system!"
118     fi
119     fi
120 abcd 1.57
121 pesa 1.123 if [[ ${PN} == qt-webkit ]]; then
122 spatz 1.71 eshopts_push -s extglob
123 hwoarang 1.80 if is-flagq '-g?(gdb)?([1-9])'; then
124 spatz 1.71 echo
125 pesa 1.123 ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)."
126 spatz 1.71 ewarn "You may experience really long compilation times and/or increased memory usage."
127 pesa 1.123 ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug."
128 spatz 1.71 ewarn "For more info check out bug #307861"
129     echo
130     fi
131     eshopts_pop
132     fi
133    
134 abcd 1.55 PATH="${S}/bin${PATH:+:}${PATH}"
135 abcd 1.57 if [[ ${CHOST} != *-darwin* ]]; then
136     LD_LIBRARY_PATH="${S}/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}"
137     else
138     DYLD_LIBRARY_PATH="${S}/lib${DYLD_LIBRARY_PATH:+:}${DYLD_LIBRARY_PATH}"
139 yngwin 1.63 # On MacOS we *need* at least src/gui/kernel/qapplication_mac.mm for
140     # platform detection. Note: needs to come before any directories to
141     # avoid extract failure.
142     [[ ${CHOST} == *-apple-darwin* ]] && \
143 yngwin 1.66 QT4_EXTRACT_DIRECTORIES="src/gui/kernel/qapplication_mac.mm
144     ${QT4_EXTRACT_DIRECTORIES}"
145 abcd 1.57 fi
146 yngwin 1.20
147 abcd 1.55 if ! version_is_at_least 4.1 $(gcc-version); then
148 pesa 1.123 ewarn "Using a GCC version lower than 4.1 is not supported."
149 yngwin 1.20 fi
150 caleb 1.1 }
151    
152 hwoarang 1.34 # @ECLASS-VARIABLE: QT4_TARGET_DIRECTORIES
153     # @DESCRIPTION:
154 pesa 1.109 # Arguments for build_target_directories. Takes the directories in which the
155     # code should be compiled. This is a space-separated list.
156 hwoarang 1.34
157     # @ECLASS-VARIABLE: QT4_EXTRACT_DIRECTORIES
158     # @DESCRIPTION:
159 pesa 1.109 # Space-separated list including the directories that will be extracted from
160     # Qt tarball.
161 hwoarang 1.34
162     # @FUNCTION: qt4-build_src_unpack
163     # @DESCRIPTION:
164 pesa 1.109 # Unpacks the sources.
165 yngwin 1.20 qt4-build_src_unpack() {
166 hwoarang 1.42 setqtenv
167 pesa 1.112
168 pesa 1.124 case ${QT4_BUILD_TYPE} in
169     live)
170     git-2_src_unpack
171     ;;
172     release)
173     local tarball="${MY_P}.tar.gz" target= targets=
174     for target in configure LICENSE.GPL3 LICENSE.LGPL projects.pro \
175     src/{qbase,qt_targets,qt_install}.pri bin config.tests \
176     mkspecs qmake ${QT4_EXTRACT_DIRECTORIES}
177     do
178     targets+="${MY_P}/${target} "
179     done
180 ingmar 1.11
181 pesa 1.124 ebegin "Unpacking parts of ${tarball}:" ${targets//${MY_P}\/}
182     tar -xzf "${DISTDIR}/${tarball}" ${targets}
183     eend $? || die "failed to unpack"
184     ;;
185     esac
186 ingmar 1.11 }
187    
188 hwoarang 1.37 # @ECLASS-VARIABLE: PATCHES
189 pesa 1.110 # @DEFAULT_UNSET
190 hwoarang 1.37 # @DESCRIPTION:
191 pesa 1.110 # PATCHES array variable containing all various patches to be applied.
192     # This variable is expected to be defined in global scope of ebuild.
193     # Make sure to specify the full path. This variable is utilised in
194     # src_unpack/src_prepare phase, based on EAPI.
195 hwoarang 1.37 #
196 pesa 1.110 # @CODE
197     # PATCHES=( "${FILESDIR}/mypatch.patch"
198     # "${FILESDIR}/patches_folder/" )
199     # @CODE
200 hwoarang 1.34
201     # @FUNCTION: qt4-build_src_prepare
202     # @DESCRIPTION:
203     # Prepare the sources before the configure phase. Strip CFLAGS if necessary, and fix
204 pesa 1.109 # the build system in order to respect CFLAGS/CXXFLAGS/LDFLAGS specified in /etc/make.conf.
205 yngwin 1.20 qt4-build_src_prepare() {
206 hwoarang 1.42 setqtenv
207 pesa 1.124
208     if [[ ${QT4_BUILD_TYPE} == live ]]; then
209     QTDIR="." ./bin/syncqt || die "syncqt failed"
210     fi
211 vapier 1.94
212 pesa 1.123 if version_is_at_least 4.7; then
213 pesa 1.99 # fix libX11 dependency on non X packages
214 pesa 1.98 local nolibx11_pkgs="qt-core qt-dbus qt-script qt-sql qt-test qt-xmlpatterns"
215     has ${PN} ${nolibx11_pkgs} && qt_nolibx11
216 pesa 1.99
217     qt_assistant_cleanup
218 hwoarang 1.77 fi
219 wired 1.69
220 abcd 1.57 if use aqua; then
221     # provide a proper macx-g++-64
222     use x64-macos && ln -s macx-g++ mkspecs/$(qt_mkspecs_dir)
223    
224     sed -e '/^CONFIG/s:app_bundle::' \
225     -e '/^CONFIG/s:plugin_no_soname:plugin_with_soname absolute_library_soname:' \
226 pesa 1.109 -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
227 abcd 1.57 fi
228    
229 ingmar 1.7 if [[ ${PN} != qt-core ]]; then
230 pesa 1.100 skip_qmake_build
231     skip_project_generation
232 ingmar 1.7 symlink_binaries_to_buildtree
233     fi
234 hwoarang 1.24
235 pesa 1.120 if [[ ${CHOST} == *86*-apple-darwin* ]]; then
236 pesa 1.124 # qmake bus errors with -O2 or -O3 but -O1 works
237     # Bug 373061
238     replace-flags -O[23] -O1
239 abcd 1.57 fi
240 jer 1.97
241 hwoarang 1.21 # Bug 178652
242 abcd 1.55 if [[ $(gcc-major-version) == 3 ]] && use amd64; then
243 hwoarang 1.21 ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
244     append-flags -fno-gcse
245 gengor 1.18 fi
246    
247 pesa 1.100 if use_if_iuse c++0x; then
248 pesa 1.123 echo
249 hwoarang 1.96 ewarn "You are about to build Qt4 using the C++11 standard. Even though"
250     ewarn "this is an official standard, some of the reverse dependencies"
251     ewarn "may fail to compile or link againt the Qt4 libraries. Before"
252     ewarn "reporting a bug, make sure your bug is reproducible with c++0x"
253     ewarn "disabled."
254 pesa 1.123 echo
255 hwoarang 1.96 append-flags -std=c++0x
256     fi
257 pesa 1.98
258 gengor 1.30 # Unsupported old gcc versions - hardened needs this :(
259 pesa 1.120 if [[ $(gcc-major-version) -lt 4 ]]; then
260 gengor 1.30 ewarn "Appending -fno-stack-protector to CXXFLAGS"
261     append-cxxflags -fno-stack-protector
262     # Bug 253127
263 gengor 1.29 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \
264 pesa 1.109 -i mkspecs/common/g++.conf || die
265 gengor 1.29 fi
266    
267 ayoy 1.49 # Bug 261632
268     if use ppc64; then
269     ewarn "Appending -mminimal-toc to CFLAGS/CXXFLAGS"
270     append-flags -mminimal-toc
271     fi
272    
273 pesa 1.109 # Respect CC, CXX, {C,CXX,LD}FLAGS in .qmake.cache
274     sed -e "/^SYSTEM_VARIABLES=/i \
275     CC='$(tc-getCC)'\n\
276     CXX='$(tc-getCXX)'\n\
277     CFLAGS='${CFLAGS}'\n\
278     CXXFLAGS='${CXXFLAGS}'\n\
279     LDFLAGS='${LDFLAGS}'\n" \
280 pesa 1.114 -i configure \
281     || die "sed SYSTEM_VARIABLES failed"
282 pesa 1.98
283 pesa 1.113 # Respect CC, CXX, LINK and *FLAGS in config.tests
284     find config.tests/unix -name '*.test' -type f -print0 | xargs -0 \
285     sed -i -e "/bin\/qmake/ s: \"QT_BUILD_TREE=: \
286     'QMAKE_CC=$(tc-getCC)' 'QMAKE_CXX=$(tc-getCXX)' 'QMAKE_LINK=$(tc-getCXX)' \
287     'QMAKE_CFLAGS+=${CFLAGS}' 'QMAKE_CXXFLAGS+=${CXXFLAGS}' 'QMAKE_LFLAGS+=${LDFLAGS}'&:" \
288     || die "sed config.tests failed"
289 wired 1.67
290 pesa 1.128 if ! version_is_at_least 4.8; then
291     # Strip predefined CFLAGS from mkspecs (bugs 312689 and 352778)
292     sed -i -e '/^QMAKE_CFLAGS_RELEASE/s:+=.*:+=:' mkspecs/common/g++.conf || die
293     fi
294 pesa 1.114
295 hwoarang 1.24 # Bug 172219
296 pesa 1.113 sed -e 's:/X11R6/:/:' -i mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
297 ingmar 1.7
298 wired 1.67 if [[ ${CHOST} == *-darwin* ]]; then
299 abcd 1.57 # Set FLAGS *and* remove -arch, since our gcc-apple is multilib
300     # crippled (by design) :/
301 pesa 1.124 local mac_gpp_conf=
302     if [[ -f mkspecs/common/mac-g++.conf ]]; then
303     # qt < 4.8 has mac-g++.conf
304     mac_gpp_conf="mkspecs/common/mac-g++.conf"
305     elif [[ -f mkspecs/common/g++-macx.conf ]]; then
306     # qt >= 4.8 has g++-macx.conf
307     mac_gpp_conf="mkspecs/common/g++-macx.conf"
308     else
309     die "no known conf file for mac found"
310     fi
311 pesa 1.114 sed \
312     -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
313 abcd 1.57 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
314     -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=-headerpad_max_install_names ${LDFLAGS}:" \
315     -e "s:-arch\s\w*::g" \
316 pesa 1.124 -i ${mac_gpp_conf} \
317     || die "sed ${mac_gpp_conf} failed"
318 abcd 1.57
319     # Fix configure's -arch settings that appear in qmake/Makefile and also
320     # fix arch handling (automagically duplicates our -arch arg and breaks
321     # pch). Additionally disable Xarch support.
322 pesa 1.124 local mac_gcc_confs="${mac_gpp_conf}"
323     if [[ -f mkspecs/common/gcc-base-macx.conf ]]; then
324     mac_gcc_confs+=" mkspecs/common/gcc-base-macx.conf"
325     fi
326 abcd 1.57 sed \
327     -e "s:-arch i386::" \
328     -e "s:-arch ppc::" \
329     -e "s:-arch x86_64::" \
330     -e "s:-arch ppc64::" \
331     -e "s:-arch \$i::" \
332     -e "/if \[ ! -z \"\$NATIVE_64_ARCH\" \]; then/,/fi/ d" \
333     -e "s:CFG_MAC_XARCH=yes:CFG_MAC_XARCH=no:g" \
334     -e "s:-Xarch_x86_64::g" \
335     -e "s:-Xarch_ppc64::g" \
336 pesa 1.124 -i configure ${mac_gcc_confs} \
337 pesa 1.114 || die "sed -arch/-Xarch failed"
338 abcd 1.57
339     # On Snow Leopard don't fall back to 10.5 deployment target.
340 pesa 1.120 if [[ ${CHOST} == *-apple-darwin10 ]]; then
341 abcd 1.57 sed -e "s:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET.*:QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.6:g" \
342     -e "s:-mmacosx-version-min=10.[0-9]:-mmacosx-version-min=10.6:g" \
343 pesa 1.124 -i configure ${mac_gpp_conf} \
344 pesa 1.114 || die "sed deployment target failed"
345 abcd 1.57 fi
346     fi
347    
348     # this one is needed for all systems with a separate -liconv, apart from
349     # Darwin, for which the sources already cater for -liconv
350 pesa 1.120 if use !elibc_glibc && [[ ${CHOST} != *-darwin* ]]; then
351 pesa 1.114 sed -e 's|mac:\(LIBS += -liconv\)|\1|g' \
352 abcd 1.57 -i config.tests/unix/iconv/iconv.pro \
353 pesa 1.114 || die "sed iconv.pro failed"
354 abcd 1.57 fi
355    
356     # we need some patches for Solaris
357 pesa 1.114 sed -i -e '/^QMAKE_LFLAGS_THREAD/a\QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,' \
358 abcd 1.57 mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
359     # use GCC over SunStudio
360     sed -i -e '/PLATFORM=solaris-cc/s/cc/g++/' configure || die
361 pesa 1.114 # do not flirt with non-Prefix stuff, we're quite possessive
362 abcd 1.57 sed -i -e '/^QMAKE_\(LIB\|INC\)DIR\(_X11\|_OPENGL\|\)\t/s/=.*$/=/' \
363     mkspecs/$(qt_mkspecs_dir)/qmake.conf || die
364 pesa 1.113
365 hwoarang 1.37 base_src_prepare
366 ingmar 1.7 }
367    
368 hwoarang 1.34 # @FUNCTION: qt4-build_src_configure
369     # @DESCRIPTION:
370     # Default configure phase
371 yngwin 1.20 qt4-build_src_configure() {
372 hwoarang 1.42 setqtenv
373 pesa 1.121
374     local conf="
375     -prefix ${QTPREFIXDIR}
376     -bindir ${QTBINDIR}
377     -libdir ${QTLIBDIR}
378     -docdir ${QTDOCDIR}
379     -headerdir ${QTHEADERDIR}
380     -plugindir ${QTPLUGINDIR}
381     $(version_is_at_least 4.7 && echo -importdir ${QTIMPORTDIR})
382     -datadir ${QTDATADIR}
383     -translationdir ${QTTRANSDIR}
384     -sysconfdir ${QTSYSCONFDIR}
385     -examplesdir ${QTEXAMPLESDIR}
386     -demosdir ${QTDEMOSDIR}
387     -opensource -confirm-license
388     -shared -fast -largefile -stl -verbose
389     -nomake examples -nomake demos"
390    
391     # ARCH is set on Gentoo. Qt now falls back to generic on an unsupported
392     # $(tc-arch). Therefore we convert it to supported values.
393     case "$(tc-arch)" in
394     amd64|x64-*) conf+=" -arch x86_64" ;;
395     ppc-macos) conf+=" -arch ppc" ;;
396     ppc|ppc64|ppc-*) conf+=" -arch powerpc" ;;
397     sparc|sparc-*|sparc64-*) conf+=" -arch sparc" ;;
398     x86-macos) conf+=" -arch x86" ;;
399     x86|x86-*) conf+=" -arch i386" ;;
400     alpha|arm|ia64|mips|s390) conf+=" -arch $(tc-arch)" ;;
401     hppa|sh) conf+=" -arch generic" ;;
402     *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;;
403     esac
404    
405     conf+=" -platform $(qt_mkspecs_dir)"
406    
407     [[ $(get_libdir) != lib ]] && conf+=" -L${EPREFIX}/usr/$(get_libdir)"
408    
409     # debug/release
410     if use debug; then
411     conf+=" -debug"
412     else
413     conf+=" -release"
414     fi
415     conf+=" -no-separate-debug-info"
416    
417     # exceptions USE flag
418     conf+=" $(in_iuse exceptions && qt_use exceptions || echo -exceptions)"
419    
420     # disable RPATH on Qt >= 4.8 (bug 380415)
421     version_is_at_least 4.8 && conf+=" -no-rpath"
422    
423     # precompiled headers don't work on hardened, where the flag is masked
424     conf+=" $(qt_use pch)"
425    
426     # -reduce-relocations
427     # This flag seems to introduce major breakage to applications,
428     # mostly to be seen as a core dump with the message "QPixmap: Must
429     # construct a QApplication before a QPaintDevice" on Solaris.
430     # -- Daniel Vergien
431     [[ ${CHOST} != *-solaris* ]] && conf+=" -reduce-relocations"
432 ingmar 1.7
433 abcd 1.57 # this one is needed for all systems with a separate -liconv, apart from
434     # Darwin, for which the sources already cater for -liconv
435 pesa 1.120 if use !elibc_glibc && [[ ${CHOST} != *-darwin* ]]; then
436 pesa 1.121 conf+=" -liconv"
437 pesa 1.120 fi
438 abcd 1.57
439 pesa 1.98 if use_if_iuse glib; then
440 abcd 1.57 local glibflags="$(pkg-config --cflags --libs glib-2.0 gthread-2.0)"
441     # avoid the -pthread argument
442 pesa 1.121 conf+=" ${glibflags//-pthread}"
443 abcd 1.57 unset glibflags
444     fi
445    
446 pesa 1.98 if use_if_iuse qpa; then
447 pesa 1.123 echo
448 hwoarang 1.96 ewarn "The qpa useflag enables the Qt Platform Abstraction, formely"
449     ewarn "known as Qt Lighthouse. If you are not sure what that is, then"
450     ewarn "disable it before reporting any bugs related to this useflag."
451 pesa 1.123 echo
452 pesa 1.121 conf+=" -qpa"
453 hwoarang 1.96 fi
454    
455 pesa 1.120 if use aqua; then
456 abcd 1.57 # On (snow) leopard use the new (frameworked) cocoa code.
457 pesa 1.120 if [[ ${CHOST##*-darwin} -ge 9 ]]; then
458 pesa 1.121 conf+=" -cocoa -framework"
459 pesa 1.120 # We need the source's headers, not the installed ones.
460 pesa 1.121 conf+=" -I${S}/include"
461 pesa 1.120 # Add hint for the framework location.
462 pesa 1.121 conf+=" -F${QTLIBDIR}"
463 abcd 1.57
464     # We are crazy and build cocoa + qt3support :-)
465     if use qt3support; then
466     sed -e "/case \"\$PLATFORM,\$CFG_MAC_COCOA\" in/,/;;/ s|CFG_QT3SUPPORT=\"no\"|CFG_QT3SUPPORT=\"yes\"|" \
467 pesa 1.114 -i configure || die
468 abcd 1.57 fi
469 pesa 1.120 else
470 pesa 1.121 conf+=" -no-framework"
471 abcd 1.57 fi
472     else
473 pesa 1.121 # freetype2 include dir is non-standard, thus pass it to configure
474     conf+=" $(pkg-config --cflags-only-I freetype2)"
475 abcd 1.57 fi
476    
477 pesa 1.121 conf+=" ${myconf}"
478     myconf=
479    
480     echo ./configure ${conf}
481     ./configure ${conf} || die "./configure failed"
482 wired 1.90
483     prepare_directories ${QT4_TARGET_DIRECTORIES}
484 yngwin 1.20 }
485 ingmar 1.7
486 hwoarang 1.34 # @FUNCTION: qt4-build_src_compile
487 vapier 1.93 # @DESCRIPTION:
488     # Actual compile phase
489 yngwin 1.20 qt4-build_src_compile() {
490 hwoarang 1.42 setqtenv
491 yngwin 1.20
492 abcd 1.55 build_directories ${QT4_TARGET_DIRECTORIES}
493 caleb 1.1 }
494    
495 ayoy 1.76 # @FUNCTION: qt4-build_src_test
496     # @DESCRIPTION:
497     # Runs tests only in target directories.
498     qt4-build_src_test() {
499 pesa 1.118 # QtMultimedia does not have any test suite (bug #332299)
500 pesa 1.123 [[ ${PN} == qt-multimedia ]] && return
501 pesa 1.118
502 ayoy 1.76 for dir in ${QT4_TARGET_DIRECTORIES}; do
503     emake -j1 check -C ${dir}
504     done
505     }
506    
507 abcd 1.57 # @FUNCTION: fix_includes
508     # @DESCRIPTION:
509 pesa 1.109 # For MacOS X we need to add some symlinks when frameworks are
510 abcd 1.57 # being used, to avoid complications with some more or less stupid packages.
511     fix_includes() {
512 pesa 1.120 if use aqua && [[ ${CHOST##*-darwin} -ge 9 ]]; then
513 grobian 1.126 local frw dest f h rdir
514 abcd 1.57 # Some packages tend to include <Qt/...>
515     dodir "${QTHEADERDIR#${EPREFIX}}"/Qt
516    
517 grobian 1.126 # Fake normal headers when frameworks are installed... eases life later
518     # on, make sure we use relative links though, as some ebuilds assume
519     # these dirs exist in src_install to add additional files
520     f=${QTHEADERDIR}
521     h=${QTLIBDIR}
522     while [[ -n ${f} && ${f%%/*} == ${h%%/*} ]] ; do
523     f=${f#*/}
524     h=${h#*/}
525     done
526     rdir=${h}
527     f="../"
528     while [[ ${h} == */* ]] ; do
529     f="${f}../"
530     h=${h#*/}
531     done
532     rdir="${f}${rdir}"
533    
534 abcd 1.57 for frw in "${D}${QTLIBDIR}"/*.framework; do
535     [[ -e "${frw}"/Headers ]] || continue
536     f=$(basename ${frw})
537     dest="${QTHEADERDIR#${EPREFIX}}"/${f%.framework}
538 grobian 1.126 dosym "${rdir}"/${f}/Headers "${dest}"
539 abcd 1.57
540     # Link normal headers as well.
541     for hdr in "${D}/${QTLIBDIR}/${f}"/Headers/*; do
542     h=$(basename ${hdr})
543 grobian 1.126 dosym "../${rdir}"/${f}/Headers/${h} \
544     "${QTHEADERDIR#${EPREFIX}}"/Qt/${h}
545 abcd 1.57 done
546     done
547     fi
548     }
549    
550 hwoarang 1.34 # @FUNCTION: qt4-build_src_install
551     # @DESCRIPTION:
552     # Perform the actual installation including some library fixes.
553 caleb 1.4 qt4-build_src_install() {
554 abcd 1.57 [[ ${EAPI} == 2 ]] && use !prefix && ED=${D}
555 hwoarang 1.42 setqtenv
556 pesa 1.98
557 abcd 1.55 install_directories ${QT4_TARGET_DIRECTORIES}
558 ingmar 1.7 install_qconfigs
559 caleb 1.4 fix_library_files
560 abcd 1.57 fix_includes
561 pesa 1.98
562 hwoarang 1.78 # remove .la files since we are building only shared Qt libraries
563 pesa 1.114 find "${D}"${QTLIBDIR} -type f -name '*.la' -print0 | xargs -0 rm -f
564 caleb 1.4 }
565    
566 hwoarang 1.42 # @FUNCTION: setqtenv
567 pesa 1.110 # @INTERNAL
568 hwoarang 1.42 setqtenv() {
569     # Set up installation directories
570 abcd 1.57 QTPREFIXDIR=${EPREFIX}/usr
571     QTBINDIR=${EPREFIX}/usr/bin
572     QTLIBDIR=${EPREFIX}/usr/$(get_libdir)/qt4
573     QTPCDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig
574     QTDOCDIR=${EPREFIX}/usr/share/doc/qt-${PV}
575     QTHEADERDIR=${EPREFIX}/usr/include/qt4
576 hwoarang 1.42 QTPLUGINDIR=${QTLIBDIR}/plugins
577 abcd 1.104 QTIMPORTDIR=${QTLIBDIR}/imports
578 pesa 1.109 QTDATADIR=${EPREFIX}/usr/share/qt4
579     QTTRANSDIR=${QTDATADIR}/translations
580 abcd 1.57 QTSYSCONFDIR=${EPREFIX}/etc/qt4
581 hwoarang 1.42 QTEXAMPLESDIR=${QTDATADIR}/examples
582     QTDEMOSDIR=${QTDATADIR}/demos
583 pesa 1.109 QMAKE_LIBDIR_QT=${QTLIBDIR}
584 abcd 1.57 QT_INSTALL_PREFIX=${EPREFIX}/usr/$(get_libdir)/qt4
585 pesa 1.109
586 hwoarang 1.42 PLATFORM=$(qt_mkspecs_dir)
587 pesa 1.129 unset QMAKESPEC
588 hwoarang 1.42
589 pesa 1.129 export XDG_CONFIG_HOME="${T}"
590 hwoarang 1.42 }
591    
592 wired 1.90 # @FUNCTION: prepare_directories
593 hwoarang 1.34 # @USAGE: < directories >
594 pesa 1.110 # @INTERNAL
595 hwoarang 1.34 # @DESCRIPTION:
596 pesa 1.109 # Generates Makefiles for the given list of directories.
597 wired 1.90 prepare_directories() {
598 abcd 1.55 for x in "$@"; do
599 pesa 1.109 pushd "${S}"/${x} >/dev/null || die
600 pesa 1.98 einfo "Running qmake in: ${x}"
601 abcd 1.60 # avoid running over the maximum argument number, bug #299810
602     {
603     echo "${S}"/mkspecs/common/*.conf
604     find "${S}" -name '*.pr[io]'
605 abcd 1.104 } | xargs sed -i \
606     -e "s:\$\$\[QT_INSTALL_LIBS\]:${QTLIBDIR}:g" \
607     -e "s:\$\$\[QT_INSTALL_PLUGINS\]:${QTPLUGINDIR}:g" \
608     || die
609 ingmar 1.7 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed"
610 pesa 1.109 popd >/dev/null || die
611 wired 1.90 done
612     }
613    
614    
615     # @FUNCTION: build_directories
616     # @USAGE: < directories >
617 pesa 1.110 # @INTERNAL
618 wired 1.90 # @DESCRIPTION:
619 pesa 1.109 # Compiles the code in the given list of directories.
620 wired 1.90 build_directories() {
621     for x in "$@"; do
622 pesa 1.109 pushd "${S}"/${x} >/dev/null || die
623 wired 1.67 emake CC="$(tc-getCC)" \
624     CXX="$(tc-getCXX)" \
625     LINK="$(tc-getCXX)" || die "emake failed"
626 pesa 1.109 popd >/dev/null || die
627 caleb 1.1 done
628     }
629    
630 hwoarang 1.34 # @FUNCTION: install_directories
631     # @USAGE: < directories >
632 pesa 1.110 # @INTERNAL
633 hwoarang 1.34 # @DESCRIPTION:
634 pesa 1.109 # Runs emake install in the given directories, which are separated by spaces.
635 caleb 1.1 install_directories() {
636 abcd 1.55 for x in "$@"; do
637 pesa 1.109 pushd "${S}"/${x} >/dev/null || die
638 ingmar 1.7 emake INSTALL_ROOT="${D}" install || die "emake install failed"
639 pesa 1.109 popd >/dev/null || die
640 caleb 1.1 done
641     }
642    
643 ingmar 1.7 # @ECLASS-VARIABLE: QCONFIG_ADD
644     # @DESCRIPTION:
645     # List options that need to be added to QT_CONFIG in qconfig.pri
646 abcd 1.55 : ${QCONFIG_ADD:=}
647 ingmar 1.7
648     # @ECLASS-VARIABLE: QCONFIG_REMOVE
649     # @DESCRIPTION:
650     # List options that need to be removed from QT_CONFIG in qconfig.pri
651 abcd 1.55 : ${QCONFIG_REMOVE:=}
652 ingmar 1.7
653     # @ECLASS-VARIABLE: QCONFIG_DEFINE
654     # @DESCRIPTION:
655     # List variables that should be defined at the top of QtCore/qconfig.h
656 abcd 1.55 : ${QCONFIG_DEFINE:=}
657 ingmar 1.7
658 hwoarang 1.34 # @FUNCTION: install_qconfigs
659 pesa 1.110 # @INTERNAL
660 vapier 1.93 # @DESCRIPTION:
661 pesa 1.109 # Install gentoo-specific mkspecs configurations.
662 ingmar 1.7 install_qconfigs() {
663 zlin 1.9 local x
664     if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} ]]; then
665 ingmar 1.7 for x in QCONFIG_ADD QCONFIG_REMOVE; do
666     [[ -n ${!x} ]] && echo ${x}=${!x} >> "${T}"/${PN}-qconfig.pri
667     done
668 abcd 1.57 insinto ${QTDATADIR#${EPREFIX}}/mkspecs/gentoo
669 ingmar 1.7 doins "${T}"/${PN}-qconfig.pri || die "installing ${PN}-qconfig.pri failed"
670 zlin 1.9 fi
671 ingmar 1.7
672 zlin 1.9 if [[ -n ${QCONFIG_DEFINE} ]]; then
673 ingmar 1.7 for x in ${QCONFIG_DEFINE}; do
674     echo "#define ${x}" >> "${T}"/gentoo-${PN}-qconfig.h
675     done
676 abcd 1.57 insinto ${QTHEADERDIR#${EPREFIX}}/Gentoo
677 ingmar 1.7 doins "${T}"/gentoo-${PN}-qconfig.h || die "installing ${PN}-qconfig.h failed"
678     fi
679     }
680    
681 hwoarang 1.34 # @FUNCTION: generate_qconfigs
682 pesa 1.110 # @INTERNAL
683 vapier 1.93 # @DESCRIPTION:
684 pesa 1.109 # Generates gentoo-specific qconfig.{h,pri}.
685 ingmar 1.7 generate_qconfigs() {
686 pesa 1.123 if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} || -n ${QCONFIG_DEFINE} || ${PN} == qt-core ]]; then
687 ingmar 1.7 local x qconfig_add qconfig_remove qconfig_new
688     for x in "${ROOT}${QTDATADIR}"/mkspecs/gentoo/*-qconfig.pri; do
689     [[ -f ${x} ]] || continue
690 abcd 1.55 qconfig_add+=" $(sed -n 's/^QCONFIG_ADD=//p' "${x}")"
691     qconfig_remove+=" $(sed -n 's/^QCONFIG_REMOVE=//p' "${x}")"
692 ingmar 1.7 done
693    
694     # these error checks do not use die because dying in pkg_post{inst,rm}
695     # just makes things worse.
696     if [[ -e "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri ]]; then
697     # start with the qconfig.pri that qt-core installed
698     if ! cp "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri \
699     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
700     eerror "cp qconfig failed."
701     return 1
702     fi
703    
704     # generate list of QT_CONFIG entries from the existing list
705     # including qconfig_add and excluding qconfig_remove
706     for x in $(sed -n 's/^QT_CONFIG +=//p' \
707     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri) ${qconfig_add}; do
708 ssuominen 1.91 has ${x} ${qconfig_remove} || qconfig_new+=" ${x}"
709 ingmar 1.7 done
710    
711     # replace the existing QT_CONFIG list with qconfig_new
712     if ! sed -i -e "s/QT_CONFIG +=.*/QT_CONFIG += ${qconfig_new}/" \
713     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
714     eerror "Sed for QT_CONFIG failed"
715     return 1
716     fi
717    
718     # create Gentoo/qconfig.h
719     if [[ ! -e ${ROOT}${QTHEADERDIR}/Gentoo ]]; then
720     if ! mkdir -p "${ROOT}${QTHEADERDIR}"/Gentoo; then
721     eerror "mkdir ${QTHEADERDIR}/Gentoo failed"
722     return 1
723     fi
724     fi
725     : > "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
726     for x in "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-*-qconfig.h; do
727     [[ -f ${x} ]] || continue
728     cat "${x}" >> "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
729     done
730     else
731     rm -f "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri
732     rm -f "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
733     rmdir "${ROOT}${QTDATADIR}"/mkspecs \
734     "${ROOT}${QTDATADIR}" \
735     "${ROOT}${QTHEADERDIR}"/Gentoo \
736     "${ROOT}${QTHEADERDIR}" 2>/dev/null
737     fi
738     fi
739     }
740    
741 hwoarang 1.34 # @FUNCTION: qt4-build_pkg_postrm
742 vapier 1.93 # @DESCRIPTION:
743 pesa 1.109 # Regenerate configuration when the package is completely removed.
744 ingmar 1.7 qt4-build_pkg_postrm() {
745     generate_qconfigs
746 caleb 1.1 }
747    
748 hwoarang 1.34 # @FUNCTION: qt4-build_pkg_postinst
749 vapier 1.93 # @DESCRIPTION:
750 pesa 1.109 # Regenerate configuration, plus throw a message about possible
751 hwoarang 1.34 # breakages and proposed solutions.
752 ingmar 1.7 qt4-build_pkg_postinst() {
753     generate_qconfigs
754 caleb 1.1 }
755    
756 pesa 1.100 # @FUNCTION: skip_qmake_build
757 pesa 1.110 # @INTERNAL
758 hwoarang 1.34 # @DESCRIPTION:
759 pesa 1.109 # Patches configure to skip qmake compilation, as it's already installed by qt-core.
760 pesa 1.100 skip_qmake_build() {
761 pesa 1.109 sed -i -e "s:if true:if false:g" "${S}"/configure || die
762 caleb 1.1 }
763    
764 pesa 1.100 # @FUNCTION: skip_project_generation
765 pesa 1.110 # @INTERNAL
766 hwoarang 1.34 # @DESCRIPTION:
767 pesa 1.109 # Exit the script early by throwing in an exit before all of the .pro files are scanned.
768 pesa 1.100 skip_project_generation() {
769 pesa 1.109 sed -i -e "s:echo \"Finding:exit 0\n\necho \"Finding:g" "${S}"/configure || die
770 caleb 1.1 }
771    
772 hwoarang 1.34 # @FUNCTION: symlink_binaries_to_buildtree
773 pesa 1.110 # @INTERNAL
774 hwoarang 1.34 # @DESCRIPTION:
775 pesa 1.109 # Symlinks generated binaries to buildtree, so they can be used during compilation time.
776 ingmar 1.7 symlink_binaries_to_buildtree() {
777     for bin in qmake moc uic rcc; do
778 pesa 1.100 ln -s "${QTBINDIR}"/${bin} "${S}"/bin/ || die "symlinking ${bin} to ${S}/bin failed"
779 ingmar 1.7 done
780 caleb 1.1 }
781    
782 hwoarang 1.34 # @FUNCTION: fix_library_files
783 pesa 1.110 # @INTERNAL
784 hwoarang 1.34 # @DESCRIPTION:
785 pesa 1.109 # Fixes the paths in *.la, *.prl, *.pc, as they are wrong due to sandbox and
786     # moves the *.pc files into the pkgconfig directory.
787 caleb 1.1 fix_library_files() {
788 pesa 1.109 local libfile
789 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/{*.la,*.prl,pkgconfig/*.pc}; do
790     if [[ -e ${libfile} ]]; then
791 pesa 1.98 sed -i -e "s:${S}/lib:${QTLIBDIR}:g" ${libfile} || die "sed on ${libfile} failed"
792 ingmar 1.7 fi
793     done
794 caleb 1.1
795 pesa 1.109 # pkgconfig files refer to WORKDIR/bin as the moc and uic locations
796 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/pkgconfig/*.pc; do
797     if [[ -e ${libfile} ]]; then
798 pesa 1.109 sed -i -e "s:${S}/bin:${QTBINDIR}:g" ${libfile} || die "sed on ${libfile} failed"
799 caleb 1.1
800 abcd 1.55 # Move .pc files into the pkgconfig directory
801 abcd 1.57 dodir ${QTPCDIR#${EPREFIX}}
802 pesa 1.109 mv ${libfile} "${D}"/${QTPCDIR}/ || die "moving ${libfile} to ${D}/${QTPCDIR}/ failed"
803 ingmar 1.7 fi
804     done
805    
806     # Don't install an empty directory
807     rmdir "${D}"/${QTLIBDIR}/pkgconfig
808 caleb 1.1 }
809    
810 hwoarang 1.34 # @FUNCTION: qt_use
811     # @USAGE: < flag > [ feature ] [ enableval ]
812 yngwin 1.39 # @DESCRIPTION:
813 pesa 1.111 # This will echo "-${enableval}-${feature}" if <flag> is enabled, or
814     # "-no-${feature}" if it's disabled. If [feature] is not specified, <flag>
815 hwoarang 1.34 # will be used for that. If [enableval] is not specified, it omits the
816 pesa 1.111 # "-${enableval}" part.
817 caleb 1.1 qt_use() {
818 pesa 1.111 use "$1" && echo "${3:+-$3}-${2:-$1}" || echo "-no-${2:-$1}"
819 ingmar 1.7 }
820    
821 hwoarang 1.34 # @FUNCTION: qt_mkspecs_dir
822     # @RETURN: the specs-directory w/o path
823 yngwin 1.39 # @DESCRIPTION:
824 hwoarang 1.34 # Allows us to define which mkspecs dir we want to use.
825 caleb 1.1 qt_mkspecs_dir() {
826 pesa 1.109 local spec=
827 pesa 1.122
828     case "${CHOST}" in
829 caleb 1.5 *-freebsd*|*-dragonfly*)
830 abcd 1.55 spec=freebsd ;;
831 caleb 1.5 *-openbsd*)
832 abcd 1.55 spec=openbsd ;;
833 caleb 1.5 *-netbsd*)
834 abcd 1.55 spec=netbsd ;;
835 ingmar 1.7 *-darwin*)
836 abcd 1.57 if use aqua; then
837     # mac with carbon/cocoa
838     spec=macx
839     else
840     # darwin/mac with x11
841     spec=darwin
842     fi
843     ;;
844     *-solaris*)
845     spec=solaris ;;
846 caleb 1.5 *-linux-*|*-linux)
847 abcd 1.55 spec=linux ;;
848 caleb 1.5 *)
849 pesa 1.122 die "${FUNCNAME}(): Unknown CHOST '${CHOST}'" ;;
850 caleb 1.5 esac
851    
852 pesa 1.122 case "$(tc-getCXX)" in
853     *g++*)
854     spec+=-g++ ;;
855     *icpc*)
856     spec+=-icc ;;
857     *)
858     die "${FUNCNAME}(): Unknown compiler '$(tc-getCXX)'" ;;
859     esac
860 caleb 1.1
861 abcd 1.57 # Add -64 for 64bit profiles
862     if use x64-freebsd ||
863     use amd64-linux ||
864     use x64-macos ||
865     use x64-solaris ||
866     use sparc64-solaris
867     then
868     spec+=-64
869     fi
870    
871 caleb 1.5 echo "${spec}"
872 caleb 1.1 }
873    
874 hwoarang 1.77 # @FUNCTION: qt_assistant_cleanup
875 pesa 1.110 # @INTERNAL
876 hwoarang 1.77 # @DESCRIPTION:
877 pesa 1.99 # Tries to clean up tools.pro for qt-assistant ebuilds.
878     # Meant to be called in src_prepare().
879     # Since Qt 4.7.4 this function is a no-op.
880 hwoarang 1.77 qt_assistant_cleanup() {
881 pesa 1.99 # apply patching to qt-assistant ebuilds only
882 pesa 1.123 [[ ${PN} != qt-assistant ]] && return
883 pesa 1.99
884     # no longer needed for 4.7.4 and later
885 pesa 1.123 version_is_at_least 4.7.4 && return
886 pesa 1.99
887 hwoarang 1.77 # different versions (and branches...) may need different handling,
888     # add a case if you need special handling
889     case "${MY_PV_EXTRA}" in
890     *kde-qt*)
891     sed -e "/^[ \t]*porting/,/^[ \t]*win32.*activeqt$/d" \
892     -e "/mac/,/^embedded.*makeqpf$/d" \
893     -i tools/tools.pro || die "patching tools.pro failed"
894     ;;
895     *)
896     sed -e "/^[ \t]*porting/,/^[ \t]*win32.*activeqt$/d" \
897     -e "/mac/,/^embedded.*makeqpf$/d" \
898     -e "s/^\([ \t]*pixeltool\) /\1 qdoc3 /" \
899     -i tools/tools.pro || die "patching tools.pro failed"
900     ;;
901     esac
902     }
903    
904     # @FUNCTION: qt_nolibx11
905 pesa 1.110 # @INTERNAL
906 hwoarang 1.77 # @DESCRIPTION:
907 pesa 1.109 # Ignore X11 tests for packages that don't need X libraries installed.
908 hwoarang 1.77 qt_nolibx11() {
909     sed -i "/unixtests\/compile.test.*config.tests\/x11\/xlib/,/fi$/d" "${S}"/configure ||
910     die "x11 check sed failed"
911     }
912    
913 ayoy 1.76 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install src_test pkg_postrm pkg_postinst

  ViewVC Help
Powered by ViewVC 1.1.20