aboutsummaryrefslogtreecommitdiffstats
path: root/default.tool.do
diff options
context:
space:
mode:
authorTomasz Kramkowski <tk@the-tk.com>2021-08-05 18:30:33 +0100
committerTomasz Kramkowski <tk@the-tk.com>2021-08-05 20:17:48 +0100
commit8c58e5683cbd90d529eb1ea86fce019e553b2248 (patch)
treeb31e8754a56ab0a87170bfecffca3ef434850826 /default.tool.do
parent7e7bdc19e76a5f87bccf7a84872f8d45295ee5b7 (diff)
downloadpack-8c58e5683cbd90d529eb1ea86fce019e553b2248.tar.gz
pack-8c58e5683cbd90d529eb1ea86fce019e553b2248.tar.xz
pack-8c58e5683cbd90d529eb1ea86fce019e553b2248.zip
Cross compilation support
Diffstat (limited to 'default.tool.do')
-rwxr-xr-xdefault.tool.do25
1 files changed, 25 insertions, 0 deletions
diff --git a/default.tool.do b/default.tool.do
new file mode 100755
index 0000000..a4e18e7
--- /dev/null
+++ b/default.tool.do
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+set -e
+redo-ifchange .vars.rc
+if [[ $1 = *-host.tool ]]; then prefix=H; else prefix=T; fi
+case "${1##*/}" in
+compile*.tool)
+ vars=(CC CFLAGS CPPFLAGS)
+ cmd='"$CC" -MMD -MF - "${CFLAGS[@]}" "${CPPFLAGS[@]}" -c -o "$3" "${1%.o}.c"'
+ ;;
+link-*.tool)
+ vars=(CC LDFLAGS LDLIBS)
+ if [[ $1 = *-library* ]]; then shared='-shared '; else shared=''; fi
+ cmd='"$CC" "${LDFLAGS[@]}" '"$shared"'"${objects[@]}" "${LDLIBS[@]}" -o "$3"'
+ ;;
+*)
+ echo "Invalid tool name $1" >&2
+ exit 1 ;;
+esac
+for v in "${vars[@]}"; do cmd=${cmd//$v/$prefix$v}; done
+. ./.vars.rc
+exec >"$3"
+echo "#generated by $0 $1"
+declare -p "${vars[@]/#/$prefix}"
+echo "$cmd"
+if command -v redo-stamp &>/dev/null; then redo-stamp <"$3"; fi