66 lines
2.6 KiB
Makefile
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
|