Hei Roland,

Am Dienstag, 22. September 2020, 11:28:59 CEST schrieb Roland Hieber:
> The current process to generate a kernel .config file from a defconfig
> is a bit cumbersome:
> 
>   $ ptxdist extract kernel
>   $ cd platform-foo/build-target/linux-<version>
>   $ make ARCH=... CROSS_COMPILE=... foo_defconfig
>   $ cp .config ../../../configs/platform-foo/kernelconfig

What about the following?

        $ ptxdist extract kernel
        $ cp platform-foo/build-target/linux-<version>/arch/arm/configs/
bar_defconfig configs/platform-foo/kernelconfig
        $ ptxdist oldconfig kernel

> All kernel and barebox rules and templates already support the
> <package>_%config target since commit b0f9f2fe33ca9027a554 (2020-08-07,
> "barebox, kernel: enable use of {allyes, allno, allmod, alldef,
> rand}config"), so we only need to wire them into the command line
> parser, and then we can easily get a defconfig like this:
> 
>   $ ptxdist defconfig kernel                # most ARCHs
>   $ ptxdist imx_v6_v7_defconfig kernel      # e.g. with ARCH=arm

This looks somehow like a weird syntax, but I have no idea for a better one. 
:-/

What about U-Boot?  Currently there's PTXCONF_U_BOOT_CONFIGSYSTEM_LEGACY and 
you can just use a defconfig name in there.

(That was actually not supposed to target defconfig in particular, but the pre 
kconfig U-Boot config mechanism, but it also works for recent U-Boot 
defconfigs.)

Greets
Alex

> Signed-off-by: Roland Hieber <[email protected]>
> ---
>  * v2: fix <pkg> in help text, it's not an optional parameter
> 
>  bin/ptxdist           | 15 ++++++++++++++-
>  doc/ref_parameter.rst |  9 +++++++++
>  2 files changed, 23 insertions(+), 1 deletion(-)
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 0d5e4328e1d6..000879f45187 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -705,6 +705,9 @@ Setup and Project Actions:
> 
>    menuconfig barebox         configure the bootloader Barebox
> 
> +  [<prefix>]defconfig <pkg>  generate a default config file for <pkg>
> +                             e.g.: ptxdist multi_v7_defconfig kernel
> +
>    oldconfig                  run 'make oldconfig' on ptxconfig file
>    allmodconfig                       run 'make allmodconfig' on ptxconfig 
> file
>    allyesconfig                       run 'make allyesconfig' on ptxconfig 
> file
> @@ -1267,6 +1270,16 @@ do_config()
>       case "${config}" in
>       menuconfig|nconfig|oldconfig|all*config|randconfig)
>               ;;
> +     *defconfig)
> +             case "${part}" in
> +                     
> "ptx"|"ptxdist"|""|"setup"|"platform"|"board"|"user"|"collection")
> +                             echo
> +                             echo "${PTXDIST_LOG_PROMPT}error: cannot do a 
> '${config}' for part
> '${part}'" +                          echo
> +                             exit 1
> +                             ;;
> +             esac
> +             ;;
>       *)
>               echo
>               echo "${PTXDIST_LOG_PROMPT}error: invalid use of '${FUNCNAME} 
> ${@}'"
> @@ -1625,7 +1638,7 @@ parse_second()
> 
>  ######## *config, *setup, toolchain
> 
> -             
> menuconfig|nconfig|oldconfig|allmodconfig|allyesconfig|allnoconfig|
alldef
> config|randconfig)
> +             
> menuconfig|nconfig|oldconfig|allmodconfig|allyesconfig|allnoconfig|*defc
> onfig|randconfig) do_config "${cmd}" "${@}"
>                       exit
>                       ;;
> diff --git a/doc/ref_parameter.rst b/doc/ref_parameter.rst
> index 1d54fa4b4428..cac35cddb5ac 100644
> --- a/doc/ref_parameter.rst
> +++ b/doc/ref_parameter.rst
> @@ -95,6 +95,15 @@ Setup and Project Actions
>    functionality as ``menuconfig``. It can be used instead of ``menuconfig``
> for all the component described above.
> 
> +``[<prefix>]defconfig <package>``
> +  generate a default config file for kconfig-based packages (kernel,
> barebox). +  The ``[<prefix>]`` can be given optionally to use a specific
> defconfig file, +  which depends on the respective package and the
> architecture.
> +  Examples::
> +
> +    $ ptxdist defconfig kernel                # most ARCHs
> +    $ ptxdist imx_v6_v7_defconfig kernel      # e.g. for ARCH=arm
> +
>  ``oldconfig [<component>]``, ``allmodconfig [<component>]``, ``allyesconfig
> [<component>]``, ``allnoconfig [<component>]``, ``alldefconfig
> [<component>]``, ``randconfig [<component>]`` this action will run the
> corresponding kconfig action for the specified component. ``oldconfig``
> will prompt for all new options.





_______________________________________________
ptxdist mailing list
[email protected]
To unsubscribe, send a mail with subject "unsubscribe" to 
[email protected]

Reply via email to