3/20/2017

[Tab] missing separator, STOP.

missing separator. Stop.
missing separator (did you mean TAB instead of 8 spaces?). Stop.
不可識別的命令行,make在讀取Makefile過程中不能解析其中包含的內容。GNU make在讀取Makefile時根據各種分隔符號(:, =, [TAB]字元等)來識別Makefile的每一行內容。這些錯誤意味著make不能發現一個合法的分隔符號。

出現這些錯誤資訊的可能的原因是(或許是編輯器,絕大部分是ms-windows的編輯器)在Makefile中的命令之前使用了4個(或者8個)空格代替了[Tab]字元。這種情況,將產生上述的第二種形式產生錯誤資訊。且記,所有的命令行都應該是以[Tab]字元開始的。
      1. edit the .emacs.d/lisp/init-local.el
(require 'make-mode)
  
  (defconst makefile-nmake-statements
    `("!IF" "!ELSEIF" "!ELSE" "!ENDIF" "!MESSAGE" "!ERROR" "!INCLUDE" ,@makefile-statements)
    "List of keywords understood by nmake.")
  
  (defconst makefile-nmake-font-lock-keywords
    (makefile-make-font-lock-keywords
     makefile-var-use-regex
     makefile-nmake-statements
     t))
  
  (define-derived-mode makefile-nmake-mode makefile-mode "nMakefile"
    "An adapted `makefile-mode' that knows about nmake."
    (setq font-lock-defaults  `(makefile-nmake-font-lock-keywords ,@(cdr font-lock-defaults)))) 
          (setq auto-mode-alist(cons '("\\.mak\\'" . makefile-nmake-mode) auto-mode-alist))
2. https://www.emacswiki.org/emacs/MakefileMode