On Fri, Oct 25, 2019 at 09:34:26AM +0200, Ladislav Michl wrote:
> SCons is a tool of constant reconfiguration. Almost each call
> means performing the configure tests, therefore it does not fit
> into PTXDist stages too well. Thus configuration and building
> is done in compile stage, while install stage is using
> --config=cache in hope it will not rebuild everything.
> Also note that SCons does not enforce any standard targets nor
> variable names, athough most projects seems to support DESTDIR
> environment variable and install target.
> 
> Signed-off-by: Ladislav Michl <[email protected]>
> ---
>  scripts/lib/ptxd_make_world_common.sh  |  4 ++--
>  scripts/lib/ptxd_make_world_compile.sh |  8 ++++++++
>  scripts/lib/ptxd_make_world_install.sh | 10 ++++++++++
>  scripts/lib/ptxd_make_world_prepare.sh |  7 ++++++-
>  4 files changed, 26 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/lib/ptxd_make_world_common.sh 
> b/scripts/lib/ptxd_make_world_common.sh
> index dc601cc05..a759739b8 100644
> --- a/scripts/lib/ptxd_make_world_common.sh
> +++ b/scripts/lib/ptxd_make_world_common.sh
> @@ -298,7 +298,7 @@ ptxd_make_world_init() {
>      fi
>  
>      case "${pkg_conf_tool}" in
> -     autoconf|cmake|qmake|kconfig|perl)
> +     autoconf|cmake|qmake|kconfig|perl|scons)
>           local 
> conf_opt_ptr="ptx_conf_opt_${pkg_conf_tool}_${pkg_type}${conf_opt_ext}"
>           local conf_env_ptr="ptx_conf_env_${pkg_type}"
>  
> @@ -428,7 +428,7 @@ ptxd_make_world_init() {
>       python*)
>           pkg_install_opt="${pkg_install_opt} --root=${pkg_pkg_dir}"
>           ;;
> -     ninja)
> +     ninja|scons)
>           pkg_env="DESTDIR=\"${pkg_pkg_dir}\" ${pkg_env}"
>           ;;
>       *)
> diff --git a/scripts/lib/ptxd_make_world_compile.sh 
> b/scripts/lib/ptxd_make_world_compile.sh
> index c7093250d..5da79cace 100644
> --- a/scripts/lib/ptxd_make_world_compile.sh
> +++ b/scripts/lib/ptxd_make_world_compile.sh
> @@ -37,6 +37,14 @@ ptxd_make_world_compile() {
>           "${pkg_make_opt}" \
>           "${pkg_make_par}"
>       ;;
> +     scons)
> +     ptxd_eval \
> +         "${pkg_path}" \
> +         "${pkg_env}" \
> +         "${pkg_conf_env}" \

No, don't use pkg_conf_env here. Take a look at what python is doing in
ptxd_make_world_init()
Otherwise, setting <PKG>_MAKE_ENV in the package has no Effekt.

Michael

> +         scons -C "${pkg_build_dir}" \
> +         "${pkg_conf_opt}"
> +     ;;
>       *)
>       ptxd_eval \
>           "${pkg_path}" \
> diff --git a/scripts/lib/ptxd_make_world_install.sh 
> b/scripts/lib/ptxd_make_world_install.sh
> index ba8e2058e..9e5572bc2 100644
> --- a/scripts/lib/ptxd_make_world_install.sh
> +++ b/scripts/lib/ptxd_make_world_install.sh
> @@ -98,6 +98,16 @@ ptxd_make_world_install() {
>           -j1 \
>       )
>       ;;
> +     scons)
> +     cmd=( \
> +         "${pkg_path}" \
> +         "${pkg_env}" \
> +         "${pkg_install_env}" \
> +         scons --config=cache \
> +         -C "${pkg_build_dir}"
> +         "${pkg_install_opt}"
> +     )
> +     ;;
>       *)
>       cmd=( \
>           "${pkg_path}" \
> diff --git a/scripts/lib/ptxd_make_world_prepare.sh 
> b/scripts/lib/ptxd_make_world_prepare.sh
> index e21a85b0e..38e7f1051 100644
> --- a/scripts/lib/ptxd_make_world_prepare.sh
> +++ b/scripts/lib/ptxd_make_world_prepare.sh
> @@ -204,13 +204,18 @@ ptxd_make_world_prepare() {
>               ptxd_bailout "'${pkg_label}' uses '${pkg_conf_tool}' but does 
> not select any python"
>           fi
>           ;;
> +     scons)
> +         if ! [[ "${pkg_build_deps}" =~ "host-python-${pkg_conf_tool}" ]]; 
> then
> +             ptxd_bailout "'${pkg_label}' uses '${pkg_conf_tool}' but does 
> not select 'host-python-${pkg_conf_tool}'"
> +         fi
> +         ;;
>      esac
>  
>      case "${pkg_conf_tool}" in
>       autoconf|cmake|qmake|kconfig|perl|meson)
>           cd -- "${pkg_build_dir}" &&
>           ptxd_make_world_prepare_"${pkg_conf_tool}" ;;
> -     python|python3)
> +     python|python3|scons)
>           : ;; # nothing to do
>       "NO") echo "prepare stage disabled." ;;
>       "")   echo "No prepare tool found. Do nothing." ;;
> -- 
> 2.24.0.rc0
> 
> 
> _______________________________________________
> ptxdist mailing list
> [email protected]
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
[email protected]

Reply via email to