Skip to content
Snippets Groups Projects
Commit e1e2e21f authored by Kostyantyn Vorobyov's avatar Kostyantyn Vorobyov
Browse files

e-acsl-gcc.sh:

   add an option to pass specific flags directly to frama-c
parent a2efc89b
No related branches found
No related tags found
No related merge requests found
...@@ -47,8 +47,8 @@ check_tool() { ...@@ -47,8 +47,8 @@ check_tool() {
# Getopt options # Getopt options
LONGOPTIONS="help,compile,compile-only,print,debug:,ocode:,oexec:,verbose:, \ LONGOPTIONS="help,compile,compile-only,print,debug:,ocode:,oexec:,verbose:, \
frama-c-only,extra-cpp-args,rtl,frama-c-stdlib,full-mmodel,gmp,quiet,logfile:, frama-c-only,extra-cpp-args,rtl,frama-c-stdlib,full-mmodel,gmp,quiet,logfile:,
ld-flags:,cpp-flags:" ld-flags:,cpp-flags:,frama-c-extra:"
SHORTOPTIONS="h,c,C,p,d:,o:,O:,v:,f,E:,R,L,M,l:,e:,g,q,s:" SHORTOPTIONS="h,c,C,p,d:,o:,O:,v:,f,E:,R,L,M,l:,e:,g,q,s:,F:"
# Prefix for an error message due to wrong arguments # Prefix for an error message due to wrong arguments
ERROR="ERROR parsing arguments:" ERROR="ERROR parsing arguments:"
...@@ -105,6 +105,7 @@ EACSL_CPP_FLAGS=" ...@@ -105,6 +105,7 @@ EACSL_CPP_FLAGS="
EACSL_LD_FLAGS="-lgmp -lm" EACSL_LD_FLAGS="-lgmp -lm"
# Variables holding getopt options # Variables holding getopt options
OPTION_FRAMAC_EXTRA= # Extra Frama-C options
OPTION_ECHO="set -x" # Echo executed commands to STDOUT OPTION_ECHO="set -x" # Echo executed commands to STDOUT
OPTION_INSTRUMENT=1 # Perform E-ACSL instrumentation OPTION_INSTRUMENT=1 # Perform E-ACSL instrumentation
OPTION_PRINT= # Output instrumented code OPTION_PRINT= # Output instrumented code
...@@ -167,6 +168,8 @@ manpage() { ...@@ -167,6 +168,8 @@ manpage() {
echo " suppress any output except for errors and warnings" echo " suppress any output except for errors and warnings"
echo " -s, --logfile <FILE>" echo " -s, --logfile <FILE>"
echo " redirect all output to a given log file" echo " redirect all output to a given log file"
echo " -F, --frama-c-extra <OPTION>"
echo " pass an extra option to frama-c invocation"
echo "" echo ""
echo "EXAMPLES:" echo "EXAMPLES:"
echo " # Instrument foo.c and output the instrumented code to a.out.frama.c" echo " # Instrument foo.c and output the instrumented code to a.out.frama.c"
...@@ -222,6 +225,12 @@ do ...@@ -222,6 +225,12 @@ do
exec 2> $1 exec 2> $1
shift; shift;
;; ;;
# Pass an option to a frama-c invocation
--frama-c-extra|-F)
shift;
OPTION_FRAMAC_EXTRA="$OPTION_FRAMAC_EXTRA $1"
shift;
;;
# Do compile instrumented code # Do compile instrumented code
--compile|-c) --compile|-c)
shift; shift;
...@@ -332,6 +341,7 @@ if [ -n "$OPTION_INSTRUMENT" ]; then ...@@ -332,6 +341,7 @@ if [ -n "$OPTION_INSTRUMENT" ]; then
$FRAMAC \ $FRAMAC \
$FRAMAC_FLAGS \ $FRAMAC_FLAGS \
$MACHDEP \ $MACHDEP \
$OPTION_FRAMAC_EXTRA \
-cpp-extra-args="$OPTION_EXTRA_CPP" \ -cpp-extra-args="$OPTION_EXTRA_CPP" \
-e-acsl-share $EACSL_SHARE \ -e-acsl-share $EACSL_SHARE \
$OPTION_VERBOSE \ $OPTION_VERBOSE \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment