Есть ли способ в GNU make определить, нужно ли создавать цель, соответственно? обновлено
Мне нужно это различие из-за странности MS lib.exe (который я должен использовать).
UN * X-подобные инструменты поддерживают "ar cr lib.a file.o", либо создавая, либо обновляя "lib.a". К сожалению, MS lib.exe требует этого:
1-й вызов: lib.exe -out: lib.lib file.obj
следующий звонок (и):
lib.exe -out: lib.lib lib.lib file.obj
Итак, у меня есть две разные команды с одинаковыми целевыми и зависимостями ...
lib.lib: file.obj lib.exe -out: $ @ $ ^ <- если lib.lib не существует </p>
соответственно
lib.exe -out: $ @ $ @ $ ^ <- если lib.lib существует </p>
Я хочу, чтобы это обрабатывалось GNU make, а не делегировало его команде (она же оболочка).
Примечание: правила двойного двоеточия на самом деле не помогут, так как проблема скрыта в неявном правиле.
(% .obj):% .obj
$ (AR) $ (ARFLAGS) -out: $ @ $ @ $ ^