docker-engine.mk 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. ################################################################################
  2. #
  3. # docker-engine
  4. #
  5. ################################################################################
  6. DOCKER_ENGINE_VERSION = v17.03.0-ce
  7. DOCKER_ENGINE_COMMIT = 60ccb2265b0574d6c1c1090876a1d1ab32bed60e
  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)/vendor"
  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. endif
  26. DOCKER_ENGINE_BUILD_TAGS = cgo exclude_graphdriver_zfs autogen
  27. DOCKER_ENGINE_BUILD_TARGETS = docker
  28. ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
  29. DOCKER_ENGINE_BUILD_TAGS += seccomp
  30. DOCKER_ENGINE_DEPENDENCIES += libseccomp
  31. endif
  32. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
  33. DOCKER_ENGINE_BUILD_TAGS += daemon
  34. DOCKER_ENGINE_BUILD_TARGETS += dockerd
  35. endif
  36. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y)
  37. DOCKER_ENGINE_BUILD_TAGS += experimental
  38. endif
  39. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_BTRFS),y)
  40. DOCKER_ENGINE_DEPENDENCIES += btrfs-progs
  41. else
  42. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_btrfs
  43. endif
  44. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_DEVICEMAPPER),y)
  45. DOCKER_ENGINE_DEPENDENCIES += lvm2
  46. else
  47. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_devicemapper
  48. endif
  49. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DRIVER_VFS),y)
  50. DOCKER_ENGINE_DEPENDENCIES += gvfs
  51. else
  52. DOCKER_ENGINE_BUILD_TAGS += exclude_graphdriver_vfs
  53. endif
  54. define DOCKER_ENGINE_CONFIGURE_CMDS
  55. mkdir -p $(DOCKER_ENGINE_GOPATH)/src/github.com/docker
  56. ln -fs $(@D) $(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker
  57. cd $(@D) && \
  58. GITCOMMIT="$$(echo $(DOCKER_ENGINE_COMMIT) | head -c7)" \
  59. BUILDTIME="$$(date)" \
  60. VERSION="$(patsubst v%,%,$(DOCKER_ENGINE_VERSION))" \
  61. PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" $(TARGET_MAKE_ENV) \
  62. bash ./hack/make/.go-autogen
  63. endef
  64. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
  65. define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
  66. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.service \
  67. $(TARGET_DIR)/usr/lib/systemd/system/docker.service
  68. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.socket \
  69. $(TARGET_DIR)/usr/lib/systemd/system/docker.socket
  70. mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/
  71. ln -fs ../../../../usr/lib/systemd/system/docker.service \
  72. $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/docker.service
  73. endef
  74. define DOCKER_ENGINE_USERS
  75. - - docker -1 * - - - Docker Application Container Framework
  76. endef
  77. endif
  78. define DOCKER_ENGINE_BUILD_CMDS
  79. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  80. cd $(@D); $(DOCKER_ENGINE_MAKE_ENV) \
  81. $(HOST_DIR)/usr/bin/go build -v \
  82. -o $(@D)/bin/$(target) \
  83. -tags "$(DOCKER_ENGINE_BUILD_TAGS)" \
  84. -ldflags "$(DOCKER_ENGINE_GLDFLAGS)" \
  85. github.com/docker/docker/cmd/$(target)
  86. )
  87. endef
  88. define DOCKER_ENGINE_INSTALL_TARGET_CMDS
  89. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  90. $(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target)
  91. )
  92. endef
  93. $(eval $(generic-package))