RetroArch/qb/config.libs.sh

525 lines
15 KiB
Bash
Raw Normal View History

2012-06-12 20:16:16 +00:00
check_switch_c C99 -std=gnu99 "Cannot find C99 compatible compiler."
2010-12-30 01:52:02 +00:00
check_switch_c NOUNUSED -Wno-unused-result
2012-06-12 20:16:16 +00:00
add_define_make NOUNUSED "$HAVE_NOUNUSED"
2013-03-16 11:24:53 +00:00
check_switch_c NOUNUSED_VARIABLE -Wno-unused-variable
add_define_make NOUNUSED_VARIABLE "$HAVE_NOUNUSED_VARIABLE"
2011-08-24 14:12:38 +00:00
# There are still broken 64-bit Linux distros out there. :)
[ -z "$CROSS_COMPILE" ] && [ -d /usr/lib64 ] && add_library_dirs /usr/lib64
2011-08-24 14:12:38 +00:00
[ -z "$CROSS_COMPILE" ] && [ -d /opt/local/lib ] && add_library_dirs /opt/local/lib
2011-09-02 14:12:34 +00:00
[ "$GLOBAL_CONFIG_DIR" ] || \
{ case "$PREFIX" in
/usr*) GLOBAL_CONFIG_DIR=/etc ;;
*) GLOBAL_CONFIG_DIR="$PREFIX"/etc ;;
esac
}
2014-08-28 16:41:12 +00:00
DYLIB=-ldl;
CLIB=-lc
PTHREADLIB=-lpthread
SOCKETLIB=-lc
2014-10-29 00:30:12 +00:00
SOCKETHEADER=
2014-08-28 16:41:12 +00:00
2012-12-22 22:52:05 +00:00
if [ "$OS" = 'BSD' ]; then
DYLIB=-lc;
elif [ "$OS" = 'Haiku' ]; then
2014-08-28 16:41:12 +00:00
DYLIB=""
CLIB=-lroot
PTHREADLIB=-lroot
SOCKETLIB=-lnetwork
2014-08-29 19:35:56 +00:00
elif [ "$OS" = 'Win32' ]; then
SOCKETLIB=-lws2_32
2014-10-29 00:30:12 +00:00
SOCKETHEADER="#include <winsock2.h>"
2014-08-29 19:35:56 +00:00
DYLIB=
2017-01-15 15:47:27 +00:00
elif [ "$OS" = 'Cygwin' ]; then
echo "Error: Cygwin is not a supported platform. See https://bot.libretro.com/docs/compilation/windows/"
exit 1
2012-12-22 22:52:05 +00:00
fi
add_define_make DYLIB_LIB "$DYLIB"
2016-04-25 13:16:06 +00:00
check_lib SYSTEMD -lsystemd sd_get_machine_names
if [ "$HAVE_VIDEOCORE" != "no" ]; then
check_pkgconf VC_TEST bcm_host
# use fallback if pkgconfig is not available
if [ ! "$VC_TEST_LIBS" ]; then
[ -d /opt/vc/lib ] && add_library_dirs /opt/vc/lib && add_library_dirs /opt/vc/lib/GL
check_lib VIDEOCORE -lbcm_host bcm_host_init "-lvcos -lvchiq_arm"
else
HAVE_VIDEOCORE="$HAVE_VC_TEST"
fi
fi
if [ "$HAVE_VIDEOCORE" = 'yes' ]; then
2016-09-16 22:38:35 +00:00
HAVE_OPENGLES='auto'
VC_PREFIX="brcm"
# use fallback if pkgconfig is not available
if [ ! "$VC_TEST_LIBS" ]; then
[ -d /opt/vc/include ] && add_include_dirs /opt/vc/include
[ -d /opt/vc/include/interface/vcos/pthreads ] && add_include_dirs /opt/vc/include/interface/vcos/pthreads
[ -d /opt/vc/include/interface/vmcs_host/linux ] && add_include_dirs /opt/vc/include/interface/vmcs_host/linux
EXTRA_GL_LIBS="-lbrcmEGL -lbrcmGLESv2 -lbcm_host -lvcos -lvchiq_arm"
fi
fi
if [ "$HAVE_NEON" = "yes" ]; then
CFLAGS="$CFLAGS -mfpu=neon -marm"
CXXFLAGS="$CXXFLAGS -mfpu=neon -marm"
ASFLAGS="$ASFLAGS -mfpu=neon"
fi
if [ "$HAVE_7ZIP" = "yes" ]; then
add_include_dirs ./deps/7zip/
fi
if [ "$HAVE_PRESERVE_DYLIB" = "yes" ]; then
2015-01-27 23:50:55 +00:00
echo "Notice: Disabling dlclose() of shared objects for Valgrind support."
add_define_make HAVE_PRESERVE_DYLIB "1"
fi
if [ "$HAVE_FLOATHARD" = "yes" ]; then
CFLAGS="$CFLAGS -mfloat-abi=hard"
CXXFLAGS="$CXXFLAGS -mfloat-abi=hard"
ASFLAGS="$ASFLAGS -mfloat-abi=hard"
fi
if [ "$HAVE_FLOATSOFTFP" = "yes" ]; then
CFLAGS="$CFLAGS -mfloat-abi=softfp"
CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
ASFLAGS="$ASFLAGS -mfloat-abi=softfp"
fi
if [ "$HAVE_NEON" = "yes" ]; then
CFLAGS="$CFLAGS -mfpu=neon -marm"
CXXFLAGS="$CXXFLAGS -mfpu=neon -marm"
ASFLAGS="$ASFLAGS -mfpu=neon"
fi
if [ "$HAVE_FLOATHARD" = "yes" ]; then
CFLAGS="$CFLAGS -mfloat-abi=hard"
CXXFLAGS="$CXXFLAGS -mfloat-abi=hard"
ASFLAGS="$ASFLAGS -mfloat-abi=hard"
fi
if [ "$HAVE_FLOATSOFTFP" = "yes" ]; then
CFLAGS="$CFLAGS -mfloat-abi=softfp"
CXXFLAGS="$CXXFLAGS -mfloat-abi=softfp"
ASFLAGS="$ASFLAGS -mfloat-abi=softfp"
fi
if [ "$HAVE_SSE" = "yes" ]; then
CFLAGS="$CFLAGS -msse -msse2"
CXXFLAGS="$CXXFLAGS -msse -msse2"
fi
if [ "$HAVE_EGL" != "no" ] && [ "$OS" != 'Win32' ]; then
check_pkgconf EGL "$VC_PREFIX"egl
# some systems have EGL libs, but no pkgconfig
if [ "$HAVE_EGL" = "no" ]; then
2017-10-26 06:16:09 +00:00
HAVE_EGL=auto; check_lib EGL "-l${VC_PREFIX}EGL $EXTRA_GL_LIBS"
[ "$HAVE_EGL" = "yes" ] && EGL_LIBS=-l"$VC_PREFIX"EGL
2014-06-17 19:01:19 +00:00
else
EGL_LIBS="$EGL_LIBS $EXTRA_GL_LIBS"
2014-06-17 19:01:19 +00:00
fi
fi
2017-08-19 15:03:38 +00:00
if [ "$HAVE_SSA" != "no" ]; then
2016-03-03 17:17:48 +00:00
check_lib SSA -lass ass_library_init
fi
if [ "$HAVE_EXYNOS" != "no" ]; then
check_pkgconf EXYNOS libdrm_exynos
check_pkgconf DRM libdrm
fi
if [ "$HAVE_DISPMANX" != "no" ]; then
PKG_CONF_USED="$PKG_CONF_USED DISPMANX"
fi
2012-06-12 20:16:16 +00:00
if [ "$LIBRETRO" ]; then
2015-01-27 23:50:55 +00:00
echo "Notice: Explicit libretro used, disabling dynamic libretro loading ..."
2012-06-12 20:16:16 +00:00
HAVE_DYNAMIC='no'
else LIBRETRO="-lretro"
fi
2012-06-12 20:16:16 +00:00
[ "$HAVE_DYNAMIC" = 'yes' ] || {
#check_lib RETRO "$LIBRETRO" retro_init "$DYLIB" "Cannot find libretro, did you forget --with-libretro=\"-lretro\"?"
check_lib RETRO "$LIBRETRO" "$DYLIB" "Cannot find libretro, did you forget --with-libretro=\"-lretro\"?"
2012-06-12 20:16:16 +00:00
add_define_make libretro "$LIBRETRO"
}
2010-12-30 01:52:02 +00:00
2017-10-22 05:09:55 +00:00
[ -z "$ASSETS_DIR" ] && ASSETS_DIR="${PREFIX}/share"
add_define_make ASSETS_DIR "$ASSETS_DIR"
2016-08-28 02:44:41 +00:00
2017-10-22 05:09:55 +00:00
[ -z "$BIN_DIR" ] && BIN_DIR="${PREFIX}/bin"
add_define_make BIN_DIR "$BIN_DIR"
2016-08-27 00:29:50 +00:00
2017-10-22 05:09:55 +00:00
[ -z "$MAN_DIR" ] && MAN_DIR="${PREFIX}/share/man"
add_define_make MAN_DIR "$MAN_DIR"
2017-01-20 23:23:45 +00:00
if [ "$OS" = 'DOS' ]; then
HAVE_SHADERPIPELINE=no
HAVE_LANGEXTRA=no
fi
2014-08-29 19:35:56 +00:00
if [ "$OS" = 'Win32' ]; then
HAVE_THREADS=yes
2016-10-18 00:21:51 +00:00
HAVE_THREAD_STORAGE=yes
2014-08-29 19:35:56 +00:00
HAVE_DYLIB=yes
else
check_lib THREADS "$PTHREADLIB" pthread_create
2016-10-18 00:21:51 +00:00
if [ "$HAVE_THREADS" = 'yes' ]; then
check_lib THREAD_STORAGE "$PTHREADLIB" pthread_key_create
else
HAVE_THREAD_STORAGE=no
fi
2014-08-29 19:35:56 +00:00
check_lib DYLIB "$DYLIB" dlopen
fi
2015-01-27 23:49:43 +00:00
check_lib NETWORKING "$SOCKETLIB" socket "" "$SOCKETHEADER"
2014-10-29 00:30:12 +00:00
2015-01-27 23:49:43 +00:00
if [ "$HAVE_NETWORKING" = 'yes' ]; then
HAVE_GETADDRINFO=auto
HAVE_SOCKET_LEGACY=no
# WinXP+ implements getaddrinfo()
if [ "$OS" = 'Win32' ]; then
HAVE_GETADDRINFO=yes
else
check_lib GETADDRINFO "$SOCKETLIB" getaddrinfo
if [ "$HAVE_GETADDRINFO" != 'yes' ]; then
HAVE_SOCKET_LEGACY=yes
2017-10-22 05:30:43 +00:00
echo "Notice: RetroArch will use legacy socket support"
fi
fi
HAVE_NETWORK_CMD=yes
HAVE_NETWORKGAMEPAD=yes
if [ "$HAVE_MINIUPNPC" != "no" ]; then
check_lib MINIUPNPC "-lminiupnpc"
fi
if [ "$HAVE_BUILTINMINIUPNPC" = "yes" ]; then
HAVE_MINIUPNPC='yes'
fi
2012-05-27 12:23:30 +00:00
else
2015-01-27 23:50:55 +00:00
echo "Warning: All networking features have been disabled."
HAVE_KEYMAPPER='no'
2012-06-12 20:16:16 +00:00
HAVE_NETWORK_CMD='no'
HAVE_NETWORKGAMEPAD='no'
HAVE_CHEEVOS='no'
fi
2014-08-28 16:41:12 +00:00
check_lib STDIN_CMD "$CLIB" fcntl
2012-07-24 00:47:28 +00:00
if [ "$HAVE_NETWORK_CMD" = "yes" ] || [ "$HAVE_STDIN_CMD" = "yes" ]; then
HAVE_COMMAND='yes'
else
HAVE_COMMAND='no'
fi
2014-08-28 16:41:12 +00:00
check_lib GETOPT_LONG "$CLIB" getopt_long
2011-03-07 19:22:55 +00:00
2012-06-12 20:16:16 +00:00
if [ "$HAVE_DYLIB" = 'no' ] && [ "$HAVE_DYNAMIC" = 'yes' ]; then
2015-01-27 23:50:55 +00:00
echo "Error: Dynamic loading of libretro is enabled, but your platform does not appear to have dlopen(), use --disable-dynamic or --with-libretro=\"-lretro\"".
exit 1
fi
2011-06-25 15:15:58 +00:00
check_pkgconf ALSA alsa
2016-12-01 17:24:07 +00:00
check_lib CACA -lcaca
2010-12-30 01:52:02 +00:00
check_header OSS sys/soundcard.h
2011-06-16 21:20:12 +00:00
check_header OSS_BSD soundcard.h
check_lib OSS_LIB -lossaudio
2017-06-24 01:44:00 +00:00
if [ "$OS" = 'Linux' ]; then
HAVE_TINYALSA=yes
fi
2012-10-11 19:00:16 +00:00
if [ "$OS" = 'Darwin' ]; then
2017-10-22 05:30:43 +00:00
check_lib COREAUDIO "-framework AudioUnit" AudioUnitInitialize
check_lib CORETEXT "-framework CoreText" CTFontCreateWithName
check_lib COCOA "-framework AppKit" NSApplicationMain
check_lib AVFOUNDATION "-framework AVFoundation"
check_lib CORELOCATION "-framework CoreLocation"
check_lib IOHIDMANAGER "-framework IOKit" IOHIDManagerCreate
2011-02-04 13:42:26 +00:00
check_lib AL "-framework OpenAL" alcOpenDevice
2017-10-22 05:30:43 +00:00
HAVE_X11=no # X11 breaks on recent OSXes even if present.
HAVE_SDL=no
2011-02-04 13:42:26 +00:00
else
check_lib AL -lopenal alcOpenDevice
fi
check_pkgconf RSOUND rsound 1.1
2011-06-25 15:15:58 +00:00
check_pkgconf ROAR libroar
2011-03-13 17:09:27 +00:00
check_pkgconf JACK jack 0.120.1
2011-01-29 00:15:09 +00:00
check_pkgconf PULSE libpulse
check_pkgconf SDL sdl 1.2.10
check_pkgconf SDL2 sdl2 2.0.0
2010-12-30 01:52:02 +00:00
if [ "$HAVE_SDL2" = 'yes' ]; then
if [ "$HAVE_SDL2" = 'yes' ] && [ "$HAVE_SDL" = 'yes' ]; then
2015-01-27 23:50:55 +00:00
echo "Notice: SDL drivers will be replaced by SDL2 ones."
2014-08-10 16:35:18 +00:00
HAVE_SDL=no
elif [ "$HAVE_SDL2" = 'no' ]; then
2015-01-27 23:50:55 +00:00
echo "Warning: SDL2 not found, skipping."
2014-08-10 16:35:18 +00:00
HAVE_SDL2=no
fi
fi
2015-05-17 22:30:16 +00:00
check_pkgconf LIBUSB libusb-1.0 1.0.16
2014-08-29 19:35:56 +00:00
if [ "$OS" = 'Win32' ]; then
check_lib DINPUT -ldinput8
check_lib D3D9 -ld3d9
check_lib DSOUND -ldsound
if [ "$HAVE_DINPUT" != 'no' ]; then
2015-04-05 18:54:46 +00:00
HAVE_XINPUT=yes
2014-08-29 19:35:56 +00:00
fi
2017-04-09 21:53:55 +00:00
HAVE_WASAPI=yes
2014-08-29 19:35:56 +00:00
HAVE_XAUDIO=yes
2014-10-22 17:18:56 +00:00
else
HAVE_D3D9=no
2014-08-29 19:35:56 +00:00
fi
2016-09-16 22:38:35 +00:00
if [ "$HAVE_OPENGL" != 'no' ] && [ "$HAVE_OPENGLES" != 'yes' ]; then
2012-10-14 13:54:48 +00:00
if [ "$OS" = 'Darwin' ]; then
2015-06-17 14:58:30 +00:00
check_header OPENGL "OpenGL/gl.h"
check_lib OPENGL "-framework OpenGL"
2014-09-16 20:45:45 +00:00
elif [ "$OS" = 'Win32' ]; then
2015-06-17 14:58:30 +00:00
check_header OPENGL "GL/gl.h"
check_lib OPENGL -lopengl32
2012-10-14 13:54:48 +00:00
else
2015-06-17 00:25:55 +00:00
check_header OPENGL "GL/gl.h"
2015-06-17 14:58:30 +00:00
check_lib OPENGL -lGL
2012-10-14 13:54:48 +00:00
fi
2014-09-16 21:00:12 +00:00
2015-06-17 14:58:30 +00:00
if [ "$HAVE_OPENGL" = 'yes' ]; then
if [ "$OS" = 'Darwin' ]; then
check_lib CG "-framework Cg" cgCreateContext
[ "$HAVE_CG" = 'yes' ] && CG_LIBS='-framework Cg'
elif [ "$OS" = 'Win32' ]; then
check_lib_cxx CG -lcg cgCreateContext
[ "$HAVE_CG" = 'yes' ] && CG_LIBS='-lcg -lcgGL'
else
# On some distros, -lCg doesn't link against -lstdc++ it seems ...
check_lib_cxx CG -lCg cgCreateContext
[ "$HAVE_CG" = 'yes' ] && CG_LIBS='-lCg -lCgGL'
fi
# fix undefined variables
PKG_CONF_USED="$PKG_CONF_USED CG"
2016-07-30 14:37:22 +00:00
check_pkgconf OSMESA osmesa
2015-06-17 14:58:30 +00:00
else
echo "Notice: Ignoring Cg. Desktop OpenGL is not enabled."
HAVE_CG='no'
fi
2011-11-01 17:24:43 +00:00
fi
2011-08-24 14:12:38 +00:00
if [ "$HAVE_ZLIB" != 'no' ]; then
check_pkgconf ZLIB zlib
if [ "$HAVE_ZLIB" = 'no' ]; then
HAVE_ZLIB='auto'
check_lib ZLIB '-lz'
fi
fi
2010-12-30 02:02:30 +00:00
2012-06-12 20:16:16 +00:00
if [ "$HAVE_THREADS" != 'no' ]; then
if [ "$HAVE_FFMPEG" != 'no' ]; then
check_pkgconf AVCODEC libavcodec 54
check_pkgconf AVFORMAT libavformat 54
2016-08-30 15:23:48 +00:00
check_pkgconf AVDEVICE libavdevice
check_pkgconf SWRESAMPLE libswresample
2016-08-30 15:31:39 +00:00
check_pkgconf AVRESAMPLE libavresample
check_pkgconf AVUTIL libavutil 51
check_pkgconf SWSCALE libswscale 2.1
check_header AV_CHANNEL_LAYOUT libavutil/channel_layout.h
2015-04-19 13:46:42 +00:00
HAVE_FFMPEG='yes'
2016-08-30 16:31:42 +00:00
if [ "$HAVE_AVCODEC" = 'no' ] || [ "$HAVE_SWRESAMPLE" = 'no' ] || [ "$HAVE_AVFORMAT" = 'no' ] || [ "$HAVE_AVUTIL" = 'no' ] || [ "$HAVE_SWSCALE" = 'no' ]; then
2015-04-19 13:46:42 +00:00
HAVE_FFMPEG='no'
echo "Notice: FFmpeg built-in support disabled due to missing or unsuitable packages."
2015-04-19 13:46:42 +00:00
fi
2011-11-30 16:46:58 +00:00
fi
else
2015-01-27 23:50:55 +00:00
echo "Notice: Not building with threading support. Will skip FFmpeg."
2012-06-12 20:16:16 +00:00
HAVE_FFMPEG='no'
fi
2014-08-29 19:35:56 +00:00
if [ "$OS" != 'Win32' ]; then
check_lib DYNAMIC "$DYLIB" dlopen
fi
2010-12-30 12:54:49 +00:00
2012-09-24 23:26:22 +00:00
if [ "$HAVE_KMS" != "no" ]; then
2012-10-13 19:44:25 +00:00
check_pkgconf GBM gbm 9.0
2012-09-25 10:58:45 +00:00
check_pkgconf DRM libdrm
if [ "$HAVE_GBM" = "yes" ] && [ "$HAVE_DRM" = "yes" ] && [ "$HAVE_EGL" = "yes" ]; then
HAVE_KMS=yes
2012-09-24 23:26:22 +00:00
elif [ "$HAVE_KMS" = "yes" ]; then
2015-01-27 23:50:55 +00:00
echo "Error: Cannot find libgbm, libdrm and EGL libraries required for KMS. Compile without --enable-kms."
2012-09-24 23:26:22 +00:00
exit 1
else
HAVE_KMS=no
fi
fi
check_pkgconf LIBXML2 libxml-2.0
2012-09-25 10:58:45 +00:00
if [ "$HAVE_EGL" = "yes" ]; then
2016-09-16 22:38:35 +00:00
if [ "$HAVE_OPENGLES" != "no" ]; then
if [ "$OPENGLES_LIBS" ] || [ "$OPENGLES_CFLAGS" ]; then
echo "Notice: Using custom OpenGLES CFLAGS ($OPENGLES_CFLAGS) and LDFLAGS ($OPENGLES_LIBS)."
add_define_make OPENGLES_LIBS "$OPENGLES_LIBS"
add_define_make OPENGLES_CFLAGS "$OPENGLES_CFLAGS"
else
HAVE_OPENGLES=auto; check_pkgconf OPENGLES "$VC_PREFIX"glesv2
if [ "$HAVE_OPENGLES" = "no" ]; then
2017-10-26 06:16:09 +00:00
HAVE_OPENGLES=auto; check_lib OPENGLES "-l${VC_PREFIX}GLESv2 $EXTRA_GL_LIBS"
add_define_make OPENGLES_LIBS "-l${VC_PREFIX}GLESv2 $EXTRA_GL_LIBS"
fi
fi
fi
if [ "$HAVE_VG" != "no" ]; then
check_pkgconf VG "$VC_PREFIX"vg
if [ "$HAVE_VG" = "no" ]; then
2017-10-26 06:16:09 +00:00
HAVE_VG=auto; check_lib VG "-l${VC_PREFIX}OpenVG $EXTRA_GL_LIBS"
[ "$HAVE_VG" = "yes" ] && VG_LIBS=-l"$VC_PREFIX"OpenVG
fi
fi
else
HAVE_VG=no
2016-09-16 22:38:35 +00:00
HAVE_OPENGLES=no
fi
check_pkgconf V4L2 libv4l2
if [ "$OS" = 'Darwin' ]; then
check_lib FBO "-framework OpenGL" glFramebufferTexture2D
2014-08-29 19:35:56 +00:00
elif [ "$OS" = 'Win32' ]; then
HAVE_FBO=yes
else
2016-09-16 22:38:35 +00:00
if [ "$HAVE_OPENGLES" = "yes" ]; then
[ $HAVE_FBO != "no" ] && HAVE_FBO=yes
else
check_lib FBO -lGL glFramebufferTexture2D
fi
fi
2011-01-22 23:27:20 +00:00
check_pkgconf FREETYPE freetype2
check_pkgconf X11 x11
2016-02-19 14:08:23 +00:00
check_pkgconf XCB xcb
[ "$HAVE_X11" = "no" ] && HAVE_XEXT=no && HAVE_XF86VM=no && HAVE_XINERAMA=no && HAVE_XSHM=no
2012-09-28 21:43:58 +00:00
check_pkgconf WAYLAND wayland-egl
2016-12-17 20:34:51 +00:00
check_pkgconf WAYLAND_CURSOR wayland-cursor
2014-05-22 14:53:33 +00:00
check_pkgconf XKBCOMMON xkbcommon 0.3.2
WIP: Fixes #2026 Screensaver suspend on Linux via Dbus One some systems (tested with Gnome 3 on Arch Linux) the current method of using `xdg-screensaver` to suspend the screensaver does not work. Instead, using DBus to issue an `Inhibit` request is recommended. The request returns a cookie that needs to be re-used to un-inhibit the screensaver later. Additionally if the DBus connection is closed the current inhibition is discarded. Thus, the DBus connection needs to stay connected for the duration of the screenshot inhibition. The code is heavily inspired from the [SDL 2.x code](http://hg.libsdl.org/SDL/file/default/src/core/linux/SDL_dbus.c#l172). I didn't call the SDL 2 code though since this it to fix the issue with the GL driver, and I assume one would want to have screensaver inhibited even when SDL 2 is not available (but GL is). I've set "WIP" because: * I haven't done C in a long time so my code is probably not great * There's a dependency on DBus which I don't know is acceptable or not * I've put my code where I could to check it works, but `x11_common` may not be the best place * The code need and "init" and "deinit" kind of method as it needs to initialise the DBus connection, and on deinit close it properly. I've used `x11_connect` and `x11_window_destroy` but they don't sound like the best choices. * I'm a bit unclear as to what happens when "suspend screensaver" is ticked on/off in the menu. This doesn't seem to call `x11_suspend_screensaver` everytime, so I'm not sure if there's a hook somewhere (as disabling screensaver suspend in the menu should cause a DBus unhinibit request to be sent). * Should I just call the SDL 2.x code (meaning that the GL driver would depend on SDL 2.x at runtime)? So, first of all are you ok with the approach, and if yes I'd gladly get feedback about the code, how to architecture it and the best place to put it. Thanks!
2016-09-08 22:18:37 +00:00
check_pkgconf DBUS dbus-1
check_pkgconf XEXT xext
2012-09-29 08:47:55 +00:00
check_pkgconf XF86VM xxf86vm
2012-10-12 17:05:29 +00:00
check_pkgconf XINERAMA xinerama
2012-09-29 08:47:55 +00:00
if [ "$HAVE_X11" = 'yes' ] && [ "$HAVE_XEXT" = 'yes' ] && [ "$HAVE_XF86VM" = 'yes' ]; then
check_pkgconf XVIDEO xv
else
2015-01-27 23:50:55 +00:00
echo "Notice: X11, Xext or xf86vm not present. Skipping X11 code paths."
2012-09-29 08:47:55 +00:00
HAVE_X11='no'
2012-06-12 20:16:16 +00:00
HAVE_XVIDEO='no'
fi
2011-01-22 23:27:20 +00:00
2014-06-24 18:16:31 +00:00
if [ "$HAVE_UDEV" != "no" ]; then
check_pkgconf UDEV libudev
if [ "$HAVE_UDEV" = "no" ]; then
HAVE_UDEV=auto; check_lib UDEV "-ludev"
2014-06-24 18:16:31 +00:00
[ "$HAVE_UDEV" = "yes" ] && UDEV_LIBS=-ludev
fi
fi
2013-09-25 17:32:18 +00:00
2015-10-11 14:06:06 +00:00
check_header XSHM X11/Xlib.h X11/extensions/XShm.h
2014-10-04 21:04:38 +00:00
check_header PARPORT linux/parport.h
check_header PARPORT linux/ppdev.h
if [ "$OS" != 'Win32' ]; then
check_lib STRL "$CLIB" strlcpy
fi
2014-08-28 16:41:12 +00:00
check_lib STRCASESTR "$CLIB" strcasestr
check_lib MMAP "$CLIB" mmap
2016-05-16 08:08:10 +00:00
check_lib VULKAN -lvulkan vkCreateInstance
2011-04-03 20:16:59 +00:00
if [ "$HAVE_VULKAN" != 'no' ] && [ ! -e deps/glslang/glslang/README.md ]; then
echo "Warning: glslang submodule not loaded, can't use Vulkan."
echo "To fix, use: git submodule init && git submodule update"
HAVE_VULKAN=no
fi
if [ "$HAVE_VULKAN" != 'no' ] && [ ! -e deps/SPIRV-Cross/README.md ]; then
echo "Warning: SPIRV-Cross submodule not loaded, can't use Vulkan."
echo "To fix, use: git submodule init && git submodule update"
HAVE_VULKAN=no
fi
check_pkgconf PYTHON python3
if [ "$HAVE_MATERIALUI" != 'no' ] || [ "$HAVE_XMB" != 'no' ] || [ "$HAVE_ZARCH" != 'no' ]; then
2017-10-22 07:02:24 +00:00
if [ "$HAVE_RGUI" = 'no' ]; then
HAVE_MATERIALUI=no
HAVE_XMB=no
HAVE_ZARCH=no
echo "Notice: RGUI not available, MaterialUI, XMB and ZARCH will also be disabled."
elif [ "$HAVE_OPENGL" = 'no' ] && [ "$HAVE_OPENGLES" = 'no' ] && [ "$HAVE_VULKAN" = 'no' ]; then
if [ "$OS" = 'Win32' ]; then
HAVE_SHADERPIPELINE=no
HAVE_VULKAN=no
echo "Notice: Hardware rendering context not available."
elif [ "$HAVE_CACA" = 'yes' ]; then
echo "Notice: Hardware rendering context not available."
else
2017-10-22 07:02:24 +00:00
HAVE_MATERIALUI=no
HAVE_XMB=no
HAVE_ZARCH=no
echo "Notice: Hardware rendering context not available, XMB, MaterialUI and ZARCH will also be disabled."
fi
2017-10-22 07:02:24 +00:00
fi
fi
2012-12-09 15:28:49 +00:00
check_macro NEON __ARM_NEON__
2012-06-12 20:16:16 +00:00
add_define_make OS "$OS"
2011-06-25 15:22:47 +00:00
2017-10-18 22:20:58 +00:00
if [ "$HAVE_ZLIB" = 'no' ] && [ "$HAVE_RPNG" != 'no' ]; then
2016-05-11 19:22:45 +00:00
HAVE_RPNG=no
echo "Notice: zlib is not available, RPNG will also be disabled."
fi
2017-10-18 22:20:58 +00:00
if [ "$HAVE_THREADS" = 'no' ] && [ "$HAVE_LIBUSB" != 'no' ]; then
HAVE_LIBUSB=no
echo "Notice: Threads are not available, libusb will also be disabled."
fi
2017-10-18 22:20:58 +00:00
if [ "$HAVE_V4L2" != 'no' ] && [ "$HAVE_VIDEOPROCESSOR" != 'no' ]; then
2016-07-28 18:01:38 +00:00
HAVE_VIDEO_PROCESSOR=yes
fi
# Creates config.mk and config.h.
add_define_make GLOBAL_CONFIG_DIR "$GLOBAL_CONFIG_DIR"
2017-10-26 00:16:08 +00:00
set -- $(set | grep ^HAVE_)
while [ $# -gt 0 ]; do
tmpvar="${1%=*}"
shift 1
var="${tmpvar#HAVE_}"
VARS="${VARS} $var"
done
2017-10-21 04:28:11 +00:00
create_config_make config.mk $(printf %s "$VARS")
create_config_header config.h $(printf %s "$VARS")