Files
livekit/Makefile
2020-11-03 22:01:54 -08:00

82 lines
1.6 KiB
Makefile

# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin
else
GOBIN=$(shell go env GOBIN)
endif
build: server client
client: generate
@{ \
echo "building client" ;\
mkdir -p bin ;\
cd cmd/cli ;\
go build -i -o ../../bin/livekit-cli ;\
}
server: generate
@{ \
echo "building server" ;\
mkdir -p bin ;\
cd cmd/server ;\
go build -i -o ../../bin/livekit-server ;\
}
generate: wire
@{ \
echo "wiring" ;\
cd cmd/server ;\
$(WIRE) ;\
}
GO_TARGET=proto/livekit
proto: protoc protoc-gen-go twirp-gen
@{ \
mkdir -p $(GO_TARGET) ;\
protoc --go_out=$(GO_TARGET) --twirp_out=$(GO_TARGET) \
--go_opt=paths=source_relative \
--twirp_opt=paths=source_relative \
--plugin=$(PROTOC_GEN_GO) \
-I=proto \
proto/room.proto proto/model.proto ;\
protoc --go_out=$(GO_TARGET) \
--go_opt=paths=source_relative \
-I=proto \
proto/rtc.proto ;\
}
protoc:
ifeq (, $(shell which protoc))
echo "protoc is required, and is not installed"
endif
protoc-gen-go:
ifeq (, $(shell which protoc-gen-go))
@{ \
echo "installing go protobuf plugin" ;\
go install google.golang.org/protobuf/cmd/protoc-gen-go ;\
}
endif
twirp-gen:
ifeq (, $(shell which protoc-gen-twirp))
@{ \
echo "installing twirp protobuf plugin" ;\
go install github.com/twitchtv/twirp/protoc-gen-twirp ;\
}
endif
wire:
ifeq (, $(shell which wire))
@{ \
echo "installing wire" ;\
go install github.com/google/wire/cmd/wire ;\
}
WIRE=$(GOBIN)/wire
else
WIRE=$(shell which wire)
endif