14ddbe5acSMark Johnston
24ddbe5acSMark Johnstonusage()
34ddbe5acSMark Johnston{
44ddbe5acSMark Johnston    cat <<__EOF__ >&2
54ddbe5acSMark Johnstonusage: $(basename $0)
64ddbe5acSMark Johnston
74ddbe5acSMark JohnstonThis script regenerates the DTrace test suite makefiles. It should be run
84ddbe5acSMark Johnstonwhenever \$srcdir/cddl/contrib/opensolaris/cmd/dtrace/test/tst is modified.
94ddbe5acSMark Johnston__EOF__
104ddbe5acSMark Johnston    exit 1
114ddbe5acSMark Johnston}
124ddbe5acSMark Johnston
134ddbe5acSMark Johnston# Format a file list for use in a make(1) variable assignment: take the
144ddbe5acSMark Johnston# basename of each input file and append " \" to it.
154ddbe5acSMark Johnstonfmtflist()
164ddbe5acSMark Johnston{
174ddbe5acSMark Johnston    awk 'function bn(f) {
184ddbe5acSMark Johnston        sub(".*/", "", f)
194ddbe5acSMark Johnston        return f
204ddbe5acSMark Johnston    }
214ddbe5acSMark Johnston    {print "    ", bn($1), " \\"}'
224ddbe5acSMark Johnston}
234ddbe5acSMark Johnston
244ddbe5acSMark Johnstongenmakefile()
254ddbe5acSMark Johnston{
262df0edc1SMark Johnston    local class=$1
272df0edc1SMark Johnston    local group=$2
284ddbe5acSMark Johnston
292df0edc1SMark Johnston    local tdir=${CONTRIB_TESTDIR}/${class}/${group}
304ddbe5acSMark Johnston    local tfiles=$(find $tdir -type f -a \
314ddbe5acSMark Johnston        \( -name \*.d -o -name \*.ksh -o -name \*.out \) | sort | fmtflist)
324ddbe5acSMark Johnston    local tcfiles=$(find $tdir -type f -a -name \*.c | sort | fmtflist)
334ddbe5acSMark Johnston    local texes=$(find $tdir -type f -a -name \*.exe | sort | fmtflist)
344ddbe5acSMark Johnston
354ddbe5acSMark Johnston    # One-off variable definitions.
364ddbe5acSMark Johnston    local special
372df0edc1SMark Johnston    case "$group" in
3808dde4d4SEnji Cooper    proc)
394ddbe5acSMark Johnston        special="
40eacae6dcSBryan DreweryLIBADD.tst.sigwait.exe+= rt
414ddbe5acSMark Johnston"
4208dde4d4SEnji Cooper        ;;
4308dde4d4SEnji Cooper    raise)
4408dde4d4SEnji Cooper	special="
4508dde4d4SEnji CooperTEST_METADATA.t_dtrace_contrib+=	required_memory=\"4g\"
4608dde4d4SEnji Cooper"
4708dde4d4SEnji Cooper        ;;
4808dde4d4SEnji Cooper    safety)
4908dde4d4SEnji Cooper	special="
5008dde4d4SEnji CooperTEST_METADATA.t_dtrace_contrib+=	required_memory=\"4g\"
5108dde4d4SEnji Cooper"
5208dde4d4SEnji Cooper        ;;
5308dde4d4SEnji Cooper    uctf)
544ddbe5acSMark Johnston        special="
554ddbe5acSMark JohnstonWITH_CTF=YES
564ddbe5acSMark Johnston"
5708dde4d4SEnji Cooper        ;;
5808dde4d4SEnji Cooper    esac
594ddbe5acSMark Johnston
604ddbe5acSMark Johnston    local makefile=$(mktemp)
614ddbe5acSMark Johnston    cat <<__EOF__ > $makefile
624ddbe5acSMark Johnston#
634ddbe5acSMark Johnston# This Makefile was generated by \$srcdir${ORIGINDIR#${TOPDIR}}/genmakefiles.sh.
644ddbe5acSMark Johnston#
654ddbe5acSMark Johnston
66430f7286SEnji CooperPACKAGE=	tests
67430f7286SEnji Cooper
68430f7286SEnji Cooper\${PACKAGE}FILES= \\
694ddbe5acSMark Johnston$tfiles
704ddbe5acSMark Johnston
714ddbe5acSMark JohnstonTESTEXES= \\
724ddbe5acSMark Johnston$texes
734ddbe5acSMark Johnston
744ddbe5acSMark JohnstonCFILES= \\
754ddbe5acSMark Johnston$tcfiles
764ddbe5acSMark Johnston
774ddbe5acSMark Johnston$special
78b16fc49eSBryan Drewery.include "../../dtrace.test.mk"
794ddbe5acSMark Johnston__EOF__
804ddbe5acSMark Johnston
812df0edc1SMark Johnston    mv -f $makefile ${ORIGINDIR}/../${class}/${group}/Makefile
824ddbe5acSMark Johnston}
834ddbe5acSMark Johnston
844ddbe5acSMark Johnstonset -e
854ddbe5acSMark Johnston
864ddbe5acSMark Johnstonif [ $# -ne 0 ]; then
874ddbe5acSMark Johnston    usage
884ddbe5acSMark Johnstonfi
894ddbe5acSMark Johnston
90c645060dSMark Johnstonexport LC_ALL=C
91c645060dSMark Johnston
924ddbe5acSMark Johnstonreadonly ORIGINDIR=$(realpath $(dirname $0))
934ddbe5acSMark Johnstonreadonly TOPDIR=$(realpath ${ORIGINDIR}/../../../../..)
942df0edc1SMark Johnstonreadonly CONTRIB_TESTDIR=${TOPDIR}/cddl/contrib/opensolaris/cmd/dtrace/test/tst
954ddbe5acSMark Johnston
9675ed05efSMariusz Zaborskifor class in common i386 amd64; do
972df0edc1SMark Johnston    for group in $(find ${CONTRIB_TESTDIR}/$class -mindepth 1 -maxdepth 1 -type d); do
982df0edc1SMark Johnston        genmakefile $class $(basename $group)
992df0edc1SMark Johnston    done
1004ddbe5acSMark Johnstondone
101