summaryrefslogtreecommitdiff
path: root/Cryptlib/Makefile
blob: 68a9395e1f32a6986cdc54d74da057278a9280df (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
ifneq ($(CCACHE_DISABLE),)
export CCACHE_DISABLE
endif

CRYPTDIR	= $(TOPDIR)/Cryptlib

FEATUREFLAGS	+= -nostdinc

INCLUDES	= -I$(CRYPTDIR) -I$(CRYPTDIR)/Include \
		  $(EFI_INCLUDES) \
		  -isystem $(TOPDIR)/include/system \
		  -isystem $(shell $(CC) -print-file-name=include)

WARNFLAGS	+= -Wno-unused-parameter \
		   -Wno-unused-but-set-variable

WERRFLAGS	+= -Wno-error=unused-but-set-variable \
		   -Wno-error=unused-parameter

CFLAGS		= $(FEATUREFLAGS) \
		  $(OPTIMIZATIONS) \
		  $(WARNFLAGS) \
		  $(WERRFLAGS) \
		  $(INCLUDES) \
		  $(DEFINES)

CLANG_BUGS	= $(if $(findstring gcc,$(CC)),-maccumulate-outgoing-args,)

ifeq ($(ARCH),x86_64)
FEATUREFLAGS	+= -m64 -mno-mmx -mno-sse -mno-red-zone $(CLANG_BUGS)
DEFINES		+= -DMDE_CPU_X64
endif
ifeq ($(ARCH),ia32)
FEATUREFLAGS	+= -m32 -mno-mmx -mno-sse -mno-red-zone $(CLANG_BUGS)
DEFINES		+= -DMDE_CPU_IA32
endif
ifeq ($(ARCH),aarch64)
DEFINES		+= -DMDE_CPU_AARCH64
endif
ifeq ($(ARCH),arm)
DEFINES		+= -DMDE_CPU_ARM
endif
ifeq ($(ENABLE_CODESIGN_EKU),1)
DEFINES += -DENABLE_CODESIGN_EKU
endif

LDFLAGS		= -nostdlib -znocombreloc

TARGET		= libcryptlib.a
OBJS		=   Hash/CryptMd4Null.o \
		    Hash/CryptMd5.o \
		    Hash/CryptSha1.o \
		    Hash/CryptSha256.o \
		    Hash/CryptSha512.o \
		    Hmac/CryptHmacMd5Null.o \
		    Hmac/CryptHmacSha1Null.o \
		    Hmac/CryptHmacSha256Null.o \
		    Cipher/CryptAesNull.o \
		    Cipher/CryptTdesNull.o \
		    Cipher/CryptArc4Null.o \
		    Rand/CryptRand.o \
		    Pk/CryptRsaBasic.o \
		    Pk/CryptRsaExtNull.o \
		    Pk/CryptPkcs7SignNull.o \
		    Pk/CryptPkcs7Verify.o \
		    Pk/CryptDhNull.o \
		    Pk/CryptTs.o \
		    Pk/CryptX509.o \
		    Pk/CryptAuthenticode.o \
		    Pem/CryptPemNull.o \
		    SysCall/CrtWrapper.o \
		    SysCall/TimerWrapper.o \
		    SysCall/BaseMemAllocation.o \
		    SysCall/BaseStrings.o

ifeq ($(ENABLE_CODESIGN_EKU),1)
	OBJS += Pk/CryptPkcs7VerifyEku.o
endif

all: $(TARGET)

libcryptlib.a: $(OBJS)
	ar rcs libcryptlib.a $(OBJS)
clean:
	rm -f $(TARGET) $(OBJS)