<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>