docker-engine.mk 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. ################################################################################
  2. #
  3. # docker-engine
  4. #
  5. ################################################################################
  6. DOCKER_ENGINE_VERSION = v17.05.0-ce
  7. DOCKER_ENGINE_COMMIT = 89658bed64c2a8fe05a978e5b87dbec409d57a0f
  8. DOCKER_ENGINE_SITE = $(call github,docker,docker,$(DOCKER_ENGINE_VERSION))
  9. DOCKER_ENGINE_LICENSE = Apache-2.0
  10. DOCKER_ENGINE_LICENSE_FILES = LICENSE
  11. DOCKER_ENGINE_DEPENDENCIES = host-go host-pkgconf
  12. DOCKER_ENGINE_GOPATH = "$(@D)/gopath"
  13. DOCKER_ENGINE_MAKE_ENV = $(HOST_GO_TARGET_ENV) \
  14. CGO_ENABLED=1 \
  15. CGO_NO_EMULATION=1 \
  16. GOBIN="$(@D)/bin" \
  17. GOPATH="$(DOCKER_ENGINE_GOPATH)" \
  18. PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
  19. $(TARGET_MAKE_ENV)
  20. DOCKER_ENGINE_GLDFLAGS = \
  21. -X main.GitCommit=$(DOCKER_ENGINE_VERSION) \
  22. -X main.Version=$(DOCKER_ENGINE_VERSION)
  23. ifeq ($(BR2_STATIC_LIBS),y)
  24. DOCKER_ENGINE_GLDFLAGS += -extldflags '-static'
  25. else
  26. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT),y)
  27. DOCKER_ENGINE_GLDFLAGS_DOCKER += -extldflags '-static'
  28. endif
  29. endif
  30. DOCKER_ENGINE_BUILD_TAGS = cgo exclude_graphdriver_zfs autogen
  31. DOCKER_ENGINE_BUILD_TARGETS = docker
  32. ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
  33. DOCKER_ENGINE_BUILD_TAGS += seccomp
  34. DOCKER_ENGINE_DEPENDENCIES += libseccomp
  35. endif
  36. ifeq ($(BR2_INIT_SYSTEMD),y)
  37. DOCKER_ENGINE_BUILD_TAGS += journald
  38. DOCKER_ENGINE_DEPENDENCIES += systemd
  39. endif
  40. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
  41. DOCKER_ENGINE_BUILD_TAGS += daemon
  42. DOCKER_ENGINE_BUILD_TARGETS += dockerd
  43. endif
  44. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y)
  45. DOCKER_ENGINE_BUILD_TAGS += experimental
  46. endif
  47. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y)
  48. DOCKER_ENGINE_DEPENDENCIES += btrfs-progs
  49. else
  50. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_btrfs
  51. endif
  52. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y)
  53. DOCKER_ENGINE_DEPENDENCIES += lvm2
  54. else
  55. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_devicemapper
  56. endif
  57. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y)
  58. DOCKER_ENGINE_DEPENDENCIES += gvfs
  59. else
  60. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_vfs
  61. endif
  62. define DOCKER_ENGINE_CONFIGURE_CMDS
  63. mkdir -p $(DOCKER_ENGINE_GOPATH)/src/github.com/docker
  64. ln -fs $(@D) $(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker
  65. cd $(@D) && \
  66. GITCOMMIT="$$(echo $(DOCKER_ENGINE_COMMIT) | head -c7)" \
  67. BUILDTIME="$$(date)" \
  68. VERSION="$(patsubst v%,%,$(DOCKER_ENGINE_VERSION))" \
  69. PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" $(TARGET_MAKE_ENV) \
  70. bash ./hack/make/.go-autogen
  71. endef
  72. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
  73. define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
  74. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.service \
  75. $(TARGET_DIR)/usr/lib/systemd/system/docker.service
  76. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.socket \
  77. $(TARGET_DIR)/usr/lib/systemd/system/docker.socket
  78. mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/
  79. ln -fs ../../../../usr/lib/systemd/system/docker.service \
  80. $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/docker.service
  81. endef
  82. define DOCKER_ENGINE_USERS
  83. - - docker -1 * - - - Docker Application Container Framework
  84. endef
  85. endif
  86. define DOCKER_ENGINE_BUILD_CMDS
  87. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  88. cd $(@D)/gopath/src/github.com/docker/docker; \
  89. $(DOCKER_ENGINE_MAKE_ENV) \
  90. $(HOST_DIR)/bin/go build -v \
  91. -o $(@D)/bin/$(target) \
  92. -tags "$(DOCKER_ENGINE_BUILD_TAGS)" \
  93. -ldflags "$(DOCKER_ENGINE_GLDFLAGS) $(DOCKER_ENGINE_GLDFLAGS_$(call UPPERCASE,$(target)))" \
  94. github.com/docker/docker/cmd/$(target)
  95. )
  96. endef
  97. define DOCKER_ENGINE_INSTALL_TARGET_CMDS
  98. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  99. $(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target)
  100. )
  101. endef
  102. $(eval $(generic-package))