From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28] helo=dude02.lab.pengutronix.de) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1iNuS0-0007XB-0w for ptxdist@pengutronix.de; Fri, 25 Oct 2019 09:56:00 +0200 Received: from mol by dude02.lab.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1iNuRz-0007ak-PX for ptxdist@pengutronix.de; Fri, 25 Oct 2019 09:55:59 +0200 Date: Fri, 25 Oct 2019 09:55:59 +0200 From: Michael Olbrich Message-ID: <20191025075559.GF30823@pengutronix.de> References: <20191025073326.GB26830@lenoch> <20191025073426.GC26830@lenoch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191025073426.GC26830@lenoch> Subject: Re: [ptxdist] [PATCH 1/2] add scons conf tool List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de 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 > --- > 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 _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 > ptxdist@pengutronix.de > -- 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 ptxdist@pengutronix.de