11include ../common.mk
22
3- CLI_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/cli)
4- ENGINE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/docker)
5- BUILDX_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/buildx )
6- COMPOSE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/compose )
3+ CLI_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/cli)
4+ ENGINE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/docker)
5+ COMPOSE_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/compose )
6+ BUILDX_DIR = $(realpath $(CURDIR ) /../src/github.com/docker/buildx )
77
8- CLI_VERSION = $(shell ./gen-static-ver $(CLI_DIR ) $(VERSION ) )
9- ENGINE_VERSION = $(shell ./gen-static-ver $(ENGINE_DIR ) $(VERSION ) )
10- CONTAINERD_PKG_VER = $(shell ./gen-containerd-ver $(ENGINE_DIR ) $(CONTAINERD_VERSION ) )
8+ CLI_VERSION = $(shell ./gen-static-ver $(CLI_DIR ) $(VERSION ) )
9+ ENGINE_VERSION = $(shell ./gen-static-ver $(ENGINE_DIR ) $(VERSION ) )
10+ CONTAINERD_PKG_VER = $(shell ./gen-containerd-ver $(ENGINE_DIR ) $(CONTAINERD_VERSION ) )
1111
1212HASH_CMD =docker run -v $(CURDIR ) :/sum -w /sum debian:jessie bash hash_files
1313DIR_TO_HASH: =build/linux
@@ -53,20 +53,23 @@ static-linux: static-cli static-engine static-buildx-plugin static-compose-plugi
5353 mkdir -p build/linux/docker-cli
5454 cp $(CLI_DIR ) /build/docker build/linux/docker-cli/
5555 tar -C build/linux -c -z -f build/linux/docker-cli-$(CLI_VERSION ) .tgz docker-cli
56+ rm -r build/linux/docker-cli
5657
5758 # docker engine binaries
5859 mkdir -p build/linux/docker-engine
5960 for f in dockerd docker-init docker-proxy; do \
6061 cp -L $(ENGINE_DIR)/bundles/binary-daemon/$$f build/linux/docker-engine/$$f; \
6162 done
6263 tar -C build/linux -c -z -f build/linux/docker-engine-$(ENGINE_VERSION).tgz docker-engine
64+ rm -r build/linux/docker-engine
6365
6466 # containerd binaries
6567 mkdir -p build/linux/containerd
6668 for f in containerd ctr containerd-shim-runc-v2 runc; do \
6769 cp -L $(ENGINE_DIR)/bundles/binary-daemon/$$f build/linux/containerd/$$f; \
6870 done
6971 tar -C build/linux -c -z -f build/linux/containerd-$(CONTAINERD_PKG_VER).tgz containerd
72+ rm -r build/linux/containerd
7073
7174 # extra binaries for running rootless
7275 mkdir -p build/linux/docker-rootless-extras
@@ -76,10 +79,13 @@ static-linux: static-cli static-engine static-buildx-plugin static-compose-plugi
7679 fi \
7780 done
7881 tar -C build/linux -c -z -f build/linux/docker-rootless-extras-$(ENGINE_VERSION).tgz docker-rootless-extras
82+ rm -r build/linux/docker-rootless-extras
7983
80- # compose, buildx
84+ # docker compose
8185 tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/linux/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
82- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/linux/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
86+
87+ # docker buildx
88+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/linux/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
8389
8490.PHONY : hash_files
8591hash_files :
@@ -96,70 +102,76 @@ cross-mac: cross-mac-amd64 cross-mac-arm64
96102
97103.PHONY : cross-mac-amd64
98104cross-mac-amd64 : TARGETPLATFORM=darwin/amd64
99- cross-mac-amd64 : buildx
100- # Call make again to forward the target platform, otherwise it'd would be reset
101- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
102- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-buildx-plugin
103- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
104-
105- # cli
105+ cross-mac-amd64 : buildx static-cli static-buildx-plugin static-compose-plugin
106+ # docker cli binaries
106107 mkdir -p build/mac/amd64/docker-cli
107108 cp -L $(CLI_DIR ) /build/docker build/mac/amd64/docker-cli/docker
108109 tar -C build/mac/amd64/ -c -z -f build/mac/amd64/docker-cli-$(CLI_VERSION ) .tgz docker-cli
110+ rm -r build/mac/amd64/docker-cli
109111
110- # compose, buildx
112+ # docker compose
111113 tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/mac/amd64/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
112- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/amd64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
114+
115+ # docker buildx
116+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/amd64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
113117
114118.PHONY : cross-mac-arm64
115119cross-mac-arm64 : TARGETPLATFORM=darwin/arm64
116- cross-mac-arm64 : buildx
117- # Call make again to forward the target platform, otherwise it'd would be reset
118- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
119- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-buildx-plugin
120- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
121-
122- # cli
120+ cross-mac-arm64 : buildx static-cli static-buildx-plugin static-compose-plugin
121+ # docker cli binaries
123122 mkdir -p build/mac/arm64/docker-cli
124123 cp -L $(CLI_DIR ) /build/docker build/mac/arm64/docker-cli/docker
125124 tar -C build/mac/arm64/ -c -z -f build/mac/arm64/docker-cli-$(CLI_VERSION ) .tgz docker-cli
125+ rm -r build/mac/arm64/docker-cli
126126
127- # compose, buildx
127+ # docker compose
128128 tar -C "$(COMPOSE_DIR)"/bin/ -c -z -f build/mac/arm64/docker-compose-plugin-"$(DOCKER_COMPOSE_REF:v%=%)".tgz docker-compose
129- tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/arm64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
129+
130+ # docker buildx
131+ tar -C "$(BUILDX_DIR)"/bin/ -c -z -f build/mac/arm64/docker-buildx-plugin-"$(DOCKER_BUILDX_REF:v%=%)".tgz docker-buildx
130132
131133.PHONY : cross-win
132134cross-win : TARGETPLATFORM=windows/arm64
133- cross-win : cross-win-engine
134- # Call make again to forward the target platform, otherwise it'd would be reset
135- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-cli
136- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) EXT=" .exe" static-buildx-plugin
137- $(MAKE ) TARGETPLATFORM=$(TARGETPLATFORM ) static-compose-plugin
135+ cross-win : EXT=.exe
136+ cross-win : cross-win-engine static-cli static-buildx-plugin static-compose-plugin
137+ # docker cli binaries
138138 mkdir -p build/win/amd64/docker-cli
139+ cp -L $(CLI_DIR ) /build/docker build/win/amd64/docker-cli/docker.exe
140+
141+ # docker engine binaries
139142 mkdir -p build/win/amd64/docker-engine
140- mkdir -p build/win/amd64/docker-buildx
143+ for f in dockerd.exe docker-init docker-proxy.exe; do \
144+ cp -L $(ENGINE_DIR)/bundles/cross/windows/amd64-daemon/$$f build/win/amd64/docker-engine/$$f; \
145+ done
146+
147+ # docker compose, docker buildx
141148 mkdir -p build/win/amd64/docker-compose
142- cp -L $(CLI_DIR ) /build/docker build/win/amd64/docker-cli/docker.exe
143- cp $(ENGINE_DIR ) /bundles/cross/windows/amd64-daemon/dockerd.exe build/win/amd64/docker-engine/dockerd.exe
144- cp $(ENGINE_DIR ) /bundles/cross/windows/amd64-daemon/docker-proxy.exe build/win/amd64/docker-engine/docker-proxy.exe
145- cp $(BUILDX_DIR ) /bin/docker-buildx.exe build/win/amd64/docker-buildx/docker-buildx.exe
146149 cp $(COMPOSE_DIR)/bin/docker-compose/docker-compose.exe build/win/amd64/docker-compose/docker-compose.exe
147150
151+ # docker buildx
152+ mkdir -p build/win/amd64/docker-buildx
153+ cp $(BUILDX_DIR)/bin/docker-buildx.exe build/win/amd64/docker-buildx/docker-buildx.exe
154+
148155 docker run --rm -v $(CURDIR)/build/win/amd64:/v -w /v alpine sh -c 'apk add --no-cache zip \
149156 && zip -r docker-cli-$(CLI_VERSION).zip docker-cli \
150157 && zip -r docker-engine-$(ENGINE_VERSION).zip docker-engine \
151- && zip -r docker-buildx -plugin-$(DOCKER_BUILDX_REF :v%=%).zip docker-buildx \
152- && zip -r docker-compose -plugin-$(DOCKER_COMPOSE_REF :v%=%).zip docker-compose '
158+ && zip -r docker-compose -plugin-$(DOCKER_COMPOSE_REF :v%=%).zip docker-compose \
159+ && zip -r docker-buildx -plugin-$(DOCKER_BUILDX_REF :v%=%).zip docker-buildx '
153160 $(CHOWN) -R $(shell id -u):$(shell id -g) build
154161
162+ # clean up temporary directories
163+ $(RM) -r build/win/amd64/docker-cli build/win/amd64/docker-engine build/win/amd64/docker-compose build/win/amd64/docker-buildx
164+
155165.PHONY : cross-arm
156166cross-arm : cross-all-cli # # create tgz with linux armhf client only
157167 mkdir -p build/arm/docker-cli
158168 cp $(CLI_DIR ) /build/docker-linux-arm build/arm/docker-cli/docker
159169 tar -C build/arm -c -z -f build/arm/docker-cli-$(CLI_VERSION ) .tgz docker-cli
170+ rm -r build/arm/docker-cli
160171
161172.PHONY : static-cli
162173static-cli :
174+ # TODO(thaJeztah) check if CGO_ENABLED variable is correct here
163175 cd $(CLI_DIR ) && VERSION=$(CLI_VERSION ) docker buildx bake --set binary.platform=$(TARGETPLATFORM ) --set binary.args.CGO_ENABLED=$(CGO_ENABLED ) binary
164176
165177.PHONY : static-engine
@@ -181,10 +193,6 @@ static-compose-plugin:
181193
182194 ls -laR $(COMPOSE_DIR)/bin
183195
184- .PHONY : cross-cli
185- cross-cli :
186- cd $(CLI_DIR ) && VERSION=$(CLI_VERSION ) docker buildx bake --set binary.platform=" $( or $( TARGETPLATFORM) ,local) " binary
187-
188196.PHONY : cross-all-cli
189197cross-all-cli :
190198 $(MAKE ) -C $(CLI_DIR ) -f docker.Makefile VERSION=$(CLI_VERSION ) cross
0 commit comments