Dolda2000 GitWeb
/
utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Improved sztest argument parsing.
[utils.git]
/
sztest
diff --git
a/sztest
b/sztest
index
fd7505c
..
ca7182c
100755
(executable)
--- a/
sztest
+++ b/
sztest
@@
-1,21
+1,33
@@
#!/bin/sh
#!/bin/sh
-if [ $# -lt 1 ]; then
- echo "usage: sztest [-H HEADER] TYPE [CCFLAGS...]" >&2
- exit 1
-fi
+usage() {
+ echo "usage: sztest [-h] [-H SYS-HEADER] [-L LOCAL-HEADER] TYPE [CCFLAGS...]"
+}
-headers=
+sheaders=
+lheaders=
while [ "${1:0:1}" = "-" ]; do
opt="$1"
shift
case "$opt" in
while [ "${1:0:1}" = "-" ]; do
opt="$1"
shift
case "$opt" in
+ "-h")
+ usage
+ exit 0
+ ;;
"-H")
"-H")
- headers="$headers $1"
+ sheaders="$sheaders $1"
+ shift
+ ;;
+ "-L")
+ lheaders="$lheaders $1"
shift
;;
esac
done
shift
;;
esac
done
+if [ $# -lt 1 ]; then
+ usage >&2
+ exit 1
+fi
type="$1"
shift
file="$(mktemp /tmp/sztestXXXXXX)"
type="$1"
shift
file="$(mktemp /tmp/sztestXXXXXX)"
@@
-26,9
+38,12
@@
cat >"$file.c" <<EOF
#include <unistd.h>
#include <sys/stat.h>
EOF
#include <unistd.h>
#include <sys/stat.h>
EOF
-for header in $headers; do
+for header in $
s
headers; do
echo "#include <$header>" >>"$file.c"
done
echo "#include <$header>" >>"$file.c"
done
+for header in $lheaders; do
+ echo "#include \"$header\"" >>"$file.c"
+done
cat >>"$file.c" <<EOF
int main(int argc, char **argv)
{
cat >>"$file.c" <<EOF
int main(int argc, char **argv)
{
@@
-37,7
+52,7
@@
int main(int argc, char **argv)
}
EOF
}
EOF
-if ! gcc "$@" -g -Wall -o "$file" "$file.c"; then
+if ! gcc "$@" -
iquote. -
g -Wall -o "$file" "$file.c"; then
rm -f "$file" "$file.c"
exit 1
fi
rm -f "$file" "$file.c"
exit 1
fi