[BE] Polish Makefile (#155425)

Pull Request resolved: https://github.com/pytorch/pytorch/pull/155425
Approved by: https://github.com/ezyang
This commit is contained in:
Xuehai Pan
2025-06-08 23:51:19 +08:00
committed by PyTorch MergeBot
parent b981fb6744
commit 49888e6be0

View File

@ -1,59 +1,78 @@
# This makefile does nothing but delegating the actual building to cmake.
PYTHON = python3
PIP = $(PYTHON) -m pip
SHELL = /bin/bash
.SHELLFLAGS := -eu -o pipefail -c
PYTHON ?= $(shell command -v python3 || command -v python)
PIP = $(PYTHON) -m pip
NIGHTLY_TOOL_OPTS := pull
.PHONY: all
all:
@mkdir -p build && cd build && cmake .. $(shell $(PYTHON) ./scripts/get_python_cmake_flags.py) && $(MAKE)
@cmake -S . -B build $(shell $(PYTHON) ./scripts/get_python_cmake_flags.py) && \
cmake --build build --parallel --
.PHONY: local
local:
@./scripts/build_local.sh
.PHONY: android
android:
@./scripts/build_android.sh
.PHONY: ios
ios:
@./scripts/build_ios.sh
clean: # This will remove ALL build folders.
@rm -r build*/
.PHONY: triton
triton:
$(PIP) uninstall -y triton
@./scripts/install_triton_wheel.sh
.PHONY: clean
clean: # This will remove ALL build folders.
@rm -r build*/ || true
.PHONY: linecount
linecount:
@cloc --read-lang-def=caffe.cloc caffe2 || \
echo "Cloc is not available on the machine. You can install cloc with " && \
echo " sudo apt-get install cloc"
.PHONY: ensure-branch-clean
ensure-branch-clean:
@if [ -n "$(shell git status --porcelain)" ]; then \
echo "Please commit or stash all changes before running this script"; \
exit 1; \
fi
.PHONY: setup-env
setup-env: ensure-branch-clean
$(PYTHON) tools/nightly.py $(NIGHTLY_TOOL_OPTS)
.PHONY: setup-env-cuda
setup-env-cuda:
$(MAKE) setup-env PYTHON="$(PYTHON)" NIGHTLY_TOOL_OPTS="$(NIGHTLY_TOOL_OPTS) --cuda"
.PHONY: setup-env-rocm
setup-env-rocm:
$(MAKE) setup-env PYTHON="$(PYTHON)" NIGHTLY_TOOL_OPTS="$(NIGHTLY_TOOL_OPTS) --rocm"
setup_env: setup-env
setup_env_cuda: setup-env-cuda
setup_env_rocm: setup-env-rocm
.PHONY: setup-lint
setup-lint:
$(PIP) install lintrunner
lintrunner init
setup_lint: setup-lint
.PHONY: lint
lint:
lintrunner
.PHONY: quicklint
quicklint:
lintrunner
triton:
$(PIP) uninstall -y triton
@./scripts/install_triton_wheel.sh
# Deprecated target aliases
.PHONY: setup_env setup_env_cuda setup_env_rocm setup_lint
setup_env: setup-env
setup_env_cuda: setup-env-cuda
setup_env_rocm: setup-env-rocm
setup_lint: setup-lint