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 (c) 2019, Joyent, Inc.
14#
15
16include $(SRC)/Makefile.master
17
18ROOTOPTPKG = $(ROOT)/opt/util-tests
19TESTDIR = $(ROOTOPTPKG)/tests/ctf
20
21SCRIPTS =	precheck.ksh \
22		ctftest.ksh \
23		ctftest-convert-non-c.ksh \
24		ctftest-convert-no-dwarf.ksh \
25		ctftest-merge-no-ctf.ksh \
26
27TESTS =		test-float.c \
28		test-reference.c \
29		test-int.c \
30		test-array.c \
31		test-enum.c \
32		test-forward.c \
33		test-sou.c \
34		test-function.c \
35		test-merge-static/Makefile.ctftest \
36		test-merge-static/test-a.c \
37		test-merge-static/test-b.c \
38		test-merge-static/test-c.c \
39		test-merge-static/test-d.c \
40		test-merge-static/test-main.c \
41		test-merge-forward/Makefile.ctftest \
42		test-merge-forward/test-impl.c \
43		test-merge-forward/test-merge.c \
44		test-merge-dedup/Makefile.ctftest \
45		test-merge-dedup/test-merge-1.c \
46		test-merge-dedup/test-merge-2.c \
47		test-merge-dedup/test-merge-3.c \
48		test-merge-dedup/test-merge-dedup.c \
49		test-merge-reduction/Makefile.ctftest \
50		test-merge-reduction/mapfile-vers \
51		test-merge-reduction/test-global.c \
52		test-merge-reduction/test-scoped.c \
53		test-merge-weak/Makefile.ctftest \
54		test-merge-weak/test-merge-weak.c \
55		test-weak.c \
56		Makefile.ctftest.com
57
58MAKEDIRS =	test-merge-static \
59		test-merge-forward \
60		test-merge-dedup \
61		test-merge-reduction \
62		test-merge-weak
63
64CHECKS =	check-float-32 \
65		check-float-64 \
66		check-int-32 \
67		check-int-64 \
68		check-reference \
69		check-array \
70		check-enum \
71		check-sou-32 \
72		check-sou-64 \
73		check-forward-32 \
74		check-forward-64 \
75		check-function \
76		check-merge-static \
77		check-merge-forward-32 \
78		check-merge-forward-64 \
79		check-merge-dedup \
80		check-merge-reduction \
81		check-merge-weak \
82		check-weak
83
84COMMON_OBJS =	check-common.o
85ALL_OBJS =	$(CHECKS:%=%.o) $(CHECKS:%-32=%.32.o) $(CHECKS:%-64=%.64.o) $(COMMON_OBJS)
86
87ROOTTESTS =	$(TESTS:%=$(TESTDIR)/%)
88ROOTMAKEDIRS =	$(MAKEDIRS:%=$(TESTDIR)/%)
89ROOTCHECKS =	$(CHECKS:%=$(TESTDIR)/%)
90ROOTSCRIPTS =	$(SCRIPTS:%.ksh=$(TESTDIR)/%)
91
92ROOTTESTS	:= FILEMODE =	0444
93ROOTCHECKS	:= FILEMODE =	0555
94ROOTSCRIPTS	:= FILEMODE =	0555
95
96include $(SRC)/cmd/Makefile.cmd
97include $(SRC)/test/Makefile.com
98
99LDLIBS +=	-lctf
100
101check-merge-static :=	LDLIBS += -lelf
102
103all: $(CHECKS)
104
105install: all $(ROOTTESTS) $(ROOTCHECKS) $(ROOTSCRIPTS)
106
107$(CHECKS): $(COMMON_OBJS)
108
109clean:
110	$(RM) $(ALL_OBJS)
111
112clobber: clean
113	$(RM) $(CHECKS)
114
115$(ROOTTESTS): $(TESTDIR) $(ROOTMAKEDIRS) $(TESTS)
116$(ROOTCHECKS): $(TESTDIR) $(CHECKS)
117$(ROOTSCRIPTS): $(TESTDIR) $(SCRIPTS)
118
119$(TESTDIR):
120	$(INS.dir)
121
122$(ROOTMAKEDIRS):
123	$(INS.dir)
124
125$(TESTDIR)/%: %
126	$(INS.file)
127
128$(TESTDIR)/%: %.ksh
129	$(INS.rename)
130
131%.o: %.c
132	$(COMPILE.c) -o $@ $<
133	$(POST_PROCESS_O)
134
135%.32.o: %.c
136	$(COMPILE.c) -o $@ $<
137	$(POST_PROCESS_O)
138
139%.64.o: %.c
140	$(COMPILE.c) -DTARGET_LP64 -o $@ $<
141	$(POST_PROCESS_O)
142
143%-32: %.32.o
144	$(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
145	$(POST_PROCESS)
146
147%-64: %.64.o
148	$(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
149	$(POST_PROCESS)
150
151%: %.o
152	$(LINK.c) -o $@ $< $(COMMON_OBJS) $(LDLIBS)
153	$(POST_PROCESS)
154