2013-06-12 5 views
0

Я иногда хочу, чтобы мой каталог сборки был отделен от моего исходного каталога (например, я использую ту же самую исходную NFS, смонтированную в нескольких разных средах сборки). В этой конфигурации я не могу использовать flymake, потому что он не может найти Make-файлы. Может ли кто-нибудь рекомендовать хороший подход к получению flymake, чтобы найти правильный каталог сборки и запустить make -C check-syntax? Я чувствую, что это должна быть распространенная проблема, но Google не смог меня здесь.Каков самый простой способ заставить flymake работать с проектом autoconf с отдельным каталогом сборки?

ответ

0

Для записи, я в конечном итоге делает это (улучшения приветствуются):

(defadvice flymake-find-buildfile 
    (around advice-find-makefile-separate-obj-dir 
      activate compile) 
    "Look for buildfile in a separate build directory" 
    (let* ((source-dir (ad-get-arg 1)) 
    (bld-dir (ac-build-dir source-dir))) 
    (ad-set-arg 1 bld-dir) 
    ad-do-it)) 

(defun ac-find-configure (source-dir) 
    (locate-dominating-file source-dir "configure")) 

(defvar project-build-root nil 
    "top build directory of the project") 

(defun ac-build-dir (source-dir) 
    "find the build directory for the given source directory" 
    (condition-case nil 
     (let* ((topdir (ac-find-configure source-dir)) 
     (subdir (file-relative-name (file-name-directory source-dir) topdir)) 
     (blddir (concat (file-name-as-directory project-build-root) subdir))) 
     blddir) 
    (error source-dir))) 

и установка project-build-root в мой каталог сборки в моем верхнем исходном каталоге .dir-locals.el

 Смежные вопросы

  • Нет связанных вопросов^_^