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

Diff of /eclass/enlightenment.eclass

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

Revision 1.1.1.1 Revision 1.81
1# Copyright 1999-2005 Gentoo Foundation 1# Copyright 1999-2008 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.1.1.1 2005/11/30 09:59:22 chriswhite Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/enlightenment.eclass,v 1.81 2010/02/28 10:52:06 tommy Exp $
4# 4#
5# Author: vapier@gentoo.org 5# Author: vapier@gentoo.org
6 6
7inherit eutils 7inherit eutils libtool
8 8
9# ECVS_STATE's: 9# E_STATE's:
10# release [default] 10# release [default]
11# KEYWORDS arch 11# KEYWORDS arch
12# SRC_URI $P.tar.gz 12# SRC_URI $P.tar.gz
13# S $WORKDIR/$P 13# S $WORKDIR/$P
14# 14#
16# KEYWORDS ~arch 16# KEYWORDS ~arch
17# SRC_URI $P.tar.bz2 17# SRC_URI $P.tar.bz2
18# S $WORKDIR/$P 18# S $WORKDIR/$P
19# 19#
20# live $PV has a 9999 marker 20# live $PV has a 9999 marker
21# KEYWORDS -* 21# KEYWORDS ""
22# SRC_URI `cvs up` 22# SRC_URI cvs/svn/etc... up
23# S $WORKDIR/$ECVS_MODULE 23# S $WORKDIR/$E_S_APPEND
24# 24#
25# Overrides: 25# Overrides:
26# KEYWORDS EKEY_STATE 26# KEYWORDS EKEY_STATE
27# SRC_URI EURI_STATE 27# SRC_URI EURI_STATE
28# S EURI_STATE 28# S EURI_STATE
29 29
30EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst 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"
31 33
32ECVS_STATE="release" 34E_STATE="release"
33if [[ ${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
34 if [[ -z ${ECVS_MODULE} ]] ; then 41 if [[ -n ${ECVS_MODULE} ]] ; then
35 ECVS_MODULE=${PN} 42 ECVS_SERVER=${ECVS_SERVER:-${E_LIVE_SERVER_DEFAULT_CVS}}
36 if [[ ${CATEGORY/libs} != ${CATEGORY} ]] ; then 43 E_LIVE_SOURCE="cvs"
37 ECVS_MODULE="e17/libs/${PN}" 44 E_S_APPEND=${ECVS_MODULE}
45 inherit cvs
38 else 46 else
39 ECVS_MODULE="e17/apps/${PN}" 47 ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
40 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
41 fi 53 fi
42 ECVS_SERVER=${ECVS_SERVER:-cvs.sourceforge.net:/cvsroot/enlightenment} 54elif [[ -n ${E_SNAP_DATE} ]] ; then
43 ECVS_STATE="live"
44 inherit cvs
45elif [[ ${PV/.200[3-9][0-1][0-9][0-3][0-9]/} != ${PV} ]] ; then
46 ECVS_STATE="snap" 55 E_STATE="snap"
47elif [[ ${PV%%.[0-9][0-9][0-9]} != ${PV} ]] ; then 56else
48 ECVS_STATE="snap"
49 EURI_STATE="release" 57 E_STATE="release"
50fi 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}
51 71
52DESCRIPTION="A DR17 production" 72DESCRIPTION="A DR17 production"
53HOMEPAGE="http://www.enlightenment.org/" 73HOMEPAGE="http://www.enlightenment.org/"
54case ${EURI_STATE:-${ECVS_STATE}} in 74case ${EURI_STATE:-${E_STATE}} in
55 release) SRC_URI="http://enlightenment.freedesktop.org/files/${P}.tar.gz mirror://sourceforge/enlightenment/${P}.tar.gz";; 75 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
56 snap) SRC_URI="mirror://gentoo/${P}.tar.bz2";; 76 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
57 live) SRC_URI="";; 77 live) SRC_URI="";;
58esac 78esac
59 79
60LICENSE="BSD" 80LICENSE="BSD"
61SLOT="0" 81SLOT="0"
62case ${EKEY_STATE:-${ECVS_STATE}} in 82case ${EKEY_STATE:-${E_STATE}} in
63 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86";; 83 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86 ~x86-fbsd";;
64 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86";; 84 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd";;
65 live) KEYWORDS="-*";; 85 live) KEYWORDS="";;
66esac 86esac
67IUSE="nls doc" 87IUSE="nls doc"
68 88
69DEPEND="doc? ( app-doc/doxygen )" 89DEPEND="doc? ( app-doc/doxygen )"
70RDEPEND="nls? ( sys-devel/gettext )" 90RDEPEND="nls? ( sys-devel/gettext )"
71 91
92# gettext (via `autopoint`) needs to run cvs #245073
93[[ ${E_STATE} == "live" ]] && DEPEND="${DEPEND} dev-util/cvs"
94
72case ${EURI_STATE:-${ECVS_STATE}} in 95case ${EURI_STATE:-${E_STATE}} in
73 release) S=${WORKDIR}/${P};; 96 release) S=${WORKDIR}/${P};;
74 snap) S=${WORKDIR}/${PN};; 97 snap) S=${WORKDIR}/${P};;
75 live) S=${WORKDIR}/${ECVS_MODULE};; 98 live) S=${WORKDIR}/${E_S_APPEND};;
76esac 99esac
77 100
78enlightenment_warning_msg() { 101enlightenment_warning_msg() {
102 if [[ -n ${E_LIVE_SERVER} ]] ; then
103 einfo "Using user server for live sources: ${E_LIVE_SERVER}"
104 fi
79 if [[ ${ECVS_STATE} == "snap" ]] ; then 105 if [[ ${E_STATE} == "snap" ]] ; then
80 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."
81 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 107 ewarn "Only contact enlightenment@gentoo.org via e-mail or bugzilla."
82 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"
83 ewarn "I break you :)." 109 ewarn "I break you :)."
84 elif [[ ${ECVS_STATE} == "live" ]] ; then 110 elif [[ ${E_STATE} == "live" ]] ; then
85 eerror "This is a LIVE CVS ebuild." 111 eerror "This is a LIVE SOURCES ebuild."
86 eerror "That means there are NO promises it will work." 112 eerror "That means there are NO promises it will work."
87 eerror "If it fails to build, FIX THE CODE YOURSELF" 113 eerror "If it fails to build, FIX THE CODE YOURSELF"
88 eerror "before reporting any issues." 114 eerror "before reporting any issues."
89 fi 115 fi
90} 116}
91 117
92enlightenment_die() { 118enlightenment_die() {
93 enlightenment_warning_msg 119 enlightenment_warning_msg
94 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"
95} 121}
96 122
97enlightenment_pkg_setup() { 123enlightenment_pkg_setup() {
98 enlightenment_warning_msg 124 : enlightenment_warning_msg
99}
100
101# the stupid gettextize script prevents non-interactive mode, so we hax it
102gettext_modify() {
103 use nls || return 0
104 cp $(which gettextize) "${T}"/ || die "could not copy gettextize"
105 sed -i \
106 -e 's:read dummy < /dev/tty::' \
107 "${T}"/gettextize
108} 125}
109 126
110enlightenment_src_unpack() { 127enlightenment_src_unpack() {
111 if [[ ${ECVS_STATE} == "live" ]] ; then 128 if [[ ${E_STATE} == "live" ]] ; then
129 case ${E_LIVE_SOURCE} in
112 cvs_src_unpack 130 cvs) cvs_src_unpack;;
131 svn) subversion_src_unpack;;
132 *) die "eek!";;
133 esac
113 else 134 else
114 unpack ${A} 135 unpack ${A}
115 fi 136 fi
116 gettext_modify 137 hasq src_prepare ${ENLIGHTENMENT_EXPF} || enlightenment_src_prepare
138}
139
140enlightenment_src_prepare() {
117 [[ -s gendoc ]] && chmod a+rx gendoc 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}
118} 158}
119 159
120enlightenment_src_compile() { 160enlightenment_src_compile() {
121 if [[ ! -e configure ]] ; then 161 hasq src_configure ${ENLIGHTENMENT_EXPF} || enlightenment_src_configure
122 export WANT_AUTOMAKE=${EAUTOMAKE:-1.8}
123 env \
124 PATH="${T}:${PATH}" \
125 NOCONFIGURE=yes \
126 USER=blah \
127 ./autogen.sh \
128 || enlightenment_die "autogen failed"
129 # symlinked files will cause sandbox violation
130 for x in config.{guess,sub} ; do
131 [[ ! -L ${x} ]] && continue
132 rm -f ${x}
133 touch ${x}
134 done
135 if [[ ! -z ${EHACKLIBLTDL} ]] ; then
136 cd libltdl
137 autoconf || enlightenment_die "autogen in libltdl failed"
138 cd ..
139 fi
140 fi
141 epunt_cxx
142 econf ${MY_ECONF} || enlightenment_die "econf failed"
143 emake || enlightenment_die "emake failed" 162 emake || enlightenment_die "emake failed"
144 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; } 163 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; }
145} 164}
146 165
147enlightenment_src_install() { 166enlightenment_src_install() {
148 make install DESTDIR="${D}" || enlightenment_die 167 emake install DESTDIR="${D}" || enlightenment_die
149 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
150 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
151 use doc && [[ -d doc ]] && dohtml -r doc/* 172 use doc && [[ -d doc ]] && dohtml -r doc/*
152} 173}
153 174
154enlightenment_pkg_postinst() { 175enlightenment_pkg_postinst() {
155 enlightenment_warning_msg 176 : enlightenment_warning_msg
156} 177}
178

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.81

  ViewVC Help
Powered by ViewVC 1.1.20