utils: refine argument prototype
utils: rename genmain to genc
utils: add gencxx