Re: [PATCH 2/3] MIPS: Add generic list_* Makefile targets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2018-02-10 1:11 GMT+09:00 James Hogan <jhogan@xxxxxxxxxx>:
> Add MIPS specific Makefile targets for listing generic defconfigs
> (list_generic_defconfigs), generic board types (list_generic_boards),
> and legacy defconfigs which have been converted to generic
> (list_legacy_defconfigs).
>
> This is useful for quick reference and for buildbots to be able to
> automatically build all supported default configurations without parsing
> of the generic_defconfig error output.
>
> In order for these to work without .config being updated or
> CROSS_COMPILE being needed, list_%s is added to no-dot-config-targets in
> the main Makefile.
>
> Signed-off-by: James Hogan <jhogan@xxxxxxxxxx>
> Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
> Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> Cc: Michal Marek <michal.lkml@xxxxxxxxxxx>
> Cc: Paul Burton <paul.burton@xxxxxxxx>
> Cc: Matt Redfearn <matt.redfearn@xxxxxxxx>
> Cc: linux-mips@xxxxxxxxxxxxxx
> Cc: linux-kbuild@xxxxxxxxxxxxxxx
> ---
>  Makefile           |  2 +-
>  arch/mips/Makefile | 51 ++++++++++++++++++++++++++++++-----------------
>  2 files changed, 34 insertions(+), 19 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 3f4d157add54..635015848a2c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -223,7 +223,7 @@ old_version_h := include/linux/version.h
>  no-dot-config-targets := clean mrproper distclean \
>                          cscope gtags TAGS tags help% %docs check% coccicheck \
>                          $(version_h) headers_% archheaders archscripts \
> -                        kernelversion %src-pkg
> +                        kernelversion %src-pkg list_%s
>
>  config-targets := 0
>  mixed-targets  := 0



Unfortunately, there is no way to specify arch-specific
no-dot-config-targets.


This patch made me upset a bit.
Some solutions.


[1] Decide list_% is the right thing

[2] Invent a way to add arch-specific no-dot-config-targets

    For example, add arch/mips/no-dot-config

    Then, append it as follows:

     no-dot-config-targets := clean mrproper distclean \
                              cscope gtags TAGS tags help% %docs
check% coccicheck \
                              $(version_h) headers_% archheaders archscripts \
                              kernelversion %src-pkg
                              kernelversion %src-pkg $(shell cat
arch/$(SRCARCH)/no-dot-config)

   (This needs to tweak the top Makefile a bit more)

[3] (Ab)use the existing name convention

    For example, if you rename as follow,

      list_generic_defconfigs  -> list_generic_defconfig

      list_legacy_defconfigs   -> list_legacy_defconfig

   This works without adding  'list_%s'


   The hack of arch/mips/Makefile is so ugly,
   but adding two more would not hurt.





> diff --git a/arch/mips/Makefile b/arch/mips/Makefile
> index 6f368b5cdf29..9ba487c1c4d2 100644
> --- a/arch/mips/Makefile
> +++ b/arch/mips/Makefile
> @@ -447,24 +447,27 @@ archclean:
>         $(Q)$(MAKE) $(clean)=arch/mips/lasat
>
>  define archhelp
> -       echo '  install              - install kernel into $(INSTALL_PATH)'
> -       echo '  vmlinux.ecoff        - ECOFF boot image'
> -       echo '  vmlinux.bin          - Raw binary boot image'
> -       echo '  vmlinux.srec         - SREC boot image'
> -       echo '  vmlinux.32           - 64-bit boot image wrapped in 32bits (IP22/IP32)'
> -       echo '  vmlinuz              - Compressed boot(zboot) image'
> -       echo '  vmlinuz.ecoff        - ECOFF zboot image'
> -       echo '  vmlinuz.bin          - Raw binary zboot image'
> -       echo '  vmlinuz.srec         - SREC zboot image'
> -       echo '  uImage               - U-Boot image'
> -       echo '  uImage.bin           - U-Boot image (uncompressed)'
> -       echo '  uImage.bz2           - U-Boot image (bz2)'
> -       echo '  uImage.gz            - U-Boot image (gzip)'
> -       echo '  uImage.lzma          - U-Boot image (lzma)'
> -       echo '  uImage.lzo           - U-Boot image (lzo)'
> -       echo '  uzImage.bin          - U-Boot image (self-extracting)'
> -       echo '  dtbs                 - Device-tree blobs for enabled boards'
> -       echo '  dtbs_install         - Install dtbs to $(INSTALL_DTBS_PATH)'
> +       echo '  install                 - install kernel into $(INSTALL_PATH)'
> +       echo '  vmlinux.ecoff           - ECOFF boot image'
> +       echo '  vmlinux.bin             - Raw binary boot image'
> +       echo '  vmlinux.srec            - SREC boot image'
> +       echo '  vmlinux.32              - 64-bit boot image wrapped in 32bits (IP22/IP32)'
> +       echo '  vmlinuz                 - Compressed boot(zboot) image'
> +       echo '  vmlinuz.ecoff           - ECOFF zboot image'
> +       echo '  vmlinuz.bin             - Raw binary zboot image'
> +       echo '  vmlinuz.srec            - SREC zboot image'
> +       echo '  uImage                  - U-Boot image'
> +       echo '  uImage.bin              - U-Boot image (uncompressed)'
> +       echo '  uImage.bz2              - U-Boot image (bz2)'
> +       echo '  uImage.gz               - U-Boot image (gzip)'
> +       echo '  uImage.lzma             - U-Boot image (lzma)'
> +       echo '  uImage.lzo              - U-Boot image (lzo)'
> +       echo '  uzImage.bin             - U-Boot image (self-extracting)'
> +       echo '  dtbs                    - Device-tree blobs for enabled boards'
> +       echo '  dtbs_install            - Install dtbs to $(INSTALL_DTBS_PATH)'
> +       echo '  list_generic_defconfigs - List available generic defconfigs'
> +       echo '  list_generic_boards     - List available generic boards'
> +       echo '  list_legacy_defconfigs  - List available legacy defconfigs'
>         echo
>         echo '  These will be default as appropriate for a configured platform.'
>         echo
> @@ -538,6 +541,14 @@ generic_defconfig:
>         $(Q)echo
>         $(Q)false
>
> +.PHONY: list_generic_defconfigs
> +list_generic_defconfigs:
> +       $(Q)for cfg in $(generic_defconfigs); do echo "$${cfg}"; done
> +
> +.PHONY: list_generic_boards
> +list_generic_boards:
> +       $(Q)for board in $(sort $(BOARDS)); do echo "$${board}"; done
> +
>  #
>  # Legacy defconfig compatibility - these targets used to be real defconfigs but
>  # now that the boards have been converted to use the generic kernel they are
> @@ -555,3 +566,7 @@ xilfpga_defconfig-y         := 32r2el_defconfig BOARDS=xilfpga
>  .PHONY: $(legacy_defconfigs)
>  $(legacy_defconfigs):
>         $(Q)$(MAKE) -f $(srctree)/Makefile $($@-y)
> +
> +.PHONY: list_legacy_defconfigs
> +list_legacy_defconfigs:
> +       $(Q)for cfg in $(sort $(legacy_defconfigs)); do echo "$${cfg}"; done
> --
> git-series 0.9.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux