1 #
2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source. A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2018 Jason King.
14 # Copyright 2019 Joyent, Inc.
15 #
16
17 include $(SRC)/Makefile.master
18 include $(SRC)/cmd/Makefile.cmd
19 include $(SRC)/cmd/Makefile.ctf
20 include $(SRC)/test/Makefile.com
21
22 ROOTBINDIR = $(ROOTOPTPKG)/bin
23
24 PROG = cxx rust
25
26 OBJS_common = main.o
27 OBJS_rust = rust.o
28 OBJS_cxx = afl-fast.o gcc-libstdc++.o llvm-stdcxxabi.o
29
30 ROOTOPTPKG = $(ROOT)/opt/util-tests
31 TESTDIR = $(ROOTOPTPKG)/tests/demangle
32
33 CMDS = $(PROG:%=$(TESTDIR)/%)
34 $(CMDS) := FILEMODE = 0555
35
36 cxx := OBJS = $(OBJS_common) $(OBJS_cxx)
37 rust := OBJS = $(OBJS_common) $(OBJS_cxx)
38
39 $(OBJS_rust) $(OBJS_cxx) := SMATCH = off
40
41 SRCS = $(OBJS:%.o=%.c)
42
43 CSTD = $(CSTD_GNU99)
44
45 LDLIBS += -ldemangle-sys -lumem
46
47 all: $(PROG)
48
49 cxx: $(OBJS_common) $(OBJS_cxx)
50 $(LINK.c) -o $@ $(OBJS_common) $(OBJS_cxx) $(LDLIBS)
51 $(POST_PROCESS)
52
53 rust: $(OBJS_rust)
54 $(LINK.c) -o $@ $(OBJS_common) $(OBJS_rust) $(LDLIBS)
55 $(POST_PROCESS)
56
57 install: all $(CMDS)
58
59 clobber: clean
60 -$(RM) $(PROG)
61
62 clean:
63 -$(RM) $(OBJ_common) $(OBJS_cxx) $(OBJS_rust)
64
65 $(CMDS): $(TESTDIR) $(PROG)
66
67 $(ROOTBINDIR):
68 $(INS.dir)
69
70 $(ROOTBINDIR)/%: %
71 $(INS.file)
72
73 $(TESTDIR):
74 $(INS.dir)
75
76 $(TESTDIR)/%: %
77 $(INS.file)