utils/build.sh

71 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env sh
#
#build stuff
VERSION='0.0.2-1'
CFLAGS="-std=c99 -Wall -W -Wpointer-arith -Wbad-function-cast -Wpedantic -D_XOPEN_SOURCE=700"
DEBDIR="dist/djl-utils"
commands="bin clean deb help tarball"
argv0="$0"
prettyname() {
basename "$1" | rev | cut -d'.' -f2 | rev
}
cbuild() {
target="$1"
targetdest="bin/$(prettyname "$target")"
shift
(set -x; cc $CFLAGS -o "$targetdest" "$target" src/util.c "$@")
}
shbuild() {
target="$1"
targetdest="bin/$(prettyname "$target" | sed 's/\.sh$//')"
(set -x; cp "$target" "$targetdest")
}
bin() {
[ ! -d bin ] && mkdir bin
for f in src/*.c; do
[ "$f" = "src/util.c" ] && continue
cbuild "$f"
done
for f in src/*.sh; do
shbuild "$f"
done
}
clean() {
(set -x; rm -rf dist bin)
}
deb() {
bin
[ -d "$DEBDIR" ] && rm -f "$DISTDIR"
(set -x; mkdir -p "$DEBDIR/usr/bin"
mkdir -p "$DEBDIR/usr/share/man/man1"
cp bin/* "$DEBDIR/usr/bin"
cp doc/* "$DEBDIR/usr/share/man/man1"
cp -r pkgsrc/DEBIAN "$DEBDIR"
sed -i "s/%VERSION%/$VERSION/g" "$DEBDIR/DEBIAN/control"
dpkg-deb -b "$DEBDIR")
}
help() {
echo "$argv0 [$(echo "$commands" | tr ' ' '|')]" > /dev/stderr
}
tarball() {
"$argv0" clean
(set -x; tar -czf "v$VERSION.tgz" src doc pkgsrc "$argv0" LICENSE)
}
test -z "$1" && bin || $1