diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/PACKAGING-GTK | 15 | ||||
-rw-r--r-- | docs/UnimplementedJavascript.md | 17 | ||||
-rw-r--r-- | docs/env.sh | 398 | ||||
-rw-r--r-- | docs/quick-start.md | 24 |
4 files changed, 279 insertions, 175 deletions
diff --git a/docs/PACKAGING-GTK b/docs/PACKAGING-GTK index 4eab25b96..b81bc6162 100644 --- a/docs/PACKAGING-GTK +++ b/docs/PACKAGING-GTK @@ -64,18 +64,19 @@ =================== You may also want to change NetSurf's user agent string to include the - name of your distribution. The user agent string is build by a function + name of your distribution. The user agent string is built by a function kept in utils/useragent.c - you'll want to change the macro called NETSURF_UA_FORMAT_STRING. It's processed via sprintf, so keep that in - mind when changing it. The first two printf parameters are major and minor - version numbers, the second two are OS name (uname -s) and architecture - (uname -m). You might want change this to something like: + mind when changing it. The first format parameter is the OS name (uname -s) + and the remainder are major and minor version numbers. You might want + to change this to something like: - "NetSurf/%d.%d (%s; %s; Debian GNU/Linux)" + "Mozilla/5.0 (%s; Debian GNU/Linux) NetSurf/%d.%d" - or similar. Please don't be tempted to mention Mozilla or similar - let's - let that lie die. + or similar. + Note that the "Mozilla/5.0" prefix is a requirement to enable modern + web standards on many websites. It should not be removed or modified. Home page URL =============== diff --git a/docs/UnimplementedJavascript.md b/docs/UnimplementedJavascript.md index 4a2f02e3f..0d21dc852 100644 --- a/docs/UnimplementedJavascript.md +++ b/docs/UnimplementedJavascript.md @@ -170,7 +170,6 @@ getter | Element::namespaceURI(string); getter | Element::prefix(string); getter | Element::localName(string); getter | Element::tagName(string); -getter | Element::classList(user); getter | Element::outerHTML(string); setter | Element::outerHTML(string); getter | Element::children(user); @@ -597,10 +596,6 @@ method | CanvasRenderingContext2D::arcTo(); method | CanvasRenderingContext2D::rect(); method | CanvasRenderingContext2D::arc(); method | CanvasRenderingContext2D::ellipse(); -getter | CanvasRenderingContext2D::width(unsigned long); -setter | CanvasRenderingContext2D::width(unsigned long); -getter | CanvasRenderingContext2D::height(unsigned long); -setter | CanvasRenderingContext2D::height(unsigned long); getter | CanvasRenderingContext2D::currentTransform(user); setter | CanvasRenderingContext2D::currentTransform(user); getter | CanvasRenderingContext2D::globalAlpha(double); @@ -647,8 +642,6 @@ method | HTMLCanvasElement::setContext(); method | HTMLCanvasElement::transferControlToProxy(); method | HTMLCanvasElement::toDataURL(); method | HTMLCanvasElement::toBlob(); -setter | HTMLCanvasElement::width(unsigned long); -setter | HTMLCanvasElement::height(unsigned long); getter | HTMLTemplateElement::content(user); getter | HTMLScriptElement::async(boolean); setter | HTMLScriptElement::async(boolean); @@ -1344,14 +1337,6 @@ method | HTMLAllCollection::namedItem(); getter | HTMLAllCollection::length(unsigned long); method | XMLSerializer::serializeToString(); method | DOMParser::parseFromString(); -method | DOMTokenList::item(); -method | DOMTokenList::contains(); -method | DOMTokenList::add(); -method | DOMTokenList::remove(); -method | DOMTokenList::toggle(); -getter | DOMTokenList::length(unsigned long); -getter | DOMSettableTokenList::value(string); -setter | DOMSettableTokenList::value(string); method | NodeFilter::acceptNode(); method | TreeWalker::parentNode(); method | TreeWalker::firstChild(); @@ -1560,5 +1545,5 @@ method | EventListener::handleEvent(); method | CustomEvent::initCustomEvent(); getter | CustomEvent::detail(any); - 1554 unimplemented bindings + 1539 unimplemented bindings diff --git a/docs/env.sh b/docs/env.sh index 690822036..1f0c200b7 100644 --- a/docs/env.sh +++ b/docs/env.sh @@ -4,7 +4,7 @@ # # NetSurf Library, tool and browser development support script # -# Copyright 2013-2017 Vincent Sanders <vince@netsurf-browser.org> +# Copyright 2013-2024 Vincent Sanders <vince@netsurf-browser.org> # Released under the MIT Licence # # This script allows NetSurf and its libraries to be built without @@ -16,6 +16,8 @@ # HOST sets the target architecture for library builds # BUILD sets the building machines architecture # TARGET_WORKSPACE is the workspace directory to keep the sandboxes +# TARGET_TOOLKIT controls development package installs +# can be unset or one of framebuffer, gtk2, gtk3, qt6 # # The use of HOST and BUILD here is directly comprable to the GCC # usage as described at: @@ -26,18 +28,12 @@ # OS Package installation ############################################################################### -# deb packages for dpkg based systems -NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libpng-dev libjpeg-dev" -NS_TOOL_DEB="flex bison libhtml-parser-perl" -if [ "x${NETSURF_GTK_MAJOR}" = "x3" ]; then - NS_GTK_DEB="libgtk-3-dev librsvg2-dev" -else - NS_GTK_DEB="libgtk2.0-dev librsvg2-dev" -fi +# deb packages for dpkg based systems # apt get commandline to install necessary dev packages -ns-apt-get-install() +ns_apt_get_install() { + NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libexpat1-dev libpng-dev libjpeg-dev" LIBCURL_OPENSSL_CONFLICTS="$(/usr/bin/apt-cache show libcurl4-openssl-dev | grep Conflicts | grep -o libssl1.0-dev)" if [ "x${LIBCURL_OPENSSL_CONFLICTS}" != "x" ]; then NS_DEV_DEB="${NS_DEV_DEB} libssl-dev" @@ -46,123 +42,186 @@ ns-apt-get-install() else NS_DEV_DEB="${NS_DEV_DEB} libssl-dev" fi - sudo apt-get install $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_GTK_DEB}) + + NS_TOOL_DEB="flex bison libhtml-parser-perl" + + case "${TARGET_TOOLKIT}" in + gtk2) + NS_TK_DEB="libgtk2.0-dev librsvg2-dev" + ;; + gtk3) + NS_TK_DEB="libgtk-3-dev librsvg2-dev" + ;; + qt6) + NS_TK_DEB="qt6-base-dev-tools qt6-base-dev" + ;; + framebuffer) + NS_TK_DEB="libfreetype-dev libsdl1.2-compat-dev libxcb-util-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev" + ;; + *) + NS_TK_DEB="" + ;; + esac + + sudo apt-get install --no-install-recommends $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_TK_DEB}) } # packages for yum installer RPM based systems (tested on fedora 20) -NS_DEV_YUM_RPM="git gcc pkgconfig expat-devel openssl-devel gperf libcurl-devel perl-Digest-MD5-File libjpeg-devel libpng-devel" -NS_TOOL_YUM_RPM="flex bison" -if [ "x${NETSURF_GTK_MAJOR}" = "x3" ]; then - NS_GTK_YUM_RPM="gtk3-devel librsvg2-devel" -else - NS_GTK_YUM_RPM="gtk2-devel librsvg2-devel" -fi - # yum commandline to install necessary dev packages -ns-yum-install() +ns_yum_install() { - sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM} ${NS_GTK_YUM_RPM}) + NS_DEV_YUM_RPM="git gcc pkgconfig expat-devel openssl-devel gperf libcurl-devel perl-Digest-MD5-File libjpeg-devel libpng-devel" + + NS_TOOL_YUM_RPM="flex bison" + + case "${TARGET_TOOLKIT}" in + gtk2) + NS_TK_YUM_RPM="gtk2-devel librsvg2-devel" + ;; + gtk3) + NS_TK_YUM_RPM="gtk3-devel librsvg2-devel" + ;; + *) + NS_TK_YUM_RPM="" + ;; + esac + + sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM} ${NS_TK_YUM_RPM}) } # packages for dnf installer RPM based systems (tested on fedora 25) -NS_DEV_DNF_RPM="java-1.8.0-openjdk-headless gcc clang pkgconfig libcurl-devel libjpeg-devel expat-devel libpng-devel openssl-devel gperf perl-HTML-Parser" -NS_TOOL_DNF_RPM="git flex bison ccache screen" -if [ "x${NETSURF_GTK_MAJOR}" = "x3" ]; then - NS_GTK_DNF_RPM="gtk3-devel" -else - NS_GTK_DNF_RPM="gtk2-devel" -fi - # dnf commandline to install necessary dev packages -ns-dnf-install() +ns_dnf_install() { - sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM} ${NS_GTK_DNF_RPM}) + NS_DEV_DNF_RPM="java-1.8.0-openjdk-headless gcc clang pkgconfig libcurl-devel libjpeg-devel expat-devel libpng-devel openssl-devel gperf perl-HTML-Parser" + + NS_TOOL_DNF_RPM="git flex bison ccache screen" + + case "${TARGET_TOOLKIT}" in + gtk2) + NS_TK_DNF_RPM="gtk2-devel" + ;; + gtk3) + NS_TK_DNF_RPM="gtk3-devel" + ;; + *) + NS_TK_DNF_RPM="" + ;; + esac + + sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM} ${NS_TK_DNF_RPM}) } # packages for zypper installer RPM based systems (tested on openSUSE leap 42) -NS_DEV_ZYP_RPM="java-1_8_0-openjdk-headless gcc clang pkgconfig libcurl-devel libjpeg-devel libexpat-devel libpng-devel openssl-devel gperf perl-HTML-Parser" -NS_TOOL_ZYP_RPM="git flex bison gperf ccache screen" -if [ "x${NETSURF_GTK_MAJOR}" = "x3" ]; then - NS_GTK_ZYP_RPM="gtk3-devel" -else - NS_GTK_ZYP_RPM="gtk2-devel" -fi - # zypper commandline to install necessary dev packages -ns-zypper-install() +ns_zypper_install() { - sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM} ${NS_GTK_ZYP_RPM}) + NS_DEV_ZYP_RPM="java-1_8_0-openjdk-headless gcc clang pkgconfig libcurl-devel libjpeg-devel libexpat-devel libpng-devel openssl-devel gperf perl-HTML-Parser" + + NS_TOOL_ZYP_RPM="git flex bison gperf ccache screen" + + case "${TARGET_TOOLKIT}" in + gtk2) + NS_TK_ZYP_RPM="gtk2-devel" + ;; + gtk3) + NS_TK_ZYP_RPM="gtk3-devel" + ;; + *) + NS_TK_ZYP_RPM="" + ;; + esac + + sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM} ${NS_TK_ZYP_RPM}) } # Packages for Haiku install - -# Haiku secondary arch suffix: -# empty for primary (gcc2 on x86) or "_x86" for gcc4 secondary. -HA=_x86 - -NS_DEV_HPKG="devel:libcurl${HA} devel:libpng${HA} devel:libjpeg${HA} devel:libcrypto${HA} devel:libiconv${HA} devel:libexpat${HA} cmd:pkg_config${HA} cmd:gperf html_parser" - # pkgman commandline to install necessary dev packages -ns-pkgman-install() +ns_pkgman_install() { + # Haiku secondary arch suffix: + # empty for primary (gcc2 on x86) or "_x86" for gcc4 secondary. + HA=_x86 + + NS_DEV_HPKG="devel:libcurl${HA} devel:libpng${HA} devel:libjpeg${HA} devel:libcrypto${HA} devel:libiconv${HA} devel:libexpat${HA} cmd:pkg_config${HA} cmd:gperf html_parser" + pkgman install $(echo ${NS_DEV_HPKG}) } # MAC OS X -NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng" - -ns-macport-install() +ns_macport_install() { + NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng" + PATH=/opt/local/bin:/opt/local/sbin:$PATH sudo /opt/local/bin/port install $(echo ${NS_DEV_MACPORT}) } # packages for FreeBSD install -NS_DEV_FREEBSDPKG="gmake curl" - # FreeBSD package install -ns-freebsdpkg-install() +ns_freebsdpkg_install() { + NS_DEV_FREEBSDPKG="gmake curl" pkg install $(echo ${NS_DEV_FREEBSDPKG}) } # generic for help text -NS_DEV_GEN="git, gcc, pkgconfig, expat library, openssl library, libcurl, perl, perl MD5 digest, libjpeg library, libpng library" -NS_TOOL_GEN="flex tool, bison tool" -if [ "x${NETSURF_GTK_MAJOR}" = "x3" ]; then - NS_GTK_GEN="gtk+ 3 toolkit library, librsvg2 library" -else - NS_GTK_GEN="gtk+ 2 toolkit library, librsvg2 library" -fi +ns_generic_install() +{ + NS_DEV_GEN="git, gcc, pkgconfig, expat library, openssl library, libcurl, perl, perl MD5 digest, libjpeg library, libpng library" + + NS_TOOL_GEN="flex tool, bison tool" + + case "${TARGET_TOOLKIT}" in + gtk2) + NS_TK_GEN="gtk+ 2 toolkit library, librsvg2 library" + ;; + gtk3) + NS_TK_GEN="gtk+ 3 toolkit library, librsvg2 library" + ;; + qt6) + NS_TK_GEN="qt6 toolkit dev library" + ;; + framebuffer) + NS_TK_GEN="freetype2 dev library, SDL 1.2 compatible library" + ;; + *) + NS_TK_DEB="" + ;; + esac + + echo "Unable to determine OS packaging system in use." + echo "Please ensure development packages are installed for:" + echo ${NS_DEV_GEN}"," ${NS_TOOL_GEN}"," ${NS_TK_GEN} +} -# Generic OS package install + +# OS package install # looks for package managers and tries to use them if present ns-package-install() { if [ -x "/usr/bin/zypper" ]; then - ns-zypper-install + ns_zypper_install elif [ -x "/usr/bin/apt-get" ]; then - ns-apt-get-install + ns_apt_get_install elif [ -x "/usr/bin/dnf" ]; then - ns-dnf-install + ns_dnf_install elif [ -x "/usr/bin/yum" ]; then - ns-yum-install + ns_yum_install elif [ -x "/bin/pkgman" ]; then - ns-pkgman-install + ns_pkgman_install elif [ -x "/opt/local/bin/port" ]; then - ns-macport-install + ns_macport_install elif [ -x "/usr/sbin/pkg" ]; then - ns-freebsdpkg-install + ns_freebsdpkg_install else - echo "Unable to determine OS packaging system in use." - echo "Please ensure development packages are installed for:" - echo ${NS_DEV_GEN}"," ${NS_TOOL_GEN}"," ${NS_GTK_GEN} + ns_generic_install fi } @@ -170,38 +229,33 @@ ns-package-install() # Setup environment ############################################################################### -# find which command used to find everything else on path -if [ -x /usr/bin/which ]; then - WHICH_CMD=/usr/bin/which -else - WHICH_CMD=/bin/which -fi - # environment parameters # The system doing the building if [ "x${BUILD}" = "x" ]; then - BUILD_CC=$(${WHICH_CMD} cc) + BUILD_CC=$(command -v cc) if [ $? -eq 0 ];then - BUILD=$(cc -dumpmachine) + BUILD=$(${BUILD_CC} -dumpmachine) else echo "Unable to locate a compiler. Perhaps run ns-package-install" return 1 fi fi -# Get the host build if unset +# work out the host compiler to use if [ "x${HOST}" = "x" ]; then + # no host ABI set so host is the same as build unless a target ABI is set if [ "x${TARGET_ABI}" = "x" ]; then HOST=${BUILD} else HOST=${TARGET_ABI} fi else + # attempt to find host tools with the specificed ABI HOST_CC_LIST="/opt/netsurf/${HOST}/cross/bin/${HOST}-cc /opt/netsurf/${HOST}/cross/bin/${HOST}-gcc ${HOST}-cc ${HOST}-gcc" for HOST_CC_V in $(echo ${HOST_CC_LIST});do - HOST_CC=$(${WHICH_CMD} ${HOST_CC_V}) - if [ "x${HOST_CC}" != "x" ];then + HOST_CC=$(command -v ${HOST_CC_V}) + if [ $? -eq 0 ];then break fi done @@ -236,10 +290,20 @@ if [ "x${USE_CPUS}" = "x" ]; then USE_CPUS="-j${NCPUS}" fi -# The GTK version to build for (either 2 or 3 currently) -if [ "x${NETSURF_GTK_MAJOR}" = "x" ]; then - NETSURF_GTK_MAJOR=2 -fi +# Setup GTK major version if required (either 2 or 3 currently) +case "${TARGET_TOOLKIT}" in + gtk2) + NETSURF_GTK_MAJOR=2 + ;; + gtk3) + NETSURF_GTK_MAJOR=3 + ;; + *) + if [ "x${NETSURF_GTK_MAJOR}" = "x" ]; then + NETSURF_GTK_MAJOR=2 + fi + ;; +esac # report to user echo "BUILD=${BUILD}" @@ -263,64 +327,81 @@ NS_GIT="git://git.netsurf-browser.org" # Buildsystem: everything depends on this NS_BUILDSYSTEM="buildsystem" -# internal libraries all frontends require (order is important) -NS_INTERNAL_LIBS="libwapcaplet libparserutils libhubbub libdom libcss libnsgif libnsbmp libutf8proc libnsutils libnspsl libnslog" - -# The browser itself -NS_BROWSER="netsurf" +NS_TOOLS="" +NS_FRONTEND_LIBS="" +BUILD_TARGET="${TARGET:-netsurf}" -# add target specific libraries -case "${HOST}" in - i586-pc-haiku) - # tools required to build the browser for haiku (beos) - NS_TOOLS="nsgenbind" - # libraries required for the haiku target abi - NS_FRONTEND_LIBS="libsvgtiny" +case "$BUILD_TARGET" in + libhubbub) + NS_INTERNAL_LIBS="libparserutils" ;; - *arwin*) - # tools required to build the browser for OS X - NS_TOOLS="" - # libraries required for the Darwin target abi - NS_FRONTEND_LIBS="libsvgtiny libnsfb" - ;; - arm-unknown-riscos) - # tools required to build the browser for RISC OS - NS_TOOLS="nsgenbind" - # libraries required for the risc os target abi - NS_FRONTEND_LIBS="libsvgtiny librufl libpencil librosprite" - ;; - *-atari-mint) - # tools required to build the browser for atari - NS_TOOLS="" - # libraries required for the atari frontend - NS_FRONTEND_LIBS="" - ;; - ppc-amigaos) - # default tools required to build the browser - NS_TOOLS="nsgenbind" - # default additional internal libraries - NS_FRONTEND_LIBS="libsvgtiny" - ;; - m68k-unknown-amigaos) - # default tools required to build the browser - NS_TOOLS="nsgenbind" - # default additional internal libraries - NS_FRONTEND_LIBS="libsvgtiny" + + libdom) + NS_INTERNAL_LIBS="libwapcaplet libparserutils libhubbub" ;; - *-unknown-freebsd*) - # tools required to build the browser for freebsd - NS_TOOLS="" - # libraries required for the freebsd frontend - NS_FRONTEND_LIBS="" - # select gnu make - MAKE=gmake + + libcss) + NS_INTERNAL_LIBS="libwapcaplet libparserutils" ;; - *) - # default tools required to build the browser - NS_TOOLS="nsgenbind" - # default additional internal libraries - NS_FRONTEND_LIBS="libsvgtiny libnsfb" + + netsurf) + # internal libraries all frontends require (order is important) + NS_INTERNAL_LIBS="libwapcaplet libparserutils libhubbub libdom libcss libnsgif libnsbmp libutf8proc libnsutils libnspsl libnslog" + + # add target specific libraries + case "${HOST}" in + i586-pc-haiku) + # tools required to build the browser for haiku (beos) + NS_TOOLS="nsgenbind" + # libraries required for the haiku target abi + NS_FRONTEND_LIBS="libsvgtiny" + ;; + *arwin*) + # tools required to build the browser for OS X + NS_TOOLS="" + # libraries required for the Darwin target abi + NS_FRONTEND_LIBS="libsvgtiny libnsfb" + ;; + arm-unknown-riscos|arm-riscos-gnueabi*) + # tools required to build the browser for RISC OS + NS_TOOLS="nsgenbind" + # libraries required for the risc os target abi + NS_FRONTEND_LIBS="libsvgtiny librufl libpencil librosprite" + ;; + *-atari-mint) + # tools required to build the browser for atari + NS_TOOLS="" + # libraries required for the atari frontend + NS_FRONTEND_LIBS="" + ;; + ppc-amigaos) + # default tools required to build the browser + NS_TOOLS="nsgenbind" + # default additional internal libraries + NS_FRONTEND_LIBS="libsvgtiny" + ;; + m68k-unknown-amigaos) + # default tools required to build the browser + NS_TOOLS="nsgenbind" + # default additional internal libraries + NS_FRONTEND_LIBS="libsvgtiny" + ;; + *-unknown-freebsd*) + # tools required to build the browser for freebsd + NS_TOOLS="" + # libraries required for the freebsd frontend + NS_FRONTEND_LIBS="" + # select gnu make + MAKE=gmake + ;; + *) + # default tools required to build the browser + NS_TOOLS="nsgenbind" + # default additional internal libraries + NS_FRONTEND_LIBS="libsvgtiny libnsfb" + ;; + esac ;; esac @@ -331,7 +412,7 @@ export MAKE # git pull in all repos parameters are passed to git pull ns-pull() { - for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS} ${NS_TOOLS} ${NS_BROWSER}) ; do + for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS} ${NS_TOOLS} ${BUILD_TARGET}) ; do echo -n " GIT: Pulling ${REPO}: " if [ -f "${TARGET_WORKSPACE}/${REPO}/.git/config" ]; then (cd ${TARGET_WORKSPACE}/${REPO} && git pull $*; ) @@ -344,19 +425,42 @@ ns-pull() # clone all repositories ns-clone() { + SHALLOW="" + SKIP="" + while [ $# -gt 0 ] + do + case "$1" in + -d | --deps-only) SKIP="${BUILD_TARGET}" + shift + ;; + -s | --shallow) SHALLOW="--depth 1" + shift + ;; + -*) echo "Error: Unknown option: $1" >&2 + exit 1 + ;; + *) # No more options + break + ;; + esac + done + mkdir -p ${TARGET_WORKSPACE} - for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS} ${NS_RISCOS_LIBS} ${NS_TOOLS} ${NS_BROWSER}) ; do + for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS} ${NS_RISCOS_LIBS} ${NS_TOOLS} ${BUILD_TARGET}) ; do + [ "x${REPO}" != "x${SKIP}" ] || continue echo -n " GIT: Cloning ${REPO}: " if [ -f ${TARGET_WORKSPACE}/${REPO}/.git/config ]; then echo "Repository already present" else - (cd ${TARGET_WORKSPACE} && git clone ${NS_GIT}/${REPO}.git; ) + (cd ${TARGET_WORKSPACE} && git clone ${SHALLOW} ${NS_GIT}/${REPO}.git; ) fi done # put current env.sh in place in workspace - if [ ! -f "${TARGET_WORKSPACE}/env.sh" -a -f ${TARGET_WORKSPACE}/${NS_BROWSER}/docs/env.sh ]; then - cp ${TARGET_WORKSPACE}/${NS_BROWSER}/docs/env.sh ${TARGET_WORKSPACE}/env.sh + if [ "x$NS_BROWSER" = "x" ]; then + if [ ! -f "${TARGET_WORKSPACE}/env.sh" -a -f ${TARGET_WORKSPACE}/${NS_BROWSER}/docs/env.sh ]; then + cp ${TARGET_WORKSPACE}/${NS_BROWSER}/docs/env.sh ${TARGET_WORKSPACE}/env.sh + fi fi } diff --git a/docs/quick-start.md b/docs/quick-start.md index 449b956a3..c10d5a25a 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -1,7 +1,7 @@ Quick Build Steps for NetSurf ============================= -Last Updated: 21st January 2020 +Last Updated: 28th May 2024 This document provides steps for building NetSurf. @@ -30,15 +30,29 @@ Grab a temporary env.sh Install any packages you need ----------------------------- -Installs all packages required to build NetSurf and the NetSurf project -libraries. +The package install helper installs all packages required to build NetSurf + and the NetSurf project libraries. By *default* no libraries for a graphical + toolkit are installed. $ ns-package-install +If NetSurf is to be built to target a graphical toolkit the development + packages for that toolkit can be installed by setting the TARGET_TOOLKIT + variable to one of framebuffer, gtk2, gtk3 or qt6 + + $ TARGET_TOOLKIT=qt6 ns-package-install + If your package manager is not supported, you will have to install third party packages manually. +Update the environment settings after package installation +---------------------------------------------------------- + + $ unset HOST + $ source env.sh + + Get the NetSurf project source code from Git -------------------------------------------- @@ -50,8 +64,8 @@ Local copies may be easily obtained with the ns-clone command. $ ns-clone -Build and install our project libraries ---------------------------------------- +Build and install NetSurf project libraries +------------------------------------------- Updates NetSurf project library sources to latest, builds and installs them. |