• 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
Makefile 9.23 KB