# Go support for Protocol Buffers - Google's data interchange format
#
# Copyright 2010 The Go Authors. All rights reserved.
# http://code.google.com/p/goprotobuf/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.PHONY: nuke regenerate tests clean install gofmt
install:
go install ./proto
go install ./gogoproto
go install ./protoc-gen-gogo
go install ./fieldpath/fieldpath-gen
go install ./fieldpath
go install ./pbpath
all: clean install regenerate gofmt install tests
clean:
go clean ./...
nuke:
go clean -i ./...
gofmt:
gofmt -l -s -w .
regenerate:
make -C protoc-gen-gogo/descriptor regenerate
make -C protoc-gen-gogo/plugin regenerate
make -C gogoproto regenerate
make -C fieldpath/fieldpath-gen regenerate
make -C proto/testdata regenerate
make -C test regenerate
make -C test/example regenerate
make -C test/unrecognized regenerate
make -C test/group regenerate
make -C test/unrecognizedgroup regenerate
make -C test/enumstringer regenerate
make -C test/unmarshalmerge regenerate
make -C test/moredefaults regenerate
make -C test/issue8 regenerate
gofmt -l -s -w .
tests:
go test -v ./test
go test -v ./proto
go test -v ./fieldpath
go test -v ./io
go test -v ./test/embedconflict
go test -v ./test/defaultconflict
go test -v ./test/unrecognized
go test -v ./test/group
go test -v ./test/unrecognizedgroup
go test -v ./test/enumstringer
go test -v ./test/unmarshalmerge
go test -v ./test/moredefaults
go test -v ./test/issue8
go test -v ./test/example
go test -v ./test/dashfilename
go test -v ./parser
drone:
sudo apt-get install protobuf-compiler
git clone https://code.google.com/p/gogoprotobuf
(cd $(GOPATH) && svn checkout http://protobuf.googlecode.com/svn/tags/2.4.1/ protobuf-readonly)
mv $(GOPATH)/protobuf-readonly/src/google $(GOPATH)/src/google
(cd $(GOPATH)/src/code.google.com/p/gogoprotobuf && make all)
(cd $(GOPATH)/src && protoc -I=. --cpp_out=. ./code.google.com/p/gogoprotobuf/gogoproto/gogo.proto)
(cd $(GOPATH)/src && g++ -I$(GOPATH)/src -c -o $(GOPATH)/src/code.google.com/p/gogoprotobuf/gogoproto/gogo.pb.o $(GOPATH)/src/code.google.com/p/gogoprotobuf/gogoproto/gogo.pb.cc)
testall: tests
make -C protoc-gen-gogo/testdata test
go test -v ./test/mixmatch
bench:
(cd test/mixbench && go build .)
(cd test/mixbench && ./mixbench)