Browse Source

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 <wdouglass@carnegierobotics.com>
[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 <arnout@mind.be>
Woodrow Douglass 2 years ago
parent
commit
3a5c045fd3
5 changed files with 55 additions and 0 deletions
  1. 1 0
      DEVELOPERS
  2. 1 0
      package/Config.in
  3. 7 0
      package/chicken/Config.in
  4. 4 0
      package/chicken/chicken.hash
  5. 42 0
      package/chicken/chicken.mk

+ 1 - 0
DEVELOPERS

@@ -3277,6 +3277,7 @@ N:	Wojciech Niziński <niziak@spox.org>
 F:	package/fwup/
 
 N:	Woodrow Douglass <wdouglass@carnegierobotics.com>
+F:	package/libchicken
 F:	package/opencv4
 F:	package/opencv4-contrib
 

+ 1 - 0
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

+ 7 - 0
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

+ 4 - 0
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

+ 42 - 0
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))