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