diff --git a/Makefile b/Makefile index 6dabae2d5de28120c19d751fe5cdf44222644423..74982d3594e798dcbe540245420e00815fdb95da 100644 --- a/Makefile +++ b/Makefile @@ -1,65 +1,277 @@ -# -*- Makefile -*- This minimal Makefile delegates most work to the asdf-tools script -# -# End-Users, all you need to do is: -# make -# -# Vendors, you may want to test your implementation with: -# make test l=sbcl -# BUT you first need have installed the development-time external dependencies of ASDF; -# this will be done automatically if you are using quicklisp; -# you can do it manually with your favorite tools (e.g. clbuild or git); -# or you can do it using `git submodule update` which is also available as: -# make ext -# To undo the `git submodule update` you can use: `make noext` -# -# Other targets are for maintainer use only. If you want a list of all of the targets, use -# make help -# -### Default fall back rule: delegate to asdf-tools. -# Note that the l= L= etc. are the only way I (Faré) have found to -# pass arguments from the Makefile to the underlying script: -# l= overrides $ASDF_TEST_LISPS to specify which lisp implementations to use -# L= overrides $ASDF_UPGRADE_TEST_LISPS (defaults to the former) to lisps during upgrade -# s= overrides $ASDF_TEST_SYSTEMS to specify systems with which to test ASDF -# t= overrides $ASDF_TESTS to specify test script patterns to use (default to *.script) -# u= overrides $ASDF_UPGRADE_TEST_TAGS to specify versions to upgrade from (e.g. 3.0.3 or REQUIRE) -# U= overrides $ASDF_UPGRADE_TEST_METHODS to specify upgrade methods -# v= overrides the default next version for bump-version or bump. -# see in tools/test-environment.lisp for details. -# Note that because of how make and the shell quote arguments, -# thou shalt not use the single-quote character in any of the short x= parameters -# (but you may use them in the long variant in the exported environment variable). -# To have a list of commands, see make help or ./tools/asdf-tools help -# Note that when you call ./tools/asdf-tools directly, -# you may have to use positional parameters instead (unless you use env as below), as in -# ./tools/asdf-tools bump 3.2.1 -# instead of -# make bump v=3.2.1 -# or -# ./make.sh v=3.2.1 bump -# or -# ./tools/asdf-tools env v=3.2.1 bump -# or -# v=3.2.1 ./tools/asdf-tools bump - -ifeq ($(OS),Windows_NT) - MAKE_SCRIPT := cmd /c make.bat +# Configuring this Makefile for your personal use: +# Set environment variable ASDF_TEST_LISPS to a space-separated list of values +# (see "defaultlisps" below, for an example). +# If you have a special way to find libraries that are used in the build and +# test process, you may bind ASDF_DEVEL_SOURCE_REGISTRY to a source registry to +# use (using the environment variable syntax), or bind it to "override" to use +# your normal CL source registry. Otherwise, it will use local copies of +# everything. + +system := "asdf" +webhome_private := common-lisp.net:/project/asdf/public_html/ +webhome_public := "http://common-lisp.net/project/asdf/" +clnet_home := "/project/asdf/public_html/" +sourceDirectory := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) + +#### Common Lisp implementations available for testing. +## export ASDF_TEST_LISPS to override the default list of such implementations, +## or specify a lisps= argument at the make command-line +defaultLisps = ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern gcl xcl mkcl +ifdef ASDF_TEST_LISPS +lisps ?= ${ASDF_TEST_LISPS} +else +lisps ?= ${defaultLisps} +endif +ifdef ASDF_UPGRADE_TEST_LISPS + ulisps ?= ${ASDF_UPGRADE_TEST_LISPS} else - MAKE_SCRIPT := ./make.sh + ifdef ASDF_TEST_LISPS + ulisps ?= ${ASDF_TEST_LISPS} + else + ulisps ?= ${defaultLisps} + endif +endif + + +## grep for #+/#- features in the test/ directory to see plenty of disabled tests on some platforms +## NOT SUPPORTED BY OUR AUTOMATED TESTS: +## cormancl genera lispworks-personal-edition rmcl +## Some are manually tested once in a while. +ifdef ASDF_TEST_SYSTEMS +s ?= ${ASDF_TEST_SYSTEMS} +endif + +ifdef ASDF_DEVEL_SOURCE_REGISTRY +ifeq ($(ASDF_DEVEL_SOURCE_REGISTRY), override) +# do nothing... Use the user's CL_SOURCE_REGISTRY +else +export CL_SOURCE_REGISTRY = ${ASDF_DEVEL_SOURCE_REGISTRY} +endif +else # no ASDF_DEVEL_SOURCE_REGISTRY +export CL_SOURCE_REGISTRY = ${sourceDirectory}/:${sourceDirectory}/uiop/:${sourceDirectory}/ext//: endif +l ?= sbcl + +ABCL ?= abcl +ALLEGRO ?= alisp +ALLEGROMODERN ?= mlisp +CCL ?= ccl +CLISP ?= clisp +CMUCL ?= cmucl +ECL ?= ecl +GCL ?= gcl +LISPWORKS ?= lispworks +MKCL ?= mkcl +SBCL ?= sbcl +SCL ?= scl +XCL ?= xcl + +header_lisp := header.lisp +driver_lisp := uiop/package.lisp uiop/common-lisp.lisp uiop/utility.lisp uiop/os.lisp uiop/pathname.lisp uiop/filesystem.lisp uiop/stream.lisp uiop/image.lisp uiop/run-program.lisp uiop/lisp-build.lisp uiop/configuration.lisp uiop/backward-driver.lisp uiop/driver.lisp +defsystem_lisp := upgrade.lisp component.lisp system.lisp cache.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp package-inferred-system.lisp backward-internals.lisp backward-interface.lisp interface.lisp user.lisp footer.lisp +all_lisp := $(header_lisp) $(driver_lisp) $(defsystem_lisp) + +# Making ASDF itself should be our first, default, target: +build/asdf.lisp: $(all_lisp) + mkdir -p build + rm -f $@ + cat $(all_lisp) > $@ + +ext: + git submodule update --init + +noext: + git submodule deinit . + +# This quickly locates such mistakes as unbalanced parentheses: +load: build/asdf.lisp + ./test/run-tests.sh -t $l $(all_lisp) + +install: archive + +bump: bump-version + git commit -a -m "Bump version to $$(eval a=$$(cat version.lisp-expr) ; echo $$a)" + temp=$$(cat version.lisp-expr); temp="$${temp%\"}"; temp="$${temp#\"}"; git tag $$temp + +bump-version: build/asdf.lisp + ./bin/bump-version ${v} + +driver-files: + @echo $(driver_lisp) + +defsystem-files: + @echo $(defsystem_lisp) + +# FIXME: needs rewrite +#archive: build/asdf.lisp +# ./bin/asdf-builder make-and-publish-archive + +### Count lines separately for asdf-driver and asdf itself: +wc: + @wc $(driver_lisp) | sort -n ; echo ; \ + wc $(header_lisp) $(defsystem_lisp) | sort -n ; \ + echo ; \ + wc $(header_lisp) $(driver_lisp) $(defsystem_lisp) | tail -n 1 + +push: + git status + git push --tags cl.net release master + git push --tags github release master + git fetch + git status -all ext noext driver_files defsystem_files build_asdf build_asdf_tools: force - ${MAKE_SCRIPT} $@ +# doc: +# ${MAKE} -C doc +# don't have the toolchain to build docs installed... +doc: ; +website: + ${MAKE} -C doc website -build/asdf.lisp: build_asdf -build/asdf-tools build/asdf-tools.exe: build_asdf_tools +clean_dirs = $(sourceDirectory) +clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl ufasl o bak x86f vbin amd64f sparcf sparc64f hpf hp64f -.PHONY: force all ext noext driver_files defsystem_files build_asdf build_asdf_tools +clean: + @for dir in $(clean_dirs); do \ + if test -d $$dir; then \ + echo Cleaning $$dir; \ + for ext in $(clean_extensions); do \ + find $$dir \( -name "*.$$ext" \) \ + -and -not -path \""*/.git/*"\" \ + -and -not -path \""*/_darcs/*"\" \ + -and -not -path \""*/tags/*"\" -print -delete; \ + done; \ + fi; \ + done + rm -rf build/ LICENSE test/try-reloading-dependency.asd test/hello-world-example asdf.lisp + rm -rf test/hello-world-example.exe test/mkcl_*.dll # needed only on MS-Windows + rm -rf .pc/ build-stamp debian/patches/ debian/debhelper.log debian/cl-asdf/ # debian crap + ${MAKE} -C doc clean -# The text below was automaticaly generated by `make --silent makefile-targets` -# then manually inserted here to provide for completion: -.PHONY: archive build-asdf build-asdf-tools bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc ext-clear ext-init ext-reset ext-update extract extract-all-tagged-asdf extract-tagged-asdf fix-local-git-tags fix-remote-git-tags git-all-committed-p help install install-asdf link-archive load make-and-publish-archive make-archive makefile-targets merge-master-into-release publish-archive publish-debian-package push re show-commands t test test-all test-all-clean-load test-all-no-stop test-all-no-upgrade test-all-no-upgrade-no-stop test-all-scripts test-all-scripts-no-stop test-all-upgrade test-all-upgrade-no-stop test-ascii test-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website +mrproper: + git clean -xfd -archive build-asdf build-asdf-tools bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc ext-clear ext-init ext-reset ext-update extract extract-all-tagged-asdf extract-tagged-asdf fix-local-git-tags fix-remote-git-tags git-all-committed-p help install install-asdf link-archive load make-and-publish-archive make-archive makefile-targets merge-master-into-release publish-archive publish-debian-package push re show-commands t test test-all test-all-clean-load test-all-no-stop test-all-no-upgrade test-all-no-upgrade-no-stop test-all-scripts test-all-scripts-no-stop test-all-upgrade test-all-upgrade-no-stop test-ascii test-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website: force - ${MAKE_SCRIPT} l='$l' L='$L' u='$u' U='$U' v='$v' s='$s' t='$t' $@ +test-upgrade: build/asdf.lisp + ./test/run-tests.sh -u ${l} +u: test-upgrade + +test-clean-load: build/asdf.lisp + ./test/run-tests.sh -c ${l} + +# test-glob has been replaced by t, and lisp by l, easier to type +test-lisp: build/asdf.lisp + @cd test; ./run-tests.sh ${l} ${t} +t: test-lisp + +test: doc test-lisp test-clean-load test-load-systems + +test-load-systems: build/asdf.lisp + ./test/run-tests.sh -l ${l} ${s} + +test-all-lisps: test-load-systems test-all-clean-load test-all-lisp test-all-upgrade + +test-all-clean-load: + @for lisp in ${lisps} ; do ${MAKE} test-clean-load l=$$lisp || exit 1 ; done + +test-all-lisp: + @for lisp in ${lisps} ; do ${MAKE} test-lisp l=$$lisp || exit 1 ; done + +test-all-upgrade: + @for lisp in ${ulisps} ; do ${MAKE} test-upgrade l=$$lisp || exit 1 ; done + +test-all-no-upgrade: doc test-load-systems test-all-clean-load test-all-lisp + +test-all: test-all-no-upgrade test-all-upgrade + +test-all-lisp-no-stop: + @for lisp in ${lisps} ; do ${MAKE} test-lisp l=$$lisp ; done ; : + +test-all-upgrade-no-stop: + @for lisp in ${ulisps} ; do ${MAKE} test-upgrade l=$$lisp ; done ; : + +test-all-no-upgrade-no-stop: doc test-load-systems test-all-clean-load test-all-lisp-no-stop + make --quiet check-all-test-results + +test-all-no-stop: doc test-load-systems test-all-clean-load test-all-lisp-no-stop test-all-upgrade-no-stop + make --quiet check-all-results + +check-all-test-results: + @A="`grep -L '[5-9][0-9] passing and 0 failing' build/results/*-test.text`" ; \ + if [ -n "$$A" ] ; then \ + echo "Unexpected test failures on these implementations:" ; \ + echo "$$A" ; \ + exit 1 ; \ + fi + +check-all-upgrade-results: + @A="`grep -L 'Upgrade test succeeded for ' build/results/*-upgrade.text`" ; \ + if [ -n "$$A" ] ; then \ + echo "Unexpected upgrade failures on these implementations:" ; \ + echo "$$A" ; \ + exit 1 ; \ + fi + +check-all-results: + @r=0 ; \ + make --quiet check-all-test-results || r=1 ; \ + make --quiet check-all-upgrade-results || r=1 ; \ + exit $r + +extract: extract-all-tagged-asdf +extract-all-tagged-asdf: build/asdf.lisp + ./test/run-tests.sh -H + + +# Delete wrongful tags from local repository +fix-local-git-tags: + for i in ${WRONGFUL_TAGS} ; do git tag -d $$i ; done + +# Delete wrongful tags from remote repository +fix-remote-git-tags: + for i in ${WRONGFUL_TAGS} ; do git push $${REMOTE:-cl.net} :refs/tags/$$i ; done + +release-push: + git checkout master + git merge release + git checkout release + git merge master + git checkout master + +TODO: + exit 2 + +release: TODO test-all test-on-other-machines-too debian-changelog debian-package send-mail-to-mailing-lists + +.PHONY: install archive push doc website clean mrproper \ + test-forward-references test test-lisp test-upgrade test-forward-references \ + test-all test-all-lisps test-all-no-upgrade \ + debian-package release \ + replace-sbcl-asdf replace-ccl-asdf \ + fix-local-git-tags fix-remote-git-tags wc wc-driver wc-asdf \ + list-source-registry \ + ext noext + +# debug the source registry that will be used to execute commands from this Makefile. +#list-source-registry: +# ${sourceDirectory}/bin/asdf-builder re '(uiop:writeln (sort (alexandria:hash-table-alist asdf::*source-registry*) `string< :key `car))' + +# RELEASE or PUSH checklist: +# make test-all +# make test-load-systems s=fare-all +# make bump v=3.0 +# edit debian/changelog # RELEASE only... +# git commit +# git tag 3.0 # for example ... +# make debian-package +# git push +# git push origin 3.0 # for example... +# everything from here for RELEASE only +# make release-push archive website debian-package +# dput mentors ../*.changes +# send debian mentors request +# send announcement to asdf-announce, asdf-devel, etc. +# Move all fixed bugs from Fix Committed -> Fix Released on launchpad +# +## Users don't release as above, only maintainers do. +## Users, all you need to do is: make +## Vendors, you may want to test your implementation with: make test l=sbcl diff --git a/Makefile-classic b/Makefile-classic deleted file mode 100644 index 74982d3594e798dcbe540245420e00815fdb95da..0000000000000000000000000000000000000000 --- a/Makefile-classic +++ /dev/null @@ -1,277 +0,0 @@ -# Configuring this Makefile for your personal use: -# Set environment variable ASDF_TEST_LISPS to a space-separated list of values -# (see "defaultlisps" below, for an example). -# If you have a special way to find libraries that are used in the build and -# test process, you may bind ASDF_DEVEL_SOURCE_REGISTRY to a source registry to -# use (using the environment variable syntax), or bind it to "override" to use -# your normal CL source registry. Otherwise, it will use local copies of -# everything. - -system := "asdf" -webhome_private := common-lisp.net:/project/asdf/public_html/ -webhome_public := "http://common-lisp.net/project/asdf/" -clnet_home := "/project/asdf/public_html/" -sourceDirectory := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) - -#### Common Lisp implementations available for testing. -## export ASDF_TEST_LISPS to override the default list of such implementations, -## or specify a lisps= argument at the make command-line -defaultLisps = ccl clisp sbcl ecl ecl_bytecodes cmucl abcl scl allegro lispworks allegromodern gcl xcl mkcl -ifdef ASDF_TEST_LISPS -lisps ?= ${ASDF_TEST_LISPS} -else -lisps ?= ${defaultLisps} -endif -ifdef ASDF_UPGRADE_TEST_LISPS - ulisps ?= ${ASDF_UPGRADE_TEST_LISPS} -else - ifdef ASDF_TEST_LISPS - ulisps ?= ${ASDF_TEST_LISPS} - else - ulisps ?= ${defaultLisps} - endif -endif - - -## grep for #+/#- features in the test/ directory to see plenty of disabled tests on some platforms -## NOT SUPPORTED BY OUR AUTOMATED TESTS: -## cormancl genera lispworks-personal-edition rmcl -## Some are manually tested once in a while. -ifdef ASDF_TEST_SYSTEMS -s ?= ${ASDF_TEST_SYSTEMS} -endif - -ifdef ASDF_DEVEL_SOURCE_REGISTRY -ifeq ($(ASDF_DEVEL_SOURCE_REGISTRY), override) -# do nothing... Use the user's CL_SOURCE_REGISTRY -else -export CL_SOURCE_REGISTRY = ${ASDF_DEVEL_SOURCE_REGISTRY} -endif -else # no ASDF_DEVEL_SOURCE_REGISTRY -export CL_SOURCE_REGISTRY = ${sourceDirectory}/:${sourceDirectory}/uiop/:${sourceDirectory}/ext//: -endif - -l ?= sbcl - -ABCL ?= abcl -ALLEGRO ?= alisp -ALLEGROMODERN ?= mlisp -CCL ?= ccl -CLISP ?= clisp -CMUCL ?= cmucl -ECL ?= ecl -GCL ?= gcl -LISPWORKS ?= lispworks -MKCL ?= mkcl -SBCL ?= sbcl -SCL ?= scl -XCL ?= xcl - -header_lisp := header.lisp -driver_lisp := uiop/package.lisp uiop/common-lisp.lisp uiop/utility.lisp uiop/os.lisp uiop/pathname.lisp uiop/filesystem.lisp uiop/stream.lisp uiop/image.lisp uiop/run-program.lisp uiop/lisp-build.lisp uiop/configuration.lisp uiop/backward-driver.lisp uiop/driver.lisp -defsystem_lisp := upgrade.lisp component.lisp system.lisp cache.lisp find-system.lisp find-component.lisp operation.lisp action.lisp lisp-action.lisp plan.lisp operate.lisp output-translations.lisp source-registry.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp package-inferred-system.lisp backward-internals.lisp backward-interface.lisp interface.lisp user.lisp footer.lisp -all_lisp := $(header_lisp) $(driver_lisp) $(defsystem_lisp) - -# Making ASDF itself should be our first, default, target: -build/asdf.lisp: $(all_lisp) - mkdir -p build - rm -f $@ - cat $(all_lisp) > $@ - -ext: - git submodule update --init - -noext: - git submodule deinit . - -# This quickly locates such mistakes as unbalanced parentheses: -load: build/asdf.lisp - ./test/run-tests.sh -t $l $(all_lisp) - -install: archive - -bump: bump-version - git commit -a -m "Bump version to $$(eval a=$$(cat version.lisp-expr) ; echo $$a)" - temp=$$(cat version.lisp-expr); temp="$${temp%\"}"; temp="$${temp#\"}"; git tag $$temp - -bump-version: build/asdf.lisp - ./bin/bump-version ${v} - -driver-files: - @echo $(driver_lisp) - -defsystem-files: - @echo $(defsystem_lisp) - -# FIXME: needs rewrite -#archive: build/asdf.lisp -# ./bin/asdf-builder make-and-publish-archive - -### Count lines separately for asdf-driver and asdf itself: -wc: - @wc $(driver_lisp) | sort -n ; echo ; \ - wc $(header_lisp) $(defsystem_lisp) | sort -n ; \ - echo ; \ - wc $(header_lisp) $(driver_lisp) $(defsystem_lisp) | tail -n 1 - -push: - git status - git push --tags cl.net release master - git push --tags github release master - git fetch - git status - -# doc: -# ${MAKE} -C doc -# don't have the toolchain to build docs installed... -doc: ; -website: - ${MAKE} -C doc website - -clean_dirs = $(sourceDirectory) -clean_extensions = fasl dfsl cfsl fasl fas lib dx32fsl lx64fsl lx32fsl ufasl o bak x86f vbin amd64f sparcf sparc64f hpf hp64f - -clean: - @for dir in $(clean_dirs); do \ - if test -d $$dir; then \ - echo Cleaning $$dir; \ - for ext in $(clean_extensions); do \ - find $$dir \( -name "*.$$ext" \) \ - -and -not -path \""*/.git/*"\" \ - -and -not -path \""*/_darcs/*"\" \ - -and -not -path \""*/tags/*"\" -print -delete; \ - done; \ - fi; \ - done - rm -rf build/ LICENSE test/try-reloading-dependency.asd test/hello-world-example asdf.lisp - rm -rf test/hello-world-example.exe test/mkcl_*.dll # needed only on MS-Windows - rm -rf .pc/ build-stamp debian/patches/ debian/debhelper.log debian/cl-asdf/ # debian crap - ${MAKE} -C doc clean - -mrproper: - git clean -xfd - -test-upgrade: build/asdf.lisp - ./test/run-tests.sh -u ${l} -u: test-upgrade - -test-clean-load: build/asdf.lisp - ./test/run-tests.sh -c ${l} - -# test-glob has been replaced by t, and lisp by l, easier to type -test-lisp: build/asdf.lisp - @cd test; ./run-tests.sh ${l} ${t} -t: test-lisp - -test: doc test-lisp test-clean-load test-load-systems - -test-load-systems: build/asdf.lisp - ./test/run-tests.sh -l ${l} ${s} - -test-all-lisps: test-load-systems test-all-clean-load test-all-lisp test-all-upgrade - -test-all-clean-load: - @for lisp in ${lisps} ; do ${MAKE} test-clean-load l=$$lisp || exit 1 ; done - -test-all-lisp: - @for lisp in ${lisps} ; do ${MAKE} test-lisp l=$$lisp || exit 1 ; done - -test-all-upgrade: - @for lisp in ${ulisps} ; do ${MAKE} test-upgrade l=$$lisp || exit 1 ; done - -test-all-no-upgrade: doc test-load-systems test-all-clean-load test-all-lisp - -test-all: test-all-no-upgrade test-all-upgrade - -test-all-lisp-no-stop: - @for lisp in ${lisps} ; do ${MAKE} test-lisp l=$$lisp ; done ; : - -test-all-upgrade-no-stop: - @for lisp in ${ulisps} ; do ${MAKE} test-upgrade l=$$lisp ; done ; : - -test-all-no-upgrade-no-stop: doc test-load-systems test-all-clean-load test-all-lisp-no-stop - make --quiet check-all-test-results - -test-all-no-stop: doc test-load-systems test-all-clean-load test-all-lisp-no-stop test-all-upgrade-no-stop - make --quiet check-all-results - -check-all-test-results: - @A="`grep -L '[5-9][0-9] passing and 0 failing' build/results/*-test.text`" ; \ - if [ -n "$$A" ] ; then \ - echo "Unexpected test failures on these implementations:" ; \ - echo "$$A" ; \ - exit 1 ; \ - fi - -check-all-upgrade-results: - @A="`grep -L 'Upgrade test succeeded for ' build/results/*-upgrade.text`" ; \ - if [ -n "$$A" ] ; then \ - echo "Unexpected upgrade failures on these implementations:" ; \ - echo "$$A" ; \ - exit 1 ; \ - fi - -check-all-results: - @r=0 ; \ - make --quiet check-all-test-results || r=1 ; \ - make --quiet check-all-upgrade-results || r=1 ; \ - exit $r - -extract: extract-all-tagged-asdf -extract-all-tagged-asdf: build/asdf.lisp - ./test/run-tests.sh -H - - -# Delete wrongful tags from local repository -fix-local-git-tags: - for i in ${WRONGFUL_TAGS} ; do git tag -d $$i ; done - -# Delete wrongful tags from remote repository -fix-remote-git-tags: - for i in ${WRONGFUL_TAGS} ; do git push $${REMOTE:-cl.net} :refs/tags/$$i ; done - -release-push: - git checkout master - git merge release - git checkout release - git merge master - git checkout master - -TODO: - exit 2 - -release: TODO test-all test-on-other-machines-too debian-changelog debian-package send-mail-to-mailing-lists - -.PHONY: install archive push doc website clean mrproper \ - test-forward-references test test-lisp test-upgrade test-forward-references \ - test-all test-all-lisps test-all-no-upgrade \ - debian-package release \ - replace-sbcl-asdf replace-ccl-asdf \ - fix-local-git-tags fix-remote-git-tags wc wc-driver wc-asdf \ - list-source-registry \ - ext noext - -# debug the source registry that will be used to execute commands from this Makefile. -#list-source-registry: -# ${sourceDirectory}/bin/asdf-builder re '(uiop:writeln (sort (alexandria:hash-table-alist asdf::*source-registry*) `string< :key `car))' - -# RELEASE or PUSH checklist: -# make test-all -# make test-load-systems s=fare-all -# make bump v=3.0 -# edit debian/changelog # RELEASE only... -# git commit -# git tag 3.0 # for example ... -# make debian-package -# git push -# git push origin 3.0 # for example... -# everything from here for RELEASE only -# make release-push archive website debian-package -# dput mentors ../*.changes -# send debian mentors request -# send announcement to asdf-announce, asdf-devel, etc. -# Move all fixed bugs from Fix Committed -> Fix Released on launchpad -# -## Users don't release as above, only maintainers do. -## Users, all you need to do is: make -## Vendors, you may want to test your implementation with: make test l=sbcl diff --git a/Makefile-lisp-scripting b/Makefile-lisp-scripting new file mode 100644 index 0000000000000000000000000000000000000000..6dabae2d5de28120c19d751fe5cdf44222644423 --- /dev/null +++ b/Makefile-lisp-scripting @@ -0,0 +1,65 @@ +# -*- Makefile -*- This minimal Makefile delegates most work to the asdf-tools script +# +# End-Users, all you need to do is: +# make +# +# Vendors, you may want to test your implementation with: +# make test l=sbcl +# BUT you first need have installed the development-time external dependencies of ASDF; +# this will be done automatically if you are using quicklisp; +# you can do it manually with your favorite tools (e.g. clbuild or git); +# or you can do it using `git submodule update` which is also available as: +# make ext +# To undo the `git submodule update` you can use: `make noext` +# +# Other targets are for maintainer use only. If you want a list of all of the targets, use +# make help +# +### Default fall back rule: delegate to asdf-tools. +# Note that the l= L= etc. are the only way I (Faré) have found to +# pass arguments from the Makefile to the underlying script: +# l= overrides $ASDF_TEST_LISPS to specify which lisp implementations to use +# L= overrides $ASDF_UPGRADE_TEST_LISPS (defaults to the former) to lisps during upgrade +# s= overrides $ASDF_TEST_SYSTEMS to specify systems with which to test ASDF +# t= overrides $ASDF_TESTS to specify test script patterns to use (default to *.script) +# u= overrides $ASDF_UPGRADE_TEST_TAGS to specify versions to upgrade from (e.g. 3.0.3 or REQUIRE) +# U= overrides $ASDF_UPGRADE_TEST_METHODS to specify upgrade methods +# v= overrides the default next version for bump-version or bump. +# see in tools/test-environment.lisp for details. +# Note that because of how make and the shell quote arguments, +# thou shalt not use the single-quote character in any of the short x= parameters +# (but you may use them in the long variant in the exported environment variable). +# To have a list of commands, see make help or ./tools/asdf-tools help +# Note that when you call ./tools/asdf-tools directly, +# you may have to use positional parameters instead (unless you use env as below), as in +# ./tools/asdf-tools bump 3.2.1 +# instead of +# make bump v=3.2.1 +# or +# ./make.sh v=3.2.1 bump +# or +# ./tools/asdf-tools env v=3.2.1 bump +# or +# v=3.2.1 ./tools/asdf-tools bump + +ifeq ($(OS),Windows_NT) + MAKE_SCRIPT := cmd /c make.bat +else + MAKE_SCRIPT := ./make.sh +endif + + +all ext noext driver_files defsystem_files build_asdf build_asdf_tools: force + ${MAKE_SCRIPT} $@ + +build/asdf.lisp: build_asdf +build/asdf-tools build/asdf-tools.exe: build_asdf_tools + +.PHONY: force all ext noext driver_files defsystem_files build_asdf build_asdf_tools + +# The text below was automaticaly generated by `make --silent makefile-targets` +# then manually inserted here to provide for completion: +.PHONY: archive build-asdf build-asdf-tools bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc ext-clear ext-init ext-reset ext-update extract extract-all-tagged-asdf extract-tagged-asdf fix-local-git-tags fix-remote-git-tags git-all-committed-p help install install-asdf link-archive load make-and-publish-archive make-archive makefile-targets merge-master-into-release publish-archive publish-debian-package push re show-commands t test test-all test-all-clean-load test-all-no-stop test-all-no-upgrade test-all-no-upgrade-no-stop test-all-scripts test-all-scripts-no-stop test-all-upgrade test-all-upgrade-no-stop test-ascii test-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website + +archive build-asdf build-asdf-tools bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc ext-clear ext-init ext-reset ext-update extract extract-all-tagged-asdf extract-tagged-asdf fix-local-git-tags fix-remote-git-tags git-all-committed-p help install install-asdf link-archive load make-and-publish-archive make-archive makefile-targets merge-master-into-release publish-archive publish-debian-package push re show-commands t test test-all test-all-clean-load test-all-no-stop test-all-no-upgrade test-all-no-upgrade-no-stop test-all-scripts test-all-scripts-no-stop test-all-upgrade test-all-upgrade-no-stop test-ascii test-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website: force + ${MAKE_SCRIPT} l='$l' L='$L' u='$u' U='$U' v='$v' s='$s' t='$t' $@