Подтвердить что ты не робот

Создайте переменную в make файле, прочитав содержимое другого файла

Как я могу создать переменную "на лету" из make файла, значением которой будет все содержимое другого файла данных.

4b9b3361

Ответ 1

Я предполагаю, что вам нравится устанавливать переменную в Makefile в содержимое другого файла:

FILE=test.txt
VARIABLE=`cat $(FILE)`

target:
    echo $(VARIABLE)

Ответ 2

Предполагая, что GNU делает:

file := whatever.txt
variable := $(shell cat ${file})

Ответ 3

cat не существует в Windows. Решение, которое работает для Linux и Windows:

cat := $(if $(filter $(OS),Windows_NT),type,cat)
variable := $(shell $(cat) filename)

Объяснение:  Похоже, что в Windows всегда есть переменная среды OS, которая определяется как "Windows_NT". Таким образом, для Windows type используется команда, для не-Windows cat.

Ответ 4

Поскольку платформа не указана, это способ работы с Solaris:

VERSION:sh = cat VERSION

all:
        echo $(VERSION)

Ответ 5

GNU make version 4.2 поддерживает операцию чтения файлов, поэтому по отношению к Максиму Егорушкину отличный ответ - есть дополнительный способ решить эту проблему сейчас:

file:=test.txt
variable:=$(file < $(FILE))