159612Sjasone#
250476Speter# $FreeBSD: releng/10.3/lib/libkse/test/Makefile 125468 2004-02-05 02:55:20Z davidxu $
338540Sjb#
4103412Smini# Automated test suite for libpthread (pthreads).
538540Sjb#
638540Sjb
759612Sjasone# File lists.
838540Sjb
976912Sjasone# Tests written in C.
1076912SjasoneCTESTS := hello_d.c hello_s.c join_leak_d.c mutex_d.c sem_d.c sigsuspend_d.c \
1176912Sjasone	sigwait_d.c
1259612Sjasone
1376912Sjasone# C programs that are used internally by the tests.  The build system merely
1476912Sjasone# compiles these.
1580021SjasoneBTESTS := guard_b.c hello_b.c
1659612Sjasone
1776912Sjasone# Tests written in perl.
1880021SjasonePTESTS := guard_s.pl propagate_s.pl
1959612Sjasone
2059612Sjasone# Munge the file lists to their final executable names (strip the .c).
2176912SjasoneCTESTS := $(CTESTS:R)
2259612SjasoneBTESTS := $(BTESTS:R)
2359612Sjasone
2476912SjasoneCPPFLAGS := -D_LIBC_R_ -D_REENTRANT
2559612SjasoneCFLAGS := -Wall -pipe -g3
2659612SjasoneLDFLAGS_A := -static
2759612SjasoneLDFLAGS_P := -pg
2859612SjasoneLDFLAGS_S :=
29125468SdavidxuLIBS := -lpthread
3059612Sjasone
3159612Sjasone# Flags passed to verify.  "-v" or "-u" may be useful.
32118854SmarcelVERIFY = perl verify
3359612SjasoneVFLAGS :=
3459612Sjasone
3559612Sjasoneall : default
3659612Sjasone
3759612Sjasone# Only use the following suffixes, in order to avoid any strange built-in rules.
3859612Sjasone.SUFFIXES :
3959612Sjasone.SUFFIXES : .c .o .d .pl
4059612Sjasone
4159612Sjasone# Clear out all paths, then set just one (default path) for the main build
4259612Sjasone# directory.
4359612Sjasone.PATH :
4459612Sjasone.PATH : .
4559612Sjasone
4659612Sjasone# Build the C programs.
4776912Sjasone.for bin in $(CTESTS) $(BTESTS)
4859612Sjasone$(bin)_a : $(bin:S/$/&.c/)
4959612Sjasone	$(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
5059612Sjasone	$(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_A) $(LIBS)
5159612Sjasone	@$(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/)"
5259612Sjasone
5359612Sjasone$(bin)_p : $(bin:S/$/&.c/)
5459612Sjasone	$(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
5559612Sjasone	$(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_P) $(LIBS)
5659612Sjasone	@$(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/)"
5759612Sjasone
5859612Sjasone$(bin)_s : $(bin:S/$/&.c/)
5959612Sjasone	$(CC) $(CFLAGS) $(CPPFLAGS) -c $(bin:S/$/&.c/) -o $(@:S/$/&.o/)
6059612Sjasone	$(CC) -o $@ $(@:S/$/&.o/) $(LDFLAGS_S) $(LIBS)
6159612Sjasone	@$(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/)"
6259612Sjasone.endfor
6359612Sjasone
6459612Sjasone# Dependency file inclusion.
6576912Sjasone.for depfile in $(CTESTS:R:S/$/&_a.d/) $(BTESTS:R:S/$/&_a.d/) \
6676912Sjasone		$(CTESTS:R:S/$/&_p.d/) $(BTESTS:R:S/$/&_p.d/) \
6776912Sjasone		$(CTESTS:R:S/$/&_s.d/) $(BTESTS:R:S/$/&_s.d/)
6859612Sjasone.if exists($(depfile))
6959612Sjasone.include "$(depfile)"
7059612Sjasone.endif
7159612Sjasone.endfor
7259612Sjasone
7359612Sjasonedefault : check
7459612Sjasone
7576912Sjasonetests_a : $(CTESTS:S/$/&_a/) $(BTESTS:S/$/&_a/)
7676912Sjasonetests_p : $(CTESTS:S/$/&_p/) $(BTESTS:S/$/&_p/)
7776912Sjasonetests_s : $(CTESTS:S/$/&_s/) $(BTESTS:S/$/&_s/)
7859612Sjasone
7959612Sjasonetests : tests_a tests_p tests_s
8059612Sjasone
8159612Sjasonecheck_a : tests_a
8276912Sjasone.for bin in $(CTESTS) $(BTESTS)
8359612Sjasone	@cp $(bin)_a $(bin)
8459612Sjasone.endfor
8559612Sjasone	@echo "Test static library:"
86118854Smarcel	@$(VERIFY) $(VFLAGS) $(CTESTS) $(PTESTS)
8759612Sjasone
8859612Sjasonecheck_p : tests_p
8976912Sjasone.for bin in $(CTESTS) $(BTESTS)
9059612Sjasone	@cp $(bin)_p $(bin)
9159612Sjasone.endfor
9259612Sjasone	@echo "Test profile library:"
93118854Smarcel	@$(VERIFY) $(VFLAGS) $(CTESTS) $(PTESTS)
9459612Sjasone
9559612Sjasonecheck_s : tests_s
9676912Sjasone.for bin in $(CTESTS) $(BTESTS)
9759612Sjasone	@cp $(bin)_s $(bin)
9859612Sjasone.endfor
9959612Sjasone	@echo "Test shared library:"
100118854Smarcel	@$(VERIFY) $(VFLAGS) $(CTESTS) $(PTESTS)
10159612Sjasone
10259612Sjasonecheck : check_a check_p check_s
10359612Sjasone
10459612Sjasoneclean :
10559612Sjasone	rm -f *~
10659612Sjasone	rm -f *.core
10759612Sjasone	rm -f *.out
10859612Sjasone	rm -f *.perf
10959612Sjasone	rm -f *.diff
11059612Sjasone	rm -f *.gmon
11176912Sjasone	rm -f $(CTESTS) $(BTESTS)
11276912Sjasone	rm -f $(CTESTS:S/$/&_a/) $(BTESTS:S/$/&_a/)
11376912Sjasone	rm -f $(CTESTS:S/$/&_p/) $(BTESTS:S/$/&_p/)
11476912Sjasone	rm -f $(CTESTS:S/$/&_s/) $(BTESTS:S/$/&_s/)
11559612Sjasone	rm -f *.d
11659612Sjasone	rm -f *.o
117