Skip to content
Snippets Groups Projects
  • cladmi's avatar
    4652cb2b
    Makefile.include: Replace pkg archive file targets by phony targets · 4652cb2b
    cladmi authored
    It fixes issues with the current rule that it is wrong that each
    `$(BINDIR)/pkgname.a` is built by going in the package directory:
    
    * `nordic_softdevice_ble.a` is built using `DIRS` and so the
      `$(APPLICATION_MODULE).a` target.
    * It prevents having packages that are pseudomodules, which may be
      required to only use one "library" part of a package.
    
    It also simplifies handling changes in 'ld -r' PR that could produce
    objects instead of archives for packages.
    
    Limitation of the current implementation
    ----------------------------------------
    
    It removes rules being 'file' target and makes them depend on `.PHONY`
    targets so always forces re-build.
    But having a file target whose file is silently generated by another
    target does not trigger a rebuild in Make.
    
    They may have been declared as `order-only` prerequisites but as there are
    some edge-cases that may not always work and does not currently add anything,
    it was decided to keep them as normal prerequisites until it can be
    globally solved.
    Makefile.include: Replace pkg archive file targets by phony targets
    cladmi authored
    It fixes issues with the current rule that it is wrong that each
    `$(BINDIR)/pkgname.a` is built by going in the package directory:
    
    * `nordic_softdevice_ble.a` is built using `DIRS` and so the
      `$(APPLICATION_MODULE).a` target.
    * It prevents having packages that are pseudomodules, which may be
      required to only use one "library" part of a package.
    
    It also simplifies handling changes in 'ld -r' PR that could produce
    objects instead of archives for packages.
    
    Limitation of the current implementation
    ----------------------------------------
    
    It removes rules being 'file' target and makes them depend on `.PHONY`
    targets so always forces re-build.
    But having a file target whose file is silently generated by another
    target does not trigger a rebuild in Make.
    
    They may have been declared as `order-only` prerequisites but as there are
    some edge-cases that may not always work and does not currently add anything,
    it was decided to keep them as normal prerequisites until it can be
    globally solved.