diff --git a/Makefile b/Makefile
index b50448c34760407190145245017c9784224ddce6..cd6899b1870bbc48674230f8a2aec92431ed9d1d 100644
--- a/Makefile
+++ b/Makefile
@@ -19,12 +19,22 @@ endif
 
 lisp ?= sbcl
 
+CCL ?= ccl
+CLISP ?= clisp
+SBCL ?= sbcl
+ECL ?= ecl
+CMUCL ?= cmucl
+ABCL ?= abcl
+SCL ?= scl
+ALLEGRO ?= alisp
+ALLEGROMODERN ?= mlisp
+
 # website, tag, install
 
 install: archive-copy
 
 archive:
-	sbcl --userinit /dev/null --sysinit /dev/null --load bin/make-helper.lisp \
+	${SBCL} --userinit /dev/null --sysinit /dev/null --load bin/make-helper.lisp \
 		--eval "(rewrite-license)" --eval "(quit)"
 	bin/make-tarball
 
@@ -76,31 +86,33 @@ test-upgrade:
 	cf="(handler-bind ((warning #'muffle-warning)) (format t \"cf~%\") (compile-file \"asdf.lisp\" :output-file \"$$fa\" :verbose t :print t))" ; \
 	lf="(handler-bind (#+sbcl (sb-kernel:redefinition-warning #'muffle-warning)) (format t \"lf\") (load \"$$fa\" :verbose t :print t))" ; \
 	te="(quit-on-error $$l (push #p\"${sourceDirectory}/test/\" asdf:*central-registry*) (princ \"te\") (asdf:oos 'asdf:load-op :test-module-depend :verbose t))" ; \
-	use_ccl () { li="ccl --quiet --load test/script-support" ; ev="--eval" ; } ; \
-	use_clisp () { li="/usr/bin/clisp --quiet --quiet -i test/script-support" ; ev="-x" ; } ; \
-	use_sbcl () { li="sbcl --noinform --load test/script-support" ; ev="--eval" ; } ; \
-	use_ecl () { li="ecl -load test/script-support" ; ev="-eval" ; } ; \
-	use_cmucl () { li="cmucl -load test/script-support" ; ev="-eval" ; } ; \
-	use_abcl () { li="abcl --noinform --load test/script-support" ; ev="--eval" ; } ; \
-	use_scl () { li="scl -load test/script-support" ; ev="-eval" ; } ; \
-	use_allegro () { li="alisp -L test/script-support" ; ev="-e" ; } ; \
+	use_ccl () { li="${CCL} --no-init --quiet --load" ; ev="--eval" ; } ; \
+	use_clisp () { li="${CLISP} -norc -ansi --quiet --quiet -i" ; ev="-x" ; } ; \
+	use_sbcl () { li="${SBCL} --noinform --no-userinit --load" ; ev="--eval" ; } ; \
+	use_ecl () { li="${ECL} -norc -load" ; ev="-eval" ; } ; \
+	use_cmucl () { li="${CMUCL} -noinit -load" ; ev="-eval" ; } ; \
+	use_abcl () { li="${ABCL} -noinit --noinform --load" ; ev="--eval" ; } ; \
+	use_scl () { li="${SCL} -noinit -load" ; ev="-eval" ; } ; \
+	use_allegro () { li="${ALLEGRO} -q -L" ; ev="-e" ; } ; \
+	use_allegromodern () { li="${ALLEGROMODERN} -q -L" ; ev="-e" ; } ; \
+	su=test/script-support ; \
 	for tag in 1.37 1.97 1.369 `git tag -l '2.0??'` ; do \
 	  use_${lisp} ; \
 	  lo="(handler-bind ((warning #'muffle-warning)) (load \"tmp/asdf-$${tag}.lisp\"))" ; \
 	  echo "Testing upgrade from ASDF $${tag}" ; \
 	  git show $${tag}:asdf.lisp > tmp/asdf-$${tag}.lisp ; \
-	  rm -f $$fa ; \
+	  rm -f $$fa ; lv="$$li $$su $$ev" ; \
 	  case ${lisp}:$$tag in \
 	    ecl:2.00[0-9]|ecl:2.01[0-6]) : Skip, because of get-uid ugliness ;; *) \
-	  ( set -x ; $$li $$ev "$$lo" $$ev "$$ll" $$ev "$$te" && \
-	    $$li $$ev "$$lo" $$ev "$$ll" $$ev "$$cf" $$ev "$$lf" $$ev "$$te" && \
-	    $$li $$ev "$$lo" $$ev "$$lf" $$ev "$$te" && \
-	    $$li $$ev "$$lf" $$ev "$$te" ) || { echo "upgrade FAILED" ; exit 1 ;} \
+	  ( set -x ; $$lv "$$lo" $$ev "$$ll" $$ev "$$te" && \
+	    $$lv "$$lo" $$ev "$$ll" $$ev "$$cf" $$ev "$$lf" $$ev "$$te" && \
+	    $$lv "$$lo" $$ev "$$lf" $$ev "$$te" && \
+	    $$lv "$$lf" $$ev "$$te" ) || { echo "upgrade FAILED" ; exit 1 ;} \
 	  ;; esac ; \
 	done
 
 test-forward-references:
-	if [ -f /usr/lib/sbcl/sbcl-dist.core ] ; then SBCL="/usr/bin/sbcl --core /usr/lib/sbcl/sbcl-dist.core" ; fi ; $${SBCL:-sbcl} --noinform --load ~/cl/asdf/asdf.lisp --eval '(sb-ext:quit)' 2>&1 | cmp - /dev/null
+	${SBCL} --noinform --load ~/cl/asdf/asdf.lisp --eval '(sb-ext:quit)' 2>&1 | cmp - /dev/null
 
 test-lisp:
 	@cd test; ${MAKE} clean;./run-tests.sh ${lisp} ${test-glob}
@@ -112,6 +124,12 @@ test-all-lisps:
 		${MAKE} test-lisp test-upgrade lisp=$$lisp || exit 1 ; \
 	done
 
+# test upgrade is a very long run... This does just the regression tests
+test-all-noupgrade:
+	@for lisp in ${lisps} ; do \
+		${MAKE} test-lisp lisp=$$lisp || exit 1 ; \
+	done
+
 test-all: test-forward-references doc test-all-lisps
 
 # Note that the debian git at git://git.debian.org/git/pkg-common-lisp/cl-asdf.git is stale,
@@ -123,12 +141,12 @@ debian-package: mrproper
 # Replace SBCL's ASDF with the current one. -- Not recommended now that SBCL has ASDF2.
 # for casual users, just use (asdf:load-system :asdf)
 replace-sbcl-asdf:
-	sbcl --eval '(compile-file "asdf.lisp" :output-file (format nil "~Aasdf/asdf.fasl" (sb-int:sbcl-homedir-pathname)))' --eval '(quit)'
+	${SBCL} --eval '(compile-file "asdf.lisp" :output-file (format nil "~Aasdf/asdf.fasl" (sb-int:sbcl-homedir-pathname)))' --eval '(quit)'
 
 # Replace CCL's ASDF with the current one. -- Not recommended now that CCL has ASDF2.
 # for casual users, just use (asdf:load-system :asdf)
 replace-ccl-asdf:
-	ccl --eval '(progn(compile-file "asdf.lisp" :output-file (format nil "~Atools/asdf.lx64fsl" (ccl::ccl-directory)))(quit))'
+	${CCL} --eval '(progn(compile-file "asdf.lisp" :output-file (compile-file-pathname (format nil "~Atools/asdf.lisp" (ccl::ccl-directory))))(quit))'
 
 WRONGFUL_TAGS := 1.37 1.1720 README RELEASE STABLE
 # Delete wrongful tags from local repository
@@ -152,8 +170,8 @@ TODO:
 release: TODO test-all test-on-other-machines-too debian-changelog debian-package send-mail-to-mailing-lists
 
 .PHONY: install archive archive-copy push doc website clean mrproper \
-	upgrade-test test-forward-references test test-lisp test-all test-all-lisps \
-	test-upgrade test-forward-references \
+	upgrade-test test-forward-references test test-lisp test-upgrade test-forward-references \
+	test-all test-all-lisps test-all-noupgrade \
 	debian-package release \
 	replace-sbcl-asdf replace-ccl-asdf \
 	fix-local-git-tags fix-remote-git-tags