| #!/bin/sh |
| # options script |
| # |
| # This file was developed by Reid Spencer and is distributed under the |
| # University of Illinois Open Source License. See LICENSE.TXT for details. |
| # |
| #===------------------------------------------------------------------------===# |
| |
| # This script lets you set sticky options that can be set once with this command |
| # and then ignored for remaining commands used from the same directory. |
| |
| # Include the library. This will either read the options from the .options |
| # file or it will set the variables to their default values. |
| if test ! -z "$LLVM_TOP" ; then |
| if test -f "$LLVM_TOP/library.sh" ; then |
| . "$LLVM_TOP/library.sh" |
| else |
| echo "Your LLVM_TOP variable is not set to an llvm-top directory" |
| exit 1 |
| fi |
| elif test -f ./library.sh ; then |
| . ./library.sh |
| elif test -f ../library.sh ; then |
| . ../library.sh |
| else |
| echo Please run $0 from the llvm-top directory or a module directory. |
| exit 1 |
| fi |
| |
| # Process the arguments to set the new values |
| msg 3 "Processing new option arguments" |
| for arg in "$@" ; do |
| case "$arg" in |
| +ASSERTIONS) ASSERTIONS=1 ;; |
| -ASSERTIONS) ASSERTIONS=0 ;; |
| +CHECKING) CHECKING=1 ;; |
| -CHECKING) CHECKING=0 ;; |
| +DEBUG) DEBUG=1 ;; |
| -DEBUG) DEBUG=0 ;; |
| +DOXYGEN) DOXYGEN=1 ;; |
| -DOXYGEN) DOXYGEN=0 ;; |
| +OPT_FOR_SIZE) OPT_FOR_SIZE=1 ;; |
| -OPT_FOR_SIZE) OPT_FOR_SIZE=0 ;; |
| +OPTIMIZED) OPTIMIZED=1 ;; |
| -OPTIMIZED) OPTIMIZED=0 ;; |
| +PROFILING) PROFILING=1 ;; |
| -PROFILING) PROFILING=0 ;; |
| +STRIPPED) STRIPPED=1 ;; |
| -STRIPPED) STRIPPED=0 ;; |
| +THREADS) THREADS=1 ;; |
| -THREADS) THREADS=0 ;; |
| +VERBOSE) VERBOSE=1 ;; |
| -VERBOSE) VERBOSE=0 ;; |
| ASSERTIONS=*) ASSERTIONS=`echo "$arg" | sed -e 's/ASSERTIONS=//'` ;; |
| CHECKING=*) CHECKING=`echo "$arg" | sed -e 's/CHECKING=//'` ;; |
| DEBUG=*) DEBUG=`echo "$arg" | sed -e 's/DEBUG=//'` ;; |
| DESTDIR=*) DESTDIR=`echo "$arg" | sed -e 's/DESTDIR=//'` ;; |
| DOXYGEN=*) DOXYGEN=`echo "$arg" | sed -e 's/DOXYGEN=//'` ;; |
| LLVM_TOP=*) LLVM_TOP=`echo "$arg" | sed -e 's/LLVM_TOP=//'` ;; |
| OPT_FOR_SIZE=*) OPT_FOR_SIZE=`echo "$arg" | sed -e 's/OPT_FOR_SIZE=//'` ;; |
| OPTIMIZED=*) OPTIMIZED=`echo "$arg" | sed -e 's/OPTIMIZED=//'` ;; |
| PREFIX=*) PREFIX=`echo "$arg" | sed -e 's/PREFIX=//'` ;; |
| PROFILING=*) PROFILING=`echo "$arg" | sed -e 's/PROFILING=//'` ;; |
| STRIPPED=*) STRIPPED=`echo "$arg" | sed -e 's/STRIPPED=//'` ;; |
| TARGETS_TO_BUILD=*) |
| TARGETS_TO_BUILD=`echo "$arg" | sed -e 's/TARGETS_TO_BUILD=//'` ;; |
| THREADS=*) THREADS=`echo "$arg" | sed -e 's/THREADS=//'` ;; |
| USE_OBJ_DIR=*) USE_OBJ_DIR=`echo "$arg" | sed -e 's/USE_OBJ_DIR=//'` ;; |
| VERBOSE=*) VERBOSE=`echo "$arg" | sed -e 's/VERBOSE=//'` ;; |
| *) die 1 "Unrecognized option: $arg" ;; |
| esac |
| done |
| |
| # Write the new options set to the .options file |
| msg 3 "Write options to .options file" |
| cat <<__EOF__ > "$options" |
| # LLVM configuration options database. |
| # This script is generated by "options" and included into library.sh |
| ASSERTIONS="$ASSERTIONS" |
| CHECKING="$CHECKING" |
| DEBUG="$DEBUG" |
| DESTDIR="$DESTDIR" |
| DOXYGEN="$DOXYGEN" |
| LLVM_TOP="$LLVM_TOP" |
| OPT_FOR_SIZE="$OPT_FOR_SIZE" |
| OPTIMIZED="$OPTIMIZED" |
| PREFIX="$PREFIX" |
| PROFILING="$PROFILING" |
| STRIPPED="$STRIPPED" |
| TARGETS_TO_BUILD="$TARGETS_TO_BUILD" |
| THREADS="$THREADS" |
| USE_OBJ_DIR="$USE_OBJ_DIR" |
| VERBOSE="$VERBOSE" |
| __EOF__ |
| |
| # If there were no arguments, just print the options for the user |
| msg 3 "Printing options" |
| if test "$#" -eq 0 ; then |
| cat "$options" | grep "=" |
| fi |