Makefiles — это мощные инструменты для автоматизации задач разработки программного обеспечения. Одним из распространенных требований Makefiles является доступ к текущему пути к каталогу (PWD). В этой статье блога мы рассмотрим различные методы получения текущего каталога в Makefile, используя разговорный язык и предоставляя примеры кода.
Метод 1: использование функции $(shell)
Функция $(shell) позволяет выполнять команды оболочки в файлах Makefile. Мы можем использовать эту функцию для получения текущего каталога с помощью команды pwd
:
CURRENT_DIR := $(shell pwd)
Метод 2: использование переменной $(CURDIR)
В файлах Makefile есть встроенная переменная $(CURDIR), которая представляет текущий каталог. Мы можем присвоить эту переменную другой переменной для дальнейшего использования:
CURRENT_DIR := $(CURDIR)
Метод 3: использование функции $(abspath)
Функция $(abspath) преобразует заданный путь в абсолютный путь. Передав фиктивное имя файла в $(abspath), мы можем получить абсолютный путь к текущему каталогу:
CURRENT_DIR := $(abspath $(lastword $(MAKEFILE_LIST))/..)
Метод 4: использование функции $(realpath)
Подобно $(abspath), функция $(realpath) также преобразует заданный путь в абсолютный путь. Мы можем использовать его для получения текущего каталога:
CURRENT_DIR := $(realpath .)
Метод 5: использование команды оболочки
Если ваш Makefile напрямую поддерживает команды оболочки, вы можете использовать команду оболочки для выполнения команды pwd
и получения текущего каталога:
CURRENT_DIR := $(shell pwd)