diff options
-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 |