Mercurial > sci
comparison Makefile @ 18:600204c31bf0
misc: refactor
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 12 Jul 2022 20:20:51 +0200 |
parents | 2c642e18a5c0 |
children | de4bf839b565 |
comparison
equal
deleted
inserted
replaced
17:40fe70256fb0 | 18:600204c31bf0 |
---|---|
18 | 18 |
19 .POSIX: | 19 .POSIX: |
20 | 20 |
21 include config.mk | 21 include config.mk |
22 | 22 |
23 LIBSCI_SRCS= db.c \ | 23 LIBSCI_SRCS= lib/log.c \ |
24 log.c \ | 24 lib/types.c \ |
25 req.c \ | 25 lib/util.c |
26 types.c \ | |
27 util.c \ | |
28 extern/libsqlite/sqlite3.c | |
29 LIBSCI_DATA= 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 LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} | 26 LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} |
43 LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} | 27 LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} |
44 | 28 |
45 SCID_SRCS= scid.c | 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 | |
46 SCID_OBJS= ${SCID_SRCS:.c=.o} | 51 SCID_OBJS= ${SCID_SRCS:.c=.o} |
47 SCID_DEPS= ${SCID_SRCS:.c=.d} | 52 SCID_DEPS= ${SCID_SRCS:.c=.d} |
48 | 53 |
49 SCIWORKERD_SRCS= sciworkerd.c | 54 SCIWORKERD_SRCS= sciworkerd/main.c sciworkerd/task.c |
50 SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} | 55 SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} |
51 SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} | 56 SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} |
52 | 57 |
53 SCICTL_SRCS= scictl.c | |
54 SCICTL_OBJS= ${SCICTL_SRCS:.c=.o} | |
55 SCICTL_DEPS= ${SCICTL_SRCS:.c=.d} | |
56 | |
57 SCIWEBD_SRCS= http.c \ | |
58 page-api-jobs.c \ | |
59 page-api-projects.c \ | |
60 page-api-workers.c \ | |
61 page.c \ | |
62 sciwebd.c | |
63 SCIWEBD_OBJS= ${SCIWEBD_SRCS:.c=.o} | |
64 SCIWEBD_DEPS= ${SCIWEBD_SRCS:.c=.d} | |
65 | |
66 MAN7= man/sci.7 | 58 MAN7= man/sci.7 |
67 MAN8= man/scictl.8 \ | 59 MAN8= man/scid.8 \ |
68 man/scid.8 \ | |
69 man/sciwebd.8 \ | |
70 man/sciworkerd.8 | 60 man/sciworkerd.8 |
71 | 61 |
72 TESTS= tests/test-db.c | 62 TESTS= tests/test-db.c |
73 TESTS_OBJS= ${TESTS:.c=} | 63 TESTS_OBJS= ${TESTS:.c=} |
74 TESTS_DEPS= ${TESTS:.c=.d} | 64 TESTS_DEPS= ${TESTS:.c=.d} |
85 KCGI_INCS= `pkg-config --cflags kcgi` | 75 KCGI_INCS= `pkg-config --cflags kcgi` |
86 KCGI_LIBS= `pkg-config --libs kcgi` | 76 KCGI_LIBS= `pkg-config --libs kcgi` |
87 | 77 |
88 INCS= -Iextern/libsqlite \ | 78 INCS= -Iextern/libsqlite \ |
89 -Iextern/libgreatest \ | 79 -Iextern/libgreatest \ |
80 -Ilib \ | |
90 -I. | 81 -I. |
91 DEFS= -DVARDIR=\"${VARDIR}\" \ | 82 DEFS= -DVARDIR=\"${VARDIR}\" \ |
92 -DTMPDIR=\"${TMPDIR}\" \ | 83 -DTMPDIR=\"${TMPDIR}\" \ |
93 -DSQLITE_THREADSAFE=0 \ | 84 -DSQLITE_THREADSAFE=0 \ |
94 -DSQLITE_OMIT_LOAD_EXTENSION=0 \ | 85 -DSQLITE_OMIT_LOAD_EXTENSION=0 \ |
96 -DSQLITE_DEFAULT_FOREIGN_KEY=1 | 87 -DSQLITE_DEFAULT_FOREIGN_KEY=1 |
97 | 88 |
98 .SUFFIXES: | 89 .SUFFIXES: |
99 .SUFFIXES: .c .o .sql .h .in | 90 .SUFFIXES: .c .o .sql .h .in |
100 | 91 |
101 all: scid scictl sciwebd sciworkerd ${MAN7} ${MAN8} | 92 all: scid/scid sciworkerd/sciworkerd ${MAN7} ${MAN8} |
102 | 93 |
103 # for unit tests. | 94 # for unit tests. |
104 .c: | 95 .c: |
105 ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ | 96 ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ |
106 ${CFLAGS} -MMD $< -o $@ libsci.a ${LIBBSD_LIBS} ${JANSSON_LIBS} | 97 ${CFLAGS} -MMD $< -o $@ libsci.a ${LIBBSD_LIBS} ${JANSSON_LIBS} |
114 -e "s,@SHAREDIR@,${SHAREDIR},g" < $< > $@ | 105 -e "s,@SHAREDIR@,${SHAREDIR},g" < $< > $@ |
115 | 106 |
116 .sql.h: | 107 .sql.h: |
117 ./bcc -sc0 $< $< > $@ | 108 ./bcc -sc0 $< $< > $@ |
118 | 109 |
119 -include ${LIBSCI_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${SCICTL_DEPS} ${SCIWEBD_DEPS} ${TESTS_DEPS} | 110 -include ${LIBSCI_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${TESTS_DEPS} |
120 | 111 |
121 config.h: | 112 config.h: |
122 @echo "using default configuration" | 113 @echo "using default configuration" |
123 cp config.def.h $@ | 114 cp config.def.h $@ |
124 | 115 |
125 bcc: extern/bcc/bcc.c | 116 bcc: extern/bcc/bcc.c |
126 ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} | 117 ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} |
127 | 118 |
128 ${LIBSCI_DATA}: bcc | 119 ${LIBSCI_OBJS}: config.h |
129 ${LIBSCI_OBJS}: config.h ${LIBSCI_DATA} | |
130 | 120 |
131 libsci.a: ${LIBSCI_OBJS} | 121 lib/libsci.a: ${LIBSCI_OBJS} |
132 ${AR} -rc $@ ${LIBSCI_OBJS} | 122 ${AR} -rc $@ ${LIBSCI_OBJS} |
133 | 123 |
134 ${SCID_OBJS}: libsci.a | 124 ${SCID_SQL}: bcc |
125 ${SCID_OBJS}: ${SCID_SQL} | |
135 | 126 |
136 scid: ${SCID_OBJS} | 127 scid/scid: lib/libsci.a ${SCID_OBJS} |
137 ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} libsci.a ${LIBBSD_LIBS} \ | 128 ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ |
138 ${JANSSON_LIBS} ${LDFLAGS} | 129 ${JANSSON_LIBS} ${KCGI_LIBS} ${LDFLAGS} |
139 | 130 |
140 ${SCIWORKERD_OBJS}: libsci.a | 131 sciworkerd/sciworkerd: lib/libsci.a ${SCIWORKERD_OBJS} |
141 | 132 ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ |
142 sciworkerd: ${SCIWORKERD_OBJS} | |
143 ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} libsci.a ${LIBBSD_LIBS} \ | |
144 ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} | 133 ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} |
145 | |
146 ${SCICTL_OBJS}: libsci.a | |
147 | |
148 scictl: ${SCICTL_OBJS} | |
149 ${CC} ${CFLAGS} -o $@ ${SCICTL_OBJS} libsci.a ${LIBBSD_LIBS} \ | |
150 ${JANSSON_LIBS} ${LDFLAGS} | |
151 | |
152 ${SCIWEBD_OBJS}: libsci.a | |
153 | |
154 sciwebd: ${SCIWEBD_OBJS} | |
155 ${CC} ${CFLAGS} -o $@ ${SCIWEBD_OBJS} libsci.a ${LIBBSD_LIBS} \ | |
156 ${KCGI_LIBS} ${JANSSON_LIBS} ${LDFLAGS} | |
157 | 134 |
158 install: | 135 install: |
159 mkdir -p ${DESTDIR}${BINDIR} | 136 mkdir -p ${DESTDIR}${BINDIR} |
160 cp scid scictl sciwebd sciworkerd ${DESTDIR}${BINDIR} | 137 cp scid/scid sciworkerd/sciworkerd ${DESTDIR}${BINDIR} |
161 mkdir -p ${DESTDIR}${MANDIR}/man7 | 138 mkdir -p ${DESTDIR}${MANDIR}/man7 |
162 cp ${MAN7} ${DESTDIR}${MANDIR}/man7 | 139 cp ${MAN7} ${DESTDIR}${MANDIR}/man7 |
163 mkdir -p ${DESTDIR}${MANDIR}/man8 | 140 mkdir -p ${DESTDIR}${MANDIR}/man8 |
164 cp ${MAN8} ${DESTDIR}${MANDIR}/man8 | 141 cp ${MAN8} ${DESTDIR}${MANDIR}/man8 |
165 | 142 |
166 clean: | 143 clean: |
167 rm -f bcc config.h tags cscope.out ${MAN7} ${MAN8} | 144 rm -f bcc config.h tags cscope.out ${MAN7} ${MAN8} |
168 rm -f libsci.a ${LIBSCI_OBJS} ${LIBSCI_DATA} ${LIBSCI_DEPS} | 145 rm -f libsci.a ${LIBSCI_OBJS} ${LIBSCI_DEPS} |
169 rm -f scid ${SCID_OBJS} ${SCID_DEPS} | 146 rm -f scid/scid ${SCID_OBJS} ${SCID_DEPS} |
170 rm -f scictl ${SCICTL_OBJS} ${SCICTL_DEPS} | 147 rm -f sciworkerd/sciworkerd ${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} |
171 rm -f sciworkerd ${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} | |
172 rm -f sciwebd ${SCIWEBD_OBJS} ${SCIWEBD_DEPS} | |
173 rm -f ${TESTS_OBJS} ${TESTS_DEPS} | 148 rm -f ${TESTS_OBJS} ${TESTS_DEPS} |
174 | 149 |
175 ${TESTS_OBJS}: libsci.a | 150 tests: lib/libsci.a ${TESTS_OBJS} |
176 | |
177 tests: ${TESTS_OBJS} | |
178 for t in ${TESTS_OBJS}; do $$t -v; done | 151 for t in ${TESTS_OBJS}; do $$t -v; done |
179 | 152 |
180 .PHONY: all clean install tests | 153 .PHONY: all clean install tests |