Update README
[govpp.git] / docs / GENERATOR.md
index d7832ac..9cc40fc 100644 (file)
@@ -1,20 +1,46 @@
-# Binapi Generator
+# Generator
 
-## Install the binary API generator
+This document contains information about GoVPP generator which is used for generating Go bindings for VPP binary API.
+
+## Installation
+
+### Prerequisites
+
+- Go 1.13+ ([download](https://golang.org/dl))
+
+### Install via Go toolchain
+
+```shell
+# Latest version (most recent tag)
+go install git.fd.io/govpp.git/cmd/binapi-generator@latest
+
+# Development version (master branch)
+go install git.fd.io/govpp.git/cmd/binapi-generator@master
+```
+
+NOTE: Using `go install` to install programs is only supported in Go 1.16+ ([more info](https://go.dev/doc/go1.16#go-command)). For Go 1.15 or older, use `go get` instead of `go install`.
+
+### Install from source
 
 ```sh
-# Install binapi generator
+# Clone repository anywhere
+git clone https://gerrit.fd.io/r/govpp.git
+cd govpp
+
+# Install binapi-generator
 make install-generator
 ```
 
-> NOTE: This installs `binapi-generator` to `$GOPATH/bin` directory, ensure 
-> it is in your `$PATH` before running the command.
+NOTE: There is no need to setup or clone inside `GOPATH` for Go 1.13+ ([more info](https://go.dev/doc/go1.13#modules))
+and you can simply clone the repository _anywhere_ you want.
+
+### Generating binapi
 
-## Install vpp binary artifacts
+### Install vpp binary artifacts
 
 Build locally, or download from packagecloud. Read more: https://fd.io/docs/vpp/master/gettingstarted/installing
 
-## Generate binapi (Go bindings)
+### Generate binapi (Go bindings)
 
 Generating Go bindings for VPP binary API from the JSON files
 installed with the vpp binary artifacts - located in `/usr/share/vpp/api/`.
@@ -27,7 +53,7 @@ INFO[0000] Generating 203 files
 
 The generated files will be generated under `binapi` directory.
 
-## Generate VPP binary API code (Go bindings)
+### Generate VPP binary API code (Go bindings)
 
 Once you have `binapi-generator` installed, you can use it to generate Go bindings for VPP binary API
 using VPP APIs in JSON format. The JSON input can be specified as a single file (`input-file` argument), or
@@ -48,7 +74,7 @@ that are dependent on generated code using special comments:
 //go:generate binapi-generator --input-dir=bin_api --output-dir=bin_api
 ```
 
-## Tracking down generated go code for a specific binary API
+### Tracking down generated go code for a specific binary API
 
 Golang uses capitalization to indicate exported names, so you'll have
 to divide through by binapi-generator transformations. Example: