mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
nmk: recompile/regenerate on Makefile changes
Now changes in top-Makefile, middle-Makefile will result in a correct
recompiling, as it's expected:
[criu]$ touch criu/Makefile
[criu]$ make
<...>
DEP criu/arch/x86/sigframe.d
DEP criu/arch/x86/sigaction_compat.d
DEP criu/arch/x86/crtools.d
DEP criu/arch/x86/cpu.d
DEP criu/arch/x86/call32.d
CC criu/arch/x86/call32.o
CC criu/arch/x86/cpu.o
CC criu/arch/x86/crtools.o
<...>
travis-ci: success for Fix rebuild on Makefile changes
Reported-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Acked-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
This commit is contained in:
parent
56e89b205f
commit
5abbb79124
1 changed files with 24 additions and 17 deletions
|
|
@ -24,6 +24,13 @@ ifndef obj
|
|||
$(error obj is undefined)
|
||||
endif
|
||||
|
||||
ifndef __nmk-makefile-deps
|
||||
# Add top-make - it isn't included into this build.mk
|
||||
__nmk-makefile-deps := Makefile
|
||||
endif
|
||||
__nmk-makefile-deps += $(src-makefile)
|
||||
export __nmk-makefile-deps
|
||||
|
||||
#
|
||||
# Filter out any -Wl,XXX option: some of build farms
|
||||
# assumes that we're using $(CC) for building built-in
|
||||
|
|
@ -50,25 +57,25 @@ endef
|
|||
#
|
||||
# General rules.
|
||||
define gen-cc-rules
|
||||
$(1).o: $(2).c $(src-makefile)
|
||||
$(1).o: $(2).c $(__nmk-makefile-deps)
|
||||
$$(call msg-cc, $$@)
|
||||
$$(Q) $$(CC) -c $$(strip $$(nmk-ccflags)) $$< -o $$@
|
||||
$(1).i: $(2).c $(src-makefile)
|
||||
$(1).i: $(2).c $(__nmk-makefile-deps)
|
||||
$$(call msg-cc, $$@)
|
||||
$$(Q) $$(CC) -E $$(strip $$(nmk-ccflags)) $$< -o $$@
|
||||
$(1).s: $(2).c $(src-makefile)
|
||||
$(1).s: $(2).c $(__nmk-makefile-deps)
|
||||
$$(call msg-cc, $$@)
|
||||
$$(Q) $$(CC) -S -fverbose-asm $$(strip $$(nmk-ccflags)) $$< -o $$@
|
||||
$(1).d: $(2).c $(src-makefile)
|
||||
$(1).d: $(2).c $(__nmk-makefile-deps)
|
||||
$$(call msg-dep, $$@)
|
||||
$$(Q) $$(CC) -M -MT $$@ -MT $$(patsubst %.d,%.o,$$@) $$(strip $$(nmk-ccflags)) $$< -o $$@
|
||||
$(1).o: $(2).S $(src-makefile)
|
||||
$(1).o: $(2).S $(__nmk-makefile-deps)
|
||||
$$(call msg-cc, $$@)
|
||||
$$(Q) $$(CC) -c $$(strip $$(nmk-asflags)) $$< -o $$@
|
||||
$(1).i: $(2).S $(src-makefile)
|
||||
$(1).i: $(2).S $(__nmk-makefile-deps)
|
||||
$$(call msg-cc, $$@)
|
||||
$$(Q) $$(CC) -E $$(strip $$(nmk-asflags)) $$< -o $$@
|
||||
$(1).d: $(2).S $(src-makefile)
|
||||
$(1).d: $(2).S $(__nmk-makefile-deps)
|
||||
$$(call msg-dep, $$@)
|
||||
$$(Q) $$(CC) -M -MT $$@ -MT $$(patsubst %.d,%.o,$$@) $$(strip $$(nmk-asflags)) $$< -o $$@
|
||||
endef
|
||||
|
|
@ -150,7 +157,7 @@ ifdef builtin-target
|
|||
$(eval $(call gen-ld-target-rule, \
|
||||
$(builtin-target), \
|
||||
$(ld_flags), \
|
||||
$(obj-y) $(src-makefile), \
|
||||
$(obj-y) $(__nmk-makefile-deps), \
|
||||
$(obj-y) $(call objectify,$(obj-e))))
|
||||
endif
|
||||
|
||||
|
|
@ -158,7 +165,7 @@ ifdef lib-target
|
|||
$(eval $(call gen-ar-target-rule, \
|
||||
$(lib-target), \
|
||||
$(ARFLAGS) $(arflags-y), \
|
||||
$(lib-y) $(src-makefile), \
|
||||
$(lib-y) $(__nmk-makefile-deps), \
|
||||
$(lib-y) $(call objectify,$(lib-e))))
|
||||
endif
|
||||
|
||||
|
|
@ -170,7 +177,7 @@ define gen-custom-target-rule
|
|||
$(obj)/$(1).built-in.o, \
|
||||
$(ld_flags) $(LDFLAGS_$(1)), \
|
||||
$(call objectify,$($(1)-obj-y)) \
|
||||
$(src-makefile), \
|
||||
$(__nmk-makefile-deps), \
|
||||
$(call objectify,$($(1)-obj-y)) \
|
||||
$(call objectify,$($(1)-obj-e))))
|
||||
all-y += $(obj)/$(1).built-in.o
|
||||
|
|
@ -183,7 +190,7 @@ define gen-custom-target-rule
|
|||
$(obj)/$(1).lib.a, \
|
||||
$(ARFLAGS) $($(1)-arflags-y), \
|
||||
$(call objectify,$($(1)-lib-y)) \
|
||||
$(src-makefile), \
|
||||
$(__nmk-makefile-deps), \
|
||||
$(call objectify,$($(1)-lib-y))) \
|
||||
$(call objectify,$($(1)-lib-e)))
|
||||
all-y += $(obj)/$(1).lib.a
|
||||
|
|
@ -203,16 +210,16 @@ $(foreach t,$(objdirs),$(eval $(call gen-cc-rules,$(t)/%,$(t)/%)))
|
|||
#
|
||||
# Host programs.
|
||||
define gen-host-cc-rules
|
||||
$(addprefix $(obj)/,$(1)): $(obj)/%.o: $(obj)/%.c $(src-makefile)
|
||||
$(addprefix $(obj)/,$(1)): $(obj)/%.o: $(obj)/%.c $(__nmk-makefile-deps)
|
||||
$$(call msg-host-cc, $$@)
|
||||
$$(Q) $$(HOSTCC) -c $$(strip $$(nmk-host-ccflags)) $$< -o $$@
|
||||
$(patsubst %.o,%.i,$(addprefix $(obj)/,$(1))): $(obj)/%.i: $(obj)/%.c $(src-makefile)
|
||||
$(patsubst %.o,%.i,$(addprefix $(obj)/,$(1))): $(obj)/%.i: $(obj)/%.c $(__nmk-makefile-deps)
|
||||
$$(call msg-host-cc, $$@)
|
||||
$$(Q) $$(HOSTCC) -E $$(strip $$(nmk-host-ccflags)) $$< -o $$@
|
||||
$(patsubst %.o,%.s,$(addprefix $(obj)/,$(1))): $(obj)/%.s: $(obj)/%.c $(src-makefile)
|
||||
$(patsubst %.o,%.s,$(addprefix $(obj)/,$(1))): $(obj)/%.s: $(obj)/%.c $(__nmk-makefile-deps)
|
||||
$$(call msg-host-cc, $$@)
|
||||
$$(Q) $$(HOSTCC) -S -fverbose-asm $$(strip $$(nmk-host-ccflags)) $$< -o $$@
|
||||
$(patsubst %.o,%.d,$(addprefix $(obj)/,$(1))): $(obj)/%.d: $(obj)/%.c $(src-makefile)
|
||||
$(patsubst %.o,%.d,$(addprefix $(obj)/,$(1))): $(obj)/%.d: $(obj)/%.c $(__nmk-makefile-deps)
|
||||
$$(call msg-host-dep, $$@)
|
||||
$$(Q) $$(HOSTCC) -M -MT $$@ -MT $$(patsubst %.d,%.o,$$@) $$(strip $$(nmk-host-ccflags)) $$< -o $$@
|
||||
endef
|
||||
|
|
@ -221,7 +228,7 @@ define gen-host-rules
|
|||
$(eval $(call gen-host-cc-rules,$($(1)-objs)))
|
||||
all-y += $(addprefix $(obj)/,$($(1)-objs))
|
||||
cleanup-y += $(call cleanify,$(addprefix $(obj)/,$($(1)-objs)))
|
||||
$(obj)/$(1): $(addprefix $(obj)/,$($(1)-objs)) $(src-makefile)
|
||||
$(obj)/$(1): $(addprefix $(obj)/,$($(1)-objs)) $(__nmk-makefile-deps)
|
||||
$$(call msg-host-link, $$@)
|
||||
$$(Q) $$(HOSTCC) $$(HOSTCFLAGS) $(addprefix $(obj)/,$($(1)-objs)) $$(HOSTLDFLAGS) $$(HOSTLDFLAGS_$$(@F)) -o $$@
|
||||
all-y += $(obj)/$(1)
|
||||
|
|
@ -232,7 +239,7 @@ $(foreach t,$(hostprogs-y),$(eval $(call gen-host-rules,$(t))))
|
|||
#
|
||||
# Dynamic library linking.
|
||||
define gen-so-link-rules
|
||||
$(call objectify,$(1)).so: $(call objectify,$($(1)-objs)) $(src-makefile)
|
||||
$(call objectify,$(1)).so: $(call objectify,$($(1)-objs)) $(__nmk-makefile-deps)
|
||||
$$(call msg-link, $$@)
|
||||
$$(Q) $$(CC) -shared $$(ldflags-so) $$(LDFLAGS) $$(LDFLAGS_$$(@F)) -o $$@ $(call objectify,$($(1)-objs))
|
||||
all-y += $(call objectify,$(1)).so
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue