xref: /aosp_15_r20/external/gsc-utils/extra/usb_updater/Makefile (revision 4f2df630800bdcf1d4f0decf95d8a1cb87344f5f)
1# Copyright 2015 The ChromiumOS Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5CC ?= gcc
6PKG_CONFIG ?= pkg-config
7PROGRAMS := gsctool
8LIBS    :=
9CFLAGS  += -std=gnu99 \
10	-g \
11	-Wall \
12	-Werror \
13	-Wpointer-arith \
14	-Wcast-align \
15	-Wcast-qual \
16	-Wundef \
17	-Wsign-compare \
18	-Wredundant-decls \
19	-Wmissing-declarations
20
21ifneq ($(DEBUG),)
22CFLAGS += -O0
23else
24CFLAGS += -O3
25endif
26
27#
28# Add libusb-1.0 required flags
29#
30LIBS_CONFIG := $(shell $(PKG_CONFIG) --libs   libusb-1.0)
31CFLAGS_CONFIG := $(shell $(PKG_CONFIG) --cflags libusb-1.0)
32CFLAGS  += -I../../include -I../../util -I../../fuzz -I../../test
33
34# Enable large file support.
35CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
36
37VPATH = ../../util
38
39BOARD := cr50
40
41LIBS_g  := $(shell $(PKG_CONFIG) --libs libcrypto)
42CFLAGS_g := $(shell $(PKG_CONFIG) --cflags libcrypto)
43
44LIBS    += $(LIBS_CONFIG) $(LIBS_g)
45CFLAGS  += $(CFLAGS_CONFIG) $(CFLAGS_g)
46CPPFLAGS  += -I../../board/cr50 -I ../../chip/g
47
48all: $(PROGRAMS)
49
50GSCTOOL_SOURCES := gsctool.c desc_parser.c usb_if.c verify_ro.c
51GSCTOOL_OBJS := $(patsubst %.c,%.o,$(GSCTOOL_SOURCES))
52DEPS := $(patsubst %.c,%.d,$(GSCTOOL_SOURCES)) dp.d
53
54# chip/g updater
55gsctool: $(GSCTOOL_OBJS) Makefile
56	$(CC) $(CFLAGS) $(GSCTOOL_OBJS) $(LDFLAGS) $(LIBS) -o $@
57
58%.o: %.c
59	$(CC) $(CFLAGS) $(CPPFLAGS) -c -MMD -MF $(basename $@).d -o $@ $<
60
61gsctool.o:  generated_version.h
62
63generated_version.h: $(GSCTOOL_SOURCES)
64	# Make sure ${BOARD} not set to anything when invoking getversion.sh,
65	# as even when building with Cr50 enabled, other directories do not
66	# matter for gsctool.
67	@(cd ../../; BOARD= util/getversion.sh) > $@
68
69.PHONY: clean
70clean:
71	rm -rf $(PROGRAMS) *~ *.o *.d dp generated_version.h
72
73dp: CFLAGS += -O0
74dp: desc_parser.c
75	$(CC) $(CFLAGS) $(CPPFLAGS) -DTEST_PARSER -MMD -MF $(basename $@).d \
76		desc_parser.c -o $@
77
78-include $(DEPS)
79