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