Make and Integrated Environments From within emacs, you can control make "M-x compile" runs an external command ("make -k" by default) "C-x `" (next-error) parses the command's output Grep can be called similarly ("M-x grep") The same mechanism is used by all other IDEs They call an external process and capture its stdout/stderr They run a regexp con captured strings, to find errors They know of success/failure from the process' return value Every program should report errors in the same way, for interoperability A good simple way is: : : :