Blame view

buildroot/buildroot-2016.08.1/package/pkg-virtual.mk 2.65 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  ################################################################################
  # Virtual package infrastructure
  #
  # This file implements an infrastructure that eases development of
  # package .mk files for virtual packages. It should be used for all
  # virtual packages.
  #
  # See the Buildroot documentation for details on the usage of this
  # infrastructure
  #
  # In terms of implementation, this virtual infrastructure requires
  # the .mk file to only call the 'virtual-package' macro.
  #
  ################################################################################
  
  
  ################################################################################
  # inner-virtual-package -- defines the dependency rules of the virtual
  # package against its provider.
  #
  #  argument 1 is the lowercase package name
  #  argument 2 is the uppercase package name, including a HOST_ prefix
  #             for host packages
  #  argument 3 is the uppercase package name, without the HOST_ prefix
  #             for host packages
  #  argument 4 is the type (target or host)
  ################################################################################
  
  # Note: putting this comment here rather than in the define block, otherwise
  # make would try to expand the $(error ...) in the comment, which is not
  # really what we want.
  # We need to use second-expansion for the $(error ...) call, below,
  # so it is not evaluated now, but as part of the generated make code.
  
  define inner-virtual-package
  
  # Ensure the virtual package has an implementation defined.
  ifeq ($$(BR2_PACKAGE_HAS_$(2)),y)
  ifeq ($$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2))),)
  $$(error No implementation selected for virtual package $(1). Configuration error)
  endif
  endif
  
  $(2)_IS_VIRTUAL = YES
  
  # Add dependency against the provider
  # For a host package, there is no corresponding BR2_PACKAGE_PROVIDES_HOST_FOO,
  # so we need to compute it from the target variant.
  ifeq ($(4),target)
  $(2)_DEPENDENCIES += $$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(2)))
  else
  $(2)_DEPENDENCIES += host-$$(call qstrip,$$(BR2_PACKAGE_PROVIDES_$(3)))
  endif
  
  # Call the generic package infrastructure to generate the necessary
  # make targets
  $(call inner-generic-package,$(1),$(2),$(3),$(4))
  
  endef
  
  ################################################################################
  # virtual-package -- the target generator macro for virtual packages
  ################################################################################
  
  virtual-package = $(call inner-virtual-package,$(pkgname),$(call UPPERCASE,$(pkgname)),$(call UPPERCASE,$(pkgname)),target)
  host-virtual-package = $(call inner-virtual-package,host-$(pkgname),$(call UPPERCASE,host-$(pkgname)),$(call UPPERCASE,$(pkgname)),host)