xref: /aosp_15_r20/external/boringssl/rules.mk (revision 8fb009dc861624b67b6cdb62ea21f0f22d0c584b)
1*8fb009dcSAndroid Build Coastguard Worker# Copyright (C) 2015 The Android Open Source Project.
2*8fb009dcSAndroid Build Coastguard Worker#
3*8fb009dcSAndroid Build Coastguard Worker# Permission to use, copy, modify, and/or distribute this software for any
4*8fb009dcSAndroid Build Coastguard Worker# purpose with or without fee is hereby granted, provided that the above
5*8fb009dcSAndroid Build Coastguard Worker# copyright notice and this permission notice appear in all copies.
6*8fb009dcSAndroid Build Coastguard Worker#
7*8fb009dcSAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8*8fb009dcSAndroid Build Coastguard Worker# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9*8fb009dcSAndroid Build Coastguard Worker# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10*8fb009dcSAndroid Build Coastguard Worker# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11*8fb009dcSAndroid Build Coastguard Worker# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12*8fb009dcSAndroid Build Coastguard Worker# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13*8fb009dcSAndroid Build Coastguard Worker# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14*8fb009dcSAndroid Build Coastguard Worker
15*8fb009dcSAndroid Build Coastguard Worker# This file is not used in the Android build process! It's used only by Trusty.
16*8fb009dcSAndroid Build Coastguard Worker
17*8fb009dcSAndroid Build Coastguard Worker
18*8fb009dcSAndroid Build Coastguard WorkerLOCAL_DIR := $(GET_LOCAL_DIR)
19*8fb009dcSAndroid Build Coastguard WorkerLOCAL_PATH := $(GET_LOCAL_DIR)
20*8fb009dcSAndroid Build Coastguard Worker
21*8fb009dcSAndroid Build Coastguard WorkerMODULE := $(LOCAL_DIR)
22*8fb009dcSAndroid Build Coastguard Worker
23*8fb009dcSAndroid Build Coastguard WorkerTARGET_ARCH := $(ARCH)
24*8fb009dcSAndroid Build Coastguard WorkerTARGET_2ND_ARCH := $(ARCH)
25*8fb009dcSAndroid Build Coastguard Worker
26*8fb009dcSAndroid Build Coastguard Worker# Reset local variables
27*8fb009dcSAndroid Build Coastguard WorkerLOCAL_CFLAGS :=
28*8fb009dcSAndroid Build Coastguard WorkerLOCAL_C_INCLUDES :=
29*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES :=
30*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(TARGET_ARCH) :=
31*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(TARGET_2ND_ARCH) :=
32*8fb009dcSAndroid Build Coastguard WorkerLOCAL_CFLAGS_$(TARGET_ARCH) :=
33*8fb009dcSAndroid Build Coastguard WorkerLOCAL_CFLAGS_$(TARGET_2ND_ARCH) :=
34*8fb009dcSAndroid Build Coastguard WorkerLOCAL_ADDITIONAL_DEPENDENCIES :=
35*8fb009dcSAndroid Build Coastguard Worker
36*8fb009dcSAndroid Build Coastguard Worker# get target_c_flags, target_c_includes, target_src_files
37*8fb009dcSAndroid Build Coastguard WorkerMODULE_SRCDEPS += $(LOCAL_DIR)/crypto-sources.mk
38*8fb009dcSAndroid Build Coastguard Workerinclude $(LOCAL_DIR)/crypto-sources.mk
39*8fb009dcSAndroid Build Coastguard Worker
40*8fb009dcSAndroid Build Coastguard Worker# The AOSP stdatomic.h clang header does not build against musl. Disable C11
41*8fb009dcSAndroid Build Coastguard Worker# atomics.
42*8fb009dcSAndroid Build Coastguard WorkerMODULE_CFLAGS += -D__STDC_NO_ATOMICS__
43*8fb009dcSAndroid Build Coastguard Worker
44*8fb009dcSAndroid Build Coastguard Worker# Define static armcap based on lk build variables
45*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP := -DOPENSSL_STATIC_ARMCAP
46*8fb009dcSAndroid Build Coastguard Workertoarmcap = $(if $(filter-out 0 false,$(2)),-DOPENSSL_STATIC_ARMCAP_$(1),)
47*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP += $(call toarmcap,NEON,$(USE_ARM_V7_NEON))
48*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP += $(call toarmcap,AES,$(USE_ARM_V8_AES))
49*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP += $(call toarmcap,PMULL,$(USE_ARM_V8_PMULL))
50*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP += $(call toarmcap,SHA1,$(USE_ARM_V8_SHA1))
51*8fb009dcSAndroid Build Coastguard WorkerMODULE_STATIC_ARMCAP += $(call toarmcap,SHA256,$(USE_ARM_V8_SHA2))
52*8fb009dcSAndroid Build Coastguard WorkerMODULE_CFLAGS += $(MODULE_STATIC_ARMCAP)
53*8fb009dcSAndroid Build Coastguard WorkerMODULE_ASMFLAGS += $(MODULE_STATIC_ARMCAP)
54*8fb009dcSAndroid Build Coastguard Worker
55*8fb009dcSAndroid Build Coastguard Workerifeq (false,$(call TOBOOL,$(ALLOW_FP_USE)))
56*8fb009dcSAndroid Build Coastguard Worker# chacha, ghash, vpaes, sha1, and sha256 assembly files use neon instructions,
57*8fb009dcSAndroid Build Coastguard Worker# which we aren't allowed to do in the kernel if ALLOW_FP_USE is disabled. This
58*8fb009dcSAndroid Build Coastguard Worker# means that the kernel can't use these functions, but we don't need to for now.
59*8fb009dcSAndroid Build Coastguard Worker# If someone ever tries to, we will get missing symbols during linking.
60*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/chacha/chacha-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
61*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/fipsmodule/ghash-neon-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
62*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/fipsmodule/vpaes-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
63*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/fipsmodule/sha1-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
64*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/fipsmodule/sha256-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
65*8fb009dcSAndroid Build Coastguard WorkerLOCAL_SRC_FILES_$(ARCH) := $(filter-out linux-aarch64/crypto/test/trampoline-armv8.S,$(LOCAL_SRC_FILES_$(ARCH)))
66*8fb009dcSAndroid Build Coastguard Workerendif
67*8fb009dcSAndroid Build Coastguard Worker
68*8fb009dcSAndroid Build Coastguard WorkerMODULE_SRCS += $(addprefix $(LOCAL_DIR)/,$(LOCAL_SRC_FILES))
69*8fb009dcSAndroid Build Coastguard WorkerMODULE_SRCS += $(addprefix $(LOCAL_DIR)/,$(LOCAL_SRC_FILES_$(ARCH)))
70*8fb009dcSAndroid Build Coastguard Worker
71*8fb009dcSAndroid Build Coastguard WorkerMODULE_INCLUDES += $(LOCAL_DIR)/src/crypto
72*8fb009dcSAndroid Build Coastguard Worker
73*8fb009dcSAndroid Build Coastguard WorkerMODULE_EXPORT_INCLUDES += $(LOCAL_DIR)/src/include
74*8fb009dcSAndroid Build Coastguard Worker
75*8fb009dcSAndroid Build Coastguard Workerinclude trusty/user/base/lib/openssl-stubs/openssl-stubs-inc.mk
76*8fb009dcSAndroid Build Coastguard Worker
77*8fb009dcSAndroid Build Coastguard Workerinclude make/library.mk
78