This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: staging headers patch, next iteration



Here's the complete patch, sans regenerated files.  A full aclocal &&
autoconf && autoheader && automake should be done after putting this
in place.  Also, since 'cvs diff' won't do the 'patch against /dev/null'
thing properly, and 'patch' won't create a new file from such a diff anyhow,
the include/Makefile.am is attached separately.  I /think/ that's the only
file which still needs tweaking for gthr*.


Phil

Index: Makefile.am
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/Makefile.am,v
retrieving revision 1.22
diff -u -3 -r1.22 Makefile.am
--- Makefile.am	2001/05/14 01:14:55	1.22
+++ Makefile.am	2001/07/09 02:11:12
@@ -24,7 +24,7 @@
 AUTOMAKE_OPTIONS = 1.3 cygnus
 MAINT_CHARSET = latin1
 
-SUBDIRS = libio libmath libsupc++ src testsuite
+SUBDIRS = include libio libmath libsupc++ src testsuite
 
 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
 
@@ -58,7 +58,6 @@
 	  ${srcdir}/docs/doxygen/run_doxygen --mode=maint $${srcdir} $${outdir})
 
 .PHONY: doxygen doxygen-maint
-
 
 # Multilib support.
 MAKEOVERRIDES=
Index: acinclude.m4
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/acinclude.m4,v
retrieving revision 1.165
diff -u -3 -r1.165 acinclude.m4
--- acinclude.m4	2001/07/10 12:55:05	1.165
+++ acinclude.m4	2001/07/10 21:03:04
@@ -760,7 +670,6 @@
     . [$]{glibcpp_basedir}/configure.target
     AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
     AC_MSG_RESULT(OS config directory is $os_include_dir)
-    AC_LINK_FILES($os_include_dir/bits/os_defines.h, include/bits/os_defines.h)
 ])
 
 
@@ -1011,7 +920,7 @@
       ;;
   esac
 
-  AC_LINK_FILES($CLOCALE_H, include/bits/c++locale.h)
+  AC_SUBST(CLOCALE_H)
   AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
 ])
 
@@ -1111,13 +1020,13 @@
       exit 1
       ;;
   esac
-  AC_LINK_FILES($CSTDIO_H, include/bits/c++io.h)
-  AC_LINK_FILES($BASIC_FILE_H, include/bits/basic_file_model.h)
+  AC_SUBST(CSTDIO_H)
+  AC_SUBST(BASIC_FILE_H)
   AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
 
   # 2000-08-04 bkoz hack
   CCODECVT_C=config/c_io_libio_codecvt.c
-  AC_LINK_FILES($CCODECVT_C, libio/c_codecvt.c)
+  AC_SUBST(CCODECVT_C)
   # 2000-08-04 bkoz hack
 
   AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO,
@@ -1150,24 +1059,13 @@
   target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
   AC_MSG_RESULT([$target_thread_file])
 
-  AC_LINK_FILES($toprel/gcc/gthr.h, include/bits/gthr.h-in)
-  AC_LINK_FILES($toprel/gcc/gthr-single.h,
-		include/bits/gthr-single.h-in)
-  AC_LINK_FILES($toprel/gcc/gthr-$target_thread_file.h,
-		include/bits/gthr-default.h-in)
   if test $target_thread_file != single; then
     AC_DEFINE(HAVE_GTHR_DEFAULT)
     AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
   fi
-  AC_OUTPUT_COMMANDS([d=include/bits; a='[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]'
-    rm -f $d/gthr.h $d/gthr-single.h $d/gthr-default.h
-    sed '/^#/s/\('"$a$a"'*\)/_GLIBCPP_\1/g' <$d/gthr.h-in \
-      | sed 's,"gthr-,"bits/gthr-,' >$d/gthr.h
-    sed 's/\(UNUSED\)/_GLIBCPP_\1/g' <$d/gthr-single.h-in \
-      | sed 's/\(GCC'"$a"'*_H\)/_GLIBCPP_\1/g' >$d/gthr-single.h
-    sed 's/\(UNUSED\)/_GLIBCPP_\1/g' <$d/gthr-default.h-in \
-      | sed 's/\(GCC'"$a"'*_H\)/_GLIBCPP_\1/g' \
-      | sed 's/\('"$a"'*WEAK\)/_GLIBCPP_\1/g' >$d/gthr-default.h])
+
+  glibcpp_thread_h=gthr-$target_thread_file.h
+  AC_SUBST(glibcpp_thread_h)
 ])
 
 
@@ -1497,52 +1395,36 @@
 dnl
 dnl Set up *_INCLUDES and *_INCLUDE_DIR variables for all sundry Makefile.am's.
 dnl
-dnl GLIBCPP_INCLUDE_DIR
-dnl C_INCLUDE_DIR
 dnl TOPLEVEL_INCLUDES
 dnl LIBMATH_INCLUDES
 dnl LIBSUPCXX_INCLUDES
 dnl LIBIO_INCLUDES
 dnl CSHADOW_INCLUDES
 dnl
-dnl GLIBCPP_EXPORT_INCLUDE
+dnl GLIBCPP_EXPORT_INCLUDES
 AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
-  # Root level of the include sources.
-  GLIBCPP_INCLUDE_DIR='$(top_srcdir)/include'
+  # Root level of the build directory include sources.
+  GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
 
-  # Can either use include/c or include/c_std to grab "C" headers. This
-  # variable is set to the include directory currently in use.
-  # set with C_INCLUDE_DIR in GLIBCPP_ENABLE_CHEADERS
-   
   # Passed down for canadian crosses.
-  if  test x"$CANADIAN" = xyes; then
+  if test x"$CANADIAN" = xyes; then
     TOPLEVEL_INCLUDES='-I$(includedir)'
   fi
 
   LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
 
   LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
-
-  #if GLIBCPP_NEED_LIBIO
-  LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
-  #else
-  #LIBIO_INCLUDES='-I$(top_srcdir)/libio'
-  #endif
 
-  #if GLIBCPP_USE_CSHADOW
-  #  CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
-  #                   -I$(top_blddir)/cshadow'
-  #else
-  CSTD_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
-  #endif
+  if test x"$need_libio" = xyes; then
+    LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
+    AC_SUBST(LIBIO_INCLUDES)
+  fi
 
   # Now, export this to all the little Makefiles....
-  AC_SUBST(GLIBCPP_INCLUDE_DIR)
+  AC_SUBST(GLIBCPP_INCLUDES)
   AC_SUBST(TOPLEVEL_INCLUDES)
   AC_SUBST(LIBMATH_INCLUDES)
   AC_SUBST(LIBSUPCXX_INCLUDES)
-  AC_SUBST(LIBIO_INCLUDES)
-  AC_SUBST(CSTD_INCLUDES)
 ])
 
 
Index: configure.in
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/configure.in,v
retrieving revision 1.66
diff -u -3 -r1.66 configure.in
--- configure.in	2001/07/06 17:16:46	1.66
+++ configure.in	2001/07/09 03:50:29
@@ -36,6 +36,10 @@
 target_alias=${target_alias-$target}
 AC_SUBST(target_alias)
 
+# Will set LN_S to either 'ln -s' or 'ln'.  With autoconf 2.50+, can also
+# be 'cp -p' if linking isn't available.
+AC_PROG_LN_S
+
 # We use these options to decide which functions to include.
 AC_ARG_WITH(target-subdir,
 [  --with-target-subdir=SUBDIR
@@ -53,8 +57,6 @@
 AC_SUBST(enable_static)
 GLIBCPP_CHECK_GNU_MAKE
 
-
-
 AM_CONFIG_HEADER(config.h)
 
 # Check for c++ or library specific bits that don't require linking.
@@ -79,7 +82,7 @@
   # compiler may not run on this machine, may not be able to link
   # executables, or may produce executables we can't run on this
   # machine.
-  xcompiling=1
+  GLIBCPP_IS_CROSS_COMPILING=1
 
   # If Canadian cross, then don't pick up tools from the build
   # directory.
@@ -196,7 +199,7 @@
   # We are being configured natively. We can do more elaborate tests
   # that include AC_TRY_COMPILE now, as the linker is assumed to be
   # working.
-  xcompiling=0
+  GLIBCPP_IS_CROSS_COMPILING=0
   CANADIAN=no
 
   # Check for available headers.
@@ -219,15 +222,14 @@
   AC_FUNC_MMAP
 fi
 
-# Now that ctype is determined for all possible targets, we can do this...
-AC_LINK_FILES($os_include_dir/bits/ctype_base.h, \
-include/bits/ctype_base.h)
-AC_LINK_FILES($os_include_dir/bits/ctype_inline.h, \
-include/bits/ctype_inline.h)
-AC_LINK_FILES($os_include_dir/bits/ctype_noninline.h, \
-include/bits/ctype_noninline.h)
-AC_LINK_FILES($ATOMICITYH/bits/atomicity.h, include/bits/atomicity.h)
+# Propagate the target-specific source directories through the build chain
+OS_INC_SRCDIR=$os_include_dir/bits
+ATOMICITY_INC_SRCDIR=$ATOMICITYH/bits
+AC_SUBST(OS_INC_SRCDIR)
+AC_SUBST(ATOMICITY_INC_SRCDIR)
 
+# Set up cross-compile flags
+AC_SUBST(GLIBCPP_IS_CROSS_COMPILING)
 AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
  
 AC_CACHE_SAVE
@@ -239,9 +241,6 @@
   multilib_arg=
 fi
 
-
-# Generate the various Makefiles, include files, and scripts.
-
 # Needed so that g++ can find the correct include subdir automatically.
 INTERFACE=v3
 
@@ -260,20 +259,16 @@
 fi
 AC_SUBST(LIBSUPCXX_PICFLAGS)
 
-# This should be done by mkincludedir, but hack around it now.
-blddir=`pwd`
-echo "checking for $blddir/include"
-
-if test ! -d "$blddir/include"; then
-  mkdir "$blddir/include"
-fi
-
+# Generate the various Makefiles, include files, and scripts.
 # NB: Multilibs need MULTISUBDIR defined correctly in src/Makefile.am
 # and libsupc++/Makefile.am so that multilib installs will end up
 # installed in the correct place. To work around this not being passed
 # down from config-ml.in -> top_srcdir/Makefile.am ->
 # top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
-AC_OUTPUT(Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile testsuite/Makefile mkcheck testsuite_flags,
+AC_OUTPUT(Makefile \
+    include/Makefile src/Makefile \
+    libmath/Makefile libio/Makefile libsupc++/Makefile \
+    testsuite/Makefile mkcheck testsuite_flags,
 [if test -n "$CONFIG_FILES"; then
   ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
   grep '^MULTISUBDIR =' Makefile >> src/Makefile
@@ -292,22 +287,6 @@
 CC="${CC}"
 CXX="${CXX}"
 )
-
-
-# Generate bits/c++config.h
-# NB: This must be the first generated file as others include it. . .
-$srcdir/mkc++config $blddir $srcdir
-
-# Generate bits/std_limits.h and src/limitsMEMBERS.cc
-if test ! -f stamp-limits; then
-  $srcdir/mknumeric_limits $blddir $srcdir $xcompiling
-  if test ! -f include/bits/std_limits.h; then
-    echo "mknumeric_limits failed to execute properly: exiting"
-    exit 1
-  else
-    touch stamp-limits 
-  fi
-fi
 
 
 # Sanity checking & User-visible messages.
Index: mknumeric_limits
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/mknumeric_limits,v
retrieving revision 1.14
diff -u -3 -r1.14 mknumeric_limits
--- mknumeric_limits	2001/06/20 03:05:27	1.14
+++ mknumeric_limits	2001/07/09 02:32:08
@@ -54,7 +54,7 @@
 cat <<EOF > $OUT_H-t
 // The template and inlines for the -*- C++ -*- numeric_limits classes.
 
-// Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -257,10 +257,10 @@
 
 # Must turn off exceptions, because the C++ exception handling support
 # routines have not been built yet.
-echo "$CC -I. $CPPFLAGS -I$BUILD_DIR/include -DHAVE_CONFIG_H -fno-exceptions \
+echo "$CC -I$BUILD_DIR -fno-exceptions \
     -o $BUILD_DIR/src/gen-num-limits $SRC_DIR/src/gen-num-limits.cc"
 
-{ $CC -I. $CPPFLAGS -I$BUILD_DIR/include -DHAVE_CONFIG_H -fno-exceptions \
+{ $CC -I$BUILD_DIR -fno-exceptions \
     -o "$BUILD_DIR/src/gen-num-limits" "$SRC_DIR/src/gen-num-limits.cc"
 } || {
   echo "gen-num-limits failed to build, exiting."
Index: testsuite_flags.in
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/testsuite_flags.in,v
retrieving revision 1.4
diff -u -3 -r1.4 testsuite_flags.in
--- testsuite_flags.in	2001/07/05 17:18:00	1.4
+++ testsuite_flags.in	2001/07/09 02:33:18
@@ -32,12 +32,9 @@
       echo ${INCLUDES}
       ;;
     --build-includes)
-      C_DIR="`basename  @C_INCLUDE_DIR@`"
-      INCLUDES="-nostdinc++ -I${BUILD_DIR}/include -I${SRC_DIR}/include
-                -I${SRC_DIR}/include/std  -I${SRC_DIR}/include/$C_DIR
+      INCLUDES="-nostdinc++ @GLIBCPP_INCLUDES@
 	        -I${SRC_DIR}/libsupc++ -I${SRC_DIR}/libio 
-		-I${SRC_DIR}/testsuite
-		-I${SRC_DIR}/include/backward -I${SRC_DIR}/include/ext"
+		-I${SRC_DIR}/testsuite"
       echo ${INCLUDES}
       ;;
     --install-cxx)
Index: libio/Makefile.am
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libio/Makefile.am,v
retrieving revision 1.20
diff -u -3 -r1.20 Makefile.am
--- libio/Makefile.am	2001/02/03 09:01:44	1.20
+++ libio/Makefile.am	2001/07/09 02:37:29
@@ -32,18 +32,13 @@
 endif
 
 # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
-GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
-C_INCLUDE_DIR = @C_INCLUDE_DIR@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
 TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
-LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
-LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
 LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
 
 INCLUDES = \
 	-nostdinc++ \
-	-I$(top_builddir)/include -I$(GLIBCPP_INCLUDE_DIR) \
-	$(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)	
+	$(GLIBCPP_INCLUDES) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)	
 
 libio_headers = \
         libio.h libioP.h iolibio.h
Index: libmath/Makefile.am
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libmath/Makefile.am,v
retrieving revision 1.14
diff -u -3 -r1.14 Makefile.am
--- libmath/Makefile.am	2001/07/11 19:35:48	1.14
+++ libmath/Makefile.am	2001/07/11 20:04:39
@@ -45,15 +45,8 @@
 LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
 
 # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
-GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
-C_INCLUDE_DIR = @C_INCLUDE_DIR@
 TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
-LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
-LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
-LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
 
 INCLUDES = \
-	-I$(GLIBCPP_INCLUDE_DIR) -I$(top_builddir)/include  \
 	$(TOPLEVEL_INCLUDES) 
 
Index: libmath/mathconf.h
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libmath/mathconf.h,v
retrieving revision 1.6
diff -u -3 -r1.6 mathconf.h
--- libmath/mathconf.h	2001/02/25 09:24:10	1.6
+++ libmath/mathconf.h	2001/07/09 02:42:39
@@ -1,6 +1,6 @@
 /* Configuration data for libmath subpart of libstdc++. */
 
-/* Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997-1999, 2000, 2001 Free Software Foundation, Inc.
 
    This file is part of the GNU ISO C++ Library.  This library is free
    software; you can redistribute it and/or modify it under the
@@ -28,23 +28,23 @@
    the GNU General Public License.  */
 
 
-#include <bits/c++config.h>
+#include <config.h>
 
-#ifdef _GLIBCPP_HAVE_ENDIAN_H
+#ifdef HAVE_ENDIAN_H
 # include <endian.h>
 #else
-# ifdef _GLIBCPP_HAVE_MACHINE_ENDIAN_H
+# ifdef HAVE_MACHINE_ENDIAN_H
 #  include <machine/endian.h>
 # else
-#  ifdef _GLIBCPP_HAVE_SYS_MACHINE_H
+#  ifdef HAVE_SYS_MACHINE_H
 #   include <sys/machine.h>
 #  else
-#   if defined _GLIBCPP_HAVE_SYS_ISA_DEFS_H || defined _GLIBCPP_HAVE_MACHINE_PARAM_H
+#   if defined HAVE_SYS_ISA_DEFS_H || defined HAVE_MACHINE_PARAM_H
 /* This is on Solaris.  */
-#    ifdef _GLIBCPP_HAVE_SYS_ISA_DEFS_H
+#    ifdef HAVE_SYS_ISA_DEFS_H
 #     include <sys/isa_defs.h>
 #    endif
-#    ifdef _GLIBCPP_HAVE_MACHINE_PARAM_H
+#    ifdef HAVE_MACHINE_PARAM_H
 #     include <machine/param.h>
 #    endif
 #    ifdef _LITTLE_ENDIAN
@@ -72,7 +72,7 @@
 typedef unsigned int U_int64_t __attribute ((mode (DI)));
 typedef int Int64_t __attribute ((mode (DI)));
 
-#ifdef _GLIBCPP_HAVE_NAN_H
+#ifdef HAVE_NAN_H
 # include <nan.h>
 #endif
 
@@ -81,15 +81,15 @@
 double nan (void);
 #endif
 
-#ifdef _GLIBCPP_HAVE_IEEEFP_H
+#ifdef HAVE_IEEEFP_H
 # include <ieeefp.h>
 #endif
 
-#ifdef _GLIBCPP_HAVE_FP_H
+#ifdef HAVE_FP_H
 # include <fp.h>
 #endif
 
-#ifdef _GLIBCPP_HAVE_FLOAT_H
+#ifdef HAVE_FLOAT_H
 # include <float.h>
 #endif
 
@@ -262,49 +262,50 @@
   qw_u.value = (d);						\
   (msw) = qw_u.parts64.msw;					\
 } while (0)
-        
 
+
 /* Replacement for non-existing float functions.  */
-#if !defined(_GLIBCPP_HAVE_FABSF) && !defined(_GLIBCPP_HAVE___BUILTIN_FABSF)
+#if !defined(HAVE_FABSF) && !defined(HAVE___BUILTIN_FABSF)
 # define fabsf(x) fabs (x)
 #endif
-#if !defined(_GLIBCPP_HAVE_COSF) && !defined(_GLIBCPP_HAVE___BUILTIN_COSF)
+#if !defined(HAVE_COSF) && !defined(HAVE___BUILTIN_COSF)
 # define cosf(x) cos (x)
 #endif
-#ifndef _GLIBCPP_HAVE_COSHF
+#ifndef HAVE_COSHF
 # define coshf(x) cosh (x)
 #endif
-#ifndef _GLIBCPP_HAVE_EXPF
+#ifndef HAVE_EXPF
 # define expf(x) expf (x)
 #endif
-#ifndef _GLIBCPP_HAVE_LOGF
+#ifndef HAVE_LOGF
 # define logf(x) log(x)
 #endif
-#ifndef _GLIBCPP_HAVE_LOG10F
+#ifndef HAVE_LOG10F
 # define log10f(x) log10 (x)
 #endif
-#ifndef _GLIBCPP_HAVE_POWF
+#ifndef HAVE_POWF
 # define powf(x, y) pow (x, y)
 #endif
-#if !defined(_GLIBCPP_HAVE_SINF) && !defined(_GLIBCPP_HAVE___BUILTIN_SINF)
+#if !defined(HAVE_SINF) && !defined(HAVE___BUILTIN_SINF)
 # define sinf(x) sin (x)
 #endif
-#ifndef _GLIBCPP_HAVE_SINHF
+#ifndef HAVE_SINHF
 # define sinhf(x) sinh (x)
 #endif
-#if !defined(_GLIBCPP_HAVE_SQRTF) && !defined(_GLIBCPP_HAVE___BUILTIN_SQRTF)
+#if !defined(HAVE_SQRTF) && !defined(HAVE___BUILTIN_SQRTF)
 # define sqrtf(x) sqrt (x)
 #endif
-#ifndef _GLIBCPP_HAVE_TANF
+#ifndef HAVE_TANF
 # define tanf(x) tan (x)
 #endif
-#ifndef _GLIBCPP_HAVE_TANHF
+#ifndef HAVE_TANHF
 # define tanhf(x) tanh (x)
 #endif
-#ifndef _GLIBCPP_HAVE_STRTOF
+#ifndef HAVE_STRTOF
 # define strtof(s, e) strtod (s, e)
 #endif
 
 #ifdef __cplusplus
 }
 #endif
+
Index: libmath/stubs.c
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libmath/stubs.c,v
retrieving revision 1.6
diff -u -3 -r1.6 stubs.c
--- libmath/stubs.c	2001/07/06 23:09:30	1.6
+++ libmath/stubs.c	2001/07/09 02:43:03
@@ -28,7 +28,7 @@
    the GNU General Public License.  */
 
 #include <math.h>
-#include <bits/c++config.h>
+#include <config.h>
 
 #ifndef _GLIBCPP_HAVE_ATAN2F
 float
Index: libsupc++/Makefile.am
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libsupc++/Makefile.am,v
retrieving revision 1.27
diff -u -3 -r1.27 Makefile.am
--- libsupc++/Makefile.am	2001/06/04 02:24:06	1.27
+++ libsupc++/Makefile.am	2001/07/09 02:45:09
@@ -55,18 +55,12 @@
 	@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
 
 # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
-GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
-C_INCLUDE_DIR = @C_INCLUDE_DIR@
-CSTD_INCLUDES = @CSTD_INCLUDES@
-LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
 LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
-LIBIO_INCLUDES = @LIBIO_INCLUDES@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
 
 INCLUDES = \
 	-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \
-	-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
-	 $(LIBSUPCXX_INCLUDES)
+	$(GLIBCPP_INCLUDES) $(LIBSUPCXX_INCLUDES)
 
 headers = \
 	exception new typeinfo cxxabi.h exception_defines.h 
Index: src/Makefile.am
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/src/Makefile.am,v
retrieving revision 1.89
diff -u -3 -r1.89 Makefile.am
--- src/Makefile.am	2001/06/26 21:22:57	1.89
+++ src/Makefile.am	2001/07/09 02:49:04
@@ -49,9 +49,7 @@
 	@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
 
 # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
-GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
-C_INCLUDE_DIR = @C_INCLUDE_DIR@
-CSTD_INCLUDES = @CSTD_INCLUDES@
+GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
 LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
 LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
 LIBIO_INCLUDES = @LIBIO_INCLUDES@
@@ -59,112 +57,10 @@
 
 INCLUDES = \
 	-nostdinc++ \
-	-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
+	$(GLIBCPP_INCLUDES) \
 	$(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \
 	$(TOPLEVEL_INCLUDES)
 
-base_headers = \
-	bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h \
-	bits/stringfwd.h bits/std_string.h bits/basic_string.h \
-	bits/basic_string.tcc \
-	bits/generic_shadow.h bits/std_utility.h \
-	bits/std_complex.h \
-	bits/valarray_array.h bits/valarray_array.tcc bits/valarray_meta.h \
-	bits/std_valarray.h bits/mask_array.h bits/slice.h bits/slice_array.h \
-	bits/gslice.h bits/gslice_array.h bits/indirect_array.h \
-	bits/std_fstream.h bits/std_iomanip.h \
-	bits/ios_base.h bits/fpos.h bits/basic_ios.h bits/basic_ios.tcc \
-	bits/std_ios.h bits/std_iosfwd.h bits/std_iostream.h \
-	bits/std_istream.h bits/istream.tcc bits/std_locale.h \
-	bits/fstream.tcc bits/ostream.tcc bits/sstream.tcc \
-	bits/stream_iterator.h bits/streambuf_iterator.h \
-	bits/std_ostream.h bits/std_sstream.h bits/std_streambuf.h \
-	bits/streambuf.tcc bits/basic_file.h \
-	bits/locale_facets.h bits/locale_facets.tcc bits/localefwd.h \
-	bits/stl_pthread_alloc.h bits/pthread_allocimpl.h \
-	bits/stl_threads.h \
-	bits/stl_iterator_base_types.h bits/stl_iterator_base_funcs.h \
-	bits/std_bitset.h bits/std_deque.h bits/std_functional.h \
-	bits/std_iterator.h bits/std_list.h \
-	bits/std_map.h bits/std_memory.h bits/std_numeric.h \
-	bits/std_queue.h bits/std_set.h bits/std_stack.h \
-	bits/std_stdexcept.h bits/functexcept.h bits/std_vector.h \
-	bits/stl_algo.h bits/stl_algobase.h bits/stl_alloc.h \
-	bits/stl_deque.h bits/stl_function.h \
-	bits/stl_heap.h bits/stl_iterator.h bits/stl_list.h bits/stl_map.h \
-	bits/stl_multimap.h bits/stl_multiset.h bits/stl_numeric.h \
-	bits/stl_pair.h bits/stl_queue.h bits/stl_raw_storage_iter.h \
-	bits/stl_relops.h bits/stl_set.h bits/stl_stack.h bits/stl_tempbuf.h \
-	bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h \
-	bits/stl_bvector.h bits/type_traits.h bits/std_algorithm.h \
-	bits/stl_construct.h bits/boost_concept_check.h bits/concept_check.h
-
-
-backward_headers = \
-	backward/complex.h backward/iomanip.h backward/istream.h \
-	backward/ostream.h backward/stream.h backward/streambuf.h \
-	backward/algo.h backward/algobase.h backward/alloc.h \
-	backward/bvector.h backward/defalloc.h backward/deque.h \
-	backward/function.h backward/hash_map.h backward/hash_set.h \
-	backward/hashtable.h backward/heap.h backward/iostream.h \
-	backward/iterator.h backward/list.h backward/map.h \
-	backward/multimap.h backward/new.h backward/multiset.h \
-	backward/pair.h backward/queue.h backward/rope.h backward/set.h \
-	backward/slist.h backward/stack.h backward/tempbuf.h backward/tree.h \
-	backward/vector.h backward/fstream.h backward/strstream.h \
-	backward/strstream backward/backward_warning.h
-
-ext_headers = \
-	ext/rope ext/ropeimpl.h ext/stl_rope.h \
-	ext/slist ext/hash_map ext/hash_set \
-	ext/stl_hashtable.h ext/stl_hash_fun.h 
-
-c_base_headers = \
-	bits/std_cassert.h bits/std_cctype.h bits/std_cerrno.h \
-	bits/std_cfloat.h bits/std_climits.h bits/std_clocale.h \
-	bits/std_cmath.h bits/std_csetjmp.h bits/std_csignal.h \
-	bits/std_cstdarg.h bits/std_cstddef.h bits/std_cstdio.h \
-	bits/std_cstdlib.h bits/std_cstring.h bits/std_ctime.h \
-	bits/std_cwchar.h bits/std_cwctype.h bits/cmath.tcc
-
-if GLIBCPP_USE_CSHADOW
-c_shadow_headers = \
-	assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h \
-	signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h wchar.h \
-	wctype.h fcntl.h libio.h iolibio.h libioP.h pthread.h iconv.h \
-	features.h langinfo.h \
-	bits/wrap_libio.h bits/wrap_iolibio.h bits/wrap_libioP.h \
-	bits/wrap_iconv.h bits/wrap_fcntl.h bits/wrap_pthread.h \
-	bits/wrap_features.h bits/wrap_langinfo.h \
-	sys/cdefs.h 
-else
-c_shadow_headers =
-endif
-
-std_headers = \
-	algorithm bitset complex deque fstream functional \
-	iomanip ios iosfwd iostream istream iterator limits list locale \
-	map memory numeric ostream queue set sstream stack stdexcept \
-	streambuf string utility valarray vector \
-	cassert cctype cerrno cfloat climits clocale ciso646 \
-	cmath csetjmp csignal cstdarg cstddef cstdio cstdlib \
-	cstring ctime cwchar cwctype
-
-if GLIBCPP_NEED_LIBIO 
-libio_headers = \
-	$(top_srcdir)/libio/_G_config.h $(top_srcdir)/libio/libio.h
-else
-libio_headers =
-endif
-
-build_headers = \
-	bits/std_limits.h \
-	bits/c++config.h bits/c++io.h bits/c++locale.h \
-	bits/gthr.h bits/gthr-single.h bits/gthr-default.h \
-	bits/basic_file_model.h \
-	bits/atomicity.h bits/os_defines.h \
-	bits/ctype_base.h bits/ctype_noninline.h bits/ctype_inline.h 
-
 sources = \
 	basic_file.cc bitset.cc c++locale.cc cmath.cc codecvt.cc \
 	complex_io.cc functexcept.cc globals.cc ios.cc limitsMEMBERS.cc \
@@ -173,7 +69,7 @@
 	wstring-inst.cc
 
 
-VPATH = $(top_srcdir):$(top_srcdir)/src:$(GLIBCPP_INCLUDE_DIR):$(GLIBCPP_INCLUDE_DIR)/std:$(C_INCLUDE_DIR)
+VPATH = $(top_srcdir):$(top_srcdir)/src
 
 libstdc___la_SOURCES = $(sources)
 
@@ -188,96 +84,11 @@
 
 # Use special rules for the deprecated source files so that they find
 # deprecated include files.
+GLIBCPP_INCLUDE_DIR=@glibcpp_builddir@/include
 strstream.lo: strstream.cc
 	$(LTCXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
 strstream.o: strstream.cc
 	$(CXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
-
-# Make sure cshadow headers are built first.
-if GLIBCPP_USE_CSHADOW
-CSHADOW_H = $(top_builddir)/stamp-cshadow
-else
-CSHADOW_H =
-endif
-
-# Specify that all *.o's depend on this.
-$(libstdc___la_OBJECTS): $(CSHADOW_H)
-
-$(top_builddir)/stamp-cshadow: $(top_srcdir)/mkinclosure \
-	                       $(top_srcdir)/mkcshadow
-	$(top_srcdir)/mkinclosure \
-	"-I $(top_builddir)/../../gcc/include -I /usr/include -G fcntl.h unistd.h" | $(top_srcdir)/mkcshadow;
-	rm -f  $(top_builddir)/stamp-cshadow 
-	echo "done" > $(top_builddir)/stamp-cshadow 
-
-
-# Check for various configure bits that change where the headers get installed.
-gxx_include_dir = @gxx_include_dir@
-gxx_target_include_dir = $(gxx_include_dir)/$(target_alias)
-
-# We have our own special, ridiculously complicated installation routine
-# here, as automake/autoconf is currently brain-damaged when it comes
-# to installing sub-directories of headers. In particular, we want to
-# 1) install build headers from (blddir)/include/bits -> (install)/bits
-# 2) install source headers from
-#      (srcdir)/include/bits -> (install)/bits
-#      (srcdir)/include/ext -> (install)/ext
-#      (srcdir)/include/backward -> (install)/backward
-#      ... and the always entertaining "C" compatibility bits
-#      where * represents configure-time directory switching
-#      (srcdir)/include/c* -> (install)/
-#      (srcdir)/include/c*/bits -> (install)/bits
-#      (srcdir)/include/c*/sys -> (install)/sys
-install-data-local: myinstalldirs myinstallheaders
-
-# NB: installation of shadow header directories is not attempted.
-myinstalldirs:
-	if test -z "$(MULTISUBDIR)"; then \
-	$(mkinstalldirs) $(DESTDIR)$(gxx_include_dir)/backward; \
-	$(mkinstalldirs) $(DESTDIR)$(gxx_include_dir)/bits; \
-	$(mkinstalldirs) $(DESTDIR)$(gxx_include_dir)/ext; \
-	$(mkinstalldirs) $(DESTDIR)$(gxx_target_include_dir)/bits; \
-	fi
-
-# NB: As libio_headers may be empty, need this to make sure bash doesn't
-# choke on an empty for... loop by using libio_headers_install
-# NB: installation of shadow headers is not attempted.
-src_incdir = @GLIBCPP_INCLUDE_DIR@
-bld_incdir = $(top_builddir)/include
-c_incdir = @C_INCLUDE_DIR@
-myinstallheaders: 
-	if test -z "$(MULTISUBDIR)"; then \
-	for i in $(base_headers); do \
-	echo "$(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/bits/";\
-	  $(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/bits/; \
-	done; \
-	for i in $(ext_headers); do \
-	echo "$(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/ext/";\
-	  $(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/ext/; \
-	done; \
-	for i in $(backward_headers); do \
-	echo "$(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/backward/";\
-	  $(INSTALL_DATA) $(src_incdir)/$$i $(gxx_include_dir)/backward/; \
-	done; \
-	for i in $(c_base_headers); do \
-	echo "$(INSTALL_DATA) $(c_incdir)/$$i $(gxx_include_dir)/bits/";\
-	  $(INSTALL_DATA) $(c_incdir)/$$i $(gxx_include_dir)/bits/; \
-	done; \
-	for i in $(std_headers); do \
-	echo "$(INSTALL_DATA) $(src_incdir)/std/$$i $(gxx_include_dir)";\
-	  $(INSTALL_DATA) $(src_incdir)/std/$$i $(gxx_include_dir); \
-	done; \
-	for i in $(build_headers); do \
-	echo "$(INSTALL_DATA) $(bld_incdir)/$$i \
-	  $(gxx_target_include_dir)/bits/"; $(INSTALL_DATA) \
-	  $(bld_incdir)/$$i $(gxx_target_include_dir)/bits/; \
-	done; \
-	libio_headers_install='$(libio_headers)'; \
-	for i in $$libio_headers_install; do \
-	echo "$(INSTALL_DATA) $$i $(gxx_include_dir)"; \
-	  $(INSTALL_DATA) $$i $(gxx_include_dir); \
-	done; \
-	fi;
 
 
 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
Index: src/gen-num-limits.cc
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/src/gen-num-limits.cc,v
retrieving revision 1.10
diff -u -3 -r1.10 gen-num-limits.cc
--- src/gen-num-limits.cc	2001/03/20 19:39:45	1.10
+++ src/gen-num-limits.cc	2001/07/09 02:50:10
@@ -33,24 +33,7 @@
 // Do not compile with optimization turned on.
 //
 
-#include <bits/c++config.h>
-
-#if HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-//
-// Force Linux <limits.h> to define the *LONG_LONG*
-//
-#if __linux__ && _GLIBCPP_USE_LONG_LONG
-# ifndef __USE_GNU
-#  define __USE_GNU 1
-# endif
-# ifndef _GNU_SOURCE
-#  define _GNU_SOURCE 1
-# endif
-#endif
-
+#include <config.h>
 #include <limits.h>
 #include <float.h>
 #include <stdio.h>
## Makefile for the include subdirectory of the GNU C++ Standard library.
##
## Copyright (C) 2001 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.

## This file is part of the GNU ISO C++ Library.  This library is free
## software; you can redistribute it and/or modify it under the
## terms of the GNU General Public License as published by the
## Free Software Foundation; either version 2, or (at your option)
## any later version.

## This library is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License along
## with this library; see the file COPYING.  If not, write to the Free
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.

## $Id$

AUTOMAKE_OPTIONS = 1.3 gnits
MAINT_CHARSET = latin1

mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs

# Cross compiler and multilib support.
CXX = @glibcpp_CXX@
glibcpp_srcdir=@glibcpp_srcdir@
glibcpp_builddir=@glibcpp_builddir@

bits_srcdir = ${glibcpp_srcdir}/include/bits
bits_builddir = ./bits
bits_headers = \
	${bits_srcdir}/basic_file.h \
	${bits_srcdir}/basic_ios.h \
	${bits_srcdir}/basic_ios.tcc \
	${bits_srcdir}/basic_string.h \
	${bits_srcdir}/basic_string.tcc \
	${bits_srcdir}/boost_concept_check.h \
	${bits_srcdir}/char_traits.h \
	${bits_srcdir}/codecvt.h \
	${bits_srcdir}/concept_check.h \
	${bits_srcdir}/cpp_type_traits.h \
	${bits_srcdir}/fpos.h \
	${bits_srcdir}/fstream.tcc \
	${bits_srcdir}/functexcept.h \
	${bits_srcdir}/generic_shadow.h \
	${bits_srcdir}/gslice.h \
	${bits_srcdir}/gslice_array.h \
	${bits_srcdir}/indirect_array.h \
	${bits_srcdir}/ios_base.h \
	${bits_srcdir}/istream.tcc \
	${bits_srcdir}/locale_facets.h \
	${bits_srcdir}/locale_facets.tcc \
	${bits_srcdir}/localefwd.h \
	${bits_srcdir}/mask_array.h \
	${bits_srcdir}/ostream.tcc \
	${bits_srcdir}/pthread_allocimpl.h \
	${bits_srcdir}/stream_iterator.h \
	${bits_srcdir}/streambuf_iterator.h \
	${bits_srcdir}/slice.h \
	${bits_srcdir}/slice_array.h \
	${bits_srcdir}/sstream.tcc \
	${bits_srcdir}/std_algorithm.h \
	${bits_srcdir}/std_bitset.h \
	${bits_srcdir}/std_complex.h \
	${bits_srcdir}/std_deque.h \
	${bits_srcdir}/std_fstream.h \
	${bits_srcdir}/std_functional.h \
	${bits_srcdir}/std_iomanip.h \
	${bits_srcdir}/std_ios.h \
	${bits_srcdir}/std_iosfwd.h \
	${bits_srcdir}/std_iostream.h \
	${bits_srcdir}/std_istream.h \
	${bits_srcdir}/std_iterator.h \
	${bits_srcdir}/std_list.h \
	${bits_srcdir}/std_locale.h \
	${bits_srcdir}/std_map.h \
	${bits_srcdir}/std_memory.h \
	${bits_srcdir}/std_numeric.h \
	${bits_srcdir}/std_ostream.h \
	${bits_srcdir}/std_queue.h \
	${bits_srcdir}/std_set.h \
	${bits_srcdir}/std_sstream.h \
	${bits_srcdir}/std_stack.h \
	${bits_srcdir}/std_stdexcept.h \
	${bits_srcdir}/std_streambuf.h \
	${bits_srcdir}/std_string.h \
	${bits_srcdir}/std_utility.h \
	${bits_srcdir}/std_valarray.h \
	${bits_srcdir}/std_vector.h \
	${bits_srcdir}/stl_algo.h \
	${bits_srcdir}/stl_algobase.h \
	${bits_srcdir}/stl_alloc.h \
	${bits_srcdir}/stl_bvector.h \
	${bits_srcdir}/stl_construct.h \
	${bits_srcdir}/stl_deque.h \
	${bits_srcdir}/stl_function.h \
	${bits_srcdir}/stl_heap.h \
	${bits_srcdir}/stl_iterator.h \
	${bits_srcdir}/stl_iterator_base_funcs.h \
	${bits_srcdir}/stl_iterator_base_types.h \
	${bits_srcdir}/stl_list.h \
	${bits_srcdir}/stl_map.h \
	${bits_srcdir}/stl_multimap.h \
	${bits_srcdir}/stl_multiset.h \
	${bits_srcdir}/stl_numeric.h \
	${bits_srcdir}/stl_pair.h \
	${bits_srcdir}/stl_pthread_alloc.h \
	${bits_srcdir}/stl_queue.h \
	${bits_srcdir}/stl_raw_storage_iter.h \
	${bits_srcdir}/stl_relops.h \
	${bits_srcdir}/stl_set.h \
	${bits_srcdir}/stl_stack.h \
	${bits_srcdir}/stl_tempbuf.h \
	${bits_srcdir}/stl_threads.h \
	${bits_srcdir}/stl_tree.h \
	${bits_srcdir}/stl_uninitialized.h \
	${bits_srcdir}/stl_vector.h \
	${bits_srcdir}/streambuf.tcc \
	${bits_srcdir}/stringfwd.h \
	${bits_srcdir}/type_traits.h \
	${bits_srcdir}/valarray_array.h \
	${bits_srcdir}/valarray_array.tcc \
	${bits_srcdir}/valarray_meta.h

backward_srcdir = ${glibcpp_srcdir}/include/backward
backward_builddir = ./backward
backward_headers = \
	${backward_srcdir}/complex.h \
	${backward_srcdir}/iomanip.h \
	${backward_srcdir}/istream.h \
	${backward_srcdir}/ostream.h \
	${backward_srcdir}/stream.h \
	${backward_srcdir}/streambuf.h \
	${backward_srcdir}/algo.h \
	${backward_srcdir}/algobase.h \
	${backward_srcdir}/alloc.h \
	${backward_srcdir}/bvector.h \
	${backward_srcdir}/defalloc.h \
	${backward_srcdir}/deque.h \
	${backward_srcdir}/function.h \
	${backward_srcdir}/hash_map.h \
	${backward_srcdir}/hash_set.h \
	${backward_srcdir}/hashtable.h \
	${backward_srcdir}/heap.h \
	${backward_srcdir}/iostream.h \
	${backward_srcdir}/iterator.h \
	${backward_srcdir}/list.h \
	${backward_srcdir}/map.h \
	${backward_srcdir}/multimap.h \
	${backward_srcdir}/new.h \
	${backward_srcdir}/multiset.h \
	${backward_srcdir}/pair.h \
	${backward_srcdir}/queue.h \
	${backward_srcdir}/rope.h \
	${backward_srcdir}/set.h \
	${backward_srcdir}/slist.h \
	${backward_srcdir}/stack.h \
	${backward_srcdir}/tempbuf.h \
	${backward_srcdir}/tree.h \
	${backward_srcdir}/vector.h \
	${backward_srcdir}/fstream.h \
	${backward_srcdir}/strstream.h \
	${backward_srcdir}/strstream \
	${backward_srcdir}/backward_warning.h

ext_srcdir = ${glibcpp_srcdir}/include/ext
ext_builddir = ./ext
ext_headers = \
	${ext_srcdir}/rope \
	${ext_srcdir}/ropeimpl.h \
	${ext_srcdir}/stl_rope.h \
	${ext_srcdir}/slist \
	${ext_srcdir}/hash_map \
	${ext_srcdir}/hash_set \
	${ext_srcdir}/stl_hashtable.h \
	${ext_srcdir}/stl_hash_fun.h

# This is the common subset of files that all three "C" header models use.
c_base_srcdir = @C_INCLUDE_DIR@/bits
c_base_builddir = ./bits
c_base_headers = \
	${c_base_srcdir}/std_cassert.h \
	${c_base_srcdir}/std_cctype.h \
	${c_base_srcdir}/std_cerrno.h \
	${c_base_srcdir}/std_cfloat.h \
	${c_base_srcdir}/std_climits.h \
	${c_base_srcdir}/std_clocale.h \
	${c_base_srcdir}/std_cmath.h \
	${c_base_srcdir}/std_csetjmp.h \
	${c_base_srcdir}/std_csignal.h \
	${c_base_srcdir}/std_cstdarg.h \
	${c_base_srcdir}/std_cstddef.h \
	${c_base_srcdir}/std_cstdio.h \
	${c_base_srcdir}/std_cstdlib.h \
	${c_base_srcdir}/std_cstring.h \
	${c_base_srcdir}/std_ctime.h \
	${c_base_srcdir}/std_cwchar.h \
	${c_base_srcdir}/std_cwctype.h \
	${c_base_srcdir}/cmath.tcc 

##c_compatibility_srcdir = ${glibcpp_srcdir}/include/c_compatibility
##c_compatibility_builddir = ./
##c_compatibility_headers = \
##	${c_compatibility_srcdir}/assert.h \
##	${c_compatibility_srcdir}/ctype.h \
##	${c_compatibility_srcdir}/errno.h \
##	${c_compatibility_srcdir}/float.h \
##	${c_compatibility_srcdir}/limits.h \
##	${c_compatibility_srcdir}/locale.h \
##	${c_compatibility_srcdir}/math.h \
##	${c_compatibility_srcdir}/setjmp.h \
##	${c_compatibility_srcdir}/signal.h \
##	${c_compatibility_srcdir}/stdarg.h \
##	${c_compatibility_srcdir}/stddef.h \
##	${c_compatibility_srcdir}/stdio.h \
##	${c_compatibility_srcdir}/stdlib.h \
##	${c_compatibility_srcdir}/string.h \
##	${c_compatibility_srcdir}/time.h \
##	${c_compatibility_srcdir}/wchar.h \
##	${c_compatibility_srcdir}/wctype.h 

std_srcdir = ${glibcpp_srcdir}/include/std
std_builddir = ./
std_headers = \
	${std_srcdir}/algorithm \
	${std_srcdir}/bitset \
	${std_srcdir}/complex \
	${std_srcdir}/deque \
	${std_srcdir}/fstream \
	${std_srcdir}/functional \
	${std_srcdir}/iomanip \
	${std_srcdir}/ios \
	${std_srcdir}/iosfwd \
	${std_srcdir}/iostream \
	${std_srcdir}/istream \
	${std_srcdir}/iterator \
	${std_srcdir}/limits \
	${std_srcdir}/list \
	${std_srcdir}/locale \
	${std_srcdir}/map \
	${std_srcdir}/memory \
	${std_srcdir}/numeric \
	${std_srcdir}/ostream \
	${std_srcdir}/queue \
	${std_srcdir}/set \
	${std_srcdir}/sstream \
	${std_srcdir}/stack \
	${std_srcdir}/stdexcept \
	${std_srcdir}/streambuf \
	${std_srcdir}/string \
	${std_srcdir}/utility \
	${std_srcdir}/valarray \
	${std_srcdir}/vector \
	${std_srcdir}/cassert \
	${std_srcdir}/cctype \
	${std_srcdir}/cerrno \
	${std_srcdir}/cfloat \
	${std_srcdir}/climits \
	${std_srcdir}/clocale \
	${std_srcdir}/ciso646 \
	${std_srcdir}/cmath \
	${std_srcdir}/csetjmp \
	${std_srcdir}/csignal \
	${std_srcdir}/cstdarg \
	${std_srcdir}/cstddef \
	${std_srcdir}/cstdio \
	${std_srcdir}/cstdlib \
	${std_srcdir}/cstring \
	${std_srcdir}/ctime \
	${std_srcdir}/cwchar \
	${std_srcdir}/cwctype

target_srcdir = ${glibcpp_srcdir}/@OS_INC_SRCDIR@
target_builddir = ./${target_alias}/bits
target_headers = \
	${target_srcdir}/ctype_base.h \
	${target_srcdir}/ctype_inline.h \
	${target_srcdir}/ctype_noninline.h \
	${target_srcdir}/os_defines.h \
	${glibcpp_srcdir}/@ATOMICITY_INC_SRCDIR@/atomicity.h

thread_builddir = ./${target_alias}/bits
thread_headers = \
	${thread_builddir}/gthr.h \
	${thread_builddir}/gthr-single.h \
	${thread_builddir}/gthr-default.h

# XXX stamp-c_compatibility 
# Here are the rules for building the headers
all-local: \
	${target_builddir}/c++config.h \
	${target_builddir}/std_limits.h \
	stamp-std stamp-bits stamp-c_base \
	stamp-backward stamp-ext stamp-target stamp-thread \
	stamp-file_model stamp-io stamp-locale

stamp-std: ${std_headers}
	@if [ ! -d "${std_builddir}" ]; then \
	  mkdir -p ${std_builddir} ;\
	fi ;\
	(cd ${std_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-std

stamp-bits: ${bits_headers}
	@if [ ! -d "${bits_builddir}" ]; then \
	  mkdir -p ${bits_builddir} ;\
	fi ;\
	(cd ${bits_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-bits

stamp-c_base: ${c_base_headers}
	@if [ ! -d "${c_base_builddir}" ]; then \
	  mkdir -p ${c_base_builddir} ;\
	fi ;\
	(cd ${c_base_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-c_base

stamp-c_compatibility: ${c_compatibility_headers}
	@if [ ! -d "${c_compatibility_builddir}" ]; then \
	  mkdir -p ${c_compatibility_builddir} ;\
	fi ;\
	(cd ${c_compatibility_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-c_compatibility

stamp-backward: ${backward_headers}
	@if [ ! -d "${backward_builddir}" ]; then \
	  mkdir -p ${backward_builddir} ;\
	fi ;\
	(cd ${backward_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-backward

stamp-ext: ${ext_headers}
	@if [ ! -d "${ext_builddir}" ]; then \
	  mkdir -p ${ext_builddir} ;\
	fi ;\
	(cd ${ext_builddir} && @LN_S@ $? .) ;\
	echo `date` > stamp-ext

# Can't use $? in command, otherwise target_builddir will trigger it, and
# we get bizarre symlinks mazes.
stamp-target: ${target_headers} ${target_builddir}
	@(cd ${target_builddir} && @LN_S@ ${target_headers} .) ;\
	echo `date` > stamp-target

stamp-thread: ${thread_headers} ${thread_builddir}
	@echo `date` > stamp-thread

stamp-file_model: ${glibcpp_srcdir}/@BASIC_FILE_H@ ${target_builddir}
	@(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@BASIC_FILE_H@ basic_file_model.h) ;\
	echo `date` > stamp-file_model

stamp-io: ${glibcpp_srcdir}/@CSTDIO_H@ ${target_builddir}
	@(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h) ;\
	echo `date` > stamp-io

stamp-locale: ${glibcpp_srcdir}/@CLOCALE_H@ ${target_builddir}
	@(cd ${target_builddir} && @LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h) ;\
	echo `date` > stamp-locale

# This target is kinda special.  The timestamp on a directory gets modified
# whenever a file it contains gets modified, and that'll throw off all the
# build dependencies that need this target.  On the other hand, someone
# could delete the directory and not the stamp file, faking out the make.
${target_builddir}: stamp-${target_alias}

stamp-${target_alias}:
	@if [ ! -d ${target_builddir} ]; then \
	  mkdir -p ${target_builddir} ;\
	fi
	echo `date` > stamp-${target_alias}

${target_builddir}/c++config.h: ${glibcpp_builddir}/config.h \
				${glibcpp_srcdir}/include/bits/c++config \
				${target_builddir}
	@cat ${glibcpp_srcdir}/include/bits/c++config > $@ ;\
	sed -e 's/HAVE_/_GLIBCPP_HAVE_/g' \
	-e 's/PACKAGE/_GLIBCPP_PACKAGE/g' \
	-e 's/VERSION/_GLIBCPP_VERSION/g' \
	-e 's/WORDS_/_GLIBCPP_WORDS_/g' \
	< ${glibcpp_builddir}/config.h >> $@ ;\
	echo "#endif // _CPP_CPPCONFIG_" >>$@

# This tool leaves the header in the wrong place, but rather than fix the
# tool, the destination get massaged here.
${target_builddir}/std_limits.h: ${target_builddir}/c++config.h \
				 stamp-target ${target_builddir}
	CC="$(CC) -I${glibcpp_builddir} -I${target_builddir}/.." \
	${glibcpp_srcdir}/mknumeric_limits \
	${glibcpp_builddir} ${glibcpp_srcdir} @GLIBCPP_IS_CROSS_COMPILING@ ;\
	mv ${glibcpp_builddir}/include/bits/std_limits.h ${target_builddir}

# This can definitely be improved.
glibcpp_thread_h = @glibcpp_thread_h@

${thread_builddir}/gthr.h: 
	cp ${glibcpp_srcdir}/../gcc/gthr.h ${thread_builddir}/gthr.h-in; \
	sed '/^#/s/\([A-Z_][A-Z_]*\)/_GLIBCPP_\1/g' < ${thread_builddir}/gthr.h-in > $@

${thread_builddir}/gthr-single.h:
	cp ${glibcpp_srcdir}/../gcc/gthr-single.h ${thread_builddir}/gthr-single.h-in; \
	sed 's/\(UNUSED\)/_GLIBCPP_\1/g' < ${thread_builddir}/gthr-single.h-in | sed 's/\(GCC[A-Z_]*_H\)/_GLIBCPP_\1/g' > $@

${thread_builddir}/gthr-default.h:
	cp ${glibcpp_srcdir}/../gcc/${glibcpp_thread_h} ${thread_builddir}/gthr-default.h-in; \
	sed 's/\(UNUSED\)/_GLIBCPP_\1/g' < ${thread_builddir}/gthr-default.h-in | sed 's/\(GCC[A-Z_]*_H\)/_GLIBCPP_\1/g' | sed 's/\([A-Z_]*WEAK\)/_GLIBCPP_\1/g' > $@

# One big happy istallation:  just copy everything
# from the build to the install tree (except for the build stamps)
gxx_include_dir = @gxx_include_dir@

install-data-local:
	for file in `find . ! -name stamp-\* -print`; do \
	installFile=${gxx_include_dir}/$${file} ;\
	if [ -d $${file} ]; then \
	  $(INSTALL) -d $${installFile} ;\
	else \
	  $(INSTALL_DATA) $${file} $${installFile} ;\
	fi ;\
	done

# By adding these files here, automake will remove them for 'make clean'
CLEANFILES = \
        stamp-backward stamp-bits stamp-c_base stamp-ext stamp-libio \
        stamp-std stamp-target stamp-threads


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]