cat
не существует в Windows.Решение, которое работает для Linux и Windows:
cat := $(if $(filter $(OS),Windows_NT),type,cat)
variable := $(shell $(cat) filename)
Объяснение: Похоже, что в Windows всегда есть переменная окружения OS
, определенная как 'Windows_NT'.Таким образом, для Windows type
используется команда, для не-Windows cat
используется.