У меня есть статические библиотеки 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.
Заранее спасибо!