summaryrefslogtreecommitdiffstats
path: root/aclocal/enable-rtemsbsp.m4
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2018-04-10 10:32:25 +1000
committerChris Johns <chrisj@rtems.org>2018-04-11 11:52:29 +1000
commit7ff743d54970febeedfb7d3ff1c76675c2f9dc9a (patch)
treea428492b663f195681fb1dae1d80cd015ffd915f /aclocal/enable-rtemsbsp.m4
parentfstest/fsrfsbitmap01: Update RFS bitmap tests to test fixes. (diff)
downloadrtems-7ff743d54970febeedfb7d3ff1c76675c2f9dc9a.tar.bz2
Generate an error if a BSP in the --enable-rtemsbsp list is not valid
Also generate an error if the architecure does not match the --target architecture given to configure's command line. Close #2641.
Diffstat (limited to '')
-rw-r--r--aclocal/enable-rtemsbsp.m437
1 files changed, 36 insertions, 1 deletions
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@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=""])
])