grep/dfa.c: Workaround for Visual C++ 2022 (amd64) optimizer bug. (same as sed)
[kbuild-mirror.git] / kBuild / footer-misc.kmk
blob61964a73bc4f41c71b9d31af87bbd8bc9531b671
1 # $Id$
2 ## @file
3 # kBuild - Footer - Target lists - Pass 2 - Misc.
7 # Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
9 # This file is part of kBuild.
11 # kBuild is free software; you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation; either version source of the License, or
14 # (at your option) any later version.
16 # kBuild is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 # GNU General Public License for more details.
21 # You should have received a copy of the GNU General Public License
22 # along with kBuild; if not, write to the Free Software
23 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 # As a special exception you are granted permission to include this file, via
27 # the kmk include directive, as you wish without this in itself causing the
28 # resulting makefile, program or whatever to be covered by the GPL license.
29 # This exception does not however invalidate any other reasons why the makefile,
30 # program, whatever should not be covered the GPL.
36 # OTHERS
38 _OTHERS = $(OTHERS) $(OTHERS.$(KBUILD_TARGET)) $(OTHERS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH))
43 # TESTING
45 _TESTING += $(TESTING) \
46 $(TESTING.$(KBUILD_TARGET)) \
47 $(TESTING.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) \
48 $(TESTING.$(KBUILD_TARGET_ARCH)) \
49 $(TESTING.$(KBUILD_TARGET_CPU))
53 # PACKING
55 _PACKING += $(PACKING) \
56 $(PACKING.$(KBUILD_TARGET)) \
57 $(PACKING.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) \
58 $(PACKING.$(KBUILD_TARGET_ARCH)) \
59 $(PACKING.$(KBUILD_TARGET_CPU))
63 # DOCS
68 # DIRECTORIES
70 _DIR_ALL := $(sort \
71 $(addsuffix /,$(patsubst %/,%,$(_DIRS) )) \
72 $(dir $(_OUT_FILES) $(_OBJS) $(_INSTALLS_FILES) $(_DEBUG_INSTALL_FILES) $(_STAGE_FILES) $(_DEBUG_STAGE_FILES) ) \
73 $(foreach path, $(KBUILD_INST_PATHS), $(PATH_INS)/$(INST_$(path)) $(PATH_STAGE)/$(STAGE_$(path)) ) \
74 $(dir $(patsubst %/,%, $(_INSTALLS_DIRS) $(_STAGE_DIRS) $(_DEBUG_INSTALL_DIRS) $(_DEBUG_STAGE_DIRS)) ) \
76 $(foreach directory, \
77 $(_INSTALLS_DIRS) \
78 $(_STAGE_DIRS) \
79 $(_DEBUG_INSTALL_DIRS) \
80 $(_DEBUG_STAGE_DIRS) \
81 , $(eval _DIR_ALL := $(filter-out $(directory),$(_DIR_ALL))) )
84 define def_mkdir_rule
85 $(directory):
86 %$$(call MSG_MKDIR,$$@)
87 $$(QUIET)$$(MKDIR) -p -- $$@
88 endef
90 $(foreach directory,$(_DIR_ALL),$(eval $(def_mkdir_rule)))
92 ifdef KBUILD_PROFILE_SELF
93 $(evalcall def_profile_self, done directories)
94 endif
98 # NOTHING
100 do-nothing:
101 %$(call MSG_NOTHING)
102 ifdef KBUILD_PROFILE_SELF
103 @$(ECHO) 'prof: $(call _KBUILD_FMT_ELAPSED_EX, $(nanots ), $(_KBUILD_TS_HEADER_START)) - $(call _KBUILD_FMT_ELAPSED_EX, $(nanots ), $(_KBUILD_TS_PREV)) - executing $@'
104 ifeq ($(KBUILD_PROFILE_SELF),2)
105 @$(ECHO) 'stat: $(make-stats )'
106 endif
107 endif
111 # CLEAN UP
113 do-clean:
114 %$(call MSG_CLEAN)
115 $(QUIET)$(RM) -f -- \
116 $(_OUT_FILES) \
117 $(_OBJS) \
118 $(_DEPFILES) \
119 $(_DEPFILES_INCLUDED) \
120 $(_CLEAN_FILES) \
121 $(OTHER_CLEAN) \
122 $(_STAGE_FILES) \
123 $(_DEBUG_STAGE_FILES)
124 $(QUIET)$(RMDIR) -p --ignore-fail-on-non-empty --ignore-fail-on-not-exist -- \
125 $(rsort $(dir $(_OUT_FILES) \
126 $(_OBJS) \
127 $(_DEPFILES) \
128 $(_DEPFILES_INCLUDED) \
129 $(_CLEAN_FILES) \
130 $(OTHER_CLEAN) \
131 $(_STAGE_FILES) \
132 $(_DEBUG_STAGE_FILES) )\
133 $(_STAGE_DIRS) )