1#
2# Makefile
3#   Copyright (C) 1999, 2002, 2006
4#   Free Software Foundation
5#
6# This file is part of the libiberty library.
7# Libiberty is free software; you can redistribute it and/or
8# modify it under the terms of the GNU Library General Public
9# License as published by the Free Software Foundation; either
10# version 2 of the License, or (at your option) any later version.
11#
12# Libiberty is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15# Library General Public License for more details.
16#
17# You should have received a copy of the GNU Library General Public
18# License along with libiberty; see the file COPYING.LIB.  If not,
19# write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20# Boston, MA 02110-1301, USA.
21#
22
23# This file was written by Tom Tromey <tromey@cygnus.com>.
24
25#
26# Makefile for libiberty/testsuite directory
27#
28
29srcdir = @srcdir@
30VPATH = @srcdir@
31
32SHELL = @SHELL@
33
34CC = @CC@
35CFLAGS = @CFLAGS@
36LIBCFLAGS = $(CFLAGS)
37
38# Multilib support variables.
39MULTISRCTOP =
40
41INCDIR=$(srcdir)/../$(MULTISRCTOP)../include
42
43all:
44
45# CHECK is set to "really_check" or the empty string by configure.
46check: @CHECK@
47
48really-check: check-cplus-dem check-d-demangle check-pexecute check-expandargv \
49		check-strtol
50
51# Run some tests of the demangler.
52check-cplus-dem: test-demangle $(srcdir)/demangle-expected
53	./test-demangle < $(srcdir)/demangle-expected
54
55check-d-demangle: test-demangle $(srcdir)/d-demangle-expected
56	./test-demangle < $(srcdir)/d-demangle-expected
57
58# Check the pexecute code.
59check-pexecute: test-pexecute
60	./test-pexecute
61
62# Check the expandargv functionality
63check-expandargv: test-expandargv
64	./test-expandargv
65
66# Check the strtol functionality
67check-strtol: test-strtol
68	./test-strtol
69
70# Run the demangler fuzzer
71fuzz-demangler: demangler-fuzzer
72	./demangler-fuzzer
73
74TEST_COMPILE = $(CC) @DEFS@ $(LIBCFLAGS) -I.. -I$(INCDIR) $(HDEFINES)
75test-demangle: $(srcdir)/test-demangle.c ../libiberty.a
76	$(TEST_COMPILE) -o test-demangle \
77		$(srcdir)/test-demangle.c ../libiberty.a
78
79test-pexecute: $(srcdir)/test-pexecute.c ../libiberty.a
80	$(TEST_COMPILE) -DHAVE_CONFIG_H -I.. -o test-pexecute \
81		$(srcdir)/test-pexecute.c ../libiberty.a
82
83test-expandargv: $(srcdir)/test-expandargv.c ../libiberty.a
84	$(TEST_COMPILE) -DHAVE_CONFIG_H -I.. -o test-expandargv \
85		$(srcdir)/test-expandargv.c ../libiberty.a
86
87test-strtol: $(srcdir)/test-strtol.c ../libiberty.a
88	$(TEST_COMPILE) -DHAVE_CONFIG_H -I.. -o test-strtol \
89		$(srcdir)/test-strtol.c ../libiberty.a
90
91demangler-fuzzer: $(srcdir)/demangler-fuzzer.c ../libiberty.a
92	$(TEST_COMPILE) -o demangler-fuzzer \
93		$(srcdir)/demangler-fuzzer.c ../libiberty.a
94
95# Standard (either GNU or Cygnus) rules we don't use.
96html install-html info install-info clean-info dvi pdf install-pdf \
97install etags tags installcheck:
98
99# The standard clean rules.
100mostlyclean:
101	rm -f test-demangle
102	rm -f test-pexecute
103	rm -f test-expandargv
104	rm -f test-strtol
105	rm -f demangler-fuzzer
106	rm -f core
107clean: mostlyclean
108distclean: clean
109	rm -f Makefile
110maintainer-clean realclean: distclean
111
112Makefile: $(srcdir)/Makefile.in ../config.status
113	CONFIG_FILES=testsuite/Makefile CONFIG_HEADERS= \
114	  cd .. && $(SHELL) ./config.status
115