2019-07-27 09:58:17 -07:00
# Use add_opt to set HAVE_FOO variables the first time
# example: add_opt FOO no
#
# Only needed when check_enabled ($2), check_platform, check_lib, check_pkgconf,
# check_header, check_macro and check_switch are not used.
2020-01-14 21:35:49 -08:00
check_switch '' C99 -std= gnu99 ''
if [ " $HAVE_C99 " = 'no' ] ; then
HAVE_C99 = 'auto'
check_switch '' C99 -std= c99 'Cannot find a C99 compatible compiler.'
fi
2020-01-14 20:17:15 -08:00
check_switch cxx CXX11 -std= c++11 ''
check_switch '' NOUNUSED -Wno-unused-result ''
check_switch '' NOUNUSED_VARIABLE -Wno-unused-variable ''
2012-05-01 23:00:37 +02:00
2011-08-24 16:12:38 +02:00
# There are still broken 64-bit Linux distros out there. :)
2017-11-24 09:57:07 -08:00
[ -z " $CROSS_COMPILE " ] && [ -d /usr/lib64 ] && add_dirs LIBRARY /usr/lib64
2011-08-24 16:12:38 +02:00
2017-11-24 09:57:07 -08:00
[ -z " $CROSS_COMPILE " ] && [ -d /opt/local/lib ] && add_dirs LIBRARY /opt/local/lib
2011-09-02 16:12:34 +02:00
2019-02-08 12:28:15 -08:00
[ " ${ GLOBAL_CONFIG_DIR :- } " ] ||
2018-01-20 09:26:57 -08:00
{ case " $PREFIX " in
/usr*) GLOBAL_CONFIG_DIR = /etc ; ;
*) GLOBAL_CONFIG_DIR = " $PREFIX " /etc ; ;
esac
2017-10-21 21:31:52 -07:00
}
2019-02-08 12:28:15 -08:00
DYLIB = -ldl
2014-08-28 13:41:12 -03:00
CLIB = -lc
PTHREADLIB = -lpthread
SOCKETLIB = -lc
2014-10-28 22:30:12 -02:00
SOCKETHEADER =
2018-01-01 11:28:19 -08:00
INCLUDES = 'usr/include usr/local/include'
2018-01-14 09:11:32 -08:00
SORT = 'sort'
2019-02-08 12:28:15 -08:00
EXTRA_GL_LIBS = ''
VC_PREFIX = ''
2014-08-28 13:41:12 -03:00
2012-12-22 23:52:05 +01:00
if [ " $OS " = 'BSD' ] ; then
2017-12-26 11:03:48 -08:00
[ -d /usr/local/include ] && add_dirs INCLUDE /usr/local/include
2017-12-29 16:06:04 -08:00
[ -d /usr/local/lib ] && add_dirs LIBRARY /usr/local/lib
2012-12-22 23:52:05 +01:00
DYLIB = -lc;
elif [ " $OS " = 'Haiku' ] ; then
2014-08-28 13:41:12 -03:00
DYLIB = ""
CLIB = -lroot
PTHREADLIB = -lroot
SOCKETLIB = -lnetwork
2017-11-27 22:22:49 +01:00
CFLAGS = " $CFLAGS -D_BSD_SOURCE "
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
2017-10-22 00:33:27 -07:00
die 1 'Error: Cygwin is not a supported platform. See https://bot.libretro.com/docs/compilation/windows/'
2018-01-11 14:48:43 -08:00
elif [ " $OS " = 'SunOS' ] ; then
2018-01-14 09:11:32 -08:00
SORT = 'gsort'
2012-12-22 23:52:05 +01:00
fi
2018-02-04 13:06:58 -08:00
add_define MAKEFILE DATA_DIR " $SHARE_DIR "
2017-11-23 18:22:01 -08:00
add_define MAKEFILE DYLIB_LIB " $DYLIB "
2012-12-22 23:52:05 +01:00
2017-10-27 13:01:04 -07:00
check_lib '' SYSTEMD -lsystemd sd_get_machine_names
2012-06-19 12:42:32 -04:00
2017-08-19 17:03:01 +02:00
if [ " $HAVE_VIDEOCORE " != "no" ] ; then
2017-10-04 01:52:55 +01:00
check_pkgconf VC_TEST bcm_host
# use fallback if pkgconfig is not available
2018-01-01 11:28:19 -08:00
if [ -z " $VC_TEST_LIBS " ] ; then
2017-11-24 09:57:07 -08:00
[ -d /opt/vc/lib ] && add_dirs LIBRARY /opt/vc/lib /opt/vc/lib/GL
2017-10-27 13:01:04 -07:00
check_lib '' VIDEOCORE -lbcm_host bcm_host_init "-lvcos -lvchiq_arm"
2017-10-04 01:52:55 +01:00
else
2019-07-27 09:58:17 -07:00
add_opt VIDEOCORE " $HAVE_VC_TEST "
2017-10-04 01:52:55 +01:00
fi
2017-08-19 17:03:01 +02:00
fi
2012-09-18 19:41:58 -04:00
if [ " $HAVE_VIDEOCORE " = 'yes' ] ; then
2016-09-17 00:38:35 +02:00
HAVE_OPENGLES = 'auto'
2018-01-01 11:28:19 -08:00
VC_PREFIX = 'brcm'
INCLUDES = " ${ INCLUDES } opt/vc/include "
2017-10-04 01:52:55 +01:00
# use fallback if pkgconfig is not available
2018-01-01 11:28:19 -08:00
if [ -z " $VC_TEST_LIBS " ] ; then
2017-11-24 09:57:07 -08:00
[ -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
2017-10-04 01:52:55 +01:00
EXTRA_GL_LIBS = "-lbrcmEGL -lbrcmGLESv2 -lbcm_host -lvcos -lvchiq_arm"
fi
2012-12-12 02:34:01 +02:00
fi
2014-09-02 16:39:38 +02:00
if [ " $HAVE_7ZIP " = "yes" ] ; then
2017-11-24 09:57:07 -08:00
add_dirs INCLUDE ./deps/7zip
2014-09-02 16:39:38 +02:00
fi
2014-09-02 21:12:24 +01:00
if [ " $HAVE_PRESERVE_DYLIB " = "yes" ] ; then
2017-10-22 00:33:27 -07:00
die : 'Notice: Disabling dlclose() of shared objects for Valgrind support.'
2014-09-02 21:12:24 +01:00
fi
2013-07-13 04:07:38 +02:00
if [ " $HAVE_NEON " = "yes" ] ; then
2019-01-31 12:55:07 -08:00
add_define MAKEFILE NEON_CFLAGS '-mfpu=neon -marm'
add_define MAKEFILE NEON_ASFLAGS -mfpu= neon
2013-07-13 04:07:38 +02:00
fi
2013-07-13 03:48:02 +02:00
if [ " $HAVE_FLOATHARD " = "yes" ] ; then
2019-01-31 12:55:07 -08:00
add_define MAKEFILE FLOATHARD_CFLAGS -mfloat-abi= hard
2013-07-13 03:48:02 +02:00
fi
if [ " $HAVE_FLOATSOFTFP " = "yes" ] ; then
2019-01-31 12:55:07 -08:00
add_define MAKEFILE FLOATSOFTFP_CFLAGS -mfloat-abi= softfp
2013-05-04 15:08:04 +02:00
fi
2019-12-07 10:52:14 +01:00
if [ " $HAVE_ANGLE " = 'yes' ] ; then
eval "HAVE_EGL=\"yes\""
add_dirs INCLUDE ./gfx/include/ANGLE
2019-12-07 21:00:46 +01:00
add_opt OPENGL no
add_opt OPENGLES yes
2020-01-05 21:46:19 +01:00
add_define MAKEFILE OPENGLES_LIBS "-lGLESv2"
2020-01-14 22:12:22 -08:00
case " $PLATFORM_NAME " in
MINGW32* )
add_dirs LIBRARY ./pkg/windows/x86
2020-01-05 21:46:19 +01:00
; ;
2020-01-14 22:12:22 -08:00
MINGW64* )
add_dirs LIBRARY ./pkg/windows/x86_64
2020-01-05 21:46:19 +01:00
; ;
2020-01-14 22:12:22 -08:00
esac
2019-12-07 10:52:14 +01:00
else
check_header EGL EGL/egl.h EGL/eglext.h
2020-01-14 22:12:22 -08:00
# some systems have EGL libs, but no pkgconfig
# https://github.com/linux-sunxi/sunxi-mali/pull/8
check_val '' EGL " -l ${ VC_PREFIX } EGL $EXTRA_GL_LIBS " '' " ${ VC_PREFIX } egl " '' '' true
2019-12-07 10:52:14 +01:00
fi
2019-06-08 09:08:58 -07:00
if [ " $HAVE_EGL " = 'yes' ] ; then
EGL_LIBS = " $EGL_LIBS $EXTRA_GL_LIBS "
2012-05-23 02:31:29 -04:00
fi
2019-01-30 08:34:06 -08:00
check_lib '' SSA -lass ass_library_init
2019-01-31 12:55:07 -08:00
check_lib '' SSE '-msse -msse2'
2019-01-30 08:34:06 -08:00
check_pkgconf EXYNOS libdrm_exynos
2013-11-24 17:28:21 +01:00
2012-06-12 22:16:16 +02:00
if [ " $LIBRETRO " ] ; then
2017-10-22 00:33:27 -07:00
die : 'Notice: Explicit libretro used, disabling dynamic libretro loading ...'
2019-07-27 09:58:17 -07:00
add_opt DYNAMIC no
2019-01-24 23:07:43 -08:00
else
LIBRETRO = "-lretro"
2011-11-02 16:50:34 +01:00
fi
2012-06-12 22:16:16 +02:00
[ " $HAVE_DYNAMIC " = 'yes' ] || {
2019-02-10 10:15:33 -08:00
check_lib '' RETRO " $LIBRETRO " retro_init " $DYLIB " '' '' 'Cannot find libretro, did you forget --with-libretro="-lretro"?'
2017-11-23 18:22:01 -08:00
add_define MAKEFILE libretro " $LIBRETRO "
2012-06-12 22:16:16 +02:00
}
2010-12-30 02:52:02 +01:00
2018-02-04 13:06:58 -08:00
add_define MAKEFILE ASSETS_DIR " ${ ASSETS_DIR :- $SHARE_DIR } /retroarch "
2018-01-20 00:19:01 -08:00
add_define MAKEFILE BIN_DIR " ${ BIN_DIR :- ${ PREFIX } /bin } "
2018-02-10 08:30:20 -08:00
add_define MAKEFILE DOC_DIR " ${ DOC_DIR :- ${ SHARE_DIR } /doc/retroarch } "
2018-02-04 13:06:58 -08:00
add_define MAKEFILE MAN_DIR " ${ MAN_DIR :- ${ SHARE_DIR } /man } "
2012-12-02 10:59:48 +01:00
2019-05-13 20:11:52 -07:00
check_platform DOS SHADERPIPELINE 'Shader-based pipelines are' false
check_platform DOS LANGEXTRA 'Extra languages are' false
2017-01-20 18:23:45 -05:00
2019-01-29 17:26:25 -08:00
check_lib '' THREADS " $PTHREADLIB " pthread_create
2019-01-30 11:51:21 -08:00
check_enabled THREADS THREAD_STORAGE 'Thread Local Storage' 'Threads are' false
2019-01-29 17:26:25 -08:00
check_lib '' THREAD_STORAGE " $PTHREADLIB " pthread_key_create
2019-07-12 09:25:16 -07:00
if [ " $OS " = 'Linux' ] ; then
2019-07-15 10:38:54 -04:00
check_header CDROM sys/ioctl.h scsi/sg.h
2019-07-09 14:10:00 -04:00
fi
2019-07-12 09:25:16 -07:00
check_platform 'Linux Win32' CDROM 'CD-ROM is' user
2014-08-29 16:35:56 -03:00
if [ " $OS " = 'Win32' ] ; then
2019-07-27 09:58:17 -07:00
add_opt DYLIB yes
2014-08-29 16:35:56 -03:00
else
2017-10-27 13:01:04 -07:00
check_lib '' DYLIB " $DYLIB " dlopen
2014-08-29 16:35:56 -03:00
fi
2012-01-24 21:00:30 +01:00
2017-10-27 13:01:04 -07:00
check_lib '' NETWORKING " $SOCKETLIB " socket "" " $SOCKETHEADER "
2014-10-28 22:30:12 -02:00
2019-06-08 16:16:25 -07:00
if [ " $HAVE_NETWORKING " != 'no' ] ; then
2019-07-27 09:58:17 -07:00
add_opt GETADDRINFO auto
add_opt SOCKET_LEGACY no
2015-03-20 17:40:27 -03:00
# WinXP+ implements getaddrinfo()
if [ " $OS " = 'Win32' ] ; then
HAVE_GETADDRINFO = yes
2012-01-24 21:00:30 +01:00
else
2017-10-27 13:01:04 -07:00
check_lib '' GETADDRINFO " $SOCKETLIB " getaddrinfo
2015-03-20 17:40:27 -03:00
if [ " $HAVE_GETADDRINFO " != 'yes' ] ; then
HAVE_SOCKET_LEGACY = yes
2017-10-22 00:33:27 -07:00
die : 'Notice: RetroArch will use legacy socket support'
2015-03-20 17:40:27 -03:00
fi
2012-01-24 21:00:30 +01:00
fi
2017-12-31 14:13:20 -08:00
2019-07-27 09:58:17 -07:00
add_opt NETWORK_CMD yes
2012-05-27 14:23:30 +02:00
else
2019-07-27 09:58:17 -07:00
add_opt NETWORK_CMD no
2012-01-24 21:00:30 +01:00
fi
2019-06-08 16:16:25 -07:00
check_enabled NETWORKING CHEEVOS cheevos 'Networking is' false
check_enabled NETWORKING DISCORD discord 'Networking is' false
check_enabled NETWORKING MINIUPNPC miniupnpc 'Networking is' false
check_enabled NETWORKING SSL ssl 'Networking is' false
check_enabled NETWORKING TRANSLATE OCR 'Networking is' false
2019-10-15 07:36:49 -07:00
check_enabled NETWORKING HAVE_NETPLAYDISCOVERY 'Netplay discovery' 'Networking is' false
2019-06-08 16:16:25 -07:00
check_enabled NETWORKING NETWORKGAMEPAD 'the networked game pad' 'Networking is' true
check_enabled MINIUPNPC BUILTINMINIUPNPC 'builtin miniupnpc' 'miniupnpc is' true
check_lib '' MINIUPNPC '-lminiupnpc'
2017-10-27 13:01:04 -07:00
check_lib '' STDIN_CMD " $CLIB " fcntl
2012-07-24 02:47:28 +02:00
if [ " $HAVE_NETWORK_CMD " = "yes" ] || [ " $HAVE_STDIN_CMD " = "yes" ] ; then
2019-07-27 09:58:17 -07:00
add_opt COMMAND yes
2012-07-24 02:47:28 +02:00
else
2019-07-27 09:58:17 -07:00
add_opt COMMAND no
2012-07-24 02:47:28 +02:00
fi
2017-10-27 13:01:04 -07:00
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
2017-10-22 00:33:27 -07:00
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".'
2011-11-02 16:50:34 +01:00
fi
2019-01-28 06:34:30 -08:00
check_val '' ALSA -lasound alsa alsa '' '' false
2019-07-27 00:56:38 -07:00
check_val '' CACA -lcaca '' caca '' '' false
check_val '' SIXEL -lsixel '' libsixel 1.6.0 '' false
2017-12-30 15:42:43 -08:00
2018-12-21 07:43:40 -08:00
check_macro AUDIOIO AUDIO_SETINFO sys/audioio.h
2018-12-21 14:15:30 +00:00
2017-12-30 15:42:43 -08:00
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 23:20:12 +02:00
2019-05-13 20:11:52 -07:00
check_platform Linux TINYALSA 'Tinyalsa is' true
check_platform Linux RPILED 'The RPI led driver is' true
2017-06-23 20:44:00 -05:00
2019-07-21 00:18:41 -07:00
check_platform Darwin METAL 'Metal is' true
2012-10-11 21:00:16 +02:00
if [ " $OS " = 'Darwin' ] ; then
2017-10-27 13:01:04 -07: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
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.
2013-07-17 22:38:25 +02:00
HAVE_SDL = no
2011-02-04 07:42:26 -06:00
else
2017-10-27 13:01:04 -07:00
check_lib '' AL -lopenal alcOpenDevice
2011-02-04 07:42:26 -06:00
fi
2011-02-06 23:55:17 +01:00
check_pkgconf RSOUND rsound 1.1
2019-04-18 13:49:54 -07:00
check_pkgconf ROAR libroar 1.0.12
2019-01-28 06:34:30 -08:00
check_val '' JACK -ljack '' jack 0.120.1 '' false
check_val '' PULSE -lpulse '' libpulse '' '' false
check_val '' SDL -lSDL SDL sdl 1.2.10 '' false
check_val '' SDL2 -lSDL2 SDL2 sdl2 2.0.0 '' false
2019-01-24 15:38:37 -08:00
if [ " $HAVE_SDL2 " = 'yes' ] && [ " $HAVE_SDL " = 'yes' ] ; then
die : 'Notice: SDL drivers will be replaced by SDL2 ones.'
HAVE_SDL = no
fi
2010-12-30 02:52:02 +01:00
2020-01-14 20:17:15 -08:00
check_enabled CXX11 CXX C++ 'C++11 support is' false
2019-05-13 20:11:52 -07:00
check_platform Haiku DISCORD 'Discord is' false
2019-01-30 11:51:21 -08:00
check_enabled CXX DISCORD discord 'The C++ compiler is' false
check_enabled CXX QT 'Qt companion' 'The C++ compiler is' false
2018-05-02 09:15:20 -07:00
2019-01-19 08:21:31 -08:00
if [ " $HAVE_QT " != 'no' ] ; then
2018-04-30 14:33:05 -04:00
check_pkgconf QT5CORE Qt5Core 5.2
check_pkgconf QT5GUI Qt5Gui 5.2
check_pkgconf QT5WIDGETS Qt5Widgets 5.2
2018-05-03 00:49:43 -04:00
check_pkgconf QT5CONCURRENT Qt5Concurrent 5.2
2018-08-06 20:52:47 -04:00
check_pkgconf QT5NETWORK Qt5Network 5.2
2018-04-30 14:33:05 -04:00
#check_pkgconf QT5WEBENGINE Qt5WebEngine 5.4
2019-01-17 14:35:19 -08:00
# pkg-config is needed to reliably find Qt5 libraries.
2018-04-30 14:33:05 -04:00
2019-06-04 08:14:14 -07:00
check_enabled QT5CORE QT Qt 'Qt5Core is' true
check_enabled QT5GUI QT Qt 'Qt5GUI is' true
check_enabled QT5WIDGETS QT Qt 'Qt5Widgets is' true
check_enabled QT5CONCURRENT QT Qt 'Qt5Concurrent is' true
check_enabled QT5NETWORK QT Qt 'Qt5Network is' true
#check_enabled QT5WEBENGINE QT Qt 'Qt5Webengine is' true
if [ " $HAVE_QT " != yes ] ; then
die : 'Notice: Qt support disabled, required libraries were not found.'
2018-04-30 14:33:05 -04:00
fi
2019-01-19 08:21:31 -08:00
check_pkgconf OPENSSL openssl 1.0.0
2018-04-30 14:33:05 -04:00
fi
2019-06-08 16:16:25 -07:00
check_enabled FLAC BUILTINFLAC 'builtin flac' 'flac is' true
2017-12-25 22:50:32 -08:00
2019-01-28 06:34:30 -08:00
check_val '' FLAC '-lFLAC' '' flac '' '' false
2018-01-08 18:12:53 +00:00
2019-06-08 16:16:25 -07:00
check_enabled SSL BUILTINMBEDTLS 'builtin mbedtls' 'ssl is' true
2018-12-14 13:56:58 -08:00
if [ " $HAVE_SSL " != 'no' ] ; then
check_header MBEDTLS \
mbedtls/config.h \
mbedtls/certs.h \
mbedtls/debug.h \
mbedtls/platform.h \
mbedtls/net_sockets.h \
mbedtls/ssl.h \
mbedtls/ctr_drbg.h \
mbedtls/entropy.h
check_lib '' MBEDTLS -lmbedtls
check_lib '' MBEDX509 -lmbedx509
check_lib '' MBEDCRYPTO -lmbedcrypto
if [ " $HAVE_MBEDTLS " = 'no' ] ||
[ " $HAVE_MBEDX509 " = 'no' ] ||
[ " $HAVE_MBEDCRYPTO " = 'no' ] ; then
if [ " $HAVE_BUILTINMBEDTLS " != 'yes' ] ; then
die : 'Notice: System mbedtls libraries not found, disabling SSL support.'
HAVE_SSL = no
fi
else
HAVE_SSL = yes
fi
fi
2019-01-30 11:51:21 -08:00
check_enabled THREADS LIBUSB libusb 'Threads are' false
2019-07-21 08:59:27 -07:00
check_enabled HID LIBUSB libusb 'HID is' false
2019-01-28 06:34:30 -08:00
check_val '' LIBUSB -lusb-1.0 libusb-1.0 libusb-1.0 1.0.13 '' false
2015-04-07 06:34:49 +02:00
2019-07-20 22:33:14 -07:00
check_lib '' DINPUT -ldinput8
check_lib '' D3D8 -ld3d8
check_lib '' D3D9 -ld3d9
check_lib '' DSOUND -ldsound
2014-08-29 16:35:56 -03:00
2019-07-20 22:33:14 -07:00
check_enabled DINPUT XINPUT xinput 'Dinput is' true
2019-07-19 17:53:19 +02:00
2019-07-20 22:33:14 -07:00
if [ " $HAVE_D3DX " != 'no' ] ; then
check_lib '' D3DX8 -ld3dx8
check_lib '' D3DX9 -ld3dx9
2014-08-29 16:35:56 -03:00
fi
2019-05-13 20:11:52 -07:00
check_platform Win32 D3D10 'Direct3D 10 is' true
check_platform Win32 D3D11 'Direct3D 11 is' true
check_platform Win32 D3D12 'Direct3D 12 is' true
check_platform Win32 D3DX 'Direct3DX is' true
2019-07-20 22:33:14 -07:00
check_platform Win32 WASAPI 'WASAPI is' true
check_platform Win32 XAUDIO 'XAudio is' true
check_platform Win32 WINMM 'WinMM is' true
2019-05-13 20:11:52 -07:00
2020-01-25 17:17:53 +01:00
if [ " $HAVE_BLISSBOX " != 'no' ] ; then
if [ " $HAVE_LIBUSB " != 'no' ] || [ " $OS " = 'Win32' ] ; then
add_opt BLISSBOX yes
else
add_opt BLISSBOX no
fi
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"
2017-10-27 13:01:04 -07:00
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"
2017-10-27 13:01:04 -07:00
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"
2017-10-27 13:01:04 -07:00
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
2017-11-25 15:00:01 -08:00
check_lib '' CG '-framework Cg' cgCreateContext
2015-06-17 11:58:30 -03:00
elif [ " $OS " = 'Win32' ] ; then
2017-11-25 15:00:01 -08:00
check_lib cxx CG '-lcg -lcgGL' cgCreateContext
2015-06-17 11:58:30 -03:00
else
# On some distros, -lCg doesn't link against -lstdc++ it seems ...
2017-11-25 15:00:01 -08:00
check_lib cxx CG '-lCg -lCgGL' cgCreateContext
2015-06-17 11:58:30 -03:00
fi
2016-07-30 11:37:22 -03:00
check_pkgconf OSMESA osmesa
2015-06-17 11:58:30 -03:00
fi
2019-05-13 07:44:33 -07:00
else
2019-07-27 09:58:17 -07:00
add_opt OPENGL no
2011-11-01 18:24:43 +01:00
fi
2011-08-24 16:12:38 +02:00
2019-06-08 07:18:32 -07:00
check_enabled EGL OPENGLES OpenGLES 'EGL is' false
2019-06-01 07:52:16 -07:00
check_enabled EGL OPENGLES3 OpenGLES3 'EGL is' false
2019-06-08 09:08:58 -07:00
check_enabled EGL VG OpenVG 'EGL is' false
2019-05-13 07:44:33 -07:00
check_enabled OPENGL CG Cg 'OpenGL is' false
check_enabled OPENGL OSMESA osmesa 'OpenGL is' false
check_enabled OPENGL OPENGL1 OpenGL1 'OpenGL is' false
2019-03-07 16:14:35 +01:00
if [ " $HAVE_OPENGL " = 'no' ] && [ " $HAVE_OPENGLES3 " = 'no' ] ; then
2019-05-13 07:44:33 -07:00
die : 'Notice: OpenGL and OpenGLES3 are disabled. Disabling OpenGL core.'
2019-03-02 11:53:14 +01:00
HAVE_OPENGL_CORE = 'no'
2019-05-10 14:47:36 -07:00
elif [ " $HAVE_OPENGLES " != 'no' ] && [ " $HAVE_OPENGLES3 " != 'yes' ] ; then
die : 'Notice: OpenGLES2 is enabled. Disabling the OpenGL core driver.'
HAVE_OPENGL_CORE = 'no'
fi
2019-07-21 00:36:13 -07:00
check_enabled 'OPENGL OPENGLES OPENGLES3' GLSL GLSL \
'OpenGL and OpenGLES are' false
2019-07-21 00:33:39 +02:00
2019-06-08 16:16:25 -07:00
check_enabled ZLIB BUILTINZLIB 'builtin zlib' 'zlib is' true
2010-12-30 03:02:30 +01:00
2019-06-08 16:16:25 -07:00
check_val '' ZLIB '-lz' '' zlib '' '' false
2019-01-28 06:34:30 -08:00
check_val '' MPV -lmpv '' mpv '' '' false
2018-06-20 04:29:31 +02:00
2018-12-10 20:03:03 -05:00
check_header DRMINGW exchndl.h
check_lib '' DRMINGW -lexchndl
2019-01-30 11:51:21 -08:00
check_enabled THREADS FFMPEG FFmpeg 'Threads are' false
2019-01-29 17:26:25 -08:00
2018-12-28 11:51:22 -08:00
if [ " $HAVE_FFMPEG " != 'no' ] ; then
2019-12-05 19:39:56 +01:00
check_val '' AVCODEC -lavcodec '' libavcodec 57 '' false
check_val '' AVFORMAT -lavformat '' libavformat 57 '' false
check_val '' AVDEVICE -lavdevice '' libavdevice 57 '' false
check_val '' SWRESAMPLE -lswresample '' libswresample 2 '' false
check_val '' AVUTIL -lavutil '' libavutil 55 '' false
check_val '' SWSCALE -lswscale '' libswscale 4 '' false
2017-12-29 14:05:20 -08:00
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 17:46:58 +01:00
fi
else
2012-06-12 22:16:16 +02:00
HAVE_FFMPEG = 'no'
2011-11-02 16:54:45 +01:00
fi
2014-08-29 16:35:56 -03:00
if [ " $OS " != 'Win32' ] ; then
2017-10-27 13:01:04 -07:00
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
2019-01-28 06:34:30 -08:00
check_val '' GBM -lgbm '' gbm 9.0 '' false
check_val '' DRM -ldrm libdrm libdrm '' '' false
2012-09-16 21:39:40 +02:00
fi
2012-09-18 12:16:27 +02:00
2019-05-13 08:45:24 -07:00
check_enabled DRM KMS KMS 'DRM is' true
check_enabled GBM KMS KMS 'GBM is' true
check_enabled EGL KMS KMS 'EGL is' true
2012-12-12 02:34:01 +02:00
if [ " $HAVE_EGL " = "yes" ] ; then
2016-09-17 00:38:35 +02:00
if [ " $HAVE_OPENGLES " != "no" ] ; then
2016-09-21 12:45:31 +02:00
if [ " $OPENGLES_LIBS " ] || [ " $OPENGLES_CFLAGS " ] ; then
2017-10-22 00:33:27 -07:00
die : " Notice: Using custom OpenGLES CFLAGS ( $OPENGLES_CFLAGS ) and LDFLAGS ( $OPENGLES_LIBS ). "
2017-11-23 18:22:01 -08:00
add_define MAKEFILE OPENGLES_LIBS " $OPENGLES_LIBS "
add_define MAKEFILE OPENGLES_CFLAGS " $OPENGLES_CFLAGS "
2013-12-13 17:54:28 +01:00
else
2019-02-13 07:42:21 -08:00
check_val '' OPENGLES " -l ${ VC_PREFIX } GLESv2 $EXTRA_GL_LIBS " '' " ${ VC_PREFIX } glesv2 " '' '' true
2013-12-13 17:54:28 +01:00
fi
2012-12-12 02:34:01 +02:00
fi
2019-01-28 06:34:30 -08:00
check_val '' VG " -l ${ VC_PREFIX } OpenVG $EXTRA_GL_LIBS " '' " ${ VC_PREFIX } vg " '' '' false
2012-09-18 19:41:58 -04:00
fi
2012-09-16 21:39:40 +02:00
2019-05-15 21:13:57 -07:00
check_pkgconf DBUS dbus-1
check_val '' UDEV "-ludev" '' libudev '' '' false
2019-01-28 06:34:30 -08:00
check_val '' V4L2 -lv4l2 '' libv4l2 '' '' false
check_val '' FREETYPE -lfreetype freetype2 freetype2 '' '' false
check_val '' X11 -lX11 '' x11 '' '' false
2019-05-15 21:13:57 -07:00
if [ " $HAVE_X11 " != 'no' ] ; then
2019-09-29 21:46:22 +01:00
check_val '' XCB -lxcb '' xcb '' '' false
2019-05-15 21:13:57 -07:00
check_val '' XEXT -lXext '' xext '' '' false
check_val '' XF86VM -lXxf86vm '' xxf86vm '' '' false
else
die : 'Notice: X11 not present. Skipping X11 code paths.'
fi
check_enabled X11 XINERAMA Xinerama 'X11 is' false
check_enabled X11 XSHM XShm 'X11 is' false
check_enabled X11 XRANDR Xrandr 'X11 is' false
check_enabled X11 XVIDEO XVideo 'X11 is' false
check_enabled XEXT XVIDEO XVideo 'Xext is' false
check_enabled XF86VM XVIDEO XVideo 'XF86vm is' false
check_val '' XVIDEO -lXv '' xv '' '' false
check_val '' XINERAMA -lXinerama '' xinerama '' '' false
check_lib '' XRANDR -lXrandr
check_header XSHM X11/Xlib.h X11/extensions/XShm.h
check_val '' XKBCOMMON -lxkbcommon '' xkbcommon 0.3.2 '' false
2019-01-28 06:34:30 -08:00
check_val '' WAYLAND '-lwayland-egl -lwayland-client' '' wayland-egl 10.1.0 '' false
check_val '' WAYLAND_CURSOR -lwayland-cursor '' wayland-cursor 1.12 '' false
2018-12-05 22:51:07 +04:00
check_pkgconf WAYLAND_PROTOS wayland-protocols 1.15
2019-01-25 14:10:14 -08:00
check_pkgconf WAYLAND_SCANNER wayland-scanner '1.15 1.12'
2017-12-30 08:08:08 -08:00
2019-02-10 13:37:08 -08:00
if [ " $HAVE_WAYLAND_SCANNER " = yes ] &&
2019-02-08 19:12:42 -08:00
[ " $HAVE_WAYLAND_CURSOR " = yes ] &&
2019-01-25 14:10:14 -08:00
[ " $HAVE_WAYLAND " = yes ] ; then
2019-02-10 13:37:08 -08:00
./gfx/common/wayland/generate_wayland_protos.sh \
-c " $WAYLAND_SCANNER_VERSION " \
-p " $HAVE_WAYLAND_PROTOS " \
-s " $SHARE_DIR " ||
die 1 'Error: Failed generating wayland protocols.'
2018-11-17 16:01:51 +04:00
else
2019-01-25 14:10:14 -08:00
die : 'Notice: wayland libraries not found, disabling wayland support.'
2018-11-17 16:01:51 +04:00
HAVE_WAYLAND = 'no'
fi
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
2017-10-27 13:01:04 -07:00
check_lib '' STRL " $CLIB " strlcpy
2015-09-05 14:14:10 +02:00
fi
2017-12-30 08:08:08 -08:00
2017-10-27 13:01:04 -07:00
check_lib '' STRCASESTR " $CLIB " strcasestr
check_lib '' MMAP " $CLIB " mmap
2018-01-01 10:09:17 -08:00
2019-01-30 11:51:21 -08:00
check_enabled CXX VULKAN vulkan 'The C++ compiler is' false
2019-03-09 12:42:23 +01:00
check_enabled CXX OPENGL_CORE 'OpenGL core' 'The C++ compiler is' false
2019-01-30 11:51:21 -08:00
check_enabled THREADS VULKAN vulkan 'Threads are' false
2018-05-02 09:15:20 -07:00
2018-01-01 10:09:17 -08:00
if [ " $HAVE_VULKAN " != "no" ] && [ " $OS " = 'Win32' ] ; then
HAVE_VULKAN = yes
else
check_lib '' VULKAN -lvulkan vkCreateInstance
fi
2011-04-03 22:16:59 +02:00
2019-01-06 14:30:50 -08:00
if [ " $HAVE_MENU " != 'no' ] ; then
2019-07-20 15:05:06 +02:00
if [ " $HAVE_OPENGL " = 'no' ] &&
[ " $HAVE_OPENGL1 " = 'no' ] &&
[ " $HAVE_OPENGLES " = 'no' ] &&
[ " $HAVE_OPENGL_CORE " = 'no' ] &&
[ " $HAVE_VULKAN " = 'no' ] &&
[ " $HAVE_D3D10 " = 'no' ] &&
[ " $HAVE_D3D11 " = 'no' ] &&
[ " $HAVE_D3D12 " = 'no' ] &&
[ " $HAVE_METAL " = 'no' ] ; then
2017-10-22 00:02:24 -07:00
if [ " $OS " = 'Win32' ] ; then
HAVE_SHADERPIPELINE = no
HAVE_VULKAN = no
2017-01-16 16:53:19 -05:00
else
2019-01-06 22:13:15 -08:00
if [ " $HAVE_CACA " != 'yes' ] && [ " $HAVE_SIXEL " != 'yes' ] &&
[ " $HAVE_SDL " != 'yes' ] && [ " $HAVE_SDL2 " != 'yes' ] ; then
2019-07-27 09:58:17 -07:00
add_opt RGUI no
2019-01-06 22:13:15 -08:00
fi
2019-07-27 09:58:17 -07:00
add_opt MATERIALUI no
add_opt OZONE no
add_opt XMB no
add_opt STRIPES no
add_opt MENU_WIDGETS no
2017-01-16 16:53:19 -05:00
fi
2019-01-06 22:13:15 -08:00
die : 'Notice: Hardware rendering context not available.'
2017-10-22 00:02:24 -07:00
fi
2015-06-26 11:55:06 -03:00
fi
2019-11-18 08:04:29 +01:00
if [ " $HAVE_STEAM " = 'yes' ] ; then
add_opt ONLINE_UPDATER no
2019-12-18 18:13:05 +01:00
add_opt UPDATE_CORES no
2019-11-18 08:04:29 +01:00
die : 'Notice: Steam build enabled, disabling online updater as well.'
fi
2019-07-20 23:23:39 -07:00
check_enabled CXX SLANG slang 'The C++ compiler is' false
check_enabled CXX GLSLANG glslang 'The C++ compiler is' false
check_enabled CXX SPIRV_CROSS SPIRV-Cross 'The C++ compiler is' false
check_enabled SLANG GLSLANG glslang 'slang is' false
check_enabled SLANG SPIRV_CROSS SPIRV-Cross 'slang is' false
check_enabled SLANG OPENGL_CORE 'OpenGL core' 'slang is' false
check_enabled SLANG VULKAN vulkan 'slang is' false
2019-07-21 15:06:20 -07:00
check_enabled SLANG METAL metal 'slang is' false
2019-07-20 23:23:39 -07:00
check_enabled GLSLANG SLANG slang 'glslang is' false
check_enabled GLSLANG SPIRV_CROSS SPIRV-Cross 'glslang is' false
check_enabled GLSLANG OPENGL_CORE 'OpenGL core' 'glslang is' false
check_enabled GLSLANG VULKAN vulkan 'glslang is' false
2019-07-21 15:06:20 -07:00
check_enabled GLSLANG METAL metal 'glslang is' false
2019-07-20 23:23:39 -07:00
check_enabled SPIRV_CROSS SLANG slang 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS GLSLANG glslang 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS OPENGL_CORE 'OpenGL core' 'SPIRV-Cross is' false
check_enabled SPIRV_CROSS VULKAN vulkan 'SPIRV-Cross is' false
2019-07-21 15:06:20 -07:00
check_enabled SPIRV_CROSS METAL metal 'SPIRV-Cross is' false
check_enabled 'OPENGL_CORE METAL VULKAN' SLANG slang '' user
check_enabled 'OPENGL_CORE METAL VULKAN' GLSLANG glslang '' user
check_enabled 'OPENGL_CORE METAL VULKAN' SPIRV_CROSS SPIRV-Cross '' user
2019-07-20 13:52:18 +02:00
2012-12-09 17:28:49 +02:00
check_macro NEON __ARM_NEON__
2017-11-23 18:22:01 -08:00
add_define MAKEFILE OS " $OS "
2011-06-25 17:22:47 +02:00
2019-01-22 09:02:48 -08:00
if [ " $HAVE_DEBUG " = 'yes' ] ; then
add_define MAKEFILE DEBUG 1
if [ " $HAVE_OPENGL " = 'yes' ] ||
2019-02-08 19:12:42 -08:00
[ " $HAVE_OPENGL1 " = 'yes' ] ||
2019-01-22 09:02:48 -08:00
[ " $HAVE_OPENGLES " = 'yes' ] ||
[ " $HAVE_OPENGLES3 " = 'yes' ] ; then
add_define MAKEFILE GL_DEBUG 1
fi
if [ " $HAVE_VULKAN " = 'yes' ] ; then
add_define MAKEFILE VULKAN_DEBUG 1
fi
fi
2019-05-04 08:23:17 -07:00
check_enabled MENU MENU_WIDGETS 'menu widgets' 'The menu is' false
2019-06-19 22:19:30 -07:00
check_enabled 'ZLIB BUILTINZLIB' RPNG RPNG 'zlib is' false
2019-01-30 11:51:21 -08:00
check_enabled V4L2 VIDEOPROCESSOR 'video processor' 'Video4linux2 is' true