Makefileの修正
[YACASL2.git] / Makefile
1 .PHONY: all build gtags check doc info html doc-inner install uninstall install-info uninstall-info install-casl2lib uninstall-casl2lib version gittag clean clean-src clean-gtags clean-test clean-doc clean-doc-inner
2
3 CMD := casl2 comet2 dumpword
4
5 CAT := cat
6 CP := cp
7 ECHO := echo
8 GITTAG := git tag
9 GTAGS := gtags
10 INSTALL := install
11 SED := sed
12 WHICH := which
13
14 prefix ?= ~
15 bindir ?= $(prefix)/bin
16
17 VERSION = $(shell $(CAT) VERSION)
18 VERSIONFILES = include/package.h test/system/casl2/opt_v/0.txt test/system/comet2/opt_v/0.txt test/system/dumpword/opt_v/0.txt
19
20 all: build doc gtags
21
22 build: version
23         $(MAKE) -C src all
24         $(CP) $(addprefix src/,$(CMD)) ./
25
26 gtags:
27         $(if $(strip $(shell $(WHICH) $(GTAGS))),$(GTAGS),@$(ECHO) '$(GTAGS): not found')
28
29 doc:
30         $(MAKE) -C doc base
31         $(MAKE) INSTALL
32
33 INSTALL: doc/install.txt
34         $(CP) $< $@
35
36 docall:
37         $(MAKE) -C doc all
38
39 info:
40         $(MAKE) -C doc info
41
42 html:
43         $(MAKE) -C doc html
44
45 doc-inner:
46         $(MAKE) -C doc_inner all
47
48 check:
49         $(MAKE) -sC test/system
50
51 install: casl2 comet2 dumpword install-info install-casl2lib
52         $(INSTALL) -d $(bindir)
53         $(INSTALL) $(CMD) $(bindir)/
54
55 uninstall: uninstall-info uninstall-casl2lib
56         $(RM) $(prefix $(bindir)/,$(CMD))
57
58 install-info:
59         $(MAKE) -C doc install-info
60
61 uninstall-info:
62         $(MAKE) -C doc uninstall-info
63
64 install-casl2lib:
65         $(MAKE) -C as/casl2lib install-casl2lib
66
67 uninstall-casl2lib:
68         $(MAKE) -C as/casl2lib uninstall-casl2lib
69
70 version: $(VERSIONFILES)
71         @$(ECHO) "YACASL2 Version: $(VERSION)"
72
73 $(VERSIONFILES): VERSION
74         @$(SED) -e "s/@@VERSION@@/$(VERSION)/g" $@.version >$@
75
76 gittag: VERSION
77         $(GITTAG) $(VERSION)
78
79 clean: clean-cmd clean-src clean-gtags clean-doc clean-doc-inner clean-version
80
81 clean-cmd:
82         @$(RM) $(CMD)
83
84 clean-src:
85         @$(MAKE) -sC src clean
86
87 clean-gtags:
88         @$(RM) GPATH GRTAGS GSYMS GTAGS
89
90 clean-doc:
91         @$(MAKE) -sC doc clean
92
93 clean-doc-inner:
94         @$(MAKE) -sC doc_inner clean
95
96 clean-version:
97         @$(RM) $(VERSIONFILES)
98
99 clean-test:
100         @$(MAKE) -sC test clean