-
Notifications
You must be signed in to change notification settings - Fork 7
/
Makefile
92 lines (69 loc) · 2.05 KB
/
Makefile
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#
# Copyright 2022 Nikita Ivanov
#
# This file is part of ictree
#
# ictree 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 3 of the License, or (at your option) any later
# version.
#
# ictree 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
# ictree. If not, see <https://www.gnu.org/licenses/>.
#
include config.mk
SRC := $(wildcard ${SRCDIR}/*.c)
OBJ := ${SRC:${SRCDIR}/%.c=${BUILDDIR}/%.o}
DEP := ${OBJ:.o=.d}
MAN := ${DOCDIR}/ictree.1
GEN := ${GENDIR}/help-msg.h
LIBA := ${TBARC}
BINTAR := ${BIN}.tar.gz
VER := $(shell ./version.sh ${INCDIR}/version.h)
SRCTAR := ${BIN}-${VER}.tar.gz
SRCZIP := ${BIN}-${VER}.zip
vpath %.c ${SRCDIR}
all: ${BIN}
options:
@echo "CC = $(CC)"
@echo "CFLAGS = $(CFLAGS)"
@echo "LDFLAGS = $(LDFLAGS)"
generate:
$(MAKE) --always-make ${GEN}
install: install.bin install.man
install.bin: ${BIN}
install -d $(BINPREFIX)
install $< $(BINPREFIX)
install.man: ${MAN}
install -d $(MANPREFIX)/man1
install -m 644 $< $(MANPREFIX)/man1
uninstall:
$(RM) $(BINPREFIX)/${BIN}
$(RM) $(MANPREFIX)/man1/$(notdir ${MAN})
clean:
$(RM) ${BIN} ${OBJ} ${DEP} ${BINTAR} ${SRCTAR} ${SRCZIP}
$(MAKE) -C ${TBDIR} clean
dist: ${BINTAR} ${SRCTAR} ${SRCZIP}
.PHONY: all options generate install install.bin \
install.man uninstall clean dist
${BIN}: ${OBJ} ${LIBA}
$(CC) -o $@ $(LDFLAGS) $+
${BUILDDIR}/%.o: %.c
@mkdir -p ${@D}
$(CC) -c -o $@ $(CFLAGS) -MD $<
${GENDIR}/help-msg.h:
@mkdir -p ${@D}
./gen-help.sh ${MAN} > $@
${TBARC}:
$(MAKE) -C ${TBDIR} libtermbox.a
${BINTAR}: clean generate
LDFLAGS=-static $(MAKE) CC=musl-gcc ${BIN}
tar -czf $@ ${BIN}
${SRCTAR} ${SRCZIP}: clean generate
./archive.sh $@
-include ${DEP}
.DELETE_ON_ERROR: