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