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

Diff of /eclass/enlightenment.eclass

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

Revision 1.65 Revision 1.76
1# Copyright 1999-2006 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.65 2006/07/02 06:52:43 vapier Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/enlightenment.eclass,v 1.76 2008/11/30 09:05:51 vapier Exp $
4# 4#
5# Author: vapier@gentoo.org 5# Author: vapier@gentoo.org
6 6
7inherit eutils libtool 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
32#E17_DEFAULT_CVS="cvs.sourceforge.net:/cvsroot/enlightenment" 34E_STATE="release"
33E17_DEFAULT_CVS="anoncvs.enlightenment.org:/var/cvs/e" 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"
34 39
35ECVS_STATE="release" 40 # force people to opt-in to legacy cvs
36if [[ ${PV/9999} != ${PV} ]] ; then
37 if [[ -z ${ECVS_MODULE} ]] ; then 41 if [[ -n ${ECVS_MODULE} ]] ; then
38 ECVS_MODULE=${PN} 42 ECVS_SERVER=${ECVS_SERVER:-${E_LIVE_SERVER_DEFAULT_CVS}}
39 if [[ ${CATEGORY/libs} != ${CATEGORY} ]] ; then 43 E_LIVE_SOURCE="cvs"
40 ECVS_MODULE="e17/libs/${PN}" 44 E_S_APPEND=${ECVS_MODULE}
45 inherit cvs
41 else 46 else
42 ECVS_MODULE="e17/apps/${PN}" 47 ESVN_URI_APPEND=${ESVN_URI_APPEND:-${PN}}
43 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
44 fi 53 fi
45 ECVS_SERVER=${E17_ECVS_SERVER:-${ECVS_SERVER:-${E17_DEFAULT_CVS}}} 54elif [[ -n ${E_SNAP_DATE} ]] ; then
46 ECVS_STATE="live"
47 inherit cvs
48elif [[ ${PV/.200[3-9][0-1][0-9][0-3][0-9]/} != ${PV} ]] ; then
49 ECVS_STATE="snap" 55 E_STATE="snap"
50elif [[ ${PV%%.[0-9][0-9][0-9]} != ${PV} ]] ; then 56else
51 ECVS_STATE="snap"
52 EURI_STATE="release" 57 E_STATE="release"
58fi
59if [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
60 WANT_AUTOCONF=${E_WANT_AUTOCONF:-latest}
61 WANT_AUTOMAKE=${E_WANT_AUTOMAKE:-latest}
62 inherit autotools
53fi 63fi
54 64
55DESCRIPTION="A DR17 production" 65DESCRIPTION="A DR17 production"
56HOMEPAGE="http://www.enlightenment.org/" 66HOMEPAGE="http://www.enlightenment.org/"
57case ${EURI_STATE:-${ECVS_STATE}} in 67case ${EURI_STATE:-${E_STATE}} in
58 release) SRC_URI="http://enlightenment.freedesktop.org/files/${P}.tar.gz mirror://sourceforge/enlightenment/${P}.tar.gz";; 68 release) SRC_URI="mirror://sourceforge/enlightenment/${P}.tar.gz";;
59 snap) SRC_URI="mirror://gentoo/${P}.tar.bz2";; 69 snap) SRC_URI="http://download.enlightenment.org/snapshots/${E_SNAP_DATE}/${P}.tar.bz2";;
60 live) SRC_URI="";; 70 live) SRC_URI="";;
61esac 71esac
62 72
63LICENSE="BSD" 73LICENSE="BSD"
64SLOT="0" 74SLOT="0"
65case ${EKEY_STATE:-${ECVS_STATE}} in 75case ${EKEY_STATE:-${E_STATE}} in
66 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86";; 76 release) KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sh sparc x86 ~x86-fbsd";;
67 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86";; 77 snap) KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd";;
68 live) KEYWORDS="-*";; 78 live) KEYWORDS="";;
69esac 79esac
70IUSE="nls doc" 80IUSE="nls doc"
71 81
72DEPEND="doc? ( app-doc/doxygen )" 82DEPEND="doc? ( app-doc/doxygen )"
73RDEPEND="nls? ( sys-devel/gettext )" 83RDEPEND="nls? ( sys-devel/gettext )"
74 84
85# gettext (via `autopoint`) needs to run cvs #245073
86[[ ${E_STATE} == "live" ]] && DEPEND="${DEPEND} dev-util/cvs"
87
75case ${EURI_STATE:-${ECVS_STATE}} in 88case ${EURI_STATE:-${E_STATE}} in
76 release) S=${WORKDIR}/${P};; 89 release) S=${WORKDIR}/${P};;
77 snap) S=${WORKDIR}/${PN};; 90 snap) S=${WORKDIR}/${P};;
78 live) S=${WORKDIR}/${ECVS_MODULE};; 91 live) S=${WORKDIR}/${E_S_APPEND};;
79esac 92esac
80 93
81enlightenment_warning_msg() { 94enlightenment_warning_msg() {
82 if [[ -n ${E17_ECVS_SERVER} ]] ; then 95 if [[ -n ${E_LIVE_SERVER} ]] ; then
83 einfo "Using user cvs server: ${E17_ECVS_SERVER}" 96 einfo "Using user server for live sources: ${E_LIVE_SERVER}"
84 fi 97 fi
85 if [[ ${ECVS_STATE} == "snap" ]] ; then 98 if [[ ${E_STATE} == "snap" ]] ; then
86 ewarn "Please do not contact the E team about bugs in Gentoo." 99 ewarn "Please do not contact the E team about bugs in Gentoo."
87 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla." 100 ewarn "Only contact vapier@gentoo.org via e-mail or bugzilla."
88 ewarn "Remember, this stuff is CVS only code so dont cry when" 101 ewarn "Remember, this stuff is DEV only code so dont cry when"
89 ewarn "I break you :)." 102 ewarn "I break you :)."
90 elif [[ ${ECVS_STATE} == "live" ]] ; then 103 elif [[ ${E_STATE} == "live" ]] ; then
91 eerror "This is a LIVE CVS ebuild." 104 eerror "This is a LIVE SOURCES ebuild."
92 eerror "That means there are NO promises it will work." 105 eerror "That means there are NO promises it will work."
93 eerror "If it fails to build, FIX THE CODE YOURSELF" 106 eerror "If it fails to build, FIX THE CODE YOURSELF"
94 eerror "before reporting any issues." 107 eerror "before reporting any issues."
95 fi 108 fi
96} 109}
105} 118}
106 119
107# the stupid gettextize script prevents non-interactive mode, so we hax it 120# the stupid gettextize script prevents non-interactive mode, so we hax it
108gettext_modify() { 121gettext_modify() {
109 use nls || return 0 122 use nls || return 0
110 cp $(which gettextize) "${T}"/ || die "could not copy gettextize" 123 cp $(type -P gettextize) "${T}"/ || die "could not copy gettextize"
111 sed -i \ 124 sed -i \
112 -e 's:read dummy < /dev/tty::' \ 125 -e 's:read dummy < /dev/tty::' \
113 "${T}"/gettextize 126 "${T}"/gettextize
114} 127}
115 128
116enlightenment_src_unpack() { 129enlightenment_src_unpack() {
117 if [[ ${ECVS_STATE} == "live" ]] ; then 130 if [[ ${E_STATE} == "live" ]] ; then
131 case ${E_LIVE_SOURCE} in
118 cvs_src_unpack 132 cvs) cvs_src_unpack;;
133 svn) subversion_src_unpack;;
134 *) die "eek!";;
135 esac
119 else 136 else
120 unpack ${A} 137 unpack ${A}
121 fi 138 fi
122 gettext_modify 139 gettext_modify
123 [[ -s gendoc ]] && chmod a+rx gendoc 140 [[ -s gendoc ]] && chmod a+rx gendoc
126enlightenment_src_compile() { 143enlightenment_src_compile() {
127 # gstreamer sucks, work around it doing stupid stuff 144 # gstreamer sucks, work around it doing stupid stuff
128 export GST_REGISTRY="${S}/registry.xml" 145 export GST_REGISTRY="${S}/registry.xml"
129 146
130 if [[ ! -e configure ]] ; then 147 if [[ ! -e configure ]] ; then
131 export WANT_AUTOMAKE=${EAUTOMAKE:-1.8}
132 env \ 148 env \
133 PATH="${T}:${PATH}" \ 149 PATH="${T}:${PATH}" \
134 NOCONFIGURE=yes \ 150 NOCONFIGURE=yes \
135 USER=blah \ 151 USER=blah \
136 ./autogen.sh \ 152 ./autogen.sh \
137 || enlightenment_die "autogen failed" 153 || enlightenment_die "autogen failed"
138 # symlinked files will cause sandbox violation 154 # symlinked files will cause sandbox violation
155 local x
139 for x in config.{guess,sub} ; do 156 for x in config.{guess,sub} ; do
140 [[ ! -L ${x} ]] && continue 157 [[ ! -L ${x} ]] && continue
141 rm -f ${x} 158 rm -f ${x}
142 touch ${x} 159 touch ${x}
143 done 160 done
144 if [[ ! -z ${EHACKLIBLTDL} ]] ; then 161 elif [[ ${WANT_AUTOTOOLS} == "yes" ]] ; then
145 cd libltdl 162 eautoreconf
146 autoconf || enlightenment_die "autogen in libltdl failed"
147 cd ..
148 fi
149 fi 163 fi
150 epunt_cxx 164 epunt_cxx
151 elibtoolize 165 elibtoolize
152 econf ${MY_ECONF} || enlightenment_die "econf failed" 166 econf ${MY_ECONF} || enlightenment_die "econf failed"
153 emake || enlightenment_die "emake failed" 167 emake || enlightenment_die "emake failed"
154 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; } 168 use doc && [[ -x ./gendoc ]] && { ./gendoc || enlightenment_die "gendoc failed" ; }
155} 169}
156 170
157enlightenment_src_install() { 171enlightenment_src_install() {
158 make install DESTDIR="${D}" || enlightenment_die 172 emake install DESTDIR="${D}" || enlightenment_die
159 find "${D}" -name CVS -type d -exec rm -rf '{}' \; 2>/dev/null 173 find "${D}" '(' -name CVS -o -name .svn -o -name .git ')' -type d -exec rm -rf '{}' \; 2>/dev/null
160 dodoc AUTHORS ChangeLog NEWS README TODO ${EDOCS} 174 dodoc AUTHORS ChangeLog NEWS README TODO ${EDOCS}
161 use doc && [[ -d doc ]] && dohtml -r doc/* 175 use doc && [[ -d doc ]] && dohtml -r doc/*
162} 176}
163 177
164enlightenment_pkg_postinst() { 178enlightenment_pkg_postinst() {
165 enlightenment_warning_msg 179 enlightenment_warning_msg
166} 180}
181
182EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst

Legend:
Removed from v.1.65  
changed lines
  Added in v.1.76

  ViewVC Help
Powered by ViewVC 1.1.20