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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.20 - (hide annotations) (download)
Wed Feb 11 21:14:59 2009 UTC (5 years, 7 months ago) by yngwin
Branch: MAIN
Changes since 1.19: +68 -38 lines
Make qt4-build.eclass use EAPI-2 aware

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

  ViewVC Help
Powered by ViewVC 1.1.20