diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/Build/build_veracrypt_macosx.sh | 35 | ||||
-rwxr-xr-x | src/Main/Main.make | 2 | ||||
-rw-r--r-- | src/Makefile | 48 | ||||
-rw-r--r-- | src/Volume/Volume.make | 6 |
4 files changed, 78 insertions, 13 deletions
diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh index 12899620..74fe5d93 100755 --- a/src/Build/build_veracrypt_macosx.sh +++ b/src/Build/build_veracrypt_macosx.sh @@ -1,3 +1,5 @@ +#!/usr/bin/env bash + # # Copyright (c) 2013-2019 IDRIX # Governed by the Apache License 2.0 the full text of which is contained @@ -12,6 +14,37 @@ SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd) # directory where the VeraCrypt project has been checked out PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd) +while getopts bpr flag +do + case "${flag}" in + b) brew=true;; + p) package=true;; + esac +done + +if [ -n "$brew" ]; then + export VC_OSX_SDK=$(xcrun --show-sdk-version) #use the latest version installed, this might fail + export VC_OSX_TARGET=${VC_OSX_SDK} + echo "Using MacOSX SDK $VC_OSX_SDK with target set to $VC_OSX_TARGET" + cd $SOURCEPATH + + echo "Building VeraCrypt with precompiled homebrew packages" + cellar=$(brew --cellar "wxwidgets") + version=$(brew list --versions "wxwidgets" | head -1 | awk '{print $2}') + export WX_BUILD_DIR="$cellar/$version/bin" + # skip signing and build only for local arch + export LOCAL_DEVELOPMENT_BUILD=true + # set the correct CPU arch for Makefile + export CPU_ARCH=$(uname -m) + export AS=$(which yasm) + export COMPILE_ASM=$( if [[ "$CPU_ARCH" != "arm64" ]]; then echo true; else echo false; fi ) + make clean && make + if [ -n "$package" ]; then + make package + fi + exit 0 +fi + # the sources of wxWidgets 3.1.2 must be extracted to the parent directory (for night mode) export WX_ROOT=$PARENTDIR/wxWidgets-3.2.2.1 echo "Using wxWidgets sources in $WX_ROOT" @@ -19,7 +52,7 @@ echo "Using wxWidgets sources in $WX_ROOT" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuild-3.2.2.1 -# define the SDK version to use and OSX minimum target. We target 10.9 by default +# define the SDK version to use and OSX minimum target. We target 12 by default export VC_OSX_TARGET=12 export VC_OSX_SDK=13 echo "Using MacOSX SDK $VC_OSX_SDK with target set to $VC_OSX_TARGET" diff --git a/src/Main/Main.make b/src/Main/Main.make index dd85f842..aa5e0972 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -210,7 +210,9 @@ else sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.xml >$(APPNAME).app/Contents/Info.plist endif chmod -R go-w $(APPNAME).app +ifneq ($(LOCAL_DEVELOPMENT_BUILD),"true") codesign -s "Developer ID Application: IDRIX (Z933746L2S)" --timestamp $(APPNAME).app +endif install: prepare cp -R $(APPNAME).app /Applications/. diff --git a/src/Makefile b/src/Makefile index a2c6f834..81926eba 100644 --- a/src/Makefile +++ b/src/Makefile @@ -295,7 +295,7 @@ ifeq "$(shell uname -s)" "Darwin" PLATFORM := MacOSX APPNAME := VeraCrypt - export VC_OSX_TARGET ?= 10.7 + export VC_OSX_TARGET ?= 12 export VC_OSX_SDK ?= $(VC_OSX_TARGET) #check to see if XCode 3 path exists.Otherwise, use XCode 4 path @@ -323,11 +323,13 @@ ifeq "$(shell uname -s)" "Darwin" endif ifeq "$(CPU_ARCH)" "arm64" - CPU_ARCH = x86 + CPU_ARCH = arm64 endif - CFLAGS += -msse2 - CXXFLAGS += -msse2 + ifneq "$(CPU_ARCH)" "arm64" + CFLAGS += -msse2 + CXXFLAGS += -msse2 + endif ifeq "$(origin SSSE3)" "command line" CFLAGS += -mssse3 @@ -339,7 +341,7 @@ ifeq "$(shell uname -s)" "Darwin" CXXFLAGS += -mssse3 -msse4.1 endif - AS := $(BASE_DIR)/Build/Tools/MacOSX/yasm + AS ?= $(BASE_DIR)/Build/Tools/MacOSX/yasm export ASFLAGS32 := -D __GNUC__ -D __YASM__ -D __BITS__=32 --prefix=_ -f macho32 export ASFLAGS64 := -D __GNUC__ -D __YASM__ -D __BITS__=64 --prefix=_ -f macho64 @@ -350,8 +352,20 @@ ifeq "$(shell uname -s)" "Darwin" S := $(C_CXX_FLAGS) C_CXX_FLAGS = $(subst -MMD,,$(S)) - C_CXX_FLAGS += -gfull -arch x86_64 - LFLAGS += -Wl,-dead_strip -arch x86_64 + # only build local arch in development builds + ifeq "$(LOCAL_DEVELOPMENT_BUILD)" "true" + ifeq "$(CPU_ARCH)" "arm64" + C_CXX_FLAGS += -gfull -arch $(CPU_ARCH) + LFLAGS += -Wl,-dead_strip -arch $(CPU_ARCH) + else + C_CXX_FLAGS += -gfull -arch x86_64 + LFLAGS += -Wl,-dead_strip -arch x86_64 + endif + else + # leave previous logic as is + C_CXX_FLAGS += -gfull -arch x86_64 + LFLAGS += -Wl,-dead_strip -arch x86_64 + endif WX_CONFIGURE_FLAGS += --without-libpng --disable-gif --disable-pcx --disable-tga --disable-iff --disable-gif --disable-svg @@ -361,10 +375,22 @@ ifeq "$(shell uname -s)" "Darwin" LFLAGS += -arch i386 WX_CONFIGURE_FLAGS += --enable-universal_binary=i386,x86_64 else - CXXFLAGS += -std=c++11 - C_CXX_FLAGS += -arch arm64 - LFLAGS += -arch arm64 - WX_CONFIGURE_FLAGS += --enable-universal_binary=arm64,x86_64 + CXXFLAGS += -std=c++11 + ifeq "$(LOCAL_DEVELOPMENT_BUILD)" "true" + ifeq "$(CPU_ARCH)" "arm64" + C_CXX_FLAGS += -arch arm64 + LFLAGS += -arch arm64 + else + C_CXX_FLAGS += -arch x86_64 + LFLAGS += -arch x86_64 + endif + WX_CONFIGURE_FLAGS += --disable-universal_binary + else + # leave previous logic as is + C_CXX_FLAGS += -arch arm64 + LFLAGS += -arch arm64 + WX_CONFIGURE_FLAGS += --enable-universal_binary=arm64,x86_64 + endif endif WXCONFIG_CFLAGS += -gfull diff --git a/src/Volume/Volume.make b/src/Volume/Volume.make index b6d9e99e..c02bbdf1 100644 --- a/src/Volume/Volume.make +++ b/src/Volume/Volume.make @@ -37,6 +37,7 @@ endif ifeq "$(ENABLE_WOLFCRYPT)" "0" ifeq "$(PLATFORM)" "MacOSX" +ifneq "$(COMPILE_ASM)" "false" OBJSEX += ../Crypto/Aes_asm.oo OBJS += ../Crypto/Aes_hw_cpu.o OBJS += ../Crypto/Aescrypt.o @@ -76,6 +77,7 @@ else ifeq "$(CPU_ARCH)" "x64" else OBJS += ../Crypto/Aescrypt.o endif +endif ifeq "$(GCC_GTEQ_430)" "1" OBJSSSE41 += ../Crypto/blake2s_SSE41.osse41 @@ -129,6 +131,7 @@ VolumeLibrary: Volume.a ifeq "$(ENABLE_WOLFCRYPT)" "0" ifeq "$(PLATFORM)" "MacOSX" +ifneq "$(COMPILE_ASM)" "false" ../Crypto/Aes_asm.oo: ../Crypto/Aes_x86.asm ../Crypto/Aes_x64.asm @echo Assembling $(<F) $(AS) $(ASFLAGS32) -o ../Crypto/Aes_x86.o ../Crypto/Aes_x86.asm @@ -137,7 +140,7 @@ ifeq "$(PLATFORM)" "MacOSX" rm -fr ../Crypto/Aes_x86.o ../Crypto/Aes_x64.o ../Crypto/Twofish_asm.oo: ../Crypto/Twofish_x64.S @echo Assembling $(<F) - $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Twofish_asm.oo ../Crypto/Twofish_x64.S + $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Twofish_asm.oo ../Crypto/Twofish_x64.S ../Crypto/Camellia_asm.oo: ../Crypto/Camellia_x64.S @echo Assembling $(<F) $(AS) $(ASFLAGS64) -p gas -o ../Crypto/Camellia_asm.oo ../Crypto/Camellia_x64.S @@ -173,5 +176,6 @@ ifeq "$(PLATFORM)" "MacOSX" $(AS) $(ASFLAGS64) -o ../Crypto/sha512_sse4.oo ../Crypto/sha512_sse4_x64.asm endif endif +endif include $(BUILD_INC)/Makefile.inc |