Перейти к содержанию
    

Makefile добавить дату в имя файла

Здравствуйте.

Никак не получается добавить текущую дату в имя выходного бинарного файла.

BIN_FILE_NAME := $(PROJECT)_$(date + '%Y%m%d')
BIN = $(EXEDIR)/$(BIN_FILE_NAME).bin
$(BIN): $(ELF)
	$(OBJCOPY) -O binary $< $@

Пытался так, но вместо даты ничего нет.

Подскажите пожалуйста как сделать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще забыл добавить, что это должно работать на Windows

On 7/28/2023 at 3:42 PM, andrew_b said:
BIN_FILE_NAME := $(PROJECT)_$(shell date + '%Y%m%d')

Не проверял.

 

Проверял.

Это под виндой. 

На shell ошибку выдает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, dimka76 said:

Это под виндой.

Не имею.

3 minutes ago, dimka76 said:

На shell ошибку выдает

Лето. Телепаты в отпусках.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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')

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

.PHONY: all

PROJECT := project

BIN_FILE_NAME := $(PROJECT)_$(shell date +'%Y%m%d')

all:
	@echo $(BIN_FILE_NAME)

УМВР:

$ make
project_20230728

Уберите пробел после плюса.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 7/28/2023 at 4:09 PM, andrew_b said:

Уберите пробел после плюса.

У вас же нет винды, поэтому shell  и работает и дело не пробеле, я проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал вывод даты в файл, работает

@echo $$(date +'%Y%m%d') > build-date.txt

Может из файла как-то в переменную можно прочитать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 28.07.2023 в 16:29, dimka76 сказал:

Попробовал вывод даты в файл, работает

@echo $$(date +'%Y%m%d') > build-date.txt

Может из файла как-то в переменную можно прочитать ?

Данная проблема поднималась в этом топике. Думаю Вам нужно менять дефолтную shell в зависимости от системы. Как это сделать описано тут. А в остальном Get-Date для Windows должен решить проблему. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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%

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...