docker-engine.mk 3.0 KB

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