• Dmitry Safonov's avatar
    Makefile: add .FORCE target · 6f58ca5a
    Dmitry Safonov authored
    Sorry for introducing that, but we need to force-rebuild implicit
    rules on the level of main Makefile. All the sub-makefiles should
    decide if the force-rebuilding target really needs a rebuild,
    because they know it's dependencies.
    
    Pattern-specific rules are implicit, so something like:
    .PHONY: compel/% criu/% #...
    will not work.
    .FORCE target seems the simplest way to solve this
    "going to submake on rebuild" problem.
    But maybe there is more elegant proposal?
    
    FWIW, before this patch:
        [criu]$ make compel/compel
        make[1]: Entering directory '~/tools/criu'
          HOSTDEP  compel/handle-elf-32.d
        ...
          HOSTLINK compel/compel
        make[1]: Leaving directory '~/tools/criu'
        [criu]$ touch compel/main.c
        [criu]$ make compel/compel
        make: 'compel/compel' is up to date.
        [criu]$ touch compel/Makefile
        [criu]$ make compel/compel
        make: 'compel/compel' is up to date.
    After the patch:
        [criu]$ touch compel/main.c
        [criu]$ make compel/compel
        make[1]: Entering directory '~/tools/criu'
          HOSTDEP  compel/main.d
          HOSTCC   compel/main.o
          HOSTLINK compel/compel
        make[1]: Leaving directory '~/tools/criu'
        [criu]$ touch compel/Makefile
        [criu]$ make compel/compel
        make[1]: Entering directory '~/tools/criu'
          HOSTDEP  compel/handle-elf-32.d
        ...
          HOSTLINK compel/compel
        make[1]: Leaving directory '~/tools/criu'
    
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
    Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
    Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    6f58ca5a
Name
Last commit
Last update
Documentation Loading commit data...
compel Loading commit data...
contrib Loading commit data...
coredump Loading commit data...
crit Loading commit data...
criu Loading commit data...
images Loading commit data...
include/common Loading commit data...
lib Loading commit data...
scripts Loading commit data...
soccr Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
INSTALL.md Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.install Loading commit data...
Makefile.versions Loading commit data...
README.md Loading commit data...