У меня есть шаблон make-файла для компиляции одной DLL (для системы плагинов).
Makefile пользователя выглядит так:
EXTRA_SRCS=file1 file2
include makefile.in
В makefile.in
у меня есть:
plugin.dll: plugin.os $(patsubst %,%.os,$(EXTRA_SRCS))
Где plugin.os
- основной файл C ++ для компиляции. Кстати, файлы, оканчивающиеся на .os
, являются объектными файлами, скомпилированными для общей библиотеки (то есть с использованием опции -fpic
с gcc
)
Теперь проблема в том, что дополнительные источники, вероятно (но не обязательно) будут заголовочными файлами. В идеале я хотел бы добавить их как зависимости для цели plugin.os
и file.cpp
, но только если они существуют.
Метод должен работать как для Windows, так и для Linux, или, по крайней мере, быть адаптируемым для каждого. Однако я использую только GNU-версию make.