Merge branch 'vendor/DHCPCD'
[dragonfly.git] / test / libpthread / Makefile
1 #
2 # $FreeBSD: src/lib/libc_r/test/Makefile,v 1.4.2.2 2001/06/22 21:44:27 jasone Exp $
3 #
4 # Automated test suite for libc_r (pthreads).
5 #
6
7 # File lists.
8
9 # Tests written in C.
10 CTESTS := hello_d.c hello_s.c join_leak_d.c mutex_d.c sem_d.c sigsuspend_d.c \
11         sigwait_d.c
12
13 # C programs that are used internally by the tests.  The build system merely
14 # compiles these.
15 BTESTS := hello_b.c
16
17 # Tests written in perl.
18 PTESTS := propagate_s.pl
19
20 # Munge the file lists to their final executable names (strip the .c).
21 CTESTS := $(CTESTS:R)
22 BTESTS := $(BTESTS:R)
23
24 CPPFLAGS := -D_REENTRANT
25 CFLAGS := -Wall -pipe -g3
26 LDFLAGS_A := -static
27 LDFLAGS_P := -pg
28 LDFLAGS_S :=
29 LIBS := -lpthread
30
31 # Flags passed to verify.  "-v" or "-u" may be useful.
32 VFLAGS :=
33
34 all : default
35
36 # Only use the following suffixes, in order to avoid any strange built-in rules.
37 .SUFFIXES :
38 .SUFFIXES : .c .o .d .pl
39
40 # Clear out all paths, then set just one (default path) for the main build
41 # directory.
42 .PATH :
43 .PATH : .
44
45 # Build the C programs.
46 .for bin in $(CTESTS) $(BTESTS)
47 $(bin)_a : $(bin:S/$/&.c/)
48         $(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
49         $(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_A) $(LIBS)
50         @$(SHELL) -ec "$(CC) -M $(CPPFLAGS) $(bin:S/$/&.c/) | sed \"s/\($(bin:T)\)\.o\([ :]*\)/$(bin:H:S!/!\\/!g)\/\1_a.o \2/g\" > $(@:R:S/$/&.d/)"
51
52 $(bin)_p : $(bin:S/$/&.c/)
53         $(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
54         $(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_P) $(LIBS)
55         @$(SHELL) -ec "$(CC) -M $(CPPFLAGS) $(bin:S/$/&.c/) | sed \"s/\($(bin:T)\)\.o\([ :]*\)/$(bin:H:S!/!\\/!g)\/\1_p.o \2/g\" > $(@:R:S/$/&.d/)"
56
57 $(bin)_s : $(bin:S/$/&.c/)
58         $(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
59         $(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_S) $(LIBS)
60         @$(SHELL) -ec "$(CC) -M $(CPPFLAGS) $(bin:S/$/&.c/) | sed \"s/\($(bin:T)\)\.o\([ :]*\)/$(bin:H:S!/!\\/!g)\/\1_s.o \2/g\" > $(@:R:S/$/&.d/)"
61 .endfor
62
63 # Dependency file inclusion.
64 .for depfile in $(CTESTS:R:S/$/&_a.d/) $(BTESTS:R:S/$/&_a.d/) \
65                 $(CTESTS:R:S/$/&_p.d/) $(BTESTS:R:S/$/&_p.d/) \
66                 $(CTESTS:R:S/$/&_s.d/) $(BTESTS:R:S/$/&_s.d/)
67 .if exists($(depfile))
68 .include "$(depfile)"
69 .endif
70 .endfor
71
72 default : check
73
74 tests_a : $(CTESTS:S/$/&_a/) $(BTESTS:S/$/&_a/)
75 tests_p : $(CTESTS:S/$/&_p/) $(BTESTS:S/$/&_p/)
76 tests_s : $(CTESTS:S/$/&_s/) $(BTESTS:S/$/&_s/)
77
78 tests : tests_a tests_p tests_s
79
80 check_a : tests_a
81 .for bin in $(CTESTS) $(BTESTS)
82         @cp $(bin)_a $(bin)
83 .endfor
84         @echo "Test static library:"
85         @./verify $(VFLAGS) $(CTESTS) $(PTESTS)
86
87 check_p : tests_p
88 .for bin in $(CTESTS) $(BTESTS)
89         @cp $(bin)_p $(bin)
90 .endfor
91         @echo "Test profile library:"
92         @./verify $(VFLAGS) $(CTESTS) $(PTESTS)
93
94 check_s : tests_s
95 .for bin in $(CTESTS) $(BTESTS)
96         @cp $(bin)_s $(bin)
97 .endfor
98         @echo "Test shared library:"
99         @./verify $(VFLAGS) $(CTESTS) $(PTESTS)
100
101 check : check_a check_p check_s
102
103 clean :
104         rm -f *~
105         rm -f *.core
106         rm -f *.out
107         rm -f *.perf
108         rm -f *.diff
109         rm -f *.gmon
110         rm -f $(CTESTS) $(BTESTS)
111         rm -f $(CTESTS:S/$/&_a/) $(BTESTS:S/$/&_a/)
112         rm -f $(CTESTS:S/$/&_p/) $(BTESTS:S/$/&_p/)
113         rm -f $(CTESTS:S/$/&_s/) $(BTESTS:S/$/&_s/)
114         rm -f *.d
115         rm -f *.o