build: automatically generate main() files