Mercurial > paster
diff 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 diff
--- a/Makefile Tue Feb 21 22:22:02 2023 +0100 +++ b/Makefile Wed Mar 15 19:34:00 2023 +0100 @@ -19,6 +19,7 @@ .POSIX: # User options. +CC= cc CFLAGS= -DNDEBUG -O3 # Installation paths. @@ -28,67 +29,82 @@ MANDIR= $(PREFIX)/share/man VARDIR= $(PREFIX)/var +-include config.mk + VERSION= 0.3.0 -CORE_SRCS= config.c \ - database.c \ - fmt.c \ - fmt-paste.c \ - fragment-duration.c \ - fragment-language.c \ - fragment-paste.c \ - fragment.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 \ +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/paste-table.html \ - html/paste.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=) -SQLITE_FLAGS= -DSQLITE_THREADSAFE=0 \ - -DSQLITE_OMIT_LOAD_EXTENSION \ - -DSQLITE_OMIT_DEPRECATED \ - -DSQLITE_DEFAULT_FOREIGN_KEYS=1 -SQLITE_LIB= libsqlite3.a +KCGI_INCS= `pkg-config --cflags kcgi` +KCGI_LIBS= `pkg-config --libs kcgi` + +JANSSON_INCS= `pkg-config --cflags jansson` +JANSSON_LIBS= `pkg-config --libs jansson` -KCGI_INCS= `pkg-config --cflags kcgi kcgi-html` -KCGI_LIBS= `pkg-config --libs kcgi kcgi-html` +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) -INCS= -I. -Iextern $(KCGI_INCS) -DEFS= -D_POSIX_C_SOURCE=200809L -DVARDIR=\"$(VARDIR)\" -DSHAREDIR=\"$(SHAREDIR)\" -LIBS= $(KCGI_LIBS) SED= sed -e "s|@SHAREDIR@|$(SHAREDIR)|" \ -e "s|@VARDIR@|$(VARDIR)|" BCC= extern/bcc/bcc .SUFFIXES: -.SUFFIXES: .o .c .h .sh .html +.SUFFIXES: .c .o .h .sh .html -all: pasterd pasterd-clean paster +all: pasterd paster + +-include $(CORE_DEPS) .c.o: - $(CC) $(INCS) $(DEFS) $(CFLAGS) -c $< -o $@ + $(CC) $(INCS) $(DEFS) $(CFLAGS) -MMD -c $< -o $@ -.o: +.c: $(CC) $(INCS) $(DEFS) $(CFLAGS) $< -o $@ $(CORE_LIB) $(SQLITE_LIB) $(LIBS) $(LDFLAGS) .html.h: @@ -97,13 +113,9 @@ .sh: $(SED) < $< > $@ -$(SQLITE_LIB): extern/sqlite3.c extern/sqlite3.h - $(CC) $(CFLAGS) $(SQLITE_FLAGS) -c extern/sqlite3.c -o extern/sqlite3.o - $(AR) -rc $@ extern/sqlite3.o - $(HTML_OBJS): $(BCC) -$(CORE_OBJS): $(HTML_OBJS) +$(CORE_SRCS): $(HTML_OBJS) $(CORE_LIB): $(CORE_OBJS) $(AR) -rc $@ $(CORE_OBJS) @@ -112,12 +124,11 @@ cp paster.sh paster chmod +x paster -pasterd: $(CORE_LIB) $(SQLITE_LIB) +pasterd: $(CORE_LIB) clean: - rm -f $(SQLITE_LIB) extern/sqlite3.o rm -f $(CORE_LIB) $(CORE_OBJS) - rm -f paster pasterd-clean pasterd + rm -f paster pasterd rm -f test.db $(TESTS_OBJS) install-paster: @@ -132,16 +143,14 @@ mkdir -p $(DESTDIR)$(MANDIR)/man5 mkdir -p $(DESTDIR)$(MANDIR)/man8 cp pasterd $(DESTDIR)$(BINDIR) - cp pasterd-clean $(DESTDIR)$(BINDIR) mkdir -p $(DESTDIR)$(SHAREDIR)/paster cp -R themes $(DESTDIR)$(SHAREDIR)/paster $(SED) < pasterd.8 > $(DESTDIR)$(MANDIR)/man8/pasterd.8 - $(SED) < pasterd-clean.8 > $(DESTDIR)$(MANDIR)/man8/pasterd-clean.8 $(SED) < pasterd-themes.5 > $(DESTDIR)$(MANDIR)/man5/pasterd-themes.5 install: install-pasterd install-paster -$(TESTS_OBJS): $(CORE_LIB) $(SQLITE_LIB) +$(TESTS_OBJS): $(CORE_LIB) tests: $(TESTS) for t in $(TESTS); do $$t; done