rework to avoid GNU-make extension