| 1 | # $Id: footer.kmk 2726 2014-02-26 23:23:54Z bird $
|
|---|
| 2 | ## @file
|
|---|
| 3 | # kBuild - File included at bottom of a makefile.
|
|---|
| 4 | #
|
|---|
| 5 |
|
|---|
| 6 | #
|
|---|
| 7 | # Copyright (c) 2004-2014 knut st. osmundsen <bird-kBuild-spam-xiv@anduin.net>
|
|---|
| 8 | #
|
|---|
| 9 | # This file is part of kBuild.
|
|---|
| 10 | #
|
|---|
| 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.
|
|---|
| 15 | #
|
|---|
| 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.
|
|---|
| 20 | #
|
|---|
| 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
|
|---|
| 24 | #
|
|---|
| 25 | #
|
|---|
| 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.
|
|---|
| 31 | #
|
|---|
| 32 | #
|
|---|
| 33 |
|
|---|
| 34 | ifndef __footer_kmk__
|
|---|
| 35 | # start-of-file-content
|
|---|
| 36 | ifdef KBUILD_PROFILE_SELF
|
|---|
| 37 | $(evalcall def_profile_self, start of footer.kmk)
|
|---|
| 38 | _KBUILD_TS_FOOTER_START := $(_KBUILD_TS_PREV)
|
|---|
| 39 | endif
|
|---|
| 40 |
|
|---|
| 41 | #
|
|---|
| 42 | # Variables.
|
|---|
| 43 | # (Some of these need initialization before including definitions using them.)
|
|---|
| 44 | #
|
|---|
| 45 |
|
|---|
| 46 | # All targets of each types.
|
|---|
| 47 | _ALL_BLDPROGS := $(BLDPROGS) $(BLDPROGS.$(KBUILD_HOST)) $(BLDPROGS.$(KBUILD_HOST).$(KBUILD_HOST_ARCH)) $(BLDPROGS.$(KBUILD_HOST_ARCH)) $(BLDPROGS.$(KBUILD_HOST_CPU)) $(BLDPROGS.$(KBUILD_TYPE))
|
|---|
| 48 | _ALL_LIBRARIES := $(LIBRARIES) $(LIBRARIES.$(KBUILD_TARGET)) $(LIBRARIES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(LIBRARIES.$(KBUILD_TARGET_ARCH)) $(LIBRARIES.$(KBUILD_TARGET_CPU)) $(LIBRARIES.$(KBUILD_TYPE))
|
|---|
| 49 | _ALL_IMPORT_LIBS := $(IMPORT_LIBS) $(IMPORT_LIBS.$(KBUILD_TARGET)) $(IMPORT_LIBS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(IMPORT_LIBS.$(KBUILD_TARGET_ARCH)) $(IMPORT_LIBS.$(KBUILD_TARGET_CPU)) $(IMPORT_LIBS.$(KBUILD_TYPE))
|
|---|
| 50 | _ALL_DLLS := $(DLLS) $(DLLS.$(KBUILD_TARGET)) $(DLLS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(DLLS.$(KBUILD_TARGET_ARCH)) $(DLLS.$(KBUILD_TARGET_CPU)) $(DLLS.$(KBUILD_TYPE))
|
|---|
| 51 | _ALL_PROGRAMS := $(PROGRAMS) $(PROGRAMS.$(KBUILD_TARGET)) $(PROGRAMS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(PROGRAMS.$(KBUILD_TARGET_ARCH)) $(PROGRAMS.$(KBUILD_TARGET_CPU)) $(PROGRAMS.$(KBUILD_TYPE))
|
|---|
| 52 | _ALL_SYSMODS := $(SYSMODS) $(SYSMODS.$(KBUILD_TARGET)) $(SYSMODS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(SYSMODS.$(KBUILD_TARGET_ARCH)) $(SYSMODS.$(KBUILD_TARGET_CPU)) $(SYSMODS.$(KBUILD_TYPE))
|
|---|
| 53 | _ALL_MISCBINS := $(MISCBINS) $(MISCBINS.$(KBUILD_TARGET)) $(MISCBINS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(MISCBINS.$(KBUILD_TARGET_ARCH)) $(MISCBINS.$(KBUILD_TARGET_CPU)) $(MISCBINS.$(KBUILD_TYPE))
|
|---|
| 54 | _ALL_OTHERS := $(OTHERS) $(OTHERS.$(KBUILD_TARGET)) $(OTHERS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(OTHERS.$(KBUILD_TARGET_ARCH)) $(OTHERS.$(KBUILD_TARGET_CPU)) $(OTHERS.$(KBUILD_TYPE))
|
|---|
| 55 | _ALL_INSTALLS := $(INSTALLS) $(INSTALLS.$(KBUILD_TARGET)) $(INSTALLS.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(INSTALLS.$(KBUILD_TARGET_ARCH)) $(INSTALLS.$(KBUILD_TARGET_CPU)) $(INSTALLS.$(KBUILD_TYPE))
|
|---|
| 56 | _ALL_FETCHES := $(FETCHES) $(FETCHES.$(KBUILD_TARGET)) $(FETCHES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(FETCHES.$(KBUILD_TARGET_ARCH)) $(FETCHES.$(KBUILD_TARGET_CPU)) $(FETCHES.$(KBUILD_TYPE))
|
|---|
| 57 | _ALL_PATCHES := $(PATCHES) $(PATCHES.$(KBUILD_TARGET)) $(PATCHES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(PATCHES.$(KBUILD_TARGET_ARCH)) $(PATCHES.$(KBUILD_TARGET_CPU)) $(PATCHES.$(KBUILD_TYPE))
|
|---|
| 58 |
|
|---|
| 59 | # all targets.
|
|---|
| 60 | _ALL_TARGETS = \
|
|---|
| 61 | $(_ALL_FETCHES) \
|
|---|
| 62 | $(_ALL_PATCHES) \
|
|---|
| 63 | $(_ALL_BLDPROGS) \
|
|---|
| 64 | $(_ALL_LIBRARIES) \
|
|---|
| 65 | $(_ALL_IMPORT_LIBS) \
|
|---|
| 66 | $(_ALL_DLLS) \
|
|---|
| 67 | $(_ALL_PROGRAMS) \
|
|---|
| 68 | $(_ALL_SYSMODS) \
|
|---|
| 69 | $(_ALL_MISCBINS) \
|
|---|
| 70 | $(_ALL_INSTALLS) \
|
|---|
| 71 | $(_ALL_OTHERS)
|
|---|
| 72 |
|
|---|
| 73 | # all $(KBUILD_TARGET) targets.
|
|---|
| 74 | _ALL_TARGET_TARGETS = \
|
|---|
| 75 | $(_ALL_FETCHES) \
|
|---|
| 76 | $(_ALL_PATCHES) \
|
|---|
| 77 | $(_ALL_LIBRARIES) \
|
|---|
| 78 | $(_ALL_IMPORT_LIBS) \
|
|---|
| 79 | $(_ALL_DLLS) \
|
|---|
| 80 | $(_ALL_PROGRAMS) \
|
|---|
| 81 | $(_ALL_SYSMODS) \
|
|---|
| 82 | $(_ALL_MISCBINS) \
|
|---|
| 83 | $(_ALL_INSTALLS) \
|
|---|
| 84 | $(_ALL_OTHERS)
|
|---|
| 85 |
|
|---|
| 86 | # all $(KBUILD_HOST) targets.
|
|---|
| 87 | _ALL_HOST_TARGETS = \
|
|---|
| 88 | $(_ALL_BLDPROGS)
|
|---|
| 89 |
|
|---|
| 90 | # all targets making use of srcname.
|
|---|
| 91 | _ALL_SRCNAME_TARGETS = \
|
|---|
| 92 | $(_ALL_FETCHES) \
|
|---|
| 93 | $(_ALL_PATCHES)
|
|---|
| 94 |
|
|---|
| 95 | # Dependency files. (currently not on target level, only this global stuff)
|
|---|
| 96 | _DEPFILES := $(DEPFILES) $(DEPFILES.$(KBUILD_TARGET)) $(DEPFILES.$(KBUILD_TARGET).$(KBUILD_TARGET_ARCH)) $(DEPFILES.$(KBUILD_TARGET_ARCH)) $(DEPFILES.$(KBUILD_TARGET_CPU)) $(DEPFILES.$(KBUILD_TYPE))
|
|---|
| 97 |
|
|---|
| 98 | # included dependency files.
|
|---|
| 99 | _DEPFILES_INCLUDED :=
|
|---|
| 100 |
|
|---|
| 101 |
|
|---|
| 102 | # All kind of output files except for _OBJS and _DEPFILES.
|
|---|
| 103 | # Compiling or linking definition outputting other things that $@ and any
|
|---|
| 104 | # required dependency file must add those output files to this variable.
|
|---|
| 105 | _OUT_FILES :=
|
|---|
| 106 |
|
|---|
| 107 | # Files which only requires cleaning up.
|
|---|
| 108 | _CLEAN_FILES :=
|
|---|
| 109 |
|
|---|
| 110 | # all of a type
|
|---|
| 111 | _OBJS :=
|
|---|
| 112 | _FETCHES :=
|
|---|
| 113 | _DOWNLOADS:=
|
|---|
| 114 | _UNPACKS :=
|
|---|
| 115 | _PATCHES :=
|
|---|
| 116 | _UNFETCHES:=
|
|---|
| 117 | _BLDPROGS :=
|
|---|
| 118 | _LIBS :=
|
|---|
| 119 | _DLLS :=
|
|---|
| 120 | _PROGRAMS :=
|
|---|
| 121 | _SYSMODS :=
|
|---|
| 122 | _MISCBINS :=
|
|---|
| 123 | _STAGE_FILES :=
|
|---|
| 124 | _STAGE_DIRS :=
|
|---|
| 125 | _INSTALLS :=
|
|---|
| 126 | _INSTALLS_FILES :=
|
|---|
| 127 | _INSTALLS_DIRS :=
|
|---|
| 128 | _DEBUG_STAGE_FILES :=
|
|---|
| 129 | _DEBUG_STAGE_DIRS :=
|
|---|
| 130 | _DEBUG_INSTALL_FILES :=
|
|---|
| 131 | _DEBUG_INSTALL_DIRS :=
|
|---|
| 132 | _OTHERS :=
|
|---|
| 133 | _PACKING :=
|
|---|
| 134 | _DIRS := $(PATH_TARGET)/ $(PATH_TARGET) $(BLDDIRS)
|
|---|
| 135 | _IMPORT_LIBS :=
|
|---|
| 136 |
|
|---|
| 137 | # Implicit targets added while processing other targets (usually by units).
|
|---|
| 138 | _ALL_INSTALLS_IMPLICIT :=
|
|---|
| 139 |
|
|---|
| 140 | # misc
|
|---|
| 141 | pass_prev :=
|
|---|
| 142 |
|
|---|
| 143 |
|
|---|
| 144 |
|
|---|
| 145 | #
|
|---|
| 146 | # Footer macros
|
|---|
| 147 | #
|
|---|
| 148 |
|
|---|
| 149 | ## Figure out the tool for a target.
|
|---|
| 150 | # @param $1 normalized target.
|
|---|
| 151 | # @param $2 tooltype.
|
|---|
| 152 | # @param bld_trg build target.
|
|---|
| 153 | # @param bld_trg_arch build target architecture.
|
|---|
| 154 | # @param bld_type build target type.
|
|---|
| 155 | if 0
|
|---|
| 156 | _TARGET_TOOL = $(strip $(firstword \
|
|---|
| 157 | $($(1)_$(2)TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 158 | $($(1)_$(2)TOOL.$(bld_trg)) \
|
|---|
| 159 | $($(1)_$(2)TOOL) \
|
|---|
| 160 | $($(1)_TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 161 | $($(1)_TOOL.$(bld_trg)) \
|
|---|
| 162 | $($(1)_TOOL) \
|
|---|
| 163 | $($(2)TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 164 | $($(2)TOOL.$(bld_trg)) \
|
|---|
| 165 | $($(2)TOOL) \
|
|---|
| 166 | $(TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 167 | $(TOOL.$(bld_trg)) \
|
|---|
| 168 | $(TOOL) \
|
|---|
| 169 | ))
|
|---|
| 170 | else
|
|---|
| 171 | _TARGET_TOOL = $(strip $(firstword \
|
|---|
| 172 | $($(1)_$(2)TOOL.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 173 | $($(1)_$(2)TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 174 | $($(1)_$(2)TOOL.$(bld_trg).$(bld_type)) \
|
|---|
| 175 | $($(1)_$(2)TOOL.$(bld_trg_arch)) \
|
|---|
| 176 | $($(1)_$(2)TOOL.$(bld_trg)) \
|
|---|
| 177 | $($(1)_$(2)TOOL.$(bld_type)) \
|
|---|
| 178 | $($(1)_$(2)TOOL) \
|
|---|
| 179 | $($(1)_TOOL.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 180 | $($(1)_TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 181 | $($(1)_TOOL.$(bld_trg).$(bld_type)) \
|
|---|
| 182 | $($(1)_TOOL.$(bld_trg_arch)) \
|
|---|
| 183 | $($(1)_TOOL.$(bld_trg)) \
|
|---|
| 184 | $($(1)_TOOL.$(bld_type)) \
|
|---|
| 185 | $($(1)_TOOL) \
|
|---|
| 186 | $($(2)TOOL.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 187 | $($(2)TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 188 | $($(2)TOOL.$(bld_trg).$(bld_type)) \
|
|---|
| 189 | $($(2)TOOL.$(bld_trg_arch)) \
|
|---|
| 190 | $($(2)TOOL.$(bld_trg)) \
|
|---|
| 191 | $($(2)TOOL.$(bld_type)) \
|
|---|
| 192 | $($(2)TOOL) \
|
|---|
| 193 | $(TOOL.$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 194 | $(TOOL.$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 195 | $(TOOL.$(bld_trg).$(bld_type)) \
|
|---|
| 196 | $(TOOL.$(bld_trg_arch)) \
|
|---|
| 197 | $(TOOL.$(bld_trg)) \
|
|---|
| 198 | $(TOOL.$(bld_type)) \
|
|---|
| 199 | $(TOOL) \
|
|---|
| 200 | ))
|
|---|
| 201 | endif
|
|---|
| 202 |
|
|---|
| 203 | ## Figure out the actual name of an installed file.
|
|---|
| 204 | # @param $1 The file to install.
|
|---|
| 205 | # @param $2 The target name.
|
|---|
| 206 | # @param $3 The _INST value (can be empty).
|
|---|
| 207 | # @param $4 The installation root directory.
|
|---|
| 208 | _INSTALL_FILE = $(patsubst %/,%/$(notdir $(1)),$(if $(3),$(4)/$(3),$(4)/))
|
|---|
| 209 |
|
|---|
| 210 |
|
|---|
| 211 | ##
|
|---|
| 212 | # Function for getting the first defined propert value.
|
|---|
| 213 | #
|
|---|
| 214 | # @param 1 The property name.
|
|---|
| 215 | # @param 2 The default property name, empty if none.
|
|---|
| 216 | # @param 3 What to return if all variables are empty. (optional)
|
|---|
| 217 | # @note Implicit parameters: target, bld_trg, bld_trg_arch, bld_trg_cpu, bld_type.
|
|---|
| 218 | # @returns Expanded property value.
|
|---|
| 219 | #
|
|---|
| 220 | define def_fn_prop_get_first_defined
|
|---|
| 221 | local .RETURN := $(firstdefined \
|
|---|
| 222 | $(target)_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type) \
|
|---|
| 223 | $(target)_$(1).$(bld_trg).$(bld_trg_arch) \
|
|---|
| 224 | $(target)_$(1).$(bld_trg).$(bld_type) \
|
|---|
| 225 | $(target)_$(1).$(bld_trg_cpu) \
|
|---|
| 226 | $(target)_$(1).$(bld_trg_arch) \
|
|---|
| 227 | $(target)_$(1).$(bld_trg) \
|
|---|
| 228 | $(target)_$(1).$(bld_type) \
|
|---|
| 229 | $(target)_$(1) \
|
|---|
| 230 | )
|
|---|
| 231 | ifeq ($(.RETURN),)
|
|---|
| 232 | ifneq ($(2),)
|
|---|
| 233 | local .RETURN := $(firstdefined \
|
|---|
| 234 | $(2).$(bld_trg).$(bld_trg_arch).$(bld_type) \
|
|---|
| 235 | $(2).$(bld_trg).$(bld_trg_arch) \
|
|---|
| 236 | $(2).$(bld_trg).$(bld_type) \
|
|---|
| 237 | $(2).$(bld_trg_cpu) \
|
|---|
| 238 | $(2).$(bld_trg_arch) \
|
|---|
| 239 | $(2).$(bld_trg) \
|
|---|
| 240 | $(2).$(bld_type) \
|
|---|
| 241 | $(2) \
|
|---|
| 242 | 3 \
|
|---|
| 243 | )
|
|---|
| 244 | else
|
|---|
| 245 | local .RETURN := $(firstdefined \
|
|---|
| 246 | kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type) \
|
|---|
| 247 | kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch) \
|
|---|
| 248 | kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_type) \
|
|---|
| 249 | kBuildGlobalDefaults_$(1).$(bld_trg_cpu) \
|
|---|
| 250 | kBuildGlobalDefaults_$(1).$(bld_trg_arch) \
|
|---|
| 251 | kBuildGlobalDefaults_$(1).$(bld_trg) \
|
|---|
| 252 | kBuildGlobalDefaults_$(1).$(bld_type) \
|
|---|
| 253 | kBuildGlobalDefaults_$(1) \
|
|---|
| 254 | 3 \
|
|---|
| 255 | )
|
|---|
| 256 | endif
|
|---|
| 257 | endif
|
|---|
| 258 | local .RETURN := $(strip $($(.RETURN)))
|
|---|
| 259 | endef # def_fn_prop_get_first_defined
|
|---|
| 260 |
|
|---|
| 261 | ##
|
|---|
| 262 | # Function for getting the first property value (ignoring empty defines).
|
|---|
| 263 | #
|
|---|
| 264 | # @param 1 The property name.
|
|---|
| 265 | # @param 2 The default property name, empty if none.
|
|---|
| 266 | # @param 3 What to return if all variables are empty. (optional)
|
|---|
| 267 | # @note Implicit parameters: target, bld_trg, bld_trg_arch, bld_trg_cpu, bld_type.
|
|---|
| 268 | # @returns First word.
|
|---|
| 269 | #
|
|---|
| 270 | define def_fn_prop_get_first_word
|
|---|
| 271 | local .RETURN := $(firstword \
|
|---|
| 272 | $($(target)_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 273 | $($(target)_$(1).$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 274 | $($(target)_$(1).$(bld_trg).$(bld_type)) \
|
|---|
| 275 | $($(target)_$(1).$(bld_trg_cpu)) \
|
|---|
| 276 | $($(target)_$(1).$(bld_trg_arch)) \
|
|---|
| 277 | $($(target)_$(1).$(bld_trg)) \
|
|---|
| 278 | $($(target)_$(1).$(bld_type)) \
|
|---|
| 279 | $($(target)_$(1)) \
|
|---|
| 280 | )
|
|---|
| 281 | ifeq ($(.RETURN),)
|
|---|
| 282 | ifneq ($(2),)
|
|---|
| 283 | local .RETURN := $(firstword \
|
|---|
| 284 | $($(2).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 285 | $($(2).$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 286 | $($(2).$(bld_trg).$(bld_type)) \
|
|---|
| 287 | $($(2).$(bld_trg_cpu)) \
|
|---|
| 288 | $($(2).$(bld_trg_arch)) \
|
|---|
| 289 | $($(2).$(bld_trg)) \
|
|---|
| 290 | $($(2).$(bld_type)) \
|
|---|
| 291 | $($(2)) \
|
|---|
| 292 | $(3) \
|
|---|
| 293 | )
|
|---|
| 294 | else
|
|---|
| 295 | local .RETURN := $(firstword \
|
|---|
| 296 | $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
|
|---|
| 297 | $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch)) \
|
|---|
| 298 | $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_type)) \
|
|---|
| 299 | $(kBuildGlobalDefaults_$(1).$(bld_trg_cpu)) \
|
|---|
| 300 | $(kBuildGlobalDefaults_$(1).$(bld_trg_arch)) \
|
|---|
| 301 | $(kBuildGlobalDefaults_$(1).$(bld_trg)) \
|
|---|
| 302 | $(kBuildGlobalDefaults_$(1).$(bld_type)) \
|
|---|
| 303 | $(kBuildGlobalDefaults_$(1)) \
|
|---|
| 304 | $(3) \
|
|---|
| 305 | )
|
|---|
| 306 | endif
|
|---|
| 307 | endif
|
|---|
| 308 | endef # def_fn_prop_get_first_word
|
|---|
| 309 |
|
|---|
| 310 |
|
|---|
| 311 | #
|
|---|
| 312 | # The main body.
|
|---|
| 313 | #
|
|---|
| 314 | include $(KBUILD_PATH)/footer-inherit-uses-tools.kmk
|
|---|
| 315 | include $(KBUILD_PATH)/footer-pass1.kmk
|
|---|
| 316 | include $(KBUILD_PATH)/footer-pass2-fetches.kmk
|
|---|
| 317 | include $(KBUILD_PATH)/footer-pass2-patches.kmk
|
|---|
| 318 | include $(KBUILD_PATH)/footer-pass2-compiling-targets.kmk
|
|---|
| 319 | include $(KBUILD_PATH)/footer-pass2-installs.kmk
|
|---|
| 320 | include $(KBUILD_PATH)/footer-misc.kmk
|
|---|
| 321 | include $(KBUILD_PATH)/footer-passes.kmk
|
|---|
| 322 |
|
|---|
| 323 |
|
|---|
| 324 | #
|
|---|
| 325 | # THE MAIN RULES
|
|---|
| 326 | #
|
|---|
| 327 | all_recursive: $(pass_prev)
|
|---|
| 328 |
|
|---|
| 329 | rebuild: clean
|
|---|
| 330 | + $(MAKE) -f $(firstword $(MAKEFILE_LIST)) all_recursive
|
|---|
| 331 |
|
|---|
| 332 | # @todo make this a non-default pass!
|
|---|
| 333 | uninstall::
|
|---|
| 334 | $(RM) -f -- $(_INSTALLS_FILES)
|
|---|
| 335 |
|
|---|
| 336 | install:: pass_installs
|
|---|
| 337 |
|
|---|
| 338 | # misc shortcuts (use secondary expansion here to save strcache[file] space).
|
|---|
| 339 | targets: bldprogs libraries dlls programs sysmods miscbins others installs
|
|---|
| 340 | objects: $$(_OBJS)
|
|---|
| 341 | bldprogs: $$(_BLDPROGS)
|
|---|
| 342 | libraries: $$(_LIBS) $$(_IMPORT_LIBS) $$(_OTHER_LIBRARIES)
|
|---|
| 343 | dlls: $$(_DLLS)
|
|---|
| 344 | programs: $$(_PROGRAMS)
|
|---|
| 345 | sysmods: $$(_SYSMODS)
|
|---|
| 346 | miscbins: $$(_MISCBINS)
|
|---|
| 347 | others: $$(_OTHERS)
|
|---|
| 348 | stagings: $$(_INSTALLS) $$(_STAGE_DIRS) $$(_STAGE_FILES)
|
|---|
| 349 | installs: $$(_INSTALLS_DIRS) $$(_INSTALLS_FILES)
|
|---|
| 350 |
|
|---|
| 351 | install-debug: $$(_DEBUG_INSTALL_DIRS) $$(_DEBUG_INSTALL_FILES)
|
|---|
| 352 |
|
|---|
| 353 |
|
|---|
| 354 |
|
|---|
| 355 | #
|
|---|
| 356 | # kBuild debugging stuff.
|
|---|
| 357 | #
|
|---|
| 358 | ## @todo this doesn't work. Move to a debug unit and expand it.
|
|---|
| 359 | show_targets:
|
|---|
| 360 | @$(foreach target, $(_ALL_TARGETS),\
|
|---|
| 361 | @$(ECHO) "target: $(target)" $(NLTAB)\
|
|---|
| 362 | @$(ECHO) " $(target)_0_OUTDIR=$($(target)_0_OUTDIR)" $(NLTAB)\
|
|---|
| 363 | @$(ECHO) " $(target)_1_TARGET=$($(target)_1_TARGET)" $(NLTAB)\
|
|---|
| 364 | @$(ECHO) " INSTARGET_$(target)=$(INSTARGET_$(target))" $(NLTAB)\
|
|---|
| 365 | $(foreach prop,$(PROPS_SINGLE) $(PROPS_ACCUMULATE_L) $(PROPS_ACCUMULATE_R) 2_OBJS CLEAN, \
|
|---|
| 366 | $(eval _tmp:=$(firstword $($(target)_BLD_TRG) $(KBUILD_TARGET))) \
|
|---|
| 367 | $(if $($(target)_$(prop).$(_tmp)),\
|
|---|
| 368 | @$(ECHO) " $(target)_$(prop).$(_tmp)=$($(target)_$(prop).$(_tmp))" $(NLTAB)) \
|
|---|
| 369 | $(if $($(target)_$(prop)), $(NLTAB)@$(ECHO) " $(target)_$(prop)=$($(target)_$(prop))" $(NLTAB)) \
|
|---|
| 370 | )\
|
|---|
| 371 | $(foreach prop,$(PROPS_DEFERRED), \
|
|---|
| 372 | $(eval _tmp:=$(firstword $($(target)_BLD_TRG) $(KBUILD_TARGET))) \
|
|---|
| 373 | $(if $(value $(target)_$(prop).$(_tmp)),\
|
|---|
| 374 | @$(ECHO) ' $(target)_$(prop).$(_tmp)=$(value $(TARGET)_$(prop).$(_tmp))' $(NLTAB)) \
|
|---|
| 375 | $(if $(value $(target)_$(prop)), $(NLTAB)@$(ECHO) ' $(target)_$(prop)=$(value $(target)_$(prop))' $(NLTAB)) \
|
|---|
| 376 | ))
|
|---|
| 377 |
|
|---|
| 378 |
|
|---|
| 379 |
|
|---|
| 380 | #
|
|---|
| 381 | # Include dependency files.
|
|---|
| 382 | #
|
|---|
| 383 | ifdef _DEPFILES
|
|---|
| 384 | # TODO: first works the second doesn't, provided _KB_INCLUDE_DEPS is undefined:
|
|---|
| 385 | # if "$(_KB_INCLUDE_DEPS)" == "1"
|
|---|
| 386 | # if $(_KB_INCLUDE_DEPS) == "1"
|
|---|
| 387 |
|
|---|
| 388 | ifdef KB_HAVE_INCLUDEDEP_QUEUE
|
|---|
| 389 | includedep-queue $(_DEPFILES)
|
|---|
| 390 | else
|
|---|
| 391 | $(foreach dep, $(_DEPFILES), $(eval includedep $(dep)))
|
|---|
| 392 | endif
|
|---|
| 393 | endif
|
|---|
| 394 |
|
|---|
| 395 |
|
|---|
| 396 | ifdef KBUILD_PROFILE_SELF
|
|---|
| 397 | $(evalcall def_profile_self, end of footer.kmk)
|
|---|
| 398 | _KBUILD_TS_FOOTER_END := $(_KBUILD_TS_PREV)
|
|---|
| 399 |
|
|---|
| 400 | ifneq ($(KBUILD_PROFILE_SELF),0)
|
|---|
| 401 | $(info prof: ALL=$(words $(_ALL_TARGETS)) BLDPROGS=$(words $(_ALL_BLDPROGS)) LIBRARIES=$(words $(_ALL_LIBRARIES)) IMPORT_LIBS=$(words $(IMPORT_LIBS)) DLLS=$(words $(DLLS)) PROGRAMS=$(words $(_ALL_PROGRAMS)) )
|
|---|
| 402 | $(info prof: SYSMODS=$(words $(_ALL_SYSMODS)) MISCBINS=$(words $(_ALL_MISCBINS)) OTHERS=$(words $(_ALL_OTHERS)) INSTALLS=$(words $(_ALL_INSTALLS)) FETCHES=$(words $(_ALL_FETCHES)) PACKING=$(words $(_PACKING)) TESTING=$(words $(TESTING)) )
|
|---|
| 403 | $(info prof: DIRS=$(words $(_DIR_ALL)) TOOLS=$(words $(_TOOLS)) SDKS=$(words $(_SDKS)) USES=$(words $(_USES)) OUT_FILES=$(words $(_OUT_FILES)) OBJS=$(words $(_OBJS)) CLEAN_FILES=$(words $(CLEAN_FILES) $(OTHER_CLEAN)) )
|
|---|
| 404 | $(info prof: DEPFILES_INCLUDED=$(words $(_DEPFILES_INCLUDED)) DEPFILES=$(words $(_DEPFILES)) MAKEFILES=$(words $(MAKEFILE_LIST)) )
|
|---|
| 405 | endif
|
|---|
| 406 | endif
|
|---|
| 407 |
|
|---|
| 408 |
|
|---|
| 409 | # end-of-file-content
|
|---|
| 410 | __footer_kmk__ := target
|
|---|
| 411 | endif # !defined(__footer_kmk__)
|
|---|
| 412 |
|
|---|