From 4fbdc2cdabcf3cd2ed7c33731e1d009a8f6f5c64 Mon Sep 17 00:00:00 2001 From: Thomas Groman Date: Sat, 9 May 2020 15:46:26 -0700 Subject: updated build documentation to reflect mach changes --- BUILD | 51 ++++++++++++++++++++++++++++++ doc/mozconfig.example | 60 +++++++++++++++++++++++++++++++++++ webbrowser/doc/BUILD | 68 ---------------------------------------- webbrowser/doc/mozconfig.example | 35 --------------------- 4 files changed, 111 insertions(+), 103 deletions(-) create mode 100644 BUILD create mode 100644 doc/mozconfig.example delete mode 100644 webbrowser/doc/BUILD delete mode 100644 webbrowser/doc/mozconfig.example diff --git a/BUILD b/BUILD new file mode 100644 index 0000000..5d1a8b7 --- /dev/null +++ b/BUILD @@ -0,0 +1,51 @@ +1. Install build dependencies + +Python 2.7.X +Autoconf 2.13 +Yasm 1.2.0 or newer +Perl +Gnu C Compiler version 4.9.3 or newer (9.X.X reccomended) + +2. Install runtime dependencies + +libXt +zip +freetype +fontconfig +glibc +libffi +dbus +dbus-glib +gtk+2 +alsa-lib +jack2 +ffmpeg + +3. prepare git submodule(s) + +$ git submodule init && git submodule update + + +copy Mach build system example config into the root of webbrowser +as '.mozconfig' + +$ cp doc/mozconfig.example .mozconfig + +Optionally adjust .mozconfig to better suit your needs. + +$ cd .. + +4. compile, test, and package Web Browser + +./mach build + +if this completes successfully you can test your build before packaging it + +./mach run + +if all is well package it + +./mach package + +and then install the resulting distrobution tarball on your system. +the tarball will be stored in the object directory/dist you set in .mozconfig diff --git a/doc/mozconfig.example b/doc/mozconfig.example new file mode 100644 index 0000000..adf03a9 --- /dev/null +++ b/doc/mozconfig.example @@ -0,0 +1,60 @@ +# Where stuff is on the system +mk_add_options PYTHON=/usr/bin/python2 +mk_add_options AUTOCONF=/usr/bin/autoconf-2.13 + +# Clear this if not a 64bit build +_BUILD_64=1 + +# Set GTK Version to 2 or 3 +_GTK_VERSION=2 + +mk_add_options AUTOCLOBBER=1 +mk_add_options MOZ_OBJDIR=/home/$USER/build/wbbuild/ +ac_add_options --enable-application=webbrowser +ac_add_options --x-libraries=/usr/lib + +# Compiler Optimizations +# Note: add -march= for a CPU optimized build. +# see https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html +ac_add_options --enable-optimize="-O2 -pipe -ftree-parallelize-loops=4 -lgomp -fopenmp" +ac_add_options --enable-ccache + +# Libraries +ac_add_options --enable-default-toolkit=cairo-gtk2 +ac_add_options --enable-jemalloc +ac_add_options --enable-strip +ac_add_options --enable-devtools +ac_add_options --with-pthreads +ac_add_options --enable-hardware-aec-ns +ac_add_options --enable-bundled-fonts + +# Features +ac_add_options --disable-tests +ac_add_options --disable-eme +ac_add_options --disable-parental-controls +ac_add_options --disable-accessibility +ac_add_options --disable-gamepad +ac_add_options --disable-necko-wifi +ac_add_options --disable-updater +ac_add_options --disable-sync +ac_add_options --disable-mozril-geoloc +# !!!WARNING!!! WebRTC is very complex and leaks your IP when using a VPN. +# It is disabled by default for this reason, However enabling is required +# if you want to use wb for web conferencing. I _strongly_ suggest not using +# a web browser for telecommunication and using something like Mumble or Qtox +# instead, but if you absolutely need it, here it is. +ac_add_options --disable-webrtc + +# Audio Subsystems +ac_add_options --disable-pulseaudio +ac_add_options --enable-alsa +ac_add_options --enable-jack + +# Processor architecure specific build options +if [ -n "$_BUILD_64" ]; then + ac_add_options --x-libraries=/usr/lib64 +else + ac_add_options --x-libraries=/usr/lib +fi + +export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION diff --git a/webbrowser/doc/BUILD b/webbrowser/doc/BUILD deleted file mode 100644 index 7b5eba8..0000000 --- a/webbrowser/doc/BUILD +++ /dev/null @@ -1,68 +0,0 @@ -1. Install build dependencies - -Python 2.7.X -Autoconf 2.13 -Yasm 1.2.0 or newer -Perl -Gnu C Compiler version 4.9.3 or newer (9.X.X reccomended) - -2. Install runtime dependencies - -* Note that to make your life easier, check DEPEND.yourdistrobution for -commands you can copypaste into your terminal instead of looking of -looking up package names by hand - -libXt -zip -freetype -fontconfig -glibc -libffi -dbus -dbus-glib -gtk+2 -alsa-lib -jack2 -libvpx (1.7.X reccomended. 1.8.X is untested) -ffmpeg - -3. clone and checkout code repositories - -clone the Universal XUL Platform codebase somewhere - -$ git clone https://github.com/MoonchildProductions/UXP.git - -checkout the supported Web Browser supported PM_RELEASE snapshot. -You can check what is the latest supported release by looking at -webbrowser/config/version.txt . In this example we will use 2.8.1 - -$ cd UXP -$ git checkout PM28.8.2_Release - -clone the web browser application repo into the 'application' folder - -$ cd application -$ git clone https://git.nuegia.net/webbrowser.git - -copy the example Mach build system config into the root of UXP - -$ cp webbrowser/doc/mozconfig.example ../.mozconfig - -Optionally adjust .mozconfig to better fit your needs -then go to the root of UXP - -$ cd .. - -4. compile, test, and package Web Browser - -./mach build - -if this completes successfully you can test your build before packaging it - -./mach run - -if all is well package it - -./mach package - -and then install the resulting distrobution tarball on your system. diff --git a/webbrowser/doc/mozconfig.example b/webbrowser/doc/mozconfig.example deleted file mode 100644 index 360921a..0000000 --- a/webbrowser/doc/mozconfig.example +++ /dev/null @@ -1,35 +0,0 @@ -mk_add_options AUTOCLOBBER=1 -mk_add_options MOZ_OBJDIR=/home/$USER/build/wbbuild/ -ac_add_options --enable-application=webbrowser -ac_add_options --x-libraries=/usr/lib - -# Compiler Optimizations -ac_add_options --enable-optimize="-O2 -pipe" -ac_add_options --enable-ccache - -# Libraries -ac_add_options --enable-default-toolkit=cairo-gtk2 -ac_add_options --enable-jemalloc -ac_add_options --enable-strip -ac_add_options --with-pthreads -#ac_add_options --with-system-libevent -ac_add_options --enable-hardware-aec-ns -ac_add_options --with-system-libvpx -ac_add_options --enable-bundled-fonts - -# Features -ac_add_options --disable-tests -ac_add_options --disable-eme -ac_add_options --disable-parental-controls -ac_add_options --disable-accessibility -ac_add_options --disable-gamepad -ac_add_options --disable-necko-wifi -ac_add_options --disable-updater -ac_add_options --disable-sync -ac_add_options --disable-webrtc -ac_add_options --disable-mozril-geoloc - -# Audio Subsystems -ac_add_options --disable-pulseaudio -ac_add_options --enable-alsa -ac_add_options --enable-jack -- cgit v1.2.3