X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=configure.ac;h=a14508d30e49c59230659740f66be1c03947048e;hp=2d839c9b0a36f115a8d8e21c045038694c37c592;hb=25aefe01ef7dbdb603c51411e04b0d6a6107684f;hpb=7d15b919681bb9ec0088b4b27c6abf62d6dfb9b1 diff --git a/configure.ac b/configure.ac index 2d839c9..a14508d 100644 --- a/configure.ac +++ b/configure.ac @@ -18,7 +18,7 @@ AM_INIT_AUTOMAKE # # Checks for programs. -# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AC_PROG_CXX #AC_PROG_AWK @@ -31,91 +31,122 @@ AC_PROG_LIBTOOL # -# Checks for configuration arguments. +# Configure platform-specific stuff. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +case "${host}" in + *mingw32*) + MINGW32=yes + WIN32=yes + ;; + *cygwin*) + CYGWIN=yes + WIN32=yes + ;; + *-apple-darwin*) + MACOSX=yes + LIBS="$LIBS -Wl,-framework" +esac + + # +# Checks for configuration arguments. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AC_ARG_ENABLE([developer], + [ --enable-developer use all compiler flags developers need], + [developer=$enableval], + [developer=no]) AC_ARG_ENABLE([debug], [ --enable-debug include debugging symbols and features], - [debug=$enableval - if test x$debug = xyes - then - CFLAGS="-Wall -Werror -g -O0 -DDEBUG" - CXXFLAGS="-Wall -Werror -g -O0 -DDEBUG" - else - CFLAGS="-O2 -DNDEBUG" - CXXFLAGS="-O2 -DNDEBUG" - fi], - [CFLAGS="-O2 -DNDEBUG" - CXXFLAGS="-O2 -DNDEBUG"]) + [debug=$enableval], + [debug=no]) AC_ARG_ENABLE([profile], - [ --enable-profile make a binary for use with gprof], - [profile=$enableval - if test x$profile = xyes - then - CFLAGS="$CFLAGS -pg" - CXXFLAGS="$CXXFLAGS -pg" - fi]) + [ --enable-profile make a binary for use with gprof profiler], + [profile=$enableval], + [profile=no]) + +AC_ARG_ENABLE([extra-warnings], + [ --enable-extra-warnings make the gcc compiler give more warnings], + [extra_warnings=$enableval], + [extra_warnings=no]) +AC_ARG_WITH([log-level], + [AS_HELP_STRING([--with-log-level=NUM], + [0, none... 1, errors... 4, everything (default: 3)])], + [log_level=$withval], + [log_level=3]) -if test x$prefix = xNONE + +if test x$developer = xyes then - prefix="$ac_default_prefix" + debug=yes + log_level=4 + + if test x$WIN32 != xyes + then + profile=yes + fi fi -if test x$datadir = x'${datarootdir}' +if test x$debug = xyes then - eval datarootdir="$datarootdir" - eval datadir="$datadir/yoink" + CFLAGS="$CFLAGS -Wall -O0 -gstabs -DDEBUG" + CXXFLAGS="$CXXFLAGS -Wall -O0 -gstabs -DDEBUG" +else + CFLAGS="$CFLAGS -O2 -DNDEBUG" + CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG" fi -AC_DEFINE_UNQUOTED([YOINK_DATADIR], ["$datadir"], - [Define to path of game asset directory.]) +if test x$profile = xyes +then + CFLAGS="$CFLAGS -pg" + CXXFLAGS="$CXXFLAGS -pg" +fi -AC_DEFINE_UNQUOTED([YOINK_CONFIGFILES], - ["\$HOME/.yoinkrc:/etc/yoinkrc:$datadir/yoinkrc"], - [Define to colon-delimited config file paths.]) +if test x$extra_warnings = xyes +then + CFLAGS="$CFLAGS -Wextra -Wno-unused-parameter" + CXXFLAGS="$CXXFLAGS -Wextra -Wno-unused-parameter" +fi +AC_DEFINE_UNQUOTED([YOINK_LOGLEVEL], [$log_level], + [Define to detail level of logging.]) -# -# Checks for libraries. -# -AM_PATH_SDL([1.2.14], - [CFLAGS="$CFLAGS $SDL_CFLAGS" - CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" - LIBS="$LIBS $SDL_LIBS"]) -#BOOST_REQUIRE([1.35]) -#CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS" -BOOST_SMART_PTR -BOOST_STRING_ALGO -BOOST_BIND -BOOST_FUNCTION +if test "x$prefix" = xNONE +then + prefix="$ac_default_prefix" +fi -AC_SEARCH_LIBS([IMG_Load], [SDL_image],, - [AC_MSG_ERROR([libSDL_image is required])]) +AC_ARG_WITH([assetdir], + [AS_HELP_STRING([--with-assetdir=DIR], + [real path to assets (default: $datarootdir/yoink)])], + [DATADIR="$withval"], + [eval DATADIR="$datarootdir/yoink"]) -AC_SEARCH_LIBS([glBegin], [GL],, - [AC_MSG_ERROR([libGL is required])]) +if test x$WIN32 = xyes +then + DATADIR="data" +fi -AC_SEARCH_LIBS([clock_gettime], [rt], - [AC_DEFINE([HAVE_LIBRT], 1, - [Define to 1 if you have the 'rt' library.])]) +AC_SUBST([DATADIR]) +AC_DEFINE_UNQUOTED([YOINK_DATADIR], ["$DATADIR"], + [Define to path of game asset directory.]) -# -# Checks for header files. -# +CONFIGFILES="\$HOME/.yoinkrc:/etc/yoinkrc" -AC_HEADER_STDBOOL -AC_HEADER_STDC -AC_CHECK_HEADERS([stddef.h stdint.h stdlib.h string.h unistd.h]) +AC_DEFINE_UNQUOTED([YOINK_CONFIGFILES], ["$CONFIGFILES"], + [Define to colon-delimited configuration file paths.]) # # Checks for typedefs, structures, and compiler characteristics. -# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AC_C_STRINGIZE AC_C_INLINE @@ -128,33 +159,124 @@ AC_TYPE_SSIZE_T # -# Checks for library functions. -# +# Checks for system functions. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AC_FUNC_ERROR_AT_LINE AC_FUNC_STRTOD -AC_CHECK_FUNCS([strchr strcspn strrchr strstr]) +AC_CHECK_FUNCS([nanosleep strchr strcspn strrchr strstr]) # -# Find the data files to install. +# Checks for header files. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AC_HEADER_STDBOOL +AC_HEADER_STDC +AC_CHECK_HEADERS([stddef.h stdint.h stdlib.h string.h unistd.h]) + +BOOST_SMART_PTR +BOOST_STRING_ALGO +BOOST_BIND +BOOST_FUNCTION + +AM_PATH_SDL([1.2.10], + [CFLAGS="$CFLAGS $SDL_CFLAGS" + CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS"]) + +AC_CHECK_HEADERS([GL/gl.h GL/glu.h],, + [missing="$missing OpenGL"]) + +AC_CHECK_HEADERS([AL/al.h AL/alut.h],, + [missing="$missing OpenAL"]) + +AC_CHECK_HEADERS([SDL/SDL_image.h],, + [missing="$missing SDL_image"]) + +AC_CHECK_HEADERS([SDL/SDL_sound.h],, + [missing="$missing SDL_sound"]) + +if test "x$missing" != x +then + echo "** Required header files from these libraries are missing:" + for header in $missing + do + echo "** $header" + done + AC_MSG_ERROR([please install missing dependencies]) +fi + + +# +# Checks for libraries. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +AC_SEARCH_LIBS([IMG_Load], [SDL_image],, + [missing="$missing SDL_image"]) + +AC_SEARCH_LIBS([Sound_Init], [SDL_sound],, + [missing="$missing SDL_sound"]) + +if test x$WIN32 == xyes +then +# autoconf library search macro doesn't find opengl32 on windows because it uses +# different name hashing, but it links fine; assume it's there + LIBS="$LIBS -lglu32 -lopengl32" +else + AC_SEARCH_LIBS([gluPerspective], [GLU MesaGLU],, + [missing="$missing GLU"]) + + AC_SEARCH_LIBS([glBegin], [GL MesaGL],, + [missing="$missing OpenGL"]) +fi + +AC_SEARCH_LIBS([alGenBuffers], [openal openal32],, + [missing="$missing OpenAL"]) + +AC_SEARCH_LIBS([alutInit], [alut],, + [missing="$missing ALUT"]) + +AC_SEARCH_LIBS([clock_gettime], [rt], + [AC_DEFINE([HAVE_CLOCK_GETTIME], 1, + [Define to 1 if you have the 'clock_gettime' function.])]) + +if test "x$missing" != x +then + echo "** One or more required libraries are missing:" + for library in $missing + do + echo "** $library" + done + AC_MSG_ERROR([please install missing dependencies]) +fi + + # +# Find the data files to install. +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DATA_FILES=$(echo $(cd data; \ - find . -name "*.png" -o -name "*.json" -o -name yoinkrc)) + find . -name "*.json" \ + -o -name "*.ogg" \ + -o -name "*.png" \ + -o -name "*.xm" \ + -o -name "yoinkrc")) AC_SUBST([DATA_FILES]) # # Create the build files. -# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AC_CONFIG_FILES([Makefile data/Makefile - src/Makefile doc/Makefile doc/yoink.6 - yajl/Makefile]) + extra/Makefile + extra/yoink.spec + src/Makefile + src/Moof/yajl/Makefile]) AC_CONFIG_HEADERS([src/config.h]) @@ -163,30 +285,21 @@ AC_OUTPUT # # Print a friendly little message. -# +#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -echo "=====================================" -echo " Configuration complete!" echo "" - -echo " Prefix: $prefix" -echo " Data: $datadir" +echo " Configuration complete! :-)" +echo "" +echo " Target: $target" +echo " Prefix: $prefix" +echo " Data Directory: $DATADIR" +echo " Log Level: $log_level" +echo " Debug: $debug" +echo " Profile: $profile" +echo " Extra Warnings: $extra_warnings" echo "" - -if test x$debug = xyes -then - echo " * Debugging enabled." - echo "" -fi - -if test x$profile = xyes -then - echo " * Profiling enabled." - echo "" -fi - echo " To finish the installation, execute:" echo " make" echo " make install" -echo "=====================================" +echo ""