diff options
author | Armando Di Cianno <fafhrd@gentoo.org> | 2004-09-24 01:01:30 +0000 |
---|---|---|
committer | Armando Di Cianno <fafhrd@gentoo.org> | 2004-09-24 01:01:30 +0000 |
commit | 21a2dee1d7a73aa3619871284cf0f1c2a58a737a (patch) | |
tree | 45f518fbc36591961c9baa13305dc6d5cea2296b /eclass/gnustep.eclass | |
parent | -hardened (diff) | |
download | historical-21a2dee1d7a73aa3619871284cf0f1c2a58a737a.tar.gz historical-21a2dee1d7a73aa3619871284cf0f1c2a58a737a.tar.bz2 historical-21a2dee1d7a73aa3619871284cf0f1c2a58a737a.zip |
Major commit of many files relating to updated GNUstep ebuidlds
Diffstat (limited to 'eclass/gnustep.eclass')
-rw-r--r-- | eclass/gnustep.eclass | 261 |
1 files changed, 151 insertions, 110 deletions
diff --git a/eclass/gnustep.eclass b/eclass/gnustep.eclass index ce4593b38944..a978a25c21dd 100644 --- a/eclass/gnustep.eclass +++ b/eclass/gnustep.eclass @@ -1,133 +1,119 @@ -# Copyright 1999-2004 Gentoo Foundation +# Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/gnustep.eclass,v 1.11 2004/08/06 21:35:36 fafhrd Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/gnustep.eclass,v 1.12 2004/09/24 01:01:30 fafhrd Exp $ -ECLASS=gnustep-old -INHERITED="$INHERITED $ECLASS" - -DESCRIPTION="Based on the gnustep eclass." - -DEPEND="gnustep-base/gnustep-make - gnustep-base/gnustep-base - sys-devel/gcc - virtual/libc" -RDEPEND="virtual/libc" - -getsourcedir() { - if [ ! -d "${S}" ] ; then - if [ -d "${WORKDIR}/${PN}" ] ; then - S="${WORKDIR}/${PN}" - elif [ -d "${WORKDIR}/${P}" ] ; then - S="${WORKDIR}/${P}" - else - die "Cannot find source directory!" - fi - fi -} - -need-gnustep-gui() { - if [ "$1" ] ; then - DEPEND="${DEPEND} >=gnustep-base/gnustep-gui-$1" - RDEPEND="${RDEPEND} >=gnustep-base/gnustep-back-$1" - else - DEPEND="${DEPEND} gnustep-base/gnustep-gui" - RDEPEND="${RDEPEND} gnustep-base/gnustep-back" - fi -} - -egnustepmake() { - getsourcedir - - addwrite /root/GNUstep/Defaults/.GNUstepDefaults.lck - addpredict /root/GNUstep +inherit eutils flag-o-matic - cd ${S} +ECLASS=gnustep +INHERITED="$INHERITED $ECLASS" +DESCRIPTION="EClass designed to facilitate building GNUstep Apps, Frameworks, and Bundles on Gentoo." + +IUSE="debug" +DOC_DEPEND="doc? ( =app-text/tetex-2.0.2* + =dev-tex/latex2html-2002* + =app-text/texi2html-1.64* )" +GNUSTEP_CORE_DEPEND="virtual/glibc + >=sys-devel/gcc-3.0.4 + ${DOC_DEPEND}" +GNUSTEP_BASE_DEPEND="${GNUSTEP_CORE_DEPEND} + gnustep-base/gnustep-make + gnustep-base/gnustep-base" +GNUSTEP_GUI_DEPEND="${GNUSTEP_BASE_DEPEND} + gnustep-base/gnustep-gui" +GS_DEPEND="${GNUSTEP_GUI_DEPEND}" +DEBUG_DEPEND="debug? >=sys-devel/gdb-6.0" +DOC_RDEPEND="doc? ( sys-apps/man + =sys-apps/texinfo-4.6* )" +GS_RDEPEND="${GS_DEPEND} + ${DEBUG_DEPEND} + ${DOC_RDEPEND} + virtual/gnustep-back + gnustep-base/gnustep-env" + +egnustep_env() { if [ -f /usr/GNUstep/System/Makefiles/GNUstep.sh ] ; then . /usr/GNUstep/System/Makefiles/GNUstep.sh else die "gnustep-make not installed!" fi +} - mkdir -p $TMP/fakehome/GNUstep - - if [ -x configure ] ; then - if [ -z "$*" ] ; then - ./configure \ - HOME=$TMP/fakehome \ - GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ - || die "configure failed" +egnustep_make() { + if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then + if [ `use debug` ]; then + emake -j1 HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \ + INSTALL_ROOT_DIR=${D} \ + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \ + GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \ + GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \ + debug=yes all || die "package make failed" else - ./configure \ - HOME=$TMP/fakehome \ - GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ - $* || die "configure failed (options: $*)" - fi - fi - - if [ "${GNUSTEPBACK_XFT}" != "2" ] ; then - if [ "${PN}" = "gnustep-back" ] ; then - if [ ! -f "/usr/X11R6/include/X11/Xft1/Xft.h" ]; then - sed "s,^#define HAVE_XFT.*,#undef HAVE_XFT,g" config.h > config.h.new - sed "s,^#define HAVE_UTF8.*,#undef HAVE_UTF8,g" config.h.new > config.h - sed "s,^WITH_XFT=.*,WITH_XFT=no," config.make > config.make.new - sed "s,-lXft,," config.make.new > config.make - fi + emake -j1 HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \ + INSTALL_ROOT_DIR=${D} \ + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \ + GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \ + GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \ + all || die "package make failed" fi - fi - - if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then - make \ - HOME=$TMP/fakehome \ - GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ - || die "emake failed" else die "no Makefile found" fi return 0 } -egnustepinstall() { - getsourcedir - - addwrite /root/GNUstep/Defaults/.GNUstepDefaults.lck - addpredict /root/GNUstep - - cd ${S} - - if [ -f /usr/GNUstep/System/Makefiles/GNUstep.sh ] ; then - source /usr/GNUstep/System/Makefiles/GNUstep.sh - else - die "gnustep-make not installed!" - fi +egnustep_package_config() { + if [ -f ${FILESDIR}/config-${PN}.sh ]; then + dodir /usr/GNUstep/System/Tools/Gentoo + exeinto /usr/GNUstep/System/Tools/Gentoo + doexe ${FILESDIR}/config-${PN}.sh + fi +} - mkdir -p $TMP/fakehome/GNUstep +egnustep_package_config_info() { + if [ -f ${FILESDIR}/config-${PN}.sh ]; then + einfo "Make sure to set happy defaults for this package by executing:" + einfo " /usr/GNUstep/System/Tools/Gentoo/config-${PN}.sh" + einfo "as the user you will run the package as." + fi +} +egnustep_install() { if [ -f ./[mM]akefile -o -f ./GNUmakefile ] ; then - # To be or not to be evil? - # Should all the roots point at GNUSTEP_SYSTEM_ROOT to force - # install? - # GNUSTEP_USER_ROOT must be GNUSTEP_SYSTEM_ROOT, some malformed - # Makefiles install there. - if [ "${PN}" = "gnustep-base" ] || [ "${PN}" = "gnustep-gui" ] || [ "${PN}" = "gnustep-back" ] ; then - # for some reason, they need less tending to... - make \ - GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ - HOME=$TMP/fakehome \ + if [ `use debug` ]; then + emake -j1 HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \ + INSTALL_ROOT_DIR=${D} \ GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \ + GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \ + GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \ + debug=yes install || die "package install failed" + else + emake -j1 HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \ INSTALL_ROOT_DIR=${D} \ - install || die "einstall failed" - else - make \ - GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ - HOME=$TMP/fakehome \ - GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ - INSTALL_ROOT_DIR=${D} \ - GNUSTEP_LOCAL_ROOT=${D}${GNUSTEP_LOCAL_ROOT} \ - GNUSTEP_NETWORK_ROOT=${D}${GNUSTEP_NETWORK_ROOT} \ - GNUSTEP_SYSTEM_ROOT=${D}${GNUSTEP_SYSTEM_ROOT} \ - GNUSTEP_USER_ROOT=${D}${GNUSTEP_SYSTEM_ROOT} \ - install || die "einstall failed" + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \ + GNUSTEP_NETWORK_ROOT=${GNUSTEP_NETWORK_ROOT} \ + GNUSTEP_LOCAL_ROOT=${GNUSTEP_LOCAL_ROOT} \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \ + install || die "package install failed" fi else die "no Makefile found" @@ -135,12 +121,67 @@ egnustepinstall() { return 0 } +egnustep_doc() { + if [ -d ./Documentation ] ; then + cd Documentation + make HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + INSTALL_ROOT_DIR=${D} \ + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + all || die "doc make failed" + make HOME=${TMP} \ + GNUSTEP_USER_ROOT=${TMP}/GNUstep \ + GNUSTEP_DEFAULTS_ROOT=${TMP}/GNUstep \ + INSTALL_ROOT_DIR=${D} \ + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles \ + GNUSTEP_SYSTEM_ROOT=${GNUSTEP_SYSTEM_ROOT} \ + TAR_OPTIONS="${TAR_OPTIONS} --no-same-owner" \ + install || die "doc install failed" + cd .. + fi +} + +gnustep_pkg_setup() { + if test_version_info 3.3 + then + #einfo "Using gcc 3.3*" + # gcc 3.3 doesn't support certain 3.4.1 options, + # as well as having less specific -march options + replace-flags -march=pentium-m -march=pentium3 + filter-flags -march=k8 + filter-flags -march=athlon64 + filter-flags -march=opteron + strip-unsupported-flags + elif test_version_info 3.4 + then + einfo "Using gcc 3.4*" + fi +} + +gnustep_src_unpack() { + unpack ${A} + cd ${S} +} + gnustep_src_compile() { - egnustepmake || die + egnustep_env + egnustep_make || die } gnustep_src_install() { - egnustepinstall || die + egnustep_env + egnustep_install || die + if [ `use doc` ]; then + egnustep_env + egnustep_doc || die + fi + egnustep_package_config +} + +gnustep_pkg_postinst() { + egnustep_package_config_info } -EXPORT_FUNCTIONS src_compile src_install +EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postinst |