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

Diff of /eclass/enlightenment.eclass

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

Revision 1.7 Revision 1.84
1# Copyright 1999-2003 Gentoo Technologies, Inc. 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.7 2003/12/02 02:54:18 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
47E_STATE="release"
48if [[ ${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
67elif [[ -n ${E_SNAP_DATE} ]] ; then
68 E_STATE="snap"
69else
70 E_STATE="release"
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
10EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst 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}
11 95
12DESCRIPTION="A DR17 production" 96DESCRIPTION="A DR17 production"
13HOMEPAGE="http://www.enlightenment.org/" 97HOMEPAGE="http://www.enlightenment.org/"
14SRC_URI="mirror://gentoo/${P}.tar.bz2 98case ${EURI_STATE:-${E_STATE}} in
15 http://wh0rd.de/gentoo/distfiles/${P}.tar.bz2" 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="";;
102esac
16 103
17LICENSE="as-is" 104LICENSE="BSD"
18SLOT="0" 105SLOT="0"
19KEYWORDS="~x86 ~ppc ~sparc ~mips ~alpha ~arm ~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
20IUSE="nls doc" 111IUSE="nls doc"
21 112
22newdepend "doc? ( app-doc/doxygen )" 113DEPEND="doc? ( app-doc/doxygen )"
23newrdepend "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"
24 117
25S=${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
26 123
27enlightenment_warning_msg() { 124enlightenment_warning_msg() {
28 if [ "${PV/2003}" != "${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
29 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."
30 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 130 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
31 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"
32 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."
33 fi 138 fi
139}
140
141enlightenment_die() {
142 enlightenment_warning_msg
143 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
34} 144}
35 145
36enlightenment_pkg_setup() { 146enlightenment_pkg_setup() {
37 enlightenment_warning_msg 147 : enlightenment_warning_msg
38}
39
40# the stupid gettextize script prevents non-interactive mode, so we hax it
41gettext_modify() {
42 use nls || return 0
43 cp `which gettextize` ${T} || die "could not copy gettextize"
44 cp ${T}/gettextize ${T}/gettextize.old
45 sed -e 's:read dummy < /dev/tty::' ${T}/gettextize.old > ${T}/gettextize
46} 148}
47 149
48enlightenment_src_unpack() { 150enlightenment_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
49 unpack ${A} 158 unpack ${A}
50 gettext_modify 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}
51} 181}
52 182
53enlightenment_src_compile() { 183enlightenment_src_compile() {
54 use alpha && append-flags -fPIC 184 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
55 use ppc && append-flags -fPIC 185
56 use hppa && append-flags -fPIC 186 if [[ -z ${E_PYTHON} ]] ; then
57 [ ! -z "${EHACKAUTOGEN}" ] && sed -i 's:.*configure.*::' autogen.sh 187 emake || enlightenment_die "emake failed"
58 env \ 188 else
59 PATH="${T}:${PATH}" \ 189 distutils_src_compile
60 WANT_AUTOCONF_2_5=1 \ 190 fi
61 NOCONFIGURE=yes \ 191
62 USER=blah \ 192 if use doc ; then
63 ./autogen.sh \ 193 if [[ -x ./gendoc ]] ; then
64 || die "autogen failed" 194 ./gendoc || enlightenment_die "gendoc failed"
65 if [ ! -z "${EHACKLIBLTDL}" ] ; then 195 else
66 cd libltdl 196 emake doc || enlightenment_die "emake doc failed"
67 env WANT_AUTOCONF_2_5=1 autoconf || die "autogen in libltdl failed"
68 cd ..
69 fi 197 fi
70 econf ${MY_ECONF} || die "econf failed" 198 fi
71 emake || die "emake failed"
72 [ `use doc` ] && [ -x ./gendoc ] && { ./gendoc || die "gendoc failed" ; }
73} 199}
74 200
75enlightenment_src_install() { 201enlightenment_src_install() {
76 make install DESTDIR=${D} || die 202 emake install DESTDIR="${D}" || enlightenment_die
77 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
78 [ -z "${EDOCS}" ] && EDOCS="AUTHORS ChangeLog NEWS README TODO" 204 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
79 dodoc ${EDOCS} 205 [[ -f ${d} ]] && dodoc ${d}
206 done
80 [ `use doc` ] && [ -d doc ] && dohtml -r doc/* 207 use doc && [[ -d doc ]] && dohtml -r doc/*
81} 208}
82 209
83enlightenment_pkg_postinst() { 210enlightenment_pkg_postinst() {
84 enlightenment_warning_msg 211 : enlightenment_warning_msg
85} 212}

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

  ViewVC Help
Powered by ViewVC 1.1.20