📄 configure.in
字号:
#OLD_COLOUR_BLENDING hasn't been default for a while # SYSDEFINES="$SYSDEFINES"' -DOLD_COLOUR_BLENDING' :fidnl FIXME: Refuse to compile with compromisable zlib? (setuid DGA...)dnl FIXME: $snes9x_cv_sys_os needs to be setAC_ARG_WITH(zlib, [ --with(out)-zlib Support gzip decompression],[],[with_zlib=yes])define([AC_CHECK_GZ],[ done=no AC_MSG_CHECKING(working lib$1) AC_CACHE_VAL(snes9x_cv_working_$1,[ OLDLIBS="${LIBS-}" LIBS="${LIBS-} -l$1" AC_TRY_RUN([`cat $srcdir/unix/gz_test.c` ],snes9x_cv_working_$1=yes,snes9x_cv_working_$1=no, AC_TRY_LINK([`cat $srcdir/unix/gz_test.c`#define main notmain ],[],snes9x_cv_working_$1=yes,snes9x_cv_working_$1=no) ) ]) LIBS="$OLDLIBS" if test "x$snes9x_cv_working_$1" = xyes; then SNES9X_FEATURE(Gz,[yes (lib$1)]) AC_MSG_RESULT(yes) AC_DEFINE(HAVE_LIBZ) LIBS="${LIBS-} -l$1" done=yes else AC_MSG_RESULT(no) fi if test $done = no; then $2 : fi])if test x$with_zlib = xyes ; then SNES9X_FEATURE_NODEP(Gz) AC_CHECK_HEADERS(zlib.h) if test $ac_cv_header_zlib_h = yes ; then AC_MSG_CHECKING([if zlib.h is new enough]) AC_TRY_LINK([#include <zlib.h> ],[int foo = (int)(Z_NO_COMPRESSION | Z_VERSION_ERROR); ],[ AC_MSG_RESULT(yes) ],[ AC_MSG_RESULT(no); ac_cv_header_zlib_h=no ]) SNES9X_FEATURE(Gz,[no (zlib is too old)]) if test $ac_cv_header_zlib_h = yes ; then if test x$snes9x_cv_sys_os = xIRIX ; then # The libz.so supplied with IRIX 6.3 needs these obscure symbols # C++? It also differs which library which contains them. AC_CHECK_LIB(Csup, __vtbl__9type_info) if test "$ac_cv_lib_Csup___vtbl__9type_info" = "yes" ; then :; else AC_CHECK_LIB(C, __vtbl__9type_info) fi AC_CHECK_LIB(Csup, __T_9__nothrow) AC_HAVE_FUNCS(__vtbl__9type_info) AC_HAVE_FUNCS(__T_9__nothrow) fidnl FIXME: Fails since $ac_ext gets set to "cc" and that invoces gcc C++ mode# AC_CHECK_GZ(z,[AC_CHECK_GZ(gz,[ ac_cv_lib_z_main=no ] ) ]) AC_CHECK_LIB(z, gzread, [ SYSDEFINES="$SYSDEFINES"' -DZLIB' SYSLIBS="$SYSLIBS -lz" SNES9X_FEATURE(Gz,[yes]) ], [ SNES9X_FEATURE(Gz,[no]) ]) fi fifidnl Enable PNG support for screenshotsAC_ARG_WITH(png, [ --with(out)-screenshot Screenshot support through libpng if available (default: with)],[],[with_screenshot=yes])if test yes = "$with_screenshot"; then AC_CHECK_LIB(png, png_jmpbuf, [ SYSDEFINES="$SYSDEFINES"' -DHAVE_LIBPNG' SYSLIBS="$SYSLIBS -lpng" ], , -lz -lm)fidnl Check for functionsAC_CHECK_FUNC(mkstemp, [ SYSDEFINES="$SYSDEFINES"' -DHAVE_MKSTEMP'])dnl Locate X includeAC_PATH_Xif test xyes = x$no_x ; then dnl Maybe AC_MSG_ERROR? AC_MSG_WARN([X is normally required to build on Unix.])else X_LDFLAGS="-L$x_libraries" X_LIBS="-lX11 -lXext" LIBS="$LIBS $X_LIBS" SYSLIBS="$SYSLIBS $X_LDFLAGS $X_LIBS"fidnl NOTE: PATH_X doesn't set up the include path if it's in the system pathif test x$x_includes != x ; then X_INCLUDES="-I$x_includes"fiAC_ADD_XFLAGSdnl See if X has the DGA and vidmode extensions.AC_ARG_WITH(extensions,[ --with(out)-extensions Use DGA- and vidmode-extensions for X11 if avilable (default: with)],[],[with_extensions=yes])if test yes = $with_extensions ; then AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension, [ AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, [ SYSDEFINES="$SYSDEFINES"' -DUSE_DGA_EXTENSION -DUSE_VIDMODE_EXTENSION' SYSLIBS="$SYSLIBS"' -lXxf86dga -lXxf86vm' SNES9X_FEATURE([DGA, vidmode],[yes]) ],[ SNES9X_FEATURE([DGA, vidmode],[no (No vidmode extension)]) ]) ],[ SNES9X_FEATURE([DGA, vidmode],[no (No DGA extension)]) ])else SNES9X_FEATURE_WITHOUT([DGA, vidmode])fidnl Search for GNU makednl AC_MSG_CHECKING(for GNU make)dnl snes9x_cv_gnu_make_command=nodnl for x in "${MAKE:-make}" make gmake gnumake ; dodnl if [ "`$x --version 2> /dev/null | grep -c GNU`" != "0" ] ; thendnl snes9x_cv_gnu_make_command=$x ;dnl break ;dnl fidnl donednl AC_MSG_RESULT($snes9x_cv_gnu_make_command)dnl if test "x$snes9x_cv_gnu_make_command" = xno ; thendnl AC_MSG_WARN([dnl Snes9X must have GNU make to compile. Please get on from the nearest dnl GNU mirror.dnl ])dnl fidnl Check for headersAC_CHECK_HEADER(strings.h, [ SYSDEFINES="$SYSDEFINES"' -DHAVE_STRINGS_H'])AC_CHECK_HEADER(sys/ioctl.h, [ SYSDEFINES="$SYSDEFINES"' -DHAVE_SYS_IOCTL_H'])AC_CHECK_HEADERS(unistd.h sys/socket.h winsock.h winsock2.h WS2tcpip.h)dnl Check accept. Thoughly.AC_MSG_CHECKING(for the type of the last argument to accept)AC_CACHE_VAL(snes9x_cv_accept_size_t, [ for t in socklen_t size_t int; do AC_TRY_COMPILE([#ifndef _LARGEFILE_SOURCE# define _FILE_OFFSET_BITS 64# define _LARGEFILE_SOURCE# define _LARGEFILE64_SOURCE 1#endif/* HPUX needs these too... */#ifndef __STDC_EXT__# define __STDC_EXT__#endif /* !__STDC_EXT__ */#include <sys/types.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif/* NT */#ifdef HAVE_WINSOCK2_H#include <WinSock2.h>#ifdef HAVE_WS2TCPIP_H/* Needed for IPv6 support. */#include <WS2tcpip.h>#endif#elif defined(HAVE_WINSOCK_H)#include <winsock.h>#endif/* Here is the actual test: */int accept(int, struct sockaddr *, $t *); ], [ /* EMPTY */ ], [ snes9x_cv_accept_size_t=$t break ], [ AC_TRY_COMPILE([#ifndef _LARGEFILE_SOURCE# define _FILE_OFFSET_BITS 64# define _LARGEFILE_SOURCE# define _LARGEFILE64_SOURCE 1#endif/* HPUX needs these too... */#ifndef __STDC_EXT__# define __STDC_EXT__#endif /* !__STDC_EXT__ */#include <sys/types.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif/* NT */#ifdef HAVE_WINSOCK2_H#include <WinSock2.h>#ifdef HAVE_WS2TCPIP_H/* Needed for IPv6 support. */#include <WS2tcpip.h>#endif#elif defined(HAVE_WINSOCK_H)#include <winsock.h>#endif/* Here is the actual test: */SOCKET accept(SOCKET, struct sockaddr *, $t *); ], [ /* EMPTY */ ], [ snes9x_cv_accept_size_t=$t break ], []) ]) done if test "x$snes9x_cv_accept_size_t" = "x"; then # Check if it could be a Psocklen_t # Psocklen_t is a stupid typedef of socklen_t *. AC_TRY_COMPILE([#ifndef _LARGEFILE_SOURCE# define _FILE_OFFSET_BITS 64# define _LARGEFILE_SOURCE# define _LARGEFILE64_SOURCE 1#endif/* HPUX needs these too... */#ifndef __STDC_EXT__# define __STDC_EXT__#endif /* !__STDC_EXT__ */#include <sys/types.h>#ifdef HAVE_UNISTD_H#include <unistd.h>#endif#ifdef HAVE_SYS_SOCKET_H#include <sys/socket.h>#endif/* NT */#ifdef HAVE_WINSOCK2_H#include <WinSock2.h>#ifdef HAVE_WS2TCPIP_H/* Needed for IPv6 support. */#include <WS2tcpip.h>#endif#elif defined(HAVE_WINSOCK_H)#include <winsock.h>#endif/* Here is the actual test: */int accept(int, struct sockaddr *, Psocklen_t); ], [ /* EMPTY */ ], [ snes9x_cv_accept_size_t=socklen_t ], [ # FIXME: Should probably have a warning here. # FIXME: Should we check if socklen_t exists, and use that? snes9x_cv_accept_size_t=int ]) fi])AC_MSG_RESULT($snes9x_cv_accept_size_t *)AC_DEFINE_UNQUOTED(ACCEPT_SIZE_T, $snes9x_cv_accept_size_t)SYSDEFINES="$SYSDEFINES ""'"-DACCEPT_SIZE_T=$snes9x_cv_accept_size_t"'"dnl heavy socket testing ends here...dnl HP-UX needs this to get sane declarations of some Unix98 interfaces.AC_MSG_CHECKING(if _XOPEN_SOURCE_EXTENDED is defined)AC_CACHE_VAL(snes9x_cv_xopen_source_extended, [AC_TRY_COMPILE([#ifdef _XOPEN_SOURCE_EXTENDED/* */#else#error _XOPEN_SOURCE_EXTENDED not defined.#endif ], [], snes9x_cv_xopen_source_extended=yes, snes9x_cv_xopen_source_extended=no)])AC_MSG_RESULT($snes9x_cv_xopen_source_extended)if test no = $snes9x_cv_xopen_source_extended -a \ yes = $snes9x_cv_hpux_os ; thenSYSDEFINES="$SYSDEFINES"' -D_XOPEN_SOURCE_EXTENDED'AC_MSG_RESULT([Defining _XOPEN_SOURCE_EXTENDED since HP-UX needs it.])fidnl Check for posix threads, will be overridden if no sound is founddnl FIXME: This is very very basic. A lot of systems can be coaxed todnl cough up pthreads.THREAD_SOUND='#THREAD_SOUND=1'AC_CHECK_HEADER(pthread.h, [ THREAD_SOUND='THREAD_SOUND=1' ])dnl Check if we have sound code for this platformAC_ARG_WITH(sound, [ --with(out)-sound Enable sound if available (default: with)],[],[with_sound=yes])if test yes = "$with_sound" ; then AC_MSG_CHECKING(if sound is supported on this platform) AC_CACHE_VAL(snes9x_cv_sound, [ AC_TRY_COMPILE([#if defined(__linux) || defined(__sun) || defined(__sgi)/* */#else#error No sound for this platform#endif ], [], snes9x_cv_sound=yes, snes9x_cv_sound=no)]) AC_MSG_RESULT($snes9x_cv_sound)else snes9x_cv_sound=nofiif test no = $snes9x_cv_sound ; then SYSDEFINES="$SYSDEFINES"' -DNOSOUND' THREAD_SOUND='#THREAD_SOUND=1'fidnl Checks for libraries.AC_CHECK_LIB(nsl, gethostbyname)AC_CHECK_LIB(socket, socket)SYSLIBS="$SYSLIBS $LIBS" BASEDIR=`(cd $srcdir/.. ; pwd)`BUILDDIR=`pwd`touch dependenciesAC_SUBST(OPTIMIZE)AC_SUBST(RTTIFLAG)AC_SUBST(ZSNESFX)AC_SUBST(ZSNESC4)AC_SUBST(ASMCPU)AC_SUBST(ASMKREED)AC_SUBST(SDD1_DECOMP)AC_SUBST(SPC700ASM)AC_SUBST(I386SPC)AC_SUBST(THREAD_SOUND)AC_SUBST(SYSLIBS)AC_SUBST(CPUINC)AC_SUBST(SYSDEFINES)AC_SUBST(JOYDEFINES)AC_SUBST(X_INCLUDES)AC_SUBST(BUILDDIR)AC_SUBST(NASM)AC_SUBST(GLIDE)AC_SUBST(OPENGL)AC_SUBST(AIDO)AC_SUBST(DREAMCAST)AC_SUBST(JMA)rm config.info 2>/dev/nullcat >config.info <<EOFbuild information:cc................ $CCcxx............... $CXXoptions........... $OPTIMIZElibs.............. $SYSLIBSdefines........... $SYSDEFINESfeatures:PAD_FEATURE([new colour blender])$with_newblendPAD_FEATURE([sound support])$snes9x_cv_soundPAD_FEATURE([display system])$snes9x_info_displayPAD_FEATURE([joystick support])$with_joystickPAD_FEATURE([SDD1 decompression])$with_sdd1_decompPAD_FEATURE([JMA decompression])$with_jmadecompPAD_FEATURE([debugger])$with_debugger`cat snes9x_*.feature`EOFcat config.infoAC_OUTPUT(Makefile)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -