@@ -52,44 +52,49 @@ venv:
52
52
echo " venv already exists." ; \
53
53
echo " To recreate it, remove it first with \` make clean-venv'." ; \
54
54
else \
55
+ $(MAKE ) ensure-venv; \
56
+ fi
57
+
58
+ ensure-venv :
59
+ @if [ ! -d $( VENVDIR) ] ; then \
55
60
$(PYTHON ) -m venv $(VENVDIR ) ; \
56
61
$(VENVDIR ) /bin/python3 -m pip install --upgrade pip; \
57
62
$(VENVDIR ) /bin/python3 -m pip install -r requirements.txt; \
58
63
echo " The venv has been created in the $( VENVDIR) directory" ; \
59
64
fi
60
65
61
- html : venv
66
+ html : ensure- venv
62
67
$(SPHINXBUILD ) -b html $(ALLSPHINXOPTS ) $(BUILDDIR ) /html
63
68
@echo
64
69
@echo " Build finished. The HTML pages are in $( BUILDDIR) /html."
65
70
66
- dirhtml : venv
71
+ dirhtml : ensure- venv
67
72
$(SPHINXBUILD ) -b dirhtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /dirhtml
68
73
@echo
69
74
@echo " Build finished. The HTML pages are in $( BUILDDIR) /dirhtml."
70
75
71
- singlehtml : venv
76
+ singlehtml : ensure- venv
72
77
$(SPHINXBUILD ) -b singlehtml $(ALLSPHINXOPTS ) $(BUILDDIR ) /singlehtml
73
78
@echo
74
79
@echo " Build finished. The HTML page is in $( BUILDDIR) /singlehtml."
75
80
76
- pickle : venv
81
+ pickle : ensure- venv
77
82
$(SPHINXBUILD ) -b pickle $(ALLSPHINXOPTS ) $(BUILDDIR ) /pickle
78
83
@echo
79
84
@echo " Build finished; now you can process the pickle files."
80
85
81
- json : venv
86
+ json : ensure- venv
82
87
$(SPHINXBUILD ) -b json $(ALLSPHINXOPTS ) $(BUILDDIR ) /json
83
88
@echo
84
89
@echo " Build finished; now you can process the JSON files."
85
90
86
- htmlhelp : venv
91
+ htmlhelp : ensure- venv
87
92
$(SPHINXBUILD ) -b htmlhelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /htmlhelp
88
93
@echo
89
94
@echo " Build finished; now you can run HTML Help Workshop with the" \
90
95
" .hhp project file in $( BUILDDIR) /htmlhelp."
91
96
92
- qthelp : venv
97
+ qthelp : ensure- venv
93
98
$(SPHINXBUILD ) -b qthelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /qthelp
94
99
@echo
95
100
@echo " Build finished; now you can run " qcollectiongenerator" with the" \
@@ -98,7 +103,7 @@ qthelp: venv
98
103
@echo " To view the help file:"
99
104
@echo " # assistant -collectionFile $( BUILDDIR) /qthelp/PythonDevelopersGuide.qhc"
100
105
101
- devhelp : venv
106
+ devhelp : ensure- venv
102
107
$(SPHINXBUILD ) -b devhelp $(ALLSPHINXOPTS ) $(BUILDDIR ) /devhelp
103
108
@echo
104
109
@echo " Build finished."
@@ -107,54 +112,54 @@ devhelp: venv
107
112
@echo " # ln -s $( BUILDDIR) /devhelp $$ HOME/.local/share/devhelp/PythonDevelopersGuide"
108
113
@echo " # devhelp"
109
114
110
- epub : venv
115
+ epub : ensure- venv
111
116
$(SPHINXBUILD ) -b epub $(ALLSPHINXOPTS ) $(BUILDDIR ) /epub
112
117
@echo
113
118
@echo " Build finished. The epub file is in $( BUILDDIR) /epub."
114
119
115
- latex : venv
120
+ latex : ensure- venv
116
121
$(SPHINXBUILD ) -b latex $(ALLSPHINXOPTS ) $(BUILDDIR ) /latex
117
122
@echo
118
123
@echo " Build finished; the LaTeX files are in $( BUILDDIR) /latex."
119
124
@echo " Run \` make' in that directory to run these through (pdf)latex" \
120
125
" (use \` make latexpdf' here to do that automatically)."
121
126
122
- latexpdf : venv
127
+ latexpdf : ensure- venv
123
128
$(SPHINXBUILD ) -b latex $(ALLSPHINXOPTS ) $(BUILDDIR ) /latex
124
129
@echo " Running LaTeX files through pdflatex..."
125
130
make -C $(BUILDDIR ) /latex all-pdf
126
131
@echo " pdflatex finished; the PDF files are in $( BUILDDIR) /latex."
127
132
128
- text : venv
133
+ text : ensure- venv
129
134
$(SPHINXBUILD ) -b text $(ALLSPHINXOPTS ) $(BUILDDIR ) /text
130
135
@echo
131
136
@echo " Build finished. The text files are in $( BUILDDIR) /text."
132
137
133
- man : venv
138
+ man : ensure- venv
134
139
$(SPHINXBUILD ) -b man $(ALLSPHINXOPTS ) $(BUILDDIR ) /man
135
140
@echo
136
141
@echo " Build finished. The manual pages are in $( BUILDDIR) /man."
137
142
138
- changes : venv
143
+ changes : ensure- venv
139
144
$(SPHINXBUILD ) -b changes $(ALLSPHINXOPTS ) $(BUILDDIR ) /changes
140
145
@echo
141
146
@echo " The overview file is in $( BUILDDIR) /changes."
142
147
143
- linkcheck : venv
148
+ linkcheck : ensure- venv
144
149
$(SPHINXBUILD ) -b linkcheck $(ALLSPHINXOPTS ) $(BUILDDIR ) /linkcheck
145
150
@echo
146
151
@echo " Link check complete; look for any errors in the above output " \
147
152
" or in $( BUILDDIR) /linkcheck/output.txt."
148
153
149
- doctest : venv
154
+ doctest : ensure- venv
150
155
$(SPHINXBUILD ) -b doctest $(ALLSPHINXOPTS ) $(BUILDDIR ) /doctest
151
156
@echo " Testing of doctests in the sources finished, look at the " \
152
157
" results in $( BUILDDIR) /doctest/output.txt."
153
158
154
159
htmlview : html
155
160
$(PYTHON ) -c " import os, webbrowser; webbrowser.open('file://' + os.path.realpath('_build/html/index.html'))"
156
161
157
- check : venv
162
+ check : ensure- venv
158
163
# Ignore the tools and venv dirs and check that the default role is not used.
159
164
$(SPHINXLINT ) -i tools -i $(VENVDIR ) --enable default-role
160
165
0 commit comments