Привет всем.
Подскажите, пожалуйста как сделать. У меня есть несколько каталогов, в них исходники и заголовки. Допустим, в каждом из каталогов независимый проект и рузельтат компиляции — испольняемый файл.
Мне нужен вневшний мэйк файл, который в каждом из каталогов:
1) скомпилит объектные файлы
2) сгенерит файлы зависимостей
3) все эти файлы разложит где надо.
4) скомпилит исп. файл
Я читал на ситфорум.ру про использование гну мэйк, но мне не подходит использованная там идея с внешним файлом — скриптом, который запустит мэйки.
Итак, подробности.
Внешний каталог:
work/
в нем
/project1
/s1.cpp
/s2.cpp
/s3.cpp
/project2
/s1.cpp
/s2.cpp
Makefile.
Пример Makefile (для начала, скомпилим только project1)
SOURCES = $(wildcard project1/*.cpp) #ага, получил имена исходников
OBJECTS = $(patsubst %.cpp,%.o,$(wildcard project1/*.cpp))#ага, имена обж.
PROJECT1 : $(OBJECTS)
g++ -o project1/PROJECT1 $^ #скомпилим здесь исп. файл
$(OBJECTS) : $(SOURCES) #В примерах пишут %.o:%.cpp
g++ -c -MD $< #вот тут проблема, объектники компилятся
#а вот файлы зависимостей - нет.
include $(wildcard project1/*.d)
Помогите.
Было бы здорово, если бы еще и сказали как объектн. и файлы зависимостей еще и в дополнительно вложенные в project1 директории помещать.