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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.28 - (hide annotations) (download)
Mon Mar 16 08:21:18 2009 UTC (5 years, 6 months ago) by aballier
Branch: MAIN
Changes since 1.27: +2 -3 lines
remove the fbsd special case for reduce-relocations now that the spec fix has reached qt 4.5.0

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

  ViewVC Help
Powered by ViewVC 1.1.20