The following idiom in a compiler/*.vim file
let &l:makeprg = 'm'
exe 'CompilerSet makeprg='..escape(&l:makeprg, ' "')
should work fine (maybe requiring further escapes!?), but is not accounted for by :Dispatch.
I suspect a regex searches for makeprg=\w+ ?