libk  install.sh at [12a51d9c50]

File install.sh artifact df12302eb0 part of check-in 12a51d9c50


#!/usr/bin/env bash
source global/common.sh

check "prefix" "a directory to install to"
build="${build:-out}"

bindir="$prefix/bin"
libdir="$prefix/lib"

if [ "$prefix" = "/" ]; then
	say "installing docs and headers into usr instad of /"
	sharedir="$prefix/usr/share"
	incdir="$prefix/usr/include"
else
	incdir="$prefix/include"
	sharedir="$prefix/share"
fi

say "Starting install."

# Libraries
# These may or may not exist, depending on what library build is done, so check
say "Installing libraries..."
[ -e "$build/libk.a" ] && install -Dm644 -t "$libdir" "$build/libk.a"
[ -e "$build/libk.so" ] && install -Dm644 -t "$libdir" "$build/libk.so"
[ -e "$build/boot.o" ] && install -Dm644 -t "$libdir/libk" "$build/boot.o"

# Binaries
say "Installing binaries..."
install -Dm755 -t "$bindir" "$build/kcore.testbin"
install -Dm755 -t "$bindir" "$build/kcli.testbin"
install -Dm755 -t "$bindir" "$build/kgraft.attach"

# Includes
say "Installing includes..."
for inc in "$build"/k/*; do
	install -Dm644 -t "$incdir/k" "$inc"
done

# Documentation
say "Installing documentation..."
for man in "$build"/doc/man/*; do
	install -Dm644 -t "$sharedir/man" "$man"
done
for html in "$build"/doc/html/*; do
	install -Dm644 -t "$sharedir/doc/libk/html" "$html"
done
for pdf in "$build"/doc/pdf/*; do
	install -Dm644 -t "$sharedir/doc/libk/pdf" "$pdf"
done
say "Install done!"