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