Jim is an opensource small-footprint implementation of the Tcl programming language. 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 <[email protected]> --- 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. -v4: set CCACHE=none to prevent jimtcl to discover ccache on its own (squashed patch by Roland Hieber) -v5: fix trailing space, add !TCL dependency for jim shell rules/host-jimtcl.in | 6 +++ rules/host-jimtcl.make | 40 +++++++++++++++++++ rules/jimtcl.in | 51 +++++++++++++++++++++++ rules/jimtcl.make | 91 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 188 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 <[email protected]> +# +# 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..ce9e4993c --- /dev/null +++ b/rules/jimtcl.in @@ -0,0 +1,51 @@ +## 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 + 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" + +endif diff --git a/rules/jimtcl.make b/rules/jimtcl.make new file mode 100644 index 000000000..ad8b3608b --- /dev/null +++ b/rules/jimtcl.make @@ -0,0 +1,91 @@ +# -*-makefile-*- +# +# Copyright (C) 2018 by Ladislav Michl <[email protected]> +# +# 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 + +# ---------------------------------------------------------------------------- +# 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 + @$(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 <[email protected]>") + @$(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.1 _______________________________________________ ptxdist mailing list [email protected]
