summaryrefslogtreecommitdiff
path: root/test/tpm_test/Makefile
blob: 23f66317f93088cb5e3eecc0f41bb3155fb709a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Copyright 2015 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.

# V unset for normal output, V=1 for verbose output, V=0 for silent build
# (warnings/errors only). Use echo thus: $(call echo,"stuff  to  echo")
ifeq ($(V),0)
Q := @
echo = echo -n;
else
echo = echo $(1);
ifeq ($(V),)
Q := @
else
Q :=
endif
endif

obj = ../../build/tpm_test
src = .
SWIG = /usr/bin/swig
PYTHON_INCLUDE = $(shell python3 -c 'import sysconfig; \
print(sysconfig.get_paths().get("include"))')

vpath %c $(src) ../../chip/g/dcrypto $(src)/testlib

CFLAGS = -fPIC
CFLAGS += -I ${PYTHON_INCLUDE}
CFLAGS += -I../../../../third_party/cryptoc/include
CFLAGS += -I../../board/cr50
CFLAGS += -I../../chip/g
CFLAGS += -I../../chip/g/dcrypto
CFLAGS += -I../../fuzz
CFLAGS += -I../../include
CFLAGS += -I..
CFLAGS += -I../..
CFLAGS += -I.
CFLAGS += -Itestlib
CFLAGS += -DLIBFTDI1=1
CFLAGS += -c
CFLAGS += -DCR50_NO_BN_ASM
CFLAGS += -I../../fuzz
TARGET = ftdi_spi_tpm

.PRECIOUS: $(obj)/ftdi_spi_tpm_wrap.c

all: $(obj)/_$(TARGET).so $(obj)/bn_test

BN_OBJS = $(obj)/bn_test.o $(obj)/common.o $(obj)/bn.o

OBJS = $(obj)/$(TARGET).o $(obj)/$(TARGET)_wrap.o $(obj)/mpsse.o \
	$(obj)/support.o

DEPS := $(OBJS:.o=.o.d) $(BN_OBJS:.o=.o.d)

$(OBJS) $(BN_OBJS): | $(obj)

$(obj)/%.o: $(obj)/%.c
	$(call echo,"  CC      $(notdir $@)")
	$(Q)gcc $(CFLAGS) -o $@ $<

$(obj)/%.o: %.c
	$(call echo,"  CC      $(notdir $@)")
	$(Q)gcc $(CFLAGS) -Wall -Werror -MMD -MF $@.d -MT $@ -o $@ $<

$(obj)/_$(TARGET).so: $(OBJS) $(obj)/$(TARGET).py
	$(call echo,"  LD      $(notdir $@)")
	$(Q)rm -f $@
	$(Q)gcc -shared $(OBJS) -lftdi1 -o $@

$(obj)/%_wrap.c: $(src)/%.i
	$(call echo,"  SWIG    $(notdir $@)")
	$(Q)$(SWIG) -python -outdir $(obj) -o $@ $<

clean:
	@rm -rf $(obj)/

$(obj):
	$(call echo,"  MKDIR   $(obj)")
	$(Q)mkdir -p $(obj)

$(obj)/bn_test: $(BN_OBJS)
	$(call echo,"  LD      $(notdir $@)")
	$(Q)$(CC) -o $@ $^ -lcrypto

-include $(DEPS)