From 5d0321291f4df297b0d9f9837099a36cdf1c83b6 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Tue, 13 Jun 2017 16:40:05 +0200 Subject: Linux/MacOSX: Modify Makefile to separate between build and packaging. Add install target for local installation. --- src/Build/build_veracrypt_linux.sh | 8 ++++---- src/Build/build_veracrypt_macosx.sh | 8 ++++---- src/Main/Main.make | 31 ++++++++++++++++++++++++++++++- src/Makefile | 5 +++++ 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/Build/build_veracrypt_linux.sh b/src/Build/build_veracrypt_linux.sh index 8e16ebfe..deed925b 100755 --- a/src/Build/build_veracrypt_linux.sh +++ b/src/Build/build_veracrypt_linux.sh @@ -31,17 +31,17 @@ echo "Building GUI version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildGui -make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 +make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package # Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 clean && make WXSTATIC=1 +# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package echo "Building console version of VeraCrypt" # this will be the temporary wxWidgets directory export WX_BUILD_DIR=$PARENTDIR/wxBuildConsole -make WXSTATIC=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 +make WXSTATIC=1 NOGUI=1 wxbuild && make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package # Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 +# make WXSTATIC=1 NOGUI=1 clean && make WXSTATIC=1 NOGUI=1 && make WXSTATIC=1 NOGUI=1 package diff --git a/src/Build/build_veracrypt_macosx.sh b/src/Build/build_veracrypt_macosx.sh index f8146422..ba325d4b 100755 --- a/src/Build/build_veracrypt_macosx.sh +++ b/src/Build/build_veracrypt_macosx.sh @@ -12,8 +12,8 @@ SOURCEPATH=$(cd "$(dirname "$SCRIPTPATH/../.")"; pwd) # directory where the VeraCrypt project has been checked out PARENTDIR=$(cd "$(dirname "$SCRIPTPATH/../../../.")"; pwd) -# the sources of wxWidgets 3.0.2 must be extracted to the parent directory -export WX_ROOT=$PARENTDIR/wxWidgets-3.0.2 +# 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" # this will be the temporary wxWidgets directory @@ -27,7 +27,7 @@ echo "Using MacOSX SDK $VC_OSX_TARGET" cd $SOURCEPATH echo "Building VeraCrypt" -make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 +make WXSTATIC=1 wxbuild && make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package # Uncomment below and comment line above to reuse existing wxWidgets build -# make WXSTATIC=1 clean && make WXSTATIC=1 +# make WXSTATIC=1 clean && make WXSTATIC=1 && make WXSTATIC=1 package diff --git a/src/Main/Main.make b/src/Main/Main.make index 7041d66e..b7c107a5 100755 --- a/src/Main/Main.make +++ b/src/Main/Main.make @@ -152,6 +152,7 @@ endif endif ifeq "$(PLATFORM)" "MacOSX" +prepare: $(APPNAME) mkdir -p $(APPNAME).app/Contents/MacOS $(APPNAME).app/Contents/Resources/doc/HTML -rm -f $(APPNAME).app/Contents/MacOS/$(APPNAME) -rm -f $(APPNAME).app/Contents/MacOS/$(APPNAME)_console @@ -179,6 +180,11 @@ endif echo -n APPLTRUE >$(APPNAME).app/Contents/PkgInfo sed -e 's/_VERSION_/$(patsubst %a,%.1,$(patsubst %b,%.2,$(TC_VERSION)))/' ../Build/Resources/MacOSX/Info.plist.xml >$(APPNAME).app/Contents/Info.plist codesign -s "Developer ID Application: Mounir IDRASSI" --timestamp $(APPNAME).app + +install: prepare + cp -R $(APPNAME).app /Applications/. + +package: prepare /usr/local/bin/packagesbuild $(PWD)/Setup/MacOSX/veracrypt.pkgproj productsign --sign "Developer ID Installer: Mounir IDRASSI" --timestamp "$(PWD)/Setup/MacOSX/VeraCrypt $(TC_VERSION).pkg" $(PWD)/Setup/MacOSX/VeraCrypt_$(TC_VERSION).pkg rm -f $(APPNAME)_$(TC_VERSION).dmg @@ -197,7 +203,7 @@ endif ifeq "$(PLATFORM)" "Linux" -ifeq "$(TC_BUILD_CONFIG)" "Release" +prepare: $(APPNAME) mkdir -p $(PWD)/Setup/Linux/usr/bin mkdir -p $(PWD)/Setup/Linux/usr/share/$(APPNAME)/doc/HTML cp $(PWD)/Main/$(APPNAME) $(PWD)/Setup/Linux/usr/bin/$(APPNAME) @@ -214,6 +220,11 @@ ifndef TC_NO_GUI endif +install: prepare + cp -R $(PWD)/Setup/Linux/usr /. + +ifeq "$(TC_BUILD_CONFIG)" "Release" +package: prepare tar cfz $(PWD)/Setup/Linux/$(PACKAGE_NAME) --directory $(PWD)/Setup/Linux usr @rm -fr $(INTERNAL_INSTALLER_NAME) @@ -237,6 +248,24 @@ endif endif +ifeq "$(PLATFORM)" "FreeBSD" +install: $(APPNAME) + mkdir -p /usr/share/$(APPNAME)/doc/HTML + cp $(PWD)/Main/$(APPNAME) /usr/bin/$(APPNAME) + cp $(PWD)/Setup/Linux/$(APPNAME)-uninstall.sh /usr/bin/$(APPNAME)-uninstall.sh + chmod +x /usr/bin/$(APPNAME)-uninstall.sh + cp $(PWD)/License.txt /usr/share/$(APPNAME)/doc/License.txt + cp $(PWD)/../doc/html/* "/usr/share/$(APPNAME)/doc/HTML" + +ifndef TC_NO_GUI + mkdir -p /usr/share/applications + mkdir -p /usr/share/pixmaps + cp $(PWD)/Resources/Icons/VeraCrypt-256x256.xpm /usr/share/pixmaps/$(APPNAME).xpm + cp $(PWD)/Setup/Linux/$(APPNAME).desktop /usr/share/applications/$(APPNAME).desktop +endif + +endif + $(OBJS): $(PCH) Resources.o: $(RESOURCES) diff --git a/src/Makefile b/src/Makefile index 3b6c0867..c1c4f02f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -362,6 +362,11 @@ all clean: export LIBS="$(BASE_DIR)/$$DIR/$$PROJ.a $$LIBS"; \ done +install: + $(MAKE) -C Main -f Main.make NAME=Main install + +package: + $(MAKE) -C Main -f Main.make NAME=Main package #------ wxWidgets build ------ -- cgit v1.2.3