Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
gh-100221: Fix creating dirs in make sharedinstall
Fix creating install directories in `make sharedinstall` if they exist
already outside `DESTDIR`.  The previous make rules assumed that
the directories would be created via a dependency on a rule
for `$(DESTSHARED)` that did not fire if the directory did exist outside
`$(DESTDIR)`.

While technically `$(DESTDIR)` could be prepended to the rule name,
moving the rules for creating directories straight into
the `sharedinstall` rule seems to fit the common practices better.
Since the rule explicitly checks whether the individual directories
exist anyway, there seems to be no reason to rely on make determining
that implicitly as well.
  • Loading branch information
mgorny committed Dec 18, 2022
commit de72019725541ce15ddaae55539a9413ce67144c
21 changes: 9 additions & 12 deletions Makefile.pre.in
Original file line number Diff line number Diff line change
Expand Up @@ -1803,7 +1803,15 @@ commoninstall: check-clean-src @FRAMEWORKALTINSTALLFIRST@ \
# Install shared libraries enabled by Setup
DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)

sharedinstall: $(DESTSHARED) all
sharedinstall: all
@for i in $(DESTDIRS); \
do \
if test ! -d $(DESTDIR)$$i; then \
echo "Creating directory $$i"; \
$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
else true; \
fi; \
done
@for i in X $(SHAREDMODS); do \
if test $$i != X; then \
echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
Expand All @@ -1815,17 +1823,6 @@ sharedinstall: $(DESTSHARED) all
fi; \
done


$(DESTSHARED):
@for i in $(DESTDIRS); \
do \
if test ! -d $(DESTDIR)$$i; then \
echo "Creating directory $$i"; \
$(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
else true; \
fi; \
done

# Install the interpreter with $(VERSION) affixed
# This goes into $(exec_prefix)
altbininstall: $(BUILDPYTHON) @FRAMEWORKPYTHONW@
Expand Down
1 change: 1 addition & 0 deletions Misc/ACKS
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@ Tiago Gonçalves
Chris Gonnerman
Shelley Gooch
David Goodger
Michał Górny
Elliot Gorokhovsky
Hans de Graaff
Tim Graham
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Fix creating install directories in ``make sharedinstall`` if they exist
outside ``DESTDIR`` already.