Overview
Comment: | Merge install script branch. Seems to be Good Enough for now, and shouldn't break anything at all to merge this. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
12a51d9c5092369194f3c2ff25673096 |
User & Date: | glowpelt on 2020-01-31 06:05:43 |
Other Links: | manifest | tags |
Context
2020-01-31
| ||
20:04 | Greatly clean up Nix build. check-in: 49da7c1eeb user: glowpelt tags: trunk | |
06:05 | Merge install script branch. Seems to be Good Enough for now, and shouldn't break anything at all to merge this. check-in: 12a51d9c50 user: glowpelt tags: trunk | |
05:58 | Add a final terminating null to first message in kcli_usage. This was causing the shared library build to segfault. Not perfect, as if there are no options, there will be two nulls, but two is better than none. check-in: 6aeac330ce user: glowpelt tags: trunk | |
2020-01-24
| ||
21:18 | Remove the $to check entirely and have more output in install.sh Sourcing a file doesn't need it to be executable, so global/common.sh can have it's executable bit removed and the $to check in it entirely removed. Adds some `say`s to install.sh to let you know it did something and help in case of error. Closed-Leaf check-in: 50b709b0d3 user: glowpelt tags: install | |
Changes
Modified global/common.sh from [582c735deb] to [d610091946].
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
check() { var=$1 test "${!var}" == "" || return 0 say "we were not able to detect a default value for the configuration variable \$$var. please set this variable to $2 and try again." exit 1 } test "$to" = "" && { say "\$to environment variable must be set to your build directory - are you running this script by hand? run [1m./build.sh[m in the root directory instead!" exit 2 } reqpack() { if ! has "$1"; then say "to $2 for [1mlibk[m, install the [1m$1[m package and try again" exit 3 fi } |
< < < < < |
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
check() { var=$1 test "${!var}" == "" || return 0 say "we were not able to detect a default value for the configuration variable \$$var. please set this variable to $2 and try again." exit 1 } reqpack() { if ! has "$1"; then say "to $2 for [1mlibk[m, install the [1m$1[m package and try again" exit 3 fi } |
Modified install.sh from [b7dc8d033f] to [df12302eb0].
1 2 3 4 |
#!/usr/bin/env bash
source global/common.sh
say "this component of the build system does not yet exist"
|
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
#!/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!" |