2016-08-22 5 views
2

Я хочу прочитать содержимое текстового файла и назначить его переменной в моем файле makefile. Я прочитал грим руководство ч 8.6: Файл функции, и написал эту простую сниппет в моем Makefile:Makefiles: чтение файла с 'pure make syntaxis' (без команд оболочки)

# Snippet from my makefile 

my_var = $(file < C:/full/path/to/my_file.txt) 

all: 
    @echo $(my_var) 

Я получаю следующее сообщение об ошибке:

*** Invalid file operation: < C:/full/path/to/my_file.txt. Stop. 

Я сознательно выбрать для $ (file ..) вместо функции $ (shell ..) для считывания файла. Это потому, что мой makefile должен быть как можно более независимым от платформы. Функция $ (файл ..) - это чистый makefile-синтаксис, тогда как функция $ (shell ..) содержит синтаксис оболочки.

Что я делаю неправильно?

+1

Чтение из файла было добавлено в make 4.2, я предполагаю, что вы используете более старую версию. – user657267

+0

aaw .. это болит. Да, я использую make 4.1, который я загрузил с этого сайта: http://www.equation.com/servlet/equation.cmd?fa=make Большое спасибо за указание на это. Вы знаете, где я могу скачать make 4.2 для Windows 64-bit? Большое вам спасибо @ user657267 за помощь :-) –

+0

https://nuwen.net/mingw.html – user657267

ответ

3

Вам необходимо обновить, по крайней мере, до 4.2, если вы хотите читать файлы с $(file <).