Commit 8cdd7075 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 fda8ad47
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -376,3 +376,6 @@ toolkit/crashreporter/minidump-analyzer/analyzer-test/target/

# Ignore personal preferences files
CLAUDE.local.md

# Ignore binary base of Tor Browser
.binaries
+1 −0
Original line number Diff line number Diff line
android-env.sh
+60 −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:
	./install-fenix.sh $(DEV_ROOT) $(ARCH) $(ANDROID_ARCH) release
install-beta:
	./install-fenix.sh $(DEV_ROOT) $(ARCH) $(ANDROID_ARCH) beta
install-nightly:
	./install-fenix.sh $(DEV_ROOT) $(ARCH) $(ANDROID_ARCH) nightly
install-debug:
	./install-fenix.sh $(DEV_ROOT) $(ARCH) $(ANDROID_ARCH) debug

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-17-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=$HOME/.mozbuild/android-ndk-r28b/ # for 140esr
export GRADLE_HOME=$HOME/.mozbuild/gradle-8.14.3 # not included by default, need to download from https://gradle.org/releases/ and put the extracted directory "gradle-8.14.3" into ~/.mozbuild/
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@17/libexec/openjdk.jdk/Contents/Home # for arm64. Or JAVA_HOME=/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home for x86_64.
export ANDROID_HOME=$HOME/.mozbuild/android-sdk-macosx
export ANDROID_NDK_HOME=$HOME/.mozbuild/android-ndk-r28b # for ESR140
export GRADLE_HOME=$HOME/.mozbuild/gradle-8.14.3 # not included by default, need to download from https://gradle.org/releases/ and put the extracted directory "gradle-8.14.3" into ~/.mozbuild/
export LOCAL_DEV_BUILD=1
export PATH=$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin:$PATH # prepend mozbuilds NDK to the PATH so it's clang gets used to build geckoview
Loading