Add support for string types
[govpp.git] / Makefile
1 VERSION ?= $(shell git describe --always --tags --dirty)
2
3 BINAPI_DIR ?= $(shell cd examples/bin_api && pwd)
4 VPP_VERSION := $(shell apt-cache show vpp | grep Version: | cut -d' ' -f2-)
5
6 all: test build examples
7
8 install:
9         @echo "=> installing ${VERSION}"
10         go install ./cmd/binapi-generator
11
12 build:
13         @echo "=> building ${VERSION}"
14         cd cmd/binapi-generator && go build -v
15
16 examples:
17         @echo "=> building examples"
18         cd examples/cmd/simple-client && go build -v
19         cd examples/cmd/stats-client && go build -v
20         cd examples/cmd/perf-bench && go build -v
21
22 test:
23         @echo "=> testing"
24         go test -cover ./cmd/...
25         go test -cover ./core ./api ./codec
26
27 extras:
28         @echo "=> building extras"
29         cd extras/libmemif/examples/gopacket && go build -v
30         cd extras/libmemif/examples/icmp-responder && go build -v
31         cd extras/libmemif/examples/jumbo-frames && go build -v
32         cd extras/libmemif/examples/raw-data && go build -v
33
34 clean:
35         @echo "=> cleaning"
36         rm -f cmd/binapi-generator/binapi-generator
37         rm -f examples/cmd/perf-bench/perf-bench
38         rm -f examples/cmd/simple-client/simple-client
39         rm -f examples/cmd/stats-client/stats-client
40         rm -f extras/libmemif/examples/gopacket/gopacket
41         rm -f extras/libmemif/examples/icmp-responder/icmp-responder
42         rm -f extras/libmemif/examples/jumbo-frames/jumbo-frames
43         rm -f extras/libmemif/examples/raw-data/raw-data
44
45 generate-binapi:
46         @echo "=> generating binapi"
47         @go generate "${BINAPI_DIR}"
48
49 generate: install
50         @echo "=> generating code"
51         cd examples && go generate ./...
52
53 update-vppapi:
54         @echo "=> updating API JSON files using installed VPP (${VPP_VERSION})"
55         @cd ${BINAPI_DIR} && find . -type f -name '*.api.json' -exec cp /usr/share/vpp/api/'{}' '{}' \;
56         @echo ${VPP_VERSION} > ${BINAPI_DIR}/VPP_VERSION
57
58 lint:
59         @echo "=> running linter"
60         @golint ./... | grep -v vendor | grep -v bin_api || true
61
62 .PHONY: all \
63         install build examples test \
64         extras clean generate lint