[PATCH] Generate an error if a BSP in the --enable-rtemsbsp list is not valid

Chris Johns chrisj at rtems.org
Tue Apr 10 00:38:30 UTC 2018


Also generate an error if the architecure does not match the --target
architecture given to configure's command line.

Close #2641.
---
 aclocal/enable-rtemsbsp.m4            | 37 ++++++++++++++++++++++++++++++++++-
 c/src/aclocal/enable-rtemsbsp.m4      | 13 ------------
 testsuites/aclocal/enable-rtemsbsp.m4 | 14 -------------
 3 files changed, 36 insertions(+), 28 deletions(-)
 delete mode 100644 c/src/aclocal/enable-rtemsbsp.m4
 delete mode 100644 testsuites/aclocal/enable-rtemsbsp.m4

diff --git a/aclocal/enable-rtemsbsp.m4 b/aclocal/enable-rtemsbsp.m4
index 718275e1df..a6406c315b 100644
--- a/aclocal/enable-rtemsbsp.m4
+++ b/aclocal/enable-rtemsbsp.m4
@@ -10,6 +10,41 @@ AC_ARG_ENABLE(rtemsbsp,
 [case "${enable_rtemsbsp}" in
   yes ) enable_rtemsbsp="" ;;
   no ) enable_rtemsbsp="no" ;;
-  *) enable_rtemsbsp="$enable_rtemsbsp" ;;
+  *) enable_rtemsbsp="$enable_rtemsbsp"
+     srctop=${srcdir}
+     while test x${srctop} != x/
+     do
+       if test -d ${srctop}/cpukit -a -d ${srctop}/c/src/lib/libbsp; then
+         break
+       fi
+       srctop=$(dirname ${srctop})
+     done
+     if test x${srctop} = x/; then
+       AC_MSG_ERROR([Cannot find the top of source tree, please report to devel at rtems.org])
+     fi
+     target_arch=$(echo ${target_alias} | sed -e "s/\-.*//g")
+     libbsp=${srctop}/c/src/lib/libbsp
+     libbsp_e=$(echo ${libbsp} | sed -e 's/\//\\\//g')
+     cfg_list=$(LANG=C LC_COLLATE=C find ${libbsp} -mindepth 5 -name \*.cfg)
+     for bsp in ${enable_rtemsbsp};
+     do
+       found=no
+       for bsp_path in ${cfg_list};
+       do
+         cfg_bsp=$(echo ${bsp_path} | sed -e "s/.*\///" -e 's/\.cfg//')
+         if test x$bsp = x$cfg_bsp; then
+           cfg_arch=$(echo ${bsp_path} | sed -e "s/${libbsp_e}*\///" -e 's/\/.*//')
+           if test x${target_arch} != x${cfg_arch}; then
+             AC_MSG_ERROR([BSP '$bsp' architecture does not match the --target architecture, run 'rtems-bsp' (in the top of the source tree) for a valid BSP list])
+           fi
+           found=yes
+           break
+         fi
+       done
+       if test $found = no; then
+         AC_MSG_ERROR([BSP '$bsp' not found, run 'rtems-bsp' (in the top of the source tree) for a valid BSP list])
+       fi
+     done
+     ;;
 esac],[enable_rtemsbsp=""])
 ])
diff --git a/c/src/aclocal/enable-rtemsbsp.m4 b/c/src/aclocal/enable-rtemsbsp.m4
deleted file mode 100644
index 91c14a9926..0000000000
--- a/c/src/aclocal/enable-rtemsbsp.m4
+++ /dev/null
@@ -1,13 +0,0 @@
-dnl Override the set of BSPs to be built.
-dnl used by the toplevel configure script
-dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
-AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
-[
-AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
-AC_ARG_ENABLE(rtemsbsp,
-[AS_HELP_STRING(--enable-rtemsbsp="bsp1 bsp2 ..",BSPs to include in build)],
-[case "${enableval}" in
-  yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp="bsp1 bsp2"]);;
-  *) $1=$enableval;;
-esac],[$1=""])
-])
diff --git a/testsuites/aclocal/enable-rtemsbsp.m4 b/testsuites/aclocal/enable-rtemsbsp.m4
deleted file mode 100644
index 60f37ec573..0000000000
--- a/testsuites/aclocal/enable-rtemsbsp.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-dnl Override the set of BSPs to be built.
-dnl used by the toplevel configure script
-dnl RTEMS_ENABLE_RTEMSBSP(rtems_bsp_list)
-AC_DEFUN([RTEMS_ENABLE_RTEMSBSP],
-[
-AC_BEFORE([$0], [RTEMS_ENV_RTEMSBSP])
-AC_ARG_ENABLE(rtemsbsp,
-[AS_HELP_STRING([--enable-rtemsbsp="bsp1 bsp2 .."],
-[BSPs to include in build])],
-[case "${enableval}" in
-  yes|no) AC_MSG_ERROR([missing argument to --enable-rtemsbsp="bsp1 bsp2"]);;
-  *) $1=$enableval;;
-esac],[$1=""])
-])
-- 
2.15.1



More information about the devel mailing list