1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
# Copyright (C) 2019-2025, Jerônimo Pellegrini <j_p@aleph0.info>
#
# SPDX-License-Identifier: GPL-3.0-or-later
include $(TOPDIR)/rules.mk
PKG_NAME:=chicken-scheme
PKG_VERSION:=5.4.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:=3c5d4aa61c1167bf6d9bf9eaf891da7630ba9f5f3c15bf09515a7039bfcdec5f
PKG_MAINTAINER:=Jeronimo Pellegrini <j_p@aleph0.info>
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
include $(INCLUDE_DIR)/package.mk
MAKE_FLAGS += \
C_COMPILER="$(TARGET_CC)" \
C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)" \
LINKER="$(TARGET_CC)" \
PLATFORM=linux \
PREFIX=/usr
SSTRIP:=$(STRIP)
STRIP:=:
RSTRIP:=:
define Package/chicken-scheme/Default
TITLE:=Chicken Scheme
SECTION:=lang
CATEGORY:=Languages
URL:=https://call-cc.org
endef
define Package/chicken-scheme/description/Default
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.
For more information, please refer to the Chicken Scheme website at
https://call-cc.org.
endef
define Package/libchicken
$(call Package/chicken-scheme/Default)
TITLE+= library
ABI_VERSION:=11
endef
define Package/libchicken/description
$(call Package/chicken-scheme/description/Default)
This package contains the library.
endef
define Package/chicken-scheme-interpreter
$(call Package/chicken-scheme/Default)
TITLE+= interpreter only
CONFLICTS:=chicken-scheme-full
DEPENDS:=+libchicken
EXTRA_DEPENDS:=libchicken (=$(PKG_VERSION)-r$(PKG_RELEASE))
endef
define Package/chicken-scheme-interpreter/description
$(call Package/chicken-scheme/description/Default)
This package contains the interpreter, 'csi', only -- the compiler and the
package installer are not included because they depend on a C compiler.
endef
# csc depends on gcc; chicken-install uses the 'install' command from coreutils
define Package/chicken-scheme-full
$(call Package/chicken-scheme/Default)
TITLE+= full package
DEPENDS:=+coreutils-install +gcc +libchicken
EXTRA_DEPENDS:=libchicken (=$(PKG_VERSION)-r$(PKG_RELEASE))
endef
define Package/chicken-scheme-full/description
$(call Package/chicken-scheme/description/Default)
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).
endef
define Build/Compile
$(call Build/Compile/Default)
$(SSTRIP) $(PKG_BUILD_DIR)/chicken
$(SSTRIP) $(PKG_BUILD_DIR)/chicken-do
$(SSTRIP) $(PKG_BUILD_DIR)/chicken-install
$(SSTRIP) $(PKG_BUILD_DIR)/chicken-profile
$(SSTRIP) $(PKG_BUILD_DIR)/chicken-status
$(SSTRIP) $(PKG_BUILD_DIR)/chicken-uninstall
$(SSTRIP) $(PKG_BUILD_DIR)/csc
$(SSTRIP) $(PKG_BUILD_DIR)/csi
endef
define Package/libchicken/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/libchicken.so{,.$(ABI_VERSION)} $(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/lib/chicken/$(ABI_VERSION)
$(CP) $(PKG_BUILD_DIR)/*.import.so $(1)/usr/lib/chicken/$(ABI_VERSION)
$(CP) $(PKG_BUILD_DIR)/types.db $(1)/usr/lib/chicken/$(ABI_VERSION)
endef
define Package/chicken-scheme-interpreter/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/csi $(1)/usr/bin
endef
define Package/chicken-scheme-full/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-do $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-install $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-profile $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-status $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-uninstall $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/csc $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/csi $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/include/chicken
$(INSTALL_DATA) $(PKG_BUILD_DIR)/chicken.h $(1)/usr/include/chicken
$(INSTALL_DATA) $(PKG_BUILD_DIR)/chicken-config.h $(1)/usr/include/chicken
$(INSTALL_DIR) $(1)/usr/share/chicken
$(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers.tcl $(1)/usr/share/chicken
$(INSTALL_DATA) $(PKG_BUILD_DIR)/setup.defaults $(1)/usr/share/chicken
endef
$(eval $(call BuildPackage,chicken-scheme-full))
$(eval $(call BuildPackage,chicken-scheme-interpreter))
$(eval $(call BuildPackage,libchicken))
|