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

Contents of /eclass/fox.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations) (download)
Mon Oct 30 22:14:18 2006 UTC (7 years, 10 months ago) by mabi
Branch: MAIN
Changes since 1.5: +6 -6 lines
Fixing suggested deps for fox.eclass (bug #153396)

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.5 2006/09/24 17:04:11 genstef 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
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 use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
62 DOXYGEN_DEP="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 sed -i \
114 -e "s:-I\$(top_srcdir)/include -I\$(top_builddir)/include:-I\$(includedir)/fox${FOXVER_SUFFIX}:" \
115 -e 's:../src/libFOX:-lFOX:' \
116 -e 's:\.la::' \
117 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
118 done
119
120 # Upstream often has trouble with version number transitions
121 if [ "${FOXVER}" == "1.5" ] ; then
122 sed -i -e 's:1.4:1.5:g' chart/Makefile.am
123 fi
124
125 eend
126
127 ebegin "Running automake"
128 automake-1.4 -a -c || die "automake error"
129 eend
130
131 elibtoolize
132 }
133
134 fox_src_compile() {
135 local myconf
136 use debug && myconf="${myconf} --enable-debug" \
137 || myconf="${myconf} --enable-release"
138
139 econf \
140 ${FOXCONF} \
141 ${myconf} \
142 $(use_with profile profiling) \
143 || die "configure error"
144
145 cd ${S}/${FOX_COMPONENT}
146 emake || die "compile error"
147
148 # build class reference docs (FOXVER >= 1.2)
149 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
150 cd ${S}/doc
151 make docs || die "doxygen error"
152 fi
153 }
154
155 fox_src_install () {
156 cd ${S}/${FOX_COMPONENT}
157
158 make install \
159 DESTDIR=${D} \
160 htmldir=/usr/share/doc/${PF}/html \
161 artdir=/usr/share/doc/${PF}/html/art \
162 screenshotsdir=/usr/share/doc/${PF}/html/screenshots \
163 || die "install error"
164
165 # create desktop menu items for apps
166 case ${FOX_COMPONENT} in
167 adie)
168 newicon big_gif.gif adie.gif
169 make_desktop_entry adie "Adie Text Editor" adie.gif
170 ;;
171 calculator)
172 newicon bigcalc.gif foxcalc.gif
173 make_desktop_entry calculator "FOX Calculator" foxcalc.gif
174 ;;
175 pathfinder)
176 newicon iconpath.gif pathfinder.gif
177 make_desktop_entry PathFinder "PathFinder" pathfinder.gif "FileManager"
178 ;;
179 shutterbug)
180 doicon shutterbug.gif
181 make_desktop_entry shutterbug "ShutterBug" shutterbug.gif "Graphics"
182 ;;
183 esac
184
185 for doc in ADDITIONS AUTHORS LICENSE_ADDENDUM README TRACING ; do
186 [ -f $doc ] && dodoc $doc
187 done
188
189 # remove documentation if USE=-doc
190 if ( ! use doc ) && [ -d ${D}/usr/share/doc/${PF}/html ] ; then
191 rm -fr ${D}/usr/share/doc/${PF}/html
192 fi
193
194 # install class reference docs (FOXVER >= 1.2) if USE=doc
195 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
196 dohtml -r ${S}/doc/ref
197 fi
198
199 # slot fox-config where present (FOXVER >= 1.2)
200 if [ -f ${D}/usr/bin/fox-config ] ; then
201 mv ${D}/usr/bin/fox-config ${D}/usr/bin/fox-${FOXVER}-config
202 fi
203 }
204
205 fox_pkg_postinst() {
206 if [ -z "${FOX_COMPONENT}" ] ; then
207 echo
208 einfo "Multiple versions of the FOX Toolkit library may now be installed"
209 einfo "in parallel SLOTs on the same system."
210 einfo
211 einfo "The reswrap utility and the applications included in the FOX Toolkit"
212 einfo "(adie, calculator, pathfinder, shutterbug) are now available as"
213 einfo "separate ebuilds."
214 echo
215 if [ "${FOXVER}" != "1.0" ] ; then
216 einfo "The fox-config script has been installed as fox-${FOXVER}-config."
217 einfo "The fox-wrapper package is used to direct calls to fox-config"
218 einfo "to the correct versioned script, based on the WANT_FOX variable."
219 einfo "For example:"
220 einfo
221 einfo " WANT_FOX=\"${FOXVER}\" fox-config <options>"
222 einfo
223 epause
224 fi
225 fi
226 }
227
228 EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst

  ViewVC Help
Powered by ViewVC 1.1.20