Skip to content

HTTPS clone URL

Subversion checkout URL

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