diff options
Diffstat (limited to 'libstdc++-v3/testsuite/Makefile.am')
-rw-r--r-- | libstdc++-v3/testsuite/Makefile.am | 72 |
1 files changed, 67 insertions, 5 deletions
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am index d85fae7d8d9..b320920e218 100644 --- a/libstdc++-v3/testsuite/Makefile.am +++ b/libstdc++-v3/testsuite/Makefile.am @@ -1,6 +1,6 @@ ## Makefile for the testsuite subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 2001, 2002 Free Software Foundation, Inc. +## Copyright (C) 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. @@ -23,6 +23,8 @@ AUTOMAKE_OPTIONS = cygnus dejagnu +mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs + DEJATOOL = libstdc++-v3 EXPECT = `if [ -f @glibcpp_builddir@/../../expect/expect ] ; then \ @@ -38,10 +40,10 @@ RUNTESTFLAGS = ## CXX is actually a "C" compiler. These are real C++ programs. ## Do the same thing as `testsuite_flags --build-cxx` -CXX_fake = @glibcpp_CXX@ -CXX=`echo $(CXX_fake) | sed 's/xgcc/g++/g'` +CXX_build = @glibcpp_CXX@ +CXX=`echo "$(CXX_build)" | sed 's,gcc/xgcc ,gcc/g++ ,'` CXXLINK = \ - LD_RUN_PATH=${LD_RUN_PATH:+$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\ + LD_RUN_PATH=$${LD_RUN_PATH:+$$LD_RUN_PATH:}${glibcpp_builddir}/src/.libs\ $(LIBTOOL) --tag=CXX --mode=link $(CXX) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ @@ -55,9 +57,69 @@ libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc ## Build support utilities. ## Only build this as native, as need to find startup files and libc to link. -if GLIBCPP_BUILD_ABI_CHECK +if GLIBCPP_TEST_ABI noinst_PROGRAMS = abi_check else noinst_PROGRAMS = endif abi_check_SOURCES = abi_check.cc + +# Enable wchar_t tests if capable. +if GLIBCPP_TEST_WCHAR_T +all-local: stamp_wchar +else +all-local: +endif + +# Override this so local rules are possible. +check-am: + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU; \ + $(MAKE) $(AM_MAKEFLAGS) check-local + +check-local: check-abi + +stamp_wchar: + touch testsuite_wchar_t + +baseline_dir = @baseline_dir@ +baseline_file = ${baseline_dir}/baseline_symbols.txt +extract_symvers = @glibcpp_srcdir@/config/abi/extract_symvers + +current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so + -@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt) + +baseline_symbols: + -@(output=${baseline_file}; \ + if test ! -f $${output}; then \ + echo "Baseline file doesn't exist."; \ + echo "Try 'make new-abi-baseline' to create it."; \ + exit 1; \ + fi; \ + touch baseline_symbols) + +new-abi-baseline: + -@$(mkinstalldirs) ${baseline_dir} + -@(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; \ + ${extract_symvers} ../src/.libs/libstdc++.so $${output}) + +if GLIBCPP_TEST_ABI +# Use 'new-abi-baseline' to create an initial symbol file. Then run +# 'check-abi' to test for changes against that file. +check-abi: abi_check baseline_symbols current_symbols.txt + -@(./abi_check --check ./current_symbols.txt ${baseline_file}) + +check-abi-verbose: abi_check baseline_symbols current_symbols.txt + -@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file}) +else +check-abi: +check-abi-verbose: +endif + +# By adding these files here, automake will remove them for 'make clean' +CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \ + testsuite_files testsuite_wchar_t site.exp abi_check |