I may miss something very obvious with this Makefile:
convert: devel/bar touch convert init: devel/foo echo \'init\' devel/foo: mkdir -p devel touc
You're not creating a file called init, so init is always out-of-date. Therefore everything that depends on it is always out-of-date.
init