@ -1,5 +1,4 @@
#
# Copyright (C) 2019 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
# Copyright (C) 2019-2020 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
#
# This file is free software, licensed under the GNU General Public License v3
# or later.
@ -8,29 +7,43 @@
i n c l u d e $( TOPDIR ) / r u l e s . m k
PKG_NAME := chicken-scheme-interpreter
PKG_VERSION = 5.1 .0
PKG_NAME := chicken-scheme
PKG_VERSION = 5.2 .0
PKG_RELEASE := 1
PKG_BUILD_DIR := $( BUILD_DIR) /chicken-$( PKG_VERSION)
PKG_SOURCE := chicken-$( PKG_VERSION) .tar.gz
PKG_SOURCE_URL := https://code.call-cc.org/releases/$( PKG_VERSION) /
PKG_HASH := 5c1101a8d8faabfd500ad69101e0c7c8bd826c68970f89c270640470e7b84b4b
PKG_BUILD_DIR := $( BUILD_DIR) /chicken-$( PKG_VERSION)
PKG_HASH := 819149c8ce7303a9b381d3fdc1d5765c5f9ac4dee6f627d1652f47966a8780fa
PKG_MAINTAINER := Jeronimo Pellegrini <j_p@aleph0.info>
PKG_LICENSE := BSD-3-Clause
PKG_LICENSE_FILES := LICENSE
i n c l u d e $( INCLUDE_DIR ) / p a c k a g e . m k
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - i n t e r p r e t e r
d e f i n e P a c k a g e / c h i c k e n - s c h e m e / D e f a u l t
SECTION:= lang
CATEGORY:= Languages
TITLE:= Chicken Scheme
URL:= https://call-cc.org
ABI_VERSION:= 11
e n d e f
##
## chicken-scheme-interpreter
##
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - i n t e r p r e t e r
$( call Package /chicken -scheme /Default )
TITLE:= Chicken Scheme -- interpreter only
SECTION:= lang
CATEGORY:= Languages
e n d e f
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - i n t e r p r e t e r / d e s c r i p t i o n
Chicken is an implementation of the Scheme language. It is portable, efficient, and supports
the R5RS and R7RS ( work in progress) standards, and many extensions.
@ -40,12 +53,16 @@ define Package/chicken-scheme-interpreter/description
For more information, please refer to the Chicken Scheme website at https://call-cc.org.
e n d e f
MAKE_FLAGS += PLATFORM = linux C_COMPILER = $( TARGET_CC) LINKER = $( TARGET_CC) PREFIX = /usr C_COMPILER_OPTIMIZATION_OPTIONS = " $( TARGET_CFLAGS) "
# csc calls gcc with "-lm -ldl", but "-lm" doesn't work with musl,
# so we set LIBRARIES=-lm
MAKE_FLAGS += PLATFORM = linux C_COMPILER = $( TARGET_CC) LINKER = $( TARGET_CC) PREFIX = /usr C_COMPILER_OPTIMIZATION_OPTIONS = " $( TARGET_CFLAGS) " LIBRARIES = -lm
# not installed:
# - csc and chicken, the compiler
# - the include dir (only useful with the compiler)
# - install, uninstall, status, and chicken-do, which deal with modules (installation of more modules depends on the compiler)
# - install, uninstall, status, and chicken-do, which deal with modules
# (installation of more modules depends on the compiler)
# - profiler
# - feathers, the debugger
# - libchicken.a, the static library
@ -61,3 +78,73 @@ endef
$( eval $ ( call BuildPackage ,chicken -scheme -interpreter ) )
##
## chicken-scheme-full
##
# mips-openwrt-linux-musl-gcc dowsn't seem to link with libchicken.so.
# already tried -lchicken and passing /usr/lib/libchicken.so on the command
# line.
# also tried -Wl,-R/usr/lib,-R/usr/lib/chicken/$(ABI_VERSION)
#
# current solution: we do not strip binaries in chicken-scheme-full
# we do this by unsetting STRIP and RSTRIP, *and* reloading rules.mk
#
STRIP := :
RSTRIP := :
i n c l u d e $( TOPDIR ) / r u l e s . m k
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - f u l l
$( call Package /chicken -scheme /Default )
TITLE:= Chicken Scheme -- full package
SECTION:= lang
CATEGORY:= Languages
# csc depends on gcc; chicken-install uses the 'install' command from coreutils
EXTRA_DEPENDS:= gcc, coreutils-install
e n d e f
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - f u l l / d e s c r i p t i o n
Chicken is an implementation of the Scheme language. It is portable, efficient, and supports
the R5RS and R7RS ( work in progress) standards, and many extensions.
Chicken can be used as a scripting language to automate tasks.
This package contains the interpreter, 'csi' ; the compiler, 'csc' ;
the tools for installing and removing eggs ( modules) ; the profiler and
the debugger.
Note that this package depends on gcc, which is quite large ( more than 100Mb) .
For more information, please refer to the Chicken Scheme website at https://call-cc.org.
e n d e f
# not installed:
# - libchicken.a, the static library
d e f i n e P a c k a g e / c h i c k e n - s c h e m e - f u l l / i n s t a l l
$( INSTALL_DIR) $( 1) /usr/bin
$( INSTALL_DIR) $( 1) /usr/lib/chicken/$( ABI_VERSION)
$( INSTALL_DIR) $( 1) /usr/include/chicken
$( INSTALL_DIR) $( 1) /usr/share/chicken
$( INSTALL_BIN) $( PKG_BUILD_DIR) /csi $( 1) /usr/bin/
$( CP) $( PKG_BUILD_DIR) /libchicken.so.$( ABI_VERSION) $( 1) /usr/lib/
$( CP) $( PKG_BUILD_DIR) /libchicken.so $( 1) /usr/lib/
$( CP) $( PKG_BUILD_DIR) /*.import.so $( 1) /usr/lib/chicken/$( ABI_VERSION) /
$( CP) $( PKG_BUILD_DIR) /types.db $( 1) /usr/lib/chicken/$( ABI_VERSION) /
# csc
$( INSTALL_BIN) $( PKG_BUILD_DIR) /csc $( 1) /usr/bin/
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken $( 1) /usr/bin/
$( INSTALL_DATA) $( PKG_BUILD_DIR) /chicken.h $( 1) /usr/include/chicken/
$( INSTALL_DATA) $( PKG_BUILD_DIR) /chicken-config.h $( 1) /usr/include/chicken/
# chicken-install
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken-install $( 1) /usr/bin/
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken-uninstall $( 1) /usr/bin/
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken-status $( 1) /usr/bin/
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken-do $( 1) /usr/bin/
$( INSTALL_DATA) $( PKG_BUILD_DIR) /setup.defaults $( 1) /usr/share/chicken/
# profile
$( INSTALL_BIN) $( PKG_BUILD_DIR) /chicken-profile $( 1) /usr/bin/
# feathers
$( INSTALL_BIN) $( PKG_BUILD_DIR) /feathers.tcl $( 1) /usr/share/chicken/
$( INSTALL_BIN) $( PKG_BUILD_DIR) /feathers $( 1) /usr/bin/
e n d e f
$( eval $ ( call BuildPackage ,chicken -scheme -full ) )