Understand Buildroot System

来源:互联网 发布:剑网三冷酷女神脸数据 编辑:程序博客网 时间:2024/05/20 14:40
- GENTARGETS(package, freetype)
$(call GENTARGETS_INNER,FREETYPE,$(call UPPERCASE,FREETYPE),$(call UPPERCASE,FREETYPE),$(1),target)
GENTARGETS_INNER(freetype, FREETYPE, FREETYPE, package, target)




- GENTARGETS_INNER
GENTARGETS_INNER(freetype, FREETYPE, FREETYPE, package, target)
{
FREETYPE_TYPE                   =  target
FREETYPE_NAME =  freetype
FREETYPE_VERSION =  $(FREETYPE_VERSION) --> 2.4.3
FREETYPE_DIR =  $(BUILD_DIR)/freetype-$(FREETYPE_VERSION); 1st expand
=  .../output/build/freetype-2.4.3 ; 2st expand
FREETYPE_SOURCE ?= ...
FREETYPE_SITE ?= ...
FREETYPE_DEPENDENCIES ?= ...
FREETYPE_INSTALL_STAGING ?= NO
FREETYPE_INSTALL_TARGET ?= YES
FREETYPE_DIR_PREFIX = //todo;$(if $(4),$(4),$(TOP_SRCDIR)/package)




FREETYPE_TARGET_INSTALL_TARGET = $$(FREETYPE_DIR)/.stamp_target_installed
FREETYPE_TARGET_INSTALL_STAGING = $$(FREETYPE_DIR)/.stamp_staging_installed
FREETYPE_TARGET_INSTALL_HOST = $$(FREETYPE_DIR)/.stamp_host_installed
FREETYPE_TARGET_BUILD = $$(FREETYPE_DIR)/.stamp_built
FREETYPE_TARGET_CONFIGURE = $$(FREETYPE_DIR)/.stamp_configured
FREETYPE_TARGET_PATCH = $$(FREETYPE_DIR)/.stamp_patched
FREETYPE_TARGET_EXTRACT = $$(FREETYPE_DIR)/.stamp_extracted
FREETYPE_TARGET_SOURCE = $$(FREETYPE_DIR)/.stamp_downloaded
FREETYPE_TARGET_UNINSTALL = $$(FREETYPE_DIR)/.stamp_uninstalled
FREETYPE_TARGET_CLEAN = $$(FREETYPE_DIR)/.stamp_cleaned
FREETYPE_TARGET_DIRCLEAN = $$(FREETYPE_DIR)/.stamp_dircleaned


FREETYPE_POST_EXTRACT_HOOKS         ?= ...
FREETYPE_POST_PATCH_HOOKS           ?= ...
FREETYPE_POST_CONFIGURE_HOOKS       ?= ...
FREETYPE_POST_BUILD_HOOKS           ?= ...
FREETYPE_POST_INSTALL_HOOKS         ?= ...
FREETYPE_POST_INSTALL_STAGING_HOOKS ?= ...
FREETYPE_POST_INSTALL_TARGET_HOOKS  ?= ...


#$(1): $(1)-install
freetype: freetype-install


#$(1)-install: $(1)-install-staging $(1)-install-target $$($(2)_HOOK_POST_INSTALL)
freetype-install: freetype-install-staging freetype-install-target $(FREETYPE_HOOK_POST_INSTALL)


#$(1)-install-target: $(BUILD_DIR)/$(1)/aaabbbcccc $(1)-build $$($(2)_TARGET_INSTALL_TARGET)
freetype-install-target: freetype-build $(FREETYPE_TARGET_INSTALL_TARGET)


#$(1)-install-staging: $(1)-build $$($(2)_TARGET_INSTALL_STAGING)
freetype-install-staging: freetype-build $(FREETYPE_TARGET_INSTALL_STAGING)


#$(1)-build: $(1)-configure $$($(2)_TARGET_BUILD) $$($(2)_HOOK_POST_BUILD)
freetype-build: freetype-configure $(FREETYPE_TARGET_BUILD) $(FREETYPE_HOOK_POST_BUILD)


#$(1)-configure: $(1)-patch $$($(2)_TARGET_CONFIGURE) $$($(2)_HOOK_POST_CONFIGURE)
freetype-configure: freetype-patch $(FREETYPE_TARGET_CONFIGURE) $(FREETYPE_HOOK_POST_CONFIGURE)


#$(1)-patch: $(1)-extract $$($(2)_TARGET_PATCH)
freetype-patch: freetype-extract $(FREETYPE_TARGET_PATCH)


#$(1)-extract: $(1)-depends $$($(2)_TARGET_EXTRACT) $$($(2)_HOOK_POST_EXTRACT)
freetype-extract: freetype-depends $(FREETYPE_TARGET_EXTRACT) $(FREETYPE_HOOK_POST_EXTRACT)


#$(1)-depends: $(1)-source $$($(2)_DEPENDENCIES)
freetype-depends: freetype-source $(FREETYPE_DEPENDENCIES)


$(1)-show-depends:
@echo $$($(2)_DEPENDENCIES)


#$(1)-source: $$($(2)_TARGET_SOURCE)
freetype-source: $(FREETYPE_TARGET_SOURCE)


# define the PKG variable for all targets, containing the
# uppercase package variable prefix
$(FREETYPE_TARGET_INSTALL_TARGET): PKG=FREETYPE#zzz: The variable PKG will be used when run $(FREETYPE_TARGET_INSTALL_TARGET):
$(FREETYPE_TARGET_INSTALL_STAGING): PKG=FREETYPE
$(FREETYPE_TARGET_EXTINST_TARGET): PKG=FREETYPE
$(FREETYPE_TARGET_EXTINST_STAGING): PKG=FREETYPE
$(FREETYPE_TARGET_EXTINST_HOST): PKG=FREETYPE
$(FREETYPE_TARGET_INSTALL_HOST): PKG=FREETYPE
$(FREETYPE_TARGET_BUILD): PKG=FREETYPE
$(FREETYPE_TARGET_CONFIGURE): PKG=FREETYPE
$(FREETYPE_TARGET_PATCH): PKG=FREETYPE
$(FREETYPE_TARGET_PATCH): NOHOSTPKG=FREETYPE
$(FREETYPE_TARGET_EXTRACT): PKG=FREETYPE
$(FREETYPE_TARGET_SOURCE): PKG=FREETYPE
$(FREETYPE_TARGET_UNINSTALL): PKG=FREETYPE
$(FREETYPE_TARGET_CLEAN): PKG=FREETYPE
$(FREETYPE_TARGET_DIRCLEAN): PKG=FREETYPE
$(FREETYPE_HOOK_POST_EXTRACT): PKG=FREETYPE
$(FREETYPE_HOOK_POST_CONFIGURE): PKG=FREETYPE
$(FREETYPE_HOOK_POST_BUILD): PKG=FREETYPE
$(FREETYPE_HOOK_POST_INSTALL): PKG=FREETYPE


TARGETS += freetype
}




################################################################################
# Implicit targets -- produce a stamp file for each step of a package build
################################################################################


# Retrieve the archive
.../output/build/freetype-2.4.3/.stamp_downloaded:
# support make source-check/external-deps
ifeq ($(SPIDER),)
# Only show the download message if it isn't already downloaded
$(Q)(test -e $(DL_DIR)/$($(PKG)_SOURCE) && \
(test -z $($(PKG)_PATCH) || test -e $(DL_DIR)$($(PKG)_PATCH))) || \
$(call MESSAGE,"Downloading")
endif
$(call DOWNLOAD,$($(PKG)_SITE),$($(PKG)_SOURCE))
$(if $($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE),$($(PKG)_PATCH)))
ifeq ($(SPIDER),)
$(Q)mkdir -p $(@D)
$(Q)touch $@
endif


# Unpack the archive
#$(BUILD_DIR)/%/.stamp_extracted:
.../output/build/freetype-2.4.3/.stamp_extracted:
@$(call MESSAGE,"Extracting")
$(Q)mkdir -p $(@D)
$(Q)$(INFLATE$(suffix $($(PKG)_SOURCE))) $(DL_DIR)/$($(PKG)_SOURCE) | \
$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -
# some packages have messed up permissions inside
$(Q)chmod -R ug+rw $(@D)
$(foreach hook,$($(PKG)_POST_EXTRACT_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Patch
#
# The NOHOSTPKG variable is the uppercased package name, without the
# HOST_ prefix, even for host packages. This allows to find the
# patches in the package directory, because $($(NOHOSTPKG)_NAME)
# expands to the package directory name.
#
.../output/build/freetype-2.4.3/.stamp_patched: NAMEVER = $($(NOHOSTPKG)_NAME)-$($(PKG)_VERSION)
.../output/build/freetype-2.4.3/.stamp_patched:
@$(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)")
$(if $($(PKG)_PATCH),toolchain/patch-kernel.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
$(Q)( \
if test -d $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME); then \
 if test "$(wildcard $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME)/$(NAMEVER)*.patch*)"; then \
   toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME) $(NAMEVER)\*.patch $(NAMEVER)\*.patch.$(ARCH) || exit 1; \
 else \
   toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME) $($(NOHOSTPKG)_NAME)\*.patch $($(NOHOSTPKG)_NAME)\*.patch.$(ARCH) || exit 1; \
   if test -d $($(PKG)_DIR_PREFIX)/$($(PKG)_NAME)/$(NAMEVER); then \
     toolchain/patch-kernel.sh $(@D) $($(PKG)_DIR_PREFIX)/$($(NOHOSTPKG)_NAME)/$(NAMEVER) \*.patch \*.patch.$(ARCH) || exit 1; \
   fi; \
 fi; \
fi; \
)
$(foreach hook,$($(PKG)_POST_PATCH_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Configure
.../output/build/freetype-2.4.3/.stamp_configured:
@$(call MESSAGE,"Configuring")
$($(PKG)_CONFIGURE_CMDS)
$(foreach hook,$($(PKG)_POST_CONFIGURE_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Build
.../output/build/freetype-2.4.3/.stamp_built::
@$(call MESSAGE,"Building")
$($(PKG)_BUILD_CMDS)
$(foreach hook,$($(PKG)_POST_BUILD_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Install to host dir
.../output/build/freetype-2.4.3/.stamp_host_installed:
@$(call MESSAGE,'Installing to host directory')
$($(PKG)_INSTALL_CMDS)
$(foreach hook,$($(PKG)_POST_INSTALL_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Install to staging dir
.../output/build/freetype-2.4.3/.stamp_staging_installed:
@$(call MESSAGE,'Installing to staging directory')
$($(PKG)_INSTALL_STAGING_CMDS)
$(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Install to target dir
.../output/build/freetype-2.4.3/.stamp_target_installed:
@$(call MESSAGE,"Installing to target")
$($(PKG)_INSTALL_TARGET_CMDS)
$(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep))
$(Q)touch $@


# Clean package
.../output/build/freetype-2.4.3/.stamp_cleaned:
@$(call MESSAGE,"Cleaning up")
$($(PKG)_CLEAN_CMDS)
rm -f $(@D)/.stamp_built


# Uninstall package from target and staging
.../output/build/freetype-2.4.3/.stamp_uninstalled:
@$(call MESSAGE,"Uninstalling")
$($(PKG)_UNINSTALL_STAGING_CMDS)
rm -f $($(PKG)_TARGET_INSTALL_STAGING)
$($(PKG)_UNINSTALL_TARGET_CMDS)
rm -f $($(PKG)_TARGET_INSTALL_TARGET) $($(PKG)_HOOK_POST_INSTALL)


# Remove package sources
.../output/build/freetype-2.4.3/.stamp_dircleaned:
rm -Rf $(@D)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 眼睛进东西了弄不出来怎么办 18k金不给换黄金怎么办 我22岁欠了10万怎么办 1岁宝宝又吐又拉怎么办 月经10天了还没干净怎么办 舌头有异味怎么办是有口臭吗 快8个月羊水破了怎么办 25岁欠了50万债怎么办 28岁血压高150低压110怎么办 苹果6的4g网络慢怎么办 一个月染了6次头怎么办 五0二干在衣服上怎么办 刚怀孕见红了肚子不痛怎么办 我有外遇了老婆不离婚怎么办 套了牙套的牙疼怎么办 我鼻子上有很多螨虫和黑头怎么办 鱼刺卡在喉咙怎么办最有效的办法 脚被蚊子咬了很痒怎么办 好压7z密码忘了怎么办 4g卡显示2g网络怎么办 过塑机把纸吞了怎么办 红米1s开不了机怎么办 跟老婆吵架闹的要离婚该怎么办 充了q币没有到账怎么办 9个月宝宝吃了盐怎么办 红米4x开不了机怎么办 鱼身上有红斑像出血了怎么办 草鱼身上有红斑像出血了怎么办 宝宝屁眼红的破皮了怎么办 孩子身上起红疙瘩很痒怎么办 久而不射,但软了怎么办 盆底综合肌力1级怎么办 头发掉的厉害怎么办吃什么好 给蜂蛰了肿了痒怎么办 小米手环2没电了怎么办 小米手环2不亮了怎么办 红米3s无限重启怎么办 乐视手机1s卡顿怎么办 老公出轨了怎么办你会选择离婚吗 c盘和d盘换换了怎么办 晚上2点到3点醒怎么办