Skip to content

Commit 178418a

Browse files
authored
bpo-30492: Allow make clinic to work out of tree. (#1836)
* bpo-30492: Allow make clinic to work out of tree. * Use os.curdir instead of "." as the default value.
1 parent 5a346d5 commit 178418a

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

Makefile.pre.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ coverage-report: regen-grammar regen-importlib
528528
# (depends on python having already been built)
529529
.PHONY=clinic
530530
clinic: $(BUILDPYTHON) $(srcdir)/Modules/_blake2/blake2s_impl.c
531-
$(RUNSHARED) $(PYTHON_FOR_BUILD) ./Tools/clinic/clinic.py --make
531+
$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir)
532532

533533
# Build the interpreter
534534
$(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)

Tools/clinic/clinic.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4335,7 +4335,10 @@ def main(argv):
43354335
cmdline.add_argument("-o", "--output", type=str)
43364336
cmdline.add_argument("-v", "--verbose", action='store_true')
43374337
cmdline.add_argument("--converters", action='store_true')
4338-
cmdline.add_argument("--make", action='store_true')
4338+
cmdline.add_argument("--make", action='store_true',
4339+
help="Walk --srcdir to run over all relevant files.")
4340+
cmdline.add_argument("--srcdir", type=str, default=os.curdir,
4341+
help="The directory tree to walk in --make mode.")
43394342
cmdline.add_argument("filename", type=str, nargs="*")
43404343
ns = cmdline.parse_args(argv)
43414344

@@ -4406,7 +4409,12 @@ def main(argv):
44064409
print()
44074410
cmdline.print_usage()
44084411
sys.exit(-1)
4409-
for root, dirs, files in os.walk('.'):
4412+
if not ns.srcdir:
4413+
print("Usage error: --srcdir must not be empty with --make.")
4414+
print()
4415+
cmdline.print_usage()
4416+
sys.exit(-1)
4417+
for root, dirs, files in os.walk(ns.srcdir):
44104418
for rcs_dir in ('.svn', '.git', '.hg', 'build', 'externals'):
44114419
if rcs_dir in dirs:
44124420
dirs.remove(rcs_dir)

0 commit comments

Comments
 (0)