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