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