summaryrefslogblamecommitdiffstats
path: root/aclocal/target.m4
blob: a81eb551ae0c67f90ba57f257411fc0b8e0f0172 (plain) (tree)
1
2
3
4
5
6
7
8
9

        


                                                                        

                                               

  
                                                 

                                       
 


                                                           
                                    
                                                  
                               




                                                                      
             
                                            

                                  

              
                                  

                                                                   
                              



                                                                                 
                          

                                                                     


                 

                                                                   


        
                                                  

                                                                    
                                                


              
                                             
 
                                          


                                        

                                       
                          



                                                                                                                                               



                                             

            
                                                                      


        
                       
      


                                          
                                         
  



                                                                






























































                                                                            
dnl $Id$

## HACK: Work-around to structural issue with RTEMS
## The macros below violate most autoconf and canonicalization standards
AC_DEFUN(RTEMS_CONFIG_BUILD_SUBDIRS,
[AC_REQUIRE([_RTEMS_OUTPUT_BUILD_SUBDIRS])
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS [$1]"
])

dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
AC_DEFUN([_RTEMS_OUTPUT_BUILD_SUBDIRS],
[AC_CONFIG_COMMANDS([bsp-tools],
[
# HACK: This is a blantant hack and breaks Canadian crosses
build_alias="$build_alias"
host_alias="$build_alias"
if test "$no_recursion" != yes; then
  if test x"$build_alias" != x"$host_alias"; then 
    target_subdir="$host_alias"
  else
    target_subdir="."
  fi
  # Remove --cache-file and --srcdir arguments so they do not pile up.
  ac_sub_configure_args=
  rtems_prev=
  for rtems_arg in $rtems_configure_args; do
    if test -n "$rtems_prev"; then
      rtems_prev=
      continue
    fi
    case `eval echo $rtems_arg` in
    -cache-file | --cache-file | --cache-fil | --cache-fi \
    | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
      rtems_prev=cache_file ;;
    -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
    | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
      ;;
    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
      rtems_prev=srcdir ;;
    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
      ;;
    --target*) ;;
    --build*) ;;
    --host*) ;;
    *_alias* ) ;; # HACK: Workaround to autoconf passing *_alias
    *) ac_sub_configure_args="$ac_sub_configure_args $rtems_arg" ;;
    esac
  done

  for rtems_config_dir in $RTEMS_BUILD_SUBDIRS; do
    # Do not complain, so a configure script can configure whichever
    # parts of a large source tree are present.
    if test ! -d $srcdir/$rtems_config_dir; then
      continue
    fi

    _RTEMS_PUSH_BUILDDIR([$rtems_config_dir])

    _RTEMS_SUB_SRCDIR([$rtems_config_dir])

    # The recursion is here.
    if test -n "$ac_sub_configure"; then
#      ac_sub_cache_file=./config.cache
      ac_sub_cache_file=/dev/null
      _RTEMS_GIVEN_INSTALL

      echo "[running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file] --srcdir=$ac_sub_srcdir"
      # The eval makes quoting arguments work.
      if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure \
	$ac_sub_configure_args \
	--srcdir=$ac_sub_srcdir \
	--with-target-subdir=$target_subdir \
        --cache-file=$ac_sub_cache_file 
      then :
      else
        AC_MSG_ERROR([$ac_sub_configure failed for $rtems_config_dir])
      fi
    fi

    _RTEMS_POP_BUILDDIR
  done
fi],
[
RTEMS_BUILD_SUBDIRS="$RTEMS_BUILD_SUBDIRS"
rtems_configure_args="$ac_configure_args"
])
])

## FIXME: This is obsolete. Only kept for backward compatibility
AU_DEFUN([RTEMS_OUTPUT_BUILD_SUBDIRS],[])


dnl
dnl Misc utility macros for subdir handling to work around missing abilities
dnl in autoconf, automake and structural issues with RTEMS
dnl
dnl Contains parts derived from autoconf-2.13 AC_OUTPUT_SUBDIRS and Cygnus'
dnl configure.in.
dnl

dnl
dnl _RTEMS_PUSH_BUILDDIR(SUBDIR)
dnl
AC_DEFUN(_RTEMS_PUSH_BUILDDIR,
[
# _RTEMS_PUSH_BUILDDIR
    echo configuring in $1
    case "$srcdir" in
    .) ;;
    *) AS_MKDIR_P([$1])
      ;;
    esac

    ac_popdir=`pwd`
    cd $1
])

dnl
dnl _RTEMS_POP_BUILDDIR
dnl
AC_DEFUN(_RTEMS_POP_BUILDDIR,
[
  cd $ac_popdir
])

dnl
dnl _RTEMS_GIVEN_INSTALL
dnl
AC_DEFUN(_RTEMS_GIVEN_INSTALL,
[
ifdef([AC_PROVIDE_AC_PROG_INSTALL],[  
  case "$ac_given_INSTALL" in
  [[\\/]]* | ?:[[\\/]]*) INSTALL="$ac_given_INSTALL" ;;
  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
  esac
])dnl
])

dnl
dnl _RTEMS_SUB_SRCDIR(AC_CONFIG_DIR[,TARGET_SUBDIR])
dnl
AC_DEFUN(_RTEMS_SUB_SRCDIR,[
# _RTEMS_SUB_SRCDIR
    _RTEMS_ADJUST_SRCDIR(ac_sub_srcdir,$1,$2)

    # Check for configure
    if test -f $ac_sub_srcdir/configure; then
      ac_sub_configure=$ac_sub_srcdir/configure
    else
      AC_MSG_WARN([no configuration information is in $1])
      ac_sub_configure=
    fi
])