/[gentoo-x86]/eclass/enlightenment.eclass
Gentoo

Contents of /eclass/enlightenment.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.84 - (show annotations) (download)
Sun Aug 22 23:31:08 2010 UTC (3 years, 7 months ago) by vapier
Branch: MAIN
Changes since 1.83: +43 -9 lines
add support for python/cython by Michael Blumenkrantz et al, and start eclass documentation

1 # Copyright 1999-2010 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/enlightenment.eclass,v 1.83 2010/06/19 00:35:11 abcd Exp $
4
5 # @ECLASS: enlightenment.eclass
6 # @MAINTAINER:
7 # enlightenment@gentoo.org
8 # @BLURB: simplify enlightenment package management
9
10 inherit eutils libtool
11
12 # @ECLASS-VARIABLE: E_PYTHON
13 # @DEFAULT_UNSET
14 # @DESCRIPTION:
15 # if defined, the package is based on Python/distutils
16
17 # @ECLASS-VARIABLE: E_CYTHON
18 # @DEFAULT_UNSET
19 # @DESCRIPTION:
20 # if defined, the package is Cython bindings (implies E_PYTHON)
21
22 # E_STATE's:
23 # release [default]
24 # KEYWORDS arch
25 # SRC_URI $P.tar.gz
26 # S $WORKDIR/$P
27 #
28 # snap $PV has .200##### datestamp or .### counter
29 # KEYWORDS ~arch
30 # SRC_URI $P.tar.bz2
31 # S $WORKDIR/$P
32 #
33 # live $PV has a 9999 marker
34 # KEYWORDS ""
35 # SRC_URI cvs/svn/etc... up
36 # S $WORKDIR/$E_S_APPEND
37 #
38 # Overrides:
39 # KEYWORDS EKEY_STATE
40 # SRC_URI EURI_STATE
41 # S EURI_STATE
42
43 #E_LIVE_DEFAULT_CVS="cvs.sourceforge.net:/cvsroot/enlightenment"
44 E_LIVE_SERVER_DEFAULT_CVS="anoncvs.enlightenment.org:/var/cvs/e"
45 E_LIVE_SERVER_DEFAULT_SVN="http://svn.enlightenment.org/svn/e/trunk"
46
47 E_STATE="release"
48 if [[ ${PV/9999} != ${PV} ]] ; then
49 E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
50 E_STATE="live"
51 WANT_AUTOTOOLS="yes"
52
53 # force people to opt-in to legacy cvs
54 if [[ -n ${ECVS_MODULE} ]] ; then
55 ECVS_SERVER=${ECVS_SERVER:-${E_LIVE_SERVER_DEFAULT_CVS}}
56 E_LIVE_SOURCE="cvs"
57 E_S_APPEND=${ECVS_MODULE}
58 inherit cvs
59 else
60 ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
61 ESVN_PROJECT="enlightenment/${ESVN_SUB_PROJECT}"
62 ESVN_REPO_URI=${ESVN_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
63 E_S_APPEND=${ESVN_URI_APPEND}
64 E_LIVE_SOURCE="svn"
65 inherit subversion
66 fi
67 elif [[ -n ${E_SNAP_DATE} ]] ; then
68 E_STATE="snap"
69 else
70 E_STATE="release"
71 fi
72
73 # Parse requested python state
74 : ${E_PYTHON:=${E_CYTHON}}
75 if [[ -n ${E_PYTHON} ]] ; then
76 WANT_AUTOTOOLS="no"
77
78 PYTHON_DEPEND="2:2.4"
79
80 inherit python distutils
81 fi
82
83 if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
84 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
85 WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
86 inherit autotools
87 fi
88
89 ENLIGHTENMENT_EXPF="pkg_setup src_unpack src_compile src_install pkg_postinst"
90 case "${EAPI:-0}" in
91 2|3|4) ENLIGHTENMENT_EXPF+=" src_prepare src_configure" ;;
92 *) ;;
93 esac
94 EXPORT_FUNCTIONS ${ENLIGHTENMENT_EXPF}
95
96 DESCRIPTION="A DR17 production"
97 HOMEPAGE="http://www.enlightenment.org/"
98 case ${EURI_STATE:-${E_STATE}} in
99 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
100 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
101 live) SRC_URI="";;
102 esac
103
104 LICENSE="BSD"
105 SLOT="0"
106 case ${EKEY_STATE:-${E_STATE}} in
107 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-interix ~x86-solaris ~x64-solaris";;
108 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-interix ~x86-solaris ~x64-solaris";;
109 live) KEYWORDS="";;
110 esac
111 IUSE="nls doc"
112
113 DEPEND="doc? ( app-doc/doxygen )"
114 RDEPEND="nls? ( sys-devel/gettext )"
115 [[ -n ${E_PYTHON} ]] && DEPEND+=" >=dev-python/setuptools-0.6_rc9"
116 [[ -n ${E_CYTHON} ]] && DEPEND+=" >=dev-python/cython-0.12.1"
117
118 case ${EURI_STATE:-${E_STATE}} in
119 release) S=${WORKDIR}/${P};;
120 snap) S=${WORKDIR}/${P};;
121 live) S=${WORKDIR}/${E_S_APPEND};;
122 esac
123
124 enlightenment_warning_msg() {
125 if [[ -n ${E_LIVE_SERVER} ]] ; then
126 einfo "Using user server for live sources: ${E_LIVE_SERVER}"
127 fi
128 if [[ ${E_STATE} == "snap" ]] ; then
129 ewarn "Please do not contact the E team about bugs in Gentoo."
130 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
131 ewarn "Remember, this stuff is DEV only code so dont cry when"
132 ewarn "I break you :)."
133 elif [[ ${E_STATE} == "live" ]] ; then
134 eerror "This is a LIVE SOURCES ebuild."
135 eerror "That means there are NO promises it will work."
136 eerror "If it fails to build, FIX THE CODE YOURSELF"
137 eerror "before reporting any issues."
138 fi
139 }
140
141 enlightenment_die() {
142 enlightenment_warning_msg
143 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
144 }
145
146 enlightenment_pkg_setup() {
147 : enlightenment_warning_msg
148 }
149
150 enlightenment_src_unpack() {
151 if [[ ${E_STATE} == "live" ]] ; then
152 case ${E_LIVE_SOURCE} in
153 cvs) cvs_src_unpack;;
154 svn) subversion_src_unpack;;
155 *) die "eek!";;
156 esac
157 else
158 unpack ${A}
159 fi
160 hasq src_prepare ${ENLIGHTENMENT_EXPF} || enlightenment_src_prepare
161 }
162
163 enlightenment_src_prepare() {
164 [[ -s gendoc ]] && chmod a+rx gendoc
165 if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
166 [[ -d po ]] && eautopoint -f
167 # autotools require README, when README.in is around, but README
168 # is created later in configure step
169 [[ -f README.in ]] && touch README
170 eautoreconf
171 fi
172 epunt_cxx
173 elibtoolize
174 }
175
176 enlightenment_src_configure() {
177 # gstreamer sucks, work around it doing stupid stuff
178 export GST_REGISTRY="${S}/registry.xml"
179
180 econf ${MY_ECONF}
181 }
182
183 enlightenment_src_compile() {
184 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
185
186 if [[ -z ${E_PYTHON} ]] ; then
187 emake || enlightenment_die "emake failed"
188 else
189 distutils_src_compile
190 fi
191
192 if use doc ; then
193 if [[ -x ./gendoc ]] ; then
194 ./gendoc || enlightenment_die "gendoc failed"
195 else
196 emake doc || enlightenment_die "emake doc failed"
197 fi
198 fi
199 }
200
201 enlightenment_src_install() {
202 emake install DESTDIR="${D}" || enlightenment_die
203 find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec rm -rf '{}' \; 2>/dev/null
204 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
205 [[ -f ${d} ]] && dodoc ${d}
206 done
207 use doc && [[ -d doc ]] && dohtml -r doc/*
208 }
209
210 enlightenment_pkg_postinst() {
211 : enlightenment_warning_msg
212 }

  ViewVC Help
Powered by ViewVC 1.1.20