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