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) 2018, Joyent, Inc.
14# Copyright 2024 Oxide Computer Company
15#
16
17include $(SRC)/Makefile.master
18
19ROOTOPTPKG = $(ROOT)/opt/util-tests
20TESTDIR = $(ROOTOPTPKG)/tests/
21
22OBJS =	smbios.o \
23	smbios_test_addinfo.o \
24	smbios_test_chassis.o \
25	smbios_test_errors.o \
26	smbios_test_extmemdevice.o \
27	smbios_test_fwinfo.o \
28	smbios_test_memdevice.o \
29	smbios_test_proc.o \
30	smbios_test_pinfo.o \
31	smbios_test_slot.o \
32	smbios_test_strings.o \
33	smbios_test_strprop.o
34PROGS = smbios
35
36include $(SRC)/cmd/Makefile.cmd
37include $(SRC)/test/Makefile.com
38
39CMDS = $(PROGS:%=$(TESTDIR)/%)
40$(CMDS) := FILEMODE = 0555
41CSTD = $(GNU_C99)
42
43#
44# Since this program uses quite a number of variables declared on the
45# stack that are then written to by libsmbios, we opt to pay the cost
46# of always have the stack protector on every function as an additional
47# means of checking ourselves.
48#
49STACKPROTECT = all
50
51LDLIBS += -lsmbios -lumem
52CFLAGS += -_gcc=-Wall -_gcc=-Wextra -_gcc=-Wno-unknown-pragmas
53
54all: $(PROGS)
55
56install: all $(CMDS)
57
58clobber: clean
59	-$(RM) $(PROGS)
60
61clean:
62	-$(RM) $(OBJS)
63
64$(CMDS): $(TESTDIR) $(PROGS)
65
66$(TESTDIR):
67	$(INS.dir)
68
69$(TESTDIR)/%: %
70	$(INS.file)
71
72$(PROGS): $(OBJS)
73	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
74	$(POST_PROCESS)
75