True, it turned out now; sorry for the earlier confusion.
Taking a quick look at flymake.el, for * .c files, the 'make' call ends up:
(defun flymake-get-make-cmdline (source base-dir) (list "make" (list "-s" "-C" base-dir (concat "CHK_SOURCES=" source) "SYNTAX_CHECK_MODE=1" "check-syntax")))
This is caused by flymake-simple-make-init , which is called because in order for *.c files to be displayed on flymake-allowed-file-name-masks .
So, the correct answer would be to change the flymake-allowed-file-name-masks to map *.c files to another init defun, and then write that defun to call rake the way you want. There are a ton of defuns that are already written for different things, and most of them are pretty short and clear - so even if you donβt know Emacs Lisp, you can probably work something with a minimum of futzing. (Actually, the correct answer would be to change flymake-simple-make-init so that the command name is read from the defcustom variable, then push this change back up ...)
A quick and dirty answer, given that you said that all you have to do is call rake with the same arguments as make, it would grab a copy of flymake.el, paste it at an early stage load-path and run the line "make" in flymake-get-make-cmdline to read "rake" instead. This will at least lead you to the next step ...
source share