use submodule m4 macro