📄 aclocal.m4
字号:
[dnlAC_REQUIRE([RTEMS_ENABLE_MULTILIB])dnlAC_REQUIRE([RTEMS_ENV_RTEMSBSP])dnlAC_REQUIRE([RTEMS_TOP])dnlAC_REQUIRE([RTEMS_CHECK_CPU])dnlAC_REQUIRE([RTEMS_ENABLE_MULTIPROCESSING])dnlAC_REQUIRE([RTEMS_BSP_ALIAS])dnlAC_CACHE_CHECK([if wanting multiprocessing], [rtems_cv_want_multiprocessing], [ AS_IF([test x"$multilib" = x"no"], [# no cpukit rtems_cv_want_multiprocessing="$enable_multiprocessing" ],[#HACK: Should check for RTEMS_MULTIPROCESSING in cpuopts.h, instead rtems_cv_want_multiprocessing="$enable_multiprocessing" ]) ])AS_IF([test "$rtems_cv_want_multiprocessing" = "yes"],[ AC_CACHE_CHECK([whether BSP supports multiprocessing], [rtems_cv_HAS_MP],[ if test -d "$srcdir/${RTEMS_TOPdir}/c/src/lib/libbsp/${RTEMS_CPU}/${RTEMS_BSP_FAMILY}/shmsupp"; then rtems_cv_HAS_MP="yes" ; else rtems_cv_HAS_MP="no"; fi ])if test $rtems_cv_HAS_MP = "no"; thenAC_MSG_ERROR([multiprocessing requested but not supported])fi],[rtems_cv_HAS_MP="no";])AC_SUBST(HAS_MP,[$rtems_cv_HAS_MP])])dnl This provides configure definitions used for multilib supportdnl parts of these macros are derived from newlib-1.8.2's multilib supportAC_DEFUN([RTEMS_ENABLE_MULTILIB],[AC_ARG_ENABLE(multilib,AC_HELP_STRING([--enable-multilib],[build many library versions (default=no)]),[case "${enableval}" in yes) multilib=yes ;; no) multilib=no ;; *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; esac], [multilib=no])dnlAM_CONDITIONAL(MULTILIB,test x"${multilib}" = x"yes")])dnl $Id: check-cpu.m4,v 1.6.2.1 2004/08/18 07:23:00 ralf Exp $dnl check if RTEMS support a cpuAC_DEFUN([RTEMS_CHECK_CPU],[dnlAC_REQUIRE([RTEMS_TOP])AC_REQUIRE([RTEMS_CANONICAL_TARGET_CPU])# Is this a supported CPU?AC_MSG_CHECKING([if cpu $RTEMS_CPU is supported])# FIXME: Temporary hackif test -d "$srcdir/$RTEMS_TOPdir/cpukit/score/cpu/$RTEMS_CPU"; then AC_MSG_RESULT(yes)else AC_MSG_ERROR(no)fi])dnldnl $Id: enable-multiprocessing.m4,v 1.6.2.1 2004/08/18 07:23:00 ralf Exp $AC_DEFUN([RTEMS_ENABLE_MULTIPROCESSING],[AC_ARG_ENABLE(multiprocessing,[AC_HELP_STRING([--enable-multiprocessing],[enable multiprocessing interface])],[case "${enable_multiprocessing}" in yes) ;; no) ;; *) AC_MSG_ERROR(bad value ${enableval} for enable-multiprocessing option) ;;esac],[enable_multiprocessing=no])])dnldnl $Id: bsp-alias.m4,v 1.16.2.3 2005/10/05 19:31:20 joel Exp $dnl dnl _RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)dnl Internal subroutine to RTEMS_BSP_ALIASAC_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 mvme2100) $2=motorola_powerpc ;; # Motorola PPC board variant mvme2307) $2=motorola_powerpc ;; # Motorola PPC board variant mtx603e) $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 pc386dx) $2=pc386 ;; # i386 - PC w/o FPU 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 sis) $2=erc32 ;; # ERC32 SIS simulator leon2) $2=leon2 ;; # leon with fpu leon3) $2=leon3 ;; # another leon variant simsh7032) $2=shsim ;; # SH7032 simulator simsh7045) $2=shsim ;; # SH7045 simulator *) $2=$1;; esac])dnl RTEMS_BSP_ALIAS(BSP_ALIAS,RTEMS_BSP_FAMILY)dnl convert a bsp alias $1 into its bsp directory RTEMS_BSP_FAMILYAC_DEFUN([RTEMS_BSP_ALIAS],[_RTEMS_BSP_ALIAS(m4_if([$1],,[$RTEMS_BSP],[$1]), m4_if([$2],,[RTEMS_BSP_FAMILY],[$2]))])dnldnl $Id: prog-cc.m4,v 1.18.2.2 2004/08/18 07:23:00 ralf Exp $dnl dnl Check for target gccdnlAC_DEFUN([RTEMS_PROG_CC],[AC_BEFORE([$0], [AC_PROG_CPP])dnlAC_BEFORE([$0], [AC_PROG_CC])dnlAC_BEFORE([$0], [RTEMS_CANONICALIZE_TOOLS])dnl_RTEMS_FLAGS([CFLAGS], ["\$(CPU_CFLAGS) \$(RTEMS_CFLAGS_\$(VARIANT_V)_V) \$(CFLAGS_\$(VARIANT_V)_V) -g"])RTEMS_CHECK_TOOL(CC,gcc)test -z "$CC" && \ AC_MSG_ERROR([no acceptable cc found in \$PATH])AC_PROG_CCAC_PROG_CPPAM_CONDITIONAL(RTEMS_USE_GCC,test x"$GCC" = x"yes")])AC_DEFUN([RTEMS_PROG_CC_FOR_TARGET],[dnl check target ccRTEMS_PROG_CCdnl check if the compiler supports -isystemRTEMS_GCC_ISYSTEMdnl check if the target compiler may use --pipeRTEMS_GCC_PIPEtest "$rtems_cv_gcc_pipe" = "yes" && CC="$CC --pipe"dnl check if the compiler supports --specsRTEMS_GCC_SPECSif test "$GCC" = yes; thenRTEMS_CFLAGS="$RTEMS_CFLAGS -Wall"m4_if([$1],,[],[RTEMS_CFLAGS="$RTEMS_CFLAGS $1"])fiAS_IF([test x"$rtems_cv_gcc_isystem" = x"yes"],[ RTEMS_CPPFLAGS="-isystem \$(PROJECT_INCLUDE)"],[ RTEMS_CPPFLAGS="-I\$(PROJECT_INCLUDE)"])AC_SUBST(RTEMS_CPPFLAGS)])dnldnl $Id: canonicalize-tools.m4,v 1.16.2.1 2004/08/18 07:23:00 ralf Exp $dnldnl Set target toolsdnlAC_DEFUN([RTEMS_CANONICALIZE_TOOLS],[AC_REQUIRE([RTEMS_PROG_CC])dnldnl FIXME: What shall be done if these tools are not available? RTEMS_CHECK_TOOL(AR,ar,no) RTEMS_CHECK_TOOL(AS,as,no) RTEMS_CHECK_TOOL(LD,ld,no) RTEMS_CHECK_TOOL(NM,nm,no)dnl special treatment of ranlib RTEMS_CHECK_TOOL(RANLIB,ranlib,:)dnl NOTE: These may not be available if not using gnutools RTEMS_CHECK_TOOL(OBJCOPY,objcopy,no) RTEMS_CHECK_TOOL(SIZE,size,no) RTEMS_CHECK_TOOL(STRIP,strip,:)])dnl $Id: check-tool.m4,v 1.2.4.1 2004/08/18 07:23:00 ralf Exp $dnl RTEMS_CHECK_TOOL(VARIABLE, PROG-TO-CHECK-FOR[, VALUE-IF-NOT-FOUND [, PATH]])AC_DEFUN([RTEMS_CHECK_TOOL],[ AS_IF([test "x$build_alias" != "x$host_alias"], [rtems_tool_prefix=${ac_tool_prefix}]) AC_CHECK_PROG($1, ${rtems_tool_prefix}$2, ${rtems_tool_prefix}$2, $3, $4)])AC_DEFUN([_RTEMS_FLAGS],[AS_IF([test -n "[$]{$1}"], [RTEMS_$1=[$]{$1}], [RTEMS_$1=$2])AC_SUBST([RTEMS_$1])])dnldnl $Id: gcc-isystem.m4,v 1.1.2.2 2004/08/18 07:23:00 ralf Exp $dnldnl Check whether the gcc accepts -isystemdnlAC_DEFUN([RTEMS_GCC_ISYSTEM],[AC_REQUIRE([RTEMS_PROG_CC])AC_CACHE_CHECK(whether $CC accepts -isystem,rtems_cv_gcc_isystem,[rtems_cv_gcc_isystem=noif test x"$GCC" = x"yes"; thencat << EOF > conftest.hint conftest123();EOFcat << EOF > conftest.c#include <conftest.h>int conftest123() {}EOF if test -z "`${CC} -isystem./ -c conftest.c 2>&1`";then rtems_cv_gcc_isystem=yes fifirm -f conftest*])])dnldnl $Id: gcc-pipe.m4,v 1.8.6.1 2004/08/18 07:23:00 ralf Exp $dnldnl Check whether the target compiler accepts -pipednlAC_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=noif test x"$GCC" = x"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])])dnldnl $Id: gcc-specs.m4,v 1.5.6.1 2004/08/18 07:23:00 ralf Exp $dnldnl Check whether the target compiler accepts -specsdnlAC_DEFUN([RTEMS_GCC_SPECS],[AC_REQUIRE([RTEMS_PROG_CC])AC_CACHE_CHECK(whether $CC accepts -specs,rtems_cv_gcc_specs,[rtems_cv_gcc_specs=noif test x"$GCC" = x"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 fifirm -f confspec conftest*])])dnl $Id: bsp-arg-enable.m4,v 1.2.6.1 2004/08/18 07:23:00 ralf Exp $dnldnl RTEMS_BSP_ARG_ENABLE(FEATURE, HELP-STRING, ACTION-IF-TRUE [, ACTION-IF-FALSE])dnl dnl Accept --enable-FEATURE=<RTEMS_BSP>:<bsp-value> and dnl --enable-FEATURE=<value> in BSP-configure scripts.dnldnl Configure scripts will receive <bsp-value> if <RTEMS_BSP> matches the dnl actual value of the shell variable RTEMS_BSP (cf. RTEMS_ENV_RTEMSBSP), dnl and the raw value passed to --enable-FEATURE otherwise.dnlAC_DEFUN([RTEMS_BSP_ARG_ENABLE],[AC_REQUIRE([RTEMS_ENV_RTEMSBSP])AC_ARG_ENABLE([$1],[$2],[enableval=`echo "[$enable_]patsubst([$1], -, _)" | sed -e "s%^${RTEMS_BSP}:%%"` eval "[enable_]patsubst([$1], -, _)='$enableval'"$3],[$4])])dnl $Id: bspopts.m4,v 1.1 2001/11/14 18:57:26 joel Exp $dnldnl RTEMS_BSPOPTS_* - some autoconf voodoo to handle default values anddnl help-strings for per-BSP-environment variables.dnl To be used in bsp-configure scriptsdnl Example:dnldnl RTEMS_BSPOPTS_SET([foo],[bar],[0])dnl RTEMS_BSPOPTS_SET([foo],[baz*],[hello])dnl RTEMS_BSPOPTS_SET([foo],[*],[])dnl RTEMS_BSPOPTS_HELP([foo],[env. variable foo])dnl -> Add "0" as default value of variable "foo" for BSP "bar"dnl -> Add "hello" as default value of variable "foo" for all BSPs startingdnl with "baz" in their name.dnl -> Undefine foo as default clause for all BSP's.dnldnl All this basically expands to a /bin/shell "case"-statement withdnl accompanying autoconf magic to propagate VAR to bspopts.h.dnl RTEMS_BSPOPTS_HELP(VAR,HELP-STRING)dnl Set up printing the HELP-STRING for bspopts.h's variable VAR and adddnl appropriate /bin/sh-magic to "configure" to have VAR set up.AC_DEFUN([RTEMS_BSPOPTS_HELP],[RTEMS_ARG_VAR([$1],[$2])m4_ifdef([_$1],[case ${RTEMS_BSP} in_$1[]dnlesac],[])if test -n "[$]{$1}"; then[]dnlAC_DEFINE_UNQUOTED([$1], [[$]$1], [$2])dnlfi])dnl RTEMS_BSPOPTS_SET(VAR,BSP,DEFAULT)dnl Set up a value DEFAULT to be used as default value for variable VAR fordnl BSP in RTEMS_BSPOPTS_HELP.dnl MUST be use in front of exactly _one_ corresponding RTEMS_BSPOPTS_HELPAC_DEFUN([RTEMS_BSPOPTS_SET],[dnlm4_append([_$1],[$2 ) $1=[$]{$1-$3} ;;])])dnl RTEMS_ARG_VAR(VAR,HELP-STRING)dnl An internal macros to have RTEMS_BSPOPTS_HELP's help string prettydnl printed with configure --help.dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.AC_DEFUN([RTEMS_ARG_VAR],[m4_expand_once([m4_divert_once([HELP_VAR],[AC_HELP_STRING([$1], [$2], [ ])])], [$0($1)])dnl])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -