Skip to content
Snippets Groups Projects
  • Jerome Forissier's avatar
    ae45fbf9
    Rework common.mk · ae45fbf9
    Jerome Forissier authored
    
    The code added by commits d6536da6 ("Commonlize xtest compilation
    among all platforms") and 070d9559 ("common build: optee
    components") introduces race conditions that break parallel build (make
    -jX). This is due to manually launching a make sub-process to run the
    -common targets, and can be fixed by just declaring a dependency
    instead. Specific flags are appended to common flags, rather than
    passed as arguments to a new "make" sub-process.
    
    So, basically:
    
     foo-common:
     	$(MAKE) -C foo_dir [A=a B=B]
    
     foo:
     	$(MAKE) foo-common [C=c]
    
    is turned into:
    
     FOO_COMMON_FLAGS ?= A=a B=b
     foo-common:
     	$(MAKE) -C foo_dir $(FOO_COMMON_FLAGS)
    
     FOO_COMMON_FLAGS += C=c
     foo: foo-common
    
    At the same time this allows foo: to override flags, for instance
    set A=aa in the above example (prior to this, A=a would have had a
    higher priority).
    
    Signed-off-by: default avatarJerome Forissier <jerome.forissier@linaro.org>
    Signed-off-by: default avatarPascal Brand <pascal.brand@st.com>
    Reviewed-by: default avatarJerome Forissier <jerome.forissier@linaro.org>
    ae45fbf9
    History
    Rework common.mk
    Jerome Forissier authored
    
    The code added by commits d6536da6 ("Commonlize xtest compilation
    among all platforms") and 070d9559 ("common build: optee
    components") introduces race conditions that break parallel build (make
    -jX). This is due to manually launching a make sub-process to run the
    -common targets, and can be fixed by just declaring a dependency
    instead. Specific flags are appended to common flags, rather than
    passed as arguments to a new "make" sub-process.
    
    So, basically:
    
     foo-common:
     	$(MAKE) -C foo_dir [A=a B=B]
    
     foo:
     	$(MAKE) foo-common [C=c]
    
    is turned into:
    
     FOO_COMMON_FLAGS ?= A=a B=b
     foo-common:
     	$(MAKE) -C foo_dir $(FOO_COMMON_FLAGS)
    
     FOO_COMMON_FLAGS += C=c
     foo: foo-common
    
    At the same time this allows foo: to override flags, for instance
    set A=aa in the above example (prior to this, A=a would have had a
    higher priority).
    
    Signed-off-by: default avatarJerome Forissier <jerome.forissier@linaro.org>
    Signed-off-by: default avatarPascal Brand <pascal.brand@st.com>
    Reviewed-by: default avatarJerome Forissier <jerome.forissier@linaro.org>