From 10270fb7bc611aa253571c9aad6b154d08471577 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 14 Jan 2015 18:43:24 -0800 Subject: Support --standalone-only option. This option allows one to just generate a standalone program for testing a decider. --- genprog.sh | 49 +++++++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/genprog.sh b/genprog.sh index 6a78a2b..96216f2 100755 --- a/genprog.sh +++ b/genprog.sh @@ -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 .c \n" + printf "usage: %s [ ] .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 < @@ -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 -- cgit v1.2.3