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

Contents of /eclass/fox.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (show annotations) (download)
Sun Oct 12 12:31:36 2008 UTC (7 years, 10 months ago) by mabi
Branch: MAIN
Changes since 1.7: +15 -7 lines
fix bug #240060

1 # Copyright 1999-2005 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/fox.eclass,v 1.7 2007/01/15 20:27:06 mabi Exp $
4
5 # fox eclass
6 #
7 # This eclass allows building SLOT-able FOX Toolkit installations
8 # (x11-libs/fox: headers, libs, and docs), which are by design
9 # parallel-installable, while installing only one version of the utils
10 # (dev-util/reswrap) and apps (app-editors/adie, sci-calculators/calculator,
11 # x11-misc/pathfinder, and x11-misc/shutterbug).
12 #
13 # Version numbering follows the kernel-style odd-even minor version
14 # designation. Even-number minor versions are API stable, which patch
15 # releases aimed mostly at the library; apps generally won't need to be
16 # bumped for a patch release.
17 #
18 # Odd-number versions are development branches with their own SLOT and
19 # are API unstable; changes are made to the apps, and likely need to be
20 # bumped together with the library.
21 #
22 # Here are sample [R]DEPENDs for the fox apps
23 # fox versions that do not use this eclass are blocked in INCOMPAT_DEP below
24 # 1.0: '=x11-libs/fox-1.0*'
25 # 1.2: '=x11-libs/fox-1.2*'
26 # 1.4: '=x11-libs/fox-1.4*'
27 # 1.5: '~x11-libs/fox-${PV}'
28 # 1.6: '=x11-libs/fox-${FOXVER}*'
29 #
30 # Some concepts borrowed from gst-plugins and gtk-sharp-component eclasses
31
32 inherit eutils libtool versionator
33
34
35 FOX_PV="${FOX_PV:-${PV}}"
36 PVP=(${FOX_PV//[-\._]/ })
37 FOXVER="${PVP[0]}.${PVP[1]}"
38
39 if [ "${FOXVER}" != "1.0" ] ; then
40 FOXVER_SUFFIX="-${FOXVER}"
41 fi
42
43 DESCRIPTION="C++ based Toolkit for developing Graphical User Interfaces easily and effectively"
44 HOMEPAGE="http://www.fox-toolkit.org/"
45 SRC_URI="http://www.fox-toolkit.org/ftp/fox-${FOX_PV}.tar.gz"
46
47 IUSE="debug doc profile"
48
49 # from fox-1.0
50 FOX_APPS="adie calculator pathfinder"
51 # from fox-1.2+
52 if [ "${FOXVER}" != "1.0" ] ; then
53 FOX_APPS="${FOX_APPS} shutterbug"
54 FOX_CHART="chart"
55 fi
56
57 if [ "${PN}" != fox ] ; then
58 FOX_COMPONENT="${FOX_COMPONENT:-${PN}}"
59 fi
60
61 if [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
62 DOXYGEN_DEP="doc? ( app-doc/doxygen )"
63 fi
64
65 if [ "${PN}" != reswrap ] ; then
66 RESWRAP_DEP="dev-util/reswrap"
67 fi
68
69 # These versions are not compatible with new fox layout
70 # and will cause collissions - we need to block them
71 INCOMPAT_DEP="!<x11-libs/fox-1.0.53
72 !=x11-libs/fox-1.2.4
73 !~x11-libs/fox-1.2.6
74 !=x11-libs/fox-1.4.11"
75
76 DEPEND="${INCOMPAT_DEP}
77 ${DOXYGEN_DEP}
78 ${RESWRAP_DEP}
79 =sys-devel/automake-1.4*
80 >=sys-apps/sed-4"
81
82 S="${WORKDIR}/fox-${FOX_PV}"
83
84 fox_src_unpack() {
85 unpack ${A}
86 cd ${S}
87
88 ebegin "Fixing configure"
89
90 # Respect system CXXFLAGS
91 sed -i -e 's:CXXFLAGS=""::' configure.in || die "sed configure.in error"
92 touch aclocal.m4
93 sed -i -e 's:CXXFLAGS=""::' configure || die "sed configure error"
94
95 eend
96
97 ebegin "Fixing Makefiles"
98
99 # don't build apps from top-level (i.e. x11-libs/fox)
100 # utils == reswrap
101 for d in ${FOX_APPS} utils windows ; do
102 sed -i -e "s:${d}::" Makefile.am || die "sed Makefile.am error"
103 done
104
105 # use the installed reswrap for everything else
106 for d in ${FOX_APPS} ${FOX_CHART} tests ; do
107 sed -i -e 's:$(top_builddir)/utils/reswrap:reswrap:' \
108 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
109 done
110
111 # use the installed headers and library for apps
112 for d in ${FOX_APPS} ; do
113 if version_is_at_least "1.6.34" ${PV} ; then
114 sed -i \
115 -e "s:-I\$(top_srcdir)/include -I\$(top_builddir)/include:-I\$(includedir)/fox${FOXVER_SUFFIX}:" \
116 -e 's:$(top_builddir)/src/libFOX:-lFOX:' \
117 -e 's:\.la::' \
118 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
119 else
120 sed -i \
121 -e "s:-I\$(top_srcdir)/include -I\$(top_builddir)/include:-I\$(includedir)/fox${FOXVER_SUFFIX}:" \
122 -e 's:../src/libFOX:-lFOX:' \
123 -e 's:\.la::' \
124 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
125 fi
126 done
127
128 # Upstream often has trouble with version number transitions
129 if [ "${FOXVER}" == "1.5" ] ; then
130 sed -i -e 's:1.4:1.5:g' chart/Makefile.am
131 fi
132
133 eend
134
135 ebegin "Running automake"
136 automake-1.4 -a -c || die "automake error"
137 eend
138
139 elibtoolize
140 }
141
142 fox_src_compile() {
143 local myconf
144 use debug && myconf="${myconf} --enable-debug" \
145 || myconf="${myconf} --enable-release"
146
147 econf \
148 ${FOXCONF} \
149 ${myconf} \
150 $(use_with profile profiling) \
151 || die "configure error"
152
153 cd ${S}/${FOX_COMPONENT}
154 emake || die "compile error"
155
156 # build class reference docs (FOXVER >= 1.2)
157 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
158 cd ${S}/doc
159 make docs || die "doxygen error"
160 fi
161 }
162
163 fox_src_install () {
164 cd ${S}/${FOX_COMPONENT}
165
166 make install \
167 DESTDIR=${D} \
168 htmldir=/usr/share/doc/${PF}/html \
169 artdir=/usr/share/doc/${PF}/html/art \
170 screenshotsdir=/usr/share/doc/${PF}/html/screenshots \
171 || die "install error"
172
173 # create desktop menu items for apps
174 case ${FOX_COMPONENT} in
175 adie)
176 newicon big_gif.gif adie.gif
177 make_desktop_entry adie "Adie Text Editor" adie.gif
178 ;;
179 calculator)
180 newicon bigcalc.gif foxcalc.gif
181 make_desktop_entry calculator "FOX Calculator" foxcalc.gif
182 ;;
183 pathfinder)
184 newicon iconpath.gif pathfinder.gif
185 make_desktop_entry PathFinder "PathFinder" pathfinder.gif "FileManager"
186 ;;
187 shutterbug)
188 doicon shutterbug.gif
189 make_desktop_entry shutterbug "ShutterBug" shutterbug.gif "Graphics"
190 ;;
191 esac
192
193 for doc in ADDITIONS AUTHORS LICENSE_ADDENDUM README TRACING ; do
194 [ -f $doc ] && dodoc $doc
195 done
196
197 # remove documentation if USE=-doc
198 if ( ! use doc ) && [ -d ${D}/usr/share/doc/${PF}/html ] ; then
199 rm -fr ${D}/usr/share/doc/${PF}/html
200 fi
201
202 # install class reference docs (FOXVER >= 1.2) if USE=doc
203 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
204 dohtml -r ${S}/doc/ref
205 fi
206
207 # slot fox-config where present (FOXVER >= 1.2)
208 if [ -f ${D}/usr/bin/fox-config ] ; then
209 mv ${D}/usr/bin/fox-config ${D}/usr/bin/fox-${FOXVER}-config
210 fi
211 }
212
213 fox_pkg_postinst() {
214 if [ -z "${FOX_COMPONENT}" ] ; then
215 echo
216 einfo "Multiple versions of the FOX Toolkit library may now be installed"
217 einfo "in parallel SLOTs on the same system."
218 einfo
219 einfo "The reswrap utility and the applications included in the FOX Toolkit"
220 einfo "(adie, calculator, pathfinder, shutterbug) are now available as"
221 einfo "separate ebuilds."
222 echo
223 if [ "${FOXVER}" != "1.0" ] ; then
224 einfo "The fox-config script has been installed as fox-${FOXVER}-config."
225 einfo "The fox-wrapper package is used to direct calls to fox-config"
226 einfo "to the correct versioned script, based on the WANT_FOX variable."
227 einfo "For example:"
228 einfo
229 einfo " WANT_FOX=\"${FOXVER}\" fox-config <options>"
230 einfo
231 epause
232 fi
233 fi
234 }
235
236 EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst

  ViewVC Help
Powered by ViewVC 1.1.20