@@ -45,9 +45,21 @@ BUILD_CONTAINER_NAME = acn-builder
4545BUILD_CONTAINER_REPO_PATH = /go/src/github.com/Azure/azure-container-networking
4646BUILD_USER ?= $(shell id -u)
4747
48- # TAR file names.
49- CNM_TAR_NAME = azure-vnet-cnm-$(GOOS ) -$(GOARCH ) -$(VERSION ) .tgz
50- CNI_TAR_NAME = azure-vnet-cni-$(GOOS ) -$(GOARCH ) -$(VERSION ) .tgz
48+ # Target OS specific parameters.
49+ ifeq ($(GOOS ) ,linux)
50+ # Linux.
51+ ARCHIVE_CMD = tar -czvf
52+ ARCHIVE_EXT = tgz
53+ else
54+ # Windows.
55+ ARCHIVE_CMD = zip -9lq
56+ ARCHIVE_EXT = zip
57+ EXE_EXT = .exe
58+ endif
59+
60+ # Archive file names.
61+ CNM_ARCHIVE_NAME = azure-vnet-cnm-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
62+ CNI_ARCHIVE_NAME = azure-vnet-cni-$(GOOS ) -$(GOARCH ) -$(VERSION ) .$(ARCHIVE_EXT )
5163
5264# Docker libnetwork (CNM) plugin v2 image parameters.
5365CNM_PLUGIN_IMAGE ?= microsoft/azure-vnet-plugin
@@ -58,10 +70,10 @@ VERSION ?= $(shell git describe --tags --always --dirty)
5870ENSURE_OUTPUT_DIR_EXISTS := $(shell mkdir -p $(OUTPUT_DIR ) )
5971
6072# Shorthand target names for convenience.
61- azure-cnm-plugin : $(CNM_BUILD_DIR ) /azure-vnet-plugin cnm-tar
62- azure-vnet : $(CNI_BUILD_DIR ) /azure-vnet
63- azure-vnet-ipam : $(CNI_BUILD_DIR ) /azure-vnet-ipam
64- azure-cni-plugin : azure-vnet azure-vnet-ipam cni-tar
73+ azure-cnm-plugin : $(CNM_BUILD_DIR ) /azure-vnet-plugin$( EXE_EXT ) cnm-archive
74+ azure-vnet : $(CNI_BUILD_DIR ) /azure-vnet$( EXE_EXT )
75+ azure-vnet-ipam : $(CNI_BUILD_DIR ) /azure-vnet-ipam$( EXE_EXT )
76+ azure-cni-plugin : azure-vnet azure-vnet-ipam cni-archive
6577all-binaries : azure-cnm-plugin azure-cni-plugin
6678
6779# Clean all build artifacts.
@@ -70,16 +82,16 @@ clean:
7082 rm -rf $(OUTPUT_DIR )
7183
7284# Build the Azure CNM plugin.
73- $(CNM_BUILD_DIR ) /azure-vnet-plugin : $(CNMFILES )
74- go build -v -o $(CNM_BUILD_DIR ) /azure-vnet-plugin -ldflags " -X main.version=$( VERSION) -s -w" $(CNM_DIR ) /* .go
85+ $(CNM_BUILD_DIR ) /azure-vnet-plugin$( EXE_EXT ) : $(CNMFILES )
86+ go build -v -o $(CNM_BUILD_DIR ) /azure-vnet-plugin$( EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNM_DIR ) /* .go
7587
7688# Build the Azure CNI network plugin.
77- $(CNI_BUILD_DIR ) /azure-vnet : $(CNIFILES )
78- go build -v -o $(CNI_BUILD_DIR ) /azure-vnet -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_NET_DIR ) /* .go
89+ $(CNI_BUILD_DIR ) /azure-vnet$( EXE_EXT ) : $(CNIFILES )
90+ go build -v -o $(CNI_BUILD_DIR ) /azure-vnet$( EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_NET_DIR ) /* .go
7991
8092# Build the Azure CNI IPAM plugin.
81- $(CNI_BUILD_DIR ) /azure-vnet-ipam : $(CNIFILES )
82- go build -v -o $(CNI_BUILD_DIR ) /azure-vnet-ipam -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_IPAM_DIR ) /* .go
93+ $(CNI_BUILD_DIR ) /azure-vnet-ipam$( EXE_EXT ) : $(CNIFILES )
94+ go build -v -o $(CNI_BUILD_DIR ) /azure-vnet-ipam$( EXE_EXT ) -ldflags " -X main.version=$( VERSION) -s -w" $(CNI_IPAM_DIR ) /* .go
8395
8496# Build all binaries in a container.
8597.PHONY : all-binaries-containerized
@@ -136,17 +148,17 @@ azure-vnet-plugin-image: azure-cnm-plugin
136148publish-azure-vnet-plugin-image :
137149 docker plugin push $(CNM_PLUGIN_IMAGE ) :$(VERSION )
138150
139- # Create a CNI tarball for the current platform.
140- .PHONY : cni-tar
141- cni-tar :
151+ # Create a CNI archive for the target platform.
152+ .PHONY : cni-archive
153+ cni-archive :
142154 cp cni/azure.conf $(CNI_BUILD_DIR ) /10-azure.conf
143- chmod 0755 $(CNI_BUILD_DIR ) /azure-vnet $(CNI_BUILD_DIR ) /azure-vnet-ipam
144- cd $(CNI_BUILD_DIR ) && tar -czvf $( CNI_TAR_NAME ) azure-vnet azure-vnet-ipam 10-azure.conf
145- chown $(BUILD_USER ) :$(BUILD_USER ) $(CNI_BUILD_DIR ) /$(CNI_TAR_NAME )
146-
147- # Create a CNM tarball for the current platform.
148- .PHONY : cnm-tar
149- cnm-tar :
150- chmod 0755 $(CNM_BUILD_DIR ) /azure-vnet-plugin
151- cd $(CNM_BUILD_DIR ) && tar -czvf $( CNM_TAR_NAME ) azure-vnet-plugin
152- chown $(BUILD_USER ) :$(BUILD_USER ) $(CNM_BUILD_DIR ) /$(CNM_TAR_NAME )
155+ chmod 0755 $(CNI_BUILD_DIR ) /azure-vnet$( EXE_EXT ) $(CNI_BUILD_DIR ) /azure-vnet-ipam$( EXE_EXT )
156+ cd $(CNI_BUILD_DIR ) && $( ARCHIVE_CMD ) $( CNI_ARCHIVE_NAME ) azure-vnet$( EXE_EXT ) azure-vnet-ipam$( EXE_EXT ) 10-azure.conf
157+ chown $(BUILD_USER ) :$(BUILD_USER ) $(CNI_BUILD_DIR ) /$(CNI_ARCHIVE_NAME )
158+
159+ # Create a CNM archive for the target platform.
160+ .PHONY : cnm-archive
161+ cnm-archive :
162+ chmod 0755 $(CNM_BUILD_DIR ) /azure-vnet-plugin$( EXE_EXT )
163+ cd $(CNM_BUILD_DIR ) && $( ARCHIVE_CMD ) $( CNM_ARCHIVE_NAME ) azure-vnet-plugin$( EXE_EXT )
164+ chown $(BUILD_USER ) :$(BUILD_USER ) $(CNM_BUILD_DIR ) /$(CNM_ARCHIVE_NAME )
0 commit comments