diff --git a/abuild b/abuild
index 9ba712c24e67634ac32d76979d9922254901fb42..2758b481c072c3a23048713d6f25f88c0bc882e9 100755
--- a/abuild
+++ b/abuild
@@ -521,14 +521,16 @@ listpkg() {
 
 usage() {
 	echo "$(basename $0) $abuild_ver"
-	echo "usage: $0 [options] [-i PKG] [cmd] ..."
+	echo "usage: $0 [options] [-i PKG] [-p PKGDEST] [-s SRCDEST] [cmd] ..."
 	echo "Options:"
 	echo " -f  Force specified cmd, even if they are already done"
 	echo " -h  Show this help"
 	echo " -i  Install PKG after successul build"
 	echo " -k  Keep built packages, even if APKBUILD or sources are newer"
+	echo " -p  Set package destination directory"
 	echo " -q  Quiet"
 	echo " -r  Recursively build and install missing dependencies (using sudo)"
+	echo " -s  Set source package destination directory"
 	echo " -u  Recursively build and upgrade dependencies (using sudo)"
 	echo ""
 	echo "Commands:"
@@ -551,28 +553,30 @@ usage() {
 	exit 0
 }
 
+
+# source the buildfile
 APKBUILD="${APKBUILD:-./APKBUILD}"
+[ -f "$APKBUILD" ] || die "Could not find $APKBUILD (PWD=$PWD)"
+. "$APKBUILD"
 
 unset force
 unset recursive
-while getopts "fhi:kqru" opt; do
+while getopts "fhi:kip:qrs:u" opt; do
 	case $opt in
 		'f') force=1;;
 		'h') usage;;
 		'i') install_after="$install_after $OPTARG";;
 		'k') keep=1;;
+		'p') PKGDEST=$OPTARG;;
 		'q') quiet=1;;
 		'r') recursive=1;;
+		's') SRCDEST=$OPTARG;;
 		'u') upgrade=1
 		     recursive=1;;
 	esac
 done
 shift $(( $OPTIND - 1 ))
 
-# source the buildfile
-[ -f "$APKBUILD" ] || die "Could not find $APKBUILD (PWD=$PWD)"
-. "$APKBUILD"
-
 # If we are handling a sub package then reset subpackages
 if [ -n "$subpkgname" ]; then
 	subpackages=