RetroArch/qb/config.libs.sh

513 lines
15 KiB
Bash
Raw Normal View History

2012-06-12 22:16:16 +02:00
check_switch_c C99 -std=gnu99 "Cannot find C99 compatible compiler."
2010-12-30 02:52:02 +01:00
check_switch_c NOUNUSED -Wno-unused-result
2012-06-12 22:16:16 +02:00
add_define_make NOUNUSED "$HAVE_NOUNUSED"
2013-03-16 12:24:53 +01:00
check_switch_c NOUNUSED_VARIABLE -Wno-unused-variable
add_define_make NOUNUSED_VARIABLE "$HAVE_NOUNUSED_VARIABLE"
2011-08-24 16:12:38 +02: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 16:12:38 +02:00
[ -z "$CROSS_COMPILE" ] && [ -d /opt/local/lib ] && add_library_dirs /opt/local/lib
2011-09-02 16:12:34 +02:00
[ "$GLOBAL_CONFIG_DIR" ] || \
{ case "$PREFIX" in
/usr*) GLOBAL_CONFIG_DIR=/etc ;;
*) GLOBAL_CONFIG_DIR="$PREFIX"/etc ;;
esac
}
2014-08-28 13:41:12 -03:00
DYLIB=-ldl;
CLIB=-lc
PTHREADLIB=-lpthread
SOCKETLIB=-lc
2014-10-28 22:30:12 -02:00
SOCKETHEADER=
2014-08-28 13:41:12 -03:00
2012-12-22 23:52:05 +01:00
if [ "$OS" = 'BSD' ]; then
DYLIB=-lc;
elif [ "$OS" = 'Haiku' ]; then
2014-08-28 13:41:12 -03:00
DYLIB=""
CLIB=-lroot
PTHREADLIB=-lroot
SOCKETLIB=-lnetwork
2014-08-29 16:35:56 -03:00
elif [ "$OS" = 'Win32' ]; then
SOCKETLIB=-lws2_32
2014-10-28 22:30:12 -02:00
SOCKETHEADER="#include <winsock2.h>"
2014-08-29 16:35:56 -03:00
DYLIB=
2017-01-15 16:47:27 +01: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 23:52:05 +01:00
fi
add_define_make DYLIB_LIB "$DYLIB"
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-17 00:38:35 +02: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 20:50:55 -03: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
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 21:01:19 +02:00
else
EGL_LIBS="$EGL_LIBS $EXTRA_GL_LIBS"
2014-06-17 21:01:19 +02:00
fi
fi
2017-08-19 17:03:38 +02:00
if [ "$HAVE_SSA" != "no" ]; then
check_lib '' SSA -lass ass_library_init
2016-03-03 18:17:48 +01:00
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 22:16:16 +02:00
if [ "$LIBRETRO" ]; then
2015-01-27 20:50:55 -03:00
echo "Notice: Explicit libretro used, disabling dynamic libretro loading ..."
2012-06-12 22:16:16 +02:00
HAVE_DYNAMIC='no'
else LIBRETRO="-lretro"
fi
2012-06-12 22:16:16 +02: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 22:16:16 +02:00
add_define_make libretro "$LIBRETRO"
}
2010-12-30 02:52:02 +01:00
2017-10-21 22:09:55 -07:00
[ -z "$ASSETS_DIR" ] && ASSETS_DIR="${PREFIX}/share"
add_define_make ASSETS_DIR "$ASSETS_DIR"
2016-08-27 19:44:41 -07:00
2017-10-21 22:09:55 -07:00
[ -z "$BIN_DIR" ] && BIN_DIR="${PREFIX}/bin"
add_define_make BIN_DIR "$BIN_DIR"
2016-08-26 17:29:50 -07:00
2017-10-21 22:09:55 -07:00
[ -z "$MAN_DIR" ] && MAN_DIR="${PREFIX}/share/man"
add_define_make MAN_DIR "$MAN_DIR"
2017-01-20 18:23:45 -05:00
if [ "$OS" = 'DOS' ]; then
HAVE_SHADERPIPELINE=no
HAVE_LANGEXTRA=no
fi
2014-08-29 16:35:56 -03:00
if [ "$OS" = 'Win32' ]; then
HAVE_THREADS=yes
2016-10-17 21:21:51 -03:00
HAVE_THREAD_STORAGE=yes
2014-08-29 16:35:56 -03:00
HAVE_DYLIB=yes
else
check_lib '' THREADS "$PTHREADLIB" pthread_create
2016-10-17 21:21:51 -03:00
if [ "$HAVE_THREADS" = 'yes' ]; then
check_lib '' THREAD_STORAGE "$PTHREADLIB" pthread_key_create
2016-10-17 21:21:51 -03:00
else
HAVE_THREAD_STORAGE=no
fi
check_lib '' DYLIB "$DYLIB" dlopen
2014-08-29 16:35:56 -03:00
fi
check_lib '' NETWORKING "$SOCKETLIB" socket "" "$SOCKETHEADER"
2014-10-28 22:30:12 -02:00
2015-01-27 20:49:43 -03: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-21 22:30:43 -07: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 14:23:30 +02:00
else
2015-01-27 20:50:55 -03:00
echo "Warning: All networking features have been disabled."
HAVE_KEYMAPPER='no'
2012-06-12 22:16:16 +02:00
HAVE_NETWORK_CMD='no'
HAVE_NETWORKGAMEPAD='no'
HAVE_CHEEVOS='no'
fi
check_lib '' STDIN_CMD "$CLIB" fcntl
2012-07-24 02:47:28 +02:00
if [ "$HAVE_NETWORK_CMD" = "yes" ] || [ "$HAVE_STDIN_CMD" = "yes" ]; then
HAVE_COMMAND='yes'
else
HAVE_COMMAND='no'
fi
check_lib '' GETOPT_LONG "$CLIB" getopt_long
2011-03-07 20:22:55 +01:00
2012-06-12 22:16:16 +02:00
if [ "$HAVE_DYLIB" = 'no' ] && [ "$HAVE_DYNAMIC" = 'yes' ]; then
2015-01-27 20:50:55 -03: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 17:15:58 +02:00
check_pkgconf ALSA alsa
check_lib '' CACA -lcaca
2010-12-30 02:52:02 +01:00
check_header OSS sys/soundcard.h
2011-06-16 23:20:12 +02:00
check_header OSS_BSD soundcard.h
check_lib '' OSS_LIB -lossaudio
2011-06-16 23:20:12 +02:00
2017-06-23 20:44:00 -05:00
if [ "$OS" = 'Linux' ]; then
HAVE_TINYALSA=yes
fi
2012-10-11 21:00:16 +02:00
if [ "$OS" = 'Darwin' ]; then
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
check_lib '' AL "-framework OpenAL" alcOpenDevice
2017-10-21 22:30:43 -07:00
HAVE_X11=no # X11 breaks on recent OSXes even if present.
HAVE_SDL=no
2011-02-04 07:42:26 -06:00
else
check_lib '' AL -lopenal alcOpenDevice
2011-02-04 07:42:26 -06:00
fi
check_pkgconf RSOUND rsound 1.1
2011-06-25 17:15:58 +02:00
check_pkgconf ROAR libroar
2011-03-13 18:09:27 +01:00
check_pkgconf JACK jack 0.120.1
2011-01-29 01:15:09 +01:00
check_pkgconf PULSE libpulse
check_pkgconf SDL sdl 1.2.10
check_pkgconf SDL2 sdl2 2.0.0
2010-12-30 02:52:02 +01:00
if [ "$HAVE_SDL2" = 'yes' ]; then
if [ "$HAVE_SDL2" = 'yes' ] && [ "$HAVE_SDL" = 'yes' ]; then
2015-01-27 20:50:55 -03:00
echo "Notice: SDL drivers will be replaced by SDL2 ones."
2014-08-10 13:35:18 -03:00
HAVE_SDL=no
elif [ "$HAVE_SDL2" = 'no' ]; then
2015-01-27 20:50:55 -03:00
echo "Warning: SDL2 not found, skipping."
2014-08-10 13:35:18 -03:00
HAVE_SDL2=no
fi
fi
2015-05-17 15:30:16 -07:00
check_pkgconf LIBUSB libusb-1.0 1.0.16
2014-08-29 16:35:56 -03:00
if [ "$OS" = 'Win32' ]; then
check_lib '' DINPUT -ldinput8
check_lib '' D3D9 -ld3d9
check_lib '' DSOUND -ldsound
2014-08-29 16:35:56 -03:00
if [ "$HAVE_DINPUT" != 'no' ]; then
2015-04-05 20:54:46 +02:00
HAVE_XINPUT=yes
2014-08-29 16:35:56 -03:00
fi
2017-04-09 23:53:55 +02:00
HAVE_WASAPI=yes
2014-08-29 16:35:56 -03:00
HAVE_XAUDIO=yes
2014-10-22 14:18:56 -03:00
else
HAVE_D3D9=no
2014-08-29 16:35:56 -03:00
fi
2016-09-17 00:38:35 +02:00
if [ "$HAVE_OPENGL" != 'no' ] && [ "$HAVE_OPENGLES" != 'yes' ]; then
2012-10-14 15:54:48 +02:00
if [ "$OS" = 'Darwin' ]; then
2015-06-17 11:58:30 -03:00
check_header OPENGL "OpenGL/gl.h"
check_lib '' OPENGL "-framework OpenGL"
2014-09-16 17:45:45 -03:00
elif [ "$OS" = 'Win32' ]; then
2015-06-17 11:58:30 -03:00
check_header OPENGL "GL/gl.h"
check_lib '' OPENGL -lopengl32
2012-10-14 15:54:48 +02:00
else
2015-06-16 21:25:55 -03:00
check_header OPENGL "GL/gl.h"
check_lib '' OPENGL -lGL
2012-10-14 15:54:48 +02:00
fi
2014-09-16 18:00:12 -03:00
2015-06-17 11:58:30 -03:00
if [ "$HAVE_OPENGL" = 'yes' ]; then
if [ "$OS" = 'Darwin' ]; then
check_lib '' CG "-framework Cg" cgCreateContext
2015-06-17 11:58:30 -03:00
[ "$HAVE_CG" = 'yes' ] && CG_LIBS='-framework Cg'
elif [ "$OS" = 'Win32' ]; then
check_lib cxx CG -lcg cgCreateContext
2015-06-17 11:58:30 -03:00
[ "$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
2015-06-17 11:58:30 -03:00
[ "$HAVE_CG" = 'yes' ] && CG_LIBS='-lCg -lCgGL'
fi
# fix undefined variables
PKG_CONF_USED="$PKG_CONF_USED CG"
2016-07-30 11:37:22 -03:00
check_pkgconf OSMESA osmesa
2015-06-17 11:58:30 -03:00
else
echo "Notice: Ignoring Cg. Desktop OpenGL is not enabled."
HAVE_CG='no'
fi
2011-11-01 18:24:43 +01:00
fi
2011-08-24 16:12:38 +02: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 03:02:30 +01:00
2012-06-12 22:16:16 +02:00
if [ "$HAVE_THREADS" != 'no' ]; then
if [ "$HAVE_FFMPEG" != 'no' ]; then
check_pkgconf AVCODEC libavcodec 54
check_pkgconf AVFORMAT libavformat 54
2016-08-30 17:23:48 +02:00
check_pkgconf AVDEVICE libavdevice
check_pkgconf SWRESAMPLE libswresample
2016-08-30 17:31:39 +02: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 10:46:42 -03:00
HAVE_FFMPEG='yes'
2016-08-30 18:31:42 +02:00
if [ "$HAVE_AVCODEC" = 'no' ] || [ "$HAVE_SWRESAMPLE" = 'no' ] || [ "$HAVE_AVFORMAT" = 'no' ] || [ "$HAVE_AVUTIL" = 'no' ] || [ "$HAVE_SWSCALE" = 'no' ]; then
2015-04-19 10:46:42 -03:00
HAVE_FFMPEG='no'
echo "Notice: FFmpeg built-in support disabled due to missing or unsuitable packages."
2015-04-19 10:46:42 -03:00
fi
2011-11-30 17:46:58 +01:00
fi
else
2015-01-27 20:50:55 -03:00
echo "Notice: Not building with threading support. Will skip FFmpeg."
2012-06-12 22:16:16 +02:00
HAVE_FFMPEG='no'
fi
2014-08-29 16:35:56 -03:00
if [ "$OS" != 'Win32' ]; then
check_lib '' DYNAMIC "$DYLIB" dlopen
2014-08-29 16:35:56 -03:00
fi
2010-12-30 13:54:49 +01:00
2012-09-25 01:26:22 +02:00
if [ "$HAVE_KMS" != "no" ]; then
2012-10-13 21:44:25 +02:00
check_pkgconf GBM gbm 9.0
2012-09-25 12:58:45 +02:00
check_pkgconf DRM libdrm
if [ "$HAVE_GBM" = "yes" ] && [ "$HAVE_DRM" = "yes" ] && [ "$HAVE_EGL" = "yes" ]; then
HAVE_KMS=yes
2012-09-25 01:26:22 +02:00
elif [ "$HAVE_KMS" = "yes" ]; then
2015-01-27 20:50:55 -03:00
echo "Error: Cannot find libgbm, libdrm and EGL libraries required for KMS. Compile without --enable-kms."
2012-09-25 01:26:22 +02:00
exit 1
else
HAVE_KMS=no
fi
fi
check_pkgconf LIBXML2 libxml-2.0
2012-09-25 12:58:45 +02:00
if [ "$HAVE_EGL" = "yes" ]; then
2016-09-17 00:38:35 +02: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
HAVE_OPENGLES=auto; check_lib '' OPENGLES "-l${VC_PREFIX}GLESv2 $EXTRA_GL_LIBS"
2017-10-25 23:16:09 -07:00
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
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-17 00:38:35 +02:00
HAVE_OPENGLES=no
fi
check_pkgconf V4L2 libv4l2
2011-01-23 00:27:20 +01:00
check_pkgconf FREETYPE freetype2
check_pkgconf X11 x11
2016-02-19 15:08:23 +01:00
check_pkgconf XCB xcb
[ "$HAVE_X11" = "no" ] && HAVE_XEXT=no && HAVE_XF86VM=no && HAVE_XINERAMA=no && HAVE_XSHM=no
2012-09-28 23:43:58 +02:00
check_pkgconf WAYLAND wayland-egl
2016-12-17 21:34:51 +01:00
check_pkgconf WAYLAND_CURSOR wayland-cursor
2014-05-22 16:53:33 +02: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 15:18:37 -07:00
check_pkgconf DBUS dbus-1
check_pkgconf XEXT xext
2012-09-29 10:47:55 +02:00
check_pkgconf XF86VM xxf86vm
2012-10-12 19:05:29 +02:00
check_pkgconf XINERAMA xinerama
2012-09-29 10:47:55 +02:00
if [ "$HAVE_X11" = 'yes' ] && [ "$HAVE_XEXT" = 'yes' ] && [ "$HAVE_XF86VM" = 'yes' ]; then
check_pkgconf XVIDEO xv
else
2015-01-27 20:50:55 -03:00
echo "Notice: X11, Xext or xf86vm not present. Skipping X11 code paths."
2012-09-29 10:47:55 +02:00
HAVE_X11='no'
2012-06-12 22:16:16 +02:00
HAVE_XVIDEO='no'
fi
2011-01-23 00:27:20 +01:00
2014-06-24 20:16:31 +02: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 20:16:31 +02:00
[ "$HAVE_UDEV" = "yes" ] && UDEV_LIBS=-ludev
fi
fi
2013-09-25 19:32:18 +02:00
2015-10-11 16:06:06 +02:00
check_header XSHM X11/Xlib.h X11/extensions/XShm.h
2014-10-04 22:04:38 +01:00
check_header PARPORT linux/parport.h
check_header PARPORT linux/ppdev.h
2017-10-27 11:04:52 -07:00
if [ "$OS" != 'Win32' ] && [ "$OS" != 'Linux' ]; then
check_lib '' STRL "$CLIB" strlcpy
fi
check_lib '' STRCASESTR "$CLIB" strcasestr
check_lib '' MMAP "$CLIB" mmap
check_lib '' VULKAN -lvulkan vkCreateInstance
2011-04-03 22:16:59 +02: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 00:02:24 -07: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 00:02:24 -07: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 00:02:24 -07:00
fi
fi
2012-12-09 17:28:49 +02:00
check_macro NEON __ARM_NEON__
2012-06-12 22:16:16 +02:00
add_define_make OS "$OS"
2011-06-25 17:22:47 +02:00
2017-10-18 15:20:58 -07:00
if [ "$HAVE_ZLIB" = 'no' ] && [ "$HAVE_RPNG" != 'no' ]; then
2016-05-11 21:22:45 +02:00
HAVE_RPNG=no
echo "Notice: zlib is not available, RPNG will also be disabled."
fi
2017-10-18 15:20:58 -07: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 15:20:58 -07:00
if [ "$HAVE_V4L2" != 'no' ] && [ "$HAVE_VIDEOPROCESSOR" != 'no' ]; then
2016-07-28 20:01:38 +02:00
HAVE_VIDEO_PROCESSOR=yes
fi
# Creates config.mk and config.h.
add_define_make GLOBAL_CONFIG_DIR "$GLOBAL_CONFIG_DIR"
2017-10-25 17:16:08 -07:00
set -- $(set | grep ^HAVE_)
while [ $# -gt 0 ]; do
tmpvar="${1%=*}"
shift 1
var="${tmpvar#HAVE_}"
2017-10-25 18:03:51 -07:00
vars="${vars} $var"
2017-10-25 17:16:08 -07:00
done
2017-10-25 18:03:51 -07:00
VARS="$(printf %s "$vars" | tr ' ' '\n' | sort)"
2017-10-20 21:28:11 -07:00
create_config_make config.mk $(printf %s "$VARS")
create_config_header config.h $(printf %s "$VARS")