From 834fb3a3615c7546af0f35e8f0a0b31d923d7585 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 2 Mar 2020 18:46:02 -0500 Subject: Replace .mk files with configure script --- Linux.mk | 2 -- Makefile | 3 --- README.7 | 33 ++++++++++++++++++++++----------- configure | 37 +++++++++++++++++++++++++++++++++++++ scoop.c | 6 +++++- 5 files changed, 64 insertions(+), 17 deletions(-) delete mode 100644 Linux.mk create mode 100755 configure 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 <