2000-09-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>

* macros: New directory.
	* macros/bsp-alias.m4: new file.
	* macros/canonical-host.m4: new file.
	* macros/canonical-target-name.m4: new file.
	* macros/canonicalize-tools.m4: new file.
	* macros/check-bsp-cache.m4: new file.
	* macros/check-bsps.m4: new file.
	* macros/check-cpu.m4: new file.
	* macros/rtems-debug.m4: new file.
	* macros/check-cxx.m4: new file.
	* macros/check-itron.m4: new file.
	* macros/check-multiprocessing.m4: new file.
	* macros/check-networking.m4: new file.
	* macros/check-newlib.m4: new file.
	* macros/check-posix.m4: new file.
	* macros/check-rdbg.m4: new file.
	* macros/enable-bare.m4: new file.
	* macros/enable-cxx.m4: new file.
	* macros/enable-gcc28.m4: new file.
	* macros/enable-inlines.m4: new file.
	* macros/enable-itron.m4: new file.
	* macros/enable-libcdir.m4: new file.
	* macros/enable-multiprocessing.m4: new file.
	* macros/enable-networking.m4: new file.
	* macros/enable-posix.m4: new file.
	* macros/enable-rdbg.m4: new file.
	* macros/enable-rtemsbsp.m4: new file.
	* macros/enable-tests.m4: new file.
	* macros/gcc-pipe.m4: new file.
	* macros/gcc-specs.m4: new file.
	* macros/i386-gas-code16.m4: new file.
	* macros/path-ksh.m4: new file.
	* macros/path-perl.m4: new file.
	* macros/prog-cc.m4: new file.
	* macros/prog-cxx.m4: new file.
	* macros/project-root.m4: new file.
	* macros/rtems-top.m4: new file.
	* macros/sysv-ipc.m4: new file.
	* macros/target.m4: new file.
	* macros/rtems-test-no-pause.m4: new file.
	* macros/multilib.m4: new file.
	* macros/tool-paths.m4: new file.
	* macros/tool-prefix.m4: new file.
This commit is contained in:
Joel Sherrill
2000-10-18 13:14:49 +00:00
parent f43d7f71eb
commit aac7fdd28c
44 changed files with 1490 additions and 0 deletions

View File

@@ -1,3 +1,49 @@
2000-09-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* macros: New directory.
* macros/bsp-alias.m4: new file.
* macros/canonical-host.m4: new file.
* macros/canonical-target-name.m4: new file.
* macros/canonicalize-tools.m4: new file.
* macros/check-bsp-cache.m4: new file.
* macros/check-bsps.m4: new file.
* macros/check-cpu.m4: new file.
* macros/rtems-debug.m4: new file.
* macros/check-cxx.m4: new file.
* macros/check-itron.m4: new file.
* macros/check-multiprocessing.m4: new file.
* macros/check-networking.m4: new file.
* macros/check-newlib.m4: new file.
* macros/check-posix.m4: new file.
* macros/check-rdbg.m4: new file.
* macros/enable-bare.m4: new file.
* macros/enable-cxx.m4: new file.
* macros/enable-gcc28.m4: new file.
* macros/enable-inlines.m4: new file.
* macros/enable-itron.m4: new file.
* macros/enable-libcdir.m4: new file.
* macros/enable-multiprocessing.m4: new file.
* macros/enable-networking.m4: new file.
* macros/enable-posix.m4: new file.
* macros/enable-rdbg.m4: new file.
* macros/enable-rtemsbsp.m4: new file.
* macros/enable-tests.m4: new file.
* macros/gcc-pipe.m4: new file.
* macros/gcc-specs.m4: new file.
* macros/i386-gas-code16.m4: new file.
* macros/path-ksh.m4: new file.
* macros/path-perl.m4: new file.
* macros/prog-cc.m4: new file.
* macros/prog-cxx.m4: new file.
* macros/project-root.m4: new file.
* macros/rtems-top.m4: new file.
* macros/sysv-ipc.m4: new file.
* macros/target.m4: new file.
* macros/rtems-test-no-pause.m4: new file.
* macros/multilib.m4: new file.
* macros/tool-paths.m4: new file.
* macros/tool-prefix.m4: new file.
2000-09-14 Joel Sherrill <joel@OARcorp.com>
* Makefile.am: Referenceed aclocal/enable-hwapi.m4 that was removed.

33
macros/bsp-alias.m4 Normal file
View File

@@ -0,0 +1,33 @@
dnl
dnl $Id$
dnl
dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
dnl Internal subroutine to RTEMS_BSP_ALIAS
AC_DEFUN(_RTEMS_BSP_ALIAS,
[# account for "aliased" bsps which share source code
case $1 in
simcpu32) $2=sim68000 ;; # BSVC CPU32 variant
c3xsim) $2=c4xsim ;; # TI C3x Simulator in gdb
mcp750) $2=motorola_powerpc ;; # Motorola PPC board variant
mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant
mvme162lx) $2=mvme162 ;; # m68k - mvme162 board variant
gen68360_040) $2=gen68360 ;; # m68k - 68360 in companion mode
p4600) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4600
p4650) $2=p4000 ;; # mips64orion - p4000 board w/IDT 4650
mbx8*) $2=mbx8xx ;; # MBX821/MBX860 board
pc486) $2=pc386 ;; # i386 - PC with i486DX
pc586) $2=pc386 ;; # i386 - PC with Pentium
pc686) $2=pc386 ;; # i386 - PC with PentiumPro
pck6) $2=pc386 ;; # i386 - PC with K6
bare*) $2=bare ;; # EXP: bare-aliases
*) $2=$1;;
esac]
)
dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)
dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILY
AC_DEFUN(RTEMS_BSP_ALIAS,
[_RTEMS_BSP_ALIAS(ifelse([$1],,[$RTEMS_BSP],[$1]),
ifelse([$2],,[RTEMS_BSP_FAMILY],[$2]))]
)

27
macros/canonical-host.m4 Normal file
View File

@@ -0,0 +1,27 @@
dnl $Id$
AC_DEFUN(RTEMS_CANONICAL_HOST,
[dnl
AC_REQUIRE([AC_CANONICAL_HOST])
RTEMS_HOST=$host_os
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-*linux*) # unix "simulator" port
RTEMS_HOST=Linux
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HOST=FreeBSD
;;
i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
RTEMS_HOST=Cygwin
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HOST=Solaris
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HOST)
])dnl

View File

@@ -0,0 +1,40 @@
dnl
dnl $Id$
dnl
dnl canonicalize target cpu
dnl NOTE: Most rtems targets do not fullfil autoconf's
dnl target naming conventions "processor-vendor-os"
dnl Therefore autoconf's AC_CANONICAL_TARGET will fail for them
dnl and we have to fix it for rtems ourselves
AC_DEFUN(RTEMS_CANONICAL_TARGET_CPU,
[
AC_CANONICAL_SYSTEM
AC_MSG_CHECKING(rtems target cpu)
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-*linux*) # unix "simulator" port
RTEMS_CPU=unix
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_CPU=unix
;;
i[34567]86-pc-cygwin*) # Cygwin is just enough unix like :)
RTEMS_CPU=unix
;;
no_cpu-*rtems*)
RTEMS_CPU=no_cpu
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_CPU=unix
;;
*)
RTEMS_CPU=`echo $target | sed 's%^\([^-]*\)-\(.*\)$%\1%'`
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_CPU)
AC_MSG_RESULT($RTEMS_CPU)
])

View File

@@ -0,0 +1,75 @@
dnl
dnl $Id$
dnl
dnl Set target tools
dnl
AC_DEFUN(RTEMS_HOST_AR,
[AC_CHECK_TOOL(AR,ar,no)])
AC_DEFUN(RTEMS_HOST_RANLIB,
[AC_CHECK_TOOL(RANLIB,ranlib,:)])
AC_DEFUN(RTEMS_GCC_PRINT,
[
$1=`$CC --print-prog-name=$2`
])
AC_DEFUN(RTEMS_PATH_TOOL,
[
AC_MSG_CHECKING([target's $2])
AC_CACHE_VAL(ac_cv_path_$1,:)
AC_MSG_RESULT([$ac_cv_path_$1])
if test -n "$ac_cv_path_$1"; then
dnl retrieve the value from the cache
$1=$ac_cv_path_$1
else
dnl the cache was not set
if test -z "[$]$1" ; then
if test "$ac_cv_prog_gcc" = "yes"; then
# We are using gcc, ask it about its tool
# NOTE: Necessary if gcc was configured to use the target's
# native tools or uses prefixes for gnutools (e.g. gas instead of as)
RTEMS_GCC_PRINT($1,$2)
fi
else
# The user set an environment variable.
# Check whether it is an absolute path, otherwise AC_PATH_PROG
# will override the environment variable, which isn't what the user
# intends
AC_MSG_CHECKING([whether environment variable $1 is an absolute path])
case "[$]$1" in
/*) # valid
AC_MSG_RESULT("yes")
;;
*) # invalid for AC_PATH_PROG
AC_MSG_RESULT("no")
AC_MSG_ERROR([***]
[Environment variable $1 should either]
[be unset (preferred) or contain an absolute path])
;;
esac
fi
AC_PATH_PROG($1,"$program_prefix"$2,$3)
fi
])
AC_DEFUN(RTEMS_CANONICALIZE_TOOLS,
[AC_REQUIRE([RTEMS_PROG_CC])dnl
dnl FIXME: What shall be done if these tools are not available?
RTEMS_HOST_AR(AR,ar,no)
RTEMS_PATH_TOOL(AS,as,no)
RTEMS_PATH_TOOL(LD,ld,no)
RTEMS_PATH_TOOL(NM,nm,no)
dnl special treatment of ranlib
RTEMS_HOST_RANLIB
dnl NOTE: These may not be available if not using gnutools
AC_CHECK_TOOL(OBJCOPY,objcopy,no)
AC_CHECK_TOOL(SIZE,size,no)
AC_CHECK_TOOL(STRIP,strip,:)
])

17
macros/check-bsp-cache.m4 Normal file
View File

@@ -0,0 +1,17 @@
dnl $Id$
dnl RTEMS_CHECK_BSP_CACHE(RTEMS_BSP)
AC_DEFUN(RTEMS_CHECK_BSP_CACHE,
[
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl set RTEMS_BSP
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
AC_CACHE_CHECK("for RTEMS_CPU_MODEL", rtems_cv_RTEMS_CPU_MODEL,
. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
RTEMS_CPU_MODEL=$rtems_cv_RTEMS_CPU_MODEL
AC_SUBST(RTEMS_CPU_MODEL)
AC_CACHE_CHECK("for RTEMS_BSP_FAMILY", rtems_cv_RTEMS_BSP_FAMILY,
. $RTEMS_TOPdir/c/[$]$1/make/[$]$1.cache)
RTEMS_BSP_FAMILY=$rtems_cv_RTEMS_BSP_FAMILY
AC_SUBST(RTEMS_BSP_FAMILY)
])dnl

50
macros/check-bsps.m4 Normal file
View File

@@ -0,0 +1,50 @@
dnl $Id$
dnl Report all available bsps for a target,
dnl check if a bsp-subdirectory is present for all bsps found
dnl
dnl RTEMS_CHECK_BSPS(bsp_list)
AC_DEFUN(RTEMS_CHECK_BSPS,
[
AC_REQUIRE([RTEMS_CHECK_CPU])dnl sets RTEMS_CPU, target
AC_REQUIRE([RTEMS_TOP])dnl sets RTEMS_TOPdir
AC_MSG_CHECKING([for bsps])
files=`ls $srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$RTEMS_CPU`
for file in $files; do
case $file in
ChangeLog*);;
shared*);;
Makefile*);;
READ*);;
CVS*);;
pxfl*);;
ac*);;
config*);;
# Now account for BSPs with build variants
c4xsim) rtems_bsp="$rtems_bsp c4xsim c3xsim";;
gen68360) rtems_bsp="$rtems_bsp gen68360 gen68360_040";;
p4000) rtems_bsp="$rtems_bsp p4600 p4650";;
mvme162) rtems_bsp="$rtems_bsp mvme162 mvme162lx";;
mbx8xx) rtems_bsp="$rtems_bsp mbx821_001 mbx860_002";;
motorola_powerpc) rtems_bsp="$rtems_bsp mvme2307 mcp750";;
pc386) rtems_bsp="$rtems_bsp pc386 pc486 pc586 pc686 pck6";;
sim68000) rtems_bsp="$rtems_bsp sim68000 simcpu32";;
*) $1="[$]$1 $file";;
esac;
done
dnl ;;
dnl esac
AC_MSG_RESULT([[$]$1 .. done])
])dnl
AC_DEFUN(RTEMS_CHECK_CUSTOM_BSP,
[dnl
AC_REQUIRE([RTEMS_TOP])
AC_MSG_CHECKING([for make/custom/[$]$1.cfg])
if test -r "$srcdir/$RTEMS_TOPdir/make/custom/[$]$1.cfg"; then
AC_MSG_RESULT([yes])
else
AC_MSG_ERROR([no])
fi
])dnl

17
macros/check-cpu.m4 Normal file
View File

@@ -0,0 +1,17 @@
dnl $Id$
dnl check if RTEMS support a cpu
AC_DEFUN(RTEMS_CHECK_CPU,
[dnl
AC_REQUIRE([RTEMS_TOP])
AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])
# Is this a supported CPU?
AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])
if test -d "$srcdir/$RTEMS_TOPdir/c/src/exec/score/cpu/$RTEMS_CPU"; then
AC_MSG_RESULT(yes)
else
AC_MSG_ERROR(no)
fi
])dnl

26
macros/check-cxx.m4 Normal file
View File

@@ -0,0 +1,26 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_CXX,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
AC_REQUIRE([RTEMS_PROG_CXX_FOR_TARGET])dnl
AC_CACHE_CHECK([whether to build rtems++],
rtems_cv_HAS_CPLUSPLUS,
[ if test "$RTEMS_HAS_CPLUSPLUS" = "yes"; then
if test -n "$CXX"; then
rtems_cv_HAS_CPLUSPLUS="yes"
else
rtems_cv_HAS_CPLUSPLUS="no"
fi
else
rtems_cv_HAS_CPLUSPLUS="no"
fi])
HAS_CPLUSPLUS="$rtems_cv_HAS_CPLUSPLUS";
AC_SUBST(HAS_CPLUSPLUS)dnl
if test "$HAS_CPLUSPLUS" = "yes"; then
CPLUS_LD_LIBS='$(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA)'
fi
AC_SUBST(CPLUS_LD_LIBS)
])

37
macros/check-itron.m4 Normal file
View File

@@ -0,0 +1,37 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_ITRON_API,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_ITRON])dnl
AC_CACHE_CHECK([whether CPU supports libitron],
rtems_cv_HAS_ITRON_API,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_ITRON_API="no"
;;
*)
if test "${RTEMS_HAS_ITRON_API}" = "yes"; then
rtems_cv_HAS_ITRON_API="yes";
else
rtems_cv_HAS_ITRON_API="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_ITRON_API" = "yes"; then
HAS_ITRON_API="yes";
else
HAS_ITRON_API="no";
fi
AC_SUBST(HAS_ITRON_API)dnl
])
AC_DEFUN(RTEMS_DEFINE_ITRON_API,
[AC_REQUIRE([RTEMS_CHECK_ITRON_API])dnl
if test x"${HAS_ITRON_API}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_ITRON_API,1,[if itron api is supported])
fi
])

View File

@@ -0,0 +1,46 @@
dnl
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_MULTIPROCESSING,
[dnl
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnl
AC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnl
AC_REQUIRE([RTEMS_BSP_ALIAS])dnl
AC_CACHE_CHECK([whether BSP supports multiprocessing],
rtems_cv_HAS_MP,
[dnl
if test x"$multilib" = x"yes"; then
# FIXME: Currently, multilibs and multiprocessing can not be
# build simultaneously
rtems_cv_HAS_MP="disabled"
else
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then
if test "$RTEMS_HAS_MULTIPROCESSING" = "yes"; then
rtems_cv_HAS_MP="yes" ;
else
rtems_cv_HAS_MP="disabled";
fi
else
rtems_cv_HAS_MP="no";
fi
fi])
if test "$rtems_cv_HAS_MP" = "yes"; then
HAS_MP="yes"
else
HAS_MP="no"
fi
AC_SUBST(HAS_MP)
])
AC_DEFUN(RTEMS_DEFINE_MULTIPROCESSING,
[AC_REQUIRE([RTEMS_CHECK_MULTIPROCESSING])dnl
if test x"${HAS_MP}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_MULTIPROCESSING,1,[if multiprocessing is supported])
fi
])

View File

@@ -0,0 +1,29 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_NETWORKING,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_NETWORKING])dnl
AC_CACHE_CHECK([whether BSP supports networking],
rtems_cv_HAS_NETWORKING,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_NETWORKING="no"
;;
*)
if test "${RTEMS_HAS_NETWORKING}" = "yes"; then
rtems_cv_HAS_NETWORKING="yes";
else
rtems_cv_HAS_NETWORKING="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_NETWORKING" = "yes"; then
HAS_NETWORKING="yes";
else
HAS_NETWORKING="no";
fi
AC_SUBST(HAS_NETWORKING)dnl
])

36
macros/check-newlib.m4 Normal file
View File

@@ -0,0 +1,36 @@
dnl $Id$
AC_DEFUN(RTEMS_CHECK_NEWLIB,
[dnl
AC_REQUIRE([RTEMS_PROG_CC_FOR_TARGET])dnl
AC_REQUIRE([RTEMS_CANONICALIZE_TOOLS])dnl
AC_CACHE_CHECK([for newlib],
rtems_cv_use_newlib,
[
rtems_save_CC=$CC
dnl some versions of newlib provide not_required_by_rtems
AC_TRY_LINK(
[extern void not_required_by_rtems() ;],
[not_required_by_rtems()],
rtems_cv_use_newlib="yes")
dnl some versions of newlib provide rtems_provides_crt0()
if test -z "$rtems_cv_use_newlib"; then
AC_TRY_LINK(
[extern void rtems_provides_crt0() ;],
[rtems_provides_crt0()],
rtems_cv_use_newlib="yes",
rtems_cv_use_newlib="no")
fi
CC=$rtems_save_CC])
RTEMS_USE_NEWLIB="$rtems_cv_use_newlib"
AC_SUBST(RTEMS_USE_NEWLIB)
if test x"${RTEMS_USE_NEWLIB}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_NEWLIB,1,[if using newlib])
AC_DEFINE_UNQUOTED(MALLOC_PROVIDED,1,[if malloc is provided])
fi
])

37
macros/check-posix.m4 Normal file
View File

@@ -0,0 +1,37 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_POSIX_API,
[dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_ENABLE_POSIX])dnl
AC_CACHE_CHECK([whether CPU supports libposix],
rtems_cv_HAS_POSIX_API,
[dnl
case "$RTEMS_CPU" in
unix*)
rtems_cv_HAS_POSIX_API="no"
;;
*)
if test "${RTEMS_HAS_POSIX_API}" = "yes"; then
rtems_cv_HAS_POSIX_API="yes";
else
rtems_cv_HAS_POSIX_API="disabled";
fi
;;
esac])
if test "$rtems_cv_HAS_POSIX_API" = "yes"; then
HAS_POSIX_API="yes";
else
HAS_POSIX_API="no";
fi
AC_SUBST(HAS_POSIX_API)dnl
])
AC_DEFUN(RTEMS_DEFINE_POSIX_API,
[AC_REQUIRE([RTEMS_CHECK_POSIX_API])dnl
if test x"${HAS_POSIX_API}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_POSIX_API,1,[if posix api is supported])
fi
])

24
macros/check-rdbg.m4 Normal file
View File

@@ -0,0 +1,24 @@
dnl $Id$
dnl
AC_DEFUN(RTEMS_CHECK_RDBG,
[dnl
AC_REQUIRE([RTEMS_TOP])dnl
AC_REQUIRE([RTEMS_CHECK_CPU])dnl
AC_REQUIRE([RTEMS_CHECK_NETWORKING])dnl
AC_REQUIRE([RTEMS_ENABLE_RDBG])dnl
AC_CACHE_CHECK([whether BSP supports librdbg],
rtems_cv_HAS_RDBG,
[
if test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/${$1}";
then
rtems_cv_HAS_RDBG="yes" ;
elif test -d "$srcdir/${RTEMS_TOPdir}/c/src/librdbg/src/${RTEMS_CPU}/any";
then
rtems_cv_HAS_RDBG="yes" ;
else
rtems_cv_HAS_RDBG="no";
fi
])
HAS_RDBG="$rtems_cv_HAS_RDBG"
AC_SUBST(HAS_RDBG)
])

21
macros/enable-bare.m4 Normal file
View File

@@ -0,0 +1,21 @@
AC_DEFUN(RTEMS_ENABLE_BARE,
[
AC_ARG_ENABLE(bare-cpu-cflags,
[ --enable-bare-cpu-cflags specify a particular cpu cflag]
[ (bare bsp specific)],
[case "${enableval}" in
no) BARE_CPU_CFLAGS="" ;;
*) BARE_CPU_CFLAGS="${enableval}" ;;
esac],
[BARE_CPU_CFLAGS=""])
AC_ARG_ENABLE(bare-cpu-model,
[ --enable-bare-cpu-model specify a particular cpu model]
[ (bare bsp specific)],
[case "${enableval}" in
no) BARE_CPU_MODEL="" ;;
*) BARE_CPU_MODEL="${enableval}" ;;
esac],
[BARE_CPU_MODEL=""])
])

13
macros/enable-cxx.m4 Normal file
View File

@@ -0,0 +1,13 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_CXX,
[
AC_ARG_ENABLE(cxx,
[ --enable-cxx enable C++ support,]
[ and build the rtems++ library],
[case "${enableval}" in
yes) RTEMS_HAS_CPLUSPLUS=yes ;;
no) RTEMS_HAS_CPLUSPLUS=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-cxx option) ;;
esac], [RTEMS_HAS_CPLUSPLUS=no])
])

12
macros/enable-gcc28.m4 Normal file
View File

@@ -0,0 +1,12 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_GCC28,
[
AC_ARG_ENABLE(gcc28,
[ --enable-gcc28 enable use of gcc 2.8.x features],
[case "${enableval}" in
yes) RTEMS_USE_GCC272=no ;;
no) RTEMS_USE_GCC272=yes ;;
*) AC_MSG_ERROR(bad value ${enableval} for gcc-28 option) ;;
esac],[RTEMS_USE_GCC272=no])
])

15
macros/enable-hwapi.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
dnl
dnl FIXME: this needs to be reworked
AC_DEFUN(RTEMS_ENABLE_HWAPI,
[dnl
AC_ARG_ENABLE(hwapi, \
[ --enable-hwapi enable hardware API library],
[case "${enableval}" in
yes) RTEMS_HAS_HWAPI=yes ;;
no) RTEMS_HAS_HWAPI=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for hwapi option) ;;
esac],[RTEMS_HAS_HWAPI=no])
AC_SUBST(RTEMS_HAS_HWAPI)dnl
])dnl

22
macros/enable-inlines.m4 Normal file
View File

@@ -0,0 +1,22 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_INLINES,
[AC_ARG_ENABLE(rtems-inlines,
[ --enable-rtems-inlines enable RTEMS inline functions]
[ (default:enabled, disable to use macros)],
[case "${enableval}" in
yes) RTEMS_USE_MACROS=no ;;
no) RTEMS_USE_MACROS=yes ;;
*) AC_MSG_ERROR(bad value ${enableval} for disable-rtems-inlines option) ;;
esac],[RTEMS_USE_MACROS=no])
AC_SUBST(RTEMS_USE_MACROS)dnl
if test x"${RTEMS_USE_MACROS}" = x"yes";
then
AC_DEFINE_UNQUOTED(USE_MACROS,1,[if using macros])
else
AC_DEFINE_UNQUOTED(USE_INLINES,1,[if using inlines])
fi
])

35
macros/enable-itron.m4 Normal file
View File

@@ -0,0 +1,35 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_ITRON,
[
## AC_BEFORE([$0], [RTEMS_CHECK_ITRON_API])dnl
AC_ARG_ENABLE(itron,
[ --enable-itron enable itron interface],
[case "${enableval}" in
yes) RTEMS_HAS_ITRON_API=yes ;;
no) RTEMS_HAS_ITRON_API=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-itron option) ;;
esac],[RTEMS_HAS_ITRON_API=yes])
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-pc-linux*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
no_cpu-*rtems*)
RTEMS_HAS_ITRON_API=no
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HAS_ITRON_API=no
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HAS_ITRON_API)
])

10
macros/enable-libcdir.m4 Normal file
View File

@@ -0,0 +1,10 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_LIBCDIR,
[
AC_ARG_ENABLE(libcdir,
[ --enable-libcdir=directory set the directory for the C library],
[ RTEMS_LIBC_DIR="${enableval}" ; \
test -d ${enableval} || AC_MSG_ERROR("$enableval is not a directory" ) ] )
AC_SUBST(RTEMS_LIBC_DIR)dnl
])

View File

@@ -0,0 +1,13 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_MULTIPROCESSING,
[
AC_ARG_ENABLE(multiprocessing,
[ --enable-multiprocessing enable multiprocessing interface],
[case "${enableval}" in
yes) RTEMS_HAS_MULTIPROCESSING=yes ;;
no) RTEMS_HAS_MULTIPROCESSING=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;
esac],[RTEMS_HAS_MULTIPROCESSING=no])
AC_SUBST(RTEMS_HAS_MULTIPROCESSING)dnl
])

View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_NETWORKING,
[
## AC_BEFORE([$0], [RTEMS_CHECK_NETWORKING])dnl
AC_ARG_ENABLE(networking,
[ --enable-networking enable TCP/IP stack],
[case "${enableval}" in
yes) RTEMS_HAS_NETWORKING=yes ;;
no) RTEMS_HAS_NETWORKING=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-networking option) ;;
esac],[RTEMS_HAS_NETWORKING=yes])
AC_SUBST(RTEMS_HAS_NETWORKING)dnl
])

35
macros/enable-posix.m4 Normal file
View File

@@ -0,0 +1,35 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_POSIX,
[
## AC_BEFORE([$0], [RTEMS_CHECK_POSIX_API])dnl
AC_ARG_ENABLE(posix,
[ --enable-posix enable posix interface],
[case "${enableval}" in
yes) RTEMS_HAS_POSIX_API=yes ;;
no) RTEMS_HAS_POSIX_API=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-posix option) ;;
esac],[RTEMS_HAS_POSIX_API=yes])
changequote(,)dnl
case "${target}" in
# hpux unix port should go here
i[34567]86-pc-linux*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
i[34567]86-*freebsd*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
no_cpu-*rtems*)
RTEMS_HAS_POSIX_API=no
;;
sparc-sun-solaris*) # unix "simulator" port
RTEMS_HAS_POSIX_API=no
;;
*)
;;
esac
changequote([,])dnl
AC_SUBST(RTEMS_HAS_POSIX_API)
])

15
macros/enable-rdbg.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_RDBG,
[
AC_BEFORE([$0], [RTEMS_CHECK_RDBG])dnl
AC_ARG_ENABLE(rdbg,
[ --enable-rdbg enable remote debugger],
[case "${enableval}" in
yes) RTEMS_HAS_RDBG=yes ;;
no) RTEMS_HAS_RDBG=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for enable-rdbg option) ;;
esac],[RTEMS_HAS_RDBG=no])
AC_SUBST(RTEMS_HAS_RDBG)dnl
])

58
macros/enable-rtemsbsp.m4 Normal file
View File

@@ -0,0 +1,58 @@
dnl $Id$
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])dnl
AC_ARG_ENABLE(rtemsbsp,
[ --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=""])
])
dnl Pass a single BSP via an environment variable
dnl used by per BSP configure scripts
AC_DEFUN(RTEMS_ENV_RTEMSBSP,
[dnl
AC_BEFORE([$0], [RTEMS_ENABLE_RTEMSBSP])dnl
AC_BEFORE([$0], [RTEMS_PROJECT_ROOT])dnl
AC_BEFORE([$0], [RTEMS_CHECK_CUSTOM_BSP])dnl
AC_MSG_CHECKING([for RTEMS_BSP])
AC_CACHE_VAL(rtems_cv_RTEMS_BSP,
[dnl
test -n "${RTEMS_BSP}" && rtems_cv_RTEMS_BSP="$RTEMS_BSP";
])dnl
if test -z "$rtems_cv_RTEMS_BSP"; then
AC_MSG_ERROR([Missing RTEMS_BSP])
fi
RTEMS_BSP="$rtems_cv_RTEMS_BSP"
AC_MSG_RESULT(${RTEMS_BSP})
AC_SUBST(RTEMS_BSP)
RTEMS_ENABLE_BARE
AC_SUBST(BARE_CPU_MODEL)
AC_SUBST(BARE_CPU_CFLAGS)
## RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
## AC_SUBST(RTEMS_ROOT)
])
AC_DEFUN(RTEMS_ENV_RTEMSCPU,
[AC_REQUIRE([RTEMS_ENABLE_MULTILIB])
if test x"$multilib" = x"no"; then
RTEMS_ENV_RTEMSBSP
RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP)
else
rtems_cv_RTEMS_BSP="multilib"
RTEMS_BSP="$rtems_cv_RTEMS_BSP"
AC_SUBST(RTEMS_BSP)
## RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c
## AC_SUBST(RTEMS_ROOT)
fi
])

15
macros/enable-tests.m4 Normal file
View File

@@ -0,0 +1,15 @@
dnl $Id$
AC_DEFUN(RTEMS_ENABLE_TESTS,
[
# If the tests are enabled, then find all the test suite Makefiles
AC_MSG_CHECKING([if the test suites are enabled? ])
AC_ARG_ENABLE(tests,
[ --enable-tests enable tests (default:disabled)],
[case "${enableval}" in
yes) tests_enabled=yes ;;
no) tests_enabled=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for tests option) ;;
esac], [tests_enabled=no])
AC_MSG_RESULT([$tests_enabled])
])

21
macros/gcc-pipe.m4 Normal file
View File

@@ -0,0 +1,21 @@
dnl
dnl $Id$
dnl
dnl Check whether the target compiler accepts -pipe
dnl
AC_DEFUN(RTEMS_GCC_PIPE,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_REQUIRE([AC_CANONICAL_HOST])
AC_CACHE_CHECK(whether $CC accepts --pipe,rtems_cv_gcc_pipe,
[
rtems_cv_gcc_pipe=no
if test "$ac_cv_prog_gcc" = "yes"; then
echo 'void f(){}' >conftest.c
if test -z "`${CC} --pipe -c conftest.c 2>&1`";then
rtems_cv_gcc_pipe=yes
fi
rm -f conftest*
fi
])
])

20
macros/gcc-specs.m4 Normal file
View File

@@ -0,0 +1,20 @@
dnl
dnl $Id$
dnl
dnl Check whether the target compiler accepts -specs
dnl
AC_DEFUN(RTEMS_GCC_SPECS,
[AC_REQUIRE([RTEMS_PROG_CC])
AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,
[
rtems_cv_gcc_specs=no
if test "$ac_cv_prog_gcc" = "yes"; then
touch confspec
echo 'void f(){}' >conftest.c
if test -z "`${CC} -specs confspec -c conftest.c 2>&1`";then
rtems_cv_gcc_specs=yes
fi
fi
rm -f confspec conftest*
])])

28
macros/i386-gas-code16.m4 Normal file
View File

@@ -0,0 +1,28 @@
dnl
dnl $Id$
dnl
dnl check for i386 gas supporting 16 bit mode
dnl - binutils 2.9.1.0.7 and higher
AC_DEFUN(RTEMS_I386_GAS_CODE16,
[ if test "${host_cpu}" = "i386"; then
AC_CACHE_CHECK([for 16 bit mode assembler support],
rtems_cv_prog_gas_code16,
[cat > conftest.s << EOF
.code16
data32
addr32
lgdt 0
EOF
if AC_TRY_COMMAND($AS -o conftest.o conftest.s); then
rtems_cv_prog_gas_code16=yes
else
rtems_cv_prog_gas_code16=no
fi])
RTEMS_GAS_CODE16="$rtems_cv_prog_gas_code16"
fi
AC_SUBST(RTEMS_GAS_CODE16)
AC_DEFINE_UNQUOTED(NEW_GAS,1,[if using 16 bit mode assembler support])
])

59
macros/multilib.m4 Normal file
View File

@@ -0,0 +1,59 @@
dnl This provides configure definitions used for multilib support
dnl parts of these macros are derived from newlib-1.8.2's multilib support
AC_DEFUN(RTEMS_ENABLE_MULTILIB,
[
AC_ARG_ENABLE(multilib,
[ --enable-multilib build many library versions (default)],
[case "${enableval}" in
yes) multilib=yes ;;
no) multilib=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
esac], [multilib=no])dnl
AM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes")
])
AC_DEFUN(RTEMS_ENABLE_MULTILIB_MASTER,
[
AC_REQUIRE([RTEMS_ENABLE_MULTILIB])
dnl We may get other options which we don't document:
dnl --with-target-subdir, --with-multisrctop, --with-multisubdir
test -z "[$]{with_target_subdir}" && with_target_subdir=.
if test "[$]{srcdir}" = "."; then
if test "[$]{with_target_subdir}" != "."; then
multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}../ifelse([$2],,,[$2])"
else
multilib_basedir="[$]{srcdir}/[$]{with_multisrctop}ifelse([$2],,,[$2])"
fi
else
multilib_basedir="[$]{srcdir}/ifelse([$2],,,[$2])"
fi
AC_SUBST(multilib_basedir)
if test "${multilib}" = "yes"; then
multilib_arg="--enable-multilib"
else
multilib_arg=
fi
AC_OUTPUT_COMMANDS(
if test -n "$CONFIG_FILES"; do
$ac_file" = ifelse([$1],,Makefile,[$1]) \
. ${multilib_basedir}/../config-ml.in
fi,
srcdir=${srcdir}
host=${host}
target=${target}
# with_multisrctop="${with_multisrctop}"
# with_target_subdir="${with_target_subdir}"
with_multisubdir="${with_multisubdir}"
ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
multilib_basedir=${multilib_basedir}
CC="${CC}")
])

14
macros/path-ksh.m4 Normal file
View File

@@ -0,0 +1,14 @@
dnl $Id$
AC_DEFUN(RTEMS_PATH_KSH,
[
dnl NOTE: prefer bash over ksh over sh
AC_PATH_PROGS(KSH,bash ksh sh)
if test -z "$KSH"; then
dnl NOTE: This cannot happen -- /bin/sh must always exist
AC_MSG_ERROR(
[***]
[ Cannot determine a usable shell bash/ksh/sh]
[ Please contact your system administrator] );
fi
])

12
macros/path-perl.m4 Normal file
View File

@@ -0,0 +1,12 @@
dnl $Id$
AC_DEFUN(RTEMS_PATH_PERL,
[
AC_PATH_PROG(PERL,perl)
if test -z "$PERL" ; then
AC_MSG_WARN(
[***]
[ perl was not found]
[ Note: Some tools will not be built.])
fi
])

50
macros/prog-cc.m4 Normal file
View File

@@ -0,0 +1,50 @@
dnl
dnl $Id$
dnl
dnl Check for target gcc
dnl
AC_DEFUN(RTEMS_PROG_CC,
[
AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_BEFORE([$0], [AC_PROG_CC])dnl
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
AC_REQUIRE([RTEMS_ENABLE_GCC28])dnl
AC_CHECK_TOOL(CC,gcc)
AC_PROG_CC
AM_CONDITIONAL(RTEMS_USE_GCC,test x"$ac_cv_prog_gcc" = x"yes")
])
AC_DEFUN(RTEMS_PROG_CC_FOR_TARGET,
[
dnl check target cc
RTEMS_PROG_CC
dnl check if the compiler supports --specs
RTEMS_GCC_SPECS
dnl check if the target compiler may use --pipe
RTEMS_GCC_PIPE
dnl check if the compiler supports --specs if gcc28 is requested
if test "$RTEMS_USE_GCC272" != "yes" ; then
if test "$rtems_cv_gcc_specs" = "no"; then
AC_MSG_WARN([*** disabling --enable-gcc28])
RTEMS_USE_GCC272=yes
fi
fi
test "$rtems_cv_gcc_pipe" = "yes" && CC_FOR_TARGET="$CC_FOR_TARGET --pipe"
## Conditional for automake files
AM_CONDITIONAL(RTEMS_USE_GCC272, test x"$RTEMS_USE_GCC272" = x"yes")
## Make variable for autoconf fragments (*.cfg)
AC_SUBST(RTEMS_USE_GCC272)
dnl FIXME: HACK for egcs/cygwin mixing '\\' and '/' in gcc -print-*
case $host_os in
*cygwin*) GCCSED="| sed 's%\\\\%/%g'" ;;
*) ;;
esac
AC_SUBST(GCCSED)
])

32
macros/prog-cxx.m4 Normal file
View File

@@ -0,0 +1,32 @@
dnl
dnl $Id$
dnl
dnl Check for target g++
dnl
AC_DEFUN(RTEMS_PROG_CXX,
[
AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
AC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl
AC_REQUIRE([RTEMS_TOOL_PREFIX])dnl
AC_REQUIRE([RTEMS_ENABLE_LIBCDIR])dnl
dnl Only accept g++
dnl NOTE: This might be too restrictive
AC_CHECK_TOOL(CXX,g++)
AC_PROG_CXX
test -z "$CXX" \
&& AC_MSG_ERROR([no acceptable c++ found in \$PATH])
])
AC_DEFUN(RTEMS_PROG_CXX_FOR_TARGET,
[
RTEMS_PROG_CXX
if test "$ac_cv_prog_cc_cross" != "$ac_cv_prog_cxx_cross"; then
AC_MSG_ERROR([***]
[Inconsistency in compiler configuration:]
[Target C compiler and target C++ compiler]
[must both either be cross compilers or native compilers]
[Hint: If building a posix bsp: LD_LIBRARY_PATH?] )
fi
])

47
macros/project-root.m4 Normal file
View File

@@ -0,0 +1,47 @@
dnl
dnl $Id$
dnl
dnl
dnl PROJECT_TOPdir .. relative path to the top of the build-tree
dnl PROJECT_ROOT .. relative path to the top of the temporary
dnl installation directory inside the build-tree
dnl RTEMS_TOPdir .. relative path of a subpackage's configure.in to the
dnl toplevel configure.in of the source-tree
dnl RTEMS_ROOT .. path to the top of a bsp's build directory
dnl [Applied by custom/*.cfg, depredicated otherwise]
dnl
AC_DEFUN(RTEMS_PROJECT_ROOT,
[dnl
AC_REQUIRE([RTEMS_TOP])
if test "$TARGET_SUBDIR" = "." ; then
# Native
PROJECT_TOPdir=${RTEMS_TOPdir}/'$(top_builddir)'
PROJECT_ROOT=${RTEMS_TOPdir}/'$(top_builddir)';
else
# FIXME: Moving the build-tree
# PROJECT_TOPdir=../${RTEMS_TOPdir}/'$(top_builddir)'
# PROJECT_ROOT=${RTEMS_TOPdir}/'$(top_builddir)'
# FIXME: Old, per-bsp building style
PROJECT_TOPdir=../${RTEMS_TOPdir}/'$(top_builddir)'
PROJECT_ROOT=../${RTEMS_TOPdir}/'$(top_builddir)'
fi
AC_SUBST(PROJECT_ROOT)
AC_SUBST(PROJECT_TOPdir)
# FIXME: This should not be here
RTEMS_ROOT=$RTEMS_TOPdir/'$(top_builddir)'/c/$RTEMS_BSP
AC_SUBST(RTEMS_ROOT)
PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
AC_SUBST(PACKHEX)
PROJECT_INCLUDE="\$(PROJECT_ROOT)/$RTEMS_BSP/lib/include"
AC_SUBST(PROJECT_INCLUDE)
PROJECT_RELEASE="\$(PROJECT_ROOT)/$RTEMS_BSP"
AC_SUBST(PROJECT_RELEASE)
])

21
macros/rtems-debug.m4 Normal file
View File

@@ -0,0 +1,21 @@
## $Id$
AC_DEFUN(RTEMS_ENABLE_RTEMS_DEBUG,
[
AC_ARG_ENABLE(rtems-debug,
[ --disable-rtems-debug disable RTEMS_DEBUG],
[case "${enableval}" in
yes) RTEMS_DEBUG=yes ;;
no) RTEMS_DEBUG=no ;;
*) AC_MSG_ERROR([bad value ${enableval} for RTEMS_DEBUG]) ;;
esac],[RTEMS_DEBUG=no])
])
AC_DEFUN(RTEMS_CHECK_RTEMS_DEBUG,
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_DEBUG])
if test x"${RTEMS_DEBUG}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_DEBUG,1,[if RTEMS_DEBUG is enabled])
fi
])

View File

@@ -0,0 +1,18 @@
AC_DEFUN(RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE,
[AC_ARG_ENABLE(test-no-pause,
[ --disable-test-no-pause disable RTEMS_TEST_NO_PAUSE],
[case "${enableval}" in
yes) RTEMS_TEST_NO_PAUSE=yes ;;
no) RTEMS_TEST_NO_PAUSE=no ;;
*) AC_MSG_ERROR([bad value ${enableval} for RTEMS_TEST_NO_PAUSE]) ;;
esac],[RTEMS_TEST_NO_PAUSE=yes])
])
AC_DEFUN(RTEMS_CHECK_RTEMS_TEST_NO_PAUSE,
[AC_REQUIRE([RTEMS_ENABLE_RTEMS_TEST_NO_PAUSE])
if test x"${RTEMS_TEST_NO_PAUSE}" = x"yes";
then
AC_DEFINE_UNQUOTED(RTEMS_TEST_NO_PAUSE,1,[if RTEMS_TEST_NO_PAUSE is enabled])
fi
])

44
macros/rtems-top.m4 Normal file
View File

@@ -0,0 +1,44 @@
dnl $Id$
dnl
dnl RTEMS_TOP($1)
dnl
dnl $1 .. relative path from this configure.in to the toplevel configure.in
dnl
AC_DEFUN(RTEMS_TOP,
[dnl
AC_CHECK_PROGS(MAKE, gmake make)
AC_BEFORE([$0], [AC_CONFIG_AUX_DIR])dnl
AC_BEFORE([$0], [AM_INIT_AUTOMAKE])dnl
## HACK to allow gnu-make conditionals in automake-Makefiles.
ENDIF=endif
AC_SUBST(ENDIF)
## HACK to destinguish between using GNU and RTEMS canonicalization
AM_CONDITIONAL(RTEMS_CANONICALIZATION,test "x" = "y")
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=DIR],
TARGET_SUBDIR="$withval",
TARGET_SUBDIR=".")
RTEMS_TOPdir="$1";
AC_SUBST(RTEMS_TOPdir)
dnl Determine RTEMS Version string from the VERSION file
dnl Hopefully, Joel never changes its format ;-
AC_MSG_CHECKING([for RTEMS Version])
if test -r "${srcdir}/${RTEMS_TOPdir}/VERSION"; then
changequote(,)dnl
RTEMS_VERSION=`grep 'RTEMS Version' ${srcdir}/${RTEMS_TOPdir}/VERSION | \
sed -e 's%RTEMS[ ]*Version[ ]*\(.*\)[ ]*%\1%g'`
changequote([,])dnl
else
AC_MSG_ERROR(Unable to find ${RTEMS_TOPdir}/VERSION)
fi
if test -z "$RTEMS_VERSION"; then
AC_MSG_ERROR(Unable to determine version)
fi
AC_MSG_RESULT($RTEMS_VERSION)
])dnl

133
macros/sysv-ipc.m4 Normal file
View File

@@ -0,0 +1,133 @@
dnl
dnl $Id$
dnl
dnl Check for System V IPC calls used by Unix simulators
dnl
dnl 98/07/17 Dario Alcocer alcocer@netcom.com
dnl Ralf Corsepius corsepiu@faw.uni-ulm.de
dnl
dnl Note: $host_os should probably *not* ever be used here to
dnl determine if host supports System V IPC calls, since some
dnl (e.g. FreeBSD 2.x) are configured by default to include only
dnl a subset of the System V IPC calls. Therefore, to make sure
dnl all of the required calls are found, test for each call explicitly.
dnl
dnl All of the calls use IPC_PRIVATE, so tests will not unintentionally
dnl modify any existing key sets. See the man pages for semget, shmget,
dnl msgget, semctl, shmctl and msgctl for details.
AC_DEFUN(RTEMS_UNION_SEMUN,
[
AC_CACHE_CHECK([whether $RTEMS_HOST defines union semun],
rtems_cv_HAS_UNION_SEMUN,
[AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>],
[union semun arg ;],
[rtems_cv_HAS_UNION_SEMUN="yes"],
[rtems_cv_HAS_UNION_SEMUN="no"])
if test "$rtems_cv_HAS_UNION_SEMUN" = "yes"; then
AC_DEFINE(HAS_UNION_SEMUN)
fi])
])
AC_DEFUN(RTEMS_SYSV_SEM,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V semaphores,
rtems_cv_sysv_sem,
[
AC_TRY_RUN(
[
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#if !HAS_UNION_SEMUN
union semun {
int val;
struct semid_ds *buf;
ushort *array;
} ;
#endif
int main () {
union semun arg ;
int id=semget(IPC_PRIVATE,1,IPC_CREAT|0400);
if (id == -1)
exit(1);
arg.val = 0; /* avoid implicit type cast to union */
if (semctl(id, 0, IPC_RMID, arg) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_sem="yes", rtems_cv_sysv_sem="no", :)
])
])
AC_DEFUN(RTEMS_SYSV_SHM,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V shared memory,
rtems_cv_sysv_shm,
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
int main () {
int id=shmget(IPC_PRIVATE,1,IPC_CREAT|0400);
if (id == -1)
exit(1);
if (shmctl(id, IPC_RMID, 0) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_shm="yes", rtems_cv_sysv_shm="no", :)
])
])
AC_DEFUN(RTEMS_SYSV_MSG,
[AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([RTEMS_CANONICAL_HOST])
AC_CACHE_CHECK(whether $RTEMS_HOST supports System V messages,
rtems_cv_sysv_msg,
[
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
int main () {
int id=msgget(IPC_PRIVATE,IPC_CREAT|0400);
if (id == -1)
exit(1);
if (msgctl(id, IPC_RMID, 0) == -1)
exit(1);
exit(0);
}
],
rtems_cv_sysv_msg="yes", rtems_cv_sysv_msg="no", :)
])
])
AC_DEFUN(RTEMS_CHECK_SYSV_UNIX,
[AC_REQUIRE([RTEMS_CANONICAL_HOST])
if test "$RTEMS_CPU" = "unix" ; then
RTEMS_UNION_SEMUN
RTEMS_SYSV_SEM
if test "$rtems_cv_sysv_sem" != "yes" ; then
AC_MSG_ERROR([System V semaphores don't work, required by simulator])
fi
RTEMS_SYSV_SHM
if test "$rtems_cv_sysv_shm" != "yes" ; then
AC_MSG_ERROR([System V shared memory doesn't work, required by simulator])
fi
RTEMS_SYSV_MSG
if test "$rtems_cv_sysv_msg" != "yes" ; then
AC_MSG_ERROR([System V messages don't work, required by simulator])
fi
fi
])

127
macros/target.m4 Normal file
View File

@@ -0,0 +1,127 @@
dnl $Id$
AC_DEFUN(RTEMS_CONFIG_SUBDIRS,
[
define([RTEMS_TGT_SUBDIRS],
ifdef([RTEMS_TGT_SUBDIRS], [RTEMS_TGT_SUBDIRS ],)[$1])dnl
target_subdirs="RTEMS_TGT_SUBDIRS"
AC_SUBST(target_subdirs)
])
dnl Derived from automake-1.4's AC_OUTPUT_SUBDIRS
AC_DEFUN(RTEMS_OUTPUT_SUBDIRS,
[
if test "$no_recursion" != yes; then
if test $target_alias != $host_alias; then
target_subdir="$target_alias"
else
target_subdir="."
fi
# Remove --cache-file and --srcdir arguments so they do not pile up.
ac_sub_configure_args=
ac_prev=
for ac_arg in $ac_configure_args; do
if test -n "$ac_prev"; then
ac_prev=
continue
fi
case "$ac_arg" in
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_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)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
*) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;;
esac
done
test -d $target_subdir || mkdir $target_subdir
for ac_config_dir in $1; do
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
if test ! -d $srcdir/$ac_config_dir; then
continue
fi
echo configuring in $target_subdir/$ac_config_dir
case "$srcdir" in
## .) ;;
*)
if test -d $target_subdir/$ac_config_dir || mkdir $target_subdir/$ac_config_dir; then :;
else
AC_MSG_ERROR(can not create `pwd`/$target_subdir/$ac_config_dir)
fi
;;
esac
ac_popdir=`pwd`
cd $target_subdir/$ac_config_dir
changequote(, )dnl
# A "../" for each directory in /$ac_config_dir.
ac_dots=`echo $target_subdir/$ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'`
changequote([, ])dnl
case "$srcdir" in
## .) # No --srcdir option. We are building in place.
## ac_sub_srcdir=$srcdir ;;
/*) # Absolute path.
ac_sub_srcdir=$srcdir/$ac_config_dir ;;
*) # Relative path.
ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;;
esac
# Check for guested configure; otherwise get Cygnus style configure.
if test -f $ac_sub_srcdir/configure; then
ac_sub_configure=$ac_sub_srcdir/configure
elif test -f $ac_sub_srcdir/configure.in; then
ac_sub_configure=$ac_configure
else
AC_MSG_WARN(no configuration information is in $ac_config_dir)
ac_sub_configure=
fi
# The recursion is here.
if test -n "$ac_sub_configure"; then
# Make the cache file name correct relative to the subdirectory.
if test "$target_alias" != "$host_alias"; then
ac_sub_cache_file=$cache_file
else
case "$cache_file" in
/*) ac_sub_cache_file=$cache_file ;;
*) # Relative path.
ac_sub_cache_file="$ac_dots$cache_file" ;;
esac
fi
ifdef([AC_PROVIDE_AC_PROG_INSTALL],
[ case "$ac_given_INSTALL" in
changequote(, )dnl
[/$]*) INSTALL="$ac_given_INSTALL" ;;
changequote([, ])dnl
*) INSTALL="$ac_dots$ac_given_INSTALL" ;;
esac
])dnl
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 $ac_config_dir)
fi
fi
cd $ac_popdir
done
fi
])

23
macros/tool-paths.m4 Normal file
View File

@@ -0,0 +1,23 @@
AC_DEFUN(RTEMS_TOOLPATHS,
[
# tooldir='$(exec_prefix)/'$target_alias
# Temporary work-around until building in source tree is supported
AC_REQUIRE([RTEMS_PROJECT_ROOT])
tooldir='$(PROJECT_ROOT)'
AC_SUBST(tooldir)
project_includedir='$(tooldir)'/include
AC_SUBST(project_includedir)
project_libdir='$(tooldir)/lib$(MULTISUBDIR)'
AC_SUBST(project_libdir)
project_bindir='$(tooldir)/bin'
AC_SUBST(project_bindir)
rtems_bspdir='$(prefix)/${RTEMS_BSP}'
AC_SUBST(rtems_bspdir)
rtems_makedir='$(prefix)/make'
AC_SUBST(rtems_makedir)
])

22
macros/tool-prefix.m4 Normal file
View File

@@ -0,0 +1,22 @@
dnl
dnl $Id$
dnl
dnl Set program_prefix
dnl
dnl 98/05/20 Ralf Corsepius (corsepiu@faw.uni-ulm.de)
dnl Extracted from configure
AC_DEFUN(RTEMS_TOOL_PREFIX,
[AC_REQUIRE([AC_CANONICAL_TARGET])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
changequote(,)dnl
if [ "${program_prefix}" = "NONE" ] ; then
if [ "${target}" = "${host}" ] ; then
program_prefix=
else
program_prefix=${target}-
fi
fi
changequote([,])dnl
])