# $FreeBSD$ usage() { cat <<__EOF__ >&2 usage: $(basename $0) This script regenerates the DTrace test suite makefiles. It should be run whenever \$srcdir/cddl/contrib/opensolaris/cmd/dtrace/test/tst is modified. __EOF__ exit 1 } # Format a file list for use in a make(1) variable assignment: take the # basename of each input file and append " \" to it. fmtflist() { awk 'function bn(f) { sub(".*/", "", f) return f } {print " ", bn($1), " \\"}' } genmakefile() { local basedir=$1 local tdir=${CONTRIB_TESTDIR}/${basedir} local tfiles=$(find $tdir -type f -a \ \( -name \*.d -o -name \*.ksh -o -name \*.out \) | sort | fmtflist) local tcfiles=$(find $tdir -type f -a -name \*.c | sort | fmtflist) local texes=$(find $tdir -type f -a -name \*.exe | sort | fmtflist) # One-off variable definitions. local special case "$basedir" in proc) special=" LIBADD.tst.sigwait.exe+= rt " ;; raise) special=" TEST_METADATA.t_dtrace_contrib+= required_memory=\"4g\" " ;; safety) special=" TEST_METADATA.t_dtrace_contrib+= required_memory=\"4g\" " ;; uctf) special=" WITH_CTF=YES " ;; esac local makefile=$(mktemp) cat <<__EOF__ > $makefile # \$FreeBSD$ # # This Makefile was generated by \$srcdir${ORIGINDIR#${TOPDIR}}/genmakefiles.sh. # PACKAGE= tests \${PACKAGE}FILES= \\ $tfiles TESTEXES= \\ $texes CFILES= \\ $tcfiles $special .include "../../dtrace.test.mk" __EOF__ mv -f $makefile ${ORIGINDIR}/../common/${basedir}/Makefile } set -e if [ $# -ne 0 ]; then usage fi readonly ORIGINDIR=$(realpath $(dirname $0)) readonly TOPDIR=$(realpath ${ORIGINDIR}/../../../../..) readonly CONTRIB_TESTDIR=${TOPDIR}/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common # Generate a Makefile for each test group under common/. for dir in $(find ${CONTRIB_TESTDIR} -mindepth 1 -maxdepth 1 -type d); do genmakefile $(basename $dir) done