File: Makefile

package info (click to toggle)
pytorch 2.9.1%2Bdfsg-1~exp2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 180,096 kB
  • sloc: python: 1,473,255; cpp: 942,030; ansic: 79,796; asm: 7,754; javascript: 2,502; java: 1,962; sh: 1,809; makefile: 628; xml: 8
file content (92 lines) | stat: -rw-r--r-- 2,327 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# This makefile does nothing but delegating the actual building to cmake.

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:
	@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

.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"

.PHONY: setup-lint
setup-lint .lintbin/.lintrunner.sha256: requirements.txt pyproject.toml .lintrunner.toml
	@echo "Setting up lintrunner..."
	$(PIP) install lintrunner
	lintrunner init
	@echo "Generating .lintrunner.sha256..."
	@mkdir -p .lintbin
	@sha256sum requirements.txt pyproject.toml .lintrunner.toml > .lintbin/.lintrunner.sha256

.PHONY: lazy-setup-lint
lazy-setup-lint: .lintbin/.lintrunner.sha256
	@if [ ! -x "$(shell command -v lintrunner)" ]; then \
		$(MAKE) setup-lint; \
	fi

.PHONY: lint
lint: lazy-setup-lint
	lintrunner --all-files

.PHONY: quicklint
quicklint: lazy-setup-lint
	lintrunner

.PHONY: quickfix
quickfix: lazy-setup-lint
	lintrunner --apply-patches

# 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