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