summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2000-07-28 02:10:36 +0000
committerAlexandre Oliva <aoliva@redhat.com>2000-07-28 02:10:36 +0000
commit08bfc323e378fac20f611db2bb2fa5128297aaab (patch)
treecc444db164da35ecff403656f5afa31034ec9a0b
parente233a54c8974280897a0c397f453cbc108f6906d (diff)
downloadgdb-08bfc323e378fac20f611db2bb2fa5128297aaab.tar.gz
* Makefile.in (FLAGS_FOR_TARGET): New macro.
(GCC_FOR_TARGET): Use it. (CC_FOR_TARGET, CXX_FOR_TARGET, CHILL_FOR_TARGET): Now defined... * configure.in: ... here. (FLAGS_FOR_TARGET): Define. Add ld build dir to -L path. (libstdcxx_flags): Define and append to CXX_FOR_TARGET.
-rw-r--r--ChangeLog9
-rw-r--r--Makefile.in63
-rw-r--r--configure.in74
3 files changed, 89 insertions, 57 deletions
diff --git a/ChangeLog b/ChangeLog
index 2540ed432d9..7c8d79f9d5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-07-27 Alexandre Oliva <aoliva@redhat.com>
+
+ * Makefile.in (FLAGS_FOR_TARGET): New macro.
+ (GCC_FOR_TARGET): Use it.
+ (CC_FOR_TARGET, CXX_FOR_TARGET, CHILL_FOR_TARGET): Now defined...
+ * configure.in: ... here.
+ (FLAGS_FOR_TARGET): Define. Add ld build dir to -L path.
+ (libstdcxx_flags): Define and append to CXX_FOR_TARGET.
+
2000-07-24 Alexandre Oliva <aoliva@redhat.com>
* Makefile.in (configure-target-libf2c): Depend on $(ALL_GCC).
diff --git a/Makefile.in b/Makefile.in
index cdae32156ed..cac1bbd9d67 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -210,66 +210,17 @@ INSTALL_TARGET_CROSS = installdirs \
$(INSTALL_X11_MODULES) \
$(INSTALL_DOSREL)
-CC_FOR_TARGET = ` \
- if [ -f $$r/gcc/xgcc ] ; then \
- if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
- case "$(target_canonical)" in \
- i[3456]86-*-cygwin*) \
- echo $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$$r/gcc/ -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/include -idirafter $$s/winsup/cygwin/include -idirafter $$s/winsup/w32api/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc; \
- ;; \
- *) \
- echo $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
- ;; \
- esac \
- else \
- echo $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -isystem $(build_tooldir)/include; \
- fi; \
- else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo $(CC); \
- else \
- t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
- fi; \
- fi`
+# Should be substed by configure.in
+FLAGS_FOR_TARGET =
+CC_FOR_TARGET =
+CHILL_FOR_TARGET =
+CXX_FOR_TARGET =
-# If CC_FOR_TARGET is not overriden on the command line, then this
+# If GCC_FOR_TARGET is not overriden on the command line, then this
# variable is passed down to the gcc Makefile, where it is used to
# build libgcc2.a. We define it here so that it can itself be
# overridden on the command line.
-GCC_FOR_TARGET = $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -isystem $(build_tooldir)/include
-
-CHILL_FOR_TARGET = ` \
- if [ -f $$r/gcc/xgcc ] ; then \
- echo $$r/gcc/xgcc -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -L$$r/gcc/ch/runtime/; \
- else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo $(CC); \
- else \
- t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
- fi; \
- fi`
-
-CXX_FOR_TARGET = ` \
- if [ -f $$r/gcc/g++ ] ; then \
- if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
- case "$(target_canonical)" in \
- i[3456]86-*-cygwin*) \
- echo $$r/gcc/g++ -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$$r/gcc/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/winsup/cygwin/include -idirafter $$s/winsup/w32api/include -idirafter $$s/newlib/libc/include -idirafter $$s/newlib/libc/sys/cygwin -idirafter $$s/newlib/libc/sys/cygwin32 -nostdinc -L$$r/$(TARGET_SUBDIR)/libstdc++; \
- ;; \
- *) \
- echo $$r/gcc/g++ -B$(build_tooldir)/bin/ -B$$r/$(TARGET_SUBDIR)/newlib/ -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc -L$$r/$(TARGET_SUBDIR)/libstdc++; \
- ;; \
- esac \
- else \
- echo $$r/gcc/g++ -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -B$$r/gcc/ -isystem $(build_tooldir)/include -L$$r/$(TARGET_SUBDIR)/libstdc++; \
- fi; \
- else \
- if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
- echo $(CXX); \
- else \
- t='$(program_transform_name)'; echo c++ | sed -e 's/x/x/' $$t; \
- fi; \
- fi`
+GCC_FOR_TARGET = $$r/gcc/xgcc $(FLAGS_FOR_TARGET)
AS_FOR_TARGET = ` \
if [ -f $$r/gas/as-new ] ; then \
diff --git a/configure.in b/configure.in
index 56c5d7b5daf..66d495fe9ab 100644
--- a/configure.in
+++ b/configure.in
@@ -48,10 +48,13 @@ if [ "${enable_gdbgui}" = "yes" ] ; then
fi
# Set up configure/Makefile variables if libstdc++-v3 is to be built.
-if [ "${enable_libstdcxx_v3}" = "yes" ] ; then
+if [ "${enable_libstdcxx_v3}" = "yes" ] && test -d $srcdir/libstdc++-v3; then
libstdcxx_version="target-libstdc++-v3"
+ # Don't use libstdc++-v3's flags to configure/build itself.
+ libstdcxx_flags='`test "x$$dir" != xlibstdc++-v3 && test -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/mkcheck && $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/mkcheck 2 $$r/$(TARGET_SUBDIR)/libstdc++-v3 $$s/libstdc++-v3 | sed -e "s/-I/-isystem /g"` -L$$r/$(TARGET_SUBDIR)/libstd++-v3/src -L$$r/$(TARGET_SUBDIR)/libstd++-v3/src/.libs'
else
libstdcxx_version="target-libio target-libstdc++"
+ libstdcxx_flags='-isystem $$s/libstdc++ -isystem $$s/libstdc++/std -isystem $$s/libstdc++/stl -isystem $$s/libio/ -isystem $$s/libio/stdio -L$$r/$(TARGET_SUBDIR)/libstdc++'
fi
# these tools are built for the host environment
@@ -1213,9 +1216,78 @@ else
gxx_include_dir=${gxx_include_dir}
fi
+FLAGS_FOR_TARGET=
+if test -d ${topsrcdir}/gcc; then
+ # Directories specified with -B are searched for libraries after those
+ # specified with -L, but for headers (in sub-directory `include')
+ # before those specified with -I and -isystem. Fortunately, we don't
+ # expect include directories to exist in build_tooldir/{bin,lib} (see
+ # below), and we want gcc/include to be searched first.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/gcc/'
+fi
+case " $skipdirs " in
+*" target-newlib "*) ;;
+*)
+ case "$target" in
+ i[3456]86-*-cygwin*)
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(TARGET_SUBDIR)/winsup -L$$r/$(TARGET_SUBDIR)/winsup/cygwin -L$$r/$(TARGET_SUBDIR)/winsup/w32api/lib -isystem $$s/winsup/include -isystem $$s/winsup/cygwin/include -isystem $$s/winsup/w32api/include -isystem $$s/newlib/libc/sys/cygwin -isystem $$s/newlib/libc/sys/cygwin32' ;;
+ esac
+
+ # If we're building newlib, use its generic headers last, but search
+ # for any libc-related directories first (so make it the last -B
+ # switch).
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -nostdinc -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
+ ;;
+esac
+if test -d ${topsrcdir}/gcc; then
+ # Search for pre-installed headers if nothing else fits.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include'
+fi
+if test "x${use_gnu_ld}" = x && test "x${with_gnu_ld}" != xno &&
+ echo " ${configdirs} " | grep " ld " > /dev/null &&
+ test -d ${srcdir}/ld; then
+ # Arrange for us to find uninstalled linker scripts.
+ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/ld'
+fi
+
+if test -d ${topsrcdir}/gcc; then
+ CC_FOR_TARGET='$$r/gcc/xgcc'
+elif test "$host" = "$target"; then
+ CC_FOR_TARGET='$(CC)'
+else
+ CC_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
+fi
+CC_FOR_TARGET=$CC_FOR_TARGET' $(FLAGS_FOR_TARGET)'
+
+if test -d ${topsrcdir}/gcc &&
+ echo ",${enable_languages-${LANGUAGES-CHILL}}," |
+ grep ,CHILL, > /dev/null ; then
+ CHILL_FOR_TARGET='$$r/gcc/xgcc -L$$r/gcc/ch/runtime/'
+elif test "$host" = "$target"; then
+ CHILL_FOR_TARGET='$(CC)'
+else
+ CHILL_FOR_TARGET=`echo gcc | sed -e 's/x/x/' ${program_transform_name}`
+fi
+CHILL_FOR_TARGET=$CHILL_FOR_TARGET' $(FLAGS_FOR_TARGET)'
+
+if test -d ${topsrcdir}/gcc &&
+ echo ",${enable_languages-${LANGUAGES-c++}}," |
+ grep ',c[+][+],' > /dev/null ; then
+ CXX_FOR_TARGET='$$r/gcc/g++ -nostdinc++ '$libstdcxx_flags
+elif test "$host" = "$target"; then
+ CXX_FOR_TARGET='$(CXX)'
+else
+ CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}`
+fi
+CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)'
+
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
-e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
+ -e "s%^FLAGS_FOR_TARGET[ ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \
+ -e "s%^CC_FOR_TARGET[ ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \
+ -e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \
+ -e "s%^CXX_FOR_TARGET[ ]*=.*$%CXX_FOR_TARGET = ${CXX_FOR_TARGET}%" \
-e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
-e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
Makefile > Makefile.tem