X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=configure;h=27d212487401f0aeb374cb02400a3aed703da550;hp=06a303d39c002ec9a9432ca170dd8178f0be31f7;hb=574af38ed616d1adfa5e6ce35f67cda1f707f89d;hpb=7ac3aee9efa7f9ce1a966df030b1f76f2b82ef2d diff --git a/configure b/configure index 06a303d..27d2124 100755 --- a/configure +++ b/configure @@ -5,444 +5,28 @@ # Execute this file to configure the build system. # -PACKAGE="Yoink" -VERSION="0.1" -BUGREPORT="chaz@dogcows.com" - - -showhelp() -{ - cat <<"END" - -This script prepares Yoink for building on your system. -Usage: ./configure [OPTION]... [VAR=VALUE]... - -Basic configuration: - -h, --help display this help and exit - --host=HOST cross-compile program to run on HOST - - --prefix=DIR base directory to install program - --bindir=DIR directory to install executables - --libdir=DIR directory to install libraries - --datadir=DIR directory to install shared data files - --mandir=DIR directory to install manual pages - -Program options: - --enable-debug include debugging symbols and code paths - --enable-double-precision use doubles instead of floats - --enable-profile compile in gprof profiling instructions - --enable-extra-warnings make the gcc compiler give more warnings - --enable-link-sh try to decrease the number of direct dependencies - --enable-clock_gettime use clock_gettime() instead of SDL - --enable-threads use threads for concurrency where appropriate - --enable-hotloading monitor assets and reload them when they change - - --with-gtk use gtk2 modal dialogs - --with-qt4 use qt4 modal dialogs; overridden by --with-gtk - -END +die () { + while read line; do echo $line; done && exit ${1:-127} } -. "build/functions.sh" - - -# -# Perform a quick sanity check. -# - -test -f configure -a -f Makefile || die <<"END" -You must `cd' to the project root directory where the Makefile resides. +[ -f build/config.lua ] || die 1 <<"END" +You must first `cd' to the project directory root where the Makefile is. +There is no support for out-of-source-tree builds. END - -# -# Define some default values. -# - -CC="" -CXX="" -AR="" -RANLIB="" - -CFLAGS="-g -O2" -CXXFLAGS="$CFLAGS" -LDFLAGS="" -LIBS="" - -prefix='/usr/local' -bindir='$prefix/bin' -libdir='$prefix/lib' -datadir='$prefix/share/yoink' -mandir='$prefix/share/man' - -host=$(./build/config.guess) -althost=$(./build/config.sub $host) -cross_compile="no" - - -# -# Parse the command-line options. -# - -for opt in "$@" -do - case $opt in - -h|--help) - showhelp - exit 0 - ;; - - --host=*) - host=$(parse_argument host $opt) - cross_compile="yes" - ;; - --prefix=*) - prefix=$(parse_argument prefix $opt) - ;; - --bindir=*) - bindir=$(parse_argument bindir $opt) - ;; - --libdir=*) - libdir=$(parse_argument libdir $opt) - ;; - --datadir=*) - datadir=$(parse_argument datadir $opt) - ;; - --mandir=*) - mandir=$(parse_argument mandir $opt) - ;; - - --enable-debug) - cflags="$cflags -O0 -Wall -Wno-uninitialized" - define "DEBUG" - ;; - --enable-double-precision) - define "USE_DOUBLE_PRECISION" - ;; - --enable-profile) - cflags="$cflags -pg" - define "PROFILING_ENABLED" - ;; - --enable-extra-warnings) - cflags="$cflags -Wextra -Wno-unused-parameter" - ;; - --enable-link-sh) - link_sh=yes - ;; - --enable-clock_gettime) - clock_gettime=yes - ;; - --enable-threads) - define "USE_THREADS" - ;; - --enable-hotloading) - define "USE_HOTLOADING" - ;; - --with-gtk) - gtk=yes - ;; - --with-qt4) - qt4=yes - ;; - *) - if echo "$opt" | grep -q '^[A-Za-z0-9_]*=.*' - then - export "$opt" - else - echo "warning: unknown option: $opt" - fi - ;; - esac -done - - -# -# Evaluate any dependent paths. -# - -eval bindir="$bindir" -eval datadir="$datadir" -eval libdir="$libdir" -eval mandir="$mandir" - -is_defined "DEBUG" || define "NDEBUG" - -export PKG_CONFIG_PATH="$libdir/pkgconfig:$PKG_CONFIG_PATH" - -define_string "YOINK_DATADIR" "$datadir" - - -# -# Determine the target platform. -# - -case $host in - *mingw32*) HOST=win32 ;; - *netbsd*) HOST=netbsd ;; -esac - - -# -# Define the check functions. -# - -# Run a command and return its exit code. If the third argument is given, -# stdin will be read and written to the specified file before the command -# is executed. If the command creates any files inside the current -# directory, they will be removed automatically. -# $1 The command to run. -# $2 The arguments to be passed to the command. -# $3 Optional filename where stdin will be written. -check_run_command() -{ - tmpdir=$(mktemp -d "tmp-XXXXXXXX") || die "could not create temp directory" - cd $tmpdir || die "could not enter temp directory" - - if test "x$3" != x - then - while read line - do - echo $line - done >$3 - fi - - saved_ifs=$IFS - IFS=: - for path in $PATH - do - if test -x "$path/$1" - then - eval "$1 $2" 2>&1 >/dev/null - exit_code=$? - - cd .. - rm -rf $tmpdir - IFS=$saved_ifs - return $exit_code - fi - done - - cd .. - rm -rf $tmpdir - IFS=$saved_ifs - return 1 -} - - -# -# Do some common checks. -# - -if test "x$cross_compile" = xno -then - # If we are not cross-compiling, we also want to consider tools without - # host prefixes. - extra_cc="gcc cc" - extra_cxx="g++ c++" - extra_ar="ar" - extra_ranlib="ranlib" - extra_windres="windres" -fi - -for exe in $CC $host-gcc $host-cc $althost-gcc $althost-cc $extra_cc -do - if check_run_command "$exe" "test.c" "test.c" <<"END" -#include -int main() -{ - printf("Hello world!\n"); - return 0; -} -END - then - CC="$exe" - break - fi -done - -for exe in $CXX $host-g++ $host-c++ $althost-g++ $althost-c++ $extra_cxx -do - if check_run_command "$exe" "test.cpp" "test.cpp" <<"END" -#include -int main() -{ - std::cout << "Hello world!" << std::endl; - return 0; -} -END - then - CXX="$exe" - break - fi -done - -for exe in $AR $host-ar $althost-ar $extra_ar -do - if check_run_command "$exe" "--version" - then - AR="$exe" - break - fi -done - -for exe in $RANLIB $host-ranlib $althost-ranlib $extra_ranlib -do - if check_run_command "$exe" "--version" - then - RANLIB="$exe" - break - fi -done - -if test x$HOST = xwin32 -then - for exe in $WINDRES $host-windres $althost-windres $extra_windres - do - if check_run_command "$exe" "--version" - then - WINDRES="$exe" - break - fi - done -fi - -if test "x$CC" = x -o "x$CXX" = x -o "x$AR" = x -o "x$RANLIB" = x -then - die </dev/null 2>&1 || die 2 <config.mk </dev/null && \ + ! (cd build && ${MAKE:-make} dialog) && die 3 <