Makefile 5.3 KB
Newer Older
1
2
3
# -*- Makefile -*- This minimal Makefile delegates most work to the asdf-tools script
#
# End-Users, all you need to do is:
4
5
6
7
#   make
#
# Vendors, you may want to test your implementation with:
#   make test l=sbcl
8
9
10
11
# 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:
12
#   make ext
13
# To undo the `git submodule update` you can use: `make noext`
14
#
15
16
# Other targets are for maintainer use only. If you want a list of all of the targets, use
#   make help
17
#
Gary King's avatar
Gary King committed
18

19
20
21
22
# Default action: bootstrap asdf.lisp
# That's the only thing that we really need before we may invoke asdf-builder.
all: build/asdf.lisp
	@: # This dummy action is necessary so the all target does not invoke the fallback action.
23

24
25
# Download all the development-time dependencies of ASDF:
ext:
26
	git submodule update --init
27

28
29
# Remove all the development-time dependencies of ASDF:
noext:
30
	git submodule deinit .
31

32
header_lisp := header.lisp
33
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
34
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
35

36
# Making ASDF itself should be our first, default, target:
37
build/asdf.lisp: $(header_lisp) $(driver_lisp) $(defsystem_lisp)
38
	mkdir -p build
39
	rm -f $@
40
	cat $^ > $@
41

42
# These targets are used during tests to ensure the Makefile is in synch with the .asd files.
43
44
45
driver-files:
	@echo $(driver_lisp)

46
47
48
defsystem-files:
	@echo $(defsystem_lisp)

49
50
### exclude source files from fallback rule.
%.lisp:
51
	@:
52
Makefile:
53
	@:
54

55
### Default fall back rule: delegate to asdf-tools.
56
57
58
59
60
61
62
63
64
65
# 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.
66
67
68
# 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).
69
70
71
72
73
74
75
76
# 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
#   ./tools/asdf-tools env v=3.2.1 bump
77
78
# or
#   v=3.2.1 ./tools/asdf-tools bump
79
%: build/asdf.lisp
80
	./tools/asdf-tools env l='$l' L='$L' u='$u' U='$U' v='$v' s='$s' t='$t' $@
81

82
# This is the list of phony targets from this file
83
.PHONY: all driver-files defsystem-files ext noext force
84
85
86

# The text below was automaticaly generated by `make --silent makefile-targets`
# then manually inserted here to provide for completion:
87
.PHONY: archive build-asdf bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc 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-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website
88
archive build-asdf bump bump-version check-all-results check-all-scripts-results check-all-upgrade-results clean debian-package doc 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-basic test-clean-load test-load-systems test-scripts test-upgrade u wc website: force
89
	./tools/asdf-tools env l='$l' L='$L' u='$u' U='$U' v='$v' s='$s' t='$t' $@