dimka76 42 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба Здравствуйте. Никак не получается добавить текущую дату в имя выходного бинарного файла. BIN_FILE_NAME := $(PROJECT)_$(date + '%Y%m%d') BIN = $(EXEDIR)/$(BIN_FILE_NAME).bin $(BIN): $(ELF) $(OBJCOPY) -O binary $< $@ Пытался так, но вместо даты ничего нет. Подскажите пожалуйста как сделать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба BIN_FILE_NAME := $(PROJECT)_$(shell date + '%Y%m%d') Не проверял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба Еще забыл добавить, что это должно работать на Windows On 7/28/2023 at 3:42 PM, andrew_b said: BIN_FILE_NAME := $(PROJECT)_$(shell date + '%Y%m%d') Не проверял. Проверял. Это под виндой. На shell ошибку выдает Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба 2 minutes ago, dimka76 said: Это под виндой. Не имею. 3 minutes ago, dimka76 said: На shell ошибку выдает Лето. Телепаты в отпусках. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба On 7/28/2023 at 4:00 PM, andrew_b said: Лето. Телепаты в отпусках. Quote make all process_begin: CreateProcess(NULL, date + %Y%m%d, ...) failed. make: makefile:184: pipe: No error Строка 184 это BIN_FILE_NAME := $(PROJECT)_$(shell date + '%Y%m%d') Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_b 14 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба .PHONY: all PROJECT := project BIN_FILE_NAME := $(PROJECT)_$(shell date +'%Y%m%d') all: @echo $(BIN_FILE_NAME) УМВР: $ make project_20230728 Уберите пробел после плюса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба On 7/28/2023 at 4:09 PM, andrew_b said: Уберите пробел после плюса. У вас же нет винды, поэтому shell и работает и дело не пробеле, я проверял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 28 июля, 2023 Опубликовано 28 июля, 2023 · Жалоба Попробовал вывод даты в файл, работает @echo $$(date +'%Y%m%d') > build-date.txt Может из файла как-то в переменную можно прочитать ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kirill70674 5 21 октября, 2023 Опубликовано 21 октября, 2023 · Жалоба В 28.07.2023 в 16:29, dimka76 сказал: Попробовал вывод даты в файл, работает @echo $$(date +'%Y%m%d') > build-date.txt Может из файла как-то в переменную можно прочитать ? Данная проблема поднималась в этом топике. Думаю Вам нужно менять дефолтную shell в зависимости от системы. Как это сделать описано тут. А в остальном Get-Date для Windows должен решить проблему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 22 октября, 2023 Опубликовано 22 октября, 2023 · Жалоба On 10/22/2023 at 12:42 AM, kirill70674 said: Данная проблема поднималась в этом топике. Думаю Вам нужно менять дефолтную shell в зависимости от системы. Как это сделать описано тут. А в остальном Get-Date для Windows должен решить проблему. Спасибо. Посмотрю. Но я сделал следующим образом. В makefile вызывается цель copy_bin: @echo ..\Common\f_copy.bat $(BIN) А bat файл копирует исходный бинарник с новым именем, где дата в имени файла формируется средствами винды. @Echo off :: GetDate2.cmd :: Display date and time independent of OS Locale, Language or date format. Setlocal For /f "tokens=1-6 delims=/: " %%A in ('robocopy "|" . /njh ^| find ":"') do ( set "_YYYY=%%A" & set "_month=%%B" & set "_day=%%C" set "_hour=%%D" & set "_min=%%E" & set "_sec=%%F" ) set "newfilename=%~n1" SET "filepath=%~dp1" set "oldfilename=%filepath%%newfilename%.bin" set "modifiedpath=%filepath%%newfilename%_%_YYYY%%_month%%_day%_%_hour%%_min%%_sec%.bin" ::Ren "%~1" "%~n1_%_YYYY%%_month%%_day%_%_hour%%_min%%_sec%.bin" ::Ren "%oldfilename%" "%modifiedpath%" copy "%oldfilename%" "%modifiedpath%" :: Save the date/time in ISO 8601 format: Endlocal&Set _dtm=%_YYYY%-%_month%-%_day%@%_hour%-%_min% Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться