diff --git a/.gitignore b/.gitignore index 438bc599..4d5f7002 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ prog/weaveproxy/weaveproxy prog/sigproxy/sigproxy prog/weavewait/weavewait prog/weavewait/weavewait_noop +prog/weavewait/weavewait_nomcast prog/netcheck/netcheck prog/docker_tls_args/docker_tls_args prog/plugin/plugin @@ -56,6 +57,7 @@ prog/weaveexec/weavehosts prog/weaveexec/weaveproxy prog/weaveexec/weavewait prog/weaveexec/weavewait_noop +prog/weaveexec/weavewait_nomcast prog/weaveexec/sigproxy prog/weaveexec/netcheck prog/weaveexec/docker_tls_args diff --git a/Makefile b/Makefile index 7680e1a7..cb468e93 100644 --- a/Makefile +++ b/Makefile @@ -14,13 +14,14 @@ WEAVEPROXY_EXE=prog/weaveproxy/weaveproxy SIGPROXY_EXE=prog/sigproxy/sigproxy WEAVEWAIT_EXE=prog/weavewait/weavewait WEAVEWAIT_NOOP_EXE=prog/weavewait/weavewait_noop +WEAVEWAIT_NOMCAST_EXE=prog/weavewait/weavewait_nomcast NETCHECK_EXE=prog/netcheck/netcheck DOCKERTLSARGS_EXE=prog/docker_tls_args/docker_tls_args DOCKERPLUGIN_EXE=prog/plugin/plugin RUNNER_EXE=tools/runner/runner TEST_TLS_EXE=test/tls/tls -EXES=$(WEAVER_EXE) $(SIGPROXY_EXE) $(WEAVEPROXY_EXE) $(WEAVEWAIT_EXE) $(WEAVEWAIT_NOOP_EXE) $(NETCHECK_EXE) $(DOCKERTLSARGS_EXE) $(DOCKERPLUGIN_EXE) $(TEST_TLS_EXE) +EXES=$(WEAVER_EXE) $(SIGPROXY_EXE) $(WEAVEPROXY_EXE) $(WEAVEWAIT_EXE) $(WEAVEWAIT_NOOP_EXE) $(WEAVEWAIT_NOMCAST_EXE) $(NETCHECK_EXE) $(DOCKERTLSARGS_EXE) $(DOCKERPLUGIN_EXE) $(TEST_TLS_EXE) WEAVER_UPTODATE=.weaver.uptodate WEAVEEXEC_UPTODATE=.weaveexec.uptodate @@ -81,29 +82,37 @@ $(NETCHECK_EXE): prog/netcheck/netcheck.go # These next programs need separate rules as they fail the netgo check in # the main build stanza due to not importing net package $(SIGPROXY_EXE): prog/sigproxy/main.go -$(WEAVEWAIT_EXE): prog/weavewait/*.go net/*.go $(DOCKERTLSARGS_EXE): prog/docker_tls_args/*.go $(DOCKERPLUGIN_EXE): prog/plugin/*.go plugin/net/*.go plugin/ipam/*.go plugin/skel/*.go api/*.go common/docker/*.go $(TEST_TLS_EXE): test/tls/*.go -$(WEAVEWAIT_EXE) $(SIGPROXY_EXE) $(DOCKERTLSARGS_EXE) $(DOCKERPLUGIN_EXE) $(TEST_TLS_EXE): +$(SIGPROXY_EXE) $(DOCKERTLSARGS_EXE) $(DOCKERPLUGIN_EXE) $(TEST_TLS_EXE): go get -tags netgo ./$(@D) go build $(BUILD_FLAGS) -o $@ ./$(@D) +$(WEAVEWAIT_EXE): prog/weavewait/*.go net/*.go + go get -tags netgo ./$(@D) + go build $(BUILD_FLAGS) -tags "iface mcast" -o $@ ./$(@D) + +$(WEAVEWAIT_NOMCAST_EXE): prog/weavewait/*.go net/*.go + go get -tags netgo ./$(@D) + go build $(BUILD_FLAGS) -tags iface -o $@ ./$(@D) + $(WEAVEWAIT_NOOP_EXE): prog/weavewait/*.go go get -tags netgo ./$(@D) - go build $(BUILD_FLAGS) -tags noop -o $@ ./$(@D) + go build $(BUILD_FLAGS) -o $@ ./$(@D) $(WEAVER_UPTODATE): prog/weaver/Dockerfile $(WEAVER_EXE) $(SUDO) docker build -t $(WEAVER_IMAGE) prog/weaver touch $@ -$(WEAVEEXEC_UPTODATE): prog/weaveexec/Dockerfile prog/weaveexec/symlink $(DOCKER_DISTRIB) weave $(SIGPROXY_EXE) $(WEAVEPROXY_EXE) $(WEAVEWAIT_EXE) $(WEAVEWAIT_NOOP_EXE) $(NETCHECK_EXE) $(DOCKERTLSARGS_EXE) +$(WEAVEEXEC_UPTODATE): prog/weaveexec/Dockerfile prog/weaveexec/symlink $(DOCKER_DISTRIB) weave $(SIGPROXY_EXE) $(WEAVEPROXY_EXE) $(WEAVEWAIT_EXE) $(WEAVEWAIT_NOOP_EXE) $(WEAVEWAIT_NOMCAST_EXE) $(NETCHECK_EXE) $(DOCKERTLSARGS_EXE) cp weave prog/weaveexec/weave cp $(SIGPROXY_EXE) prog/weaveexec/sigproxy cp $(WEAVEPROXY_EXE) prog/weaveexec/weaveproxy cp $(WEAVEWAIT_EXE) prog/weaveexec/weavewait cp $(WEAVEWAIT_NOOP_EXE) prog/weaveexec/weavewait_noop + cp $(WEAVEWAIT_NOMCAST_EXE) prog/weaveexec/weavewait_nomcast cp $(NETCHECK_EXE) prog/weaveexec/netcheck cp $(DOCKERTLSARGS_EXE) prog/weaveexec/docker_tls_args cp $(DOCKER_DISTRIB) prog/weaveexec/docker.tgz diff --git a/prog/weavewait/check_network.go b/prog/weavewait/check_network.go index 9c17bf8e..53b5385d 100644 --- a/prog/weavewait/check_network.go +++ b/prog/weavewait/check_network.go @@ -1,12 +1,7 @@ -// +build !noop +// +build !iface,!mcast package main -import ( - weavenet "github.com/weaveworks/weave/net" -) - func checkNetwork() error { - _, err := weavenet.EnsureInterfaceAndMcastRoute("ethwe") - return err + return nil } diff --git a/prog/weavewait/check_network_iface.go b/prog/weavewait/check_network_iface.go new file mode 100644 index 00000000..9a627af8 --- /dev/null +++ b/prog/weavewait/check_network_iface.go @@ -0,0 +1,12 @@ +// +build iface,!mcast + +package main + +import ( + weavenet "github.com/weaveworks/weave/net" +) + +func checkNetwork() error { + _, err := weavenet.EnsureInterface("ethwe") + return err +} diff --git a/prog/weavewait/check_network_iface_mcast.go b/prog/weavewait/check_network_iface_mcast.go new file mode 100644 index 00000000..898c3b3d --- /dev/null +++ b/prog/weavewait/check_network_iface_mcast.go @@ -0,0 +1,12 @@ +// +build iface,mcast + +package main + +import ( + weavenet "github.com/weaveworks/weave/net" +) + +func checkNetwork() error { + _, err := weavenet.EnsureInterfaceAndMcastRoute("ethwe") + return err +} diff --git a/prog/weavewait/noop.go b/prog/weavewait/noop.go deleted file mode 100644 index 2342311d..00000000 --- a/prog/weavewait/noop.go +++ /dev/null @@ -1,7 +0,0 @@ -// +build noop - -package main - -func checkNetwork() error { - return nil -}