わかりました。以前の混乱について申し訳ありません。
*.c ファイルの flymake.el をざっと見てみると、'make' の呼び出しは最終的に次の場所から行われます。
(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")))
それはによって呼び出されます。これは、ファイルがによってマップされてflymake-simple-make-initいるため呼び出されます。*.cflymake-allowed-file-name-masks
したがって、正しい答えは、ファイルを別の init defunflymake-allowed-file-name-masksにマップするように変更し*.c、その defun を記述して、希望する方法で rake を呼び出すことです。さまざまなことのために書かれたこれらの defun はすでにたくさんあり、それらのほとんどはかなり短くて甘いものです。(本当に正しい答えはflymake-simple-make-init、コマンド名が defcustom 変数から読み取られるように変更し、その変更を上流に送信することです...)
あなたがする必要があるのは「make」と同じ引数で「rake」を呼び出すことだけだとあなたが言ったことを考えると、flymake.elのコピーを取得し、それを早い段階であなたのload-path.flymake-get-make-cmdline代わりに「rake」を読み取る「make」文字列。そうすれば、少なくとも次のステップに進むことができます...