toolchain/toolchain-external: add a check for D language support
authorEric Le Bihan <eric.le.bihan.dev@free.fr>
Sat, 2 Nov 2019 18:00:51 +0000 (19:00 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Mon, 4 Nov 2019 22:04:24 +0000 (23:04 +0100)
Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
toolchain/helpers.mk
toolchain/toolchain-external/pkg-toolchain-external.mk

index 6a4f7223c82d9152cacde6b80495222c1c48d367..42e55220605a04bfcbbd9702177cd93ee5deccf8 100644 (file)
@@ -340,6 +340,24 @@ check_cplusplus = \
                exit 1 ; \
        fi
 
+#
+#
+# Check that the external toolchain supports D language
+#
+# $1: cross-gdc path
+#
+check_dlang = \
+       __CROSS_GDC=$(strip $1) ; \
+       __o=$(BUILD_DIR)/.br-toolchain-test-dlang.tmp ; \
+       printf 'import std.stdio;\nvoid main() { writeln("Hello World!"); }\n' | \
+       $${__CROSS_GDC} -x d -o $${__o} - ; \
+       if test $$? -ne 0 ; then \
+               rm -f $${__o}* ; \
+               echo "D language support is selected but is not available in external toolchain" ; \
+               exit 1 ; \
+       fi ; \
+       rm -f $${__o}* \
+
 #
 #
 # Check that the external toolchain supports Fortran
index 50cfef23f543bfa5232d60a6aee1df8d2f559be5..1c43409514313914b9fb8aa3a70c9ecfa40ee7db 100644 (file)
@@ -93,6 +93,7 @@ TOOLCHAIN_EXTERNAL_SUFFIX = \
 TOOLCHAIN_EXTERNAL_CROSS = $(TOOLCHAIN_EXTERNAL_BIN)/$(TOOLCHAIN_EXTERNAL_PREFIX)-
 TOOLCHAIN_EXTERNAL_CC = $(TOOLCHAIN_EXTERNAL_CROSS)gcc$(TOOLCHAIN_EXTERNAL_SUFFIX)
 TOOLCHAIN_EXTERNAL_CXX = $(TOOLCHAIN_EXTERNAL_CROSS)g++$(TOOLCHAIN_EXTERNAL_SUFFIX)
+TOOLCHAIN_EXTERNAL_GDC = $(TOOLCHAIN_EXTERNAL_CROSS)gdc$(TOOLCHAIN_EXTERNAL_SUFFIX)
 TOOLCHAIN_EXTERNAL_FC = $(TOOLCHAIN_EXTERNAL_CROSS)gfortran$(TOOLCHAIN_EXTERNAL_SUFFIX)
 TOOLCHAIN_EXTERNAL_READELF = $(TOOLCHAIN_EXTERNAL_CROSS)readelf
 
@@ -266,7 +267,7 @@ define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER
                *-ar|*-ranlib|*-nm) \
                        ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%..%') .; \
                        ;; \
-               *cc|*cc-*|*++|*++-*|*cpp|*-gfortran) \
+               *cc|*cc-*|*++|*++-*|*cpp|*-gfortran|*-gdc) \
                        ln -sf toolchain-wrapper $$base; \
                        ;; \
                *gdb|*gdbtui) \
@@ -551,6 +552,9 @@ define $(2)_CONFIGURE_CMDS
        if test "$$(BR2_INSTALL_LIBSTDCPP)" = "y" ; then \
                $$(call check_cplusplus,$$(TOOLCHAIN_EXTERNAL_CXX)) ; \
        fi ; \
+       if test "$$(BR2_TOOLCHAIN_HAS_DLANG)" = "y" ; then \
+               $$(call check_dlang,$$(TOOLCHAIN_EXTERNAL_GDC)) ; \
+       fi ; \
        if test "$$(BR2_TOOLCHAIN_HAS_FORTRAN)" = "y" ; then \
                $$(call check_fortran,$$(TOOLCHAIN_EXTERNAL_FC)) ; \
        fi ; \