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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (hide annotations) (download)
Wed Mar 4 20:37:08 2009 UTC (5 years, 6 months ago) by yngwin
Branch: MAIN
Changes since 1.24: +8 -4 lines
Updating qt4-build.eclass for 4.5.0 release

1 yngwin 1.20 # Copyright 2007-2009 Gentoo Foundation
2 caleb 1.1 # Distributed under the terms of the GNU General Public License v2
3 yngwin 1.25 # $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.24 2009/02/15 00:11:50 hwoarang Exp $
4 caleb 1.1
5     # @ECLASS: qt4-build.eclass
6     # @MAINTAINER:
7 yngwin 1.25 # Ben de Groot <yngwin@gentoo.org>,
8     # Markos Chandras <hwoarang@gentoo.org>,
9 caleb 1.1 # Caleb Tennis <caleb@gentoo.org>
10 ingmar 1.8 # @BLURB: Eclass for Qt4 split ebuilds.
11 caleb 1.1 # @DESCRIPTION:
12     # This eclass contains various functions that are used when building Qt4
13    
14 yngwin 1.20 inherit eutils multilib toolchain-funcs flag-o-matic versionator
15 caleb 1.1
16 yngwin 1.20 IUSE="${IUSE} custom-cxxflags debug pch"
17 caleb 1.1
18 ingmar 1.7 case "${PV}" in
19 yngwin 1.20 4.?.?_rc*)
20 ingmar 1.11 SRCTYPE="${SRCTYPE:-opensource-src}"
21     MY_PV="${PV/_rc/-rc}"
22     ;;
23 ingmar 1.7 *)
24     SRCTYPE="${SRCTYPE:-opensource-src}"
25     MY_PV="${PV}"
26     ;;
27     esac
28 ingmar 1.11 MY_P=qt-x11-${SRCTYPE}-${MY_PV}
29     S=${WORKDIR}/${MY_P}
30 ingmar 1.7
31 yngwin 1.20 HOMEPAGE="http://www.qtsoftware.com/"
32 yngwin 1.25 SRC_URI="http://download.qtsoftware.com/qt/source/${MY_P}.tar.bz2"
33 ingmar 1.11
34     case "${PV}" in
35 yngwin 1.20 4.4.?) SRC_URI="${SRC_URI} mirror://gentoo/${MY_P}-headers.tar.bz2" ;;
36     *) ;;
37 ingmar 1.11 esac
38 ingmar 1.7
39 yngwin 1.25 if version_is_at_least 4.5 ${PV} ; then
40     LICENSE="|| ( LGPL-2.1 GPL-3 )"
41     fi
42    
43 caleb 1.1 qt4-build_pkg_setup() {
44 yngwin 1.20 # EAPI=2 ebuilds set use-deps, others need this:
45     if [[ $EAPI != 2 ]]; then
46     # Make sure debug setting corresponds with qt-core (bug 258512)
47     if [[ $PN != "qt-core" ]]; then
48     use debug && QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK}
49     ~x11-libs/qt-core-${PV} debug"
50     fi
51    
52     # Check USE requirements
53     qt4-build_check_use
54     fi
55 ingmar 1.7
56 caleb 1.1 # Set up installation directories
57 caleb 1.5 QTBASEDIR=/usr/$(get_libdir)/qt4
58     QTPREFIXDIR=/usr
59     QTBINDIR=/usr/bin
60     QTLIBDIR=/usr/$(get_libdir)/qt4
61     QTPCDIR=/usr/$(get_libdir)/pkgconfig
62     QTDATADIR=/usr/share/qt4
63 caleb 1.6 QTDOCDIR=/usr/share/doc/qt-${PV}
64 caleb 1.5 QTHEADERDIR=/usr/include/qt4
65     QTPLUGINDIR=${QTLIBDIR}/plugins
66     QTSYSCONFDIR=/etc/qt4
67     QTTRANSDIR=${QTDATADIR}/translations
68     QTEXAMPLESDIR=${QTDATADIR}/examples
69     QTDEMOSDIR=${QTDATADIR}/demos
70 caleb 1.1
71 caleb 1.5 PLATFORM=$(qt_mkspecs_dir)
72 caleb 1.1
73     PATH="${S}/bin:${PATH}"
74     LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}"
75 yngwin 1.20
76     if ! version_is_at_least 4.1 $(gcc-version) ; then
77     ewarn "Using a GCC version lower than 4.1 is not supported!"
78     echo
79     ebeep 5
80     fi
81 hwoarang 1.21
82     if use custom-cxxflags; then
83     echo
84     ewarn "You have set USE=custom-cxxflags, which means Qt will be built with the"
85     ewarn "CXXFLAGS you have set in /etc/make.conf. This is not supported, and we"
86     ewarn "recommend to unset this useflag. But you are free to experiment with it."
87     ewarn "Just do not start crying if it breaks your system, or eats your kitten"
88     ewarn "for breakfast. ;-) "
89     echo
90     fi
91    
92 caleb 1.1 }
93    
94 yngwin 1.20 qt4-build_src_unpack() {
95 ingmar 1.11 local target targets
96 yngwin 1.15 for target in configure LICENSE.{GPL2,GPL3} projects.pro \
97 ingmar 1.11 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \
98 ingmar 1.13 ${QT4_EXTRACT_DIRECTORIES}; do
99 ingmar 1.11 targets="${targets} ${MY_P}/${target}"
100     done
101    
102     echo tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
103     tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
104    
105     case "${PV}" in
106 yngwin 1.20 4.4.?)
107 ingmar 1.11 echo tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
108     tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
109     ;;
110     esac
111 yngwin 1.20
112     # Be backwards compatible for now
113     if [[ $EAPI != 2 ]]; then
114     qt4-build_src_prepare
115     fi
116 ingmar 1.11 }
117    
118 yngwin 1.20 qt4-build_src_prepare() {
119     cd "${S}"
120    
121 ingmar 1.7 if [[ ${PN} != qt-core ]]; then
122     skip_qmake_build_patch
123     skip_project_generation_patch
124     symlink_binaries_to_buildtree
125     fi
126 hwoarang 1.24
127 hwoarang 1.22 if ! use custom-cxxflags;then
128 hwoarang 1.21 # Don't let the user go too overboard with flags.
129     strip-flags
130     replace-flags -O3 -O2
131     fi
132 ingmar 1.7
133 gengor 1.18 # Bug 253127
134 hwoarang 1.21 # Unsupported old gcc versions - hardened needs this :(
135 gengor 1.18 if [[ $(gcc-major-version) -lt "4" ]] ; then
136 hwoarang 1.21 ewarn "Appending -fno-stack-protector to CXXFLAGS"
137     append-cxxflags -fno-stack-protector
138     fi
139    
140     # Bug 178652
141     if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then
142     ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
143     append-flags -fno-gcse
144 gengor 1.18 fi
145    
146 hwoarang 1.24 # Bug 172219
147 ingmar 1.7 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
148     -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
149     -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
150     -e "s:X11R6/::" \
151     -i "${S}"/mkspecs/$(qt_mkspecs_dir)/qmake.conf || die "sed ${S}/mkspecs/$(qt_mkspecs_dir)/qmake.conf failed"
152    
153     sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
154     -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
155     -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
156     -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed"
157 hwoarang 1.21
158 ingmar 1.7 }
159    
160 yngwin 1.20 qt4-build_src_configure() {
161 ingmar 1.10
162 ingmar 1.7 myconf="$(standard_configure_options) ${myconf}"
163    
164     echo ./configure ${myconf}
165     ./configure ${myconf} || die "./configure failed"
166 yngwin 1.20 }
167 ingmar 1.7
168 yngwin 1.20 qt4-build_src_compile() {
169     # Be backwards compatible for now
170     if [[ $EAPI != 2 ]]; then
171     qt4-build_src_configure
172     fi
173    
174     build_directories "${QT4_TARGET_DIRECTORIES}"
175 caleb 1.1 }
176    
177 caleb 1.4 qt4-build_src_install() {
178     install_directories "${QT4_TARGET_DIRECTORIES}"
179 ingmar 1.7 install_qconfigs
180 caleb 1.4 fix_library_files
181     }
182    
183 caleb 1.1 standard_configure_options() {
184     local myconf=""
185    
186 ingmar 1.7 [[ $(get_libdir) != "lib" ]] && myconf="${myconf} -L/usr/$(get_libdir)"
187 caleb 1.1
188     # Disable visibility explicitly if gcc version isn't 4
189 ingmar 1.7 if [[ "$(gcc-major-version)" -lt "4" ]]; then
190 caleb 1.1 myconf="${myconf} -no-reduce-exports"
191     fi
192    
193 ingmar 1.12 # precompiled headers doesn't work on hardened, where the flag is masked.
194     if use pch; then
195     myconf="${myconf} -pch"
196     else
197     myconf="${myconf} -no-pch"
198     fi
199    
200 ingmar 1.7 if use debug; then
201     myconf="${myconf} -debug -no-separate-debug-info"
202     else
203     myconf="${myconf} -release -no-separate-debug-info"
204     fi
205 caleb 1.1
206 yngwin 1.20 # ARCH is set on Gentoo. Qt now falls back to generic on an unsupported
207 ingmar 1.11 # ${ARCH}. Therefore we convert it to supported values.
208     case "${ARCH}" in
209     amd64) myconf="${myconf} -arch x86_64" ;;
210     ppc|ppc64) myconf="${myconf} -arch powerpc" ;;
211 ingmar 1.14 x86|x86-*) myconf="${myconf} -arch i386" ;;
212 ingmar 1.11 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch ${ARCH}" ;;
213     hppa|sh) myconf="${myconf} -arch generic" ;;
214     *) die "${ARCH} is unsupported by this eclass. Please file a bug." ;;
215     esac
216    
217 ingmar 1.7 myconf="${myconf} -stl -verbose -largefile -confirm-license -no-rpath
218     -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
219     -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR}
220     -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR}
221     -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR}
222 yngwin 1.20 -demosdir ${QTDEMOSDIR} -silent -fast
223     $([[ ${PN} == qt-xmlpatterns ]] || echo -no-exceptions)
224     $(use x86-fbsd || echo -reduce-relocations)
225 ingmar 1.7 -nomake examples -nomake demos"
226 caleb 1.1
227     echo "${myconf}"
228     }
229    
230     build_directories() {
231     local dirs="$@"
232     for x in ${dirs}; do
233     cd "${S}"/${x}
234 ingmar 1.7 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed"
235     emake || die "emake failed"
236 caleb 1.1 done
237     }
238    
239     install_directories() {
240     local dirs="$@"
241     for x in ${dirs}; do
242 ingmar 1.7 pushd "${S}"/${x} >/dev/null || die "Can't pushd ${S}/${x}"
243     emake INSTALL_ROOT="${D}" install || die "emake install failed"
244     popd >/dev/null || die "Can't popd from ${S}/${x}"
245 caleb 1.1 done
246     }
247    
248 ingmar 1.7 # @ECLASS-VARIABLE: QCONFIG_ADD
249     # @DESCRIPTION:
250     # List options that need to be added to QT_CONFIG in qconfig.pri
251     QCONFIG_ADD="${QCONFIG_ADD:-}"
252    
253     # @ECLASS-VARIABLE: QCONFIG_REMOVE
254     # @DESCRIPTION:
255     # List options that need to be removed from QT_CONFIG in qconfig.pri
256     QCONFIG_REMOVE="${QCONFIG_REMOVE:-}"
257    
258     # @ECLASS-VARIABLE: QCONFIG_DEFINE
259     # @DESCRIPTION:
260     # List variables that should be defined at the top of QtCore/qconfig.h
261     QCONFIG_DEFINE="${QCONFIG_DEFINE:-}"
262    
263     install_qconfigs() {
264 zlin 1.9 local x
265     if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} ]]; then
266 ingmar 1.7 for x in QCONFIG_ADD QCONFIG_REMOVE; do
267     [[ -n ${!x} ]] && echo ${x}=${!x} >> "${T}"/${PN}-qconfig.pri
268     done
269     insinto ${QTDATADIR}/mkspecs/gentoo
270     doins "${T}"/${PN}-qconfig.pri || die "installing ${PN}-qconfig.pri failed"
271 zlin 1.9 fi
272 ingmar 1.7
273 zlin 1.9 if [[ -n ${QCONFIG_DEFINE} ]]; then
274 ingmar 1.7 for x in ${QCONFIG_DEFINE}; do
275     echo "#define ${x}" >> "${T}"/gentoo-${PN}-qconfig.h
276     done
277     insinto ${QTHEADERDIR}/Gentoo
278     doins "${T}"/gentoo-${PN}-qconfig.h || die "installing ${PN}-qconfig.h failed"
279     fi
280     }
281    
282     generate_qconfigs() {
283     if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} || -n ${QCONFIG_DEFINE} || ${CATEGORY}/${PN} == x11-libs/qt-core ]]; then
284     local x qconfig_add qconfig_remove qconfig_new
285     for x in "${ROOT}${QTDATADIR}"/mkspecs/gentoo/*-qconfig.pri; do
286     [[ -f ${x} ]] || continue
287     qconfig_add="${qconfig_add} $(sed -n 's/^QCONFIG_ADD=//p' "${x}")"
288     qconfig_remove="${qconfig_remove} $(sed -n 's/^QCONFIG_REMOVE=//p' "${x}")"
289     done
290    
291     # these error checks do not use die because dying in pkg_post{inst,rm}
292     # just makes things worse.
293     if [[ -e "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri ]]; then
294     # start with the qconfig.pri that qt-core installed
295     if ! cp "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri \
296     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
297     eerror "cp qconfig failed."
298     return 1
299     fi
300    
301     # generate list of QT_CONFIG entries from the existing list
302     # including qconfig_add and excluding qconfig_remove
303     for x in $(sed -n 's/^QT_CONFIG +=//p' \
304     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri) ${qconfig_add}; do
305     hasq ${x} ${qconfig_remove} || qconfig_new="${qconfig_new} ${x}"
306     done
307    
308     # replace the existing QT_CONFIG list with qconfig_new
309     if ! sed -i -e "s/QT_CONFIG +=.*/QT_CONFIG += ${qconfig_new}/" \
310     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
311     eerror "Sed for QT_CONFIG failed"
312     return 1
313     fi
314    
315     # create Gentoo/qconfig.h
316     if [[ ! -e ${ROOT}${QTHEADERDIR}/Gentoo ]]; then
317     if ! mkdir -p "${ROOT}${QTHEADERDIR}"/Gentoo; then
318     eerror "mkdir ${QTHEADERDIR}/Gentoo failed"
319     return 1
320     fi
321     fi
322     : > "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
323     for x in "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-*-qconfig.h; do
324     [[ -f ${x} ]] || continue
325     cat "${x}" >> "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
326     done
327     else
328     rm -f "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri
329     rm -f "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
330     rmdir "${ROOT}${QTDATADIR}"/mkspecs \
331     "${ROOT}${QTDATADIR}" \
332     "${ROOT}${QTHEADERDIR}"/Gentoo \
333     "${ROOT}${QTHEADERDIR}" 2>/dev/null
334     fi
335     fi
336     }
337    
338     qt4-build_pkg_postrm() {
339     generate_qconfigs
340 caleb 1.1 }
341    
342 ingmar 1.7 qt4-build_pkg_postinst() {
343     generate_qconfigs
344 yngwin 1.17 echo
345     ewarn "After a rebuild or upgrade of Qt, it can happen that Qt plugins (such as Qt"
346     ewarn "and KDE styles and widgets) can no longer be loaded. In this situation you"
347     ewarn "should recompile the packages providing these plugins. Also, make sure you"
348     ewarn "compile the Qt packages, and the packages that depend on it, with the same"
349     ewarn "GCC version and the same USE flag settings (especially the debug flag)."
350     ewarn
351     ewarn "Packages that typically need to be recompiled are kdelibs from KDE4, any"
352     ewarn "additional KDE4/Qt4 styles, qscintilla and PyQt4. Before filing a bug report,"
353     ewarn "make sure all your Qt4 packages are up-to-date and built with the same"
354     ewarn "configuration."
355     ewarn
356     ewarn "For more information, see http://doc.trolltech.com/4.4/plugins-howto.html"
357     echo
358 caleb 1.1 }
359    
360     skip_qmake_build_patch() {
361 ingmar 1.7 # Don't need to build qmake, as it's already installed from qt-core
362     sed -i -e "s:if true:if false:g" "${S}"/configure || die "Sed failed"
363 caleb 1.1 }
364    
365     skip_project_generation_patch() {
366     # Exit the script early by throwing in an exit before all of the .pro files are scanned
367 ingmar 1.7 sed -e "s:echo \"Finding:exit 0\n\necho \"Finding:g" \
368     -i "${S}"/configure || die "Sed failed"
369 caleb 1.1 }
370    
371 ingmar 1.7 symlink_binaries_to_buildtree() {
372     for bin in qmake moc uic rcc; do
373     ln -s ${QTBINDIR}/${bin} "${S}"/bin/ || die "Symlinking ${bin} to ${S}/bin failed."
374     done
375 caleb 1.1 }
376    
377     fix_library_files() {
378 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/{*.la,*.prl,pkgconfig/*.pc}; do
379     if [[ -e ${libfile} ]]; then
380     sed -i -e "s:${S}/lib:${QTLIBDIR}:g" ${libfile} || die "Sed on ${libfile} failed."
381     fi
382     done
383 caleb 1.1
384     # pkgconfig files refer to WORKDIR/bin as the moc and uic locations. Fix:
385 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/pkgconfig/*.pc; do
386     if [[ -e ${libfile} ]]; then
387     sed -i -e "s:${S}/bin:${QTBINDIR}:g" ${libfile} || die "Sed failed"
388 caleb 1.1
389     # Move .pc files into the pkgconfig directory
390 ingmar 1.7
391     dodir ${QTPCDIR}
392     mv ${libfile} "${D}"/${QTPCDIR}/ \
393     || die "Moving ${libfile} to ${D}/${QTPCDIR}/ failed."
394     fi
395     done
396    
397     # Don't install an empty directory
398     rmdir "${D}"/${QTLIBDIR}/pkgconfig
399 caleb 1.1 }
400    
401     qt_use() {
402 ingmar 1.7 local flag="${1}"
403     local feature="${1}"
404 caleb 1.5 local enableval=
405 caleb 1.1
406 ingmar 1.7 [[ -n ${2} ]] && feature=${2}
407     [[ -n ${3} ]] && enableval="-${3}"
408    
409     if use ${flag}; then
410     echo "${enableval}-${feature}"
411     else
412     echo "-no-${feature}"
413     fi
414     }
415    
416     # @ECLASS-VARIABLE: QT4_BUILT_WITH_USE_CHECK
417     # @DESCRIPTION:
418     # The contents of $QT4_BUILT_WITH_USE_CHECK gets fed to built_with_use
419     # (eutils.eclass), line per line.
420     #
421     # Example:
422     # @CODE
423     # pkg_setup() {
424     # use qt3support && QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK}
425     # ~x11-libs/qt-gui-${PV} qt3support"
426     # qt4-build_check_use
427     # }
428     # @CODE
429    
430     # Run built_with_use on each flag and print appropriate error messages if any
431     # flags are missing
432     _qt_built_with_use() {
433     local missing opt pkg flag flags
434 caleb 1.1
435 ingmar 1.7 if [[ ${1} = "--missing" ]]; then
436     missing="${1} ${2}" && shift 2
437     fi
438     if [[ ${1:0:1} = "-" ]]; then
439     opt=${1} && shift
440     fi
441    
442     pkg=${1} && shift
443    
444     for flag in "${@}"; do
445     flags="${flags} ${flag}"
446     if ! built_with_use ${missing} ${opt} ${pkg} ${flag}; then
447     flags="${flags}*"
448     else
449     [[ ${opt} = "-o" ]] && return 0
450     fi
451     done
452     if [[ "${flags# }" = "${@}" ]]; then
453     return 0
454     fi
455     if [[ ${opt} = "-o" ]]; then
456     eerror "This package requires '${pkg}' to be built with any of the following USE flags: '$*'."
457     else
458     eerror "This package requires '${pkg}' to be built with the following USE flags: '${flags# }'."
459     fi
460     return 1
461     }
462    
463     # @FUNCTION: qt4-build_check_use
464     # @DESCRIPTION:
465     # Check if the listed packages in $QT4_BUILT_WITH_USE_CHECK are built with the
466     # USE flags listed.
467     #
468     # If any of the required USE flags are missing, an eerror will be printed for
469     # each package with missing USE flags.
470     qt4-build_check_use() {
471     local line missing
472     while read line; do
473     [[ -z ${line} ]] && continue
474     if ! _qt_built_with_use ${line}; then
475     missing=true
476     fi
477     done <<< "${QT4_BUILT_WITH_USE_CHECK}"
478     if [[ -n ${missing} ]]; then
479     echo
480     eerror "Flags marked with an * are missing."
481     die "Missing USE flags found"
482     fi
483 caleb 1.1 }
484    
485     qt_mkspecs_dir() {
486 caleb 1.5 # Allows us to define which mkspecs dir we want to use.
487     local spec
488 caleb 1.1
489 caleb 1.5 case ${CHOST} in
490     *-freebsd*|*-dragonfly*)
491     spec="freebsd" ;;
492     *-openbsd*)
493     spec="openbsd" ;;
494     *-netbsd*)
495     spec="netbsd" ;;
496 ingmar 1.7 *-darwin*)
497 caleb 1.5 spec="darwin" ;;
498     *-linux-*|*-linux)
499     spec="linux" ;;
500     *)
501 ingmar 1.7 die "Unknown CHOST, no platform choosen."
502 caleb 1.5 esac
503    
504     CXX=$(tc-getCXX)
505     if [[ ${CXX/g++/} != ${CXX} ]]; then
506     spec="${spec}-g++"
507     elif [[ ${CXX/icpc/} != ${CXX} ]]; then
508     spec="${spec}-icc"
509     else
510     die "Unknown compiler ${CXX}."
511     fi
512 caleb 1.1
513 caleb 1.5 echo "${spec}"
514 caleb 1.1 }
515    
516 yngwin 1.20 case ${EAPI:-0} in
517     0|1) EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postrm pkg_postinst ;;
518     2) EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_postrm pkg_postinst ;;
519     esac

  ViewVC Help
Powered by ViewVC 1.1.20