ECLASS=gnustep INHERITED="$INHERITED $ECLASS" DESCRIPTION="Based on the gnustep eclass." newdepend /c newdepend dev-util/gnustep-make newdepend dev-util/gnustep-base debug-print "gnustep.eclass 1.2" getsourcedir() { if [ "${S}" != "${WORKDIR}" ] || [ ! -d "${S}" ] ; then if [ -d "${WORKDIR}/${PN}" ] ; then S="${WORKDIR}/${PN}" elif [ -d "${WORKDIR}/${P}" ] ; then S="${WORKDIR}/${P}" elif [ "${MY_P}" ] && [ -d "${WORKDIR}/${MY_P}" ] ; then S="${WORKDIR}/${MY_P}" elif [ "${MY_PN}" ] && [ -d "${WORKDIR}/${MY_PN}" ] ; then S="${WORKDIR}/${MY_PN}" elif [ "${MY_PN}" ] && [ -d "${WORKDIR}/${MY_PN}-${PV}" ] ; then S="${WORKDIR}/${MY_PN}-${PV}" elif [ "${MY_PN}" ] && [ "${MY_PV}" ] && [ -d "${WORKDIR}/${MY_PN}-${MY_PV}" ] ; then S="${WORKDIR}/${MY_PN}-${MY_PV}" else LCASE_PN="$(echo "${PN}" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" LCASE_MY_PN="$(echo "${MY_PN}" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" LCASE_MY_P="$(echo "${MY_P}" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" cd "${WORKDIR}" for DIR in * do LCASE_DIR="$(echo "${DIR}" | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/')" if [ "${LCASE_PN}" = "${LCASE_DIR}" ] || [ "${LCASE_PN}-${PV}" = "${LCASE_DIR}" ] || [ "${LCASE_MY_PN}" = "${LCASE_DIR}" ] || [ "${LCASE_MY_PN}-${PV}" = "${LCASE_DIR}" ] || [ "${LCASE_MY_PN}-${MY_PV}" = "${LCASE_DIR}" ] || [ "${LCASE_MY_P}" = "${LCASE_DIR}" ] ; then export S="${DIR}" return fi done # Worst case S="${WORKDIR}/$(ls -1 ${WORKDIR} | head -n 1)" if [ ! -d "${S}" ] ; then die "Cannot find source directory!" fi fi fi export S } 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 if [ "${PN}" != "gnustep-make" ] ; then addwrite `/usr/GNUstep/System/Makefiles/*/*/user_home`/GNUstep/Defaults/.GNUstepDefaults.lck addpredict `/usr/GNUstep/System/Makefiles/*/*/user_home`/GNUstep # export HOME=$TMP/fakehome # export GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep mkdir -p $TMP/fakehome/GNUstep fi cd ${S} if [ "${PN}" != "gnustep-make" ] ; then if [ -f /usr/GNUstep/System/Makefiles/GNUstep.sh ] ; then source /usr/GNUstep/System/Makefiles/GNUstep.sh elif [ -f /usr/GNUstep/System/Library/Makefiles/GNUstep.sh ] ; then source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh else die "gnustep-make not installed!" fi fi if [ -z "${OBJCFLAGS}" ] ; then export OBJCFLAGS="${CFLAGS}" fi if [ -x configure ] ; then if [ "${PN}" != "gnustep-make" ] ; then if [ -z "$*" ] ; then econf || die "econf failed" else econf $* || die "econf failed (options: $*)" fi else if [ -z "$*" ] ; then econf \ --prefix=/usr/GNUstep || die "econf failed" else econf \ --prefix=/usr/GNUstep \ $* || die "econf failed (options: $*)" fi fi fi if [ -n "${GNUSTEPBACK_XFT}" ] && [ ! "${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 \ ADDITIONAL_OBJCFLAGS="${OBJCFLAGS}" \ ADDITIONAL_CFLAGS="${CFLAGS}" \ ADDITIONAL_CCFLAGS="${CXXFLAGS}" || die "emake failed" else die "no Makefile found" fi return 0 } egnustepinstall() { getsourcedir if [ "${PN}" != "gnustep-make" ] ; then addwrite `/usr/GNUstep/System/Makefiles/*/*/user_home`/GNUstep/Defaults/.GNUstepDefaults.lck addpredict `/usr/GNUstep/System/Makefiles/*/*/user_home`/GNUstep fi cd ${S} if [ "${PN}" != "gnustep-make" ] ; then if [ -f /usr/GNUstep/System/Makefiles/GNUstep.sh ] ; then source /usr/GNUstep/System/Makefiles/GNUstep.sh elif [ -f /usr/GNUstep/System/Library/Makefiles/GNUstep.sh ] ; then source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh else die "gnustep-make not installed!" fi # export HOME=$TMP/fakehome # export GNUSTEP_USER_ROOT=$TMP/fakehome/GNUstep mkdir -p $TMP/fakehome/GNUstep fi 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_INSTALLATION_DIR=${D}${GNUSTEP_SYSTEM_ROOT} \ INSTALL_ROOT_DIR=${D} \ install || die "einstall failed" elif [ "${PN}" = "gnustep-make" ] ; then make \ GNUSTEP_SYSTEM_ROOT=${D}/usr/GNUstep/System \ GNUSTEP_LOCAL_ROOT=${D}/usr/GNUstep/Local \ GNUSTEP_NETWORK_ROOT=${D}/usr/GNUstep/Network \ GNUSTEP_USER_ROOT=${D}/root/GNUstep \ install || die "einstall failed" else make \ 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 if [ "${PN}" = "gnustep-make" ] ; then find ${D}/usr/GNUstep/System -name 'config.make' -exec sed 's:^OPTFLAG[[:space:]]*=.*:OPTFLAG =:g' -i {} \; fi return 0 } gnustep_src_compile() { egnustepmake || die } gnustep_src_install() { egnustepinstall || die } EXPORT_FUNCTIONS src_compile src_install