Mercurial > paster
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 |
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 |
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 | 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 | 43 SQLITE_FLAGS= -DSQLITE_THREADSAFE=0 \ |
44 -DSQLITE_OMIT_LOAD_EXTENSION \ | |
45 -DSQLITE_OMIT_DEPRECATED \ | |
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 | 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 | 56 |
57 .SUFFIXES: | |
49
d8e22b0c0237
make: fix incorrect rules
David Demelier <markand@malikania.fr>
parents:
45
diff
changeset
|
58 .SUFFIXES: .o .c .in |
0 | 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 | 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 | 63 |
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 | 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 | 70 .in: |
71 sed -e "s|@SHAREDIR@|${SHAREDIR}|" \ | |
72 -e "s|@VARDIR@|${VARDIR}|" \ | |
73 < $< > $@ | |
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 | 77 ${AR} -rc $@ extern/sqlite3.o |
0 | 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 | 85 |
14 | 86 paster: paster.sh paster.1 |
7 | 87 cp paster.sh paster |
88 chmod +x paster | |
89 | |
0 | 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 | 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 | 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 | 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 |