/
Makefile
133 lines (94 loc) · 3.66 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Makefile for quIRC
CC := gcc
OPTFLAGS := -g
CFLAGS := -Wall -Wextra -Werror -pedantic -std=gnu99 $(OPTFLAGS)
AWK := gawk
VERSION := `git describe --tags`
PREFIX := /usr/local
# -lanl is for ASYNCH_NL
OPTLIBS := -lanl
LIBS := -lncurses ttyraw.o ttyesc.o irc.o bits.o colour.o buffer.o names.o config.o input.o $(OPTLIBS)
INCLUDE := ttyraw.h ttyesc.h irc.h bits.h colour.h buffer.h names.h config.h input.h quirc.h version.h osconf.h
all: quirc doc
install: all doc
install -D -m0755 quirc $(PREFIX)/bin/quirc
install -D -m0644 quirc.1 $(PREFIX)/man/man1/quirc.1
install -D -m0644 readme.htm $(PREFIX)/share/doc/quirc/readme.htm
install -D -m0644 config_ref.htm $(PREFIX)/share/doc/quirc/config_ref.htm
install -D -m0644 tutorial.htm $(PREFIX)/share/doc/quirc/tutorial.htm
uninstall:
-rm $(PREFIX)/bin/quirc
-rm $(PREFIX)/man/man1/quirc.1
-rm $(PREFIX)/share/doc/quirc/readme.htm
-rm $(PREFIX)/share/doc/quirc/config_ref.htm
-rm $(PREFIX)/share/doc/quirc/tutorial.htm
quirc: quirc.c $(LIBS) $(INCLUDE)
$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LIBS) -lm $(DEFINES)
quirc.h: config.h version.h
touch quirc.h
clean:
-rm *.o quirc genconfig genkeymap
realclean: clean
-rm c_init.c README version.h config_* keymap.c keymod.h
doc: README config_ref.htm quirc.1
README: readme.htm
-sed -e "s/'/'/g" -e "s/"/\"/g" < readme.htm | html2text -nobs -o README
# warning, this explodes if PREFIX contains a !
quirc.1: man.in
echo ".\\\"\n.\\\"This man page is automatically generated from man.in by a sedscript; edit man.in, not this file, and 'make doc' to apply the changes.">quirc.1
sed -e "s!\$$PREFIX!$(PREFIX)!g" < man.in >> quirc.1
# funky make cleverness to generate object files; a %.o /always/ depends on its %.h as well as its %.c
%.o: %.c %.h
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ $(DEFINES)
ttyesc.o: ttyesc.c ttyesc.h bits.h
irc.o: irc.c irc.h bits.h buffer.h colour.h names.h numeric.h osconf.h
irc.h: config.h
touch irc.h
bits.o: bits.c bits.h ttyesc.h colour.h
bits.h: config.h
touch bits.h
colour.o: colour.c colour.h c_init.c ttyesc.h
buffer.o: buffer.c buffer.h ttyesc.h colour.h bits.h names.h text.h irc.h version.h input.h
buffer.h: config.h version.h
touch buffer.h
config.o: config.c config.h names.h bits.h colour.h text.h version.h
config.c: config_check.c config_def.c config_need.c config_rcread.c config_pargs.c config_help.c keymap.c
touch config.c
config.h: config_globals.h version.h keymod.h
touch config.h
config_%: config.cdl genconfig
./genconfig $@ < config.cdl > $@ || (rm $@ && false)
genconfig: genconfig.c
input.h: keymod.h
touch input.h
input.o: input.c input.h ttyesc.h names.h buffer.h irc.h bits.h config.h
input.c: config_set.c
touch input.c
names.o: names.c names.h buffer.h irc.h
script.o: script.c script.h bits.h buffer.h
c_init.c: colour.d c_init.awk
$(AWK) -f c_init.awk colour.d > c_init.c
genkeymap: genkeymap.c
keymod.h: keys genkeymap
./genkeymap h < keys > $@ || (rm $@ && false)
keymap.c: keys genkeymap
./genkeymap c < keys > $@ || (rm $@ && false)
FORCE:
version.h: FORCE
./gitversion
dist: all doc
-mkdir quirc_$(VERSION)
for p in $$(ls); do cp $$p quirc_$(VERSION)/$$p; done;
-rm quirc_$(VERSION)/*.tar.gz
mv quirc_$(VERSION)/distMakefile quirc_$(VERSION)/Makefile
tar -czf quirc_$(VERSION).tar.gz quirc_$(VERSION)/
rm -r quirc_$(VERSION)
dists: c_init.c config.c config.h doc
-mkdir quirc_$(VERSION)_src
for p in $$(ls); do cp $$p quirc_$(VERSION)_src/$$p; done;
-rm quirc_$(VERSION)_src/*.tar.gz
rm quirc_$(VERSION)_src/*.o
rm quirc_$(VERSION)_src/quirc
mv quirc_$(VERSION)_src/distMakefile quirc_$(VERSION)_src/Makefile
tar -czf quirc_$(VERSION)_src.tar.gz quirc_$(VERSION)_src/
rm -r quirc_$(VERSION)_src