/[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.83
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.83 2010/06/19 00:35:11 abcd Exp $
4# 4#
5# Author: vapier@gentoo.org 5# Author: vapier@gentoo.org
6 6
7ECLASS=enlightenment 7inherit eutils libtool
8INHERITED="$INHERITED $ECLASS"
9 8
10EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst 9# E_STATE's:
10# release [default]
11# KEYWORDS arch
12# SRC_URI $P.tar.gz
13# S $WORKDIR/$P
14#
15# snap $PV has .200##### datestamp or .### counter
16# KEYWORDS ~arch
17# SRC_URI $P.tar.bz2
18# S $WORKDIR/$P
19#
20# live $PV has a 9999 marker
21# KEYWORDS ""
22# SRC_URI cvs/svn/etc... up
23# S $WORKDIR/$E_S_APPEND
24#
25# Overrides:
26# KEYWORDS EKEY_STATE
27# SRC_URI EURI_STATE
28# S EURI_STATE
11 29
30#E_LIVE_DEFAULT_CVS="cvs.sourceforge.net:/cvsroot/enlightenment"
31E_LIVE_SERVER_DEFAULT_CVS="anoncvs.enlightenment.org:/var/cvs/e"
32E_LIVE_SERVER_DEFAULT_SVN="http://svn.enlightenment.org/svn/e/trunk"
33
12ECVS_STATE="release" 34E_STATE="release"
13if [ "${PV/9999}" != "${PV}" ] ; then 35if [[ ${PV/9999} != ${PV} ]] ; then
36 E_LIVE_SERVER=${E_LIVE_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}
37 E_STATE="live"
38 WANT_AUTOTOOLS="yes"
39
40 # force people to opt-in to legacy cvs
14 if [ -z "${ECVS_MODULE}" ] ; then 41 if [[ -n ${ECVS_MODULE} ]] ; then
15 ECVS_MODULE="${PN}" 42 ECVS_SERVER=${ECVS_SERVER:-${E_LIVE_SERVER_DEFAULT_CVS}}
16 if [ "${CATEGORY/libs}" != "${CATEGORY}" ] ; then 43 E_LIVE_SOURCE="cvs"
17 ECVS_MODULE="e17/libs/${PN}" 44 E_S_APPEND=${ECVS_MODULE}
45 inherit cvs
18 else 46 else
19 ECVS_MODULE="e17/apps/${PN}" 47 ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
20 fi 48 ESVN_PROJECT="enlightenment/${ESVN_SUB_PROJECT}"
49 ESVN_REPO_URI=${ESVN_SERVER:-${E_LIVE_SERVER_DEFAULT_SVN}}/${ESVN_SUB_PROJECT}/${ESVN_URI_APPEND}
50 E_S_APPEND=${ESVN_URI_APPEND}
51 E_LIVE_SOURCE="svn"
52 inherit subversion
21 fi 53 fi
22 ECVS_SERVER="${ECVS_SERVER:-cvs.sourceforge.net:/cvsroot/enlightenment}" 54elif [[ -n ${E_SNAP_DATE} ]] ; then
23 ECVS_STATE="live"
24 inherit cvs
25elif [ "${PV/.200?????/}" != "${PV}" ] ; then
26 ECVS_STATE="snap" 55 E_STATE="snap"
56else
57 E_STATE="release"
27fi 58fi
59if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
60 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
61 WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
62 inherit autotools
63fi
64
65ENLIGHTENMENT_EXPF="pkg_setup src_unpack src_compile src_install pkg_postinst"
66case "${EAPI:-0}" in
67 2|3|4) ENLIGHTENMENT_EXPF+=" src_prepare src_configure" ;;
68 *) ;;
69esac
70EXPORT_FUNCTIONS ${ENLIGHTENMENT_EXPF}
28 71
29DESCRIPTION="A DR17 production" 72DESCRIPTION="A DR17 production"
30HOMEPAGE="http://www.enlightenment.org/" 73HOMEPAGE="http://www.enlightenment.org/"
31case ${ECVS_STATE} in 74case ${EURI_STATE:-${E_STATE}} in
32 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";; 75 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
33 snap) SRC_URI="mirror://gentoo/${P}.tar.bz2";; 76 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
34 live) SRC_URI="";; 77 live) SRC_URI="";;
35esac 78esac
36 79
37LICENSE="BSD" 80LICENSE="BSD"
38SLOT="0" 81SLOT="0"
39case ${ECVS_STATE} in 82case ${EKEY_STATE:-${E_STATE}} in
40 release) KEYWORDS="alpha amd64 hppa ia64 ppc sparc x86";; 83 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";; 84 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="-*";; 85 live) KEYWORDS="";;
43esac 86esac
44IUSE="nls doc" 87IUSE="nls doc"
45 88
46DEPEND="doc? ( app-doc/doxygen ) 89DEPEND="doc? ( app-doc/doxygen )"
47 >=sys-devel/autoconf-2.58-r1"
48RDEPEND="nls? ( sys-devel/gettext )" 90RDEPEND="nls? ( sys-devel/gettext )"
49 91
50case ${ECVS_STATE} in 92# gettext (via `autopoint`) needs to run cvs #245073
93[[ ${E_STATE} == "live" ]] && DEPEND="${DEPEND} dev-vcs/cvs"
94
95case ${EURI_STATE:-${E_STATE}} in
51 release) S=${WORKDIR}/${P};; 96 release) S=${WORKDIR}/${P};;
52 snap) S=${WORKDIR}/${PN};; 97 snap) S=${WORKDIR}/${P};;
53 live) S=${WORKDIR}/${ECVS_MODULE};; 98 live) S=${WORKDIR}/${E_S_APPEND};;
54esac 99esac
55 100
56enlightenment_warning_msg() { 101enlightenment_warning_msg() {
57 if [ "${PV/200}" != "${PV}" ] ; then 102 if [[ -n ${E_LIVE_SERVER} ]] ; then
103 einfo "Using user server for live sources: ${E_LIVE_SERVER}"
104 fi
105 if [[ ${E_STATE} == "snap" ]] ; then
58 ewarn "Please do not contact the E team about bugs in Gentoo." 106 ewarn "Please do not contact the E team about bugs in Gentoo."
59 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 107 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
60 ewarn "Remember, this stuff is CVS only code so dont cry when" 108 ewarn "Remember, this stuff is DEV only code so dont cry when"
61 ewarn "I break you :)." 109 ewarn "I break you :)."
110 elif [[ ${E_STATE} == "live" ]] ; then
111 eerror "This is a LIVE SOURCES ebuild."
112 eerror "That means there are NO promises it will work."
113 eerror "If it fails to build, FIX THE CODE YOURSELF"
114 eerror "before reporting any issues."
62 fi 115 fi
63} 116}
64 117
65enlightenment_die() { 118enlightenment_die() {
66 enlightenment_warning_msg 119 enlightenment_warning_msg
67 die "$@"$'\n'"!!! SEND BUG REPORTS TO vapier@gentoo.org NOT THE E TEAM" 120 die "$@"$'\n'"!!! SEND BUG REPORTS TO enlightenment@gentoo.org NOT THE E TEAM"
68} 121}
69 122
70enlightenment_pkg_setup() { 123enlightenment_pkg_setup() {
71 enlightenment_warning_msg 124 : 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} 125}
81 126
82enlightenment_src_unpack() { 127enlightenment_src_unpack() {
83 if [ "${ECVS_STATE}" == "live" ] ; then 128 if [[ ${E_STATE} == "live" ]] ; then
129 case ${E_LIVE_SOURCE} in
84 cvs_src_unpack 130 cvs) cvs_src_unpack;;
131 svn) subversion_src_unpack;;
132 *) die "eek!";;
133 esac
85 else 134 else
86 unpack ${A} 135 unpack ${A}
87 fi 136 fi
88 gettext_modify 137 hasq src_prepare ${ENLIGHTENMENT_EXPF} || enlightenment_src_prepare
138}
139
140enlightenment_src_prepare() {
141 [[ -s gendoc ]] && chmod a+rx gendoc
142 if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
143 [[ -d po ]] && eautopoint -f
144 # autotools require README, when README.in is around, but README
145 # is created later in configure step
146 [[ -f README.in ]] && touch README
147 eautoreconf
148 fi
149 epunt_cxx
150 elibtoolize
151}
152
153enlightenment_src_configure() {
154 # gstreamer sucks, work around it doing stupid stuff
155 export GST_REGISTRY="${S}/registry.xml"
156
157 econf ${MY_ECONF}
89} 158}
90 159
91enlightenment_src_compile() { 160enlightenment_src_compile() {
92 if [ "${ECVS_STATE}" != "release" ] ; then 161 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
93 [ ! -z "${EHACKAUTOGEN}" ] && sed -i 's:.*configure.*::' autogen.sh
94 export WANT_AUTOMAKE="${EAUTOMAKE:-1.8}"
95 env \
96 PATH="${T}:${PATH}" \
97 NOCONFIGURE=yes \
98 USER=blah \
99 ./autogen.sh \
100 || enlightenment_die "autogen failed"
101 if [ ! -z "${EHACKLIBLTDL}" ] ; then
102 cd libltdl
103 autoconf || enlightenment_die "autogen in libltdl failed"
104 cd ..
105 fi
106 fi
107 econf ${MY_ECONF} || enlightenment_die "econf failed"
108 emake || enlightenment_die "emake failed" 162 emake || enlightenment_die "emake failed"
109 use doc && [ -x ./gendoc ] && { ./gendoc || enlightenment_die "gendoc failed" ; } 163 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; }
110} 164}
111 165
112enlightenment_src_install() { 166enlightenment_src_install() {
113 make install DESTDIR=${D} || enlightenment_die 167 emake install DESTDIR="${D}" || enlightenment_die
114 find ${D} -name CVS -type d -exec rm -rf '{}' \; 2>/dev/null 168 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} 169 for d in AUTHORS ChangeLog NEWS README TODO ${EDOCS}; do
170 [[ -f ${d} ]] && dodoc ${d}
171 done
116 use doc && [ -d doc ] && dohtml -r doc/* 172 use doc && [[ -d doc ]] && dohtml -r doc/*
117} 173}
118 174
119enlightenment_pkg_postinst() { 175enlightenment_pkg_postinst() {
120 enlightenment_warning_msg 176 : enlightenment_warning_msg
121} 177}
178

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

  ViewVC Help
Powered by ViewVC 1.1.20