annotate Makefile @ 49:d8e22b0c0237

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