diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-01-14 18:43:24 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-01-14 18:43:24 -0800 |
commit | 10270fb7bc611aa253571c9aad6b154d08471577 (patch) | |
tree | 49fed8270cd8975606a02148a3b16ebef7755f6d | |
parent | fd41d24de546e69d12b2212e6176eb4d0ae1f858 (diff) | |
download | halt3-10270fb7bc611aa253571c9aad6b154d08471577.tar.gz halt3-10270fb7bc611aa253571c9aad6b154d08471577.tar.bz2 halt3-10270fb7bc611aa253571c9aad6b154d08471577.zip |
Support --standalone-only option.halt3-1.5
This option allows one to just generate a standalone
program for testing a decider.
-rwxr-xr-x | genprog.sh | 49 |
1 files changed, 37 insertions, 12 deletions
@@ -29,11 +29,31 @@ set -e # stop on any errors MYDIR=$(dirname "$0") CFLAGS="-Wall -W -ansi -Wno-unused -Wstrict-prototypes -Wmissing-prototypes" +STANDALONE_ONLY= . "$MYDIR"/lib.sh +while [ $# -ge 1 ] ; do + case "$1" in + --standalone-only ) + STANDALONE_ONLY=y + shift + ;; + --* | -* ) + printf "%s: unrecognized option %s\n" "$0" "$1" + exit 1 + ;; + * ) + break + ;; + esac +done + if [ $# != 2 ] ; then - printf "usage: $0 <halting_decider>.c <error_decider.c>\n" + printf "usage: %s [ <options> ] <halting_decider>.c <error_decider.c>\n" "$0" + printf "options:\n" + printf " --standalone-only generate only stand-alone decider, compile it,\n" + printf " and do not execute it.\n" exit 1 fi @@ -57,8 +77,10 @@ STANDALONE_DECIDER_BASENAME=sa-${HD_HASH} printf "halting decider: %s\n" $HALTING_DECIDER printf "error decider: %s\n" $ERROR_DECIDER -printf "\n" -printf "generating program %s from these deciders\n" $PROGRAM_BASENAME.c + +if [ -z "$STANDALONE_ONLY" ] ; then + printf "\n" + printf "generating program %s from these deciders\n" $PROGRAM_BASENAME.c cat > ${PROGRAM_BASENAME}.c <<! #include <stdio.h> @@ -122,8 +144,9 @@ int main(int argc, char **argv) #include "$HALTING_DECIDER" ! -printf "compiling %s to %s\n" $PROGRAM_BASENAME.c $PROGRAM_BASENAME -gcc $CFLAGS $PROGRAM_BASENAME.c -o $PROGRAM_BASENAME + printf "compiling %s to %s\n" $PROGRAM_BASENAME.c $PROGRAM_BASENAME + gcc $CFLAGS $PROGRAM_BASENAME.c -o $PROGRAM_BASENAME +fi printf "\n" @@ -163,14 +186,16 @@ int main(int argc, char **argv) printf "compiling %s to %s\n" $STANDALONE_DECIDER_BASENAME.c $STANDALONE_DECIDER_BASENAME gcc $CFLAGS $STANDALONE_DECIDER_BASENAME.c -o $STANDALONE_DECIDER_BASENAME -printf "\n" +if [ -z "$STANDALONE_ONLY" ] ; then + printf "\n" -printf "executing stand alone decider: %s %s %s\n" \ - ./$STANDALONE_DECIDER_BASENAME $PROGRAM_BASENAME.c $PROGRAM_BASENAME.c + printf "executing stand alone decider: %s %s %s\n" \ + ./$STANDALONE_DECIDER_BASENAME $PROGRAM_BASENAME.c $PROGRAM_BASENAME.c -./$STANDALONE_DECIDER_BASENAME $PROGRAM_BASENAME.c $PROGRAM_BASENAME.c + ./$STANDALONE_DECIDER_BASENAME $PROGRAM_BASENAME.c $PROGRAM_BASENAME.c -printf "\n" + printf "\n" -printf "executing test case %s %s\n" ./$PROGRAM_BASENAME $PROGRAM_BASENAME.c -./$PROGRAM_BASENAME $PROGRAM_BASENAME.c + printf "executing test case %s %s\n" ./$PROGRAM_BASENAME $PROGRAM_BASENAME.c + ./$PROGRAM_BASENAME $PROGRAM_BASENAME.c +fi |