diff options
author | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2018-09-01 01:13:29 +0200 |
---|---|---|
committer | Mounir IDRASSI <mounir.idrassi@idrix.fr> | 2018-09-01 01:15:33 +0200 |
commit | 5455c89a5016ef73c1b91aaf0a93ea30509026c0 (patch) | |
tree | f6d74054503fc7a99dbc2533ddcf4371087374c3 /src | |
parent | 09afb91c897e8617b632a6c8cbaab0a98e21549b (diff) | |
download | VeraCrypt-5455c89a5016ef73c1b91aaf0a93ea30509026c0.tar.gz VeraCrypt-5455c89a5016ef73c1b91aaf0a93ea30509026c0.zip |
Linux/FreeBSD: Add 32-bit build configuration targetting legacy CPUs that don't support SSE2 instructions.
Diffstat (limited to 'src')
-rwxr-xr-x | src/Build/build_veracrypt_linux_no_sse2.sh | 47 | ||||
-rwxr-xr-x | src/Main/Main.make | 13 | ||||
-rw-r--r-- | src/Makefile | 19 |
3 files changed, 79 insertions, 0 deletions
diff --git a/src/Build/build_veracrypt_linux_no_sse2.sh b/src/Build/build_veracrypt_linux_no_sse2.sh new file mode 100755 index 00000000..2f78418f --- /dev/null +++ b/src/Build/build_veracrypt_linux_no_sse2.sh @@ -0,0 +1,47 @@ +# +# Copyright (c) 2013-2017 IDRIX +# Governed by the Apache License 2.0 the full text of which is contained +# in the file License.txt included in VeraCrypt binary and source +# code distribution packages. +# + +# Absolute path to this script +SCRIPT=$(readlink -f "$0") +# Absolute path this script is in +SCRIPTPATH=$(dirname "$SCRIPT") +# source directory which contains the Makefile +SOURCEPATH=$(readlink -f "$SCRIPTPATH/..") +# directory where the VeraCrypt has been checked out +PARENTDIR=$(readlink -f "$SCRIPTPATH/../../..") + +# Make sure only root can run our script +if [ "$(id -u)" != "0" ]; then + echo "VeraCrypt must be built by root" 1>&2 + exit 1 +fi + +# the sources of wxWidgets 3.0.3 must be extracted to the parent directory +export WX_ROOT=$PARENTDIR/wxWidgets-3.0.4 +echo "Using wxWidgets sources in $WX_ROOT" + +cd $SOURCEPATH + +echo "Building GUI version of VeraCrypt" + +# this will be the temporary wxWidgets directory +export WX_BUILD_DIR=$PARENTDIR/wxBuildGuiNoSSE2 + +make WXSTATIC=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package + +# Uncomment below and comment line above to reuse existing wxWidgets build +# make WXSTATIC=1 NOSSE2=1 clean && make WXSTATIC=1 NOSSE2=1 && make WXSTATIC=1 NOSSE2=1 package + +echo "Building console version of VeraCrypt" + +# this will be the temporary wxWidgets directory +export WX_BUILD_DIR=$PARENTDIR/wxBuildConsoleNoSSE2 + +make WXSTATIC=1 NOGUI=1 NOSSE2=1 wxbuild && make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package + +# Uncomment below and comment line above to reuse existing wxWidgets build +# make WXSTATIC=1 NOGUI=1 NOSSE2=1 clean && make WXSTATIC=1 NOGUI=1 NOSSE2=1 && make WXSTATIC=1 NOGUI=1 NOSSE2=1 package diff --git a/src/Main/Main.make b/src/Main/Main.make index b0408805..581eb34a 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -121,14 +121,27 @@ ifeq "$(PLATFORM)" "Linux" ifdef TC_NO_GUI INSTALLER_TYPE := console +ifeq "$(origin NOSSE2)" "command line" +PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_console_$(PLATFORM_ARCH)_legacy.tar.gz +else PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_console_$(PLATFORM_ARCH).tar.gz +endif else INSTALLER_TYPE := gui +ifeq "$(origin NOSSE2)" "command line" +PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(PLATFORM_ARCH)_legacy.tar.gz +else PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(PLATFORM_ARCH).tar.gz endif +endif +ifeq "$(origin NOSSE2)" "command line" +INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH)_legacy.sh +INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)-legacy +else INTERNAL_INSTALLER_NAME := veracrypt_install_$(INSTALLER_TYPE)_$(CPU_ARCH).sh INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH) +endif endif #----------------------------------- diff --git a/src/Makefile b/src/Makefile index 4f8bb42b..50af3021 100644 --- a/src/Makefile +++ b/src/Makefile @@ -22,6 +22,7 @@ # WXSTATIC: Use static wxWidgets library # SSSE3: Enable SSSE3 support in compiler # SSE41: Enable SSE4.1 support in compiler +# NOSSE2: Disable SEE2 support in compiler #------ Targets ------ # all @@ -158,6 +159,10 @@ else ifeq "$(CPU_ARCH)" "x64" C_CXX_FLAGS += -D TC_ARCH_X64 endif +ifeq "$(origin NOSSE2)" "command line" + SIMD_SUPPORTED := 0 +endif + #------ Linux configuration ------ @@ -211,6 +216,13 @@ ifeq "$(shell uname -s)" "Linux" WXCONFIG_CXXFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0 endif endif + + ifeq "$(origin NOSSE2)" "command line" + CFLAGS += -mno-sse2 + CXXFLAGS += -mno-sse2 + WXCONFIG_CFLAGS += -mno-sse2 + WXCONFIG_CXXFLAGS += -mno-sse2 + endif endif @@ -317,6 +329,13 @@ ifeq "$(shell uname -s)" "FreeBSD" CXXFLAGS += -mssse3 -msse4.1 endif endif + + ifeq "$(origin NOSSE2)" "command line" + CFLAGS += -mno-sse2 + CXXFLAGS += -mno-sse2 + WXCONFIG_CFLAGS += -mno-sse2 + WXCONFIG_CXXFLAGS += -mno-sse2 + endif endif |