<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/80e9789428703a93d4ed9123e6890e704579acd5">https://github.com/macports/macports-legacy-support/commit/80e9789428703a93d4ed9123e6890e704579acd5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 80e9789428703a93d4ed9123e6890e704579acd5
</span>Author: Fred Wright <fw@fwright.net>
AuthorDate: Wed Jan 15 18:59:12 2025 -0800

<span style='display:block; white-space:pre;color:#404040;'>    Makefile: Support manual tests that use the library.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Most manual tests don't need to build with the library, and prior to
</span><span style='display:block; white-space:pre;color:#404040;'>    this change, *no* manual tests (except the old C++ tests) built with
</span><span style='display:block; white-space:pre;color:#404040;'>    the library.  This adds a naming convention to allow some manual tests
</span><span style='display:block; white-space:pre;color:#404040;'>    to use the library, currently just the clock_settime() test.
</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;'>    Manual tests with and without the library build as expected.
</span>---
 Makefile | 39 +++++++++++++++++++++++++++++++--------
 1 file changed, 31 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 ca46bec..2744ec3 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;'>@@ -194,17 +194,24 @@ STRNCHKRUNS      := $(patsubst \
</span> # Tests that are only run manually
 MANTESTDIR       = manual_tests
 MANTESTPREFIX    = $(MANTESTDIR)/
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MANLIBTESTPFX    = $(MANTESTDIR)/libtest_
</span> MANRUNPREFIX     = mantest_
 MANTESTLDFLAGS   = $(ALLLDFLAGS)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-MANTESTSRCS_C   := $(wildcard $(MANTESTPREFIX)*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MANALLTESTSRCS_C := $(wildcard $(MANTESTPREFIX)*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MANLIBTESTSRCS_C := $(wildcard $(MANLIBTESTPFX)*.c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MANTESTSRCS_C   := $(filter-out $(MANLIBTESTSRCS_C),$(MANALLTESTSRCS_C))
</span> MANTESTSRCS_CPP := $(wildcard $(MANTESTPREFIX)*.cpp)
 MANTESTOBJS_C   := $(patsubst %.c,%.o,$(MANTESTSRCS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MANLIBTESTOBJS_C := $(patsubst %.c,%.o,$(MANLIBTESTSRCS_C))
</span> MANTESTOBJS_CPP := $(patsubst %.cpp,%.o,$(MANTESTSRCS_CPP))
 MANTESTPRGS_C   := $(patsubst %.c,%,$(MANTESTSRCS_C))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MANLIBTESTPRGS_C := $(patsubst %.c,%,$(MANLIBTESTSRCS_C))
</span> MANTESTPRGS_CPP := $(patsubst %.cpp,%,$(MANTESTSRCS_CPP))
 MANTESTPRGS      = $(MANTESTPRGS_C) $(MANTESTPRGS_CPP)
 MANTESTRUNS     := $(patsubst \
                      $(MANTESTPREFIX)%,$(MANRUNPREFIX)%,$(MANTESTPRGS))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+MANLIBTESTRUNS  := $(patsubst \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     $(MANLIBTESTPFX)%,$(MANRUNPREFIX)%,$(MANLIBTESTPRGS_C))
</span> 
 TIGERSRCDIR      = tiger_only/src
 TIGERSRCS       := $(wildcard $(TIGERSRCDIR)/*.c)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -272,7 +279,7 @@ $(XLIBPATH): $(BUILDSYSLIBPATH)
</span>   $(MKINSTALLDIRS) $(XLIBDIR)
        cd $(XLIBDIR) && ln -sf ../$< ../$@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-$(TESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(TESTOBJS_C) $(MANTESTOBJS_C) $(MANLIBTESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span>   $(CC) -c -std=c99 -I$(SRCINCDIR) $(TESTCFLAGS) $< -o $@
 
 $(TESTPRGS_C): %: %.o $(BUILDDLIBPATH)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -293,16 +300,15 @@ $(XTESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span> $(XTESTPRGS_C): %: %.o
        $(CC) $(XTESTLDFLAGS) $< -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# The "darwin_c" tests need the -fno-builtin option with some compilers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# It shouldn't hurt the other manual tests.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-$(MANTESTOBJS_C): %.o: %.c $(ALLHEADERS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(CC) -c -std=c99 -fno-builtin -I$(SRCINCDIR) $(TESTCFLAGS) $< -o $@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # Currently, the manual C tests don't require the library
 $(MANTESTPRGS_C): %: %.o
        $(CC) $(MANTESTLDFLAGS) $< -o $@
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# But the manual C++ tests *do* require the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Except for the ones that do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MANLIBTESTPRGS_C): %: %.o $(BUILDDLIBPATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(CC) $(TESTLDFLAGS) $< $(TESTLIBS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# And the manual C++ tests *do* require the library
</span> $(MANTESTOBJS_CPP): %.o: %.cpp $(ALLHEADERS)
        $(CXX) -c -I$(SRCINCDIR) $(ALLCXXFLAGS) $< -o $@
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -362,6 +368,9 @@ $(TESTSYSRUNS): $(TESTRUNPREFIX)%: $(TESTNAMEPREFIX)% | $(TEST_TEMP)
</span> $(XTESTRUNS): $(XTESTRUNPREFIX)%: $(XTESTNAMEPREFIX)% | $(TEST_TEMP)
        $< $(TEST_ARGS)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+$(MANLIBTESTRUNS): $(MANRUNPREFIX)%: $(MANLIBTESTPFX)% | $(TEST_TEMP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $< $(TEST_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # The "dirfuncs_compat" test includes the fdopendir test source
 $(TESTNAMEPREFIX)dirfuncs_compat.o: $(TESTNAMEPREFIX)fdopendir.c
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -468,6 +477,19 @@ test_all: test test_static test_syslib
</span> 
 xtest: $(XTESTRUNS)
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Targets to build tests without running them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build_tests: $(TESTPRGS_C) $(XTESTPRGS_C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build_tests_static: $(TESTSPRGS_C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build_tests_syslib: $(TESTSYSPRGS_C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build_tests_all: build_tests build_tests_static build_tests_syslib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Dummy target for placeholder in scripts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dummy:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> xtest_clean:
        $(RM) $(XTESTDIR)/*.o $(XTESTPRGS)
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -496,3 +518,4 @@ clean: $(MANRUNPREFIX)clean test_clean
</span> .PHONY: tiger-bins install-tiger
 .PHONY: leopard-bins install-leopard
 .PHONY: allobjs dlibobjs slibobjs syslibobjs
<span style='display:block; white-space:pre;background:#e0ffe0;'>+.PHONY: build_tests build_tests_static build_tests_syslib build_tests_all dummy
</span></pre><pre style='margin:0'>

</pre>