xref: /illumos-gate/usr/src/test/i2c-tests/tests/Makefile.com (revision 2671fc51ca6b63fc20cd2e852a326c63e2a958d4)
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 2025 Oxide Computer Company
14#
15
16#
17# Common Makefile rules and patterns for building the various i2c
18# tests.
19#
20
21PROGS32 += $(PROGS:%=%.32)
22PROGS64 += $(PROGS:%=%.64)
23
24EXTRA_OBJS32 = $(COMMON_SRCS:%.c=%.o.32)
25EXTRA_OBJS64 = $(COMMON_SRCS:%.c=%.o.64)
26
27ROOTOPTDIR = $(ROOT)/opt/i2c-tests
28ROOTOPTTESTS = $(ROOTOPTDIR)/tests
29ROOTOPTTARG = $(ROOTOPTTESTS)/$(TESTDIR)
30ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTTARG)/%) $(PROGS64:%=$(ROOTOPTTARG)/%)
31ROOTOPTPROGS += $(SCRIPTS:%=$(ROOTOPTTARG)/%)
32ROOTFILES = $(FILES:%=$(ROOTOPTTARG)/%)
33
34include $(SRC)/cmd/Makefile.cmd
35include $(SRC)/cmd/Makefile.ctf
36
37CPPFLAGS += -D_REENTRANT
38CSTD = $(CSTD_GNU17)
39CTF_MODE = link
40$(ROOTFILES) := FILEMODE = 0444
41
42.KEEP_STATE:
43
44all: $(PROGS32) $(PROGS64)
45
46clobber: clean
47	-$(RM) $(PROGS32) $(PROGS64)
48
49clean:
50	-$(RM) *.o.32 *.o.64
51
52install: $(ROOTOPTTARG) .WAIT $(ROOTOPTPROGS) $(ROOTFILES)
53
54$(ROOTOPTDIR):
55	$(INS.dir)
56
57$(ROOTOPTTESTS): $(ROOTOPTDIR)
58	$(INS.dir)
59
60$(ROOTOPTTARG): $(ROOTOPTTESTS)
61	$(INS.dir)
62
63$(ROOTOPTTARG)/%: %
64	$(INS.file)
65
66$(ROOTOPTTARG)/%: %.ksh
67	$(INS.rename)
68
69%.o.32: %.c
70	$(COMPILE.c) -o $@ -c $<
71	$(POST_PROCESS_O)
72
73%.o.64: %.c
74	$(COMPILE64.c) -o $@ -c $<
75	$(POST_PROCESS_O)
76
77%.64: %.o.64 $(EXTRA_OBJS64)
78	$(LINK64.c) -o $@ $< $(EXTRA_OBJS64) $(LDLIBS64)
79	$(POST_PROCESS)
80
81%.32: %.o.32 $(EXTRA_OBJS32)
82	$(LINK.c) -o $@ $< $(EXTRA_OBJS32) $(LDLIBS)
83	$(POST_PROCESS)
84