Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/30ee1f630a09a718a6fb603f69f257e0ae244b8c
...commit
http://git.netsurf-browser.org/netsurf.git/commit/30ee1f630a09a718a6fb603f69f257e0ae244b8c
...tree
http://git.netsurf-browser.org/netsurf.git/tree/30ee1f630a09a718a6fb603f69f257e0ae244b8c
The branch, master has been updated
via 30ee1f630a09a718a6fb603f69f257e0ae244b8c (commit)
from 7a8a8cafd58f4b43a9cda898063d0b0a7ee4e18f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commit/?id=30ee1f630a09a718a6fb603f69f257e0ae244b8c
commit 30ee1f630a09a718a6fb603f69f257e0ae244b8c
Author: Vincent Sanders <[email protected]>
Commit: Vincent Sanders <[email protected]>
Improve cross compile tool building and error reporting
This improves error reporting when no compiler is available. Improves
handling of compiling of build machine tools (nsgenbind) in a cross
compile environment.
diff --git a/docs/env.sh b/docs/env.sh
index e7c6cd0..bb2cbab 100644
--- a/docs/env.sh
+++ b/docs/env.sh
@@ -1,16 +1,164 @@
#!/bin/sh
#
-# NetSurf Library, tool and browser support script
+# NetSurf Library, tool and browser development support script
#
-# Usage: source env.sh
-# TARGET_ABI / HOST sets the target for library builds
-# TARGET_WORKSPACE is the workspace directory to keep the sandboxes
+# Copyright 2013-2017 Vincent Sanders <[email protected]>
+# Released under the MIT Licence
#
# This script allows NetSurf and its libraries to be built without
# requiring installation into a system.
#
-# Copyright 2013 Vincent Sanders <[email protected]>
-# Released under the MIT Licence
+# Usage: source env.sh
+#
+# Controlling variables
+# HOST sets the target architecture for library builds
+# BUILD sets the building machines architecture
+# TARGET_WORKSPACE is the workspace directory to keep the sandboxes
+#
+# The use of HOST and BUILD here is directly comprable to the GCC
+# usage as described at:
+# http://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
+#
+
+###############################################################################
+# OS Package installation
+###############################################################################
+
+# deb packages for dpkg based systems
+NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libssl-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
+
+# apt get commandline to install necessary dev packages
+ns-apt-get-install()
+{
+ sudo apt-get install $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_GTK_DEB})
+}
+
+
+# packages for yum installer RPM based systems (tested on fedora 20)
+NS_DEV_YUM_RPM="git gcc pkgconfig libexpat-devel openssl-devel 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()
+{
+ sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM}
${NS_GTK_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()
+{
+ sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM}
${NS_GTK_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()
+{
+ sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM}
${NS_GTK_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()
+{
+ pkgman install $(echo ${NS_DEV_HPKG})
+}
+
+
+# MAC OS X
+NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng"
+
+ns-macport-install()
+{
+ 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()
+{
+ 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
+
+# Generic 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
+ elif [ -x "/usr/bin/apt-get" ]; then
+ ns-apt-get-install
+ elif [ -x "/usr/bin/dnf" ]; then
+ ns-dnf-install
+ elif [ -x "/usr/bin/yum" ]; then
+ ns-yum-install
+ elif [ -x "/bin/pkgman" ]; then
+ ns-pkgman-install
+ elif [ -x "/opt/local/bin/port" ]; then
+ ns-macport-install
+ elif [ -x "/usr/sbin/pkg" ]; then
+ 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}
+ fi
+}
+
+###############################################################################
+# Setup environment
+###############################################################################
# find which command used to find everything else on path
if [ -x /usr/bin/which ]; then
@@ -19,11 +167,17 @@ else
WHICH_CMD=/bin/which
fi
-# parameters
+# environment parameters
# The system doing the building
if [ "x${BUILD}" = "x" ]; then
- BUILD=$(cc -dumpmachine)
+ BUILD_CC=$(${WHICH_CMD} cc)
+ if [ $? -eq 0 ];then
+ 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
@@ -55,10 +209,12 @@ else
unset HOST_CC_LIST HOST_CC_V HOST_CC HOST_CC_MACHINE
fi
+# set up a default target workspace
if [ "x${TARGET_WORKSPACE}" = "x" ]; then
TARGET_WORKSPACE=${HOME}/dev-netsurf/workspace
fi
+# set up default parallelism
if [ "x${USE_CPUS}" = "x" ]; then
NCPUS=$(getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN
2>/dev/null)
NCPUS="${NCPUS:-1}"
@@ -71,20 +227,17 @@ if [ "x${NETSURF_GTK_MAJOR}" = "x" ]; then
NETSURF_GTK_MAJOR=2
fi
-
-###############################################################################
-# Setup environment
-###############################################################################
-
+# report to user
echo "BUILD=${BUILD}"
echo "HOST=${HOST}"
echo "TARGET_WORKSPACE=${TARGET_WORKSPACE}"
echo "USE_CPUS=${USE_CPUS}"
export PREFIX=${TARGET_WORKSPACE}/inst-${HOST}
+export BUILD_PREFIX=${TARGET_WORKSPACE}/inst-${BUILD}
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}::
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PREFIX}/lib
-export PATH=${PATH}:${PREFIX}/bin
+export PATH=${PATH}:${BUILD_PREFIX}/bin
export NETSURF_GTK_MAJOR
# make tool
@@ -159,140 +312,6 @@ esac
export MAKE
-################ OS Package installation ################
-
-# deb packages for dpkg based systems
-NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libssl-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
-
-# apt get commandline to install necessary dev packages
-ns-apt-get-install()
-{
- sudo apt-get install $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_GTK_DEB})
-}
-
-
-# packages for yum installer RPM based systems (tested on fedora 20)
-NS_DEV_YUM_RPM="git gcc pkgconfig libexpat-devel openssl-devel 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()
-{
- sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM}
${NS_GTK_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()
-{
- sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM}
${NS_GTK_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()
-{
- sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM}
${NS_GTK_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()
-{
- pkgman install $(echo ${NS_DEV_HPKG})
-}
-
-
-# MAC OS X
-NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng"
-
-ns-macport-install()
-{
- 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()
-{
- 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
-
-# Generic 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
- elif [ -x "/usr/bin/apt-get" ]; then
- ns-apt-get-install
- elif [ -x "/usr/bin/dnf" ]; then
- ns-dnf-install
- elif [ -x "/usr/bin/yum" ]; then
- ns-yum-install
- elif [ -x "/bin/pkgman" ]; then
- ns-pkgman-install
- elif [ -x "/opt/local/bin/port" ]; then
- ns-macport-install
- elif [ -x "/usr/sbin/pkg" ]; then
- 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}
- fi
-}
-
################ Development helpers ################
# git pull in all repos parameters are passed to git pull
@@ -330,17 +349,21 @@ ns-clone()
# issues a make command to all libraries
ns-make-libs()
{
- for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_TOOLS}); do
+ for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS}
${NS_FRONTEND_LIBS}); do
echo " MAKE: make -C ${REPO} $USE_CPUS $*"
- ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} $USE_CPUS $*
+ ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} HOST=${HOST} $USE_CPUS $*
if [ $? -ne 0 ]; then
return $?
fi
done
+}
- for REPO in $(echo ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS}); do
+# issues make command for all tools
+ns-make-tools()
+{
+ for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_TOOLS}); do
echo " MAKE: make -C ${REPO} $USE_CPUS $*"
- ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} HOST=${HOST} $USE_CPUS $*
+ ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} PREFIX=${BUILD_PREFIX}
HOST=${BUILD} $USE_CPUS $*
if [ $? -ne 0 ]; then
return $?
fi
@@ -359,6 +382,7 @@ ns-pull-install()
{
ns-pull $*
+ ns-make-tools install
ns-make-libs install
}
-----------------------------------------------------------------------
Summary of changes:
docs/env.sh | 328 ++++++++++++++++++++++++++++++++---------------------------
1 file changed, 176 insertions(+), 152 deletions(-)
diff --git a/docs/env.sh b/docs/env.sh
index e7c6cd0..bb2cbab 100644
--- a/docs/env.sh
+++ b/docs/env.sh
@@ -1,16 +1,164 @@
#!/bin/sh
#
-# NetSurf Library, tool and browser support script
+# NetSurf Library, tool and browser development support script
#
-# Usage: source env.sh
-# TARGET_ABI / HOST sets the target for library builds
-# TARGET_WORKSPACE is the workspace directory to keep the sandboxes
+# Copyright 2013-2017 Vincent Sanders <[email protected]>
+# Released under the MIT Licence
#
# This script allows NetSurf and its libraries to be built without
# requiring installation into a system.
#
-# Copyright 2013 Vincent Sanders <[email protected]>
-# Released under the MIT Licence
+# Usage: source env.sh
+#
+# Controlling variables
+# HOST sets the target architecture for library builds
+# BUILD sets the building machines architecture
+# TARGET_WORKSPACE is the workspace directory to keep the sandboxes
+#
+# The use of HOST and BUILD here is directly comprable to the GCC
+# usage as described at:
+# http://gcc.gnu.org/onlinedocs/gccint/Configure-Terms.html
+#
+
+###############################################################################
+# OS Package installation
+###############################################################################
+
+# deb packages for dpkg based systems
+NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libssl-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
+
+# apt get commandline to install necessary dev packages
+ns-apt-get-install()
+{
+ sudo apt-get install $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_GTK_DEB})
+}
+
+
+# packages for yum installer RPM based systems (tested on fedora 20)
+NS_DEV_YUM_RPM="git gcc pkgconfig libexpat-devel openssl-devel 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()
+{
+ sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM}
${NS_GTK_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()
+{
+ sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM}
${NS_GTK_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()
+{
+ sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM}
${NS_GTK_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()
+{
+ pkgman install $(echo ${NS_DEV_HPKG})
+}
+
+
+# MAC OS X
+NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng"
+
+ns-macport-install()
+{
+ 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()
+{
+ 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
+
+# Generic 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
+ elif [ -x "/usr/bin/apt-get" ]; then
+ ns-apt-get-install
+ elif [ -x "/usr/bin/dnf" ]; then
+ ns-dnf-install
+ elif [ -x "/usr/bin/yum" ]; then
+ ns-yum-install
+ elif [ -x "/bin/pkgman" ]; then
+ ns-pkgman-install
+ elif [ -x "/opt/local/bin/port" ]; then
+ ns-macport-install
+ elif [ -x "/usr/sbin/pkg" ]; then
+ 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}
+ fi
+}
+
+###############################################################################
+# Setup environment
+###############################################################################
# find which command used to find everything else on path
if [ -x /usr/bin/which ]; then
@@ -19,11 +167,17 @@ else
WHICH_CMD=/bin/which
fi
-# parameters
+# environment parameters
# The system doing the building
if [ "x${BUILD}" = "x" ]; then
- BUILD=$(cc -dumpmachine)
+ BUILD_CC=$(${WHICH_CMD} cc)
+ if [ $? -eq 0 ];then
+ 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
@@ -55,10 +209,12 @@ else
unset HOST_CC_LIST HOST_CC_V HOST_CC HOST_CC_MACHINE
fi
+# set up a default target workspace
if [ "x${TARGET_WORKSPACE}" = "x" ]; then
TARGET_WORKSPACE=${HOME}/dev-netsurf/workspace
fi
+# set up default parallelism
if [ "x${USE_CPUS}" = "x" ]; then
NCPUS=$(getconf _NPROCESSORS_ONLN 2>/dev/null || getconf NPROCESSORS_ONLN
2>/dev/null)
NCPUS="${NCPUS:-1}"
@@ -71,20 +227,17 @@ if [ "x${NETSURF_GTK_MAJOR}" = "x" ]; then
NETSURF_GTK_MAJOR=2
fi
-
-###############################################################################
-# Setup environment
-###############################################################################
-
+# report to user
echo "BUILD=${BUILD}"
echo "HOST=${HOST}"
echo "TARGET_WORKSPACE=${TARGET_WORKSPACE}"
echo "USE_CPUS=${USE_CPUS}"
export PREFIX=${TARGET_WORKSPACE}/inst-${HOST}
+export BUILD_PREFIX=${TARGET_WORKSPACE}/inst-${BUILD}
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}::
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${PREFIX}/lib
-export PATH=${PATH}:${PREFIX}/bin
+export PATH=${PATH}:${BUILD_PREFIX}/bin
export NETSURF_GTK_MAJOR
# make tool
@@ -159,140 +312,6 @@ esac
export MAKE
-################ OS Package installation ################
-
-# deb packages for dpkg based systems
-NS_DEV_DEB="build-essential pkg-config git gperf libcurl3-dev libssl-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
-
-# apt get commandline to install necessary dev packages
-ns-apt-get-install()
-{
- sudo apt-get install $(echo ${NS_DEV_DEB} ${NS_TOOL_DEB} ${NS_GTK_DEB})
-}
-
-
-# packages for yum installer RPM based systems (tested on fedora 20)
-NS_DEV_YUM_RPM="git gcc pkgconfig libexpat-devel openssl-devel 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()
-{
- sudo yum -y install $(echo ${NS_DEV_YUM_RPM} ${NS_TOOL_YUM_RPM}
${NS_GTK_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()
-{
- sudo dnf install $(echo ${NS_DEV_DNF_RPM} ${NS_TOOL_DNF_RPM}
${NS_GTK_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()
-{
- sudo zypper install -y $(echo ${NS_DEV_ZYP_RPM} ${NS_TOOL_ZYP_RPM}
${NS_GTK_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()
-{
- pkgman install $(echo ${NS_DEV_HPKG})
-}
-
-
-# MAC OS X
-NS_DEV_MACPORT="git expat openssl curl libjpeg-turbo libpng"
-
-ns-macport-install()
-{
- 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()
-{
- 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
-
-# Generic 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
- elif [ -x "/usr/bin/apt-get" ]; then
- ns-apt-get-install
- elif [ -x "/usr/bin/dnf" ]; then
- ns-dnf-install
- elif [ -x "/usr/bin/yum" ]; then
- ns-yum-install
- elif [ -x "/bin/pkgman" ]; then
- ns-pkgman-install
- elif [ -x "/opt/local/bin/port" ]; then
- ns-macport-install
- elif [ -x "/usr/sbin/pkg" ]; then
- 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}
- fi
-}
-
################ Development helpers ################
# git pull in all repos parameters are passed to git pull
@@ -330,17 +349,21 @@ ns-clone()
# issues a make command to all libraries
ns-make-libs()
{
- for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_TOOLS}); do
+ for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_INTERNAL_LIBS}
${NS_FRONTEND_LIBS}); do
echo " MAKE: make -C ${REPO} $USE_CPUS $*"
- ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} $USE_CPUS $*
+ ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} HOST=${HOST} $USE_CPUS $*
if [ $? -ne 0 ]; then
return $?
fi
done
+}
- for REPO in $(echo ${NS_INTERNAL_LIBS} ${NS_FRONTEND_LIBS}); do
+# issues make command for all tools
+ns-make-tools()
+{
+ for REPO in $(echo ${NS_BUILDSYSTEM} ${NS_TOOLS}); do
echo " MAKE: make -C ${REPO} $USE_CPUS $*"
- ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} HOST=${HOST} $USE_CPUS $*
+ ${MAKE} -C ${TARGET_WORKSPACE}/${REPO} PREFIX=${BUILD_PREFIX}
HOST=${BUILD} $USE_CPUS $*
if [ $? -ne 0 ]; then
return $?
fi
@@ -359,6 +382,7 @@ ns-pull-install()
{
ns-pull $*
+ ns-make-tools install
ns-make-libs install
}
--
NetSurf Browser
_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org