Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 140 lines (98 sloc) 4.111 kb
9f0cff1 Initial commit.
Sound and Fury authored
1 # Makefile for quIRC
2
b7319a8 Asynch name lookups
ec429 authored
3 CC := gcc
4 OPTFLAGS := -g
3b69162 Define _GNU_SOURCE just once, in the Makefile. Fixes: Issue #7
ec429 authored
5 CFLAGS := -Wall -Wextra -Werror -pedantic -std=gnu99 -D_GNU_SOURCE $(OPTFLAGS)
b7319a8 Asynch name lookups
ec429 authored
6 AWK := gawk
4a2bd9b Fixed bugs in 'make dist'
Sound and Fury authored
7 VERSION := `git describe --tags`
b7319a8 Asynch name lookups
ec429 authored
8 PREFIX := /usr/local
8f02e01 Better handling of osconf (config.mak, etc.)
ec429 authored
9 LIBS_ASYNCH_NL := -lanl
10 OPTLIBS = $(LIBS_ASYNCH_NL)
ebc74a9 Refactored string buffers to new strbuf.h, shared with the gen* progs.
ec429 authored
11 LIBS := -lncurses ttyraw.o ttyesc.o irc.o bits.o strbuf.o colour.o buffer.o names.o config.o input.o logging.o types.o $(OPTLIBS)
12 INCLUDE := ttyraw.h ttyesc.h irc.h bits.h strbuf.h colour.h buffer.h names.h config.h input.h logging.h types.h quirc.h version.h osconf.h
9f0cff1 Initial commit.
Sound and Fury authored
13
8f02e01 Better handling of osconf (config.mak, etc.)
ec429 authored
14 -include config.mak
15
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
16 all: quirc doc
9f0cff1 Initial commit.
Sound and Fury authored
17
d0f7f76 Man page with pointers to full documentation
ec429 authored
18 install: all doc
7fbe18a Makefile fixes (should fix gitlessing tarballs) & some plans
ec429 authored
19 install -D -m0755 quirc $(PREFIX)/bin/quirc
d0f7f76 Man page with pointers to full documentation
ec429 authored
20 install -D -m0644 quirc.1 $(PREFIX)/man/man1/quirc.1
21 install -D -m0644 readme.htm $(PREFIX)/share/doc/quirc/readme.htm
22 install -D -m0644 config_ref.htm $(PREFIX)/share/doc/quirc/config_ref.htm
23 install -D -m0644 tutorial.htm $(PREFIX)/share/doc/quirc/tutorial.htm
1bf0755 'make install' rule
Sound and Fury authored
24
4050262 Use a post-commit hook to update version.h (with the Makefile)
Sound and Fury authored
25 uninstall:
f338eb7 Update 'make uninstall' to remove the documentation too
ec429 authored
26 -rm $(PREFIX)/bin/quirc
27 -rm $(PREFIX)/man/man1/quirc.1
28 -rm $(PREFIX)/share/doc/quirc/readme.htm
29 -rm $(PREFIX)/share/doc/quirc/config_ref.htm
30 -rm $(PREFIX)/share/doc/quirc/tutorial.htm
4050262 Use a post-commit hook to update version.h (with the Makefile)
Sound and Fury authored
31
fcf9495 Refactored .quirc and cmdline parsing; other refactoring
Sound and Fury authored
32 quirc: quirc.c $(LIBS) $(INCLUDE)
de4ae60 config: generate much of the config code from a concise descriptions fil...
ec429 authored
33 $(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $< $(LIBS) -lm $(DEFINES)
68d1b71 Use mcheck.h for memory profiling
Sound and Fury authored
34
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
35 quirc.h: config.h version.h
36 touch quirc.h
37
4050262 Use a post-commit hook to update version.h (with the Makefile)
Sound and Fury authored
38 clean:
6ecd2ce Makefile: use -f on rm in [real]clean rules
ec429 authored
39 -rm -f *.o quirc genconfig genkeymap
4050262 Use a post-commit hook to update version.h (with the Makefile)
Sound and Fury authored
40
41 realclean: clean
6ecd2ce Makefile: use -f on rm in [real]clean rules
ec429 authored
42 -rm -f c_init.c README version.h config_* keymap.c keymod.h quirc.1
4050262 Use a post-commit hook to update version.h (with the Makefile)
Sound and Fury authored
43
d0f7f76 Man page with pointers to full documentation
ec429 authored
44 doc: README config_ref.htm quirc.1
6b0feff Canonical readme in HTML format; makerule to generate plain text
Sound and Fury authored
45
46 README: readme.htm
e2c3e47 Fix generation of README (&apos; and &quot;)
ec429 authored
47 -sed -e "s/&apos;/'/g" -e "s/&quot;/\"/g" < readme.htm | html2text -nobs -o README
6b0feff Canonical readme in HTML format; makerule to generate plain text
Sound and Fury authored
48
d0f7f76 Man page with pointers to full documentation
ec429 authored
49 # warning, this explodes if PREFIX contains a !
50 quirc.1: man.in
5ffc288 make doc: put a warning in quirc.1 to say that it's generated from man.i...
ec429 authored
51 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
52 sed -e "s!\$$PREFIX!$(PREFIX)!g" < man.in >> quirc.1
d0f7f76 Man page with pointers to full documentation
ec429 authored
53
c408645 Make the Makefile more clever (pattern rules for the object files)
Sound and Fury authored
54 # funky make cleverness to generate object files; a %.o /always/ depends on its %.h as well as its %.c
9f0cff1 Initial commit.
Sound and Fury authored
55
c408645 Make the Makefile more clever (pattern rules for the object files)
Sound and Fury authored
56 %.o: %.c %.h
eb63d03 --debug option, and debugging mode
Sound and Fury authored
57 $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@ $(DEFINES)
9f0cff1 Initial commit.
Sound and Fury authored
58
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
59 ttyesc.o: ttyesc.c ttyesc.h bits.h
60
b7319a8 Asynch name lookups
ec429 authored
61 irc.o: irc.c irc.h bits.h buffer.h colour.h names.h numeric.h osconf.h
2b3007c Highlight escape sequences in input line
Sound and Fury authored
62
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
63 irc.h: config.h
64 touch irc.h
9f0cff1 Initial commit.
Sound and Fury authored
65
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
66 bits.o: bits.c bits.h ttyesc.h colour.h
67
ebc74a9 Refactored string buffers to new strbuf.h, shared with the gen* progs.
ec429 authored
68 bits.h: config.h strbuf.h
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
69 touch bits.h
709dc6b Various improvements eg rc file (.quirc)
Sound and Fury authored
70
fcf9495 Refactored .quirc and cmdline parsing; other refactoring
Sound and Fury authored
71 colour.o: colour.c colour.h c_init.c ttyesc.h
15e4136 Automatic version-number generation from git describe
Sound and Fury authored
72
8c8b00d Logging
ec429 authored
73 buffer.o: buffer.c buffer.h ttyesc.h colour.h bits.h names.h text.h irc.h version.h input.h logging.h
a886cb2 Moved name-list handling out to new files 'names.*'
Sound and Fury authored
74
8c8b00d Logging
ec429 authored
75 buffer.h: config.h version.h logging.h
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
76 touch buffer.h
de4ae60 config: generate much of the config code from a concise descriptions fil...
ec429 authored
77
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
78 config.o: config.c config.h names.h bits.h colour.h text.h version.h
de4ae60 config: generate much of the config code from a concise descriptions fil...
ec429 authored
79
62617ff Configurable keymapping
ec429 authored
80 config.c: config_check.c config_def.c config_need.c config_rcread.c config_pargs.c config_help.c keymap.c
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
81 touch config.c
82
62617ff Configurable keymapping
ec429 authored
83 config.h: config_globals.h version.h keymod.h
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
84 touch config.h
85
86 config_%: config.cdl genconfig
de4ae60 config: generate much of the config code from a concise descriptions fil...
ec429 authored
87 ./genconfig $@ < config.cdl > $@ || (rm $@ && false)
88
ebc74a9 Refactored string buffers to new strbuf.h, shared with the gen* progs.
ec429 authored
89 genconfig: genconfig.c strbuf.h strbuf.o
90 $(CC) $(CFLAGS) $(CPPFLAGS) $< $(LDFLAGS) strbuf.o -o $@
fcf9495 Refactored .quirc and cmdline parsing; other refactoring
Sound and Fury authored
91
62617ff Configurable keymapping
ec429 authored
92 input.h: keymod.h
93 touch input.h
94
8c8b00d Logging
ec429 authored
95 input.o: input.c input.h ttyesc.h names.h buffer.h irc.h bits.h config.h logging.h
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
96
97 input.c: config_set.c
98 touch input.c
861788e More refactoring (input routines etc.)
Sound and Fury authored
99
8c8b00d Logging
ec429 authored
100 logging.o: types.h bits.h
101
e7b2bd5 Fix /ignore -d bug (i_cull() dissects prefixes)
Sound and Fury authored
102 names.o: names.c names.h buffer.h irc.h
5ed2685 /ignore -l: lists ignores
Sound and Fury authored
103
4881617 Moved rc from ~/.quirc to ~/.quirc/rc (cherrypicked from script branch)
ec429 authored
104 script.o: script.c script.h bits.h buffer.h
105
ac506d8 Generate the default colours from an awk script
Sound and Fury authored
106 c_init.c: colour.d c_init.awk
107 $(AWK) -f c_init.awk colour.d > c_init.c
108
ebc74a9 Refactored string buffers to new strbuf.h, shared with the gen* progs.
ec429 authored
109 genkeymap: genkeymap.c strbuf.h strbuf.o
110 $(CC) $(CFLAGS) $(CPPFLAGS) $< $(LDFLAGS) strbuf.o -o $@
62617ff Configurable keymapping
ec429 authored
111
112 keymod.h: keys genkeymap
113 ./genkeymap h < keys > $@ || (rm $@ && false)
114
115 keymap.c: keys genkeymap
116 ./genkeymap c < keys > $@ || (rm $@ && false)
117
25bf8a0 Makefile fixes (because make behaves unhelpfully)
ec429 authored
118 FORCE:
119 version.h: FORCE
fcf9495 Refactored .quirc and cmdline parsing; other refactoring
Sound and Fury authored
120 ./gitversion
121
959f0a2 make dist also makes doc
Sound and Fury authored
122 dist: all doc
4a2bd9b Fixed bugs in 'make dist'
Sound and Fury authored
123 -mkdir quirc_$(VERSION)
124 for p in $$(ls); do cp $$p quirc_$(VERSION)/$$p; done;
66ea5eb Makefile rule to build a source tarball (and do funky things with versio...
Sound and Fury authored
125 -rm quirc_$(VERSION)/*.tar.gz
7fbe18a Makefile fixes (should fix gitlessing tarballs) & some plans
ec429 authored
126 mv quirc_$(VERSION)/distMakefile quirc_$(VERSION)/Makefile
811d1bd Makefile fixes
ec429 authored
127 tar -czf quirc_$(VERSION).tar.gz quirc_$(VERSION)/
062c4d0 dist Makefile rule, creates tarball with binaries
Sound and Fury authored
128 rm -r quirc_$(VERSION)
129
2171210 Make 'dists' dependencies more explicit
ec429 authored
130 dists: c_init.c config.c config.h version.h keymod.h keymap.c doc
66ea5eb Makefile rule to build a source tarball (and do funky things with versio...
Sound and Fury authored
131 -mkdir quirc_$(VERSION)_src
132 for p in $$(ls); do cp $$p quirc_$(VERSION)_src/$$p; done;
133 -rm quirc_$(VERSION)_src/*.tar.gz
134 rm quirc_$(VERSION)_src/*.o
135 rm quirc_$(VERSION)_src/quirc
7fbe18a Makefile fixes (should fix gitlessing tarballs) & some plans
ec429 authored
136 mv quirc_$(VERSION)_src/distMakefile quirc_$(VERSION)_src/Makefile
811d1bd Makefile fixes
ec429 authored
137 tar -czf quirc_$(VERSION)_src.tar.gz quirc_$(VERSION)_src/
66ea5eb Makefile rule to build a source tarball (and do funky things with versio...
Sound and Fury authored
138 rm -r quirc_$(VERSION)_src
139
Something went wrong with that request. Please try again.