Files
mars-matrixssl/makefiles/libsodium_support.mk
Janne Johansson 69b5f2c6c3 MatrixSSL 4.5.1
2022-07-29 12:30:12 +03:00

66 lines
2.6 KiB
Makefile

##
# Optional libsodium inclusion.
# @version $Format:%h%d$
# Copyright (c) 2017 Rambus Inc. All Rights Reserved.
#
#-------------------------------------------------------------------------------
# MatrixSSL supports importing some cryptographic algorithms from libsodium.
# TODO: Allow more control over libsodium unpacking process.
# Currently only control options are LIBSODIUM_CONFIGURE_ENVIRONMENT and
# LIBSODIUM_CONFIGURE_ARGUMENTS to set environment variables and configuration
# for compilation.
THIRDPARTY_DIRECTORY=$(COMMON_MK_PATH)/thirdparty
ifneq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.8.tar.gz)" ""
# Has libsodium 1.0.8.
ifeq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.8)" ""
ifeq (,$(filter clean clobber parse-config,$(MAKECMDGOALS)))
# libsodium is not unpacked.
$(warning automatically unpacking, configuring and compiling thirdparty/libsodium-1.0.8)
UNPACK_AND_COMPILE:=$(shell cd $(THIRDPARTY_DIRECTORY);tar zxf libsodium-1.0.8.tar.gz && cd libsodium-1.0.8 && $(LIBSODIUM_CONFIGURE_ENVIRONMENT) ./configure $(LIBSODIUM_CONFIGURE_ARGUMENTS) && make)
endif
endif
endif
ifneq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.8)" ""
USE_LIBSODIUM_CRYPTO:=1
LIBSODIUM_ROOT=$(THIRDPARTY_DIRECTORY)/libsodium-1.0.8/src/libsodium
endif
ifneq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.12.tar.gz)" ""
# Has libsodium 1.0.12.
ifeq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.12)" ""
ifeq (,$(filter clean clobber parse-config rebuild,$(MAKECMDGOALS)))
# libsodium is not unpacked.
$(warning automatically unpacking, configuring and compiling thirdparty/libsodium-1.0.12)
UNPACK_AND_COMPILE:=$(shell cd $(THIRDPARTY_DIRECTORY);tar zxf libsodium-1.0.12.tar.gz && cd libsodium-1.0.12 && $(LIBSODIUM_CONFIGURE_ENVIRONMENT) ./configure $(LIBSODIUM_CONFIGURE_ARGUMENTS) && make)
endif
endif
endif
ifneq "$(wildcard $(THIRDPARTY_DIRECTORY)/libsodium-1.0.12)" ""
USE_LIBSODIUM_CRYPTO:=1
LIBSODIUM_ROOT=$(THIRDPARTY_DIRECTORY)/libsodium-1.0.12/src/libsodium
endif
ifeq (,$(filter rebuild,$(MAKECMDGOALS)))
ifdef USE_LIBSODIUM_CRYPTO
ifdef LIBSODIUM_ROOT
# Statically link against a given libsodium
CFLAGS_LIBSODIUM=-DUSE_LIBSODIUM_CRYPTO -I$(LIBSODIUM_ROOT)/include
LDFLAGS_LIBSODIUM=$(LIBSODIUM_ROOT)/.libs/libsodium.a
STROPTS_LIBSODIUM=", USE_LIBSODIUM_CRYPTO"
STROPTS+=$(STROPTS_LIBSODIUM)
CFLAGS_MAKEFILES+=$(CFLAGS_LIBSODIUM)
LDFLAGS_MAKEFILES+=$(LDFLAGS_LIBSODIUM)
PS_LIBSODIUM:=1
endif
ifndef LIBSODIUM_ROOT
# No library path defined regardless of USE_LIBSODIUM_CRYPTO being defined.
$(error Please define LIBSODIUM_ROOT)
endif
endif
endif