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

Contents of /eclass/fox.eclass

Parent Directory Parent Directory | Revision Log Revision Log


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

1 rphillips 1.1 # Copyright 1999-2005 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 mabi 1.8 # $Header: /var/cvsroot/gentoo-x86/eclass/fox.eclass,v 1.7 2007/01/15 20:27:06 mabi Exp $
4 rphillips 1.1
5     # fox eclass
6     #
7 swegener 1.4 # 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 rphillips 1.1 # (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 swegener 1.4 # 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 rphillips 1.1 # bumped for a patch release.
17     #
18 swegener 1.4 # 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 rphillips 1.1 # bumped together with the library.
21     #
22 mabi 1.6 # 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 rphillips 1.1 # 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 mabi 1.8 inherit eutils libtool versionator
33 rphillips 1.1
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 swegener 1.4 if [ "${FOXVER}" != "1.0" ] ; then
53 rphillips 1.1 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 mabi 1.7 if [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then
62     DOXYGEN_DEP="doc? ( app-doc/doxygen )"
63 rphillips 1.1 fi
64    
65     if [ "${PN}" != reswrap ] ; then
66     RESWRAP_DEP="dev-util/reswrap"
67     fi
68    
69 genstef 1.5 # 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 rphillips 1.1 ${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 mabi 1.8 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 rphillips 1.1 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 swegener 1.4 || myconf="${myconf} --enable-release"
146 rphillips 1.1
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 swegener 1.4 if [ -z "${FOX_COMPONENT}" ] ; then
215 rphillips 1.1 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