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

Contents of /eclass/fox.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download)
Mon Jul 11 15:08:06 2005 UTC (9 years, 5 months ago) by swegener
Branch: MAIN
Changes since 1.3: +12 -13 lines
QA: Apply whitespace checks from repoman to eclasses.

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.3 2005/07/06 20:23:20 agriffis 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, based on the first versions
23 # in each branch to use this eclass:
24 # 1.0: '>=x11-libs/fox-1.0.53 <x11-libs/fox-1.1'
25 # 1.2: '>=x11-libs/fox-1.2.15 <x11-libs/fox-1.3'
26 # 1.4: '>=x11-libs/fox-1.4.12 <x11-libs/fox-1.5'
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 DEPEND="${DOXYGEN_DEP}
70 ${RESWRAP_DEP}
71 =sys-devel/automake-1.4*
72 >=sys-apps/sed-4"
73
74 S="${WORKDIR}/fox-${FOX_PV}"
75
76 fox_src_unpack() {
77 unpack ${A}
78 cd ${S}
79
80 ebegin "Fixing configure"
81
82 # Respect system CXXFLAGS
83 sed -i -e 's:CXXFLAGS=""::' configure.in || die "sed configure.in error"
84 touch aclocal.m4
85 sed -i -e 's:CXXFLAGS=""::' configure || die "sed configure error"
86
87 eend
88
89 ebegin "Fixing Makefiles"
90
91 # don't build apps from top-level (i.e. x11-libs/fox)
92 # utils == reswrap
93 for d in ${FOX_APPS} utils windows ; do
94 sed -i -e "s:${d}::" Makefile.am || die "sed Makefile.am error"
95 done
96
97 # use the installed reswrap for everything else
98 for d in ${FOX_APPS} ${FOX_CHART} tests ; do
99 sed -i -e 's:$(top_builddir)/utils/reswrap:reswrap:' \
100 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
101 done
102
103 # use the installed headers and library for apps
104 for d in ${FOX_APPS} ; do
105 sed -i \
106 -e "s:-I\$(top_srcdir)/include -I\$(top_builddir)/include:-I\$(includedir)/fox${FOXVER_SUFFIX}:" \
107 -e 's:../src/libFOX:-lFOX:' \
108 -e 's:\.la::' \
109 ${d}/Makefile.am || die "sed ${d}/Makefile.am error"
110 done
111
112 # Upstream often has trouble with version number transitions
113 if [ "${FOXVER}" == "1.5" ] ; then
114 sed -i -e 's:1.4:1.5:g' chart/Makefile.am
115 fi
116
117 eend
118
119 ebegin "Running automake"
120 automake-1.4 -a -c || die "automake error"
121 eend
122
123 elibtoolize
124 }
125
126 fox_src_compile() {
127 local myconf
128 use debug && myconf="${myconf} --enable-debug" \
129 || myconf="${myconf} --enable-release"
130
131 econf \
132 ${FOXCONF} \
133 ${myconf} \
134 $(use_with profile profiling) \
135 || die "configure error"
136
137 cd ${S}/${FOX_COMPONENT}
138 emake || die "compile error"
139
140 # build class reference docs (FOXVER >= 1.2)
141 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
142 cd ${S}/doc
143 make docs || die "doxygen error"
144 fi
145 }
146
147 fox_src_install () {
148 cd ${S}/${FOX_COMPONENT}
149
150 make install \
151 DESTDIR=${D} \
152 htmldir=/usr/share/doc/${PF}/html \
153 artdir=/usr/share/doc/${PF}/html/art \
154 screenshotsdir=/usr/share/doc/${PF}/html/screenshots \
155 || die "install error"
156
157 # create desktop menu items for apps
158 case ${FOX_COMPONENT} in
159 adie)
160 newicon big_gif.gif adie.gif
161 make_desktop_entry adie "Adie Text Editor" adie.gif
162 ;;
163 calculator)
164 newicon bigcalc.gif foxcalc.gif
165 make_desktop_entry calculator "FOX Calculator" foxcalc.gif
166 ;;
167 pathfinder)
168 newicon iconpath.gif pathfinder.gif
169 make_desktop_entry PathFinder "PathFinder" pathfinder.gif "FileManager"
170 ;;
171 shutterbug)
172 doicon shutterbug.gif
173 make_desktop_entry shutterbug "ShutterBug" shutterbug.gif "Graphics"
174 ;;
175 esac
176
177 for doc in ADDITIONS AUTHORS LICENSE_ADDENDUM README TRACING ; do
178 [ -f $doc ] && dodoc $doc
179 done
180
181 # remove documentation if USE=-doc
182 if ( ! use doc ) && [ -d ${D}/usr/share/doc/${PF}/html ] ; then
183 rm -fr ${D}/usr/share/doc/${PF}/html
184 fi
185
186 # install class reference docs (FOXVER >= 1.2) if USE=doc
187 if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
188 dohtml -r ${S}/doc/ref
189 fi
190
191 # slot fox-config where present (FOXVER >= 1.2)
192 if [ -f ${D}/usr/bin/fox-config ] ; then
193 mv ${D}/usr/bin/fox-config ${D}/usr/bin/fox-${FOXVER}-config
194 fi
195 }
196
197 fox_pkg_postinst() {
198 if [ -z "${FOX_COMPONENT}" ] ; then
199 echo
200 einfo "Multiple versions of the FOX Toolkit library may now be installed"
201 einfo "in parallel SLOTs on the same system."
202 einfo
203 einfo "The reswrap utility and the applications included in the FOX Toolkit"
204 einfo "(adie, calculator, pathfinder, shutterbug) are now available as"
205 einfo "separate ebuilds."
206 echo
207 if [ "${FOXVER}" != "1.0" ] ; then
208 einfo "The fox-config script has been installed as fox-${FOXVER}-config."
209 einfo "The fox-wrapper package is used to direct calls to fox-config"
210 einfo "to the correct versioned script, based on the WANT_FOX variable."
211 einfo "For example:"
212 einfo
213 einfo " WANT_FOX=\"${FOXVER}\" fox-config <options>"
214 einfo
215 epause
216 fi
217 fi
218 }
219
220 EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst

  ViewVC Help
Powered by ViewVC 1.1.20