summaryrefslogtreecommitdiff
path: root/common.mk
blob: 7fd7964d4222c6db91eb05e51891b4f5728232c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Copyright 2015 Luke Shumaker
#
# This is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# The GNU General Public License's references to "object code" and
# "executables" are to be interpreted to also include the output of
# any document formatting or typesetting system, including
# intermediate and printed output.
#
# This software is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this manual; if not, see
# <http://www.gnu.org/licenses/>.

rel = $(patsubst $(abspath .)/%,./%,$(abspath $1))

all: build
.PHONY: all

-include $(addsuffix /Makefile,$(subdirs))

generate: $(generate)
.PHONY: generate

configure: generate $(configure)
.PHONY: configure

build: configure $(build)
.PHONY: build

install: build $(install)
.PHONY: install

# un-build
clean:
	rm -rf -- $(build) $(build_secondary)
.PHONY: clean

# un-configure
distclean: clean
	rm -rf -- $(configure) $(configure_secondary)
.PHONY: distclean

# un-generate
maintainer-clean: distclean
	rm -rf -- $(generate) $(generate_secondary)
.PHONY: maintainer-clean

# un-install
uninstall:
	rm -f -- $(install)
	rmdir -p -- $(sort $(dir $(install))) 2>/dev/null || true
.PHONY: uninstall


# Now, this is magic.  It stores the values of environment variables,
# so that if you change them in a way that would cause something to be
# rebuilt, then Make knows.
.var.%: FORCE
	$(Q)printf '%s' '$($*)' > .tmp$@ && { cmp -s .tmp$@ $@ && rm -f -- .tmp$@ || mv -Tf .tmp$@ $@; } || { rm -f -- .tmp$@; false; }

.DELETE_ON_ERROR:
.SECONDARY:
.PHONY: FORCE