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