Возможно, вам будет легче отладить проблему, если вы устраните хитрость передачи строк в кавычках в командной строке компилятора, например:
.PHONY: force
timestamp.h: force
echo "#define BUILD_TIMESTAMP \"`cmd /c date /t` `cmd /c time /t`\"" > $@
... и #include "timestamp.h"
в вашем коде. Таким образом, вам нужно беспокоиться только о поведении в кавычках вашей оболочки, а не о make и компиляторе.
Это было давно, но я думаю Я помню, что Торнадо поставляется с оболочкой в стиле csh, которая обрабатывает кавычки, например, по-другому , чем более обычные оболочки Борна. Он также включает в себя интерпретатор TCL, который можно использовать вместо этого, создав timestamp.tcl
с содержимым, подобным
puts "#define BUILD_TIMESTAMP \"[clock format [clock seconds] -format {%D %T}]\""
и запись
timestamp.h: force
tclsh timestamp.tcl > $@
в make-файле.