FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
devguide/Makefile at main · KaliVibeCoding/devguide · GitHub
KaliVibeCoding
/
devguide
Public
forked from
python/devguide
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
devguide
/
Makefile
Copy path
More file actions
More file actions
Latest commit
History
History
History
119 lines (103 loc) · 3.66 KB
Breadcrumbs
devguide
/
Makefile
Copy path
File metadata and controls
119 lines (103 loc) · 3.66 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#
Makefile for Sphinx documentation
#
#
You can set these variables from the command line.
PYTHON
= python3
VENVDIR
= ./venv
UV
= uv
SPHINXBUILD
=
$(
VENVDIR
)
/bin/sphinx-build
#
Temporary: while we are using ..include:: to show the reorganization,
#
there are duplicate labels. These cause warnings, which prevent the
#
build from finishing. Turn off --fail-on-warning so we can see the
#
finished results.
#
SPHINXOPTS = --fail-on-warning
SPHINXOPTS
=
BUILDDIR
= _build
BUILDER
= html
JOBS
= auto
SPHINXLINT
=
$(
VENVDIR
)
/bin/sphinx-lint
REQUIREMENTS
= requirements.txt
#
Internal variables.
_ALL_SPHINX_OPTS
= --jobs
$(
JOBS
)
$(
SPHINXOPTS
)
_RELEASE_CYCLE
= include/branches.csv
\
include/end-of-life.csv
\
include/release-cycle-all.svg
\
include/release-cycle.svg
.PHONY
: help
help
:
@echo
"
Please use
\`
make <target>' where <target> is one of
"
@echo
"
venv to create a venv with necessary tools
"
@echo
"
html to make standalone HTML files
"
@echo
"
linkcheck to check all external links for integrity
"
@echo
"
htmlview to open the index page built by the html target in your browser
"
@echo
"
htmllive to rebuild and reload HTML files in your browser
"
@echo
"
clean to remove the venv and build files
"
@echo
"
check to run a check for frequent markup errors
"
@echo
"
lint to lint all the files
"
.PHONY
: clean
clean
: clean-venv
-rm -rf
$(
BUILDDIR
)
/
*
-rm -rf
$(
_RELEASE_CYCLE
)
.PHONY
: clean-venv
clean-venv
:
rm -rf
$(
VENVDIR
)
.PHONY
: venv
venv
:
@if [
-d
$(
VENVDIR
)
]
;
then
\
echo
"
venv already exists.
"
;
\
echo
"
To recreate it, remove it first with
\`
make clean-venv'.
"
;
\
else
\
$(
MAKE
)
ensure-venv
;
\
fi
.PHONY
: ensure-venv
ensure-venv
:
@if [
!
-d
$(
VENVDIR
)
]
;
then
\
set
-e
;
\
echo
"
Creating venv in
$(
VENVDIR
)
"
;
\
if
$(
UV
)
--version
>
/dev/null
2>&1
;
then
\
$(
UV
)
venv --python=
$(
PYTHON
)
$(
VENVDIR
)
;
\
VIRTUAL_ENV=
$(
VENVDIR
)
$(
UV
)
pip install -r
$(
REQUIREMENTS
)
;
\
else
\
$(
PYTHON
)
-m venv
$(
VENVDIR
)
;
\
$(
VENVDIR
)
/bin/python3 -m pip install --upgrade pip
;
\
$(
VENVDIR
)
/bin/python3 -m pip install -r
$(
REQUIREMENTS
)
;
\
fi
;
\
echo
"
The venv has been created in the
$(
VENVDIR
)
directory
"
;
\
fi
.PHONY
: htmlview
htmlview
: html
$(
PYTHON
)
-c
"
import os, webbrowser; webbrowser.open('file://' + os.path.realpath('_build/html/index.html'))
"
.PHONY
: htmllive
htmllive
: SPHINXBUILD =
$(
VENVDIR
)
/bin/sphinx-autobuild
#
Arbitrarily selected ephemeral port between 49152–65535
#
to avoid conflicts with other processes:
htmllive
: SPHINXOPTS = --open-browser --delay 0 --port 55301
htmllive
: html
.PHONY
: check
check
: ensure-venv
#
Ignore the tools and venv dirs and check that the default role is not used.
$(
SPHINXLINT
)
-i tools -i
$(
VENVDIR
)
--enable default-role
.PHONY
: _ensure-package
_ensure-package
: venv
if
$(
UV
)
--version
>
/dev/null
2>&1
;
then
\
VIRTUAL_ENV=
$(
VENVDIR
)
$(
UV
)
pip install
$(
PACKAGE
)
;
\
else
\
$(
VENVDIR
)
/bin/python3 -m pip install
$(
PACKAGE
)
;
\
fi
.PHONY
: _ensure-pre-commit
_ensure-pre-commit
:
make _ensure-package PACKAGE=pre-commit
.PHONY
: lint
lint
: _ensure-pre-commit
$(
VENVDIR
)
/bin/python3 -m pre_commit run --all-files
#
Defined so that "include/release-cycle.json"
#
doesn't fall through to the catch-all target.
include/release-cycle.json
:
@exit
$(
_RELEASE_CYCLE
)
: include/release-cycle.json
$(
VENVDIR
)
/bin/python3 _tools/generate_release_cycle.py
@echo Release cycle data generated.
#
Catch-all target: route all unknown targets to Sphinx using the new
#
"make mode" option.
.PHONY
: Makefile
%
: Makefile ensure-venv
$(
_RELEASE_CYCLE
)
$(
SPHINXBUILD
)
-M
$@
"
.
"
"
$(
BUILDDIR
)
"
$(
_ALL_SPHINX_OPTS
)
Back
|
FazBrowse Home
|
New Git URL