declare -a files_restrict_function mak:restrict_() {
if [[ -z ${files_restrict_[$1]+@} ]]; then files_restrict_[$1]=''
declare require IFS=$' \t\n'
for require in ${files_requires_[$1]}; do
mak:restrict_ "$require" done fi}
function mak:be:class_() { declare i="$1" shift if [[ $# -ne 0 ]]; then
declare file IFS=$' \t\n'
for file in ${classes_files_[i]}; do
mak:requires_ "$file" "$@" done fi}function mak:class_() {
declare i for i in "${!classes_ext_[@]}"; do
mak:filter "${classes_ext_[i]}" -- mak:be:class_ "$i" done
return 0}#profile "%class%" \mak:class_function mak:debug-restrict_() {
echo "${!files_restrict_[*]}"}if [[ $# -ne 0 ]]; then declare target
for target in "$@"; do declare i
for i in "${!files_name_[@]}"; do
declare path="${files_root_[i]}${files_name_[i]}"
if [[ ${path##*(./)} == $target ]]; then
mak:restrict_ "$i" declare target=''
fi done if [[ ${target:+@} ]]; then
fatal "unknown target: $target" fi done declare i
for i in "${!files_requires_[@]}"; do
if [[ -z ${files_restrict_[i]+@} ]]; then
unset 'files_requires_[i]' fi done declare i
for i in "${!files_queue_[@]}"; do
if [[ -z ${files_restrict_[i]+@} ]]; then mak:dequeue_ "$i"
fi donefiif [[ ${OPT_DEBUG+@} ]]; then "mak:debug-${OPT_DEBUG}_"
exit 0fi#profile "%schedule%" \mak:schedulerekill_