diff options
author | Ryan Phillips <rphillips@gentoo.org> | 2005-05-07 19:16:27 +0000 |
---|---|---|
committer | Ryan Phillips <rphillips@gentoo.org> | 2005-05-07 19:16:27 +0000 |
commit | 5e569011cd78fb48372a577db8b67451e091dc89 (patch) | |
tree | 7cc51e6951746abc8af8eddfea7173ddc0ab1922 /eclass | |
parent | Marked stable on SPARC wrt bug #90863. (diff) | |
download | historical-5e569011cd78fb48372a577db8b67451e091dc89.tar.gz historical-5e569011cd78fb48372a577db8b67451e091dc89.tar.bz2 historical-5e569011cd78fb48372a577db8b67451e091dc89.zip |
added fox eclass by Yaakov Selkowitz
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/fox.eclass | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/eclass/fox.eclass b/eclass/fox.eclass new file mode 100644 index 000000000000..15313fd809be --- /dev/null +++ b/eclass/fox.eclass @@ -0,0 +1,223 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/eclass/fox.eclass,v 1.1 2005/05/07 19:16:27 rphillips Exp $ + +# fox eclass +# +# This eclass allows building SLOT-able FOX Toolkit installations +# (x11-libs/fox: headers, libs, and docs), which are by design +# parallel-installable, while installing only one version of the utils +# (dev-util/reswrap) and apps (app-editors/adie, sci-calculators/calculator, +# x11-misc/pathfinder, and x11-misc/shutterbug). +# +# Version numbering follows the kernel-style odd-even minor version +# designation. Even-number minor versions are API stable, which patch +# releases aimed mostly at the library; apps generally won't need to be +# bumped for a patch release. +# +# Odd-number versions are development branches with their own SLOT and +# are API unstable; changes are made to the apps, and likely need to be +# bumped together with the library. +# +# Here are sample [R]DEPENDs for the fox apps, based on the first versions +# in each branch to use this eclass: +# 1.0: '>=x11-libs/fox-1.0.53 <x11-libs/fox-1.1' +# 1.2: '>=x11-libs/fox-1.2.15 <x11-libs/fox-1.3' +# 1.4: '>=x11-libs/fox-1.4.12 <x11-libs/fox-1.5' +# 1.5: '~x11-libs/fox-${PV}' +# 1.6: '=x11-libs/fox-${FOXVER}*' +# +# Some concepts borrowed from gst-plugins and gtk-sharp-component eclasses + +inherit eutils libtool + +ECLASS="fox" +INHERITED="$INHERITED $ECLASS" + +FOX_PV="${FOX_PV:-${PV}}" +PVP=(${FOX_PV//[-\._]/ }) +FOXVER="${PVP[0]}.${PVP[1]}" + +if [ "${FOXVER}" != "1.0" ] ; then + FOXVER_SUFFIX="-${FOXVER}" +fi + +DESCRIPTION="C++ based Toolkit for developing Graphical User Interfaces easily and effectively" +HOMEPAGE="http://www.fox-toolkit.org/" +SRC_URI="http://www.fox-toolkit.org/ftp/fox-${FOX_PV}.tar.gz" + +IUSE="debug doc profile" + +# from fox-1.0 +FOX_APPS="adie calculator pathfinder" +# from fox-1.2+ +if [ "${FOXVER}" != "1.0" ] ; then + FOX_APPS="${FOX_APPS} shutterbug" + FOX_CHART="chart" +fi + +if [ "${PN}" != fox ] ; then + FOX_COMPONENT="${FOX_COMPONENT:-${PN}}" +fi + +if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then + DOXYGEN_DEP="app-doc/doxygen" +fi + +if [ "${PN}" != reswrap ] ; then + RESWRAP_DEP="dev-util/reswrap" +fi + +DEPEND="${RDEPEND} + ${DOXYGEN_DEP} + ${RESWRAP_DEP} + =sys-devel/automake-1.4* + >=sys-apps/sed-4" + +S="${WORKDIR}/fox-${FOX_PV}" + +fox_src_unpack() { + unpack ${A} + cd ${S} + + ebegin "Fixing configure" + + # Respect system CXXFLAGS + sed -i -e 's:CXXFLAGS=""::' configure.in || die "sed configure.in error" + touch aclocal.m4 + sed -i -e 's:CXXFLAGS=""::' configure || die "sed configure error" + + eend + + ebegin "Fixing Makefiles" + + # don't build apps from top-level (i.e. x11-libs/fox) + # utils == reswrap + for d in ${FOX_APPS} utils windows ; do + sed -i -e "s:${d}::" Makefile.am || die "sed Makefile.am error" + done + + # use the installed reswrap for everything else + for d in ${FOX_APPS} ${FOX_CHART} tests ; do + sed -i -e 's:$(top_builddir)/utils/reswrap:reswrap:' \ + ${d}/Makefile.am || die "sed ${d}/Makefile.am error" + done + + # use the installed headers and library for apps + for d in ${FOX_APPS} ; do + sed -i \ + -e "s:-I\$(top_srcdir)/include -I\$(top_builddir)/include:-I\$(includedir)/fox${FOXVER_SUFFIX}:" \ + -e 's:../src/libFOX:-lFOX:' \ + -e 's:\.la::' \ + ${d}/Makefile.am || die "sed ${d}/Makefile.am error" + done + + # Upstream often has trouble with version number transitions + if [ "${FOXVER}" == "1.5" ] ; then + sed -i -e 's:1.4:1.5:g' chart/Makefile.am + fi + + eend + + ebegin "Running automake" + automake-1.4 -a -c || die "automake error" + eend + + elibtoolize +} + +fox_src_compile() { + local myconf + use debug && myconf="${myconf} --enable-debug" \ + || myconf="${myconf} --enable-release" + + econf \ + ${FOXCONF} \ + ${myconf} \ + $(use_with profile profiling) \ + || die "configure error" + + cd ${S}/${FOX_COMPONENT} + emake || die "compile error" + + # build class reference docs (FOXVER >= 1.2) + if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then + cd ${S}/doc + make docs || die "doxygen error" + fi +} + +fox_src_install () { + cd ${S}/${FOX_COMPONENT} + + make install \ + DESTDIR=${D} \ + htmldir=/usr/share/doc/${PF}/html \ + artdir=/usr/share/doc/${PF}/html/art \ + screenshotsdir=/usr/share/doc/${PF}/html/screenshots \ + || die "install error" + + # create desktop menu items for apps + case ${FOX_COMPONENT} in + adie) + newicon big_gif.gif adie.gif + make_desktop_entry adie "Adie Text Editor" adie.gif + ;; + calculator) + newicon bigcalc.gif foxcalc.gif + make_desktop_entry calculator "FOX Calculator" foxcalc.gif + ;; + pathfinder) + newicon iconpath.gif pathfinder.gif + make_desktop_entry PathFinder "PathFinder" pathfinder.gif "FileManager" + ;; + shutterbug) + doicon shutterbug.gif + make_desktop_entry shutterbug "ShutterBug" shutterbug.gif "Graphics" + ;; + esac + + for doc in ADDITIONS AUTHORS LICENSE_ADDENDUM README TRACING ; do + [ -f $doc ] && dodoc $doc + done + + # remove documentation if USE=-doc + if ( ! use doc ) && [ -d ${D}/usr/share/doc/${PF}/html ] ; then + rm -fr ${D}/usr/share/doc/${PF}/html + fi + + # install class reference docs (FOXVER >= 1.2) if USE=doc + if use doc && [ "${FOXVER}" != "1.0" ] && [ -z "${FOX_COMPONENT}" ] ; then + dohtml -r ${S}/doc/ref + fi + + # slot fox-config where present (FOXVER >= 1.2) + if [ -f ${D}/usr/bin/fox-config ] ; then + mv ${D}/usr/bin/fox-config ${D}/usr/bin/fox-${FOXVER}-config + fi +} + +fox_pkg_postinst() { + if [ -z "${FOX_COMPONENT}" ] ; then + echo + einfo "Multiple versions of the FOX Toolkit library may now be installed" + einfo "in parallel SLOTs on the same system." + einfo + einfo "The reswrap utility and the applications included in the FOX Toolkit" + einfo "(adie, calculator, pathfinder, shutterbug) are now available as" + einfo "separate ebuilds." + echo + if [ "${FOXVER}" != "1.0" ] ; then + einfo "The fox-config script has been installed as fox-${FOXVER}-config." + einfo "The fox-wrapper package is used to direct calls to fox-config" + einfo "to the correct versioned script, based on the WANT_FOX variable." + einfo "For example:" + einfo + einfo " WANT_FOX=\"${FOXVER}\" fox-config <options>" + einfo + epause + fi + fi +} + +EXPORT_FUNCTIONS src_unpack src_compile src_install pkg_postinst |