<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/56c093431f375586d811fd5eb896dd999309ea30">https://github.com/macports/macports-legacy-support/commit/56c093431f375586d811fd5eb896dd999309ea30</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 56c093431f375586d811fd5eb896dd999309ea30
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Wed Oct 23 19:32:40 2024 -0700

<span style='display:block; white-space:pre;color:#404040;'>    Makefile: Add syslib and 'all' test targets.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    The syslib targets run versions of the tests linked against the
</span><span style='display:block; white-space:pre;color:#404040;'>    "system" version of the library, substituting for the normal OS system
</span><span style='display:block; white-space:pre;color:#404040;'>    library.  This provides a check that the syslib was built correctly.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Targets for all syslib tests and all versions of all tests are added.
</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;'>    Tests build and pass on all platforms.
</span><span style='display:block; white-space:pre;color:#404040;'>    New targets run all expected tests.
</span>---
 Makefile | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 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 188269d..44a7369 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;'>@@ -44,7 +44,12 @@ BUILDSYSLIBFLAGS = -dynamiclib -headerpad_max_install_names \
</span>                    -install_name @executable_path/../$(BUILDSYSLIBPATH) \
                    -current_version $(SOCURVERSION) \
                    -compatibility_version $(SOCOMPATVERSION)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-SYSREEXPORTFLAG  = -Wl,-reexport_library,/usr/lib/libSystem.B.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OSLIBDIR         = /usr/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OSLIBNAME        = System.B
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OSLIBLINK        = System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+XLIBDIR          = xlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+XLIBPATH         = $(XLIBDIR)/lib$(OSLIBLINK)$(SOEXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SYSREEXPORTFLAG  = -Wl,-reexport_library,$(OSLIBDIR)/lib$(OSLIBNAME)$(SOEXT)
</span> BUILDSLIBFLAGS   = -qs
 POSTINSTALL      = install_name_tool
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -140,14 +145,18 @@ TESTNAMEPREFIX   = $(TESTDIR)/test_
</span> TESTRUNPREFIX    = run_
 TESTLDFLAGS      = -L$(BUILDLIBDIR) $(ALLLDFLAGS)
 TESTLIBS         = -l$(LIBNAME)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+TESTSYSLDFLAGS   = -L$(XLIBDIR) $(ALLLDFLAGS)
</span> TESTSRCS_C      := $(wildcard $(TESTNAMEPREFIX)*.c)
 TESTOBJS_C      := $(patsubst %.c,%.o,$(TESTSRCS_C))
 TESTPRGS_C      := $(patsubst %.c,%,$(TESTSRCS_C))
 TESTSPRGS_C     := $(patsubst %.c,%_static,$(TESTSRCS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+TESTSYSPRGS_C   := $(patsubst %.c,%_syslib,$(TESTSRCS_C))
</span> TESTRUNS        := $(patsubst \
                      $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTPRGS_C))
 TESTSRUNS       := $(patsubst \
                      $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTSPRGS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+TESTSYSRUNS     := $(patsubst \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     $(TESTNAMEPREFIX)%,$(TESTRUNPREFIX)%,$(TESTSYSPRGS_C))
</span> 
 # Tests that are only run manually
 MANTESTDIR       = manual_tests
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -330,12 +339,26 @@ $(BUILDSLIBPATH): $(SOBJLIST) $(BUILDLIBDIR)
</span>   $(RM) $@
        $(AR) $(BUILDSLIBFLAGS) $@ $$(cat $<)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# To run tests with our syslib, we want to suppress linking with the OS syslib,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# just to be certain that our replacement is an adequate substitute.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# But there doesn't seem to be any compiler option that does that correctly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# and without unwanted side effects.  So instead we create a special lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# directory containing a symlink to our replacement library, but with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# normal OS syslib name, to fake out the implied '-lSystem'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(XLIBPATH): $(BUILDSYSLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(MKINSTALLDIRS) $(XLIBDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cd $(XLIBDIR) && ln -sf ../$< ../$@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> $(TESTOBJS_C): %.o: %.c $(ALLHEADERS)
        $(CC) -c -std=c99 -I$(SRCINCDIR) $(ALLCFLAGS) $< -o $@
 
 $(TESTPRGS_C): %: %.o $(BUILDDLIBPATH)
        $(CC) $(TESTLDFLAGS) $< $(TESTLIBS) -o $@
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Build tests with *only* our replacement syslib.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTSYSPRGS_C): %_syslib: %.o $(XLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(TESTSYSLDFLAGS) $< -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> $(TESTSPRGS_C): %_static: %.o $(BUILDSLIBPATH)
        $(CC) $(ALLLDFLAGS) $< $(BUILDSLIBPATH) -o $@
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -405,6 +428,9 @@ $(TESTRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
</span> $(TESTSRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
        $< $(TEST_ARGS)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTSYSRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $< $(TEST_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> $(XTESTRUNS): $(XTESTRUNPREFIX)%: $(XTESTNAMEPREFIX)%
        $< $(TEST_ARGS)
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -463,6 +489,10 @@ test check: $(TESTRUNS) $(XTESTRUNS) test_cmath test_faccessat_setuid_msg
</span> 
 test_static: $(TESTSRUNS)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+test_syslib: $(TESTSYSRUNS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test_all: test test_static test_syslib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> xtest: $(XTESTRUNS)
 
 xtest_clean:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -472,14 +502,16 @@ $(MANRUNPREFIX)clean:
</span>   $(RM) $(MANTESTDIR)/*.o $(MANTESTPRGS)
 
 test_clean: xtest_clean $(MANRUNPREFIX)clean
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        $(RM) $(TESTDIR)/*.o $(TESTPRGS) $(XTESTDIR)/*.o $(XTESTPRGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(RM) $(TESTDIR)/*.o $(TESTPRGS) $(XTESTDIR)/*.o $(XTESTPRGS) $(XLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @$(RMDIR) $(XLIBDIR)
</span> 
 clean: $(MANRUNPREFIX)clean test_clean
        $(RM) $(foreach D,$(SRCDIR),$D/*.o $D/*.o.* $D/*.d)
        $(RM) $(BUILDDLIBPATH) $(BUILDSLIBPATH) $(BUILDSYSLIBPATH) $(TESTPRGS) test/test_cmath_* test/test_faccessat_setuid
        @$(RMDIR) $(BUILDLIBDIR)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-.PHONY: all dlib syslib slib clean check test test_cmath xtest test_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PHONY: all dlib syslib slib clean check test test_cmath xtest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.PHONY: test_static test_syslib test_all
</span> .PHONY: $(TESTRUNS) $(XTESTRUNS) $(MANTESTRUNS)
 .PHONY: $(MANRUNPREFIX)clean test_clean xtest_clean
 .PHONY: install install-headers install-lib install-dlib install-slib
</pre><pre style='margin:0'>

</pre>