Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 403d903

Browse files
committed
Fix some Makefile portability issues
Signed-off-by: Mathieu Champlon <mathieu.champlon@docker.com> Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent a4749ed commit 403d903

5 files changed

Lines changed: 41 additions & 27 deletions

File tree

.dockerignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@
22
*.dockerapp
33
*.tar.gz
44
_build/
5-
bin/docker-app-*
5+
bin/docker-app-windows.exe
6+
bin/docker-app-darwin
7+
bin/docker-app-e2e-*

Dockerfile.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
FROM gradle:jdk8
2-
COPY bin/docker-app /usr/local/bin/docker-app
2+
COPY bin/docker-app-linux /usr/local/bin/docker-app
33
COPY --chown=gradle:gradle integrations/gradle .

Makefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ coverage-bin:
4949

5050
coverage-test-unit:
5151
@echo "Running unit tests (coverage)..."
52-
mkdir -p _build/cov
52+
@$(call mkdir,_build/cov)
5353
$(GO_TEST) -cover -test.coverprofile=_build/cov/unit.out $(shell go list ./... | grep -vE '/e2e')
5454

5555
coverage-test-e2e: coverage-bin
5656
@echo "Running e2e tests (coverage)..."
57-
mkdir -p _build/cov
57+
@$(call mkdir,_build/cov)
5858
DOCKERAPP_BINARY=../e2e/coverage-bin $(GO_TEST) -v ./e2e
5959

6060
coverage: coverage-test-unit coverage-test-e2e
@@ -64,7 +64,9 @@ coverage: coverage-test-unit coverage-test-e2e
6464
go tool cover -html _build/cov/all.out -o _build/cov/coverage.html
6565

6666
clean:
67-
rm -Rf ./bin ./_build docker-app-*.tar.gz
67+
$(call rm,bin)
68+
$(call rm,_build)
69+
$(call rm,docker-app-*.tar.gz)
6870

6971
.PHONY: cross e2e-cross test check lint test-unit test-e2e coverage coverage-bin coverage-test-unit coverage-test-e2e clean
7072
.DEFAULT: all

docker.Makefile

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,27 @@ IMAGE_BUILD_ARGS := \
1010
PKG_PATH := /go/src/$(PKG_NAME)
1111

1212
.DEFAULT: all
13-
all: bin/$(BIN_NAME) test
13+
all: cross test
1414

1515
create_bin:
16-
@mkdir -p bin
16+
@$(call mkdir,bin)
1717

1818
build_dev_image:
1919
docker build --target=dev -t $(IMAGE_NAME)-dev $(IMAGE_BUILD_ARGS) .
2020

2121
shell: build_dev_image
2222
docker run -ti --rm $(IMAGE_NAME)-dev bash
2323

24-
bin/%: create_bin
25-
docker build --target=$* -t $(IMAGE_NAME)-bin $(IMAGE_BUILD_ARGS) .
26-
( containerID=$$(docker create $(IMAGE_NAME)-bin noop); \
27-
docker cp $$containerID:$(PKG_PATH)/bin/$*$(EXEC_EXT) $@; \
28-
docker rm $$containerID )
29-
@chmod +x $@
30-
3124
cross: create_bin
3225
docker build --target=$* -t $(IMAGE_NAME)-cross $(IMAGE_BUILD_ARGS) .
3326
$(eval containerID=$(shell docker create $(IMAGE_NAME)-cross noop))
3427
docker cp $(containerID):$(PKG_PATH)/bin/$(BIN_NAME)-linux bin/$(BIN_NAME)-linux
3528
docker cp $(containerID):$(PKG_PATH)/bin/$(BIN_NAME)-darwin bin/$(BIN_NAME)-darwin
3629
docker cp $(containerID):$(PKG_PATH)/bin/$(BIN_NAME)-windows.exe bin/$(BIN_NAME)-windows.exe
3730
docker rm $(containerID)
38-
@chmod +x bin/$(BIN_NAME)-linux
39-
@chmod +x bin/$(BIN_NAME)-darwin
40-
@chmod +x bin/$(BIN_NAME)-windows.exe
31+
@$(call chmod,+x,bin/$(BIN_NAME)-linux)
32+
@$(call chmod,+x,bin/$(BIN_NAME)-darwin)
33+
@$(call chmod,+x,bin/$(BIN_NAME)-windows.exe)
4134

4235
e2e-cross: create_bin
4336
docker build --target=e2e-cross -t $(IMAGE_NAME)-e2e-cross $(IMAGE_BUILD_ARGS) .
@@ -46,9 +39,9 @@ e2e-cross: create_bin
4639
docker cp $(containerID):$(PKG_PATH)/bin/$(BIN_NAME)-e2e-darwin bin/$(BIN_NAME)-e2e-darwin
4740
docker cp $(containerID):$(PKG_PATH)/bin/$(BIN_NAME)-e2e-windows.exe bin/$(BIN_NAME)-e2e-windows.exe
4841
docker rm $(containerID)
49-
@chmod +x bin/$(BIN_NAME)-e2e-linux
50-
@chmod +x bin/$(BIN_NAME)-e2e-darwin
51-
@chmod +x bin/$(BIN_NAME)-e2e-windows.exe
42+
@$(call chmod,+x,bin/$(BIN_NAME)-e2e-linux)
43+
@$(call chmod,+x,bin/$(BIN_NAME)-e2e-darwin)
44+
@$(call chmod,+x,bin/$(BIN_NAME)-e2e-windows.exe)
5245

5346
tars:
5447
tar czf bin/$(BIN_NAME)-linux.tar.gz -C bin $(BIN_NAME)-linux
@@ -68,13 +61,13 @@ test-e2e: build_dev_image
6861

6962
COV_LABEL := com.docker.app.cov-run=$(TAG)
7063
coverage: build_dev_image
71-
mkdir -p _build
72-
(containerID=$$(docker run -v /var/run:/var/run:ro -tid $(IMAGE_NAME)-dev make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} coverage); \
73-
docker logs -f $$containerID; \
74-
docker cp $$containerID:$(PKG_PATH)/_build/cov/ ./_build/ci-cov; \
75-
docker rm $$containerID)
64+
@$(call mkdir,_build)
65+
$(eval containerID=$(shell docker run -v /var/run:/var/run:ro -tid $(IMAGE_NAME)-dev make COMMIT=${COMMIT} TAG=${TAG} BUILDTIME=${BUILDTIME} coverage))
66+
docker logs -f $(containerID)
67+
docker cp $(containerID):$(PKG_PATH)/_build/cov/ ./_build/ci-cov
68+
docker rm $(containerID)
7669

77-
gradle-test: bin/$(BIN_NAME)
70+
gradle-test: cross
7871
docker build -t $(IMAGE_NAME)-bin -f Dockerfile.gradle .
7972
docker run --rm $(IMAGE_NAME)-bin bash -c "./gradlew --stacktrace build && cd example && gradle renderIt"
8073

vars.mk

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ CWD = $(dir $(realpath $(lastword $(MAKEFILE_LIST))))
1515
# Used by ci-gradle-test target
1616
DOCKERAPP_BINARY ?= $(CWD)/bin/$(BIN_NAME)-linux
1717

18+
ifeq ($(shell echo "check_quotes"),"check_quotes")
19+
WINDOWS := yes
20+
BUILDTIME := unknown
21+
else
22+
WINDOWS := no
23+
endif
24+
1825
ifeq ($(BUILDTIME),)
1926
BUILDTIME := ${shell date --utc --rfc-3339 ns 2> /dev/null | sed -e 's/ /T/'}
2027
endif
@@ -32,7 +39,17 @@ LDFLAGS := "-s -w \
3239
-X $(PKG_NAME)/internal.Renderers=$(RENDERERS) \
3340
-X $(PKG_NAME)/internal.BuildTime=$(BUILDTIME)"
3441

42+
ifeq ($(WINDOWS),yes)
43+
mkdir = mkdir $(subst /,\,$(1)) > nul 2>&1 || (exit 0)
44+
rm = del /S /Q $(subst /,\,$(1)) > nul 2>&1 || (exit 0)
45+
chmod =
46+
else
47+
mkdir = mkdir -p $(1)
48+
rm = rm -rf $(1)
49+
chmod = chmod $(1) $(2)
50+
endif
51+
3552
EXEC_EXT :=
3653
ifeq ($(OS),Windows_NT)
37-
EXEC_EXT := .exe
54+
EXEC_EXT := .exe
3855
endif

0 commit comments

Comments
 (0)