| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 | # -*- coding: utf-8; mode: makefile-gmake -*-ifeq (,$(wildcard /.lxcenv.mk))PHONY += lxc-activate lxc-purgelxc-activate:	@$(MAKE) -s -f "$$(dirname $(abspath $(lastword $(MAKEFILE_LIST))))/makefile.lxc" lxc-activatelxc-purge:	$(Q)rm -rf ./lxc-envelse	include /.lxcenv.mkendififeq (,$(wildcard /.lxcenv.mk))make-help:elsemake-help: lxc-helpendif	@echo  '  make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build'	@echo  '  make V=2   [targets] 2 => give reason for rebuild of target'quiet_cmd_common_clean = CLEAN     $@      cmd_common_clean = \	find . -name '*.orig' -exec rm -f {} +     ;\	find . -name '*.rej' -exec rm -f {} +      ;\	find . -name '*~' -exec rm -f {} +         ;\	find . -name '*.bak' -exec rm -f {} +      ;\FMT = catifeq ($(shell which fmt >/dev/null 2>&1; echo $$?), 0)FMT = fmtendif# MS-Windows## For a minimal *make-environment*, I'am using the gnu-tools from:## - GNU MCU Eclipse Windows Build Tools, which brings 'make', 'rm' etc.#   https://github.com/gnu-mcu-eclipse/windows-build-tools/releases## - git for Windows, which brings 'find', 'grep' etc.#   https://git-scm.com/download/win# normpath## System-dependent normalization of the path name##   usage: $(call normpath,/path/to/file)normpath = $1ifeq ($(OS),Windows_NT)  normpath = $(subst /,\,$1)endif# stolen from linux/Makefile#ifeq ("$(origin V)", "command line")  KBUILD_VERBOSE = $(V)endififndef KBUILD_VERBOSE  KBUILD_VERBOSE = 0endififeq ($(KBUILD_VERBOSE),1)  quiet =  Q =else  quiet=quiet_  Q = @endif# stolen from linux/scripts/Kbuild.include## Convenient variablescomma   := ,quote   := "#" this comment is only for emacs highlightingsquote  := '#' this comment is only for emacs highlightingempty   :=space   := $(empty) $(empty)space_escape := _-_SPACE_-_# Find any prerequisites that is newer than target or that does not exist.# PHONY targets skipped in both cases.any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^)##### why - tell why a a target got build#       enabled by make V=2#       Output (listed in the order they are checked):#          (1) - due to target is PHONY#          (2) - due to target missing#          (3) - due to: file1.h file2.h#          (4) - due to command line change#          (5) - due to missing .cmd file#          (6) - due to target not in $(targets)# (1) PHONY targets are always build# (2) No target, so we better build it# (3) Prerequisite is newer than target# (4) The command line stored in the file named dir/.target.cmd#     differed from actual command line. This happens when compiler#     options changes# (5) No dir/.target.cmd file (used to store command line)# (6) No dir/.target.cmd file and target not listed in $(targets)#     This is a good hint that there is a bug in the kbuild fileifeq ($(KBUILD_VERBOSE),2)why =                                                                        \    $(if $(filter $@, $(PHONY)),- due to target is PHONY,                    \        $(if $(wildcard $@),                                                 \            $(if $(strip $(any-prereq)),- due to: $(any-prereq),             \                $(if $(arg-check),                                           \                    $(if $(cmd_$@),- due to command line change,             \                        $(if $(filter $@, $(targets)),                       \                            - due to missing .cmd file,                      \                            - due to $(notdir $@) not in $$(targets)         \                         )                                                   \                     )                                                       \                 )                                                           \             ),                                                              \             - due to target missing                                         \         )                                                                   \     )echo-why = $(call escsq, $(strip $(why)))endif##### Escape single quote for use in echo statementsescsq = $(subst $(squote),'\$(squote)',$1)## echo command.# Short version is used, if $(quiet) equals `quiet_', otherwise full one.echo-cmd = $(if $($(quiet)cmd_$(1)),echo '$(call escsq,$($(quiet)cmd_$(1)))$(echo-why)';)## printing commandscmd = @$(echo-cmd) $(cmd_$(1)).PHONY: $(PHONY)
 |