One thing that does confuse me - why do we have: .if !target(fetch) fetch: @cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-fetch .endif and not just .if !target(fetch) fetch: real-fetch .endif We could save an extra (expensive) make invocation per fetch in the latter case. Thanks. David/absolute