fxsdk/configure

75 lines
1.8 KiB
Bash
Executable File

#! /usr/bin/env bash
# Install prefix
PREFIX="$HOME/.local"
# Individual component selection
BUILD_fxsdk=1
BUILD_fxconv=1
BUILD_fxg1a=1
help() {
cat << EOF
Configuration options for the fxSDK (fx9860g and fxcg50 development tools).
Tool selection:
<tool> may be one of the following:
fxsdk Project management (you generally want this)
fxconv Asset conversion for standard and custom gint formats
fxg1a G1A file wrapper, editor and analyzer
--enable-<tool> Build and install the selected tool [default]
--disable-<tool> Do not build or install the selected tool
Install folders:
Executables will be installed in <prefix>/bin and runtime data in
<prefix>/share/fxsdk.
--prefix=<prefix> Base install folder [default $HOME/.local]
EOF
exit 0
}
# Parse arguments
for arg; do case "$arg" in
-h | -? | --help)
help;;
--prefix=*)
PREFIX=${arg#--prefix=};;
--enable-*)
tool="${arg#--enable-}"
if [[ ! ":fxsdk:fxg1a:fxconv:" =~ ":$tool:" ]]; then
echo "error: $arg: no such tool"
exit 1
fi
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";;
*)
echo "error: unrecognized option $arg"
exit 1;;
esac; done
# Generate sub-Makefile with configuration details
gen() {
# Allow an install script to change the destination at the last second
# to have all files in a separate root before packaging
# TODO: Support DESTDIR instead
echo "PREFIX ?= $PREFIX"
echo -n "TARGETS ="
[[ $BUILD_fxsdk = 1 ]] && echo -n " fxsdk"
[[ $BUILD_fxconv = 1 ]] && echo -n " fxconv"
[[ $BUILD_fxg1a = 1 ]] && echo -n " fxg1a"
echo ""
}
gen > Makefile.cfg