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

Contents of /eclass/enlightenment.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.84 - (hide annotations) (download)
Sun Aug 22 23:31:08 2010 UTC (4 years, 4 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 abcd 1.82 # Copyright 1999-2010 Gentoo Foundation
2 vapier 1.1 # Distributed under the terms of the GNU General Public License v2
3 vapier 1.84 # $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 vapier 1.1
10 flameeyes 1.63 inherit eutils libtool
11 vapier 1.39
12 vapier 1.84 # @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 vapier 1.73 # E_STATE's:
23 vapier 1.55 # 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 vapier 1.72 # KEYWORDS ""
35 vapier 1.73 # SRC_URI cvs/svn/etc... up
36     # S $WORKDIR/$E_S_APPEND
37 vapier 1.55 #
38     # Overrides:
39     # KEYWORDS EKEY_STATE
40     # SRC_URI EURI_STATE
41     # S EURI_STATE
42    
43 vapier 1.73 #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 vapier 1.62
47 vapier 1.73 E_STATE="release"
48 vapier 1.38 if [[ ${PV/9999} != ${PV} ]] ; then
49 vapier 1.73 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 vapier 1.76 ESVN_PROJECT="enlightenment/${ESVN_SUB_PROJECT}"
62     ESVN_REPO_URI=${ESVN_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
63 vapier 1.73 E_S_APPEND=${ESVN_URI_APPEND}
64     E_LIVE_SOURCE="svn"
65     inherit subversion
66 vapier 1.27 fi
67 vapier 1.75 elif [[ -n ${E_SNAP_DATE} ]] ; then
68 vapier 1.73 E_STATE="snap"
69 vapier 1.75 else
70     E_STATE="release"
71 vapier 1.21 fi
72 vapier 1.84
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 vapier 1.68 if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
84 vapier 1.73 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
85     WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
86 vapier 1.68 inherit autotools
87     fi
88 vapier 1.21
89 tommy 1.81 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 vapier 1.2 DESCRIPTION="A DR17 production"
97 vapier 1.1 HOMEPAGE="http://www.enlightenment.org/"
98 vapier 1.73 case ${EURI_STATE:-${E_STATE}} in
99 vapier 1.75 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 vapier 1.23 live) SRC_URI="";;
102     esac
103 vapier 1.1
104 vapier 1.10 LICENSE="BSD"
105 vapier 1.2 SLOT="0"
106 vapier 1.73 case ${EKEY_STATE:-${E_STATE}} in
107 abcd 1.82 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 vapier 1.72 live) KEYWORDS="";;
110 vapier 1.28 esac
111 vapier 1.6 IUSE="nls doc"
112 vapier 1.1
113 vapier 1.35 DEPEND="doc? ( app-doc/doxygen )"
114 vapier 1.11 RDEPEND="nls? ( sys-devel/gettext )"
115 vapier 1.84 [[ -n ${E_PYTHON} ]] && DEPEND+=" >=dev-python/setuptools-0.6_rc9"
116     [[ -n ${E_CYTHON} ]] && DEPEND+=" >=dev-python/cython-0.12.1"
117 vapier 1.74
118 vapier 1.73 case ${EURI_STATE:-${E_STATE}} in
119 vapier 1.27 release) S=${WORKDIR}/${P};;
120 vapier 1.75 snap) S=${WORKDIR}/${P};;
121 vapier 1.73 live) S=${WORKDIR}/${E_S_APPEND};;
122 vapier 1.23 esac
123 vapier 1.2
124 vapier 1.3 enlightenment_warning_msg() {
125 vapier 1.73 if [[ -n ${E_LIVE_SERVER} ]] ; then
126     einfo "Using user server for live sources: ${E_LIVE_SERVER}"
127 vapier 1.65 fi
128 vapier 1.73 if [[ ${E_STATE} == "snap" ]] ; then
129 vapier 1.3 ewarn "Please do not contact the E team about bugs in Gentoo."
130 pva 1.78 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
131 vapier 1.73 ewarn "Remember, this stuff is DEV only code so dont cry when"
132 vapier 1.3 ewarn "I break you :)."
133 vapier 1.73 elif [[ ${E_STATE} == "live" ]] ; then
134     eerror "This is a LIVE SOURCES ebuild."
135 vapier 1.36 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 vapier 1.3 fi
139     }
140    
141 vapier 1.16 enlightenment_die() {
142     enlightenment_warning_msg
143 pva 1.78 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
144 vapier 1.16 }
145    
146 vapier 1.3 enlightenment_pkg_setup() {
147 vapier 1.80 : enlightenment_warning_msg
148 vapier 1.3 }
149    
150 vapier 1.2 enlightenment_src_unpack() {
151 vapier 1.73 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 vapier 1.30 else
158     unpack ${A}
159     fi
160 tommy 1.81 hasq src_prepare ${ENLIGHTENMENT_EXPF} || enlightenment_src_prepare
161     }
162    
163     enlightenment_src_prepare() {
164 vapier 1.47 [[ -s gendoc ]] && chmod a+rx gendoc
165 tommy 1.81 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 vapier 1.2 }
175    
176 tommy 1.81 enlightenment_src_configure() {
177 vapier 1.64 # gstreamer sucks, work around it doing stupid stuff
178     export GST_REGISTRY="${S}/registry.xml"
179    
180 tommy 1.81 econf ${MY_ECONF}
181     }
182    
183     enlightenment_src_compile() {
184     hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
185 vapier 1.84
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 vapier 1.2 }
200    
201     enlightenment_src_install() {
202 vapier 1.70 emake install DESTDIR="${D}" || enlightenment_die
203 vapier 1.73 find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec rm -rf '{}' \; 2>/dev/null
204 pva 1.79 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
205     [[ -f ${d} ]] && dodoc ${d}
206     done
207 vapier 1.38 use doc && [[ -d doc ]] && dohtml -r doc/*
208 vapier 1.3 }
209    
210     enlightenment_pkg_postinst() {
211 vapier 1.80 : enlightenment_warning_msg
212 vapier 1.1 }

  ViewVC Help
Powered by ViewVC 1.1.20