Verified Commit be851923 authored by Richard Pospesel's avatar Richard Pospesel Committed by Pier Angelo Vendrame
Browse files

TB 41089: Add tor-browser build scripts + Makefile to tor-browser

parent c3dd1ef5
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -351,3 +351,6 @@ mobile/android/annotations/bin/

# Ignore generated log files under media/libvpx
media/libvpx/config/**/config.log

# Ignore binary base of Tor Browser
.binaries
+1 −0
Original line number Diff line number Diff line
android-env.sh
+59 −0
Original line number Diff line number Diff line
.DEFAULT_GOAL := all

# one of armv7 aarch64 x86 x86_64
ARCH := aarch64
ANDROID_ARCH := $(ARCH)
ifeq ($(ANDROID_ARCH),aarch64)
  ANDROID_ARCH := arm64-v8a
endif
ifeq ($(ANDROID_ARCH),armv7)
  ANDROID_ARCH := armeabi-v7a
endif

OS="${shell uname}"

# https://stackoverflow.com/questions/18136918/how-to-get-current-relative-directory-of-your-makefile
mkfile_path := "$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))"

DEV_ROOT = "$(mkfile_path)/../.."

clobber: env
	./clobber.sh $(DEV_ROOT) $(ARCH)

config: env
	./config.sh $(DEV_ROOT) $(ARCH)

geckoview: env
	./build-geckoview.sh $(DEV_ROOT) $(ARCH)

# These targets do not depend on GeckoView so that you can build only Fenix if
# you are not changing GV code.
fenix-release: env
	./build-fenix.sh $(DEV_ROOT) $(ARCH) Release
fenix-beta: env
	./build-fenix.sh $(DEV_ROOT) $(ARCH) Beta
fenix-nightly: env
	./build-fenix.sh $(DEV_ROOT) $(ARCH) Nightly
fenix-debug: env
	./build-fenix.sh $(DEV_ROOT) $(ARCH) Debug

env:
	test -e android-env.sh || { echo "copy android-env-...-template.sh to android-env.sh and edit appropriatly"; exit 1; }

install-release:
	adb install "$(DEV_ROOT)/mobile/android/fenix/app/build/outputs/apk/fenix/release/app-fenix-$(ANDROID_ARCH)-release-signed.apk"
install-beta:
	adb install "$(DEV_ROOT)/mobile/android/fenix/app/build/outputs/apk/fenix/beta/app-fenix-$(ANDROID_ARCH)-beta-signed.apk"
install-nightly:
	adb install "$(DEV_ROOT)/mobile/android/fenix/app/build/outputs/apk/fenix/nightly/app-fenix-$(ANDROID_ARCH)-nightly-signed.apk"

all: env geckoview fenix-nightly install-nightly
all-release: env geckoview fenix-release install-release
all-beta: env geckoview fenix-beta install-beta

jslint:
	./jslint.sh $(DEV_ROOT) $(JS)

clean:
	rm -rf $(BUILD_OUTPUT)
+6 −0
Original line number Diff line number Diff line
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export ANDROID_HOME=$HOME/.mozbuild/android-sdk-linux/ # or $HOME/Android/Sdk/ # Or .../android-toolchain/android-sdk-linux if you extract android-toolchain from tor-browser-build
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/r26c/ # for 128esr
export GRADLE_HOME=/FULL/PATH/TO/tor-browser-build/out/gradle/gradle-8.8 # Or the version that we currently use
export LOCAL_DEV_BUILD=1
export PATH=/FULL/PATH/TO/tor-browser-build/out/clang/clang-16.x.y-arm/bin/:$PATH # prepend our newly built and assembled clang to the path so it gets used to build geckoview
+6 −0
Original line number Diff line number Diff line
export JAVA_HOME=/opt/homebrew/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home/ # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk@11/libexec/openjdk.jdk/Contents/Home/ for x86_64.
export ANDROID_HOME=$HOME/Library/Android/sdk # or $HOME/.mozbuild/android-sdk-macosx/
export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/23.2.8568313 # will need to download NDK 23.2.8568313 via android studio
export GRADLE_HOME=/opt/homebrew/Cellar/gradle@7/7.6.4 # for arm64 or /usr/local/Cellar/gradle@7/7.6.4 for x86_64. Make sure the version is up to date
export LOCAL_DEV_BUILD=1
export PATH=$ANDROID_HOME/ndk/25.2.9519653/toolchains/llvm/prebuilt/darwin-x86_64/bin/:$PATH # prepend android studios latest ndk to the path so it's clang gets used to build geckoview. NDK 25.2.9519653 uses clang 14.0.7, ideally we'd use clang 16 (to be the same as Linux) but that's not an option yet for android studio. NDK 26.1.10909125 uses clang 17.0.2, which we should evaluate with the esr128 migration
Loading