docker-engine.mk 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. ################################################################################
  2. #
  3. # docker-engine
  4. #
  5. ################################################################################
  6. DOCKER_ENGINE_VERSION = v1.12.6
  7. DOCKER_ENGINE_COMMIT = 78d18021ecba00c00730dec9d56de6896f9e708d
  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. ln -fs $(@D) $(DOCKER_ENGINE_GOPATH)/src/github.com/docker/docker
  56. cd $(@D) && \
  57. GITCOMMIT="$$(echo $(DOCKER_ENGINE_COMMIT) | head -c7)" \
  58. BUILDTIME="$$(date)" \
  59. VERSION="$(patsubst v%,%,$(DOCKER_ENGINE_VERSION))" \
  60. PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" $(TARGET_MAKE_ENV) \
  61. bash ./hack/make/.go-autogen
  62. endef
  63. ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
  64. define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
  65. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.service \
  66. $(TARGET_DIR)/usr/lib/systemd/system/docker.service
  67. $(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.socket \
  68. $(TARGET_DIR)/usr/lib/systemd/system/docker.socket
  69. mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/
  70. ln -fs ../../../../usr/lib/systemd/system/docker.service \
  71. $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/docker.service
  72. endef
  73. define DOCKER_ENGINE_USERS
  74. - - docker -1 * - - - Docker Application Container Framework
  75. endef
  76. endif
  77. define DOCKER_ENGINE_BUILD_CMDS
  78. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  79. cd $(@D); $(DOCKER_ENGINE_MAKE_ENV) \
  80. $(HOST_DIR)/usr/bin/go build -v \
  81. -o $(@D)/bin/$(target) \
  82. -tags "$(DOCKER_ENGINE_BUILD_TAGS)" \
  83. -ldflags "$(DOCKER_ENGINE_GLDFLAGS)" \
  84. ./cmd/$(target)
  85. )
  86. endef
  87. define DOCKER_ENGINE_INSTALL_TARGET_CMDS
  88. $(foreach target,$(DOCKER_ENGINE_BUILD_TARGETS), \
  89. $(INSTALL) -D -m 0755 $(@D)/bin/$(target) $(TARGET_DIR)/usr/bin/$(target)
  90. )
  91. endef
  92. $(eval $(generic-package))