M INSTALL => INSTALL +20 -1
@@ 2,7 2,12 @@ Prerequisites
=============
* C compiler - defaults in config.redo
-* gzip
+
+
+Optional
+--------
+
+* gzip (autodetected, for manpage compression)
Install
@@ 27,3 32,17 @@ Persistent build configuration file
The file config.redo will be sourced when building targets which also accept
configuration through environment variables. For example, CC and PREFIX
are specified in config.redo.
+
+
+OpenBSD
+-------
+
+Replace gcc in CC with cc and add -D_BSD_SOURCE, eg:
+
+ # CC='cc -g -Wall -pedantic -std=c99 -D_POSIX_C_SOURCE=200809L
+ -D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_DEFAULT_SOURCE}' \
+ ./do install
+
+and change MANDIR to
+
+ MANDIR=$PREFIX/man/man1
M all.do => all.do +2 -1
@@ 1,1 1,2 @@
-redo-ifchange poe poe.1.gz
+. ./config.redo
+redo-ifchange poe poe.1"$MANSUFFIX"
M clean.do => clean.do +2 -1
@@ 1,1 1,2 @@
-rm -f *~ *.o poe poe.1.gz poe.1 version date version.h _config.h
+. ./config.redo
+rm -f *~ *.o poe poe.1"$MANSUFFIX" poe.1 version.h version date _config.h
M config.redo => config.redo +17 -0
@@ 1,4 1,21 @@
PREFIX=${PREFIX:-/usr/local}
+
+BINDIR=$PREFIX/bin
+DOCDIR=$PREFIX/share/doc/poe
+MANDIR=$PREFIX/share/man/man1
+
+# OpenBSD
+#MANDIR=$PREFIX/man/man1
+
+PROGS=poe
+DOCS="README LICENSE"
+MANSUFFIX=${MANSUFFIX-$(command -v gzip >/dev/null && printf ".gz")}
+MANPAGES="poe.1${MANSUFFIX}"
+
CC=${CC:-gcc -g -Wall -pedantic -std=c99 -D_POSIX_C_SOURCE=200809L \
-D_XOPEN_SOURCE=700 -D_DEFAULT_SOURCE}
STRIP=${STRIP:-:}
+
+# OpenBSD
+#CC=${CC:-cc -g -Wall -pedantic -std=c99 -D_POSIX_C_SOURCE=200809L \
+#-D_XOPEN_SOURCE=700 -D_BSD_SOURCE -D_DEFAULT_SOURCE}
M install.do => install.do +10 -7
@@ 1,9 1,12 @@
redo-ifchange all
. ./config.redo
-BINDIR=$PREFIX/bin
-#DOCDIR=$PREFIX/share/doc/poe
-MANDIR=$PREFIX/share/man/man1
-#install -d $DOCDIR
-install -d $BINDIR $MANDIR
-install -m 0755 poe $BINDIR
-install -m 0644 poe.1.gz $MANDIR
+install -d "$DOCDIR" "$BINDIR" "$MANDIR"
+for docfile in $DOCS; do
+ install -Dm 0644 "${docfile}" "${DOCDIR}/${docfile}"
+done
+for binfile in $PROGS; do
+ install -Dm 0755 "${binfile}" "${BINDIR}/${binfile}"
+done
+for manfile in $MANPAGES; do
+ install -Dm 0644 "${manfile}" "${MANDIR}/${manfile}"
+done
M uninstall.do => uninstall.do +9 -5
@@ 1,6 1,10 @@
-redo-always
. ./config.redo
-BINDIR=$PREFIX/bin
-#DOCDIR=$PREFIX/share/doc/poe
-MANDIR=$PREFIX/share/man/man1
-rm -f $BINDIR/poe $MANDIR/poe.1.gz
+for docfile in README LICENSE; do
+ rm -f "${DOCDIR}/${docfile}"
+done
+for binfile in $PROGS; do
+ rm -f "${BINDIR}/${binfile}"
+done
+for manfile in $MANPAGES; do
+ rm -f "${MANDIR}/${manfile}"
+done