diff options
author | Nick Hadaway <raker@gentoo.org> | 2003-07-02 08:08:11 +0000 |
---|---|---|
committer | Nick Hadaway <raker@gentoo.org> | 2003-07-02 08:08:11 +0000 |
commit | ac82a0b64bb97a65b95d7e59a29e1fa73b5c8b58 (patch) | |
tree | 98b73bacba396f57663a6c7a29d232df9f30ea40 /eclass/gnustep.eclass | |
parent | initial import (diff) | |
download | historical-ac82a0b64bb97a65b95d7e59a29e1fa73b5c8b58.tar.gz historical-ac82a0b64bb97a65b95d7e59a29e1fa73b5c8b58.tar.bz2 historical-ac82a0b64bb97a65b95d7e59a29e1fa73b5c8b58.zip |
A new gnustep eclass based off of a submission by Zhen Lin.
Diffstat (limited to 'eclass/gnustep.eclass')
-rw-r--r-- | eclass/gnustep.eclass | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/eclass/gnustep.eclass b/eclass/gnustep.eclass new file mode 100644 index 000000000000..2121f8de2f7f --- /dev/null +++ b/eclass/gnustep.eclass @@ -0,0 +1,140 @@ +ECLASS=gnustep +INHERITED="$INHERITED $ECLASS" + +DESCRIPTION="Based on the gnustep eclass." + +newdepend /c +newdepend dev-util/gnustep-make +newdepend dev-util/gnustep-base + +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 + newdepend ">=dev-util/gnustep-gui-$1" + RDEPEND="${RDEPEND} >=dev-util/gnustep-back-$1" + else + newdepend "dev-util/gnustep-gui" + RDEPEND="${RDEPEND} dev-util/gnustep-back" + fi +} + +egnustepmake() { + getsourcedir + + addwrite ~/GNUstep/Defaults/.GNUstepDefaults.lck + addpredict ~/GNUstep + + cd ${S} + + 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 + econf \ + HOME=$TMP/fakehome \ + GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ + || die "configure failed" + else + econf \ + HOME=$TMP/fakehome \ + GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep \ + $* || die "configure failed (options: $*)" + fi + fi + + if [ ! "${GNUSTEPBACK_XFT}" -eq 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 + 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 ~/GNUstep/Defaults/.GNUstepDefaults.lck + addpredict ~/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 + + mkdir -p $TMP/fakehome/GNUstep + + 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 \ + GNUSTEP_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ + 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" + fi + else + die "no Makefile found" + fi + return 0 +} + +gnustep_src_compile() { + egnustepmake || die +} + +gnustep_src_install() { + egnustepinstall || die +} + +EXPORT_FUNCTIONS src_compile src_install |