Makefile 2.83 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
8
#   make
#
# Vendors, you may want to test your implementation with:
#   make test l=sbcl
#
9
10
# Other targets are for maintainer use only.
#
Gary King's avatar
Gary King committed
11

12
13
14
15
# 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.
16

17
header_lisp := header.lisp
18
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
19
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 backward-internals.lisp parse-defsystem.lisp bundle.lisp concatenate-source.lisp backward-interface.lisp package-inferred-system.lisp interface.lisp user.lisp footer.lisp
20

21
# Making ASDF itself should be our first, default, target:
22
build/asdf.lisp: $(header_lisp) $(driver_lisp) $(defsystem_lisp)
23
	mkdir -p build
24
	rm -f $@
25
	cat $^ > $@
26

27
# These targets are used during tests to ensure the Makefile is in synch with the .asd files.
28
29
30
driver-files:
	@echo $(driver_lisp)

31
32
33
defsystem-files:
	@echo $(defsystem_lisp)

34
35
### exclude source files from fallback rule.
%.lisp:
36
	@:
37
Makefile:
38
	@:
39

40
### Default fall back rule: delegate to asdf-tools.
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 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.
# 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
59
%: build/asdf.lisp
60
	@echo "Delegating $@ to asdf-tools" ; \
61
	./tools/asdf-tools env l="$l" L="$L" u="$u" U="$u" v="$v" s="$s" t="$t" $@
62

63
.PHONY: all driver-files defsystem-files