blob: e9bc1ab761e75bf631fad80c6e28ec35bfb9ee9c [file] [log] [blame]
Patrick Georgi70517072020-05-10 18:47:05 +02001# SPDX-License-Identifier: BSD-3-Clause
2
Karthikeyan Ramasubramanian236245e2022-09-06 14:02:41 -06003top ?= $(abspath ../..)
Kangheui Won5b84dfd2021-12-21 15:45:06 +11004ifneq ($(CC),)
5HOSTCC ?= $(CC)
6else
Zheng Bao9c7ff7b2015-11-17 22:57:39 +08007HOSTCC ?= cc
Kangheui Won5b84dfd2021-12-21 15:45:06 +11008endif
Zheng Bao9c7ff7b2015-11-17 22:57:39 +08009
Robert Zieba29bc79f2022-03-14 15:59:12 -060010READ_SRC = amdfwread.c
11READ_OBJ = $(READ_SRC:%.c=%.o)
Zheng Baof080cd52023-03-22 12:50:36 +080012TOOL_SRC = amdfwtool.c data_parse.c signed_psp.c handle_file.c
Robert Zieba29bc79f2022-03-14 15:59:12 -060013TOOL_OBJ = $(TOOL_SRC:%.c=%.o)
14HEADER=amdfwtool.h
15TARGETS = amdfwread amdfwtool
Zheng Baofdd47ef2021-09-17 13:30:08 +080016WERROR=-Werror
Martin Rothd5090762021-02-13 22:50:13 -070017CFLAGS=-O2 -Wall -Wextra -Wshadow ${WERROR}
Karthikeyan Ramasubramanian236245e2022-09-06 14:02:41 -060018CFLAGS += -I $(top)/src/commonlib/bsd/include
Karthikeyan Ramasubramanianabaca2a2023-07-13 17:24:13 -060019CFLAGS += -D_GNU_SOURCE # memmem() from string.h
Zheng Bao9c7ff7b2015-11-17 22:57:39 +080020
Kangheui Won5b84dfd2021-12-21 15:45:06 +110021ifneq ($(PKG_CONFIG),)
22HOSTPKGCONFIG ?= $(PKG_CONFIG)
23else
24HOSTPKGCONFIG ?= pkg-config
25endif
26CFLAGS += $(shell $(HOSTPKGCONFIG) --cflags libcrypto)
27LDFLAGS += $(shell $(HOSTPKGCONFIG) --libs libcrypto)
28
Robert Zieba29bc79f2022-03-14 15:59:12 -060029all: $(TARGETS)
Zheng Bao7698a552020-09-29 17:32:36 +080030
Robert Zieba29bc79f2022-03-14 15:59:12 -060031amdfwread: $(READ_OBJ)
Kangheui Won5b84dfd2021-12-21 15:45:06 +110032 $(HOSTCC) $(READ_OBJ) $(LDFLAGS) -o $@
Robert Zieba29bc79f2022-03-14 15:59:12 -060033
34amdfwtool: $(TOOL_OBJ)
Kangheui Won5b84dfd2021-12-21 15:45:06 +110035 $(HOSTCC) $(TOOL_OBJ) $(LDFLAGS) -o $@
Zheng Bao7698a552020-09-29 17:32:36 +080036
37%.o: %.c $(HEADER)
Kangheui Won5b84dfd2021-12-21 15:45:06 +110038 $(HOSTCC) $(CFLAGS) -c -o $@ $<
Zheng Bao9c7ff7b2015-11-17 22:57:39 +080039
40clean:
Robert Zieba29bc79f2022-03-14 15:59:12 -060041 @rm -f $(TARGETS) $(READ_OBJ) $(TOOL_OBJ)
Felix Helde862a002021-01-07 18:52:55 +010042
43distclean: clean
Martin Rothd5090762021-02-13 22:50:13 -070044
45help:
Robert Zieba29bc79f2022-03-14 15:59:12 -060046 @echo "${TARGETS}: Tools to create and read from AMD firmware combinations"
Martin Rothd5090762021-02-13 22:50:13 -070047 @echo "Targets: all, clean, distclean, help"
48 @echo "To disable warnings as errors, run make as:"
49 @echo " make all WERROR=\"\""
50
51.PHONY: all clean distclean help