Mercurial > sci
annotate Makefile @ 25:c40f98360ac9
misc: improve console logging
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 25 Jul 2022 21:22:13 +0200 |
parents | 34cbbd215ef7 |
children | 7e10cace67a3 |
rev | line source |
---|---|
1
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
1 # |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
2 # Makefile -- POSIX Makefile for sci |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
3 # |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
4 # Copyright (c) 2021 David Demelier <markand@malikania.fr> |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
5 # |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
6 # Permission to use, copy, modify, and/or distribute this software for any |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
7 # purpose with or without fee is hereby granted, provided that the above |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
8 # copyright notice and this permission notice appear in all copies. |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
9 # |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
17 # |
5afdb14df924
sci: add support for storing results
David Demelier <markand@malikania.fr>
parents:
0
diff
changeset
|
18 |
0 | 19 .POSIX: |
20 | |
21 include config.mk | |
22 | |
21 | 23 LIBSCI= lib/libsci.a |
19 | 24 LIBSCI_SRCS= extern/libsqlite/sqlite3.c \ |
25 lib/apic.c \ | |
26 lib/db.c \ | |
27 lib/log.c \ | |
21 | 28 lib/strlcpy.c \ |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
29 lib/strtonum.c \ |
18 | 30 lib/types.c \ |
31 lib/util.c | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
32 LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
33 LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
34 |
21 | 35 SQL_SRCS= sql/init.sql \ |
36 sql/job-add.sql \ | |
37 sql/job-todo.sql \ | |
38 sql/jobresult-add.sql \ | |
39 sql/project-find.sql \ | |
40 sql/project-list.sql \ | |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
41 sql/project-save.sql \ |
21 | 42 sql/worker-find.sql \ |
22
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
43 sql/worker-list.sql \ |
dd078aea5d02
misc: use project/worker name as primary key
David Demelier <markand@malikania.fr>
parents:
21
diff
changeset
|
44 sql/worker-save.sql |
21 | 45 SQL_OBJS= ${SQL_SRCS:.sql=.h} |
18 | 46 |
21 | 47 SCICTL= scictl/scictl |
48 SCICTL_SRCS= scictl/scictl.c | |
49 SCICTL_OBJS= ${SCICTL_SRCS:.c=.o} | |
50 SCICTL_DEPS= ${SCICTL_SRCS:.c=.d} | |
51 | |
52 SCID= scid/scid | |
19 | 53 SCID_SRCS= scid/http.c \ |
18 | 54 scid/main.c \ |
24
34cbbd215ef7
misc: add basic support for jobresults
David Demelier <markand@malikania.fr>
parents:
23
diff
changeset
|
55 scid/page-api-jobresults.c \ |
23
2cb228f23f53
misc: rework todo/jobs HTTP requests
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
56 scid/page-api-jobs.c \ |
18 | 57 scid/page-api-projects.c \ |
20 | 58 scid/page-api-todo.c \ |
18 | 59 scid/page-api-workers.c \ |
60 scid/page.c | |
0 | 61 SCID_OBJS= ${SCID_SRCS:.c=.o} |
62 SCID_DEPS= ${SCID_SRCS:.c=.d} | |
63 | |
23
2cb228f23f53
misc: rework todo/jobs HTTP requests
David Demelier <markand@malikania.fr>
parents:
22
diff
changeset
|
64 SCIWORKERD= sciworkerd/sciworkerd |
19 | 65 SCIWORKERD_SRCS= sciworkerd/main.c \ |
66 sciworkerd/sciworkerd.c \ | |
67 sciworkerd/task.c | |
0 | 68 SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} |
69 SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} | |
70 | |
13 | 71 MAN7= man/sci.7 |
18 | 72 MAN8= man/scid.8 \ |
13 | 73 man/sciworkerd.8 |
74 | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
75 TESTS= tests/test-db.c |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
76 TESTS_OBJS= ${TESTS:.c=} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
77 TESTS_DEPS= ${TESTS:.c=.d} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
78 |
0 | 79 LIBCURL_INCS= `pkg-config --cflags libcurl` |
80 LIBCURL_LIBS= `pkg-config --libs libcurl` | |
81 | |
2
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
82 JANSSON_INCS= `pkg-config --cflags jansson` |
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
83 JANSSON_LIBS= `pkg-config --libs jansson` |
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
84 |
0 | 85 KCGI_INCS= `pkg-config --cflags kcgi` |
86 KCGI_LIBS= `pkg-config --libs kcgi` | |
87 | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
88 INCS= -Iextern/libsqlite \ |
19 | 89 -Iextern/libutlist \ |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
90 -Iextern/libgreatest \ |
18 | 91 -Ilib \ |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
92 -I. |
0 | 93 DEFS= -DVARDIR=\"${VARDIR}\" \ |
14
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
94 -DTMPDIR=\"${TMPDIR}\" \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
95 -DSQLITE_THREADSAFE=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
96 -DSQLITE_OMIT_LOAD_EXTENSION=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
97 -DSQLITE_OMIT_DEPRECATED=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
98 -DSQLITE_DEFAULT_FOREIGN_KEY=1 |
13 | 99 |
0 | 100 .SUFFIXES: |
21 | 101 .SUFFIXES: .c .o .sql .h |
0 | 102 |
21 | 103 all: ${SCICTL} ${SCID} ${SCIWORKERD} |
0 | 104 |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
105 # for unit tests. |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
106 .c: |
19 | 107 ${CC} ${INCS} ${DEFS} ${KCGI_INCS} ${JANSSON_INCS} \ |
108 ${CFLAGS} -MMD $< -o $@ lib/libsci.a ${JANSSON_LIBS} | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
109 |
0 | 110 .c.o: |
19 | 111 ${CC} ${INCS} ${DEFS} ${KCGI_INCS} ${JANSSON_INCS} \ |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
112 ${CFLAGS} -MMD -c $< -o $@ |
0 | 113 |
114 .sql.h: | |
115 ./bcc -sc0 $< $< > $@ | |
116 | |
21 | 117 -include ${LIBSCI_DEPS} ${SCICTL_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${TESTS_DEPS} |
0 | 118 |
119 config.h: | |
120 @echo "using default configuration" | |
121 cp config.def.h $@ | |
122 | |
123 bcc: extern/bcc/bcc.c | |
124 ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} | |
125 | |
21 | 126 # {{{ libsci |
127 | |
128 ${SQL_OBJS}: bcc | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
129 |
21 | 130 ${LIBSCI_OBJS}: config.h ${SQL_OBJS} |
131 | |
132 ${LIBSCI}: ${LIBSCI_OBJS} | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
133 ${AR} -rc $@ ${LIBSCI_OBJS} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
134 |
21 | 135 # }}} |
136 | |
137 # {{{ scictl | |
138 | |
139 ${SCICTL_OBJS}: ${LIBSCI} | |
0 | 140 |
21 | 141 ${SCICTL}: ${SCICTL_OBJS} |
142 ${CC} ${CFLAGS} -o $@ ${SCICTL_OBJS} ${LIBSCI} \ | |
143 ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} | |
144 | |
145 # }}} | |
146 | |
147 # {{{ scid | |
148 | |
149 ${SCID_OBJS}: ${LIBSCI} | |
150 | |
151 ${SCID}: ${SCID_OBJS} | |
152 ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} lib/libsci.a \ | |
18 | 153 ${JANSSON_LIBS} ${KCGI_LIBS} ${LDFLAGS} |
0 | 154 |
21 | 155 # }}} |
156 | |
157 # {{{ sciworkerd | |
158 | |
159 ${SCIWORKERD_OBJS}: ${LIBSCI} | |
160 | |
161 ${SCIWORKERD}: ${SCIWORKERD_OBJS} | |
162 ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} lib/libsci.a \ | |
18 | 163 ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} |
0 | 164 |
21 | 165 # }}} |
166 | |
13 | 167 install: |
168 mkdir -p ${DESTDIR}${BINDIR} | |
18 | 169 cp scid/scid sciworkerd/sciworkerd ${DESTDIR}${BINDIR} |
13 | 170 mkdir -p ${DESTDIR}${MANDIR}/man7 |
171 cp ${MAN7} ${DESTDIR}${MANDIR}/man7 | |
172 mkdir -p ${DESTDIR}${MANDIR}/man8 | |
173 cp ${MAN8} ${DESTDIR}${MANDIR}/man8 | |
174 | |
0 | 175 clean: |
21 | 176 rm -f bcc config.h tags cscope.out ${MAN7} ${MAN8} ${SQL_OBJS} |
177 rm -f ${LIBSCI} ${LIBSCI_OBJS} ${LIBSCI_DEPS} | |
178 rm -f ${SCICTL} ${SCICTL_OBJS} ${SCICTL_DEPS} | |
179 rm -f ${SCID} ${SCID_OBJS} ${SCID_DEPS} | |
180 rm -f ${SCIWORKERD}${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
181 rm -f ${TESTS_OBJS} ${TESTS_DEPS} |
0 | 182 |
19 | 183 ${TESTS_OBJS}: lib/libsci.a |
184 | |
18 | 185 tests: lib/libsci.a ${TESTS_OBJS} |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
186 for t in ${TESTS_OBJS}; do $$t -v; done |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
187 |
13 | 188 .PHONY: all clean install tests |