github.com/hpcng/singularity@v3.1.1+incompatible/mlocal/frags/build_network.mk (about) 1 # This file contains rules for building CNI plugins which can enable 2 # different networking functions between container(s) and the host 3 4 singularity_REPO := github.com/sylabs/singularity 5 6 cni_builddir := $(BUILDDIR_ABSPATH)/cni 7 cni_install_DIR := $(DESTDIR)$(LIBEXECDIR)/singularity/cni 8 cni_vendor_GOPATH := $(singularity_REPO)/vendor/github.com/containernetworking/plugins/plugins 9 cni_plugins_GOPATH := $(cni_vendor_GOPATH)/meta/bandwidth \ 10 $(cni_vendor_GOPATH)/main/bridge \ 11 $(cni_vendor_GOPATH)/ipam/dhcp \ 12 $(cni_vendor_GOPATH)/meta/flannel \ 13 $(cni_vendor_GOPATH)/main/host-device \ 14 $(cni_vendor_GOPATH)/ipam/host-local \ 15 $(cni_vendor_GOPATH)/main/ipvlan \ 16 $(cni_vendor_GOPATH)/main/loopback \ 17 $(cni_vendor_GOPATH)/main/macvlan \ 18 $(cni_vendor_GOPATH)/meta/portmap \ 19 $(cni_vendor_GOPATH)/main/ptp \ 20 $(cni_vendor_GOPATH)/ipam/static \ 21 $(cni_vendor_GOPATH)/meta/tuning \ 22 $(cni_vendor_GOPATH)/main/vlan 23 cni_plugins_EXECUTABLES := $(cni_builddir)/bandwidth \ 24 $(cni_builddir)/bridge \ 25 $(cni_builddir)/dhcp \ 26 $(cni_builddir)/flannel \ 27 $(cni_builddir)/host-device \ 28 $(cni_builddir)/host-local \ 29 $(cni_builddir)/ipvlan \ 30 $(cni_builddir)/loopback \ 31 $(cni_builddir)/macvlan \ 32 $(cni_builddir)/portmap \ 33 $(cni_builddir)/ptp \ 34 $(cni_builddir)/static \ 35 $(cni_builddir)/tuning \ 36 $(cni_builddir)/vlan 37 cni_plugins_INSTALL := $(cni_install_DIR)/bandwidth \ 38 $(cni_install_DIR)/bridge \ 39 $(cni_install_DIR)/dhcp \ 40 $(cni_install_DIR)/flannel \ 41 $(cni_install_DIR)/host-device \ 42 $(cni_install_DIR)/host-local \ 43 $(cni_install_DIR)/ipvlan \ 44 $(cni_install_DIR)/loopback \ 45 $(cni_install_DIR)/macvlan \ 46 $(cni_install_DIR)/portmap \ 47 $(cni_install_DIR)/ptp \ 48 $(cni_install_DIR)/static \ 49 $(cni_install_DIR)/tuning \ 50 $(cni_install_DIR)/vlan 51 cni_config_LIST := $(SOURCEDIR)/etc/network/00_bridge.conflist \ 52 $(SOURCEDIR)/etc/network/10_ptp.conflist \ 53 $(SOURCEDIR)/etc/network/20_ipvlan.conflist \ 54 $(SOURCEDIR)/etc/network/30_macvlan.conflist 55 cni_config_INSTALL := $(DESTDIR)$(SYSCONFDIR)/singularity/network 56 57 .PHONY: cniplugins 58 cniplugins: 59 $(V)install -d $(cni_builddir) 60 $(V)for p in $(cni_plugins_GOPATH); do \ 61 name=`basename $$p`; \ 62 cniplugin=$(cni_builddir)/$$name; \ 63 if [ ! -f $$cniplugin ]; then \ 64 echo " CNI PLUGIN" $$name; \ 65 go build $(GO_BUILDMODE) -tags "$(GO_TAGS)" $(GO_LDFLAGS) -o $$cniplugin $$p; \ 66 fi \ 67 done 68 69 $(cni_plugins_INSTALL): $(cni_plugins_EXECUTABLES) 70 @echo " INSTALL CNI PLUGIN" $@ 71 $(V)install -d $(@D) 72 $(V)install -m 0755 $(cni_builddir)/$(@F) $@ 73 74 $(cni_config_INSTALL): $(cni_config_LIST) 75 @echo " INSTALL CNI CONFIGURATION FILES" 76 $(V)install -d $(cni_config_INSTALL) 77 $(V)install -m 0644 $? $@ 78 79 CLEANFILES += $(cni_plugins_EXECUTABLES) 80 INSTALLFILES += $(cni_plugins_INSTALL) $(cni_config_INSTALL) 81 ALL += cniplugins