mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Add support for building under FreeBSD 11
This commit is contained in:
48
src/Build/build_veracrypt_freebsd.sh
Normal file
48
src/Build/build_veracrypt_freebsd.sh
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2013-2016 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.3
|
||||||
|
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/wxBuildGui
|
||||||
|
|
||||||
|
#gmake WXSTATIC=1 wxbuild && gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package
|
||||||
|
|
||||||
|
# Uncomment below and comment line above to reuse existing wxWidgets build
|
||||||
|
gmake WXSTATIC=1 clean && gmake WXSTATIC=1 && gmake WXSTATIC=1 package
|
||||||
|
|
||||||
|
echo "Building console version of VeraCrypt"
|
||||||
|
|
||||||
|
# this will be the temporary wxWidgets directory
|
||||||
|
export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole
|
||||||
|
|
||||||
|
#gmake WXSTATIC=1 NOGUI=1 wxbuild && gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package
|
||||||
|
|
||||||
|
# Uncomment below and comment line above to reuse existing wxWidgets build
|
||||||
|
gmake WXSTATIC=1 NOGUI=1 clean && gmake WXSTATIC=1 NOGUI=1 && gmake WXSTATIC=1 NOGUI=1 package
|
||||||
@@ -133,6 +133,25 @@ INSTALLER_NAME := veracrypt-$(TC_VERSION)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
|
|||||||
endif
|
endif
|
||||||
#-----------------------------------
|
#-----------------------------------
|
||||||
|
|
||||||
|
#------ FreeBSD package naming ------
|
||||||
|
ifeq "$(PLATFORM)" "FreeBSD"
|
||||||
|
|
||||||
|
SYSTEMNAME = $(shell uname -n)
|
||||||
|
|
||||||
|
ifdef TC_NO_GUI
|
||||||
|
INSTALLER_TYPE := console
|
||||||
|
PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_console_$(PLATFORM_ARCH).tar.gz
|
||||||
|
else
|
||||||
|
INSTALLER_TYPE := gui
|
||||||
|
PACKAGE_NAME := $(APPNAME)_$(TC_VERSION)_$(SYSTEMNAME)_$(PLATFORM_ARCH).tar.gz
|
||||||
|
endif
|
||||||
|
|
||||||
|
INTERNAL_INSTALLER_NAME := veracrypt_install_f$(SYSTEMNAME)_$(INSTALLER_TYPE)_$(CPU_ARCH).sh
|
||||||
|
INSTALLER_NAME := veracrypt-$(TC_VERSION)-$(SYSTEMNAME)-setup-$(INSTALLER_TYPE)-$(CPU_ARCH)
|
||||||
|
|
||||||
|
endif
|
||||||
|
#-----------------------------------
|
||||||
|
|
||||||
$(APPNAME): $(LIBS) $(OBJS)
|
$(APPNAME): $(LIBS) $(OBJS)
|
||||||
@echo Linking $@
|
@echo Linking $@
|
||||||
$(CXX) -o $(APPNAME) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(LFLAGS)
|
$(CXX) -o $(APPNAME) $(OBJS) $(LIBS) $(FUSE_LIBS) $(WX_LIBS) $(LFLAGS)
|
||||||
@@ -250,19 +269,50 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq "$(PLATFORM)" "FreeBSD"
|
ifeq "$(PLATFORM)" "FreeBSD"
|
||||||
install: $(APPNAME)
|
prepare: $(APPNAME)
|
||||||
mkdir -p /usr/share/$(APPNAME)/doc/HTML
|
rm -fr $(PWD)/Setup/FreeBSD/usr
|
||||||
cp $(PWD)/Main/$(APPNAME) /usr/bin/$(APPNAME)
|
mkdir -p $(PWD)/Setup/FreeBSD/usr/bin
|
||||||
cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh /usr/bin/$(APPNAME)-uninstall.sh
|
mkdir -p $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML
|
||||||
chmod +x /usr/bin/$(APPNAME)-uninstall.sh
|
cp $(PWD)/Main/$(APPNAME) $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)
|
||||||
cp $(PWD)/License.txt /usr/share/$(APPNAME)/doc/License.txt
|
cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
|
||||||
cp $(PWD)/../doc/html/* "/usr/share/$(APPNAME)/doc/HTML"
|
chmod +x $(PWD)/Setup/FreeBSD/usr/bin/$(APPNAME)-uninstall.sh
|
||||||
|
cp $(PWD)/License.txt $(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/License.txt
|
||||||
|
cp $(PWD)/../doc/html/* "$(PWD)/Setup/FreeBSD/usr/share/$(APPNAME)/doc/HTML"
|
||||||
|
|
||||||
ifndef TC_NO_GUI
|
ifndef TC_NO_GUI
|
||||||
mkdir -p /usr/share/applications
|
mkdir -p $(PWD)/Setup/FreeBSD/usr/share/applications
|
||||||
mkdir -p /usr/share/pixmaps
|
mkdir -p $(PWD)/Setup/FreeBSD/usr/share/pixmaps
|
||||||
cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm /usr/share/pixmaps/$(APPNAME).xpm
|
cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm $(PWD)/Setup/FreeBSD/usr/share/pixmaps/$(APPNAME).xpm
|
||||||
cp $(PWD)/Setup/Linux/$(APPNAME).desktop /usr/share/applications/$(APPNAME).desktop
|
cp $(PWD)/Setup/Linux/$(APPNAME).desktop $(PWD)/Setup/FreeBSD/usr/share/applications/$(APPNAME).desktop
|
||||||
|
endif
|
||||||
|
chown -R root:wheel $(PWD)/Setup/FreeBSD/usr
|
||||||
|
chmod -R go-w $(PWD)/Setup/FreeBSD/usr
|
||||||
|
|
||||||
|
|
||||||
|
install: prepare
|
||||||
|
cp -R $(CURDIR)/Setup/FreeBSD/usr $(DESTDIR)/.
|
||||||
|
|
||||||
|
ifeq "$(TC_BUILD_CONFIG)" "Release"
|
||||||
|
package: prepare
|
||||||
|
tar cfz $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) --directory $(PWD)/Setup/FreeBSD usr
|
||||||
|
|
||||||
|
@rm -fr $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "#!/bin/sh" > $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "VERSION=$(TC_VERSION)" >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "PACKAGE_TYPE=tar" >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "PACKAGE_NAME=$(PACKAGE_NAME)" >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "PACKAGE_START=1107" >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@echo "INSTALLER_TYPE=$(INSTALLER_TYPE)" >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
|
||||||
|
@cat $(PWD)/Setup/FreeBSD/veracrypt_install_template.sh >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
@cat $(PWD)/Setup/FreeBSD/$(PACKAGE_NAME) >> $(INTERNAL_INSTALLER_NAME)
|
||||||
|
chmod +x $(INTERNAL_INSTALLER_NAME)
|
||||||
|
|
||||||
|
rm -fr $(PWD)/Setup/FreeBSD/packaging
|
||||||
|
mkdir -p $(PWD)/Setup/FreeBSD/packaging
|
||||||
|
cp $(INTERNAL_INSTALLER_NAME) $(PWD)/Setup/FreeBSD/packaging/.
|
||||||
|
makeself $(PWD)/Setup/FreeBSD/packaging $(PWD)/Setup/FreeBSD/$(INSTALLER_NAME) "VeraCrypt $(TC_VERSION) $(SYSTEMNAME) Installer" ./$(INTERNAL_INSTALLER_NAME)
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
12
src/Makefile
12
src/Makefile
@@ -288,6 +288,18 @@ ifeq "$(shell uname -s)" "FreeBSD"
|
|||||||
CC := cc
|
CC := cc
|
||||||
CXX := c++
|
CXX := c++
|
||||||
|
|
||||||
|
ifeq "$(TC_BUILD_CONFIG)" "Release"
|
||||||
|
C_CXX_FLAGS += -fdata-sections -ffunction-sections -fpie
|
||||||
|
LFLAGS += -Wl,--gc-sections -pie
|
||||||
|
|
||||||
|
ifneq "$(shell ld --help 2>&1 | grep sysv | wc -l)" "0"
|
||||||
|
LFLAGS += -Wl,--hash-style=sysv
|
||||||
|
endif
|
||||||
|
|
||||||
|
WXCONFIG_CFLAGS += -fpie -fPIC
|
||||||
|
WXCONFIG_CXXFLAGS += -fpie -fPIC
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq "$(SIMD_SUPPORTED)" "1"
|
ifeq "$(SIMD_SUPPORTED)" "1"
|
||||||
CFLAGS += -msse2 -maes
|
CFLAGS += -msse2 -maes
|
||||||
CXXFLAGS += -msse2 -maes
|
CXXFLAGS += -msse2 -maes
|
||||||
|
|||||||
11
src/Setup/FreeBSD/veracrypt-uninstall.sh
Normal file
11
src/Setup/FreeBSD/veracrypt-uninstall.sh
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
V="$(mount | grep veracrypt_aux_mnt)"
|
||||||
|
[ "$V" ] && echo Error: All volumes must be dismounted first. && exit 1
|
||||||
|
|
||||||
|
rm -f /usr/bin/veracrypt
|
||||||
|
rm -f /usr/share/applications/veracrypt.desktop
|
||||||
|
rm -f /usr/share/pixmaps/veracrypt.xpm
|
||||||
|
rm -fr /usr/share/veracrypt
|
||||||
|
|
||||||
|
echo VeraCrypt uninstalled.
|
||||||
|
rm -f /usr/bin/veracrypt-uninstall.sh
|
||||||
10
src/Setup/FreeBSD/veracrypt.desktop
Normal file
10
src/Setup/FreeBSD/veracrypt.desktop
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Encoding=UTF-8
|
||||||
|
Name=VeraCrypt
|
||||||
|
GenericName=VeraCrypt
|
||||||
|
Comment=VeraCrypt
|
||||||
|
Exec=/usr/bin/veracrypt
|
||||||
|
Icon=veracrypt
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Encryption;Encryption Tools;Utility;
|
||||||
1100
src/Setup/FreeBSD/veracrypt_install_template.sh
Normal file
1100
src/Setup/FreeBSD/veracrypt_install_template.sh
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user