<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-legacy-support.

</pre>
<p><a href="https://github.com/macports/macports-legacy-support/commit/f1becf1234ee8065e8c8c8be8d9d0d87435eeeee">https://github.com/macports/macports-legacy-support/commit/f1becf1234ee8065e8c8c8be8d9d0d87435eeeee</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f1becf1234ee8065e8c8c8be8d9d0d87435eeeee
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Sat Nov 2 18:49:19 2024 -0700

<span style='display:block; white-space:pre;color:#404040;'>    Makefile: Fix superfluous library rebuilds.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The fix for parallel builds made directories separate targets, but
</span><span style='display:block; white-space:pre;color:#404040;'>    directory dependencies need to be order-only, since their mtimes are
</span><span style='display:block; white-space:pre;color:#404040;'>    updated whenever files are added, removed, or renamed.  Failure to do
</span><span style='display:block; white-space:pre;color:#404040;'>    this resulted in intermittent unnecessary rebuilds of libraries when
</span><span style='display:block; white-space:pre;color:#404040;'>    building tests.  When building directly in the repo, this is a
</span><span style='display:block; white-space:pre;color:#404040;'>    harmless waste of time, but when building in the MacPorts context,
</span><span style='display:block; white-space:pre;color:#404040;'>    such rebuilds fail due to ownership and permission issues.  This
</span><span style='display:block; white-space:pre;color:#404040;'>    change makes directories order-only dependencies, thereby ignoring
</span><span style='display:block; white-space:pre;color:#404040;'>    their mtimes.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This also removes unnecessary directory dependencies from the tests
</span><span style='display:block; white-space:pre;color:#404040;'>    that don't use the library.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    TESTED:
</span><span style='display:block; white-space:pre;color:#404040;'>    Ran tests on all platforms.  Intermittent test failures are now gone.
</span>---
 Makefile | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/Makefile b/Makefile
</span><span style='display:block; white-space:pre;color:#808080;'>index 44a7369..37be43b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/Makefile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -328,14 +328,14 @@ $(SOBJLIST): $(ALLSLIBOBJS)
</span> $(BUILDLIBDIR) $(DESTDIR)$(LIBDIR):
        $(MKINSTALLDIRS) $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(BUILDDLIBPATH): $(ALLDLIBOBJS) $(BUILDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDDLIBPATH): $(ALLDLIBOBJS) | $(BUILDLIBDIR)
</span>   $(CC) $(BUILDDLIBFLAGS) $(ALLLDFLAGS) $(ALLDLIBOBJS) -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(BUILDSYSLIBPATH): $(ALLSYSLIBOBJS) $(BUILDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDSYSLIBPATH): $(ALLSYSLIBOBJS) | $(BUILDLIBDIR)
</span>   $(CC) $(BUILDSYSLIBFLAGS) $(ALLLDFLAGS) $(SYSREEXPORTFLAG) \
              $(ALLSYSLIBOBJS) -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(BUILDSLIBPATH): $(SOBJLIST) $(BUILDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(BUILDSLIBPATH): $(SOBJLIST) | $(BUILDLIBDIR)
</span>   $(RM) $@
        $(AR) $(BUILDSLIBFLAGS) $@ $$(cat $<)
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -367,7 +367,7 @@ $(XTESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span>   $(CC) -c -std=c99 -fno-builtin -I$(SRCINCDIR) $(CFLAGS) $< -o $@
 
 # The xtests don't require the library
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(XTESTPRGS_C): %: %.o $(BUILDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(XTESTPRGS_C): %: %.o
</span>   $(CC) $(XTESTLDFLAGS) $< -o $@
 
 # The "darwin_c" tests need the -fno-builtin option with some compilers.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -376,7 +376,7 @@ $(MANTESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span>   $(CC) -c -std=c99 -fno-builtin -I$(SRCINCDIR) $(CFLAGS) $< -o $@
 
 # Currently, the manual C tests don't require the library
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(MANTESTPRGS_C): %: %.o $(BUILDLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MANTESTPRGS_C): %: %.o
</span>   $(CC) $(MANTESTLDFLAGS) $< -o $@
 
 # But the manual C++ tests *do* require the library
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -471,15 +471,15 @@ install-headers:
</span> 
 install-lib: install-dlib install-slib install-syslib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-install-dlib: $(BUILDDLIBPATH) $(DESTDIR)$(LIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+install-dlib: $(BUILDDLIBPATH) | $(DESTDIR)$(LIBDIR)
</span>   $(INSTALL_PROGRAM) $(BUILDDLIBPATH) $(DESTDIR)$(LIBDIR)
        $(POSTINSTALL) -id $(DLIBPATH) $(DESTDIR)$(DLIBPATH)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-install-syslib: $(BUILDSYSLIBPATH) $(DESTDIR)$(LIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+install-syslib: $(BUILDSYSLIBPATH) | $(DESTDIR)$(LIBDIR)
</span>   $(INSTALL_PROGRAM) $(BUILDSYSLIBPATH) $(DESTDIR)$(LIBDIR)
        $(POSTINSTALL) -id $(SYSLIBPATH) $(DESTDIR)$(SYSLIBPATH)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-install-slib: $(BUILDSLIBPATH) $(DESTDIR)$(LIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+install-slib: $(BUILDSLIBPATH) | $(DESTDIR)$(LIBDIR)
</span>   $(INSTALL_DATA) $(BUILDSLIBPATH) $(DESTDIR)$(LIBDIR)
 
 install-tiger: $(TIGERBINS)
</pre><pre style='margin:0'>

</pre>