Hi Michael,

El mié, 4 ago 2021 a las 9:41, Michael Olbrich (<m.olbr...@pengutronix.de>)
escribió:

> On Fri, Jul 30, 2021 at 07:41:56PM +0200, avazquez....@gmail.com wrote:
> > From: Alejandro Vazquez <avazquez....@gmail.com>
> >
> > - host-rust: This package provides a pre-built version of rustc,
> > cargo and standard library for the host.
> > - host-rust-std-target: A pre-built version of the standard library for
> > the target.
>
> No. The compiler should be built not just downloaded.
>
> Please take a look at the latest OSELAS.Toolchain. It contains a rust
> compiler and std libraries for the target. I've done very little testing
> with that so far and I would be interested in some feedback. Especially if
> something isn't working.
>

I think it would be useful to have rules that support building rust
packages without the need to update the toolchain.


> Also, I'm pretty sure that there are some hidden downloads in there for
> cargo and maybe the host std library. So if you keep those rules locally,
> you should add that to the downloads.


Is it possible to specify more than one download in a single .make file?

Thanks,

Guillermo


> This way, they will be cached with
> the rest of the source. Take a look at what I did for the toolchain.
>
> Michael
>
> > Signed-off-by: Alejandro Vazquez <avazquez....@gmail.com>
> > ---
> >  rules/host-rust-std-target.in   | 18 ++++++++
> >  rules/host-rust-std-target.make | 81 +++++++++++++++++++++++++++++++++
> >  rules/host-rust.in              |  8 ++++
> >  rules/host-rust.make            | 80 ++++++++++++++++++++++++++++++++
> >  4 files changed, 187 insertions(+)
> >  create mode 100644 rules/host-rust-std-target.in
> >  create mode 100644 rules/host-rust-std-target.make
> >  create mode 100644 rules/host-rust.in
> >  create mode 100644 rules/host-rust.make
> >
> > diff --git a/rules/host-rust-std-target.in b/rules/
> host-rust-std-target.in
> > new file mode 100644
> > index 000000000..ed47f8c89
> > --- /dev/null
> > +++ b/rules/host-rust-std-target.in
> > @@ -0,0 +1,18 @@
> > +## SECTION=hosttools
> > +
> > +menuconfig HOST_RUST_STD_TARGET
> > +     bool
> > +     select HOST_RUST
> > +     prompt "host-rust-std-target (pre-built)"
> > +     help
> > +       This package will install pre-built versions of
> > +       the Rust standard library for the target.
> > +
> > +if HOST_RUST_STD_TARGET
> > +
> > +config HOST_RUST_STD_TARGET_ARCH
> > +     string
> > +     default "armv7-unknown-linux-gnueabihf"
> > +     prompt "Target Architecture"
> > +
> > +endif
> > diff --git a/rules/host-rust-std-target.make
> b/rules/host-rust-std-target.make
> > new file mode 100644
> > index 000000000..f41c2caa1
> > --- /dev/null
> > +++ b/rules/host-rust-std-target.make
> > @@ -0,0 +1,81 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2021 by Alejandro Vazquez <avazquez....@gmail.com>
> > +#
> > +# For further information about the PTXdist project and license
> conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_HOST_RUST_STD_TARGET) += host-rust-std-target
> > +
> > +#
> > +# Paths and names
> > +#
> > +HOST_RUST_STD_TARGET_VERSION         := 1.53.0
> > +HOST_RUST_STD_TARGET_MD5             := 6eeb959f5a9294adc8220e79502b00df
> > +HOST_RUST_STD_TARGET_SUFFIX          := tar.xz
> > +HOST_RUST_STD_TARGET_SPEC            := $(call remove_quotes,
> $(PTXCONF_HOST_RUST_STD_TARGET_ARCH))
> > +HOST_RUST_STD_TARGET                 :=
> rust-std-$(HOST_RUST_STD_TARGET_VERSION)
> > +HOST_RUST_STD_TARGET_NAME            :=
> $(HOST_RUST_STD_TARGET)-$(HOST_RUST_STD_TARGET_SPEC)
> > +HOST_RUST_STD_TARGET_URL             :=
> https://static.rust-lang.org/dist/$(HOST_RUST_STD_TARGET_NAME).$(HOST_RUST_STD_TARGET_SUFFIX)
> > +HOST_RUST_STD_TARGET_DIR             :=
> $(HOST_BUILDDIR)/$(HOST_RUST_STD_TARGET)
> > +HOST_RUST_STD_TARGET_SOURCE          :=
> $(SRCDIR)/$(HOST_RUST_STD_TARGET_NAME).$(HOST_RUST_STD_TARGET_SUFFIX)
> > +HOST_RUST_STD_TARGET_LICENSE         := Apache-2.0 AND MIT
> > +HOST_RUST_STD_TARGET_LICENSE_FILES   := \
> > +     file://COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0 \
> > +     file://LICENSE-APACHE;md5=22a53954e4e0ec258dfce4391e905dac \
> > +     file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Prepare
> > +#
> ----------------------------------------------------------------------------
> > +
> > +HOST_RUST_STD_TARGET_DEVPKG  := NO
> > +HOST_RUST_STD_TARGET_CONF_TOOL       := NO
> > +
> > +HOST_RUST_STD_TARGET_INSTALL_COMPONENTS =
> --components=rust-std-$(HOST_RUST_STD_TARGET_SPEC)
> > +
> > +HOST_RUST_STD_TARGET_INSTALL_OPTS = \
> > +     --prefix=$(PTXDIST_SYSROOT_HOST) \
> > +     --without=rust-docs \
> > +     --disable-ldconfig \
> > +     $(HOST_RUST_STD_TARGET_INSTALL_COMPONENTS)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Compile
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust-std-target.compile:
> > +     @$(call targetinfo)
> > +     @$(call touch)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Install
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust-std-target.install.post:
> > +     @$(call targetinfo)
> > +
> > +     @cd "$(HOST_RUST_STD_TARGET_DIR)" && sh install.sh
> $(HOST_RUST_STD_TARGET_INSTALL_OPTS)
> > +     @cd "$(PTXDIST_SYSROOT_HOST)/lib/rustlib/" && mv uninstall.sh
> uninstall-target.sh
> > +
> > +     @$(call world/install, HOST_RUST_STD_TARGET)
> > +     @$(call touch)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Clean
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust-std-target.clean:
> > +     @$(call targetinfo)
> > +
> > +     sh $(PTXDIST_SYSROOT_HOST)/lib/rustlib/uninstall-host.sh \
> > +     --uninstall \
> > +     --prefix=$(PTXDIST_SYSROOT_HOST) \
> > +     $(HOST_RUST_STD_TARGET_INSTALL_COMPONENTS)
> > +     @$(call clean_pkg, HOST_RUST_STD_TARGET)
> > +
> > +# vim: syntax=make
> > diff --git a/rules/host-rust.in b/rules/host-rust.in
> > new file mode 100644
> > index 000000000..4f73dae6c
> > --- /dev/null
> > +++ b/rules/host-rust.in
> > @@ -0,0 +1,8 @@
> > +## SECTION=hosttools
> > +
> > +config HOST_RUST
> > +     tristate
> > +     prompt "host-rust (pre-built)"
> > +     help
> > +       This package will install pre-built versions of the compiler
> > +       and the Rust standard library for the host.
> > diff --git a/rules/host-rust.make b/rules/host-rust.make
> > new file mode 100644
> > index 000000000..e750a1352
> > --- /dev/null
> > +++ b/rules/host-rust.make
> > @@ -0,0 +1,80 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2021 by Alejandro Vazquez <avazquez....@gmail.com>
> > +#
> > +# For further information about the PTXdist project and license
> conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_HOST_RUST) += host-rust
> > +
> > +#
> > +# Paths and names
> > +#
> > +HOST_RUST_VERSION    := 1.53.0
> > +HOST_RUST_MD5                := 3f2ea3d908dac317d6006a117463f18e
> > +HOST_RUST            := rust-$(HOST_RUST_VERSION)
> > +HOST_RUST_SUFFIX     := tar.xz
> > +HOST_RUST_NAME               := $(HOST_RUST)-$(subst
> host,unknown,$(GNU_HOST))
> > +HOST_RUST_URL                :=
> https://static.rust-lang.org/dist/$(HOST_RUST_NAME).$(HOST_RUST_SUFFIX)
> > +HOST_RUST_DIR                := $(HOST_BUILDDIR)/$(HOST_RUST_NAME)
> > +HOST_RUST_SOURCE     := $(SRCDIR)/$(HOST_RUST_NAME).$(HOST_RUST_SUFFIX)
> > +HOST_RUST_LICENSE    := Apache-2.0 AND MIT
> > +HOST_RUST_LICENSE_FILES := \
> > +     file://COPYRIGHT;md5=93a95682d51b4cb0a633a97046940ef0 \
> > +     file://LICENSE-APACHE;md5=22a53954e4e0ec258dfce4391e905dac \
> > +     file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Prepare
> > +#
> ----------------------------------------------------------------------------
> > +
> > +HOST_RUST_DEVPKG     := NO
> > +HOST_RUST_CONF_TOOL  := NO
> > +
> > +HOST_RUST_INSTALL_COMPONENTS =
> --components=rustc,cargo,rust-std-$(subst host,unknown,$(GNU_HOST))
> > +
> > +HOST_RUST_INSTALL_OPTS = \
> > +     --prefix=$(PTXDIST_SYSROOT_HOST) \
> > +     --without=rust-docs \
> > +     --disable-ldconfig \
> > +     $(HOST_RUST_INSTALL_COMPONENTS)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Compile
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust.compile:
> > +     @$(call targetinfo)
> > +     @$(call touch)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Install
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust.install.post:
> > +     @$(call targetinfo)
> > +
> > +     @cd "$(HOST_RUST_DIR)" && sh install.sh $(HOST_RUST_INSTALL_OPTS)
> > +     @cd "$(PTXDIST_SYSROOT_HOST)/lib/rustlib/" && mv uninstall.sh
> uninstall-host.sh
> > +
> > +     @$(call touch)
> > +
> > +#
> ----------------------------------------------------------------------------
> > +# Clean
> > +#
> ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/host-rust.clean:
> > +     @$(call targetinfo)
> > +
> > +     sh $(PTXDIST_SYSROOT_HOST)/lib/rustlib/uninstall-host.sh \
> > +     --uninstall \
> > +     --prefix=$(PTXDIST_SYSROOT_HOST) \
> > +     $(HOST_RUST_INSTALL_COMPONENTS)
> > +
> > +     @$(call clean_pkg, HOST_RUST)
> > +
> > +# vim: syntax=make
> > --
> > 2.25.1
> >
> >
> > _______________________________________________
> > ptxdist mailing list
> > ptxdist@pengutronix.de
> > To unsubscribe, send a mail with subject "unsubscribe" to
> ptxdist-requ...@pengutronix.de
> >
>
> --
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
>
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> To unsubscribe, send a mail with subject "unsubscribe" to
> ptxdist-requ...@pengutronix.de
>


-- 
Guillermo Rodriguez Garcia
guille.rodrig...@gmail.com
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to 
ptxdist-requ...@pengutronix.de

Reply via email to