RetroArch/qb/config.libs.sh

527 lines
15 KiB
Bash
Raw Normal View History

check_switch '' C99 -std=gnu99 "Cannot find C99 compatible compiler."
check_switch '' NOUNUSED -Wno-unused-result
add_define MAKEFILE NOUNUSED "$HAVE_NOUNUSED"
check_switch '' NOUNUSED_VARIABLE -Wno-unused-variable
add_define MAKEFILE 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_dirs LIBRARY /usr/lib64
2011-08-24 14:12:38 +00:00
[ -z "$CROSS_COMPILE" ] && [ -d /opt/local/lib ] && add_dirs LIBRARY /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=
INCLUDES='usr/include usr/local/include'
SORT='sort'
2014-08-28 16:41:12 +00:00
2012-12-22 22:52:05 +00:00
if [ "$OS" = 'BSD' ]; then
[ -d /usr/local/include ] && add_dirs INCLUDE /usr/local/include
[ -d /usr/local/lib ] && add_dirs LIBRARY /usr/local/lib
2012-12-22 22:52:05 +00:00
DYLIB=-lc;
elif [ "$OS" = 'Haiku' ]; then
2014-08-28 16:41:12 +00:00
DYLIB=""
CLIB=-lroot
PTHREADLIB=-lroot
SOCKETLIB=-lnetwork
2017-11-27 21:22:49 +00:00
CFLAGS="$CFLAGS -D_BSD_SOURCE"
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
die 1 'Error: Cygwin is not a supported platform. See https://bot.libretro.com/docs/compilation/windows/'
elif [ "$OS" = 'SunOS' ]; then
SORT='gsort'
2012-12-22 22:52:05 +00:00
fi
add_define MAKEFILE DATA_DIR "$SHARE_DIR"
add_define MAKEFILE DYLIB_LIB "$DYLIB"
2012-12-22 22:52:05 +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 [ -z "$VC_TEST_LIBS" ]; then
[ -d /opt/vc/lib ] && add_dirs LIBRARY /opt/vc/lib /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'
INCLUDES="${INCLUDES} opt/vc/include"
# use fallback if pkgconfig is not available
if [ -z "$VC_TEST_LIBS" ]; then
[ -d /opt/vc/include ] && add_dirs INCLUDE /opt/vc/include
[ -d /opt/vc/include/interface/vcos/pthreads ] && add_dirs INCLUDE /opt/vc/include/interface/vcos/pthreads
[ -d /opt/vc/include/interface/vmcs_host/linux ] && add_dirs INCLUDE /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_dirs INCLUDE ./deps/7zip
fi
if [ "$HAVE_PRESERVE_DYLIB" = "yes" ]; then
die : 'Notice: Disabling dlclose() of shared objects for Valgrind support.'
add_define MAKEFILE 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
check_val '' EGL "-l${VC_PREFIX}EGL $EXTRA_GL_LIBS"
if [ "$HAVE_EGL" = "yes" ]; then
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
check_lib '' SSA -lass ass_library_init
2016-03-03 17:17:48 +00:00
fi
if [ "$HAVE_EXYNOS" != "no" ]; then
check_pkgconf EXYNOS libdrm_exynos
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
die : '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\"?"
add_define MAKEFILE libretro "$LIBRETRO"
2012-06-12 20:16:16 +00:00
}
2010-12-30 01:52:02 +00:00
add_define MAKEFILE ASSETS_DIR "${ASSETS_DIR:-$SHARE_DIR}/retroarch"
add_define MAKEFILE BIN_DIR "${BIN_DIR:-${PREFIX}/bin}"
add_define MAKEFILE MAN_DIR "${MAN_DIR:-${SHARE_DIR}/man}"
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
2016-10-18 00:21:51 +00:00
else
HAVE_THREAD_STORAGE=no
fi
check_lib '' DYLIB "$DYLIB" dlopen
2014-08-29 19:35:56 +00:00
fi
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
die : 'Notice: RetroArch will use legacy socket support'
fi
fi
HAVE_NETWORK_CMD=yes
HAVE_NETWORKGAMEPAD=yes
if [ "$HAVE_MINIUPNPC" = 'no' ]; then
HAVE_BUILTINMINIUPNPC=no
fi
check_lib '' MINIUPNPC '-lminiupnpc'
2012-05-27 12:23:30 +00:00
else
die : '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
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
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
die 1 'Error: Dynamic loading of libretro is enabled, but your platform does not appear to have dlopen(), use --disable-dynamic or --with-libretro="-lretro".'
fi
2011-06-25 15:15:58 +00:00
check_pkgconf ALSA alsa
2017-12-29 22:05:20 +00:00
check_val '' ALSA -lasound alsa
check_lib '' CACA -lcaca
if [ "$HAVE_OSS" != 'no' ]; then
check_header OSS sys/soundcard.h
check_header OSS_BSD soundcard.h
check_lib '' OSS_LIB -lossaudio
fi
2011-06-16 21:20:12 +00:00
2017-06-24 01:44:00 +00:00
if [ "$OS" = 'Linux' ]; then
HAVE_TINYALSA=yes
HAVE_RPILED=yes
2017-06-24 01:44:00 +00:00
fi
2012-10-11 19:00:16 +00: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-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
2011-02-04 13:42:26 +00:00
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
check_val '' JACK -ljack
2017-12-29 22:05:20 +00:00
check_val '' PULSE -lpulse
check_val '' SDL -lSDL SDL
check_val '' SDL2 -lSDL2 SDL2
2017-12-29 22:05:20 +00:00
if [ "$HAVE_SDL2" = 'yes' ] && [ "$HAVE_SDL" = 'yes' ]; then
die : 'Notice: SDL drivers will be replaced by SDL2 ones.'
HAVE_SDL=no
2014-08-10 16:35:18 +00:00
fi
2017-12-26 06:50:32 +00:00
if [ "$HAVE_FLAC" = 'no' ]; then
HAVE_BUILTINFLAC=no
fi
check_pkgconf FLAC flac
check_val '' FLAC '-lFLAC'
check_pkgconf LIBUSB libusb-1.0 1.0.13
2017-12-29 22:05:20 +00:00
check_val '' LIBUSB -lusb-1.0 libusb-1.0
2014-08-29 19:35:56 +00:00
if [ "$OS" = 'Win32' ]; then
check_lib '' DINPUT -ldinput8
check_lib '' D3D9 -ld3d9
check_lib '' DSOUND -ldsound
2014-08-29 19:35:56 +00:00
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
2018-01-29 16:48:57 +00:00
HAVE_D3D10=no
HAVE_D3D11=no
HAVE_D3D12=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"
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
2015-06-17 14:58:30 +00:00
elif [ "$OS" = 'Win32' ]; then
check_lib cxx CG '-lcg -lcgGL' cgCreateContext
2015-06-17 14:58:30 +00:00
else
# On some distros, -lCg doesn't link against -lstdc++ it seems ...
check_lib cxx CG '-lCg -lCgGL' cgCreateContext
2015-06-17 14:58:30 +00:00
fi
2016-07-30 14:37:22 +00:00
check_pkgconf OSMESA osmesa
2015-06-17 14:58:30 +00:00
else
die : 'Notice: Ignoring Cg. Desktop OpenGL is not enabled.'
2015-06-17 14:58:30 +00:00
HAVE_CG='no'
fi
2011-11-01 17:24:43 +00:00
fi
2011-08-24 14:12:38 +00:00
2017-12-27 08:32:25 +00:00
if [ "$HAVE_ZLIB" = 'no' ]; then
HAVE_BUILTINZLIB=no
elif [ "$HAVE_BUILTINZLIB" = 'yes' ]; then
HAVE_ZLIB=yes
else
check_pkgconf ZLIB zlib
check_val '' ZLIB '-lz'
fi
2010-12-30 02:02:30 +00:00
2017-12-29 22:05:20 +00:00
if [ "$HAVE_THREADS" != 'no' ] && [ "$HAVE_FFMPEG" != 'no' ]; then
check_pkgconf AVCODEC libavcodec 54
check_pkgconf AVFORMAT libavformat 54
check_pkgconf AVDEVICE libavdevice
check_pkgconf SWRESAMPLE libswresample
check_pkgconf AVRESAMPLE libavresample
check_pkgconf AVUTIL libavutil 51
check_pkgconf SWSCALE libswscale 2.1
check_val '' AVCODEC -lavcodec
check_val '' AVFORMAT -lavformat
check_val '' AVDEVICE -lavdevice
check_val '' SWRESAMPLE -lswresample
check_val '' AVRESAMPLE -lavresample
check_val '' AVUTIL -lavutil
check_val '' SWSCALE -lswscale
check_header AV_CHANNEL_LAYOUT libavutil/channel_layout.h
HAVE_FFMPEG='yes'
if [ "$HAVE_AVCODEC" = 'no' ] || [ "$HAVE_SWRESAMPLE" = 'no' ] || [ "$HAVE_AVFORMAT" = 'no' ] || [ "$HAVE_AVUTIL" = 'no' ] || [ "$HAVE_SWSCALE" = 'no' ]; then
HAVE_FFMPEG='no'
die : 'Notice: FFmpeg built-in support disabled due to missing or unsuitable packages.'
2011-11-30 16:46:58 +00:00
fi
else
die : '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
2014-08-29 19:35:56 +00:00
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
2017-12-29 22:05:20 +00:00
check_val '' GBM -lgbm
check_val '' DRM -ldrm 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
die 1 'Error: Cannot find libgbm, libdrm and EGL libraries required for KMS. Compile without --enable-kms.'
2012-09-24 23:26:22 +00:00
else
HAVE_KMS=no
fi
fi
check_pkgconf LIBXML2 libxml-2.0
2017-12-29 22:05:20 +00:00
check_val '' LIBXML2 -lxml2 libxml2
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
die : "Notice: Using custom OpenGLES CFLAGS ($OPENGLES_CFLAGS) and LDFLAGS ($OPENGLES_LIBS)."
add_define MAKEFILE OPENGLES_LIBS "$OPENGLES_LIBS"
add_define MAKEFILE 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"
add_define MAKEFILE OPENGLES_LIBS "-l${VC_PREFIX}GLESv2 $EXTRA_GL_LIBS"
fi
fi
fi
check_pkgconf VG "$VC_PREFIX"vg
check_val '' VG "-l${VC_PREFIX}OpenVG $EXTRA_GL_LIBS"
else
HAVE_VG=no
2016-09-16 22:38:35 +00:00
HAVE_OPENGLES=no
fi
check_pkgconf V4L2 libv4l2
2011-01-22 23:27:20 +00:00
check_pkgconf FREETYPE freetype2
check_pkgconf X11 x11
check_pkgconf XCB xcb
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
2017-12-29 22:05:20 +00:00
check_val '' V4L2 -lv4l2
check_val '' FREETYPE -lfreetype freetype2
check_val '' X11 -lX11
2017-12-29 22:05:20 +00:00
check_val '' XCB -lxcb
check_val '' WAYLAND '-lwayland-egl -lwayland-client'
check_val '' WAYLAND_CURSOR -lwayland-cursor
check_val '' XKBCOMMON -lxkbcommon
check_val '' XEXT -lXext
check_val '' XF86VM -lXxf86vm
2017-12-29 22:05:20 +00:00
if [ "$HAVE_X11" = 'no' ]; then
HAVE_XEXT=no; HAVE_XF86VM=no; HAVE_XINERAMA=no; HAVE_XSHM=no
fi
2012-10-12 17:05:29 +00:00
check_pkgconf XINERAMA xinerama
2017-12-29 22:05:20 +00:00
check_val '' XINERAMA -lXinerama
2012-09-29 08:47:55 +00:00
if [ "$HAVE_X11" = 'yes' ] && [ "$HAVE_XEXT" = 'yes' ] && [ "$HAVE_XF86VM" = 'yes' ]; then
check_pkgconf XVIDEO xv
2017-12-29 22:05:20 +00:00
check_val '' XVIDEO -lXv
else
die : '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
check_pkgconf UDEV libudev
check_val '' UDEV "-ludev"
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
2017-10-27 18:04:52 +00:00
if [ "$OS" != 'Win32' ] && [ "$OS" != 'Linux' ]; then
check_lib '' STRL "$CLIB" strlcpy
fi
check_lib '' STRCASESTR "$CLIB" strcasestr
check_lib '' MMAP "$CLIB" mmap
if [ "$HAVE_VULKAN" != "no" ] && [ "$OS" = 'Win32' ]; then
HAVE_VULKAN=yes
else
check_lib '' VULKAN -lvulkan vkCreateInstance
fi
2011-04-03 20:16:59 +00:00
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
die : 'Notice: RGUI not available, MaterialUI, XMB and ZARCH will also be disabled.'
2017-10-22 07:02:24 +00:00
elif [ "$HAVE_OPENGL" = 'no' ] && [ "$HAVE_OPENGLES" = 'no' ] && [ "$HAVE_VULKAN" = 'no' ]; then
if [ "$OS" = 'Win32' ]; then
HAVE_SHADERPIPELINE=no
HAVE_VULKAN=no
die : 'Notice: Hardware rendering context not available.'
2017-10-22 07:02:24 +00:00
elif [ "$HAVE_CACA" = 'yes' ]; then
die : 'Notice: Hardware rendering context not available.'
else
2017-10-22 07:02:24 +00:00
HAVE_MATERIALUI=no
HAVE_XMB=no
HAVE_ZARCH=no
die : '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__
add_define MAKEFILE 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
die : 'Notice: zlib is not available, RPNG will also be disabled.'
2016-05-11 19:22:45 +00:00
fi
2017-10-18 22:20:58 +00:00
if [ "$HAVE_THREADS" = 'no' ] && [ "$HAVE_LIBUSB" != 'no' ]; then
HAVE_LIBUSB=no
die : '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 MAKEFILE 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_}"
2017-10-26 01:03:51 +00:00
vars="${vars} $var"
2017-10-26 00:16:08 +00:00
done
VARS="$(printf %s "$vars" | tr ' ' '\n' | $SORT)"
2017-10-21 04:28:11 +00:00
create_config_make config.mk $(printf %s "$VARS")
create_config_header config.h $(printf %s "$VARS")