У меня есть BSDmakefile и GNUmakefile, которые в значительной степени идентичны, за исключением управления зависимостями.BSD Make и GNU Сделать совместимый make-файл
GNUmakefile:
ifneq ($(MAKECMDGOALS), "clean")
-include $(dependencies)
endif
BSDmakefile:
.for i in $(dependencies)
.sinclude "${i}"
.endfor
Есть ли способ сделать это так, что я могу обнаружить, если я бегу под gmake или bsdmake, а затем выполнить соответствующие включают заявления, основанные на этом? Я помню, как кто-то воспользовался причудой в обоих процессорах makefile, чтобы они могли добиться аналогичного эффекта.
Альтернативно, если есть лучший подход, чем это, я хотел бы знать! (переход на SCons или CMake не подходит!)
Спасибо!
Я не уверен, почему вы хотите это сделать: почему бы просто не потребовать 'gmake' или' bmake' везде? Если вы хотите быть портативным, вы можете использовать 'automake' и оставить детали. Многие проекты имеют достаточно сложное время, чтобы получить единую систему сборки, не говоря уже о 2. –