11566bc34SRobert Mustacchi# 21566bc34SRobert Mustacchi# This file and its contents are supplied under the terms of the 31566bc34SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0. 41566bc34SRobert Mustacchi# You may only use this file in accordance with the terms of version 51566bc34SRobert Mustacchi# 1.0 of the CDDL. 61566bc34SRobert Mustacchi# 71566bc34SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this 81566bc34SRobert Mustacchi# source. A copy of the CDDL is also available via the Internet at 91566bc34SRobert Mustacchi# http://www.illumos.org/license/CDDL. 101566bc34SRobert Mustacchi# 111566bc34SRobert Mustacchi 121566bc34SRobert Mustacchi# 131566bc34SRobert Mustacchi# Copyright (c) 2018, Joyent, Inc. 14bb9475a1SRobert Mustacchi# Copyright 2025 Oxide Computer Company 151566bc34SRobert Mustacchi# 161566bc34SRobert Mustacchi 171566bc34SRobert Mustacchiinclude $(SRC)/Makefile.master 181566bc34SRobert Mustacchi 191566bc34SRobert MustacchiROOTOPTPKG = $(ROOT)/opt/util-tests 201566bc34SRobert MustacchiTESTDIR = $(ROOTOPTPKG)/tests/ 211566bc34SRobert Mustacchi 22afa937a6SRobert MustacchiSRCS = smbios.c \ 23afa937a6SRobert Mustacchi smbios_test_addinfo.c \ 24afa937a6SRobert Mustacchi smbios_test_chassis.c \ 25afa937a6SRobert Mustacchi smbios_test_errors.c \ 26afa937a6SRobert Mustacchi smbios_test_extmemdevice.c \ 27afa937a6SRobert Mustacchi smbios_test_fwinfo.c \ 28afa937a6SRobert Mustacchi smbios_test_memdevice.c \ 29afa937a6SRobert Mustacchi smbios_test_proc.c \ 30afa937a6SRobert Mustacchi smbios_test_pinfo.c \ 31afa937a6SRobert Mustacchi smbios_test_slot.c \ 32afa937a6SRobert Mustacchi smbios_test_strings.c \ 33afa937a6SRobert Mustacchi smbios_test_strprop.c 341566bc34SRobert MustacchiPROGS = smbios 351566bc34SRobert Mustacchi 36afa937a6SRobert MustacchiPROGS32 = $(PROGS:%=%.32) 37afa937a6SRobert MustacchiPROGS64 = $(PROGS:%=%.64) 38afa937a6SRobert Mustacchi 39afa937a6SRobert MustacchiOBJS32 = $(SRCS:%.c=%.32.o) 40afa937a6SRobert MustacchiOBJS64 = $(SRCS:%.c=%.64.o) 41afa937a6SRobert Mustacchi 421566bc34SRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 43*ba2b435aSRobert Mustacchiinclude $(SRC)/cmd/Makefile.ctf 441566bc34SRobert Mustacchiinclude $(SRC)/test/Makefile.com 451566bc34SRobert Mustacchi 46afa937a6SRobert MustacchiCMDS = $(PROGS32:%=$(TESTDIR)/%) $(PROGS64:%=$(TESTDIR)/%) 471566bc34SRobert Mustacchi$(CMDS) := FILEMODE = 0555 48bb9475a1SRobert MustacchiCSTD = $(CSTD_GNU17) 49*ba2b435aSRobert MustacchiCTF_MODE = link 50d53cdfabSRobert Mustacchi 51d53cdfabSRobert Mustacchi# 52d53cdfabSRobert Mustacchi# Since this program uses quite a number of variables declared on the 53d53cdfabSRobert Mustacchi# stack that are then written to by libsmbios, we opt to pay the cost 54d53cdfabSRobert Mustacchi# of always have the stack protector on every function as an additional 55d53cdfabSRobert Mustacchi# means of checking ourselves. 56d53cdfabSRobert Mustacchi# 57d53cdfabSRobert MustacchiSTACKPROTECT = all 581566bc34SRobert Mustacchi 591566bc34SRobert MustacchiLDLIBS += -lsmbios -lumem 60afa937a6SRobert MustacchiLDLIBS64 += -lsmbios -lumem 611566bc34SRobert MustacchiCFLAGS += -_gcc=-Wall -_gcc=-Wextra -_gcc=-Wno-unknown-pragmas 62afa937a6SRobert MustacchiCFLAGS64 += -_gcc=-Wall -_gcc=-Wextra -_gcc=-Wno-unknown-pragmas 631566bc34SRobert Mustacchi 64afa937a6SRobert Mustacchiall: $(PROGS32) $(PROGS64) 651566bc34SRobert Mustacchi 66176a9270SRobert Mustacchiinstall: all $(CMDS) 671566bc34SRobert Mustacchi 681566bc34SRobert Mustacchiclobber: clean 69afa937a6SRobert Mustacchi -$(RM) $(PROGS32) $(PROGS64) 701566bc34SRobert Mustacchi 711566bc34SRobert Mustacchiclean: 72afa937a6SRobert Mustacchi -$(RM) $(OBJS32) $(OBJS64) 731566bc34SRobert Mustacchi 74afa937a6SRobert Mustacchi$(CMDS): $(TESTDIR) $(PROGS32) $(PROGS64) 751566bc34SRobert Mustacchi 761566bc34SRobert Mustacchi$(TESTDIR): 771566bc34SRobert Mustacchi $(INS.dir) 781566bc34SRobert Mustacchi 791566bc34SRobert Mustacchi$(TESTDIR)/%: % 801566bc34SRobert Mustacchi $(INS.file) 811566bc34SRobert Mustacchi 82afa937a6SRobert Mustacchi%.32.o: %.c 83afa937a6SRobert Mustacchi $(COMPILE.c) -o $@ $< 84afa937a6SRobert Mustacchi $(POST_PROCESS_O) 85afa937a6SRobert Mustacchi 86afa937a6SRobert Mustacchi%.64.o: %.c 87afa937a6SRobert Mustacchi $(COMPILE64.c) -o $@ $< 88afa937a6SRobert Mustacchi $(POST_PROCESS_O) 89afa937a6SRobert Mustacchi 90afa937a6SRobert Mustacchi 91afa937a6SRobert Mustacchi$(PROGS32): $(OBJS32) 92afa937a6SRobert Mustacchi $(LINK.c) -o $@ $(OBJS32) $(LDLIBS) 93afa937a6SRobert Mustacchi $(POST_PROCESS) 94afa937a6SRobert Mustacchi 95afa937a6SRobert Mustacchi$(PROGS64): $(OBJS64) 96afa937a6SRobert Mustacchi $(LINK64.c) -o $@ $(OBJS64) $(LDLIBS64) 971566bc34SRobert Mustacchi $(POST_PROCESS) 98