source: rtems/c/configure.in @ 3330ecb

4.104.114.84.95
Last change on this file since 3330ecb was b62a92c, checked in by Joel Sherrill <joel.sherrill@…>, on 10/04/99 at 18:20:14

Patch from Ralf Corsepius <corsepiu@…>:

The patch below actuallly consists of two patches:
1) moving librpc to c/src/librpc similar to what has been done to librtems++
2) reworked configure scripts, many safety and dependency checks added to
aclocal/*.m4 macros + configuration fixes.

To apply:

mkdir c/src/librpc
mkdir c/src/librpc/src
cp c/src/lib/librpc/*.c c/src/librpc/src
cp c/src/lib/librpc/Makefile.in c/src/librpc/src
mkdir c/src/librpc/include
mkdir c/src/librpc/include/rpc
cp c/src/lib/include/rpc/* c/src/librpc/include/rpc
patch -p1 < ../rtems-rc-19990820-7.diff
rm -rf c/src/lib/librpc
rm -rf c/src/lib/include/rpc
./autogen

The additional checks in aclocal/*m4 macros add rather restrictive, sometimes
unnecessarily restrictive constraints on the sequence of how macros can be
used in a configure.in script. Adding them has let my problems with some more
complicated configuration options vanish. Apparently some macros had not been
in the required order .


Now I still get some linking errors for some cpus and bsps, esp when linking
cdtest, but also at other locations:

e.g. this happens for mips64orion/p4600:

# make[5]: Entering directory
`/lfs/poseidon/users/rtems/src/multi/build/mips64orion-rtems/c/p4600/tests/samples/hello'

/opt/rtems/bin/mips64orion-rtems-gcc --pipe -B../../../../../../p4600/lib/
-specs bsp_specs -qrtems -DP4000 -DCPU_R4000 -DP3_DIAG -D_R4000 -Dmips=3
-mcpu=4600 -G0 -I../../../../../../p4600/lib/include/networking -g -Wall
-ansi -fasm -O4 -fomit-frame-pointer -o o-p4600/hello.exe
o-p4600/init.o ../../../../../../p4600/lib/no-dpmem.rel
../../../../../../p4600/lib/no-event.rel
../../../../../../p4600/lib/no-msg.rel ../../../../../../p4600/lib/no-mp.rel
../../../../../../p4600/lib/no-part.rel
../../../../../../p4600/lib/no-signal.rel
../../../../../../p4600/lib/no-timer.rel
../../../../../../p4600/lib/no-rtmon.rel
/opt/rtems/mips64orion-rtems/lib/libc.a(dtoa.o): In function `_dtoa_r':
/opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol
/opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol
/opt/hermes/embedded/build/build-mips64orion-tools/mips64orion-rtems/newlib/libc/stdlib/../../../../../src/newlib/libc/stdlib/dtoa.c:348: relocation truncated to fit: R_MIPS_LITERAL no symbol
collect2: ld returned 1 exit status

# mips64orion-rtems-gcc -v
Reading specs from /opt/rtems/lib/gcc-lib/mips64orion-rtems/2.95.1/specs
gcc version 2.95.1 19990816 (release)

# mips64orion-rtems-ld -v
GNU ld version 2.9.5 (with BFD 2.9.5)

  • Property mode set to 100644
File size: 2.8 KB
Line 
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl  $Id$
4
5AC_PREREQ(2.13)
6AC_INIT(src)
7RTEMS_TOP(..)
8AC_CONFIG_AUX_DIR(..)
9
10RTEMS_CANONICAL_TARGET_CPU
11
12AM_INIT_AUTOMAKE(rtems-c,$RTEMS_VERSION,no)
13AM_MAINTAINER_MODE
14
15dnl These options are used within this file.
16RTEMS_ENABLE_BARE
17RTEMS_ENABLE_RTEMSBSP(rtems_bsp)
18
19RTEMS_CHECK_CPU
20RTEMS_CANONICAL_HOST
21
22if test -z "$rtems_bsp"; then
23  RTEMS_CHECK_BSPS(rtems_bsp)
24fi
25
26for i in $rtems_bsp; do
27
28    # make sure there is a make/custom file for the bsp
29    RTEMS_CHECK_CUSTOM_BSP(i)
30 
31    RTEMS_BSP_ALIAS($i,bspdir)
32
33    # Is there code where there should be for this BSP?
34    # The bare bsp is a special case as it is not under the RTEMS_CPU path
35    case $bspdir in
36      bare)
37        bspcpudir=
38        if test "X${BARE_CPU_CFLAGS}" = "X" ; then
39          AC_MSG_ERROR([--enable-bare-cpu-cflags not specified for bare bsp])
40        fi
41        if test "X${BARE_CPU_MODEL}" = "X" ; then
42          AC_MSG_ERROR([--enable-bare-cpu-model not specified for bare bsp])
43        fi
44        ;;
45      *)
46        bspcpudir=$RTEMS_CPU/
47        ;;
48    esac
49     
50    if test -d "$srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$bspcpudir$bspdir"; then
51      RTEMS_BSP_LIST="$RTEMS_BSP_LIST $i"
52    else
53      AC_MSG_ERROR([unable to find libbsp directory ($bspdir) for  $i])
54    fi
55done
56
57#
58# Compose the configuration arguments to be passed to c/src/configure
59#
60##
61## Partially borrowed from autoconf-2.13
62##
63
64## Adjust paths
65case $srcdir in
66/*) rtems_bsp_configure="$srcdir/src/configure";;
67*)  rtems_bsp_configure="../$srcdir/src/configure";;
68esac
69
70## Remove --cache-file, --srcdir and --enable-rtemsbsp arguments
71## so they do not pile up
72  rtems_bsp_configure_args=
73  for ac_arg in $ac_configure_args; do
74    if test -n "$ac_prev"; then
75      ac_prev=
76      continue
77    fi
78    case "$ac_arg" in
79    -cache-file | --cache-file | --cache-fil | --cache-fi \
80    | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
81      ac_prev=cache_file ;;
82    -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
83    | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
84      ;;
85    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
86      ac_prev=srcdir ;;
87    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
88      ;;
89    --enable-rtemsbsp*) ;;
90    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
91      ;;
92    *) rtems_bsp_configure_args="$rtems_bsp_configure_args $ac_arg" ;;
93    esac
94  done
95
96rtems_bsp_configure="$rtems_bsp_configure $rtems_bsp_configure_args"
97AC_SUBST(rtems_bsp_configure)
98
99AC_SUBST(RTEMS_BSP_LIST)
100
101AC_OUTPUT(
102Makefile
103)
104
105echo
106echo target architecture: $target_cpu.
107echo available BSPs: $rtems_bsp.
108echo \'make all\' will build the following BSPs: $RTEMS_BSP_LIST.
109echo other BSPs can be built with \'make RTEMS_BSP=\"bsp1 bsp2 ...\"\'
110echo
Note: See TracBrowser for help on using the repository browser.