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. 14064d431aSRobert Mustacchi# Copyright 2024 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 22*afa937a6SRobert MustacchiSRCS = smbios.c \ 23*afa937a6SRobert Mustacchi smbios_test_addinfo.c \ 24*afa937a6SRobert Mustacchi smbios_test_chassis.c \ 25*afa937a6SRobert Mustacchi smbios_test_errors.c \ 26*afa937a6SRobert Mustacchi smbios_test_extmemdevice.c \ 27*afa937a6SRobert Mustacchi smbios_test_fwinfo.c \ 28*afa937a6SRobert Mustacchi smbios_test_memdevice.c \ 29*afa937a6SRobert Mustacchi smbios_test_proc.c \ 30*afa937a6SRobert Mustacchi smbios_test_pinfo.c \ 31*afa937a6SRobert Mustacchi smbios_test_slot.c \ 32*afa937a6SRobert Mustacchi smbios_test_strings.c \ 33*afa937a6SRobert Mustacchi smbios_test_strprop.c 341566bc34SRobert MustacchiPROGS = smbios 351566bc34SRobert Mustacchi 36*afa937a6SRobert MustacchiPROGS32 = $(PROGS:%=%.32) 37*afa937a6SRobert MustacchiPROGS64 = $(PROGS:%=%.64) 38*afa937a6SRobert Mustacchi 39*afa937a6SRobert MustacchiOBJS32 = $(SRCS:%.c=%.32.o) 40*afa937a6SRobert MustacchiOBJS64 = $(SRCS:%.c=%.64.o) 41*afa937a6SRobert Mustacchi 421566bc34SRobert Mustacchiinclude $(SRC)/cmd/Makefile.cmd 431566bc34SRobert Mustacchiinclude $(SRC)/test/Makefile.com 441566bc34SRobert Mustacchi 45*afa937a6SRobert MustacchiCMDS = $(PROGS32:%=$(TESTDIR)/%) $(PROGS64:%=$(TESTDIR)/%) 461566bc34SRobert Mustacchi$(CMDS) := FILEMODE = 0555 47d53cdfabSRobert MustacchiCSTD = $(GNU_C99) 48d53cdfabSRobert Mustacchi 49d53cdfabSRobert Mustacchi# 50d53cdfabSRobert Mustacchi# Since this program uses quite a number of variables declared on the 51d53cdfabSRobert Mustacchi# stack that are then written to by libsmbios, we opt to pay the cost 52d53cdfabSRobert Mustacchi# of always have the stack protector on every function as an additional 53d53cdfabSRobert Mustacchi# means of checking ourselves. 54d53cdfabSRobert Mustacchi# 55d53cdfabSRobert MustacchiSTACKPROTECT = all 561566bc34SRobert Mustacchi 571566bc34SRobert MustacchiLDLIBS += -lsmbios -lumem 58*afa937a6SRobert MustacchiLDLIBS64 += -lsmbios -lumem 591566bc34SRobert MustacchiCFLAGS += -_gcc=-Wall -_gcc=-Wextra -_gcc=-Wno-unknown-pragmas 60*afa937a6SRobert MustacchiCFLAGS64 += -_gcc=-Wall -_gcc=-Wextra -_gcc=-Wno-unknown-pragmas 611566bc34SRobert Mustacchi 62*afa937a6SRobert Mustacchiall: $(PROGS32) $(PROGS64) 631566bc34SRobert Mustacchi 64176a9270SRobert Mustacchiinstall: all $(CMDS) 651566bc34SRobert Mustacchi 661566bc34SRobert Mustacchiclobber: clean 67*afa937a6SRobert Mustacchi -$(RM) $(PROGS32) $(PROGS64) 681566bc34SRobert Mustacchi 691566bc34SRobert Mustacchiclean: 70*afa937a6SRobert Mustacchi -$(RM) $(OBJS32) $(OBJS64) 711566bc34SRobert Mustacchi 72*afa937a6SRobert Mustacchi$(CMDS): $(TESTDIR) $(PROGS32) $(PROGS64) 731566bc34SRobert Mustacchi 741566bc34SRobert Mustacchi$(TESTDIR): 751566bc34SRobert Mustacchi $(INS.dir) 761566bc34SRobert Mustacchi 771566bc34SRobert Mustacchi$(TESTDIR)/%: % 781566bc34SRobert Mustacchi $(INS.file) 791566bc34SRobert Mustacchi 80*afa937a6SRobert Mustacchi%.32.o: %.c 81*afa937a6SRobert Mustacchi $(COMPILE.c) -o $@ $< 82*afa937a6SRobert Mustacchi $(POST_PROCESS_O) 83*afa937a6SRobert Mustacchi 84*afa937a6SRobert Mustacchi%.64.o: %.c 85*afa937a6SRobert Mustacchi $(COMPILE64.c) -o $@ $< 86*afa937a6SRobert Mustacchi $(POST_PROCESS_O) 87*afa937a6SRobert Mustacchi 88*afa937a6SRobert Mustacchi 89*afa937a6SRobert Mustacchi$(PROGS32): $(OBJS32) 90*afa937a6SRobert Mustacchi $(LINK.c) -o $@ $(OBJS32) $(LDLIBS) 91*afa937a6SRobert Mustacchi $(POST_PROCESS) 92*afa937a6SRobert Mustacchi 93*afa937a6SRobert Mustacchi$(PROGS64): $(OBJS64) 94*afa937a6SRobert Mustacchi $(LINK64.c) -o $@ $(OBJS64) $(LDLIBS64) 951566bc34SRobert Mustacchi $(POST_PROCESS) 96