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

Contents of /eclass/fox.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Wed Nov 30 09:59:33 2005 UTC (9 years ago) by chriswhite
Changes since 1.1: +12 -15 lines
*** empty log message ***

1 rphillips 1.1 # Copyright 1999-2005 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 chriswhite 1.1.1.1 # $Header: /var/cvsroot/gentoo-x86/eclass/fox.eclass,v 1.4 2005/07/11 15:08:06 swegener Exp $
4 rphillips 1.1
5     # fox eclass
6     #
7 chriswhite 1.1.1.1 # 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 chriswhite 1.1.1.1 # 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 chriswhite 1.1.1.1 # 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     # 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 chriswhite 1.1.1.1 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     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 chriswhite 1.1.1.1 DEPEND="${DOXYGEN_DEP}
70 rphillips 1.1 ${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 chriswhite 1.1.1.1 || myconf="${myconf} --enable-release"
130 rphillips 1.1
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 chriswhite 1.1.1.1 if [ -z "${FOX_COMPONENT}" ] ; then
199 rphillips 1.1 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