From 3a5c045fd3ef30d62c551dbfa3756f5ee657f866 Mon Sep 17 00:00:00 2001 From: Woodrow Douglass Date: Wed, 18 Jan 2023 07:28:40 -0500 Subject: [PATCH] package/chicken: new package Currently everything is installed to target. There is also a possibility to build a cross-compiler for the host, but that's for future work. Currently also more is installed to the target than strictly necessary for the interpreter to work. Signed-off-by: Woodrow Douglass [Arnout: - Rename to "chicken" instead of "libchicken". - Fix alphabetical ordering in package/Config.in. - Fix check-package warnings. - Drop BR2_CHICKEN_INSTALL_INTERPRETER, always install everything to target. - Set ARCH=unused otherwise autodiscovery is triggered. - Drop '-feature' argument, it is only used for external code and we can't know what kind of "feature" values that that code expects. - Make staging and target install identical. - _MAKE_ARGUMENTS -> _MAKE_OPTS. - Move DESTDIR to install commands only. - Use MAKE1 only when installing and don't add variable for it. - Add hash file. ] Signed-off-by: Arnout Vandecappelle --- DEVELOPERS | 1 + package/Config.in | 1 + package/chicken/Config.in | 7 ++++++ package/chicken/chicken.hash | 4 ++++ package/chicken/chicken.mk | 42 ++++++++++++++++++++++++++++++++++++ 5 files changed, 55 insertions(+) create mode 100644 package/chicken/Config.in create mode 100644 package/chicken/chicken.hash create mode 100644 package/chicken/chicken.mk diff --git a/DEVELOPERS b/DEVELOPERS index 2f8239ca23..37c7305cc7 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -3277,6 +3277,7 @@ N: Wojciech NiziƄski F: package/fwup/ N: Woodrow Douglass +F: package/libchicken F: package/opencv4 F: package/opencv4-contrib diff --git a/package/Config.in b/package/Config.in index 980ffaaa72..1c9e284a64 100644 --- a/package/Config.in +++ b/package/Config.in @@ -662,6 +662,7 @@ endmenu menu "Interpreter languages and scripting" source "package/4th/Config.in" + source "package/chicken/Config.in" source "package/enscript/Config.in" source "package/erlang/Config.in" if BR2_PACKAGE_ERLANG diff --git a/package/chicken/Config.in b/package/chicken/Config.in new file mode 100644 index 0000000000..dce0581951 --- /dev/null +++ b/package/chicken/Config.in @@ -0,0 +1,7 @@ +config BR2_PACKAGE_CHICKEN + bool "chicken" + depends on BR2_USE_MMU + help + libchicken is the runtime library for chicken scheme. + + https://call-cc.org diff --git a/package/chicken/chicken.hash b/package/chicken/chicken.hash new file mode 100644 index 0000000000..5a553da792 --- /dev/null +++ b/package/chicken/chicken.hash @@ -0,0 +1,4 @@ +# From https://code.call-cc.org/releases/5.3.0/chicken-5.3.0.tar.gz.sha256 +sha256 c3ad99d8f9e17ed810912ef981ac3b0c2e2f46fb0ecc033b5c3b6dca1bdb0d76 chicken-5.3.0.tar.gz +# Locally computed +sha256 b434ac92e094214136a6b5032f0dc9da97f22cef084ac1d0131b02a09e2caa37 LICENSE diff --git a/package/chicken/chicken.mk b/package/chicken/chicken.mk new file mode 100644 index 0000000000..9f296a1ce3 --- /dev/null +++ b/package/chicken/chicken.mk @@ -0,0 +1,42 @@ +################################################################################ +# +# chicken +# +################################################################################ + +CHICKEN_VERSION = 5.3.0 +CHICKEN_SITE = https://code.call-cc.org/releases/$(CHICKEN_VERSION) +CHICKEN_LICENSE = BSD-3-Clause +CHICKEN_LICENSE_FILES = LICENSE +CHICKEN_INSTALL_STAGING = YES + +# If ARCH is not set, it attempts to autodiscover. But it is anyway not used. +CHICKEN_MAKE_OPTS = \ + ARCH=unused \ + C_COMPILER="$(TARGET_CC)" \ + CXX_COMPILER="$(TARGET_CXX)" \ + PREFIX=/usr \ + PLATFORM=linux \ + LIBRARIAN="$(TARGET_AR)" + +ifeq ($(BR2_STATIC_LIBS),y) +CHICKEN_MAKE_OPTS += STATICBUILD=1 +endif + +define CHICKEN_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + $(CHICKEN_MAKE_OPTS) all +endef + +# README states that parallel builds are not supported.. +define CHICKEN_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \ + $(CHICKEN_MAKE_OPTS) DESTDIR=$(STAGING_DIR) install +endef + +define CHICKEN_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \ + $(CHICKEN_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install +endef + +$(eval $(generic-package))