Makefile.common.mk 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. ifeq ($(__inc_Makefile_common_mk),)
  2. __inc_Makefile_common_mk:=1
  3. ifeq ($(ModName),)
  4. $(error ModName must be set, e.g. yunion.io/x/onecloud)
  5. endif
  6. ModBaseName:=$(notdir $(ModName))
  7. DockerImageRegistry?=registry.cn-beijing.aliyuncs.com
  8. DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.22.2-go-1.24.9-0
  9. EnvIf=$(if $($(1)),$(1)=$($(1)))
  10. define dockerCentOSBuildCmd
  11. set -o xtrace
  12. set -o errexit
  13. set -o pipefail
  14. git config --global --add safe.directory /root/go/src/yunion.io/x/$(ModBaseName)
  15. cd /root/go/src/yunion.io/x/$(ModBaseName)
  16. env \
  17. $(call EnvIf,GOARCH) \
  18. $(call EnvIf,GOOS) \
  19. $(call EnvIf,CGO_ENABLED) \
  20. make $(1)
  21. chown -R $(shell id -u):$(shell id -g) _output
  22. endef
  23. tmpName=$(ModBaseName)-$(shell date +"%Y%m%d.%H%M%S%3N")
  24. define dockerAlpineBuildCmd
  25. set -o xtrace
  26. set -o errexit
  27. set -o pipefail
  28. git config --global --add safe.directory /root/go/src/yunion.io/x/$(ModBaseName)
  29. cd /root/go/src/yunion.io/x/$(ModBaseName)
  30. git config --global --add safe.directory /root/go/src/yunion.io/x/onecloud
  31. env \
  32. $(call EnvIf,GOARCH) \
  33. $(call EnvIf,GOOS) \
  34. $(call EnvIf,CGO_ENABLED) \
  35. make $(1)
  36. chown -R $(shell id -u):$(shell id -g) _output
  37. endef
  38. docker-alpine-build: export dockerAlpineBuildCmd:=$(call dockerAlpineBuildCmd,$(F))
  39. docker-alpine-build:
  40. docker rm --force docker-alpine-build-$(tmpName) &>/dev/null || true
  41. docker run \
  42. --rm \
  43. --name docker-alpine-build-$(tmpName) \
  44. -v $(CURDIR):/root/go/src/yunion.io/x/$(ModBaseName) \
  45. -v $(CURDIR)/_output/alpine-build:/root/go/src/yunion.io/x/$(ModBaseName)/_output \
  46. -v $(CURDIR)/_output/alpine-build/_cache:/root/.cache \
  47. $(DockerImageAlpineBuild) \
  48. /bin/sh -c "$$dockerAlpineBuildCmd"
  49. ls -lh _output/alpine-build/bin
  50. docker-alpine-build-stop:
  51. docker stop --time 0 docker-alpine-build-$(tmpName) || true
  52. .PHONY: docker-alpine-build
  53. .PHONY: docker-alpine-build-stop
  54. endif # __inc_Makefile_common_mk