diff options
-rw-r--r-- | Linux.mk | 2 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | README.7 | 33 | ||||
-rwxr-xr-x | configure | 37 | ||||
-rw-r--r-- | scoop.c | 6 |
5 files changed, 64 insertions, 17 deletions
diff --git a/Linux.mk b/Linux.mk deleted file mode 100644 index 29b7616..0000000 --- a/Linux.mk +++ /dev/null @@ -1,2 +0,0 @@ -CFLAGS += -D_GNU_SOURCE -RCS = diff --git a/Makefile b/Makefile index b358a82..5db0edd 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,8 @@ PREFIX = /usr/local MANDIR = ${PREFIX}/share/man ETCDIR = ${PREFIX}/etc -LIBS_PREFIX = /usr/local CFLAGS += -std=c11 -Wall -Wextra -Wpedantic -CFLAGS += ${LIBS_PREFIX:%=-I%/include} -LDFLAGS += ${LIBS_PREFIX:%=-L%/lib} LDLIBS = -lsqlite3 LDLIBS_litterbox = -ltls diff --git a/README.7 b/README.7 index f996a65..65ebab3 100644 --- a/README.7 +++ b/README.7 @@ -1,4 +1,4 @@ -.Dd January 12, 2020 +.Dd March 2, 2020 .Dt README 7 .Os "Causal Agency" . @@ -22,16 +22,27 @@ as a logging bot. requires LibreSSL .Pq Fl ltls and SQLite -.Pq Fl lsqlite3 , -and targets -.Fx -and Darwin. -To build on GNU/Linux, -copy -.Pa Linux.mk -to -.Pa config.mk -and modify as needed. +.Pq Fl lsqlite3 . +It primarily targets +.Fx , +as well as macOS and Linux. +. +.Bd -literal -offset indent +\&./configure +make all +sudo make install PREFIX=/usr/local +.Ed +. +.Pp +If your system installs LibreSSL +in a non-standard path, set +.Ev PKG_CONFIG_PATH +for +.Nm ./configure . +For example, +.Bd -literal -offset indent +PKG_CONFIG_PATH=/opt/libressl/lib/pkgconfig ./configure +.Ed . .Sh FILES .Bl -tag -width "litterbox.c" -compact diff --git a/configure b/configure new file mode 100755 index 0000000..0b5f212 --- /dev/null +++ b/configure @@ -0,0 +1,37 @@ +#!/bin/sh +set -eu + +exec >config.mk + +case "$(uname)" in + (FreeBSD) + if ! pkg info -e libressl || ! pkg info -e sqlite3; then + echo 'LibreSSL & SQLite3 required' >&2 + exit 1 + fi + prefix=$(pkg query '%p' sqlite3) + cat <<-EOF + CFLAGS += -I${prefix}/include + CFLAGS += -D'SQLITE3_BIN="${prefix}/bin/sqlite3"' + LDFLAGS += -L${prefix}/lib + EOF + exit + ;; + (Linux) + cat <<-EOF + CFLAGS += -D_GNU_SOURCE + RCS = + EOF + ;; +esac + +libs='libtls sqlite3' +pkg-config --print-errors $libs + +cat <<EOF +CFLAGS += $(pkg-config --cflags $libs) +CFLAGS += -D'SQLITE3_BIN="$(pkg-config --variable=prefix sqlite3)/bin/sqlite3"' +LDFLAGS += $(pkg-config --libs-only-L $libs) +LDLIBS = $(pkg-config --libs-only-l sqlite3) +LDLIBS_litterbox = $(pkg-config --libs-only-l libtls) +EOF diff --git a/scoop.c b/scoop.c index 922c7cd..a12b37b 100644 --- a/scoop.c +++ b/scoop.c @@ -28,6 +28,10 @@ #include "database.h" +#ifndef SQLITE3_BIN +#define SQLITE3_BIN "sqlite3" +#endif + struct Event { const char *network; const char *context; @@ -419,7 +423,7 @@ int main(int argc, char *argv[]) { path = strdup(sqlite3_db_filename(db, "main")); if (!path) err(EX_OSERR, "strdup"); dbClose(); - execlp("sqlite3", "sqlite3", path, NULL); + execlp(SQLITE3_BIN, "sqlite3", path, NULL); err(EX_UNAVAILABLE, "sqlite3"); } |