Mercurial > sci
annotate Makefile @ 18:600204c31bf0
misc: refactor
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 12 Jul 2022 20:20:51 +0200 |
parents | 2c642e18a5c0 |
children | de4bf839b565 |
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 | |
18 | 23 LIBSCI_SRCS= lib/log.c \ |
24 lib/types.c \ | |
25 lib/util.c | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
26 LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
27 LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
28 |
18 | 29 SCID_SQL= sql/init.h \ |
30 sql/job-add.h \ | |
31 sql/job-todo.h \ | |
32 sql/jobresult-add.h \ | |
33 sql/project-add.h \ | |
34 sql/project-find-id.h \ | |
35 sql/project-find.h \ | |
36 sql/project-list.h \ | |
37 sql/project-update.h \ | |
38 sql/worker-add.h \ | |
39 sql/worker-find.h \ | |
40 sql/worker-find-id.h \ | |
41 sql/worker-list.h | |
42 | |
43 SCID_SRCS= extern/libsqlite/sqlite3.c \ | |
44 scid/db.c \ | |
45 scid/http.c \ | |
46 scid/main.c \ | |
47 scid/page-api-jobs.c \ | |
48 scid/page-api-projects.c \ | |
49 scid/page-api-workers.c \ | |
50 scid/page.c | |
0 | 51 SCID_OBJS= ${SCID_SRCS:.c=.o} |
52 SCID_DEPS= ${SCID_SRCS:.c=.d} | |
53 | |
18 | 54 SCIWORKERD_SRCS= sciworkerd/main.c sciworkerd/task.c |
0 | 55 SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} |
56 SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} | |
57 | |
13 | 58 MAN7= man/sci.7 |
18 | 59 MAN8= man/scid.8 \ |
13 | 60 man/sciworkerd.8 |
61 | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
62 TESTS= tests/test-db.c |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
63 TESTS_OBJS= ${TESTS:.c=} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
64 TESTS_DEPS= ${TESTS:.c=.d} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
65 |
15 | 66 LIBBSD_INCS= `pkg-config --silence-errors --cflags libbsd-overlay` |
67 LIBBSD_LIBS= `pkg-config --silence-errors --libs libbsd-overlay` | |
0 | 68 |
69 LIBCURL_INCS= `pkg-config --cflags libcurl` | |
70 LIBCURL_LIBS= `pkg-config --libs libcurl` | |
71 | |
2
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
72 JANSSON_INCS= `pkg-config --cflags jansson` |
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
73 JANSSON_LIBS= `pkg-config --libs jansson` |
5fa3d2f479b2
sci: initial upload support
David Demelier <markand@malikania.fr>
parents:
1
diff
changeset
|
74 |
0 | 75 KCGI_INCS= `pkg-config --cflags kcgi` |
76 KCGI_LIBS= `pkg-config --libs kcgi` | |
77 | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
78 INCS= -Iextern/libsqlite \ |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
79 -Iextern/libgreatest \ |
18 | 80 -Ilib \ |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
81 -I. |
0 | 82 DEFS= -DVARDIR=\"${VARDIR}\" \ |
14
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
83 -DTMPDIR=\"${TMPDIR}\" \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
84 -DSQLITE_THREADSAFE=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
85 -DSQLITE_OMIT_LOAD_EXTENSION=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
86 -DSQLITE_OMIT_DEPRECATED=0 \ |
cb2d7f365b7c
make: disable SQLite extensions/threads
David Demelier <markand@malikania.fr>
parents:
13
diff
changeset
|
87 -DSQLITE_DEFAULT_FOREIGN_KEY=1 |
13 | 88 |
0 | 89 .SUFFIXES: |
13 | 90 .SUFFIXES: .c .o .sql .h .in |
0 | 91 |
18 | 92 all: scid/scid sciworkerd/sciworkerd ${MAN7} ${MAN8} |
0 | 93 |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
94 # for unit tests. |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
95 .c: |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
96 ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ |
7
a7e36b32e20a
make: tests need jansson
David Demelier <markand@malikania.fr>
parents:
5
diff
changeset
|
97 ${CFLAGS} -MMD $< -o $@ libsci.a ${LIBBSD_LIBS} ${JANSSON_LIBS} |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
98 |
0 | 99 .c.o: |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
100 ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
101 ${CFLAGS} -MMD -c $< -o $@ |
0 | 102 |
13 | 103 .in: |
104 sed -e "s,@VARDIR@,${VARDIR},g" \ | |
105 -e "s,@SHAREDIR@,${SHAREDIR},g" < $< > $@ | |
106 | |
0 | 107 .sql.h: |
108 ./bcc -sc0 $< $< > $@ | |
109 | |
18 | 110 -include ${LIBSCI_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${TESTS_DEPS} |
0 | 111 |
112 config.h: | |
113 @echo "using default configuration" | |
114 cp config.def.h $@ | |
115 | |
116 bcc: extern/bcc/bcc.c | |
117 ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} | |
118 | |
18 | 119 ${LIBSCI_OBJS}: config.h |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
120 |
18 | 121 lib/libsci.a: ${LIBSCI_OBJS} |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
122 ${AR} -rc $@ ${LIBSCI_OBJS} |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
123 |
18 | 124 ${SCID_SQL}: bcc |
125 ${SCID_OBJS}: ${SCID_SQL} | |
0 | 126 |
18 | 127 scid/scid: lib/libsci.a ${SCID_OBJS} |
128 ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ | |
129 ${JANSSON_LIBS} ${KCGI_LIBS} ${LDFLAGS} | |
0 | 130 |
18 | 131 sciworkerd/sciworkerd: lib/libsci.a ${SCIWORKERD_OBJS} |
132 ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ | |
133 ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} | |
0 | 134 |
13 | 135 install: |
136 mkdir -p ${DESTDIR}${BINDIR} | |
18 | 137 cp scid/scid sciworkerd/sciworkerd ${DESTDIR}${BINDIR} |
13 | 138 mkdir -p ${DESTDIR}${MANDIR}/man7 |
139 cp ${MAN7} ${DESTDIR}${MANDIR}/man7 | |
140 mkdir -p ${DESTDIR}${MANDIR}/man8 | |
141 cp ${MAN8} ${DESTDIR}${MANDIR}/man8 | |
142 | |
0 | 143 clean: |
13 | 144 rm -f bcc config.h tags cscope.out ${MAN7} ${MAN8} |
18 | 145 rm -f libsci.a ${LIBSCI_OBJS} ${LIBSCI_DEPS} |
146 rm -f scid/scid ${SCID_OBJS} ${SCID_DEPS} | |
147 rm -f sciworkerd/sciworkerd ${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} | |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
148 rm -f ${TESTS_OBJS} ${TESTS_DEPS} |
0 | 149 |
18 | 150 tests: lib/libsci.a ${TESTS_OBJS} |
5
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
151 for t in ${TESTS_OBJS}; do $$t -v; done |
566bc028cdcb
tests: initial tests coming
David Demelier <markand@malikania.fr>
parents:
3
diff
changeset
|
152 |
13 | 153 .PHONY: all clean install tests |