Admin/bash_process/build
author wenzelm
Thu, 03 Mar 2022 17:13:24 +0100
changeset 75203 ee1bd0687c2b
parent 73705 ac07f6be27ea
child 76101 e59d7d6fe1bd
permissions -rwxr-xr-x
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
47799
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     1
#!/usr/bin/env bash
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     2
#
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     3
# Multi-platform build script
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     4
73705
ac07f6be27ea avoid unexpected output+behaviour when CDPATH is set
kleing
parents: 73599
diff changeset
     5
unset CDPATH
47799
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     6
THIS="$(cd "$(dirname "$0")"; pwd)"
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     7
PRG="$(basename "$0")"
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     8
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
     9
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    10
# diagnostics
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    11
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    12
function usage()
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    13
{
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    14
  echo
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    15
  echo "Usage: $PRG TARGET"
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    16
  echo
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    17
  exit 1
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    18
}
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    19
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    20
function fail()
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    21
{
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    22
  echo "$1" >&2
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    23
  exit 2
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    24
}
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    25
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    26
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    27
# command line args
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    28
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    29
[ "$#" -eq 0 ] && usage
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    30
TARGET="$1"; shift
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    31
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    32
[ "$#" -eq 0 ] || usage
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    33
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    34
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    35
# main
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    36
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    37
mkdir -p "$TARGET"
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    38
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    39
case "$TARGET" in
73599
981df2e1f646 clarified command-line;
wenzelm
parents: 66691
diff changeset
    40
  arm64-linux)
981df2e1f646 clarified command-line;
wenzelm
parents: 66691
diff changeset
    41
    cc -Wall bash_process.c -o "$TARGET/bash_process"
981df2e1f646 clarified command-line;
wenzelm
parents: 66691
diff changeset
    42
    ;;
47801
a832454c4003 added darwin targets;
wenzelm
parents: 47799
diff changeset
    43
  x86_64-linux | x86_64-darwin)
62566
wenzelm
parents: 62293
diff changeset
    44
    cc -Wall -m64 bash_process.c -o "$TARGET/bash_process"
47799
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    45
    ;;
73599
981df2e1f646 clarified command-line;
wenzelm
parents: 66691
diff changeset
    46
  x86_64-cygwin)
62566
wenzelm
parents: 62293
diff changeset
    47
    cc -Wall bash_process.c -o "$TARGET/bash_process.exe"
47799
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    48
    ;;
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    49
  *)
73599
981df2e1f646 clarified command-line;
wenzelm
parents: 66691
diff changeset
    50
    fail "Bad target platform: \"$TARGET\""
47799
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    51
    ;;
0d5773841bc4 multi-platform build script and component settings;
wenzelm
parents:
diff changeset
    52
esac