Установите makefile для проверки исходных файлов c и C++ с помощью emacs flymake
Я пытаюсь настроить проверку синтаксиса с помощью flymake, и у меня работает базовая настройка.
Мой make-файл для flymake выглядит следующим образом:
INCLUDES = -I ./inc ## list of more includes omitted for brevity
.PHONY: check-syntax
check-syntax:
gcc -Wall -Wextra -pedantic -fsyntax-only -Wno-variadic-macros -std=c99 $(INCLUDES) $(CHK_SOURCES)
Это работает нормально для моих C-источников.
Теперь, как использовать тот же make-файл и ту же цель проверки синтаксиса для C++? Я не могу установить несколько параметров -std, например -std=c99 -std= C++98, для одного и того же вызова gcc, или я могу? Нужно ли использовать какие-то условные? Я не могу иметь несколько целей проверки синтаксиса на одном и том же Makefile.
1 ответ
Вы можете разделить его на две цели:
check-syntax: check-syntax-c check-syntax-cxx
Затем проверьте синтаксис, используя компилятор C и флаги C в одной цели, и флаги C++ и C++ для другой.
Хотя вы должны разделить свои источники на источники C и C++, что вы должны сделать в любом случае.
Если у вас нет разделенных файлов, вы можете сделать это с помощью текстовой функции GNU Make с именем filter
разделить источники:
CHK_SOURCES_C = $(filter %.c,$(CHK_SOURCES))
CHK_SOURCES_CXX = $(filter %.cpp,$(CHK_SOURCES))