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