Mercurial > sci
view Makefile @ 56:308aa1086702
lib: cleanup apic
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 17 Aug 2022 12:51:04 +0200 |
parents | 9d8df0c1db63 |
children | 7a4112eec15b |
line wrap: on
line source
# # Makefile -- POSIX Makefile for sci # # Copyright (c) 2021-2022 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: CC= cc CFLAGS= -O0 PREFIX= /usr/local BINDIR= ${PREFIX}/bin MANDIR= ${PREFIX}/share/man SHAREDIR= ${PREFIX}/share VARDIR= ${PREFIX}/var 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` -include config.mk VERSION= 0.1.0 LIBSCI= libsci/libsci.a LIBSCI_SRCS= libsci/apic.c \ libsci/log.c \ libsci/strlcpy.c \ libsci/strtonum.c \ libsci/util.c LIBSCI_OBJS= ${LIBSCI_SRCS:.c=.o} LIBSCI_DEPS= ${LIBSCI_SRCS:.c=.d} SQL_SRCS= sql/init.sql \ sql/job-add.sql \ sql/job-list.sql \ sql/job-todo.sql \ sql/jobresult-add.sql \ sql/jobresult-list-by-job-group.sql \ sql/jobresult-list-by-job.sql \ sql/jobresult-list-by-worker.sql \ sql/project-find.sql \ sql/project-list.sql \ sql/project-save.sql \ sql/property-get.sql \ sql/property-set.sql \ sql/worker-find.sql \ sql/worker-list.sql \ sql/worker-save.sql SQL_OBJS= ${SQL_SRCS:.sql=.h} SCICTL= scictl/scictl SCICTL_SRCS= scictl/scictl.c SCICTL_OBJS= ${SCICTL_SRCS:.c=.o} SCICTL_DEPS= ${SCICTL_SRCS:.c=.d} SCID= scid/scid SCID_SRCS= extern/libduktape/duktape.c \ extern/libmustache4c/mustache.c \ extern/libsqlite/sqlite3.c \ scid/crud.c \ scid/db.c \ scid/http.c \ scid/main.c \ scid/page-api-jobresults.c \ scid/page-api-jobs.c \ scid/page-api-projects.c \ scid/page-api-todo.c \ scid/page-api-workers.c \ scid/page-index.c \ scid/page-jobresults.c \ scid/page-static.c \ scid/page-workers.c \ scid/pageutil.c \ scid/scid.c \ scid/theme.c SCID_OBJS= ${SCID_SRCS:.c=.o} SCID_DEPS= ${SCID_SRCS:.c=.d} SCIWORKERD= sciworkerd/sciworkerd SCIWORKERD_SRCS= sciworkerd/main.c \ sciworkerd/sciworkerd.c \ sciworkerd/task.c SCIWORKERD_OBJS= ${SCIWORKERD_SRCS:.c=.o} SCIWORKERD_DEPS= ${SCIWORKERD_SRCS:.c=.d} MAN7= sci.7 MAN8= scid.8 sciworkerd.8 TESTS= tests/test-db.c TESTS_OBJS= ${TESTS:.c=} TESTS_DEPS= ${TESTS:.c=.d} INCS= -Iextern/libsqlite \ -Iextern/libutlist \ -Iextern/libgreatest \ -Iextern/libmustache4c \ -Iextern/libduktape \ -Ilibsci \ -I. DEFS= -DVARDIR=\"${VARDIR}\" \ -DVERSION=\"${VERSION}\" \ -DSQLITE_THREADSAFE=0 \ -DSQLITE_OMIT_LOAD_EXTENSION=0 \ -DSQLITE_OMIT_DEPRECATED=0 \ -DSQLITE_DEFAULT_FOREIGN_KEY=1 SUBST= -e "s,@VERSION@,${VERSION},g" .SUFFIXES: .SUFFIXES: .c .o .sql .h all: ${SCICTL} ${SCID} ${SCIWORKERD} # for unit tests. .c: ${CC} ${INCS} ${DEFS} ${KCGI_INCS} ${JANSSON_INCS} \ ${CFLAGS} -MMD $< -o $@ lib/libsci.a ${JANSSON_LIBS} .c.o: ${CC} ${INCS} ${DEFS} ${KCGI_INCS} ${JANSSON_INCS} \ ${CFLAGS} -MMD -c $< -o $@ .sql.h: ./bcc -sc0 $< $< > $@ -include ${LIBSCI_DEPS} ${SCICTL_DEPS} ${SCID_DEPS} ${SCIWORKERD_DEPS} ${TESTS_DEPS} bcc: extern/bcc/bcc.c ${CC} ${CFLAGS} -o $@ $< ${LDFLAGS} # {{{ libsci ${SQL_OBJS}: bcc ${LIBSCI_OBJS}: ${SQL_OBJS} ${LIBSCI}: ${LIBSCI_OBJS} ${AR} -rc $@ ${LIBSCI_OBJS} # }}} # {{{ scictl ${SCICTL_OBJS}: ${SQL_OBJS} ${SCICTL}: ${LIBSCI} ${SCICTL_OBJS} ${CC} ${CFLAGS} -o $@ ${SCICTL_OBJS} ${LIBSCI} ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} # }}} # {{{ scid ${SCID_OBJS}: ${SQL_OBJS} ${SCID}: ${LIBSCI} ${SCID_OBJS} ${CC} ${CFLAGS} -o $@ ${SCID_OBJS} ${LIBSCI} ${JANSSON_LIBS} ${KCGI_LIBS} -lm ${LDFLAGS} # }}} # {{{ sciworkerd ${SCIWORKERD_OBJS}: ${SQL_OBJS} ${SCIWORKERD}: ${LIBSCI} ${SCIWORKERD_OBJS} ${CC} ${CFLAGS} -o $@ ${SCIWORKERD_OBJS} ${LIBSCI} ${LIBCURL_LIBS} ${JANSSON_LIBS} ${LDFLAGS} # }}} install: mkdir -p ${DESTDIR}${BINDIR} cp scid/scid sciworkerd/sciworkerd ${DESTDIR}${BINDIR} mkdir -p ${DESTDIR}${MANDIR}/man7 for m in ${MAN7}; do \ sed ${SUBST} < man/$$m > ${DESTDIR}${MANDIR}/man7/$$m; \ done mkdir -p ${DESTDIR}${MANDIR}/man8 for m in ${MAN8}; do \ sed ${SUBST} < man/$$m > ${DESTDIR}${MANDIR}/man8/$$m; \ done clean: rm -f bcc tags cscope.out ${MAN7} ${MAN8} ${SQL_OBJS} rm -f ${LIBSCI} ${LIBSCI_OBJS} ${LIBSCI_DEPS} rm -f ${SCICTL} ${SCICTL_OBJS} ${SCICTL_DEPS} rm -f ${SCID} ${SCID_OBJS} ${SCID_DEPS} rm -f ${SCIWORKERD}${SCIWORKERD_OBJS} ${SCIWORKERD_DEPS} rm -f ${TESTS_OBJS} ${TESTS_DEPS} doxygen: sed ${SUBST} < doc/Doxyfile | doxygen - ${TESTS_OBJS}: lib/libsci.a tests: lib/libsci.a ${TESTS_OBJS} for t in ${TESTS_OBJS}; do $$t -v; done .PHONY: all clean doxygen install tests