{"id":8192,"date":"2022-12-30T11:06:48","date_gmt":"2022-12-30T03:06:48","guid":{"rendered":"http:\/\/xinyiworld.top\/wordpress_it\/?p=8192"},"modified":"2023-01-03T17:03:12","modified_gmt":"2023-01-03T09:03:12","slug":"rk3588%e7%bc%96%e8%af%91-uboot%e4%ba%a4%e5%8f%89%e7%bc%96%e8%af%91-scripts-kbuild-include%e5%88%86%e6%9e%90","status":"publish","type":"post","link":"http:\/\/xinyiworld.top\/wordpress_it\/?p=8192","title":{"rendered":"rk3588\u7f16\u8bd1-uboot\u4ea4\u53c9\u7f16\u8bd1-scripts\/Kbuild.include\u5206\u6790"},"content":{"rendered":"<h3>if_changed\u51fd\u6570<\/h3>\n<p><a href=\"http:\/\/t.zoukankan.com\/idyllcheung-p-11591962.html\">http:\/\/t.zoukankan.com\/idyllcheung-p-11591962.html<\/a><\/p>\n<pre><code class=\"language-bash\"># Execute command if command has changed or prerequisite(s) are updated.\n#\nif_changed = $(if $(strip $(any-prereq) $(arg-check)),                       \\\n    @set -e;                                                             \\\n    $(echo-cmd) $(cmd_$(1));                                             \\\n    printf &#039;%s\\n&#039; &#039;cmd_$@ := $(make-cmd)&#039; &gt; $(dot-target).cmd)<\/code><\/pre>\n<ul>\n<li>\n<p><strong>any-prereq\u53d8\u91cf<\/strong><br \/>\n\u4f5c\u7528\uff1a\u5b58\u50a8<strong>\u6bd4\u76ee\u6807\u8fd8\u8981\u65b0\u7684\u4f9d\u8d56\u6587\u4ef6<\/strong>\u4e0e<strong>\u4e0d\u5b58\u5728\u7684\u4f9d\u8d56\u6587\u4ef6<\/strong><br \/>\n<code>any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)<\/code><br \/>\n$(filter-out $(PHONY),$?)\uff1a\u5c06 $? \u4e2d\u7684\u6240\u6709\u4f2a\u76ee\u6807\u53bb\u6389\uff0c\u4e0d\u7136\u53ef\u80fd\u4f1a\u5c06 FORCE \u8fd9\u79cd\u76ee\u6807\u4e5f\u5e26\u8fdb\u6765\uff0c\u5982\u679c\u6b64\u65f6\u8fd4\u56de\u975e\u7a7a\uff0c\u90a3\u4e48\u8bf4\u660e\u6709\u6bd4\u76ee\u6807\u8fd8\u8981\u65b0\u7684\u4f9d\u8d56\u6587\u4ef6\u3002<br \/>\n$(filter-out $(PHONY) $(wildcard $^),$^)\uff1a$(wildcard $^) \u5339\u914d\u5f53\u524d\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u4f9d\u8d56\u6587\u4ef6(\u5df2\u7ecf\u5b58\u5728\u7684)\uff0c\u7136\u540e\u518d\u4f7f\u7528 $(filter-out $(PHONY) $(wildcard $^),$^) \u5c06\u4f2a\u76ee\u6807\u4ee5\u53ca\u5f53\u524d\u76ee\u5f55\u4e0b\u5339\u914d\u7684\u6587\u4ef6\u5217\u8868\u4ece\u6574\u4e2a $^ \u5217\u8868\u4e2d\u5220\u9664\uff0c\u5982\u679c\u8fd4\u56de\u4e0d\u4e3a\u7a7a\uff0c\u90a3\u4e48\u8bf4\u660e\u67d0\u4e9b\u4f9d\u8d56\u6587\u4ef6\u4e0d\u5b58\u5728\uff0c\u4e5f\u5c31\u662f\u8bf4\u8fd9\u4e9b\u4e0d\u5b58\u5728\u7684\u4f9d\u8d56\u6587\u4ef6\u8fd8\u6ca1\u751f\u6210 -- \u8fd9\u662f\u56e0\u4e3a\u67d0\u4e9b\u4f9d\u8d56\u6587\u4ef6\u9700\u8981\u5728\u7f16\u8bd1\u65f6\u624d\u4f1a\u751f\u6210\u3002<\/p>\n<\/li>\n<li>\n<p><strong>arg-check\u53d8\u91cf<\/strong><\/p>\n<pre><code class=\"language-bash\">ifneq ($(KBUILD_NOCMDDEP),1)\n# Check if both arguments has same arguments. Result is empty string if equal.\n# User may override this check using make KBUILD_NOCMDDEP=1\narg-check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \\\n                $(filter-out $(cmd_$@),   $(cmd_$(1))) )\nelse\narg-check = $(if $(strip $(cmd_$@)),,1)\nendif<\/code><\/pre>\n<\/li>\n<\/ul>\n<p>\u6253\u5370\u7ed3\u679cKBUILD_NOCMDDEP\u4e3a\u7a7a\uff0c\u6240\u4ee5\u4e0a\u9762\u7684\u811a\u672c\u8d70\u7684if\u5206\u652f\u3002<\/p>\n<pre><code class=\"language-bash\">arg-check = $(strip $(filter-out $(cmd_$(1)), $(cmd_$@)) \\\n                    $(filter-out $(cmd_$@),   $(cmd_$(1))) )<\/code><\/pre>\n<p>\u4ee5<strong>uboot<\/strong>\u4e3a\u4f8b\uff1a<\/p>\n<pre><code class=\"language-bash\">u-boot: $(u-boot-init) $(u-boot-main) u-boot.lds FORCE\n    +$(call if_changed,u-boot__)<\/code><\/pre>\n<p>\u4f20\u5165\u7684\u53c2\u6570$(1)\u5c31\u662fu-boot__\uff0c$@\u5c31\u662fu-boot\u3002\u7136\u540earg-check\u4f1a\u5bf9cmd_u-boot__\u4e0ecmd_u-boot\u53d8\u91cf\u8fdb\u884c\u5904\u7406\u3002<\/p>\n<blockquote>\n<p>u-boot-init<\/p>\n<\/blockquote>\n<p>u-boot-init := $(head-y)<br \/>\nhead-y\u662f\u5b9a\u4e49\u5728include arch\/$(ARCH)\/Makefile\u4e2d\uff0chead-y := arch\/arm\/cpu\/$(CPU)\/start.o<\/p>\n<blockquote>\n<p>u-boot-main<\/p>\n<\/blockquote>\n<p>u-boot-main := $(libs-y)<\/p>\n<p>libs-y: arch\/arm\/cpu\/built-in.o arch\/arm\/cpu\/armv8\/built-in.o arch\/arm\/lib\/built-in.o arch\/arm\/mach-rockchip\/built-in.o board\/rockchip\/evb_rk3588\/built-in.o cmd\/built-in.o common\/built-in.o disk\/built-in.o drivers\/built-in.o drivers\/cpu\/built-in.o drivers\/dma\/built-in.o drivers\/gpio\/built-in.o drivers\/i2c\/built-in.o drivers\/mtd\/built-in.o drivers\/mtd\/onenand\/built-in.o drivers\/mtd\/spi\/built-in.o drivers\/net\/built-in.o drivers\/net\/phy\/built-in.o drivers\/pci\/built-in.o drivers\/power\/built-in.o drivers\/power\/battery\/built-in.o drivers\/power\/charge\/built-in.o drivers\/power\/domain\/built-in.o drivers\/power\/dvfs\/built-in.o drivers\/power\/fuel_gauge\/built-in.o drivers\/power\/io-domain\/built-in.o drivers\/power\/mfd\/built-in.o drivers\/power\/pmic\/built-in.o drivers\/power\/regulator\/built-in.o drivers\/serial\/built-in.o drivers\/spi\/built-in.o drivers\/usb\/cdns3\/built-in.o drivers\/usb\/common\/built-in.o drivers\/usb\/dwc3\/built-in.o drivers\/usb\/emul\/built-in.o drivers\/usb\/eth\/built-in.o drivers\/usb\/gadget\/built-in.o drivers\/usb\/gadget\/udc\/built-in.o drivers\/usb\/host\/built-in.o drivers\/usb\/musb-new\/built-in.o drivers\/usb\/musb\/built-in.o drivers\/usb\/phy\/built-in.o drivers\/usb\/ulpi\/built-in.o env\/built-in.o fs\/built-in.o lib\/built-in.o net\/built-in.o test\/built-in.o test\/dm\/built-in.o<\/p>\n<p><strong>arg-check<\/strong>\u53d8\u91cf\u7684\u503c\uff1a\/home\/xinyi\/android\/code\/Task1-debian\/rk3588_source\/prebuilts\/gcc\/linux-x86\/aarch64\/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu\/bin\/aarch64-none-linux-gnu-ld.bfd -pie --gc-sections -Bstatic --no-dynamic-linker -Ttext 0x00200000 -o u-boot -T u-boot.lds arch\/arm\/cpu\/armv8\/start.o --start-group arch\/arm\/cpu\/built-in.o arch\/arm\/cpu\/armv8\/built-in.o arch\/arm\/lib\/built-in.o arch\/arm\/mach-rockchip\/built-in.o board\/rockchip\/evb_rk3588\/built-in.o cmd\/built-in.o common\/built-in.o disk\/built-in.o drivers\/built-in.o drivers\/cpu\/built-in.o drivers\/dma\/built-in.o drivers\/gpio\/built-in.o drivers\/i2c\/built-in.o drivers\/mtd\/built-in.o drivers\/mtd\/onenand\/built-in.o drivers\/mtd\/spi\/built-in.o drivers\/net\/built-in.o drivers\/net\/phy\/built-in.o drivers\/pci\/built-in.o drivers\/power\/built-in.o drivers\/power\/battery\/built-in.o drivers\/power\/charge\/built-in.o drivers\/power\/domain\/built-in.o drivers\/power\/dvfs\/built-in.o drivers\/power\/fuel_gauge\/built-in.o drivers\/power\/io-domain\/built-in.o drivers\/power\/mfd\/built-in.o drivers\/power\/pmic\/built-in.o drivers\/power\/regulator\/built-in.o drivers\/serial\/built-in.o drivers\/spi\/built-in.o drivers\/usb\/cdns3\/built-in.o drivers\/usb\/common\/built-in.o drivers\/usb\/dwc3\/built-in.o drivers\/usb\/emul\/built-in.o drivers\/usb\/eth\/built-in.o drivers\/usb\/gadget\/built-in.o drivers\/usb\/gadget\/udc\/built-in.o drivers\/usb\/host\/built-in.o drivers\/usb\/musb-new\/built-in.o drivers\/usb\/musb\/built-in.o drivers\/usb\/phy\/built-in.o drivers\/usb\/ulpi\/built-in.o env\/built-in.o fs\/built-in.o lib\/built-in.o net\/built-in.o test\/built-in.o test\/dm\/built-in.o --end-group -L \/home\/xinyi\/android\/code\/Task1-debian\/rk3588_source\/prebuilts\/gcc\/linux-x86\/aarch64\/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu\/bin\/..\/lib\/gcc\/aarch64-none-linux-gnu\/10.3.1 -lgcc -Map u-boot.map; true<\/p>\n<p><strong>any-prereq<\/strong>\u53d8\u91cf\u7684\u503c\uff1aarch\/arm\/cpu\/armv8\/start.o arch\/arm\/cpu\/built-in.o arch\/arm\/cpu\/armv8\/built-in.o arch\/arm\/lib\/built-in.o arch\/arm\/mach-rockchip\/built-in.o board\/rockchip\/evb_rk3588\/built-in.o cmd\/built-in.o common\/built-in.o disk\/built-in.o drivers\/built-in.o drivers\/cpu\/built-in.o drivers\/dma\/built-in.o drivers\/gpio\/built-in.o drivers\/i2c\/built-in.o drivers\/mtd\/built-in.o drivers\/mtd\/onenand\/built-in.o drivers\/mtd\/spi\/built-in.o drivers\/net\/built-in.o drivers\/net\/phy\/built-in.o drivers\/pci\/built-in.o drivers\/power\/built-in.o drivers\/power\/battery\/built-in.o drivers\/power\/charge\/built-in.o drivers\/power\/domain\/built-in.o drivers\/power\/dvfs\/built-in.o drivers\/power\/fuel_gauge\/built-in.o drivers\/power\/io-domain\/built-in.o drivers\/power\/mfd\/built-in.o drivers\/power\/pmic\/built-in.o drivers\/power\/regulator\/built-in.o drivers\/serial\/built-in.o drivers\/spi\/built-in.o drivers\/usb\/cdns3\/built-in.o drivers\/usb\/common\/built-in.o drivers\/usb\/dwc3\/built-in.o drivers\/usb\/emul\/built-in.o drivers\/usb\/eth\/built-in.o drivers\/usb\/gadget\/built-in.o drivers\/usb\/gadget\/udc\/built-in.o drivers\/usb\/host\/built-in.o drivers\/usb\/musb-new\/built-in.o drivers\/usb\/musb\/built-in.o drivers\/usb\/phy\/built-in.o drivers\/usb\/ulpi\/built-in.o env\/built-in.o fs\/built-in.o lib\/built-in.o net\/built-in.o test\/built-in.o test\/dm\/built-in.o u-boot.lds<\/p>\n<button class=\"simplefavorite-button\" data-postid=\"8192\" data-siteid=\"1\" data-groupid=\"1\" data-favoritecount=\"0\" style=\"\">\u6536\u85cf <i class=\"sf-icon-star-empty\"><\/i><\/button>","protected":false},"excerpt":{"rendered":"<p>if_changed\u51fd\u6570 http:\/\/t.zoukankan.com\/idyllcheung-p- [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[475],"tags":[],"_links":{"self":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/8192"}],"collection":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8192"}],"version-history":[{"count":9,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/8192\/revisions"}],"predecessor-version":[{"id":8217,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=\/wp\/v2\/posts\/8192\/revisions\/8217"}],"wp:attachment":[{"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8192"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/xinyiworld.top\/wordpress_it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}