| # 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 |