xref: /illumos-gate/usr/src/test/util-tests/tests/libjedec/hex2spd/Makefile (revision e8d3efa1c56e5f2b5368600a2baeb7b1d54a07f8)
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 2026 Oxide Computer Company
14#
15
16PROGS = libjedec_hex2spd
17OBJS = \
18	libjedec_hex2spd.o	\
19	libjedec_hex2spd_ddr3.o	\
20	libjedec_hex2spd_ddr4.o	\
21	libjedec_hex2spd_ddr5.o	\
22	libjedec_hex2spd_lp3.o	\
23	libjedec_hex2spd_lp4.o	\
24	libjedec_hex2spd_lp5.o
25SPD = \
26	ddr3/M393B4G70BM0-CMA09.spd		\
27	ddr3/MT36KSZF2G72LDZ-1G6E2A7.spd	\
28	ddr4/36ASF8G72PZ-3G2E1.spd		\
29	ddr4/AQD-D4U32N32-SBW.spd		\
30	ddr4/AQD-SD4U16GN32-SE1.spd		\
31	ddr4/M386AAK40B40-CWD70.spd		\
32	ddr5/AQD-D5V16GR48-SB.spd		\
33	ddr5/MTC40F2046S1RC48BA1.spd		\
34	lpddr3/NT6CL256T32CQ.spd		\
35	lpddr4/MT53D1024M32D4.spd		\
36	lpddr5/CAMM2.spd			\
37	lpddr5/MT62F4G32D8DV-023.spd		\
38	lpddr5/SOCAMM2.spd
39SPDDIR = ddr3 ddr4 ddr5 lpddr3 lpddr4 lpddr5
40
41PROGS32 = $(PROGS:%=%.32)
42PROGS64 = $(PROGS:%=%.64)
43OBJS32 = $(OBJS:%.o=%.32.o)
44OBJS64 = $(OBJS:%.o=%.64.o)
45
46ROOTOPTDIR = $(ROOT)/opt/util-tests/tests
47ROOTOPTPROGS = $(PROGS32:%=$(ROOTOPTDIR)/%) $(PROGS64:%=$(ROOTOPTDIR)/%)
48ROOTOPTHEX = $(ROOTOPTDIR)/hex2spd
49ROOTHEXDIRS = $(SPDDIR:%=$(ROOTOPTHEX)/%)
50ROOTHEXSPD = $(SPD:%=$(ROOTOPTHEX)/%)
51
52$(ROOTOPTPROGS) := FILEMODE = 0555
53$(ROOTHEXSPD) := FILEMODE = 0444
54
55include $(SRC)/cmd/Makefile.cmd
56include $(SRC)/cmd/Makefile.ctf
57
58CSTD = $(CSTD_GNU17)
59CTF_MODE = link
60LDLIBS += -ljedec -lnvpair
61LDLIBS64 += -ljedec -lnvpair
62
63.KEEP_STATE:
64
65all: $(PROGS32) $(PROGS64)
66
67install: $(ROOTOPTPROGS) $(ROOTHEXSPD)
68
69clean:
70	$(RM) *.o
71
72clobber: clean
73	$(RM) $(PROGS32) $(PROGS64)
74
75$(ROOTOPTPROGS): $(ROOTOPTHEX)
76
77$(ROOTHEXSPD): $(ROOTHEXDIRS)
78
79$(ROOTOPTHEX):
80	$(INS.dir)
81
82$(ROOTHEXDIRS): $(ROOTOPTHEX)
83	$(INS.dir)
84
85$(ROOTOPTDIR)/%: %
86	$(INS.file)
87
88$(ROOTOPTHEX)/%: data/%
89	$(INS.file)
90
91%.32.o: %.c
92	$(COMPILE.c) -o $@ $<
93	$(POST_PROCESS_O)
94
95%.64.o: %.c
96	$(COMPILE64.c) -o $@ $<
97	$(POST_PROCESS_O)
98
99%.64: $(OBJS64)
100	$(LINK64.c) -o $@ $(OBJS64) $(LDLIBS64)
101	$(POST_PROCESS)
102
103%.32: $(OBJS32)
104	$(LINK.c) -o $@ $(OBJS32) $(LDLIBS)
105	$(POST_PROCESS)
106