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

Diff of /eclass/enlightenment.eclass

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

Revision 1.30 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.30 2004/10/22 12:51:57 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
11
12ECVS_STATE="release" 47E_STATE="release"
13if [ "${PV/9999}" != "${PV}" ] ; then 48if [[ ${PV/9999} != ${PV} ]] ; then
14 if [ -z "${ECVS_MODULE}" ] ; then 49 E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
15 ECVS_MODULE="${PN}"
16 if [ "${CATEGORY/libs}" != "${CATEGORY}" ] ; then
17 ECVS_MODULE="e17/libs/${PN}"
18 else
19 ECVS_MODULE="e17/apps/${PN}"
20 fi
21 fi
22 ECVS_SERVER="${ECVS_SERVER:-cvs.sourceforge.net:/cvsroot/enlightenment}"
23 ECVS_STATE="live" 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}
24 inherit cvs 58 inherit cvs
25elif [ "${PV/.200?????/}" != "${PV}" ] ; then 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
26 ECVS_STATE="snap" 68 E_STATE="snap"
69else
70 E_STATE="release"
27fi 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}
28 95
29DESCRIPTION="A DR17 production" 96DESCRIPTION="A DR17 production"
30HOMEPAGE="http://www.enlightenment.org/" 97HOMEPAGE="http://www.enlightenment.org/"
31case ${ECVS_STATE} in 98case ${EURI_STATE:-${E_STATE}} in
32 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";; 99 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
33 snap) SRC_URI="mirror://gentoo/${P}.tar.bz2";; 100 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
34 live) SRC_URI="";; 101 live) SRC_URI="";;
35esac 102esac
36 103
37LICENSE="BSD" 104LICENSE="BSD"
38SLOT="0" 105SLOT="0"
39case ${ECVS_STATE} in 106case ${EKEY_STATE:-${E_STATE}} in
40 release) KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86";; 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";;
41 snap) KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~sparc ~x86";; 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";;
42 live) KEYWORDS="-*";; 109 live) KEYWORDS="";;
43esac 110esac
44IUSE="nls doc" 111IUSE="nls doc"
45 112
46DEPEND="doc? ( app-doc/doxygen ) 113DEPEND="doc? ( app-doc/doxygen )"
47 >=sys-devel/autoconf-2.58-r1"
48RDEPEND="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"
49 117
50case ${ECVS_STATE} in 118case ${EURI_STATE:-${E_STATE}} in
51 release) S=${WORKDIR}/${P};; 119 release) S=${WORKDIR}/${P};;
52 snap) S=${WORKDIR}/${PN};; 120 snap) S=${WORKDIR}/${P};;
53 live) S=${WORKDIR}/${ECVS_MODULE};; 121 live) S=${WORKDIR}/${E_S_APPEND};;
54esac 122esac
55 123
56enlightenment_warning_msg() { 124enlightenment_warning_msg() {
57 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
58 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."
59 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 130 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
60 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"
61 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."
62 fi 138 fi
63} 139}
64 140
65enlightenment_die() { 141enlightenment_die() {
66 enlightenment_warning_msg 142 enlightenment_warning_msg
67 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"
68} 144}
69 145
70enlightenment_pkg_setup() { 146enlightenment_pkg_setup() {
71 enlightenment_warning_msg 147 : enlightenment_warning_msg
72}
73
74# the stupid gettextize script prevents non-interactive mode, so we hax it
75gettext_modify() {
76 use nls || return 0
77 cp `which gettextize` ${T} || die "could not copy gettextize"
78 cp ${T}/gettextize ${T}/gettextize.old
79 sed -e 's:read dummy < /dev/tty::' ${T}/gettextize.old > ${T}/gettextize
80} 148}
81 149
82enlightenment_src_unpack() { 150enlightenment_src_unpack() {
83 if [ "${ECVS_STATE}" == "live" ] ; then 151 if [[ ${E_STATE} == "live" ]] ; then
152 case ${E_LIVE_SOURCE} in
84 cvs_src_unpack 153 cvs) cvs_src_unpack;;
154 svn) subversion_src_unpack;;
155 *) die "eek!";;
156 esac
85 else 157 else
86 unpack ${A} 158 unpack ${A}
87 fi 159 fi
88 gettext_modify 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}
89} 181}
90 182
91enlightenment_src_compile() { 183enlightenment_src_compile() {
92 if [ "${ECVS_STATE}" != "release" ] ; then 184 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
93 [ ! -z "${EHACKAUTOGEN}" ] && sed -i 's:.*configure.*::' autogen.sh 185
94 export WANT_AUTOMAKE="${EAUTOMAKE:-1.8}" 186 if [[ -z ${E_PYTHON} ]] ; then
95 env \
96 PATH="${T}:${PATH}" \
97 NOCONFIGURE=yes \
98 USER=blah \
99 ./autogen.sh \
100 || enlightenment_die "autogen failed" 187 emake || enlightenment_die "emake failed"
101 if [ ! -z "${EHACKLIBLTDL}" ] ; then 188 else
102 cd libltdl 189 distutils_src_compile
103 autoconf || enlightenment_die "autogen in libltdl failed" 190 fi
104 cd .. 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"
105 fi 197 fi
106 fi 198 fi
107 econf ${MY_ECONF} || enlightenment_die "econf failed"
108 emake || enlightenment_die "emake failed"
109 use doc && [ -x ./gendoc ] && { ./gendoc || enlightenment_die "gendoc failed" ; }
110} 199}
111 200
112enlightenment_src_install() { 201enlightenment_src_install() {
113 make install DESTDIR=${D} || enlightenment_die 202 emake install DESTDIR="${D}" || enlightenment_die
114 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
115 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
116 use doc && [ -d doc ] && dohtml -r doc/* 207 use doc && [[ -d doc ]] && dohtml -r doc/*
117} 208}
118 209
119enlightenment_pkg_postinst() { 210enlightenment_pkg_postinst() {
120 enlightenment_warning_msg 211 : enlightenment_warning_msg
121} 212}

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

  ViewVC Help
Powered by ViewVC 1.1.20