1 | # Copyright 1999-2010 Gentoo Foundation |
1 | # Copyright 1999-2010 Gentoo Foundation |
2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/xorg-2.eclass,v 1.34 2011/03/16 20:57:43 mgorny Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/xorg-2.eclass,v 1.41 2011/04/20 12:48:38 mgorny Exp $ |
4 | # |
4 | # |
5 | # @ECLASS: xorg-2.eclass |
5 | # @ECLASS: xorg-2.eclass |
6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
7 | # x11@gentoo.org |
7 | # x11@gentoo.org |
8 | # @BLURB: Reduces code duplication in the modularized X11 ebuilds. |
8 | # @BLURB: Reduces code duplication in the modularized X11 ebuilds. |
… | |
… | |
20 | # Author: Tomáš Chvátal <scarabeus@gentoo.org> |
20 | # Author: Tomáš Chvátal <scarabeus@gentoo.org> |
21 | # Author: Donnie Berkholz <dberkholz@gentoo.org> |
21 | # Author: Donnie Berkholz <dberkholz@gentoo.org> |
22 | |
22 | |
23 | GIT_ECLASS="" |
23 | GIT_ECLASS="" |
24 | if [[ ${PV} == *9999* ]]; then |
24 | if [[ ${PV} == *9999* ]]; then |
25 | GIT_ECLASS="git" |
25 | GIT_ECLASS="git-2" |
26 | XORG_EAUTORECONF="yes" |
26 | XORG_EAUTORECONF="yes" |
27 | fi |
27 | fi |
28 | |
28 | |
29 | # If we're a font package, but not the font.alias one |
29 | # If we're a font package, but not the font.alias one |
30 | FONT_ECLASS="" |
30 | FONT_ECLASS="" |
… | |
… | |
41 | ${FONT_ECLASS} ${GIT_ECLASS} |
41 | ${FONT_ECLASS} ${GIT_ECLASS} |
42 | |
42 | |
43 | EXPORTED_FUNCTIONS="src_unpack src_compile src_install pkg_postinst pkg_postrm" |
43 | EXPORTED_FUNCTIONS="src_unpack src_compile src_install pkg_postinst pkg_postrm" |
44 | case "${EAPI:-0}" in |
44 | case "${EAPI:-0}" in |
45 | 3|4) EXPORTED_FUNCTIONS="${EXPORTED_FUNCTIONS} src_prepare src_configure" ;; |
45 | 3|4) EXPORTED_FUNCTIONS="${EXPORTED_FUNCTIONS} src_prepare src_configure" ;; |
46 | *) die "EAPI-UNSUPPORTED" ;; |
46 | *) die "EAPI=${EAPI} is not supported" ;; |
47 | esac |
47 | esac |
48 | |
48 | |
49 | # exports must be ALWAYS after inherit |
49 | # exports must be ALWAYS after inherit |
50 | EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS} |
50 | EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS} |
51 | |
51 | |
… | |
… | |
81 | x11-libs) XORG_MODULE=lib/ ;; |
81 | x11-libs) XORG_MODULE=lib/ ;; |
82 | *) XORG_MODULE= ;; |
82 | *) XORG_MODULE= ;; |
83 | esac |
83 | esac |
84 | fi |
84 | fi |
85 | |
85 | |
86 | # backcompat, remove when everything in main tree fixed |
|
|
87 | [[ -n ${MODULE} ]] && XORG_MODULE=${MODULE} && ewarn "Your ebuild is using MODULE variable, please migrate to XORG_MODULE to preserve namespace." |
|
|
88 | |
|
|
89 | # @ECLASS-VARIABLE: XORG_PACKAGE_NAME |
86 | # @ECLASS-VARIABLE: XORG_PACKAGE_NAME |
90 | # @DESCRIPTION: |
87 | # @DESCRIPTION: |
91 | # For git checkout the git repository might differ from package name. |
88 | # For git checkout the git repository might differ from package name. |
92 | # This variable can be used for proper directory specification |
89 | # This variable can be used for proper directory specification |
93 | : ${XORG_PACKAGE_NAME:=${PN}} |
90 | : ${XORG_PACKAGE_NAME:=${PN}} |
94 | |
91 | |
95 | if [[ -n ${GIT_ECLASS} ]]; then |
92 | if [[ -n ${GIT_ECLASS} ]]; then |
96 | EGIT_REPO_URI="git://anongit.freedesktop.org/git/xorg/${XORG_MODULE}${XORG_PACKAGE_NAME}" |
93 | : ${EGIT_REPO_URI:="git://anongit.freedesktop.org/git/xorg/${XORG_MODULE}${XORG_PACKAGE_NAME}"} |
97 | elif [[ -n ${XORG_BASE_INDIVIDUAL_URI} ]]; then |
94 | elif [[ -n ${XORG_BASE_INDIVIDUAL_URI} ]]; then |
98 | SRC_URI="${XORG_BASE_INDIVIDUAL_URI}/${XORG_MODULE}${P}.tar.bz2" |
95 | SRC_URI="${XORG_BASE_INDIVIDUAL_URI}/${XORG_MODULE}${P}.tar.bz2" |
99 | fi |
96 | fi |
100 | |
97 | |
101 | : ${SLOT:=0} |
98 | : ${SLOT:=0} |
… | |
… | |
110 | XORG_EAUTORECONF_ARCHES="x86-interix ppc-aix x86-winnt" |
107 | XORG_EAUTORECONF_ARCHES="x86-interix ppc-aix x86-winnt" |
111 | EAUTORECONF_DEPEND+=" |
108 | EAUTORECONF_DEPEND+=" |
112 | >=sys-devel/libtool-2.2.6a |
109 | >=sys-devel/libtool-2.2.6a |
113 | sys-devel/m4" |
110 | sys-devel/m4" |
114 | if [[ ${PN} != util-macros ]] ; then |
111 | if [[ ${PN} != util-macros ]] ; then |
115 | EAUTORECONF_DEPEND+=" >=x11-misc/util-macros-1.12.0" |
112 | EAUTORECONF_DEPEND+=" >=x11-misc/util-macros-1.13.0" |
116 | # Required even by xorg-server |
113 | # Required even by xorg-server |
117 | [[ ${PN} == "font-util" ]] || EAUTORECONF_DEPEND+=" >=media-fonts/font-util-1.1.1-r1" |
114 | [[ ${PN} == "font-util" ]] || EAUTORECONF_DEPEND+=" >=media-fonts/font-util-1.2.0" |
118 | fi |
115 | fi |
119 | WANT_AUTOCONF="latest" |
116 | WANT_AUTOCONF="latest" |
120 | WANT_AUTOMAKE="latest" |
117 | WANT_AUTOMAKE="latest" |
121 | for arch in ${XORG_EAUTORECONF_ARCHES}; do |
118 | for arch in ${XORG_EAUTORECONF_ARCHES}; do |
122 | EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )" |
119 | EAUTORECONF_DEPENDS+=" ${arch}? ( ${EAUTORECONF_DEPEND} )" |
… | |
… | |
129 | if [[ ${FONT} == yes ]]; then |
126 | if [[ ${FONT} == yes ]]; then |
130 | RDEPEND+=" media-fonts/encodings |
127 | RDEPEND+=" media-fonts/encodings |
131 | x11-apps/mkfontscale |
128 | x11-apps/mkfontscale |
132 | x11-apps/mkfontdir" |
129 | x11-apps/mkfontdir" |
133 | PDEPEND+=" media-fonts/font-alias" |
130 | PDEPEND+=" media-fonts/font-alias" |
134 | DEPEND+=" >=media-fonts/font-util-1.1.1-r1" |
131 | DEPEND+=" >=media-fonts/font-util-1.2.0" |
135 | |
132 | |
136 | # @ECLASS-VARIABLE: FONT_DIR |
133 | # @ECLASS-VARIABLE: FONT_DIR |
137 | # @DESCRIPTION: |
134 | # @DESCRIPTION: |
138 | # If you're creating a font package and the suffix of PN is not equal to |
135 | # If you're creating a font package and the suffix of PN is not equal to |
139 | # the subdirectory of /usr/share/fonts/ it should install into, set |
136 | # the subdirectory of /usr/share/fonts/ it should install into, set |
… | |
… | |
205 | DEPEND+=" ${DRI_DEPEND}" |
202 | DEPEND+=" ${DRI_DEPEND}" |
206 | ;; |
203 | ;; |
207 | *) |
204 | *) |
208 | COMMON_DEPEND+=" ${XORG_DRI}? ( ${DRI_COMMON_DEPEND} )" |
205 | COMMON_DEPEND+=" ${XORG_DRI}? ( ${DRI_COMMON_DEPEND} )" |
209 | DEPEND+=" ${XORG_DRI}? ( ${DRI_DEPEND} )" |
206 | DEPEND+=" ${XORG_DRI}? ( ${DRI_DEPEND} )" |
210 | IUSE="${XORG_DRI}" |
207 | IUSE+=" ${XORG_DRI}" |
211 | ;; |
208 | ;; |
212 | esac |
209 | esac |
213 | unset DRI_DEPEND |
210 | unset DRI_DEPEND |
214 | unset DRI_COMMONDEPEND |
211 | unset DRI_COMMONDEPEND |
215 | |
212 | |
… | |
… | |
258 | always) |
255 | always) |
259 | DEPEND+=" ${DOC_DEPEND}" |
256 | DEPEND+=" ${DOC_DEPEND}" |
260 | ;; |
257 | ;; |
261 | *) |
258 | *) |
262 | DEPEND+=" ${XORG_DOC}? ( ${DOC_DEPEND} )" |
259 | DEPEND+=" ${XORG_DOC}? ( ${DOC_DEPEND} )" |
263 | IUSE="${XORG_DOC}" |
260 | IUSE+=" ${XORG_DOC}" |
264 | ;; |
261 | ;; |
265 | esac |
262 | esac |
266 | unset DOC_DEPEND |
263 | unset DOC_DEPEND |
267 | |
264 | |
268 | DEPEND+=" ${COMMON_DEPEND}" |
265 | DEPEND+=" ${COMMON_DEPEND}" |
… | |
… | |
287 | # Simply unpack source code. |
284 | # Simply unpack source code. |
288 | xorg-2_src_unpack() { |
285 | xorg-2_src_unpack() { |
289 | debug-print-function ${FUNCNAME} "$@" |
286 | debug-print-function ${FUNCNAME} "$@" |
290 | |
287 | |
291 | if [[ -n ${GIT_ECLASS} ]]; then |
288 | if [[ -n ${GIT_ECLASS} ]]; then |
292 | git_src_unpack |
289 | git-2_src_unpack |
293 | else |
290 | else |
294 | unpack ${A} |
291 | unpack ${A} |
295 | fi |
292 | fi |
296 | |
293 | |
297 | [[ -n ${FONT_OPTIONS} ]] && einfo "Detected font directory: ${FONT_DIR}" |
294 | [[ -n ${FONT_OPTIONS} ]] && einfo "Detected font directory: ${FONT_DIR}" |
… | |
… | |
334 | # @DESCRIPTION: |
331 | # @DESCRIPTION: |
335 | # Prepare a package after unpacking, performing all X-related tasks. |
332 | # Prepare a package after unpacking, performing all X-related tasks. |
336 | xorg-2_src_prepare() { |
333 | xorg-2_src_prepare() { |
337 | debug-print-function ${FUNCNAME} "$@" |
334 | debug-print-function ${FUNCNAME} "$@" |
338 | |
335 | |
339 | [[ -n ${GIT_ECLASS} ]] && git_src_prepare |
|
|
340 | xorg-2_patch_source |
336 | xorg-2_patch_source |
341 | xorg-2_reconf_source |
337 | xorg-2_reconf_source |
342 | } |
338 | } |
343 | |
339 | |
344 | # @FUNCTION: xorg-2_font_configure |
340 | # @FUNCTION: xorg-2_font_configure |
… | |
… | |
399 | xorg-2_src_configure() { |
395 | xorg-2_src_configure() { |
400 | debug-print-function ${FUNCNAME} "$@" |
396 | debug-print-function ${FUNCNAME} "$@" |
401 | |
397 | |
402 | xorg-2_flags_setup |
398 | xorg-2_flags_setup |
403 | |
399 | |
404 | # @VARIABLE: CONFIGURE_OPTIONS |
400 | # @VARIABLE: XORG_CONFIGURE_OPTIONS |
405 | # @DESCRIPTION: |
401 | # @DESCRIPTION: |
406 | # Any options to pass to configure |
402 | # Array of an additional options to pass to configure. |
407 | # @DEFAULT_UNSET |
403 | # @DEFAULT_UNSET |
408 | CONFIGURE_OPTIONS=${CONFIGURE_OPTIONS:=""} |
404 | if [[ $(declare -p XORG_CONFIGURE_OPTIONS 2>&-) != "declare -a"* ]]; then |
|
|
405 | # fallback to CONFIGURE_OPTIONS, deprecated. |
|
|
406 | [[ -n "${CONFIGURE_OPTIONS}" ]] && \ |
|
|
407 | ewarn "QA: CONFIGURE_OPTIONS are deprecated. Please migrate to XORG_CONFIGURE_OPTIONS to preserve namespace." |
|
|
408 | local xorgconfadd=(${CONFIGURE_OPTIONS}) |
|
|
409 | else |
|
|
410 | local xorgconfadd=("${XORG_CONFIGURE_OPTIONS[@]}") |
|
|
411 | fi |
409 | |
412 | |
410 | [[ -n "${FONT}" ]] && xorg-2_font_configure |
413 | [[ -n "${FONT}" ]] && xorg-2_font_configure |
411 | local myeconfargs=( |
414 | local myeconfargs=( |
412 | --disable-dependency-tracking |
415 | --disable-dependency-tracking |
413 | ${CONFIGURE_OPTIONS} |
|
|
414 | ${FONT_OPTIONS} |
416 | ${FONT_OPTIONS} |
|
|
417 | "${xorgconfadd[@]}" |
415 | ) |
418 | ) |
416 | |
419 | |
417 | autotools-utils_src_configure "$@" |
420 | autotools-utils_src_configure "$@" |
418 | } |
421 | } |
419 | |
422 | |