blob: f0f9ef1b5f56e559c9829d9ce6566dd571b3a372 [file] [log] [blame]
Vadim Bendebury08c04c52019-02-05 11:54:08 -08001# Copyright 2016 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
nagendra modadugu4fae5422016-05-10 16:11:54 -07005obj ?= ./build
6CROSS_COMPILE ?=
7CC ?= $(CROSS_COMPILE)gcc
8AR ?= $(CROSS_COMPILE)ar
9
10SOURCES = hmac.c
nagendra modadugu793cf592019-10-09 14:07:05 -070011SOURCES += md5.c
nagendra modadugu4fae5422016-05-10 16:11:54 -070012SOURCES += p256.c
13SOURCES += p256_ec.c
14SOURCES += p256_ecdsa.c
15SOURCES += p256_prng.c
16SOURCES += sha.c
nagendra modadugu793cf592019-10-09 14:07:05 -070017SOURCES += sha224.c
nagendra modadugu4fae5422016-05-10 16:11:54 -070018SOURCES += sha256.c
nagendra modadugu6283eee2016-12-13 10:23:48 -080019ifeq ($(CONFIG_UPTO_SHA512),y)
nagendra modaduguc0fe8362016-12-08 14:43:06 -080020SOURCES += sha384.c
21SOURCES += sha512.c
22endif
nagendra modadugu7c350b92016-10-18 15:13:05 -070023SOURCES += util.c
nagendra modadugu4fae5422016-05-10 16:11:54 -070024
25# Use V=1 for verbose output
26ifeq ($(V),)
27Q := @
28else
29Q :=
30endif
31
32CFLAGS += -Iinclude
33CFLAGS += -Wall -Werror
nagendra modadugu5319e832016-05-25 13:48:49 -070034CFLAGS += -DTHIRD_PARTY
nagendra modadugu6283eee2016-12-13 10:23:48 -080035ifeq ($(CONFIG_UPTO_SHA512),y)
36CFLAGS += -DSHA512_SUPPORT
37endif
nagendra modadugu4fae5422016-05-10 16:11:54 -070038
Vadim Bendeburyb256f392019-02-06 15:29:58 -080039OBJS := $(patsubst %.c,$(obj)/%.o,$(SOURCES))
40DEPS := $(patsubst %.c,$(obj)/%.d,$(SOURCES))
nagendra modadugu4fae5422016-05-10 16:11:54 -070041
42# This is the default target
43$(obj)/libcryptoc.a: $(OBJS)
44 @echo " AR $(notdir $@)"
45 $(Q)$(AR) scr $@ $^
46
Vadim Bendeburyb256f392019-02-06 15:29:58 -080047# Special target which allows to trigger re-compiling of all sources without
48# linking a library.
Craig Hesling07b7b922020-03-06 12:13:47 -080049.PHONY: objs
Vadim Bendeburyb256f392019-02-06 15:29:58 -080050objs: $(OBJS)
51
nagendra modadugu4fae5422016-05-10 16:11:54 -070052$(obj):
53 @echo " MKDIR $(obj)"
54 $(Q)mkdir -p $(obj)
55
Craig Hesling07b7b922020-03-06 12:13:47 -080056$(obj)/%.o: %.c | $(obj)
nagendra modadugu4fae5422016-05-10 16:11:54 -070057 @echo " CC $(notdir $<)"
Craig Hesling07b7b922020-03-06 12:13:47 -080058 $(Q)$(CC) $(CFLAGS) -c \
59 -MMD -MP -MF $(basename $@).d -MT $(basename $@).o \
Vadim Bendebury51c319f2020-02-06 11:44:03 -080060 -o $(basename $@).o $<
nagendra modadugu4fae5422016-05-10 16:11:54 -070061
62.PHONY: clean
63clean:
64 @echo " RM $(obj)"
65 $(Q)rm -rf $(obj)
66
Craig Hesling07b7b922020-03-06 12:13:47 -080067# Don't forget, this include line can trigger builds for the $(DEPS),
68# so do not provide a rule to make %.d.
nagendra modadugu4fae5422016-05-10 16:11:54 -070069-include $(DEPS)