Mercurial > paster
view Makefile @ 74:67b3d13a5035
pasterd: make own HTML code for good
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 15 Mar 2023 19:34:00 +0100 |
parents | 6792975da9a0 |
children |
line wrap: on
line source
# # Makefile -- basic makefile for paster # # Copyright (c) 2020-2023 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: # User options. CC= cc CFLAGS= -DNDEBUG -O3 # Installation paths. PREFIX= /usr/local BINDIR= $(PREFIX)/bin SHAREDIR= $(PREFIX)/share MANDIR= $(PREFIX)/share/man VARDIR= $(PREFIX)/var -include config.mk VERSION= 0.3.0 CORE_SRCS= extern/libmustach/mustach-jansson.c \ extern/libmustach/mustach-wrap.c \ extern/libmustach/mustach.c \ extern/libmustach/mustach.c \ extern/libsqlite/sqlite3.c \ config.c \ database.c \ http.c \ log.c \ page-download.c \ page-fork.c \ page-index.c \ page-new.c \ page-paste.c \ page-search.c \ page-static.c \ page.c \ paste.c \ util.c CORE_OBJS= $(CORE_SRCS:.c=.o) CORE_DEPS= $(CORE_SRCS:.c=.d) CORE_LIB= libpaster.a HTML_SRCS= html/footer.html \ html/header.html \ html/index.html \ html/new.html \ html/paste.html \ html/search.html \ html/status.html HTML_OBJS= $(HTML_SRCS:.html=.h) TESTS_SRCS= tests/test-database.c TESTS_OBJS= $(TESTS_SRCS:.c=.o) TESTS= $(TESTS_SRCS:.c=) KCGI_INCS= `pkg-config --cflags kcgi` KCGI_LIBS= `pkg-config --libs kcgi` JANSSON_INCS= `pkg-config --cflags jansson` JANSSON_LIBS= `pkg-config --libs jansson` DEFS= -DSQLITE_DEFAULT_FOREIGN_KEYS=1 \ -DSQLITE_OMIT_DEPRECATED \ -DSQLITE_OMIT_LOAD_EXTENSION \ -DSQLITE_THREADSAFE=0 \ -DSHAREDIR=\"$(SHAREDIR)\" \ -DVARDIR=\"$(VARDIR)\" INCS= -I. \ -Iextern \ -Iextern/libmustach \ -Iextern/libsqlite \ $(KCGI_INCS) \ $(JANSSON_INCS) LIBS= $(KCGI_LIBS) \ $(JANSSON_LIBS) SED= sed -e "s|@SHAREDIR@|$(SHAREDIR)|" \ -e "s|@VARDIR@|$(VARDIR)|" BCC= extern/bcc/bcc .SUFFIXES: .SUFFIXES: .c .o .h .sh .html all: pasterd paster -include $(CORE_DEPS) .c.o: $(CC) $(INCS) $(DEFS) $(CFLAGS) -MMD -c $< -o $@ .c: $(CC) $(INCS) $(DEFS) $(CFLAGS) $< -o $@ $(CORE_LIB) $(SQLITE_LIB) $(LIBS) $(LDFLAGS) .html.h: $(BCC) -cs0 $< html_${<F} > $@ .sh: $(SED) < $< > $@ $(HTML_OBJS): $(BCC) $(CORE_SRCS): $(HTML_OBJS) $(CORE_LIB): $(CORE_OBJS) $(AR) -rc $@ $(CORE_OBJS) paster: paster.sh cp paster.sh paster chmod +x paster pasterd: $(CORE_LIB) clean: rm -f $(CORE_LIB) $(CORE_OBJS) rm -f paster pasterd rm -f test.db $(TESTS_OBJS) install-paster: mkdir -p $(DESTDIR)$(BINDIR) mkdir -p $(DESTDIR)$(MANDIR)/man1 cp paster $(DESTDIR)$(BINDIR) chmod 755 $(DESTDIR)$(BINDIR)/paster $(SED) < paster.1 > $(DESTDIR)$(MANDIR)/man1/paster.1 install-pasterd: mkdir -p $(DESTDIR)$(BINDIR) mkdir -p $(DESTDIR)$(MANDIR)/man5 mkdir -p $(DESTDIR)$(MANDIR)/man8 cp pasterd $(DESTDIR)$(BINDIR) mkdir -p $(DESTDIR)$(SHAREDIR)/paster cp -R themes $(DESTDIR)$(SHAREDIR)/paster $(SED) < pasterd.8 > $(DESTDIR)$(MANDIR)/man8/pasterd.8 $(SED) < pasterd-themes.5 > $(DESTDIR)$(MANDIR)/man5/pasterd-themes.5 install: install-pasterd install-paster $(TESTS_OBJS): $(CORE_LIB) tests: $(TESTS) for t in $(TESTS); do $$t; done .PHONY: all clean tests