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