]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sandbox: Rework how SDL is enabled / disabled
authorTom Rini <trini@konsulko.com>
Sat, 19 Nov 2022 23:45:43 +0000 (18:45 -0500)
committerTom Rini <trini@konsulko.com>
Mon, 5 Dec 2022 21:11:50 +0000 (16:11 -0500)
Given that we can use Kconfig logic directly to see if we have a program
available on the host or not, change from passing NO_SDL to instead
controlling CONFIG_SANDBOX_SDL in Kconfig directly. Introduce
CONFIG_HOST_HAS_SDL as the way to test for sdl2-config and default
CONFIG_SANDBOX_SDL on if we have that, or not.

Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
.azure-pipelines.yml
arch/sandbox/Kconfig
arch/sandbox/config.mk
doc/arch/sandbox/sandbox.rst
doc/build/tools.rst
drivers/video/Kconfig
include/configs/sandbox.h

index d02c6636ffab73643c55f124fcc9ca0ee133e1d6..add8847225f0de4cb13e9be8aa8e92b0f57a45f3 100644 (file)
@@ -30,7 +30,7 @@ stages:
           %CD:~0,2%\msys64\usr\bin\bash -lc "pacman --noconfirm --needed -Sy make gcc bison flex diffutils openssl-devel libgnutls-devel libutil-linux-devel"
         displayName: 'Install Toolchain'
       - script: |
-          echo make tools-only_defconfig tools-only NO_SDL=1 > build-tools.sh
+          echo make tools-only_defconfig tools-only > build-tools.sh
           %CD:~0,2%\msys64\usr\bin\bash -lc "bash build-tools.sh"
         displayName: 'Build Host Tools'
         env:
@@ -47,7 +47,7 @@ stages:
       - script: brew install make ossp-uuid
         displayName: Brew install dependencies
       - script: |
-          gmake tools-only_config tools-only NO_SDL=1 \
+          gmake tools-only_config tools-only \
             HOSTCFLAGS="-I/usr/local/opt/openssl@1.1/include" \
             HOSTLDFLAGS="-L/usr/local/opt/openssl@1.1/lib" \
             -j$(sysctl -n hw.logicalcpu)
index 96b3402b47c187f6e62156475f626dc49da8841e..0ce77de2fcb438a81f47e2b237fc1e0a994b4649 100644 (file)
@@ -47,6 +47,13 @@ config HOST_32BIT
 config HOST_64BIT
        def_bool $(cc-define,_LP64)
 
+config HOST_HAS_SDL
+       def_bool $(success,sdl2-config --version)
+
+config SANDBOX_SDL
+       bool "Enable SDL2 support in sandbox"
+       default HOST_HAS_SDL
+
 config SANDBOX_CRASH_RESET
        bool "Reset on crash"
        help
index 3e2c7f9ebe55d0bd533e7ff12078440eae84c0a8..1284ef390b51cab63dbe0df5e57d4058d272ba92 100644 (file)
@@ -8,9 +8,7 @@ SDL_CONFIG ?= sdl2-config
 
 # Define this to avoid linking with SDL, which requires SDL libraries
 # This can solve 'sdl-config: Command not found' errors
-ifneq ($(NO_SDL),)
-PLATFORM_CPPFLAGS += -DSANDBOX_NO_SDL
-else
+ifeq ($(CONFIG_SANDBOX_SDL),y)
 PLATFORM_LIBS += $(shell $(SDL_CONFIG) --libs)
 PLATFORM_CPPFLAGS += $(shell $(SDL_CONFIG) --cflags)
 endif
index 34c4e06d9b8dfb0358891d32339d0f24341d73e4..e6d84036516654dee08c864796895dbeed0d09b4 100644 (file)
@@ -56,11 +56,8 @@ To run sandbox U-Boot use something like::
 
 Note: If you get errors about 'sdl-config: Command not found' you may need to
 install libsdl2.0-dev or similar to get SDL support. Alternatively you can
-build sandbox without SDL (i.e. no display/keyboard support) by removing
-the CONFIG_SANDBOX_SDL line in include/configs/sandbox.h or using::
-
-   make sandbox_defconfig all NO_SDL=1
-   ./u-boot
+build sandbox without SDL (i.e. no display/keyboard support) by disabling
+CONFIG_SANDBOX_SDL in the .config file.
 
 U-Boot will start on your computer, showing a sandbox emulation of the serial
 console::
@@ -84,7 +81,7 @@ To exit, type 'poweroff' or press Ctrl-C.
 Console / LCD support
 ---------------------
 
-Assuming that CONFIG_SANDBOX_SDL is defined when building, you can run the
+Assuming that CONFIG_SANDBOX_SDL is enabled when building, you can run the
 sandbox with LCD and keyboard emulation, using something like::
 
    ./u-boot -d u-boot.dtb -l
index c06f915274173b974b3341d53e928018fd1414d1..ec0172292585e55bf0620bcc717b46ae17a8b0f3 100644 (file)
@@ -44,4 +44,4 @@ applications using a linux toolchain (gcc, bash, etc), targeting respectively
 Launch the MSYS2 shell of the MSYS2 environment, and do the following::
 
    $ make tools-only_defconfig
-   $ make tools-only NO_SDL=1
+   $ make tools-only
index c841b99bb30d319088c32cb672a0890794ffacc9..f539977d9b73a2b5a93faed629167df220138532 100644 (file)
@@ -622,7 +622,7 @@ config VIDEO_ARM_MALIDP
 
 config VIDEO_SANDBOX_SDL
        bool "Enable sandbox video console using SDL"
-       depends on SANDBOX
+       depends on SANDBOX_SDL
        help
          When using sandbox you can enable an emulated LCD display which
          appears as an SDL (Simple DirectMedia Layer) window. This is a
index 1779f1894e7afb3aa3ab38a9515ecc64794cb85f..8d9af7f088d1d0f7b326d9ce8e4c4f11b854c91b 100644 (file)
@@ -18,8 +18,4 @@
 #define CFG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
                                        115200}
 
-#ifndef SANDBOX_NO_SDL
-#define CONFIG_SANDBOX_SDL
-#endif
-
 #endif