Обновить переменные внутри метки make-файла - PullRequest
0 голосов
/ 07 февраля 2011

У меня есть статические библиотеки C ++ и исполняемый файл, который их использует, каждая из них находится в отдельной папке. Каждый такой проект может быть построен в конфигурации Debug или Release, когда иерархия файлов выглядит следующим образом: Static_Lib1 \ Debug \ staticlib1.a
Static_Lib1 \ Release \ staticlib1.a
// то же самое для всех других статических библиотек
Исполняемые \ Debug \ исполняемый файл
Исполняемый файл \ Выпуск \ исполняемый файл

Все папки Debug и Release содержат make-файлы.
Я пытаюсь написать внешний make-файл для вызова каждого из внутренних проектов с использованием выбранной конфигурации - отладка или выпуск.
Итак, я попробовал что-то вроде:

CFG= #empty declaration  
PROJECTS=Static_Lib1 Static_Lib2 ... Executable
all:  
  release #default config is release  

release:  
  CFG = Release  
  make build-all  

debug:  
  CFG = Debug  
  make build-all  

build-all:  
  make clean  
  $(foreach projectName, $(PROJECTS), cd $(projectName)/$(CFG) && make all;)

Но я получаю этот вывод при попытке, например, запустить make debug:

CFG = Debug  
make: CFG: Command not found  
make: *** [debug] Error 127 

Как я могу это исправить?
Моя ОС SLED 11x64.

Заранее спасибо!

1 Ответ

1 голос
/ 07 февраля 2011

Измените его на:

...

release:  
  make CFG=Release build-all  

debug:  
  make CFG=Debug build-all  

...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...