diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2017-05-26 21:51:04 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2017-05-26 22:48:09 -0700 |
commit | 78f8fce7f286fd0c71774e2567404ed51f24fef3 (patch) | |
tree | f3de4987f7a9fc1bc03331e97b65a851b041051a /configure.ac |
*: initial commit of stripped schism stuff
Forking schism tracker's IT playback stuff into a little playback
library for embedding in demos.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 242 |
1 files changed, 242 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..ce37da4 --- /dev/null +++ b/configure.ac @@ -0,0 +1,242 @@ +dnl Process this file with autoconf to produce a configure script. + +dnl Schism Tracker - a cross-platform Impulse Tracker clone +dnl copyright (c) 2003-2005 Storlek <storlek@rigelseven.com> +dnl copyright (c) 2005-2008 Mrs. Brisby <mrs.brisby@nimh.org> +dnl copyright (c) 2009 Storlek & Mrs. Brisby +dnl copyright (c) 2010-2012 Storlek +dnl URL: http://schismtracker.org/ +dnl +dnl This program is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2 of the License, or +dnl (at your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +AC_INIT([libplayit], [1.0], [vcaputo@pengaru.com]) +AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) +AC_CONFIG_HEADERS([config.h]) + +dnl ----------------------------------------------------------------------- + +dnl Check for standard programs +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_CC_C99 +AC_PROG_RANLIB + +dnl Windows poop +AC_CHECK_TOOL([WINDRES], [windres]) +AC_SUBST(WINDRES) +AM_CONDITIONAL([HAVE_WINDRES], [test "x$WINDRES" != "x"]) + +dnl We're using C +AC_LANG([C]) + +dnl check endianness +AC_C_BIGENDIAN + +dnl Functions +AC_CHECK_FUNCS(strchr memmove strerror strtol strcasecmp strncasecmp strverscmp stricmp strnicmp strcasestr strptime asprintf vasprintf memcmp mmap nice unsetenv dup fnmatch mkstemp) +AM_CONDITIONAL([NEED_ASPRINTF], [test "$ac_cv_func_asprintf" = "no"]) +AM_CONDITIONAL([NEED_VASPRINTF], [test "$ac_cv_func_vasprintf" = "no"]) +AM_CONDITIONAL([NEED_MEMCMP], [test "$ac_cv_func_memcmp" = "no"]) +AM_CONDITIONAL([NEED_STRPTIME], [test "$ac_cv_func_strptime" = "no"]) +AM_CONDITIONAL([NEED_MKSTEMP], [test "$ac_cv_func_mkstemp" = "no"]) + +AM_CONDITIONAL([USE_MMAP], [test "$ac_cv_func_mmap" = "yes"]) + +dnl Headers, typedef crap, et al. +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_HEADER_TIME +AC_CHECK_HEADERS(inttypes.h fcntl.h limits.h signal.h unistd.h sys/param.h sys/ioctl.h sys/kd.h linux/fb.h byteswap.h sys/soundcard.h) +AM_CONDITIONAL([USE_OSS], [test "$ac_cv_header_sys_soundcard_h" = yes]) + +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_SIZE_T +AC_STRUCT_TM +AC_SEARCH_LIBS([powf], [m]) + +dnl ----------------------------------------------------------------------- + +dnl Always use x11 by default unless overriden later per-platform +dnl (this is stupid, and only needed because the x11 check is dysfunctional) +defaultx11=yes + + +dnl CoreMIDI (Mac OS X) +AC_MSG_CHECKING(for CoreAudio/CoreMIDI Framework) +if echo "$SDL_LIBS" | grep -- -framework >/dev/null 2>&1; then + AC_MSG_RESULT(found) + dnl frameworks aren't part of sdl... should be a separate variable + SDL_LIBS="$SDL_LIBS -framework CoreAudio -framework CoreMIDI -framework IOKit -framework OpenGL" + AC_SUBST(SDL_LIBS) + + AM_CONDITIONAL([USE_MACOSX], true) + AM_CONDITIONAL([am__fastdepOBJC], true) + defaultx11=no +else + AC_MSG_RESULT(not found) + AM_CONDITIONAL([USE_MACOSX], false) + AM_CONDITIONAL([am__fastdepOBJC], false) +fi + + + +dnl winmm testing... +AC_CHECK_HEADERS(winsock.h winsock2.h windows.h) +if test "X$ac_cv_header_windows_h" = "Xyes"; then + AM_CONDITIONAL([USE_WIN32], true) + SDL_LIBS="$SDL_LIBS -lwinmm" + AC_SUBST(SDL_LIBS) + defaultx11=no +else + AM_CONDITIONAL([USE_WIN32], false) +fi + + +dnl Wii crap +AC_CHECK_LIB(ogc, IOS_ReloadIOS, libogc_found=yes, libogc_found=no, [-mrvl -L${DEVKITPRO}/libogc/lib/wii]) +if test x"$libogc_found" = "xyes"; then + AM_CONDITIONAL([USE_WII], true) + wii_machdep="-DGEKKO -mrvl -mcpu=750 -meabi -mhard-float" + CFLAGS="$CFLAGS $wii_machdep -I${DEVKITPRO}/libogc/include" + LIBS="$LIBS $wii_machdep -L${DEVKITPRO}/libogc/lib/wii" + SDL_CFLAGS="$SDL_CFLAGS -I${DEVKITPRO}/libogc/include/SDL" + SDL_LIBS="$SDL_LIBS -lSDL -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard" + AC_SUBST(CFLAGS) + AC_SUBST(LIBS) + AC_SUBST(SDL_CFLAGS) + AC_SUBST(SDL_LIBS) + EXEEXT=.elf + AC_SUBST(EXEEXT) + defaultx11=no +else + AM_CONDITIONAL([USE_WII], false) +fi + + +dnl should probably have some AC_MSG_CHECKING here, but meh +if test "x$defaultx11" = "xno"; then + if test "x$with_x" = "x"; then + AC_MSG_NOTICE([X11 disabled by default; use --with-x if you really want it]) + dnl (you don't want it, because it's probably broken anyway) + with_x=no + fi +fi + +dnl OpenGL crud - it doesn't always exist +saved_cppflags=$CPPFLAGS +CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" +AC_CHECK_HEADER([SDL_opengl.h], [AC_DEFINE([USE_OPENGL], 1, [Define to 1 if SDL's OpenGL works])]) +CPPFLAGS=$saved_cppflags + +dnl ----------------------------------------------------------------------- + +saved_libs=$LIBS +alsa=no +AC_CHECK_LIB(asound, snd_seq_open,[alsa=yes]) +alsadltrick=no +if test "$alsa" = "yes"; then + if test "$ac_cv_header_sys_soundcard_h" = "yes"; then + alsadltrick=yes + LIBS=$saved_libs + fi +fi +AM_CONDITIONAL([USE_ALSA], [test "$alsa" = yes]) +AM_CONDITIONAL([USE_ALSA_DLTRICK], [test "$alsadltrick" = yes]) + + +AC_PATH_XTRA() +if test "$no_x" = "yes"; then + dnl no X11 + AM_CONDITIONAL([USE_X11], [false]) + AM_CONDITIONAL([USE_XV], [false]) +else + AM_CONDITIONAL([USE_X11], [true]) + + SDL_LIBS="$SDL_LIBS -lX11 -lXext" + AC_SUBST(SDL_LIBS) + + LIBS="$LIBS $X_LIBS" + AC_SUBST(LIBS) + + dnl this previously checked X11/extensions/XKB.h, but nothing + dnl ever used it (xkb.c still included X11/XKBlib.h even when + dnl autoconf reported it as nonexistent -- weird!) + AC_CHECK_HEADERS(X11/Xlib.h X11/XKBlib.h) + AC_CHECK_LIB(Xv, XvQueryExtension,,,-lX11 -lXext) + if test "$ac_cv_lib_Xv_XvQueryExtension" = "yes"; then + AC_CHECK_HEADERS(X11/extensions/Xvlib.h,,,[[ +#include <X11/Xlib.h> + ]]) + if test "$ac_cv_header_X11_extensions_xvlib_h" = "yes"; then + SDL_LIBS="$SDL_LIBS -lXv -lXext" + AC_SUBST(SDL_LIBS) + AM_CONDITIONAL([USE_XV], [true]) + elif test "$ac_cv_header_X11_extensions_Xvlib_h" = "yes"; then + SDL_LIBS="$SDL_LIBS -lXv -lXext" + AC_SUBST(SDL_LIBS) + AM_CONDITIONAL([USE_XV], [true]) + else + AM_CONDITIONAL([USE_XV], [false]) + fi + else + AM_CONDITIONAL([USE_XV], [false]) + fi +fi + +dnl asdjklfjklasdfaskdfjklads +saved_LIBS="$LIBS" +AC_SEARCH_LIBS(socket, socket network) +LIBS="$saved_LIBS" +if test "x$ac_cv_search_socket" = "xno"; then + dnl Windows sucks (I don't even know what this is about, but it apparently works) + AC_CHECK_HEADERS(winsock.h winsock2.h) + if test "x$ac_cv_header_winsock_h" = "xyes"; then + socketlib="-lwsock32" + elif test "x$ac_cv_header_winsock2_h" = "xyes"; then + socketlib="-lws2_32" + fi + if test "x$socketlib" = "x"; then + echo "*** No sockets for you!" + AM_CONDITIONAL([USE_NETWORK], false) + else + AM_CONDITIONAL([USE_NETWORK], true) + SDL_LIBS="$SDL_LIBS $socketlib" + AC_SUBST(SDL_LIBS) + fi +elif test "x$ac_cv_search_socket" = "xnone required"; then + dnl free networking + AM_CONDITIONAL([USE_NETWORK], true) +else + SDL_LIBS="$SDL_LIBS $ac_cv_search_socket" + AC_SUBST(SDL_LIBS) + AM_CONDITIONAL([USE_NETWORK], true) +fi + +#AC_CHECK_LIB(kernel32, GetConsoleMode, SDL_LIBS="$SDL_LIBS -Wl,--subsystem,console") + +dnl wee... +dnl this completely sucks... +OBJC=$CC +OBJCFLAGS=$CFLAGS +AC_SUBST(OBJC) +AC_SUBST(OBJCFLAGS) + +AC_CONFIG_FILES([Makefile src/Makefile]) +AC_OUTPUT |