]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/Makefile.am
Makefile.am: Remove trailing whitespace.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / Makefile.am
CommitLineData
7f98c6bc
GDR
1## Makefile for the testsuite subdirectory of the GNU C++ Standard library.
2##
6b543e86 3## Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
7f98c6bc
GDR
4##
5## This file is part of the libstdc++ version 3 distribution.
6## Process this file with automake to produce Makefile.in.
7
8## This file is part of the GNU ISO C++ Library. This library is free
9## software; you can redistribute it and/or modify it under the
10## terms of the GNU General Public License as published by the
11## Free Software Foundation; either version 2, or (at your option)
12## any later version.
13
14## This library is distributed in the hope that it will be useful,
15## but WITHOUT ANY WARRANTY; without even the implied warranty of
16## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17## GNU General Public License for more details.
18
19## You should have received a copy of the GNU General Public License along
20## with this library; see the file COPYING. If not, write to the Free
21## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
22## USA.
23
caf21254 24AUTOMAKE_OPTIONS = dejagnu
7f98c6bc 25
0df3f383 26include $(top_srcdir)/fragment.am
a1af4623 27
f9f4d1e1 28AM_MAKEFLAGS = -j1
2c839a4e 29AM_RUNTESTFLAGS =
755f30f4 30
747d0967 31## CXX is actually a "C" compiler. These are real C++ programs.
3d7c150e 32testsuite_flags_script=${glibcxx_builddir}/scripts/testsuite_flags
0676e930
BK
33CXX=`${testsuite_flags_script} --build-cxx`
34
747d0967 35CXXLINK = \
3d7c150e 36 LD_RUN_PATH=$${LD_RUN_PATH:+$$LD_RUN_PATH:}${glibcxx_builddir}/src/.libs\
747d0967
BK
37 $(LIBTOOL) --tag=CXX --mode=link $(CXX) \
38 $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
39
ac3d7b44
PE
40# Generated lists of files to run. All of these names are valid make
41# targets, if you wish to generate a list manually.
42lists_of_files = \
43 testsuite_files \
44 testsuite_files_interactive \
45 testsuite_files_performance
46
747d0967 47## Build support library.
8ea08b7d 48noinst_LIBRARIES = libv3test.a
162c7cd9 49libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc
8ea08b7d 50
747d0967 51## Build support utilities.
3d7c150e 52if GLIBCXX_TEST_ABI
747d0967 53noinst_PROGRAMS = abi_check
e21c2e1c 54else
ca618b60 55noinst_PROGRAMS =
e21c2e1c 56endif
747d0967 57abi_check_SOURCES = abi_check.cc
6b543e86 58
ac3d7b44 59all-local: stamp_wchar testsuite_files
c4c064e7 60
6b543e86 61# Enable wchar_t tests if capable.
3d7c150e 62if GLIBCXX_TEST_WCHAR_T
c4c064e7
BK
63stamp_wchar:
64 touch testsuite_wchar_t
6b543e86 65else
c4c064e7
BK
66stamp_wchar:
67endif
68
7685a26d 69# This is automatically run after the generated check-DEJAGNU rule.
c4c064e7
BK
70check-local: check-abi
71
a1af4623 72baseline_file = ${baseline_dir}/baseline_symbols.txt
ca618b60 73extract_symvers = $(glibcxx_srcdir)/scripts/extract_symvers
c4c064e7
BK
74
75current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so
76 -@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt)
77
78baseline_symbols:
79 -@(output=${baseline_file}; \
80 if test ! -f $${output}; then \
81 echo "Baseline file doesn't exist."; \
82 echo "Try 'make new-abi-baseline' to create it."; \
83 exit 1; \
7685a26d 84 fi; true)
c4c064e7 85
ca618b60 86new-abi-baseline:
a1af4623 87 -@$(mkinstalldirs) ${baseline_dir}
c4c064e7
BK
88 -@(output=${baseline_file}; \
89 if test -f $${output}; then \
90 output=$${output}.new; \
91 t=`echo $${output} | sed 's=.*config/abi/=='`; \
92 echo "Baseline file already exists, writing to $${t} instead."; \
93 fi; \
94 ${extract_symvers} ../src/.libs/libstdc++.so $${output})
95
3d7c150e 96if GLIBCXX_TEST_ABI
c4c064e7
BK
97# Use 'new-abi-baseline' to create an initial symbol file. Then run
98# 'check-abi' to test for changes against that file.
99check-abi: abi_check baseline_symbols current_symbols.txt
f1a22109 100 -@(./abi_check --check ./current_symbols.txt ${baseline_file} \
258e7dbc 101 2>&1 | tee libstdc++-abi.sum)
c4c064e7 102
ca618b60 103check-abi-verbose: abi_check baseline_symbols current_symbols.txt
f1a22109 104 -@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
258e7dbc 105 2>&1 | tee libstdc++-abi.sum)
f1a22109 106
c4c064e7
BK
107else
108check-abi:
109check-abi-verbose:
6b543e86
BK
110endif
111
6b543e86 112
ce4f8c6b
BK
113# These two special 'check-script' rules use the bash script
114# 'check_survey' to do testing. This script is not as portable as the
115# dejagnu test harness, and is thus off by default. It does produce
116# interesting output however, including various performance analysis
117# items like compile time, execution time, and binary size.
3d7c150e 118survey_script = ${glibcxx_builddir}/scripts/check_survey
ce4f8c6b
BK
119check-script: ${survey_script}
120 -@(chmod + ${survey_script}; \
121 ${survey_script} 0)
0676e930 122
ce4f8c6b
BK
123check-script-install: ${survey_script}
124 -@(chmod + ${survey_script}; \
125 ${survey_script} 0)
0676e930
BK
126
127
ca618b60 128# Runs the testsuite/performance tests.
0676e930
BK
129# Some of these tests create large (~75MB) files, allocate huge
130# ammounts of memory, or otherwise tie up machine resources. Thus,
131# running this is off by default.
3d7c150e 132performance_script=${glibcxx_srcdir}/scripts/check_performance
ac3d7b44 133check-performance: testsuite_files_performance ${performance_script}
ce4f8c6b 134 -@(chmod + ${performance_script}; \
3d7c150e 135 ${performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
0676e930 136
ac3d7b44
PE
137
138# This rule generates all of the testsuite_files* lists at once.
139${lists_of_files}:
140 ${glibcxx_srcdir}/scripts/create_testsuite_files \
141 ${glibcxx_srcdir}/testsuite `${PWD_COMMAND}`
142
143
7685a26d
PE
144.PHONY: baseline_symbols new-abi-baseline check-abi check-abi-verbose \
145check-script check-script-install check-performance
0676e930 146
6b543e86 147# By adding these files here, automake will remove them for 'make clean'
0c45b8e0 148CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
ca618b60 149 testsuite_* site.exp abi_check baseline_symbols