=== modified file 'bin/fsb' --- bin/fsb 2013-05-21 21:57:12 +0000 +++ bin/fsb 2013-05-21 21:47:48 +0000 @@ -146,26 +146,21 @@ return fi - local param info_name=TARGET_INFO_${1#fsb_target_} + local param stack_pos info_name=TARGET_INFO_${1#fsb_target_} local -A info for param in $info_vars; do info[${param#FSB_INFO_}=${(P)param} - unset $param done info[FUNC]=$1 build_stack+=$info_name - - : ${info[DIR]:=%s} - - if [[ $info[BASE] == *'%s'* ]]; then + stack_pos=$#build_stack + + if [[ $info[BASE] == *'%s'* || $info[DIR] == *'%s'* ]]; then target_info $info[DEPEND] build_dir_base=${${info[BASE]}/%s/${build_dir_base}} info[DIR]=${${info[DIR]}/%s/${build_dir_base}} else build_dir_base=${info[BASE]} - if [[ $info[DIR] == *'%s'* ]]; then - info[DIR]=${${info[DIR]}/%s/${build_dir_base}} - fi build_dir_check ${info[DIR]} $1 local ret=$? if (( $ret == 100 )) ; then