summaryrefslogblamecommitdiffstats
path: root/c/src/lib/configure.in
blob: 39e5124109a71e25a72a586236f1fb6c5ddc66d4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                  

                       




























                                                                  







                                                 
                                      

                                 








































                                                                             

                                              



                                                             

  














                                               
                                                                
                                       


                                     
                                   
                               
 
                                     








                                                                 
                                     





                                                           
                                      





























                                                         

                                    
                             

  











                                                            




               
dnl Process this file with autoconf to produce a configure script.
dnl
dnl  $Id$

AC_PREREQ(2.13)
AC_INIT(libbsp)
RTEMS_TOP(../../..)
AC_CONFIG_AUX_DIR(../../..)

AC_PROG_MAKE_SET
RTEMS_CANONICAL_TARGET_CPU

AM_MAINTAINER_MODE

RTEMS_ENABLE_MULTIPROCESSING
RTEMS_ENABLE_NETWORKING
RTEMS_ENABLE_RDBG
RTEMS_ENABLE_CXX
RTEMS_ENABLE_GCC28
RTEMS_ENABLE_LIBCDIR
RTEMS_ENABLE_BARE
RTEMS_ENABLE_HWAPI

RTEMS_ENV_RTEMSBSP

AC_PROG_INSTALL

RTEMS_CHECK_CPU
RTEMS_CANONICAL_HOST

RTEMS_PROJECT_ROOT

dnl check target cc
RTEMS_PROG_CC_FOR_TARGET

dnl check for g++
if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
  RTEMS_PROG_CXX_FOR_TARGET
fi

RTEMS_CANONICALIZE_TOOLS

dnl if this is an i386, does gas have good code16 support?
RTEMS_I386_GAS_CODE16
AM_CONDITIONAL(RTEMS_GAS_CODE16,test "$RTEMS_GAS_CODE16" = "yes");

# find all the Makefiles for the BSPs
makefiles="$makefiles libbsp/$RTEMS_CPU/Makefile"

if test "${RTEMS_BSP}" = "bare"; then
makefiles="$makefiles libbsp/bare/Makefile"
fi

RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP)
RTEMS_CHECK_CXX(RTEMS_BSP)
RTEMS_CHECK_NETWORKING(RTEMS_BSP)

RTEMS_BSP_ALIAS(${RTEMS_BSP},bspdir)

# Is there code where there should be for this BSP?
# The bare bsp is a special case as it is not under the RTEMS_CPU path
case ${RTEMS_BSP} in
  bare)
    bspcpudir=
    if test "X${BARE_CPU_CFLAGS}" = "X" ; then
      AC_MSG_ERROR([--enable-bare-cpu-cflags not specified for bare bsp])
    fi
    if test "X${BARE_CPU_MODEL}" = "X" ; then
      AC_MSG_ERROR([--enable-bare-cpu-model not specified for bare bsp])
    fi
    ;;
  *)
    bspcpudir=$RTEMS_CPU/
    ;;
esac

if test "$RTEMS_BSP" = "bare" ; then
  RTEMS_LIBBSP_CPU_SUBDIR="bare"
else
  RTEMS_LIBBSP_CPU_SUBDIR='$(RTEMS_CPU)'
fi
AC_SUBST(RTEMS_LIBBSP_CPU_SUBDIR)
     
if test -d "$srcdir/libbsp/$bspcpudir$bspdir"; then
  RTEMS_CHECK_MAKEFILE(libbsp/${bspcpudir}$bspdir)
  RTEMS_CHECK_MAKEFILE(libbsp/${bspcpudir}shared)

  # HACK: sed out bsp-tools from makefiles
  t="libbsp/$bspcpudir$bspdir/tools"
  if test -d "$srcdir/$t"; then
    bsptools_cfgdirs="$bsptools_cfgdirs $t"
    makefiles=`echo "$makefiles" | sed -e "s%$t/.*Makefile%%g"`
  fi
else
  AC_MSG_ERROR([unable to find libbsp directory ($bspdir) for  ${RTEMS_BSP}])
fi

if test "$HAS_MP" = "yes"; then
  makefiles="$makefiles libbsp/shmdr/Makefile"
else
  # HACK: sed out shmsupp/Makefile from makefiles
  t="libbsp/$bspcpudir$bspdir/shmsupp"
  makefiles=`echo "$makefiles" | sed -e "s%$t/.*Makefile%%g"`
fi

AM_CONDITIONAL(UNIX,test "$RTEMS_CPU" = "unix")
# find all the CPU dependent library Makefiles
RTEMS_CHECK_MAKEFILE(libcpu/$RTEMS_CPU)

dnl Workaround for go32
case "${target}" in
changequote(,)dnl
  i[3456]86-go32-rtems*)
changequote([,])dnl
    ;;
  *)
    RTEMS_CHECK_MAKEFILE(start/$RTEMS_CPU)
    ;;
esac

# If the TCP/IP stack is enabled, then find all TCP/IP Makefiles
if test "$HAS_NETWORKING" = "yes"; then
  RTEMS_CHECK_MAKEFILE(libnetworking)
  RTEMS_CHECK_MAKEFILE(librpc)

  if test "$HAS_RDBG" = "yes"; then
    RTEMS_CHECK_RDBG(RTEMS_BSP)

    if test "$HAS_RDBG" = "yes"; then
      AC_CHECK_PROG(RPCGEN,rpcgen,rpcgen)
      AC_PROG_AWK
      if test -z "$RPCGEN"; then
        AC_MSG_ERROR([missing rpcgen, required to build librdbg])
      fi
      if test -z "$AWK"; then
        AC_MSG_ERROR([missing awk, required to build librdbg])
      fi
    fi
    if test "$HAS_RDBG" = "yes"; then
      RTEMS_CHECK_MAKEFILE(librdbg)
    fi
  fi
fi

# If the C++ support is enabled, then include the Makefiles
if test "$HAS_CPLUSPLUS" = "yes"; then
  RTEMS_CHECK_MAKEFILE(librtems++)
fi

# If the HWAPI is enabled, the find the HWAPI Makefiles
RTEMS_ENABLE_HWAPI
if test "$RTEMS_HAS_HWAPI" = "yes"; then
  AC_MSG_CHECKING(whether libwapi is present)
  if test -f ${srcdir}/libhwapi/Makefile.in ; then
    AC_MSG_RESULT(yes)
    makefiles="$makefiles libhwapi/Makefile"
    RTEMS_CHECK_MAKEFILE(libhwapi/analog)
    RTEMS_CHECK_MAKEFILE(libhwapi/discrete)
    RTEMS_CHECK_MAKEFILE(libhwapi/drivers)
    RTEMS_CHECK_MAKEFILE(libhwapi/non_volatile_memory)
    RTEMS_CHECK_MAKEFILE(libhwapi/serial)
    RTEMS_CHECK_MAKEFILE(libhwapi/support)
    RTEMS_CHECK_MAKEFILE(libhwapi/wrapup)
  else
    AC_MSG_ERROR(No source code found for the HWAPI)
  fi
fi

AC_SUBST(RTEMS_HAS_CPLUSPLUS)
AC_SUBST(RTEMS_USE_GCC272)
AC_SUBST(CC_CFLAGS_DEFAULT)
AC_SUBST(CC_CFLAGS_DEBUG_V)
AC_SUBST(CC_CFLAGS_PROFILE_V)
AC_SUBST(CC_LDFLAGS_PROFILE_V)

# pick up all the Makefiles in required parts of the tree
if test "$RTEMS_CPU" != "unix"; then
## HACK: Suppress libchip for unix
RTEMS_CHECK_MAKEFILE(libchip)
fi

RTEMS_CHECK_MAKEFILE(libmisc)

AC_CONFIG_SUBDIRS($bsptools_cfgdirs)

# FIXME: libhwapi needs a separate configure.in in future ;-
# AC_CONFIG_SUBDIRS(libhwapi)

# try to explicitly list a Makefile here 
AC_OUTPUT( 
Makefile
include/Makefile
libbsp/Makefile
libc/Makefile
libcpu/Makefile
start/Makefile
wrapup/Makefile
$makefiles)