diff --git a/Makefile b/Makefile index 823bdf8c9..089ebe557 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ rclone: mv -v `go env GOPATH`/bin/rclone`go env GOEXE`.new `go env GOPATH`/bin/rclone`go env GOEXE` test_all: - go install --ldflags "-s -X github.com/rclone/rclone/fs.Version=$(TAG)" $(BUILDTAGS) github.com/rclone/rclone/fstest/test_all + go install --ldflags "-s -X github.com/rclone/rclone/fs.Version=$(TAG)" $(BUILDTAGS) $(BUILD_ARGS) github.com/rclone/rclone/fstest/test_all vars: @echo SHELL="'$(SHELL)'" @@ -188,10 +188,10 @@ upload_github: ./bin/upload-github $(TAG) cross: doc - go run bin/cross-compile.go -release current $(BUILDTAGS) $(TAG) + go run bin/cross-compile.go -release current $(BUILDTAGS) $(BUILD_ARGS) $(TAG) beta: - go run bin/cross-compile.go $(BUILDTAGS) $(TAG) + go run bin/cross-compile.go $(BUILDTAGS) $(BUILD_ARGS) $(TAG) rclone -v copy build/ memstore:pub-rclone-org/$(TAG) @echo Beta release ready at https://pub.rclone.org/$(TAG)/ @@ -199,7 +199,7 @@ log_since_last_release: git log $(LAST_TAG).. compile_all: - go run bin/cross-compile.go -compile-only $(BUILDTAGS) $(TAG) + go run bin/cross-compile.go -compile-only $(BUILDTAGS) $(BUILD_ARGS) $(TAG) ci_upload: sudo chown -R $$USER build @@ -213,7 +213,7 @@ endif ci_beta: git log $(LAST_TAG).. > /tmp/git-log.txt - go run bin/cross-compile.go -release beta-latest -git-log /tmp/git-log.txt $(BUILD_FLAGS) $(BUILDTAGS) $(TAG) + go run bin/cross-compile.go -release beta-latest -git-log /tmp/git-log.txt $(BUILD_FLAGS) $(BUILDTAGS) $(BUILD_ARGS) $(TAG) rclone --config bin/travis.rclone.conf -v copy --exclude '*beta-latest*' build/ $(BETA_UPLOAD) ifeq ($(or $(BRANCH_PATH),$(RELEASE_TAG)),) rclone --config bin/travis.rclone.conf -v copy --include '*beta-latest*' --include version.txt build/ $(BETA_UPLOAD_ROOT)$(BETA_SUBDIR) diff --git a/bin/cross-compile.go b/bin/cross-compile.go index d40f3798b..29ca63b1e 100644 --- a/bin/cross-compile.go +++ b/bin/cross-compile.go @@ -36,6 +36,7 @@ var ( cgo = flag.Bool("cgo", false, "Use cgo for the build") noClean = flag.Bool("no-clean", false, "Don't clean the build directory before running.") tags = flag.String("tags", "", "Space separated list of build tags") + buildmode = flag.String("buildmode", "", "Passed to go build -buildmode flag") compileOnly = flag.Bool("compile-only", false, "Just build the binary, not the zip.") ) @@ -300,8 +301,15 @@ func compileArch(version, goos, goarch, dir string) bool { "-trimpath", "-o", output, "-tags", *tags, - "..", } + if *buildmode != "" { + args = append(args, + "-buildmode", *buildmode, + ) + } + args = append(args, + "..", + ) env := []string{ "GOOS=" + goos, "GOARCH=" + stripVersion(goarch),