1279418Smarkj# $FreeBSD: releng/11.0/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh 299094 2016-05-04 23:20:53Z ngie $ 2279418Smarkj 3279418Smarkjusage() 4279418Smarkj{ 5279418Smarkj cat <<__EOF__ >&2 6279418Smarkjusage: $(basename $0) 7279418Smarkj 8279418SmarkjThis script regenerates the DTrace test suite makefiles. It should be run 9279418Smarkjwhenever \$srcdir/cddl/contrib/opensolaris/cmd/dtrace/test/tst is modified. 10279418Smarkj__EOF__ 11279418Smarkj exit 1 12279418Smarkj} 13279418Smarkj 14279418Smarkj# Format a file list for use in a make(1) variable assignment: take the 15279418Smarkj# basename of each input file and append " \" to it. 16279418Smarkjfmtflist() 17279418Smarkj{ 18279418Smarkj awk 'function bn(f) { 19279418Smarkj sub(".*/", "", f) 20279418Smarkj return f 21279418Smarkj } 22279418Smarkj {print " ", bn($1), " \\"}' 23279418Smarkj} 24279418Smarkj 25279418Smarkjgenmakefile() 26279418Smarkj{ 27279418Smarkj local basedir=$1 28279418Smarkj 29279418Smarkj local tdir=${CONTRIB_TESTDIR}/${basedir} 30279418Smarkj local tfiles=$(find $tdir -type f -a \ 31279418Smarkj \( -name \*.d -o -name \*.ksh -o -name \*.out \) | sort | fmtflist) 32279418Smarkj local tcfiles=$(find $tdir -type f -a -name \*.c | sort | fmtflist) 33279418Smarkj local texes=$(find $tdir -type f -a -name \*.exe | sort | fmtflist) 34279418Smarkj 35279418Smarkj # One-off variable definitions. 36279418Smarkj local special 37279418Smarkj if [ "$basedir" = proc ]; then 38279418Smarkj special=" 39291738SbdreweryLIBADD.tst.sigwait.exe+= rt 40279418Smarkj" 41279418Smarkj elif [ "$basedir" = uctf ]; then 42279418Smarkj special=" 43279418SmarkjWITH_CTF=YES 44279418Smarkj" 45279418Smarkj fi 46279418Smarkj 47279418Smarkj local makefile=$(mktemp) 48279418Smarkj cat <<__EOF__ > $makefile 49279418Smarkj# \$FreeBSD: releng/11.0/cddl/usr.sbin/dtrace/tests/tools/genmakefiles.sh 299094 2016-05-04 23:20:53Z ngie $ 50279418Smarkj 51279418Smarkj# 52279418Smarkj# This Makefile was generated by \$srcdir${ORIGINDIR#${TOPDIR}}/genmakefiles.sh. 53279418Smarkj# 54279418Smarkj 55299094SngiePACKAGE= tests 56299094Sngie 57299094Sngie\${PACKAGE}FILES= \\ 58279418Smarkj$tfiles 59279418Smarkj 60279418SmarkjTESTEXES= \\ 61279418Smarkj$texes 62279418Smarkj 63279418SmarkjCFILES= \\ 64279418Smarkj$tcfiles 65279418Smarkj 66279418Smarkj$special 67291332Sbdrewery.include "../../dtrace.test.mk" 68279418Smarkj__EOF__ 69279418Smarkj 70279418Smarkj mv -f $makefile ${ORIGINDIR}/../common/${basedir}/Makefile 71279418Smarkj} 72279418Smarkj 73279418Smarkjset -e 74279418Smarkj 75279418Smarkjif [ $# -ne 0 ]; then 76279418Smarkj usage 77279418Smarkjfi 78279418Smarkj 79279418Smarkjreadonly ORIGINDIR=$(realpath $(dirname $0)) 80279418Smarkjreadonly TOPDIR=$(realpath ${ORIGINDIR}/../../../../..) 81279418Smarkjreadonly CONTRIB_TESTDIR=${TOPDIR}/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common 82279418Smarkj 83279418Smarkj# Generate a Makefile for each test group under common/. 84279418Smarkjfor dir in $(find ${CONTRIB_TESTDIR} -mindepth 1 -maxdepth 1 -type d); do 85279418Smarkj genmakefile $(basename $dir) 86279418Smarkjdone 87