summaryrefslogtreecommitdiffstats
path: root/m4/rtems-setup-recurse.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/rtems-setup-recurse.m4')
-rw-r--r--m4/rtems-setup-recurse.m4224
1 files changed, 0 insertions, 224 deletions
diff --git a/m4/rtems-setup-recurse.m4 b/m4/rtems-setup-recurse.m4
deleted file mode 100644
index e3f39ec..0000000
--- a/m4/rtems-setup-recurse.m4
+++ /dev/null
@@ -1,224 +0,0 @@
-# This macro assembles a list of RTEMS CPUs and if the list
-# contains more than one member then it creates a build subdirectory
-# for each CPU architecture, 'chdirs' into the subdirectory and recursively
-# configures for the CPU.
-#
-# Several options affect the behavior of this macro:
-#
-# --with-rtems-top
-# --host
-# --enable-rtemsbsp
-#
-# 1) if --with-rtems-top is NOT given (NOT RTEMS) OR if
-# --host=<xyz>-rtems was given (RTEMS CPU defined by user)
-# THEN the macro does nothing.
-#
-# 2) ELSE (--with-rtems-top given but --host is NOT *rtems*
-# i) assemble a list of all '<cpu>-rtems*' subdirectories
-# under ${with_rtems_top}
-#
-# ii) if --enable-rtemsbsp was given then remove CPU
-# architectures not being required by any of the listed
-# BSPS.
-#
-# iii) for each remaining CPU architecture create a subdirectory,
-# chdir there and recursively call 'configure' again with
-# the original arguments but --host=<cpu>-rtems appended.
-#
-# Note: this macro should not be used directly. It is expanded from
-# TILLAC_RTEMS_SETUP
-#
-# TILLAC_RTEMS_CONFIG_CPUS_RECURSIVE
-AC_DEFUN([TILLAC_RTEMS_CONFIG_CPUS_RECURSIVE],
- [if test ! "${with_rtems_top+set}" = "set" || TILLAC_RTEMS_HOSTOS_IS_RTEMS ; then : ; else
- # with_rtems_top is set but host_os is not *rtems*, i.e.,
- # we have to figure out a list of CPUs/arches that are installed.
- AC_MSG_CHECKING([for all installed CPUs/architectures])
- _tillac_rtems_cpulist="`(cd $with_rtems_top; ls -d *-rtems* | tr '\n\r' ' ')`"
- AC_MSG_RESULT([Found: $_tillac_rtems_cpulist])
- # if 'enable-rtemsbsp' was given then filter away
- # architectures that match none of the BSPs
- if test "${enable_rtemsbsp+set}" = "set" ; then
- # convert space separated list into ORed (|) pattern
- _tillac_rtems_bspfilt=`echo "$enable_rtemsbsp" | sed -e 's/[[ \t]]\+/|/g'`
- AC_MSG_NOTICE([Filtering CPU/architecture list against bsps: $_tillac_rtems_bspfilt])
- _tillac_rtems_cpuall="$_tillac_rtems_cpulist"
- _tillac_rtems_cpulist=""
- AC_MSG_CHECKING([CPU/architectures matching requested BSPs])
- for _tillac_rtems_cpucand in $_tillac_rtems_cpuall ; do
- # look for directories which have a 'Makefile.inc'
- for _tillac_rtems_bspcand in `(cd $with_rtems_top/$_tillac_rtems_cpucand ; ls */Makefile.inc | tr '\n\r' ' ')` ; do
- AC_MSG_NOTICE([testing $_tillac_rtems_bspcand])
- # reduce to bsp name
- _tillac_rtems_bspcand=`dirname $_tillac_rtems_bspcand`
- if eval "case `echo $_tillac_rtems_bspcand` in $_tillac_rtems_bspfilt) : ;; *) false ;; esac" ; then
- # only add candidate to list of cpus if not already there
- if test -z "$_tillac_rtems_cpulist" ; then
- _tillac_rtems_cpulist="$_tillac_rtems_cpucand"
- else
- _tillac_rtems_cpufilt=`echo "$_tillac_rtems_cpulist" | sed -e 's/[[ \t]]\+/|/g'`
- if eval "case `echo $_tillac_rtems_cpucand` in $_tillac_rtems_cpufilt) false ;; *) : ;; esac" ; then
- _tillac_rtems_cpulist="$_tillac_rtems_cpulist $_tillac_rtems_cpucand"
- fi
- fi
- fi
- done
- done
- AC_MSG_RESULT([found: $_tillac_rtems_cpulist])
- fi
- if test "$_tillac_rtems_cpulist"xx = "xx" ; then
- AC_MSG_ERROR([No RTEMS architectures found])
- fi
- # Create directory and configure
- for _tillac_rtems_cpucand in $_tillac_rtems_cpulist ; do
- if test -d $_tillac_rtems_cpucand || mkdir $_tillac_rtems_cpucand ; then : ; else
- AC_MSG_ERROR([Unable to create subdirectory $_tillac_rtems_cpucand])
- fi
- TILLAC_RTEMS_TRIM_CONFIG_DIR(_tillac_rtems_config_dir)
- # SUB-CONFIGURE
- AC_MSG_NOTICE([Running $_tillac_rtems_config_dir/[$]0 "$ac_configure_args --host=$_tillac_rtems_cpucand" in "'$_tillac_rtems_cpucand'" subdir])
- eval \( cd $_tillac_rtems_cpucand \; $SHELL $_tillac_rtems_config_dir/"[$]0" $ac_configure_args --host=$_tillac_rtems_cpucand \)
- done
- AC_MSG_NOTICE([Creating cpu/arch level makefile])
- AC_SUBST(the_subdirs,[$_tillac_rtems_cpulist])
- AC_SUBST(the_distsub,['$(firstword '"$_tillac_rtems_cpulist"')'])
- _tillac_rtems_recursing=yes
- false
- fi]dnl
-)
-
-# This macro
-#
-# - removes --enable-rtemsbsp options from the current commandline
-# - for each BSP listed in '${enable_rtemsbsp}'
-# i) creates a BSP subdirectory in the build tree
-# ii) chdirs into the subdirectory
-# iii) figures out a few BSP-specific build settings
-# (cflags, gcc specs, ...)
-# iv) configures for the BSP passing the properties determined
-# under iii) along to 'configure' on the commandline.
-# Also, --enable-rtemsbsp=<this_bsp> is appended to the
-# configure commandline.
-#
-# Note: this macro should not be used directly. It is expanded from
-# TILLAC_RTEMS_SETUP
-#
-# TILLAC_RTEMS_CONFIG_BSPS_RECURSIVE
-AC_DEFUN([TILLAC_RTEMS_CONFIG_BSPS_RECURSIVE],
- [if test ! "${RTEMS_TILL_MAKEVARS_SET}" = "YES"; then
- # strip all --enable-rtemsbsp options from original
- # commandline
- AC_MSG_NOTICE([Stripping --enable-rtemsbsp option(s) from commandline])
- _tillac_rtems_config_args=""
- eval for _tillac_rtems_arg in $ac_configure_args \; do case \$_tillac_rtems_arg in --enable-rtemsbsp\* \) \;\; \*\) _tillac_rtems_config_args=\"\$_tillac_rtems_config_args \'\$_tillac_rtems_arg\'\" \;\; esac done
- AC_MSG_NOTICE([Commandline now: $_tillac_rtems_config_args])
-
- AC_MSG_NOTICE([Creating BSP subdirectories and sub-configuring])
- TILLAC_RTEMS_SAVE_MAKEVARS
- for _tillac_rtems_bsp in $enable_rtemsbsp ; do
- if test ! -d $_tillac_rtems_bsp ; then
- AC_MSG_CHECKING([Creating $_tillac_rtems_bsp])
- if mkdir $_tillac_rtems_bsp ; then
- AC_MSG_RESULT([OK])
- else
- AC_MSG_ERROR([Failed])
- fi
- fi
- TILLAC_RTEMS_TRIM_CONFIG_DIR(_tillac_rtems_config_dir)
- TILLAC_RTEMS_RESET_MAKEVARS
- TILLAC_RTEMS_MAKEVARS(${host_cpu}-${host_os},$_tillac_rtems_bsp)
- tillac_rtems_cppflags="$tillac_rtems_cppflags -I$with_rtems_top/${host_cpu}-${host_os}/$_tillac_rtems_bsp/lib/include"
- TILLAC_RTEMS_EXPORT_MAKEVARS(${host_cpu}-${host_os},$_tillac_rtems_bsp)
- AC_MSG_NOTICE([Running $_tillac_rtems_config_dir/[$]0 $_tillac_rtems_config_args --enable-rtemsbsp=$_tillac_rtems_bsp in $_tillac_rtems_bsp subdir])
- eval \( cd $_tillac_rtems_bsp \; $SHELL $_tillac_rtems_config_dir/"[$]0" $_tillac_rtems_config_args --enable-rtemsbsp=$_tillac_rtems_bsp \)
- done
- TILLAC_RTEMS_RESET_MAKEVARS
- AC_MSG_NOTICE([Creating toplevel makefile])
- AC_SUBST(the_subdirs,[$enable_rtemsbsp])
- AC_SUBST(the_distsub,['$(firstword '"$enable_rtemsbsp"')'])
- fi]dnl
-)
-
-# Grand Master Macro for RTEMS configuration.
-#
-# This sets up most things for a RTEMS configuration
-# for multiple CPU-arches and BSPs.
-#
-# A package may add the optional (literal) argument
-# 'domultilib'. In this case, multilib support is enabled
-# and the user may configure with '--enable-multilib'.
-# Note that the package must properly support multilibs!
-#
-# If the host system is not RTEMS (no with-rtems-top given)
-# then this macro does *nothing*.
-#
-# TILLAC_RTEMS_SETUP([domultilib])
-AC_DEFUN([TILLAC_RTEMS_SETUP],
- [AC_REQUIRE([TILLAC_RTEMS_OPTIONS])dnl
- AM_CONDITIONAL(OS_IS_RTEMS,[TILLAC_RTEMS_OS_IS_RTEMS])
- if TILLAC_RTEMS_CONFIG_CPUS_RECURSIVE ; then
- m4_if($1,domultilib,
- [TILLAC_RTEMS_MULTILIB([Makefile],[.])],
- [AC_REQUIRE([TILLAC_RTEMS_OPTIONS])dnl
- if test "${enable_multilib}" = "yes" ; then
- AC_MSG_ERROR(["multilibs not supported, sorry"])
- fi]dnl
- )
- if TILLAC_RTEMS_OS_IS_RTEMS ; then
- TILLAC_RTEMS_CHECK_TOP
- AC_ARG_VAR([RTEMS_TILL_MAKEVARS_SET],[Internal use; do NOT set in environment nor on commandline])
- AC_ARG_VAR([DOWNEXT],[extension of downloadable binary (if applicable)])
- AC_ARG_VAR([APPEXEEXT], [extension of linked binary])
- AC_ARG_VAR([RTEMS_BSP_FAMILY],[Internal use; do NOT set in environment nor on commandline])
- AC_ARG_VAR([RTEMS_BSP_INSTTOP],[Internal use; do NOT set in environment nor on commandline])
- if test "$1" = "domultilib" && test "$enable_multilib" = "yes" ; then
- if test "${enable_rtemsbsp+set}" = "set" ; then
- AC_MSG_ERROR([Cannot --enable-rtemsbsp AND --enable-multilib; build either multilibs or for particular BSP(s)])
- fi
- TILLAC_RTEMS_EXPORT_MAKEVARS(${host_cpu}-${host_os},)
- else
- TILLAC_RTEMS_CHECK_BSPS
- fi
- if test ! "${RTEMS_TILL_MAKEVARS_SET}" = "YES"; then
- TILLAC_RTEMS_CONFIG_BSPS_RECURSIVE(makefile)
- _tillac_rtems_recursing=yes
- else
- TILLAC_RTEMS_FIXUP_PREFIXES
-dnl set those in the configure script so that 'configure' uses these settings when trying to compile stuff
-dnl AC_SUBST(rtems_gccspecs, [$tillac_rtems_gccspecs])
-dnl AC_SUBST(rtems_cpu_cflags, [$tillac_rtems_cpu_cflags])
-dnl AC_SUBST(rtems_cpu_asflags,["$tillac_rtems_cpu_asflags -DASM"])
-dnl AC_SUBST(rtems_cppflags, [$tillac_rtems_cppflags])
- AC_SUBST(rtems_bsp, [$enable_rtemsbsp])
- AC_MSG_NOTICE([Setting DOWNEXT to .ralf])
- DOWNEXT=.ralf
- AC_MSG_NOTICE([Setting APPEXEEXT to .exe])
- APPEXEEXT=.exe
- TILLAC_RTEMS_VERSTEST
- fi
- fi
- fi
- if test "${_tillac_rtems_recursing}" = "yes" ; then
- AC_CONFIG_FILES([makefile:makefile.top.in])
- AC_OUTPUT
- exit 0
- false
- fi]dnl
-)
-
-dnl m4_syscmd is executed when aclocal is run
-m4_syscmd([cat - > makefile.top.am <<'EOF_'
-AUTOMAKE_OPTIONS=foreign
-SUBDIRS=@the_subdirs@
-# When making a distribution we only want to
-# recurse into (any) one single BSP subdir.
-DIST_SUBDIRS=@the_distsub@
-
-# The dist-hook then removes this extra
-# directory level again.
-dist-hook:
- if test "$(PACKAGE_VERSION)" = "untagged" ; then echo "Need tagged version to cut distribution"; exit 1; fi
- cp -frl $(distdir)/$(DIST_SUBDIRS)/* $(distdir)
- rm -fr $(distdir)/$(DIST_SUBDIRS)
-EOF_
-])