forked from Imagelibrary/rtems
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 -D__mips=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)
111 lines
2.8 KiB
Plaintext
111 lines
2.8 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
dnl
|
|
dnl $Id$
|
|
|
|
AC_PREREQ(2.13)
|
|
AC_INIT(src)
|
|
RTEMS_TOP(..)
|
|
AC_CONFIG_AUX_DIR(..)
|
|
|
|
RTEMS_CANONICAL_TARGET_CPU
|
|
|
|
AM_INIT_AUTOMAKE(rtems-c,$RTEMS_VERSION,no)
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl These options are used within this file.
|
|
RTEMS_ENABLE_BARE
|
|
RTEMS_ENABLE_RTEMSBSP(rtems_bsp)
|
|
|
|
RTEMS_CHECK_CPU
|
|
RTEMS_CANONICAL_HOST
|
|
|
|
if test -z "$rtems_bsp"; then
|
|
RTEMS_CHECK_BSPS(rtems_bsp)
|
|
fi
|
|
|
|
for i in $rtems_bsp; do
|
|
|
|
# make sure there is a make/custom file for the bsp
|
|
RTEMS_CHECK_CUSTOM_BSP(i)
|
|
|
|
RTEMS_BSP_ALIAS($i,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 $bspdir 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 -d "$srcdir/$RTEMS_TOPdir/c/src/lib/libbsp/$bspcpudir$bspdir"; then
|
|
RTEMS_BSP_LIST="$RTEMS_BSP_LIST $i"
|
|
else
|
|
AC_MSG_ERROR([unable to find libbsp directory ($bspdir) for $i])
|
|
fi
|
|
done
|
|
|
|
#
|
|
# Compose the configuration arguments to be passed to c/src/configure
|
|
#
|
|
##
|
|
## Partially borrowed from autoconf-2.13
|
|
##
|
|
|
|
## Adjust paths
|
|
case $srcdir in
|
|
/*) rtems_bsp_configure="$srcdir/src/configure";;
|
|
*) rtems_bsp_configure="../$srcdir/src/configure";;
|
|
esac
|
|
|
|
## Remove --cache-file, --srcdir and --enable-rtemsbsp arguments
|
|
## so they do not pile up
|
|
rtems_bsp_configure_args=
|
|
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=*)
|
|
;;
|
|
--enable-rtemsbsp*) ;;
|
|
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
|
|
;;
|
|
*) rtems_bsp_configure_args="$rtems_bsp_configure_args $ac_arg" ;;
|
|
esac
|
|
done
|
|
|
|
rtems_bsp_configure="$rtems_bsp_configure $rtems_bsp_configure_args"
|
|
AC_SUBST(rtems_bsp_configure)
|
|
|
|
AC_SUBST(RTEMS_BSP_LIST)
|
|
|
|
AC_OUTPUT(
|
|
Makefile
|
|
)
|
|
|
|
echo
|
|
echo target architecture: $target_cpu.
|
|
echo available BSPs: $rtems_bsp.
|
|
echo \'make all\' will build the following BSPs: $RTEMS_BSP_LIST.
|
|
echo other BSPs can be built with \'make RTEMS_BSP=\"bsp1 bsp2 ...\"\'
|
|
echo
|