Mercurial > sci
view Makefile @ 18:600204c31bf0
misc: refactor
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 12 Jul 2022 20:20:51 +0200 |
parents | 2c642e18a5c0 |
children | de4bf839b565 |
line wrap: on
line source
# # Makefile -- POSIX Makefile for sci # # Copyright (c) 2021 David Demelier <markand@malikania.fr> # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above # copyright notice and this permission notice appear in all copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # .POSIX: include config.mk LIBSCI_SRCS= lib/log.c \ lib/types.c \ lib/util.c LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} SCID_SQL= sql/init.h \ sql/job-add.h \ sql/job-todo.h \ sql/jobresult-add.h \ sql/project-add.h \ sql/project-find-id.h \ sql/project-find.h \ sql/project-list.h \ sql/project-update.h \ sql/worker-add.h \ sql/worker-find.h \ sql/worker-find-id.h \ sql/worker-list.h SCID_SRCS= extern/libsqlite/sqlite3.c \ scid/db.c \ scid/http.c \ scid/main.c \ scid/page-api-jobs.c \ scid/page-api-projects.c \ scid/page-api-workers.c \ scid/page.c SCID_OBJS= ${SCID_SRCS:.c=.o} SCID_DEPS= ${SCID_SRCS:.c=.d} SCIWORKERD_SRCS= sciworkerd/main.c sciworkerd/task.c SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} MAN7= man/sci.7 MAN8= man/scid.8 \ man/sciworkerd.8 TESTS= tests/test-db.c TESTS_OBJS= ${TESTS:.c=} TESTS_DEPS= ${TESTS:.c=.d} LIBBSD_INCS= `pkg-config --silence-errors --cflags libbsd-overlay` LIBBSD_LIBS= `pkg-config --silence-errors --libs libbsd-overlay` LIBCURL_INCS= `pkg-config --cflags libcurl` LIBCURL_LIBS= `pkg-config --libs libcurl` JANSSON_INCS= `pkg-config --cflags jansson` JANSSON_LIBS= `pkg-config --libs jansson` KCGI_INCS= `pkg-config --cflags kcgi` KCGI_LIBS= `pkg-config --libs kcgi` INCS= -Iextern/libsqlite \ -Iextern/libgreatest \ -Ilib \ -I. DEFS= -DVARDIR=\"${VARDIR}\" \ -DTMPDIR=\"${TMPDIR}\" \ -DSQLITE_THREADSAFE=0 \ -DSQLITE_OMIT_LOAD_EXTENSION=0 \ -DSQLITE_OMIT_DEPRECATED=0 \ -DSQLITE_DEFAULT_FOREIGN_KEY=1 .SUFFIXES: .SUFFIXES: .c .o .sql .h .in all: scid/scid sciworkerd/sciworkerd ${MAN7} ${MAN8} # for unit tests. .c: ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ ${CFLAGS} -MMD $< -o $@ libsci.a ${LIBBSD_LIBS} ${JANSSON_LIBS} .c.o: ${CC} ${INCS} ${DEFS} ${LIBBSD_INCS} ${KCGI_INCS} ${JANSSON_INCS} \ ${CFLAGS} -MMD -c $< -o $@ .in: sed -e "s,@VARDIR@,${VARDIR},g" \ -e "s,@SHAREDIR@,${SHAREDIR},g" < $< > $@ .sql.h: ./bcc -sc0 $< $< > $@ -include ${LIBSCI_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${TESTS_DEPS} config.h: @echo "using default configuration" cp config.def.h $@ bcc: extern/bcc/bcc.c ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} ${LIBSCI_OBJS}: config.h lib/libsci.a: ${LIBSCI_OBJS} ${AR} -rc $@ ${LIBSCI_OBJS} ${SCID_SQL}: bcc ${SCID_OBJS}: ${SCID_SQL} scid/scid: lib/libsci.a ${SCID_OBJS} ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ ${JANSSON_LIBS} ${KCGI_LIBS} ${LDFLAGS} sciworkerd/sciworkerd: lib/libsci.a ${SCIWORKERD_OBJS} ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} lib/libsci.a ${LIBBSD_LIBS} \ ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} install: mkdir -p ${DESTDIR}${BINDIR} cp scid/scid sciworkerd/sciworkerd ${DESTDIR}${BINDIR} mkdir -p ${DESTDIR}${MANDIR}/man7 cp ${MAN7} ${DESTDIR}${MANDIR}/man7 mkdir -p ${DESTDIR}${MANDIR}/man8 cp ${MAN8} ${DESTDIR}${MANDIR}/man8 clean: rm -f bcc config.h tags cscope.out ${MAN7} ${MAN8} rm -f libsci.a ${LIBSCI_OBJS} ${LIBSCI_DEPS} rm -f scid/scid ${SCID_OBJS} ${SCID_DEPS} rm -f sciworkerd/sciworkerd ${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} rm -f ${TESTS_OBJS} ${TESTS_DEPS} tests: lib/libsci.a ${TESTS_OBJS} for t in ${TESTS_OBJS}; do $$t -v; done .PHONY: all clean install tests