Не уверен, что название имеет смысл ... поэтому я немного уточню.
Я играю с этим make-файлом, который использует генератор списка автозависимостей gcc.
AtВ то же время я хотел сохранить хорошую сортированную структуру каталогов, которая разделяет источник, заголовки и ресурсы.
Макет приятный и простой, как, например,
- MAIN
- src
- включает
- объекты
- зависимости
Теперь atm генератора списка зависимостей makefile выглядит так:
$(DEP_PATH)%.d : $(SRC_PATH)%.c
@${CC} $(CFLAGS) -MM -c $(INCLUDE) $< > $(DEP_PATH)$*.d
include $@
Идея состоит в том, что мы генерируем правило зависимости, затем включаем его в сборку make.
и получаем, например, foo1.o:
foo1.o: src/foo1.c include/foo1.h include/foo2.h include/foo3.h
Это будет работать нормально, если я предоставлю все свои объекты для поиска в главном каталоге ... однако, поскольку они находятся в / main / objects вместо ... make говорит, что не может найти правило для / main / objects/foo1.o
Теперь я попробовал это:
@echo "$(OBJ_PATH)" > $(DEP_PATH)$*.d
@${CC} $(CFLAGS) -MM -c $(INCLUDE) $< >> $(DEP_PATH)$*.d
, который> подает путь объекта к новой / oveЗаписанный файл, затем объединяет генерацию правила автозависимости GCC к нему ... но он добавляет новую строку между двумя наборами.
Я также попытался кошки два отдельных файла с указанной информацией ... ноони также получают переводы строк.
Есть ли хороший способ добавить файл зависимостей без добавления новой строки?
Кроме того, если у вас есть какие-то действительно хорошие учебники по make-файлам, catИ, эхо, я бы очень признателен.
Спасибо за любые ответы.