RetroArch/qb/qb.params.sh

92 lines
2.3 KiB
Bash
Raw Normal View History

2015-06-17 16:05:26 +00:00
print_help_option() # $1 = option $@ = description
{
_opt="$1"
shift 1
printf " %-25s %s\n" "$_opt" "$@"
2015-06-17 16:05:26 +00:00
}
2010-12-30 01:52:02 +00:00
print_help()
{ cat << EOF
====================
Quickbuild script
====================
Package: $PACKAGE_NAME
General environment variables:
2015-06-17 16:05:26 +00:00
CC: C compiler
CFLAGS: C compiler flags
CXX: C++ compiler
CXXFLAGS: C++ compiler flags
LDFLAGS: Linker flags
General options:
EOF
2015-06-17 16:05:26 +00:00
print_help_option "--prefix=PATH" "Install path prefix"
print_help_option "--global-config-dir=PATH" "System wide config file prefix"
print_help_option "--host=HOST" "cross-compile to build programs to run on HOST"
print_help_option "--help" "Show this help"
echo ""
echo "Custom options:"
while IFS='=#' read VAR VAL COMMENT; do
VAR=$(echo "${VAR##HAVE_}" | tr '[A-Z]' '[a-z]')
case "$VAR" in
'c89_'*) true;;
2012-06-12 20:16:16 +00:00
*)
case "$VAL" in
'yes'*)
2016-03-20 23:12:56 +00:00
print_help_option "--disable-$VAR" "Disable $COMMENT";;
'no'*)
2016-03-20 23:12:56 +00:00
print_help_option "--enable-$VAR" "Enable $COMMENT";;
'auto'*)
2016-03-20 23:12:56 +00:00
print_help_option "--enable-$VAR" "Enable $COMMENT"
print_help_option "--disable-$VAR" "Disable $COMMENT";;
*)
print_help_option "--with-$VAR" "$COMMENT";;
esac
esac
done < 'qb/config.params.sh'
2010-12-30 01:52:02 +00:00
}
opt_exists() # $opt is returned if exists in OPTS
2012-06-12 20:16:16 +00:00
{ opt=$(echo "$1" | tr '[a-z]' '[A-Z]')
for OPT in $OPTS; do [ "$opt" = "$OPT" ] && return; done
2016-01-28 23:48:11 +00:00
echo "Unknown option $2"; exit 1
2010-12-30 01:52:02 +00:00
}
parse_input() # Parse stuff :V
2012-06-12 20:16:16 +00:00
{ OPTS=; while IFS='=' read VAR dummy; do OPTS="$OPTS ${VAR##HAVE_}"; done < 'qb/config.params.sh'
#OPTS contains all available options in config.params.sh - used to speedup
#things in opt_exists()
while [ "$1" ]; do
case "$1" in
--prefix=*) PREFIX=${1##--prefix=};;
--global-config-dir=*) GLOBAL_CONFIG_DIR=${1##--global-config-dir=};;
--host=*) CROSS_COMPILE=${1##--host=}-;;
--enable-*)
2016-01-28 23:48:11 +00:00
opt_exists "${1##--enable-}" "$1"
eval "HAVE_$opt=yes"
;;
--disable-*)
2016-01-28 23:48:11 +00:00
opt_exists "${1##--disable-}" "$1"
eval "HAVE_$opt=no"
;;
--with-*)
2014-06-05 09:45:44 +00:00
arg="${1##--with-}"
val="${arg##*=}"
2016-01-28 23:48:11 +00:00
opt_exists "${arg%%=*}" "$1"
2014-06-05 09:45:44 +00:00
eval "$opt=\"$val\""
;;
-h|--help) print_help; exit 0;;
2016-01-28 23:48:11 +00:00
*) echo "Unknown option $1"; exit 1;;
esac
shift
done
2010-12-30 01:52:02 +00:00
}
. qb/config.params.sh
2010-12-30 01:52:02 +00:00
2012-06-12 20:16:16 +00:00
parse_input "$@"