Print this page
Commonize demangle test pieces; allow for running specific tests and test cases; use linker sets to simplify test definition

@@ -14,57 +14,55 @@
 # Copyright 2019 Joyent, Inc.
 #
 
 include $(SRC)/Makefile.master
 include $(SRC)/cmd/Makefile.cmd
+include $(SRC)/cmd/Makefile.ctf
 include $(SRC)/test/Makefile.com
 
 ROOTBINDIR = $(ROOTOPTPKG)/bin
 
-PROG = gcc-libstdc++ llvm-stdcxxabi afl-fast rust
+PROG = cxx rust
 
+OBJS_common = main.o
+OBJS_rust = rust.o
+OBJS_cxx = afl-fast.o gcc-libstdc++.o llvm-stdcxxabi.o
+
 ROOTOPTPKG = $(ROOT)/opt/util-tests
 TESTDIR = $(ROOTOPTPKG)/tests/demangle
 
 CMDS = $(PROG:%=$(TESTDIR)/%)
 $(CMDS) := FILEMODE = 0555
 
-OBJS = $(PROG:%=%.o)
+cxx := OBJS = $(OBJS_common) $(OBJS_cxx)
+rust := OBJS = $(OBJS_common) $(OBJS_cxx)
+
+$(OBJS_rust) $(OBJS_cxx) := SMATCH = off
+
 SRCS = $(OBJS:%.o=%.c)
 
 CSTD = $(CSTD_GNU99)
 
-LDLIBS += -ldemangle-sys
-rust := LDLIBS += -lumem
+LDLIBS += -ldemangle-sys -lumem
 
 all: $(PROG)
 
-gcc-libstdc++: gcc-libstdc++.o
-        $(LINK.c) -o $@ gcc-libstdc++.o $(LDLIBS)
+cxx: $(OBJS_common) $(OBJS_cxx)
+        $(LINK.c) -o $@ $(OBJS_common) $(OBJS_cxx) $(LDLIBS)
         $(POST_PROCESS)
 
-llvm-stdcxxabi: llvm-stdcxxabi.o
-        $(LINK.c) -o $@ llvm-stdcxxabi.o $(LDLIBS)
+rust: $(OBJS_rust)
+        $(LINK.c) -o $@ $(OBJS_common) $(OBJS_rust) $(LDLIBS)
         $(POST_PROCESS)
 
-afl-fast: afl-fast.o
-        $(LINK.c) -o $@ afl-fast.o $(LDLIBS)
-        $(POST_PROCESS)
-
-rust: rust.o
-        $(LINK.c) -o $@ rust.o $(LDLIBS)
-        $(POST_PROCESS)
-
 install: all $(CMDS)
 
-lint:
-
 clobber: clean
         -$(RM) $(PROG)
 
 clean:
-        -$(RM) $(OBJS)
+        -$(RM) $(OBJ_common) $(OBJS_cxx) $(OBJS_rust)
 
 $(CMDS): $(TESTDIR) $(PROG)
 
 $(ROOTBINDIR):
         $(INS.dir)