#!/bin/sh if [ "$#" = 0 ]; then echo "usage: $0 [-w wrapper] " >&2 exit 1 fi if [ "$1" = -w ]; then wrapper="$2" shift 2 fi f=$(mktemp -d -t gccrun.XXXXXXXX) || exit 1 cat > "$f/command.c" << EOF #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[], char *envp[]) { $1; return 0; } EOF shift if ! gcc -o "$f/command" "$f/command.c" $@; then exit 1 fi if [ -n "$wrapper" ]; then $wrapper "$f/command" else "$f/command" fi r=$? rm -r "$f" exit $r