#! /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: 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- Build and install the selected tool [default] --disable- Do not build or install the selected tool Install folders: Executables will be installed in /bin and runtime data in /share/fxsdk. --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