## Makefile for the toplevel directory of the GNU C++ Standard library.
##
-## Copyright (C) 1997,1998, 1999, 2000 Free Software Foundation, Inc.
+## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
## Process this file with automake to produce Makefile.in.
AUTOMAKE_OPTIONS = 1.3 cygnus
MAINT_CHARSET = latin1
-# This helps subvert libstdcxx_interface, as calculated by devo/config.if
-# Needed so that g++ can find the correct include subdir automatically.
-INTERFACE = v3
-gxx_include_dir=$(includedir)/g++
-
-SUBDIRS = libio libmath libsupc++ src
-
-
-# Compile flags that should be constant throughout the build, both for
-# SUBDIRS and for libstdc++-v3 in general.
-# Optimization flags that are probably a good idea for thrill-seekers. Just
-# uncomment the lines below and make, everything else is ready to go...
-# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
-OPTIMIZE_CXXFLAGS =
-
-# Warning flags to use.
-WARN_CXXFLAGS = \
- -Wall -Wno-format -W -Wwrite-strings -Winline \
- $(WERROR) @WFMT_FLAGS@
-
-# These bits are all figured out from configure. Look in acinclude.m4
-# or configure.in to see how they are set.
-# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
-CONFIG_CXXFLAGS = \
- @EXTRA_CXX_FLAGS@ \
- @SECTION_FLAGS@ @CSHADOWFLAGS@ @DEBUG_FLAGS@
-
-
-# Root level of the include sources.
-GLIBCPP_INCLUDES = $(top_srcdir)/include
-
-# Passed down for cross compilers, canadian crosses.
-TOPLEVEL_INCLUDES = -I$(includedir)
-
-LIBMATH_INCLUDES = -I$(top_srcdir)/libmath
-
-if GLIBCPP_NEED_LIBIO
-LIBIO_INCLUDES = \
- -I$(top_builddir)/libio -I$(top_srcdir)/libio
-else
-LIBIO_INCLUDES = -I$(top_srcdir)/libio
-endif
-
-# XXX may need to add this in later to enabled shadow header includes
-# -I$(top_builddir)/cshadow
-if GLIBCPP_USE_CSHADOW
-CSHADOW_INCLUDES = \
- -I$(GLIBCPP_INCLUDES)/std -I$(GLIBCPP_INCLUDES)/c_std
-else
-CSHADOW_INCLUDES = \
- -I$(GLIBCPP_INCLUDES)/std -I$(GLIBCPP_INCLUDES)/c
-endif
-
-
-# Use $(blddir) instead of $(top_builddir) for arguments to "mkcheck"
-# because then the paths will be full pathnames, not relative
-# pathnames. (-Wl,--rpath seems to like this better.)
-check: $(top_builddir)/mkcheck
- chmod +x $(top_builddir)/mkcheck
- $(top_builddir)/mkcheck 0 `pwd` $(top_srcdir)
-
-check-install: $(top_builddir)/mkcheck
- chmod +x $(top_builddir)/mkcheck
- $(top_builddir)/mkcheck 1 `pwd` $(top_srcdir) $(prefix)
+SUBDIRS = include libio libmath libsupc++ src po testsuite
+
+mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+
+PWD = $${PWDCMD-pwd}
+
+# These two special 'check-script' rules use the bash script 'mkcheck'
+# to do testing. This script is not as portable as the dejagnu test
+# harness, and is thus off by default. It does produce interesting
+# output however, including various performance analysis items like
+# compile time, execution time, and binary size.
+check-script: $(top_builddir)/mkcheck
+ -(chmod + $(top_builddir)/mkcheck; \
+ cd testsuite; \
+ @glibcpp_builddir@/mkcheck 0)
+
+check-script-install: $(top_builddir)/mkcheck
+ -(chmod + $(top_builddir)/mkcheck; \
+ cd testsuite; \
+ @glibcpp_builddir@/mkcheck 1)
+
+# Use 'new-abi-baseline' to create an initial symbol file. Then run
+# 'check-abi' to test for changes against that file.
+baseline_file = @baseline_file@
+check-abi: $(top_builddir)/testsuite/abi_check
+ -@(cd testsuite; \
+ @glibcpp_srcdir@/config/abi/extract_symvers \
+ ../src/.libs/libstdc++.so \
+ ./current_symbols.txt && \
+ ./abi_check --check ./current_symbols.txt ${baseline_file})
+
+new-abi-baseline:
+ -@(output=${baseline_file}; \
+ if test -f $${output}; then \
+ output=$${output}.new; \
+ t=`echo $${output} | sed 's=.*config/abi/=='`; \
+ echo "Baseline file already exists, writing to $${t} instead."; \
+ fi; \
+ @glibcpp_srcdir@/config/abi/extract_symvers \
+ src/.libs/libstdc++.so $${output})
+
+# These rules are messy, but are hella worth it.
+doxygen:
+ -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
+ builddir=`${PWD}`; \
+ /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
+ --mode=user $${srcdir} $${builddir})
+
+doxygen-maint:
+ -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
+ builddir=`${PWD}`; \
+ /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
+ --mode=maint $${srcdir} $${builddir})
+
+doxygen-man:
+ -(srcdir=`cd ${top_srcdir}; ${PWD}`; \
+ builddir=`${PWD}`; \
+ /bin/sh ${srcdir}/docs/doxygen/run_doxygen \
+ --mode=man $${srcdir} $${builddir})
+
+.PHONY: doxygen doxygen-maint doxygen-man
# Multilib support.
MAKEOVERRIDES=
-# Multilib variables.
+# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
MULTIDO = true
MULTICLEAN = true
-# Multilib Makefile bits.
+# Multilib support.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
maintainer-clean-multi
-all-am: all-multi
-install-am: install-multi
-mostlyclean-am: mostlyclean-multi
-clean-am: clean-multi
-distclean-am: distclean-multi
-maintainer-clean-am: maintainer-clean-multi
+all-recursive: all-multi
+install-recursive: install-multi
+mostlyclean-recursive: mostlyclean-multi
+clean-recursive: clean-multi
+distclean-recursive: distclean-multi
+maintainer-clean-recursive: maintainer-clean-multi
all-multi:
- $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
+ : $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do
install-multi:
$(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do
mostlyclean-multi:
"PICFLAG=$(PICFLAG)" \
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"SHELL=$(SHELL)" \
- "EXPECT=$(EXPECT)" \
- "RUNTEST=$(RUNTEST)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"exec_prefix=$(exec_prefix)" \
"infodir=$(infodir)" \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
+ "gxx_include_dir=$(gxx_include_dir)" \
"AR=$(AR)" \
"AS=$(AS)" \
- "CC=$(CC)" \
- "CXX=$(CXX)" \
"LD=$(LD)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"DESTDIR=$(DESTDIR)" \
- "WERROR=$(WERROR)" \
- "OPTIMIZE_CXXFLAGS=$(OPTIMIZE_CXXFLAGS)" \
- "WARN_CXXFLAGS=$(WARN_CXXFLAGS)" \
- "CONFIG_CXXFLAGS=$(CONFIG_CXXFLAGS)" \
- "GLIBCPP_INCLUDES=$(GLIBCPP_INCLUDES)" \
- "TOPLEVEL_INCLUDES=$(TOPLEVEL_INCLUDES)" \
- "LIBMATH_INCLUDES=$(LIBMATH_INCLUDES)" \
- "LIBIO_INCLUDES=$(LIBIO_INCLUDES)" \
- "CSHADOW_INCLUDES=$(CSHADOW_INCLUDES)"
+ "WERROR=$(WERROR)"
+# Subdir rules rely on $(FLAGS_TO_PASS)
+FLAGS_TO_PASS = $(AM_MAKEFLAGS)