# Set GTK Version to 2 or 3 _GTK_VERSION=3 # 16 jobs for 16 cores mk_add_options MOZ_MAKE_FLAGS="-j6" # Use clang/llvm toolchain export CC="/usr/bin/clang" export CXX="/usr/bin/clang++" export AR="/usr/bin/llvm-ar" export NM="/usr/bin/llvm-nm" export RANLIB="/usr/bin/llvm-ranlib" export LD=ld.lld # Force LLVM for HOST tools as well export HOST_CC=/usr/bin/clang export HOST_CXX=/usr/bin/clang++ export HOST_AR=/usr/bin/llvm-ar export HOST_RANLIB=/usr/bin/llvm-ranlib export HOST_NM=/usr/bin/llvm-nm export HOST_LD=ld.lld # Ensure static archives always get a symbol table (__.SYMDEF). # Older Mozilla/UXP build logic assumes ar creates this implicitly, # but with ThinLTO + LLVM bitcode that is no longer guaranteed. # Without the 's' flag, ld/lld will fail with: # "archive has no index; run ranlib to add one" # This is especially critical for HOST tools (mbsdiff, mar, etc.). export ARFLAGS=crs export HOST_ARFLAGS=crs export ARFLAGS=crs export HOST_ARFLAGS=crs # ThinLTO with Clang/LLVM. -Wl,--undefined-version is needed due to differences between GNU ld and lld export LDFLAGS="-flto=thin -fuse-ld=lld -Wl,--undefined-version" # O3 for maximum optimization, -w to suppress all warnings, -flto=thin for ThinLTO ac_add_options --enable-optimize="-O3 -w -flto=thin" # Standard build options for Basilisk ac_add_options --enable-application=basilisk ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION ac_add_options --enable-jemalloc ac_add_options --enable-strip ac_add_options --enable-devtools ac_add_options --enable-av1 ac_add_options --enable-webrtc ac_add_options --enable-gamepad ac_add_options --enable-pie ac_add_options --enable-update-channel=release ac_add_options --disable-tests ac_add_options --disable-debug ac_add_options --disable-necko-wifi ac_add_options --disable-updater ac_add_options --with-pthreads ac_add_options --disable-official-branding export MOZILLA_OFFICIAL=1 ac_add_options --x-libraries=/usr/lib64 export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION export CC="clang -std=gnu89 -Wno-error=implicit-int -Wno-error=implicit-function-declaration" export CXX="clang++ -std=gnu++17" export MOZ_SOURCE_CHANGESET=iloveneedingtobodgechangesetfornoreason