| # Copyright 2016 The Chromium OS Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| obj ?= ./build | |
| CROSS_COMPILE ?= | |
| CC ?= $(CROSS_COMPILE)gcc | |
| AR ?= $(CROSS_COMPILE)ar | |
| SOURCES = hmac.c | |
| SOURCES += p256.c | |
| SOURCES += p256_ec.c | |
| SOURCES += p256_ecdsa.c | |
| SOURCES += p256_prng.c | |
| SOURCES += sha.c | |
| SOURCES += sha256.c | |
| ifeq ($(CONFIG_UPTO_SHA512),y) | |
| SOURCES += sha384.c | |
| SOURCES += sha512.c | |
| endif | |
| SOURCES += util.c | |
| # Use V=1 for verbose output | |
| ifeq ($(V),) | |
| Q := @ | |
| else | |
| Q := | |
| endif | |
| CFLAGS += -Iinclude | |
| CFLAGS += -Wall -Werror | |
| CFLAGS += -DTHIRD_PARTY | |
| ifeq ($(CONFIG_UPTO_SHA512),y) | |
| CFLAGS += -DSHA512_SUPPORT | |
| endif | |
| OBJS := $(patsubst %.c,$(obj)/%.o,$(SOURCES)) | |
| DEPS := $(patsubst %.c,$(obj)/%.d,$(SOURCES)) | |
| # This is the default target | |
| $(obj)/libcryptoc.a: $(OBJS) | |
| @echo " AR $(notdir $@)" | |
| $(Q)$(AR) scr $@ $^ | |
| # Special target which allows to trigger re-compiling of all sources without | |
| # linking a library. | |
| objs: $(OBJS) | |
| $(obj): | |
| @echo " MKDIR $(obj)" | |
| $(Q)mkdir -p $(obj) | |
| $(obj)/%.d $(obj)/%.o: %.c | $(obj) | |
| @echo " CC $(notdir $<)" | |
| $(Q)$(CC) $(CFLAGS) -c -MMD -MF $(basename $@).d -o $(basename $@).o $< | |
| .PHONY: clean | |
| clean: | |
| @echo " RM $(obj)" | |
| $(Q)rm -rf $(obj) | |
| ifneq ($(MAKECMDGOALS),clean) | |
| -include $(DEPS) | |
| endif |