162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci
462306a36Sopenharmony_cioutfile=""
562306a36Sopenharmony_cinow=`date +%s`
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciwhile [ $# -gt 0 ]
862306a36Sopenharmony_cido
962306a36Sopenharmony_ci    case "$1" in
1062306a36Sopenharmony_ci        -o)
1162306a36Sopenharmony_ci	    outfile="$2"
1262306a36Sopenharmony_ci	    shift 2;;
1362306a36Sopenharmony_ci	-h)
1462306a36Sopenharmony_ci	    echo "usage: $0 [-o outfile] <make options/args>"
1562306a36Sopenharmony_ci	    exit 0;;
1662306a36Sopenharmony_ci	*)  break;;
1762306a36Sopenharmony_ci    esac
1862306a36Sopenharmony_cidone
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciif [ -z "$outfile" ]
2162306a36Sopenharmony_cithen
2262306a36Sopenharmony_ci    outfile=`mktemp --tmpdir stackusage.$$.XXXX`
2362306a36Sopenharmony_cifi
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciKCFLAGS="${KCFLAGS} -fstack-usage" make "$@"
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci# Prepend directory name to file names, remove column information,
2862306a36Sopenharmony_ci# make file:line/function/size/type properly tab-separated.
2962306a36Sopenharmony_cifind . -name '*.su' -newermt "@${now}" -print |                     \
3062306a36Sopenharmony_ci    xargs perl -MFile::Basename -pe                                 \
3162306a36Sopenharmony_ci        '$d = dirname($ARGV); s#([^:]+:[0-9]+):[0-9]+:#$d/$1\t#;' | \
3262306a36Sopenharmony_ci    sort -k3,3nr > "${outfile}"
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciecho "$0: output written to ${outfile}"
35