diff options
-rwxr-xr-x | bin/ebuild.sh | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/bin/ebuild.sh b/bin/ebuild.sh index e2e6f7783..1c864b04f 100755 --- a/bin/ebuild.sh +++ b/bin/ebuild.sh @@ -905,13 +905,17 @@ dyn_prepare() { return 0 fi - local srcdir if [[ -d $S ]] ; then - srcdir=$S + cd "${S}" + elif hasq $EAPI 0 1 2; then + cd "${WORKDIR}" + elif [[ -z ${A} ]] && \ + ! hasq unpack ${DEFINED_PHASES} && \ + ! hasq prepare ${DEFINED_PHASES} ; then + cd "${WORKDIR}" else - srcdir=$WORKDIR + die "The source directory '${S}' doesn't exist" fi - cd "$srcdir" trap abort_prepare SIGINT SIGQUIT @@ -934,6 +938,19 @@ dyn_configure() { return 0 fi + if [[ -d $S ]] ; then + cd "${S}" + elif hasq $EAPI 0 1 2; then + cd "${WORKDIR}" + elif [[ -z ${A} ]] && \ + ! hasq unpack ${DEFINED_PHASES} && \ + ! hasq prepare ${DEFINED_PHASES} && \ + ! hasq configure ${DEFINED_PHASES} ; then + cd "${WORKDIR}" + else + die "The source directory '${S}' doesn't exist" + fi + trap abort_configure SIGINT SIGQUIT [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE" @@ -957,6 +974,20 @@ dyn_compile() { return 0 fi + if [[ -d $S ]] ; then + cd "${S}" + elif hasq $EAPI 0 1 2; then + cd "${WORKDIR}" + elif [[ -z ${A} ]] && \ + ! hasq unpack ${DEFINED_PHASES} && \ + ! hasq prepare ${DEFINED_PHASES} && \ + ! hasq configure ${DEFINED_PHASES} && \ + ! hasq compile ${DEFINED_PHASES} ; then + cd "${WORKDIR}" + else + die "The source directory '${S}' doesn't exist" + fi + trap abort_compile SIGINT SIGQUIT [ -n "$EBUILD_PHASE" ] && rm -f "$T/logging/$EBUILD_PHASE" @@ -989,6 +1020,7 @@ dyn_test() { else cd "${WORKDIR}" fi + if ! hasq test $FEATURES && [ "${EBUILD_FORCE_TEST}" != "1" ]; then vecho ">>> Test phase [not enabled]: ${CATEGORY}/${PF}" elif hasq test $RESTRICT; then @@ -1023,11 +1055,22 @@ dyn_install() { ebuild_phase pre_src_install rm -rf "${PORTAGE_BUILDDIR}/image" mkdir "${PORTAGE_BUILDDIR}/image" - if [ -d "${S}" ]; then + local srcdir + if [[ -d $S ]] ; then cd "${S}" - else + elif hasq $EAPI 0 1 2; then cd "${WORKDIR}" + elif [[ -z ${A} ]] && \ + ! hasq unpack ${DEFINED_PHASES} && \ + ! hasq prepare ${DEFINED_PHASES} && \ + ! hasq configure ${DEFINED_PHASES} && \ + ! hasq compile ${DEFINED_PHASES} && \ + ! hasq install ${DEFINED_PHASES}; then + cd "${WORKDIR}" + else + die "The source directory '${S}' doesn't exist" fi + vecho vecho ">>> Install ${PF} into ${D} category ${CATEGORY}" #our custom version of libtool uses $S and $D to fix @@ -2014,13 +2057,6 @@ ebuild_main() { cp "$EBUILD" "build-info/$PF.ebuild" fi - local srcdir - if [[ -d $S ]] ; then - srcdir=$S - else - srcdir=$WORKDIR - fi - cd "$srcdir" #our custom version of libtool uses $S and $D to fix #invalid paths in .la files export S D |