summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Hadaway <raker@gentoo.org>2003-07-02 08:08:11 +0000
committerNick Hadaway <raker@gentoo.org>2003-07-02 08:08:11 +0000
commitac82a0b64bb97a65b95d7e59a29e1fa73b5c8b58 (patch)
tree98b73bacba396f57663a6c7a29d232df9f30ea40 /eclass/gnustep.eclass
parentinitial import (diff)
downloadhistorical-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.eclass140
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