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

Diff of /eclass/enlightenment.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.22 Revision 1.84
1# Copyright 1999-2004 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/enlightenment.eclass,v 1.22 2004/07/19 22:20:16 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/enlightenment.eclass,v 1.84 2010/08/22 23:31:08 vapier Exp $
4
5# @ECLASS: enlightenment.eclass
6# @MAINTAINER:
7# enlightenment@gentoo.org
8# @BLURB: simplify enlightenment package management
9
10inherit 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
4# 27#
5# Author: vapier@gentoo.org 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
6 42
7ECLASS=enlightenment 43#E_LIVE_DEFAULT_CVS="cvs.sourceforge.net:/cvsroot/enlightenment"
8INHERITED="$INHERITED $ECLASS" 44E_LIVE_SERVER_DEFAULT_CVS="anoncvs.enlightenment.org:/var/cvs/e"
45E_LIVE_SERVER_DEFAULT_SVN="http://svn.enlightenment.org/svn/e/trunk"
9 46
10EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst 47E_STATE="release"
11
12USE_CVS="no"
13if [ "${PV/.9999}" != "${PV}" ] ; then 48if [[ ${PV/9999} != ${PV} ]] ; then
14 USE_CVS="yes" 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}
15 inherit cvs 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
67elif [[ -n ${E_SNAP_DATE} ]] ; then
68 E_STATE="snap"
69else
70 E_STATE="release"
16fi 71fi
72
73# Parse requested python state
74: ${E_PYTHON:=${E_CYTHON}}
75if [[ -n ${E_PYTHON} ]] ; then
76 WANT_AUTOTOOLS="no"
77
78 PYTHON_DEPEND="2:2.4"
79
80 inherit python distutils
81fi
82
83if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
84 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
85 WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
86 inherit autotools
87fi
88
89ENLIGHTENMENT_EXPF="pkg_setup src_unpack src_compile src_install pkg_postinst"
90case "${EAPI:-0}" in
91 2|3|4) ENLIGHTENMENT_EXPF+=" src_prepare src_configure" ;;
92 *) ;;
93esac
94EXPORT_FUNCTIONS ${ENLIGHTENMENT_EXPF}
17 95
18DESCRIPTION="A DR17 production" 96DESCRIPTION="A DR17 production"
19HOMEPAGE="http://www.enlightenment.org/" 97HOMEPAGE="http://www.enlightenment.org/"
20if [ "${USE_CVS}" == "no" ] ; then 98case ${EURI_STATE:-${E_STATE}} in
21 SRC_URI="mirror://gentoo/${P}.tar.bz2" 99 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
22 # http://wh0rd.de/gentoo/distfiles/${P}.tar.bz2" 100 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
23fi 101 live) SRC_URI="";;
102esac
24 103
25LICENSE="BSD" 104LICENSE="BSD"
26SLOT="0" 105SLOT="0"
27KEYWORDS="~x86 ~ppc ~sparc ~alpha ~hppa ~amd64 ~ia64" 106case ${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="";;
110esac
28IUSE="nls doc" 111IUSE="nls doc"
29 112
30DEPEND="doc? ( app-doc/doxygen ) 113DEPEND="doc? ( app-doc/doxygen )"
31 >=sys-devel/autoconf-2.58-r1"
32RDEPEND="nls? ( sys-devel/gettext )" 114RDEPEND="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"
33 117
34S=${WORKDIR}/${PN} 118case ${EURI_STATE:-${E_STATE}} in
119 release) S=${WORKDIR}/${P};;
120 snap) S=${WORKDIR}/${P};;
121 live) S=${WORKDIR}/${E_S_APPEND};;
122esac
35 123
36enlightenment_warning_msg() { 124enlightenment_warning_msg() {
37 if [ "${PV/200}" != "${PV}" ] ; then 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
38 ewarn "Please do not contact the E team about bugs in Gentoo." 129 ewarn "Please do not contact the E team about bugs in Gentoo."
39 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 130 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
40 ewarn "Remember, this stuff is CVS only code so dont cry when" 131 ewarn "Remember, this stuff is DEV only code so dont cry when"
41 ewarn "I break you :)." 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."
42 fi 138 fi
43} 139}
44 140
45enlightenment_die() { 141enlightenment_die() {
46 enlightenment_warning_msg 142 enlightenment_warning_msg
47 die "$@"$'\n'"!!! SEND BUG REPORTS TO vapier@gentoo.org NOT THE E TEAM" 143 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
48} 144}
49 145
50enlightenment_pkg_setup() { 146enlightenment_pkg_setup() {
51 enlightenment_warning_msg 147 : enlightenment_warning_msg
52}
53
54# the stupid gettextize script prevents non-interactive mode, so we hax it
55gettext_modify() {
56 use nls || return 0
57 cp `which gettextize` ${T} || die "could not copy gettextize"
58 cp ${T}/gettextize ${T}/gettextize.old
59 sed -e 's:read dummy < /dev/tty::' ${T}/gettextize.old > ${T}/gettextize
60} 148}
61 149
62enlightenment_src_unpack() { 150enlightenment_src_unpack() {
63 [ "${USE_CVS}" == "no" ] && unpack ${A} 151 if [[ ${E_STATE} == "live" ]] ; then
64 gettext_modify 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
163enlightenment_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
176enlightenment_src_configure() {
177 # gstreamer sucks, work around it doing stupid stuff
178 export GST_REGISTRY="${S}/registry.xml"
179
180 econf ${MY_ECONF}
65} 181}
66 182
67enlightenment_src_compile() { 183enlightenment_src_compile() {
68 [ ! -z "${EHACKAUTOGEN}" ] && sed -i 's:.*configure.*::' autogen.sh 184 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
69 export WANT_AUTOMAKE="${EAUTOMAKE:-1.8}" 185
70 env \ 186 if [[ -z ${E_PYTHON} ]] ; then
71 PATH="${T}:${PATH}" \
72 NOCONFIGURE=yes \
73 USER=blah \
74 ./autogen.sh \
75 || enlightenment_die "autogen failed"
76 if [ ! -z "${EHACKLIBLTDL}" ] ; then
77 cd libltdl
78 autoconf || enlightenment_die "autogen in libltdl failed"
79 cd ..
80 fi
81 econf ${MY_ECONF} || enlightenment_die "econf failed"
82 emake || enlightenment_die "emake failed" 187 emake || enlightenment_die "emake failed"
83 use doc && [ -x ./gendoc ] && { ./gendoc || enlightenment_die "gendoc 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
84} 199}
85 200
86enlightenment_src_install() { 201enlightenment_src_install() {
87 make install DESTDIR=${D} || enlightenment_die 202 emake install DESTDIR="${D}" || enlightenment_die
88 find ${D} -name CVS -type d -exec rm -rf '{}' \; 2>/dev/null 203 find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec rm -rf '{}' \; 2>/dev/null
89 dodoc AUTHORS ChangeLog NEWS README TODO ${EDOCS} 204 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
205 [[ -f ${d} ]] && dodoc ${d}
206 done
90 use doc && [ -d doc ] && dohtml -r doc/* 207 use doc && [[ -d doc ]] && dohtml -r doc/*
91} 208}
92 209
93enlightenment_pkg_postinst() { 210enlightenment_pkg_postinst() {
94 enlightenment_warning_msg 211 : enlightenment_warning_msg
95} 212}

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.84

  ViewVC Help
Powered by ViewVC 1.1.20