Mercurial > paster
annotate Makefile @ 53:55fdcc3e5970
pasterd: fix wording
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 21 Dec 2020 20:48:22 +0100 |
parents | ef9f7f40abd1 |
children | 425a88f0877c |
rev | line source |
---|---|
0 | 1 # |
2 # Makefile -- basic makefile for paster | |
3 # | |
4 # Copyright (c) 2020 David Demelier <markand@malikania.fr> | |
5 # | |
6 # Permission to use, copy, modify, and/or distribute this software for any | |
7 # purpose with or without fee is hereby granted, provided that the above | |
8 # copyright notice and this permission notice appear in all copies. | |
9 # | |
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 # | |
18 | |
19 .POSIX: | |
20 | |
19
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
21 # User options. |
0 | 22 CC= cc |
19
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
23 CFLAGS= -DNDEBUG -O3 |
0 | 24 |
19
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
25 # Installation paths. |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
26 PREFIX= /usr/local |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
27 BINDIR= ${PREFIX}/bin |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
28 SHAREDIR= ${PREFIX}/share |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
29 MANDIR= ${PREFIX}/share/man |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
30 VARDIR= ${PREFIX}/var |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
31 |
45
d24896a5eb54
misc: update before 0.2.1
David Demelier <markand@malikania.fr>
parents:
39
diff
changeset
|
32 VERSION= 0.2.1 |
26
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
33 |
51
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
34 CORE_SRCS= config.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
35 database.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
36 http.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
37 log.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
38 fragment-duration.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
39 fragment-language.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
40 fragment-paste.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
41 fragment.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
42 page-download.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
43 page-fork.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
44 page-index.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
45 page-new.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
46 page-paste.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
47 page-search.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
48 page-static.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
49 page.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
50 paste.c \ |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
51 util.c |
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
52 CORE_HDRS= ${CORE_SRCS:.c=.h} |
19
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
53 CORE_OBJS= ${CORE_SRCS:.c=.o} |
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
54 CORE_DEPS= ${CORE_SRCS:.c=.d} |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
55 CORE_LIB= libpaster.a |
0 | 56 |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
57 TESTS_SRCS= tests/test-database.c |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
58 TESTS_OBJS= ${TESTS_SRCS:.c=} |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
59 |
0 | 60 SQLITE_FLAGS= -DSQLITE_THREADSAFE=0 \ |
61 -DSQLITE_OMIT_LOAD_EXTENSION \ | |
62 -DSQLITE_OMIT_DEPRECATED \ | |
63 -DSQLITE_DEFAULT_FOREIGN_KEYS=1 | |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
64 SQLITE_LIB= libsqlite3.a |
0 | 65 |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
66 MY_CFLAGS= -std=c11 \ |
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
67 -I. \ |
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
68 -Iextern \ |
19
3aef43b40f1c
make: improve user modifications
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
69 -D_XOPEN_SOURCE=700 \ |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
70 -DSHAREDIR=\"${SHAREDIR}\" \ |
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
71 -DVARDIR=\"${VARDIR}\" |
51
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
72 MY_LDFLAGS= -lkcgi -lkcgihtml -lz |
0 | 73 |
74 .SUFFIXES: | |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
75 .SUFFIXES: .o .c .in |
0 | 76 |
17
09d2f54562ec
pasterd-clean: initial import, closes #2473
David Demelier <markand@malikania.fr>
parents:
14
diff
changeset
|
77 all: pasterd pasterd-clean paster |
0 | 78 |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
79 -include ${CORE_DEPS} paster.d pasterd-clean.d |
0 | 80 |
81 .c.o: | |
52 | 82 ${CC} ${MY_CFLAGS} ${CFLAGS} -MMD -c $< |
0 | 83 |
52 | 84 .c: |
85 ${CC} ${MY_CFLAGS} ${CFLAGS} -MMD $< -o $@ ${CORE_LIB} ${SQLITE_LIB} ${MY_LDFLAGS} ${LDFLAGS} | |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
86 |
14 | 87 .in: |
88 sed -e "s|@SHAREDIR@|${SHAREDIR}|" \ | |
89 -e "s|@VARDIR@|${VARDIR}|" \ | |
90 < $< > $@ | |
91 | |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
92 ${SQLITE_LIB}: extern/sqlite3.c extern/sqlite3.h |
36
2d789367bf1e
make: avoid non POSIX idioms
David Demelier <markand@malikania.fr>
parents:
35
diff
changeset
|
93 ${CC} ${CFLAGS} ${SQLITE_FLAGS} -c extern/sqlite3.c -o extern/sqlite3.o |
23 | 94 ${AR} -rc $@ extern/sqlite3.o |
0 | 95 |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
96 ${CORE_LIB}: ${CORE_OBJS} |
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
97 ${AR} -rc $@ ${CORE_OBJS} |
17
09d2f54562ec
pasterd-clean: initial import, closes #2473
David Demelier <markand@malikania.fr>
parents:
14
diff
changeset
|
98 |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
99 pasterd.o: ${CORE_LIB} ${SQLITE_LIB} pasterd.8 |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
100 |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
101 pasterd-clean.o: ${CORE_LIB} ${SQLITE_LIB} pasterd-clean.8 |
0 | 102 |
14 | 103 paster: paster.sh paster.1 |
7 | 104 cp paster.sh paster |
105 chmod +x paster | |
106 | |
0 | 107 clean: |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
108 rm -f ${SQLITE_LIB} extern/sqlite3.o |
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
109 rm -f ${CORE_LIB} ${CORE_OBJS} ${CORE_DEPS} |
18
ba9fa4869a4b
make: fix clean target
David Demelier <markand@malikania.fr>
parents:
17
diff
changeset
|
110 rm -f pasterd pasterd.d pasterd.o pasterd.8 |
ba9fa4869a4b
make: fix clean target
David Demelier <markand@malikania.fr>
parents:
17
diff
changeset
|
111 rm -f pasterd-clean pasterd-clean.d pasterd-clean.o pasterd-clean.8 |
ba9fa4869a4b
make: fix clean target
David Demelier <markand@malikania.fr>
parents:
17
diff
changeset
|
112 rm -f paster paster.1 |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
113 rm -f test.db ${TESTS_OBJS} |
0 | 114 |
12
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
115 install-paster: |
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
116 mkdir -p ${DESTDIR}${BINDIR} |
17
09d2f54562ec
pasterd-clean: initial import, closes #2473
David Demelier <markand@malikania.fr>
parents:
14
diff
changeset
|
117 mkdir -p ${DESTDIR}${MANDIR}/man1 |
12
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
118 cp paster ${DESTDIR}${BINDIR} |
14 | 119 cp paster.1 ${DESTDIR}${MANDIR}/man1/paster.1 |
26
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
120 |
12
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
121 install-pasterd: |
1
836a698946f8
pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
122 mkdir -p ${DESTDIR}${BINDIR} |
17
09d2f54562ec
pasterd-clean: initial import, closes #2473
David Demelier <markand@malikania.fr>
parents:
14
diff
changeset
|
123 mkdir -p ${DESTDIR}${MANDIR}/man8 |
1
836a698946f8
pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
124 cp pasterd ${DESTDIR}${BINDIR} |
17
09d2f54562ec
pasterd-clean: initial import, closes #2473
David Demelier <markand@malikania.fr>
parents:
14
diff
changeset
|
125 cp pasterd-clean ${DESTDIR}${BINDIR} |
1
836a698946f8
pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
126 mkdir -p ${DESTDIR}${SHAREDIR}/paster |
836a698946f8
pasterd: add basic routes
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
127 cp -R themes ${DESTDIR}${SHAREDIR}/paster |
31
5f95e28ba3bb
pasterd-clean: forgot to install manual page
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
128 cp pasterd.8 ${DESTDIR}${MANDIR}/man8 |
5f95e28ba3bb
pasterd-clean: forgot to install manual page
David Demelier <markand@malikania.fr>
parents:
26
diff
changeset
|
129 cp pasterd-clean.8 ${DESTDIR}${MANDIR}/man8 |
0 | 130 |
12
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
131 install: install-pasterd install-paster |
93f0440d452e
pasterd: add siimple theme
David Demelier <markand@malikania.fr>
parents:
11
diff
changeset
|
132 |
51
07b6887d3557
pasterd: split into individual pages
David Demelier <markand@malikania.fr>
parents:
49
diff
changeset
|
133 dist: |
26
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
134 mkdir -p paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
135 cp -R extern paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
136 cp -R themes paster-${VERSION} |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
137 cp -R tests paster-${VERSION} |
26
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
138 cp ${CORE_SRCS} ${CORE_HDRS} paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
139 cp pasterd.8.in pasterd.c paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
140 cp pasterd-clean.8.in pasterd-clean.c paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
141 cp paster.1.in paster.sh paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
142 cp Makefile CHANGES.md CONTRIBUTE.md CREDITS.md INSTALL.md LICENSE.md \ |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
143 README.md STYLE.md TODO.md paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
144 tar -cJf paster-${VERSION}.tar.xz paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
145 rm -rf paster-${VERSION} |
6a45977c82b4
misc: update before 0.1.0
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
146 |
35
32f8c5251aa1
make: simplify and use libraries, closes #2479
David Demelier <markand@malikania.fr>
parents:
34
diff
changeset
|
147 ${TESTS_OBJS}: ${CORE_LIB} ${SQLITE_LIB} |
34
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
148 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
149 tests: ${TESTS_OBJS} |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
150 for t in ${TESTS_OBJS}; do $$t; done |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
151 |
030efbd7340f
tests: create unit tests, closes #1696 @2h
David Demelier <markand@malikania.fr>
parents:
31
diff
changeset
|
152 .PHONY: all clean dist run tests |