rewrite configure script

This commit is contained in:
Lephenixnoir 2021-01-11 22:18:22 +01:00
parent 7a4e5cde3b
commit 431633612f
No known key found for this signature in database
GPG key ID: 1BBA026E13FC0495

120
configure vendored
View file

@ -1,41 +1,21 @@
#! /bin/bash #! /usr/bin/env bash
# # Install prefix
# Output variables
#
# Path parameters
PREFIX="$HOME/.local" PREFIX="$HOME/.local"
# Individual component selection # Individual component selection
BUILD_fxsdk=1 BUILD_fxsdk=1
BUILD_fxconv=1 BUILD_fxconv=1
BUILD_fxg1a=1 BUILD_fxg1a=1
# help() {
# Tool name checking cat << EOF
#
check()
{
[[ $1 = "fxsdk" ]] ||
[[ $1 = "fxconv" ]] ||
[[ $1 = "fxg1a" ]]
}
#
# Usage
#
help()
{
cat << EOF
Configuration options for the fxSDK (fx9860g and fxcg50 development tools). Configuration options for the fxSDK (fx9860g and fxcg50 development tools).
Tool selection: Tool selection:
<tool> may be one of the following: <tool> may be one of the following:
"fxsdk" Command-line options (you generally want this) fxsdk Project management (you generally want this)
"fxconv" Asset conversion for gint (or any 4-aligned-VRAM system) fxconv Asset conversion for standard and custom gint formats
"fxg1a" G1A file wrapper, editor and analyzer fxg1a G1A file wrapper, editor and analyzer
--enable-<tool> Build and install the selected tool [default] --enable-<tool> Build and install the selected tool [default]
--disable-<tool> Do not build or install the selected tool --disable-<tool> Do not build or install the selected tool
@ -46,65 +26,49 @@ Install folders:
--prefix=<prefix> Base install folder [default $HOME/.local] --prefix=<prefix> Base install folder [default $HOME/.local]
EOF EOF
exit 0 exit 0
} }
# # Parse arguments
# Argument parsing
#
for arg; do case "$arg" in for arg; do case "$arg" in
-h | -? | --help) -h | -? | --help)
help;; help;;
--prefix=*) --prefix=*)
PREFIX=${arg#--prefix=};; PREFIX=${arg#--prefix=};;
--enable-*) --enable-*)
tool="${arg#--enable-}" tool="${arg#--enable-}"
if ! check $tool; then if [[ ! ":fxsdk:fxg1a:fxconv:" =~ ":$tool:" ]]; then
echo "error: cannot enable $tool: unknown tool" echo "error: $arg: no such tool"
exit 1 exit 1
fi fi
eval "BUILD_${tool}=1";;
eval "BUILD_${tool}=1";; --disable-*)
tool="${arg#--disable-}"
if [[ ! ":fxsdk:fxg1a:fxconv:" =~ ":$tool:" ]]; then
echo "error: $arg: no such tool"
exit 1
fi
eval "BUILD_${tool}=0";;
--disable-*) *)
tool="${arg#--disable-}" echo "error: unrecognized option $arg"
if ! check $tool; then exit 1;;
echo "error: cannot disable $tool: unknown tool"
exit 1
fi
eval "BUILD_${tool}=0";;
*)
echo "error: unrecognized option $arg"
exit 1;;
esac; done esac; done
# # Generate sub-Makefile with configuration details
# Makefile generation gen() {
# # Allow an install script to change the destination at the last second
# to have all files in a separate root before packaging
gen() # TODO: Support DESTDIR instead
{ echo "PREFIX ?= $PREFIX"
# Allow an install script to change the destination at the last second echo -n "TARGETS ="
# to have all files in a separate root before packaging [[ $BUILD_fxsdk = 1 ]] && echo -n " fxsdk"
echo "PREFIX ?= $PREFIX" [[ $BUILD_fxconv = 1 ]] && echo -n " fxconv"
echo -n "TARGETS =" [[ $BUILD_fxg1a = 1 ]] && echo -n " fxg1a"
echo ""
[[ $BUILD_fxsdk = 1 ]] && echo -n " fxsdk"
[[ $BUILD_fxconv = 1 ]] && echo -n " fxconv"
[[ $BUILD_fxg1a = 1 ]] && echo -n " fxg1a"
echo ""
} }
echo "Configuration complete, the following has been saved in Makefile.cfg:" gen > Makefile.cfg
echo ""
gen | tee Makefile.cfg
echo ""
echo "You can now 'make'."