mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Ladislav Michl <ladis@linux-mips.org>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH v4] jimtcl: new package
Date: Fri, 5 Oct 2018 08:19:12 +0200	[thread overview]
Message-ID: <20181005061912.GA25359@lenoch> (raw)
In-Reply-To: <20181005054557.qarxsjhsap6rgmxi@pengutronix.de>

On Fri, Oct 05, 2018 at 07:45:57AM +0200, Michael Olbrich wrote:
> On Thu, Oct 04, 2018 at 08:05:57PM +0200, Ladislav Michl wrote:
> > Jim is an opensource small-footprint implementation of the Tcl
> > programming language. So far only default extensions are
> > compiled - lets see what users really need.
> > This package is intended to replace Tcl (which is in staging
> > already) as it fits PTXdist more due to its small size.
> > 
> > Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
> > ---
> >  Changes:
> >  -v2: use http url to help poor firewalled developers in corporate
> >  -v3: bootstrap using host-jimtcl. If no tclsh is found inside host-jimtcl
> >       package just compiles its own bootsrap shell. Add config support
> >       for build options.
> 
> Hmmm, is the host-jimtcl needed? I would expect, that bootstrapping works
> for the target packages as well, or is this incompatible with
> cross-compiling?

We need tcl shell for usb_modeswitch package anyway, so better to build it
right here.

> >  -v4: set CCACHE=none to prevent jimtcl to discover ccache on its own
> >       (squashed patch by Roland Hieber)
> > 
> >  rules/host-jimtcl.in   |  6 +++
> >  rules/host-jimtcl.make | 40 +++++++++++++++++++
> >  rules/jimtcl.in        | 50 +++++++++++++++++++++++
> >  rules/jimtcl.make      | 91 ++++++++++++++++++++++++++++++++++++++++++
> >  4 files changed, 187 insertions(+)
> >  create mode 100644 rules/host-jimtcl.in
> >  create mode 100644 rules/host-jimtcl.make
> >  create mode 100644 rules/jimtcl.in
> >  create mode 100644 rules/jimtcl.make
> > 
> > diff --git a/rules/host-jimtcl.in b/rules/host-jimtcl.in
> > new file mode 100644
> > index 000000000..ccd2d23bd
> > --- /dev/null
> > +++ b/rules/host-jimtcl.in
> > @@ -0,0 +1,6 @@
> > +## SECTION=hosttools_noprompt
> > +## SECTION=hosttools_platform
> > +
> > +config HOST_JIMTCL
> > +	tristate
> > +	default ALLYES
> > diff --git a/rules/host-jimtcl.make b/rules/host-jimtcl.make
> > new file mode 100644
> > index 000000000..60738f752
> > --- /dev/null
> > +++ b/rules/host-jimtcl.make
> > @@ -0,0 +1,40 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2018 by Ladislav Michl <ladis@linux-mips.org>
> > +#
> > +# See CREDITS for details about who has contributed to this project.
> > +#
> > +# For further information about the PTXdist project and license conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +HOST_PACKAGES-$(PTXCONF_HOST_JIMTCL) += host-jimtcl
> > +
> > +#
> > +# Paths and names
> > +#
> > +HOST_JIMTCL	:= $(JIMTCL)
> > +HOST_JIMTCL_DIR	:= $(HOST_BUILDDIR)/$(HOST_JIMTCL)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Prepare
> > +# ----------------------------------------------------------------------------
> > +
> > +#
> > +# Package is not using autoconf but autosetup which is enough compatible...
> > +#
> > +HOST_JIMTCL_CONF_TOOL	:= autoconf
> > +# autosetup/cc.tcl tries to discover ccache on its own, so use 'CCACHE=none'
> > +# to prevent that and leave PTXCONF_SETUP_CCACHE in charge.
> > +HOST_JIMTCL_CONF_ENV	:= \
> > +	$(HOST_ENV) \
> > +	CCACHE=none
> > +HOST_JIMTCL_CONF_OPT	:= \
> > +	--prefix=/usr \
> > +	--disable-lineedit \
> > +	--disable-docs
> > +
> > +# vim: syntax=make
> > diff --git a/rules/jimtcl.in b/rules/jimtcl.in
> > new file mode 100644
> > index 000000000..1e052d3e4
> > --- /dev/null
> > +++ b/rules/jimtcl.in
> > @@ -0,0 +1,50 @@
> > +## SECTION=scripting_languages
> > +
> > +menuconfig JIMTCL
> > +	tristate
> > +	prompt "jimtcl                        "
> > +	select HOST_JIMTCL
> > +	select LIBC_M		if JIMTCL_MATH
> > +	select OPENSSL		if JIMTCL_SSL
> > +	help
> > +	  Jim provides a powerful Tcl language implemented in roughly
> > +	  10k lines of code making it suitable for deployment on
> > +	  Embedded Systems.
> > +
> > +if JIMTCL
> > +
> > +config JIMTCL_SHELL
> > +	bool "install jimsh"
> > +	help
> > +	  Install Tcl shell on the target
> > +
> > +config JIMTCL_SYMLINK
> > +	bool "install tclsh symlink"
> > +	depends on JIMTCL_SHELL
> 
> 	depends on !TCL
> 
> For now, at least until TCL is gone.

Ok.

> > +	help
> > +	  Make tclsh symlink to jimsh
> > +
> > +config JIMTCL_UTF8
> > +	bool "support utf8"
> > +
> > +config JIMTCL_LINEEDIT
> > +	bool "line editing"
> > +	default y
> > +
> > +config JIMTCL_REFERENCES
> > +	bool "support references"
> > +	default y
> > +
> > +config JIMTCL_MATH
> > +	bool "support math functions"
> > +
> > +config JIMTCL_SSL
> > +	bool "ssl/tls support in the aio extension"
> > +
> > +config JIMTCL_POSIX_REGEX
> > +	bool "use POSIX regex instead the built-in (Tcl-compatible) regex"
> > +
> > +config JIMTCL_RANDOM_HASH
> > +	bool "randomise hash tables"
> 
> Too many options I think. The ones with additional dependencies are ok,
> IPv6 too. For the rest I'd prefer a sane default, unless there are good
> reasons to make it configurable. Maybe Tcl compatibility?

Well, it has impact on size, defaults are choosen to be Tcl compatible.

> > +
> > +endif
> > diff --git a/rules/jimtcl.make b/rules/jimtcl.make
> > new file mode 100644
> > index 000000000..a169a7936
> > --- /dev/null
> > +++ b/rules/jimtcl.make
> > @@ -0,0 +1,91 @@
> > +# -*-makefile-*-
> > +#
> > +# Copyright (C) 2018 by Ladislav Michl <ladis@linux-mips.org>
> > +#
> > +# See CREDITS for details about who has contributed to this project.
> > +#
> > +# For further information about the PTXdist project and license conditions
> > +# see the README file.
> > +#
> > +
> > +#
> > +# We provide this package
> > +#
> > +PACKAGES-$(PTXCONF_JIMTCL) += jimtcl
> > +
> > +#
> > +# Paths and names
> > +#
> > +JIMTCL_VERSION	:= 0.78
> > +JIMTCL_MD5	:= bde9021d78a77fe28e1bbc423142ab23
> > +JIMTCL		:= jimtcl-$(JIMTCL_VERSION)
> > +JIMTCL_SUFFIX	:= tar.xz
> > +JIMTCL_URL	:= http://repo.or.cz/jimtcl.git;tag=$(JIMTCL_VERSION)
> > +JIMTCL_SOURCE	:= $(SRCDIR)/$(JIMTCL).$(JIMTCL_SUFFIX)
> > +JIMTCL_DIR	:= $(BUILDDIR)/$(JIMTCL)
> > +JIMTCL_LICENSE	:= BSD-2-Clause 
> 
> Trailing whitespace.

Ok.

> > +
> > +# ----------------------------------------------------------------------------
> > +# Prepare
> > +# ----------------------------------------------------------------------------
> > +
> > +#
> > +# Package is not using autoconf but autosetup which is enough compatible...
> > +#
> > +JIMTCL_CONF_TOOL	:= autoconf
> > +# autosetup/cc.tcl tries to discover ccache on its own, so use 'CCACHE=none'
> > +# to prevent that and leave PTXCONF_SETUP_CCACHE in charge.
> > +JIMTCL_CONF_ENV		:= \
> > +	$(CROSS_ENV) \
> > +	CCACHE=none \
> > +	autosetup_tclsh=$(PTXCONF_SYSROOT_HOST)/usr/bin/jimsh
> > +JIMTCL_CONF_OPT		:= \
> > +	$(CROSS_AUTOCONF_USR) \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_UTF8,--utf8,) \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_LINEEDIT,,--disable-lineedit) \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_REFERENCES,,--disable-references) \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_MATH,--math,) \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_SSL,--ssl,) \
> > +	$(call ptx/ifdef, PTXCONF_GLOBAL_IPV6,--ipv6,) \
> > +	--shared \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_POSIX_REGEX,--disable-jim-regexp,) \
> > +	--disable-docs \
> > +	$(call ptx/ifdef, PTXCONF_JIMTCL_RANDOM_HASH,--random-hash,)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Install
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/jimtcl.install:
> > +	@$(call targetinfo)
> > +	@$(call world/install, JIMTCL)
> > +	@ln -sf libjim.so.$(JIMTCL_VERSION) $(JIMTCL_PKGDIR)/usr/lib/libjim.so
> 
> Why is this needed?

usb_modeswitch fails to link otherwise.

> Michael
> 
> > +	@$(call touch)
> > +
> > +# ----------------------------------------------------------------------------
> > +# Target-Install
> > +# ----------------------------------------------------------------------------
> > +
> > +$(STATEDIR)/jimtcl.targetinstall:
> > +	@$(call targetinfo)
> > +
> > +	@$(call install_init, jimtcl)
> > +	@$(call install_fixup, jimtcl, PRIORITY, optional)
> > +	@$(call install_fixup, jimtcl, SECTION, base)
> > +	@$(call install_fixup, jimtcl, AUTHOR, "Ladislav Michl <ladis@linux-mips.org>")
> > +	@$(call install_fixup, jimtcl, DESCRIPTION, \
> > +		"A small footprint implementation of the Tcl programming language")
> > +
> > +ifdef PTXCONF_JIMTCL_SHELL
> > +	@$(call install_copy, jimtcl, 0, 0, 0755, -, /usr/bin/jimsh)
> > +ifdef PTXCONF_JIMTCL_SYMLINK
> > +	@$(call install_link, jimtcl, jimsh, /usr/bin/tclsh)
> > +endif
> > +endif
> > +	@$(call install_lib, jimtcl, 0, 0, 0644, libjim)
> > +
> > +	@$(call install_finish, jimtcl)
> > +
> > +	@$(call touch)
> > +
> > +# vim: syntax=make
> > -- 
> > 2.19.0
> > 
> > 
> > _______________________________________________
> > 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

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

      reply	other threads:[~2018-10-05  6:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-04 18:05 Ladislav Michl
2018-10-05  5:45 ` Michael Olbrich
2018-10-05  6:19   ` Ladislav Michl [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181005061912.GA25359@lenoch \
    --to=ladis@linux-mips.org \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox