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