2
1

docker-engine.mk 3.1 KB

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