summaryrefslogtreecommitdiffstats
path: root/docs/part-2/2_xds-agent/1_build.md
diff options
context:
space:
mode:
authorJohann CAHIER <johann.cahier@iot.bzh>2018-10-09 10:45:08 +0200
committerJohann CAHIER <johann.cahier@iot.bzh>2018-10-11 13:38:39 +0200
commitbbbe9c168526bbb729022f9de903aff5690b328d (patch)
treee20b465e03d23d4c85a62dbfbc2aa1d8f8c13a4f /docs/part-2/2_xds-agent/1_build.md
parent48374d29bcc3bcf2b055b49d56eac49247772271 (diff)
Improves documentation
* Describes better available source tree sharing method (between xds-agent and xds-server), and which to prefer depending on the deployment setup. * Gives indication about how to pass RSYNC_TARGET and RSYNC_PREFIX env vars to the helloworld-native-application build process. * Swap chapter order (build before config) Change-Id: Ie4c22f277a59b0405744d71b0fadff67c5d5d025 Signed-off-by: Johann CAHIER <johann.cahier@iot.bzh>
Diffstat (limited to 'docs/part-2/2_xds-agent/1_build.md')
-rw-r--r--docs/part-2/2_xds-agent/1_build.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/docs/part-2/2_xds-agent/1_build.md b/docs/part-2/2_xds-agent/1_build.md
new file mode 100644
index 0000000..842f582
--- /dev/null
+++ b/docs/part-2/2_xds-agent/1_build.md
@@ -0,0 +1,90 @@
+# Build xds-agent from scratch
+
+## Dependencies
+
+Install [Go](https://golang.org/doc/install), [npm](https://www.npmjs.com/),
+[nodejs](https://nodejs.org/en/) and some other tools.
+
+Refer to [Prerequisites chapter](../1_Prerequisites.html) for more details.
+
+## Building
+
+Clone sources under `$ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds/xds-agent`
+in order respect directory hierarchy that match Go package import logic (see
+[How to Write Go Code](https://golang.org/doc/code.html) for more details).
+
+Then use delivered Makefile :
+
+```bash
+# Declare ROOTDIR, can be any location (for example xds-build)
+ROOTDIR=$HOME/xds-build
+
+# Create directory hierarchy that match Go package import logic
+mkdir -p $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+cd $ROOTDIR/src/gerrit.automotivelinux.org/gerrit/src/xds
+
+# Clone sources
+git clone https://gerrit.automotivelinux.org/gerrit/src/xds/xds-agent
+# or git clone ssh://YOUR_USERNAME@gerrit.automotivelinux.org:29418/src/xds/xds-agent
+
+# Build xds-agent
+# (note that GOPATH will correctly be set by Makefile)
+cd xds-agent
+make all
+```
+
+Generate xds-agent packages / tarballs for Linux, MacOS, Windows
+
+```bash
+make package-all
+```
+
+And to install `xds-agent` (by default in `/opt/AGL/xds/agent`):
+
+```bash
+make install
+```
+
+<!-- section-warning -->
+**Warning:**
+
+Makefile install rule and default values in configuration file are set
+to fit the docker setup.
+
+So you may need to adapt some settings when you want to install xds-agent natively.
+<!-- end-section-warning -->
+
+<!-- section-note -->
+**Note:**
+
+Used `DESTDIR` to specify another install directory
+
+```bash
+make install DESTDIR=$HOME/opt/xds-agent
+```
+
+<!-- end-section-note -->
+
+### Cross build
+
+For example on a Linux machine to cross-build for Windows, just follow these steps.
+
+The first time you need to install all the windows-amd64 standard packages on
+your system with
+
+```bash
+# List all supported OS / ARCH
+go tool dist list
+
+# Install all standard packages for another OS/ARCH (eg. windows amd64)
+GOOS=windows GOARCH=amd64 go install -v -a std
+```
+
+Then compile and package xds-agent using provided makefile
+
+```bash
+export GOOS=windows
+export GOARCH=amd64
+make all
+make package
+```