1 # Copyright (C) 2019-2020 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
3 # This file is free software, licensed under the GNU General Public License v3
5 # See /LICENSE for details
8 include $(TOPDIR
)/rules.mk
10 PKG_NAME
:=chicken-scheme
14 PKG_BUILD_DIR
:=$(BUILD_DIR
)/chicken-
$(PKG_VERSION
)
15 PKG_SOURCE
:=chicken-
$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=https
://code.call-cc.org
/releases
/$(PKG_VERSION
)/
17 PKG_HASH
:=819149c8ce7303a9b381d3fdc1d5765c5f9ac4dee6f627d1652f47966a8780fa
18 PKG_MAINTAINER
:=Jeronimo Pellegrini
<j_p@aleph0.
info>
20 PKG_LICENSE
:=BSD-3-Clause
21 PKG_LICENSE_FILES
:=LICENSE
23 include $(INCLUDE_DIR
)/package.mk
25 define Package
/chicken-scheme
/Default
29 URL
:=https
://call-cc.org
34 ## chicken-scheme-interpreter
37 define Package
/chicken-scheme-interpreter
38 $(call Package
/chicken-scheme
/Default
)
39 TITLE
+=interpreter only
40 CONFLICTS
:=chicken-scheme-full
43 define Package
/chicken-scheme-interpreter
/description
44 Chicken is an implementation of the Scheme language. It is portable
, efficient
, and supports
45 the R5RS and R7RS
(work in progress
) standards
, and many extensions.
46 Chicken can be used
as a scripting language to automate tasks.
47 This package contains the interpreter
, 'csi', only
--
48 the compiler and the package installer are not included because they depend on a C compiler.
49 For more information
, please refer to the Chicken Scheme website at https
://call-cc.org.
52 MAKE_FLAGS
+= PLATFORM
=linux C_COMPILER
=$(TARGET_CC
) LINKER
=$(TARGET_CC
) PREFIX
=/usr C_COMPILER_OPTIMIZATION_OPTIONS
="$(TARGET_CFLAGS)"
55 # - csc and chicken, the compiler
56 # - the include dir (only useful with the compiler)
57 # - install, uninstall, status, and chicken-do, which deal with modules
58 # (installation of more modules depends on the compiler)
60 # - feathers, the debugger
61 # - libchicken.a, the static library
62 define Package
/chicken-scheme-interpreter
/install
63 $(INSTALL_DIR
) $(1)/usr
/bin
64 $(INSTALL_DIR
) $(1)/usr
/lib
/chicken
/$(ABI_VERSION
)
65 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/csi
$(1)/usr
/bin
/
66 $(CP
) $(PKG_BUILD_DIR
)/libchicken.so.
$(ABI_VERSION
) $(1)/usr
/lib
/
67 $(CP
) $(PKG_BUILD_DIR
)/libchicken.so
$(1)/usr
/lib
/
68 $(CP
) $(PKG_BUILD_DIR
)/*.import.so
$(1)/usr
/lib
/chicken
/$(ABI_VERSION
)/
69 $(CP
) $(PKG_BUILD_DIR
)/types.db
$(1)/usr
/lib
/chicken
/$(ABI_VERSION
)/
72 $(eval
$(call BuildPackage
,chicken-scheme-interpreter
))
77 ## chicken-scheme-full
80 # mips-openwrt-linux-musl-gcc dowsn't seem to link with libchicken.so.
81 # already tried -lchicken and passing /usr/lib/libchicken.so on the command
83 # also tried -Wl,-R/usr/lib,-R/usr/lib/chicken/$(ABI_VERSION)
85 # current solution: we do not strip binaries in chicken-scheme-full
86 # we do this by unsetting STRIP and RSTRIP, *and* reloading rules.mk
90 include $(TOPDIR
)/rules.mk
92 define Package
/chicken-scheme-full
93 $(call Package
/chicken-scheme
/Default
)
95 # csc depends on gcc; chicken-install uses the 'install' command from coreutils
96 EXTRA_DEPENDS
:= gcc
, coreutils-install
99 define Package
/chicken-scheme-full
/description
100 Chicken is an implementation of the Scheme language. It is portable
, efficient
, and supports
101 the R5RS and R7RS
(work in progress
) standards
, and many extensions.
102 Chicken can be used
as a scripting language to automate tasks.
103 This package contains the interpreter
, 'csi'; the compiler
, 'csc';
104 the tools for installing and removing eggs
(modules
); the profiler and
106 Note that this package depends on gcc
, which is quite large
(more than
100Mb
).
107 For more information
, please refer to the Chicken Scheme website at https
://call-cc.org.
112 # - libchicken.a, the static library
113 define Package
/chicken-scheme-full
/install
114 $(INSTALL_DIR
) $(1)/usr
/bin
115 $(INSTALL_DIR
) $(1)/usr
/lib
/chicken
/$(ABI_VERSION
)
116 $(INSTALL_DIR
) $(1)/usr
/include/chicken
117 $(INSTALL_DIR
) $(1)/usr
/share
/chicken
118 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/csi
$(1)/usr
/bin
/
119 $(CP
) $(PKG_BUILD_DIR
)/libchicken.so.
$(ABI_VERSION
) $(1)/usr
/lib
/
120 $(CP
) $(PKG_BUILD_DIR
)/libchicken.so
$(1)/usr
/lib
/
121 $(CP
) $(PKG_BUILD_DIR
)/*.import.so
$(1)/usr
/lib
/chicken
/$(ABI_VERSION
)/
122 $(CP
) $(PKG_BUILD_DIR
)/types.db
$(1)/usr
/lib
/chicken
/$(ABI_VERSION
)/
124 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/csc
$(1)/usr
/bin
/
125 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken
$(1)/usr
/bin
/
126 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/chicken.h
$(1)/usr
/include/chicken
/
127 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/chicken-config.h
$(1)/usr
/include/chicken
/
129 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken-install
$(1)/usr
/bin
/
130 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken-uninstall
$(1)/usr
/bin
/
131 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken-status
$(1)/usr
/bin
/
132 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken-do
$(1)/usr
/bin
/
133 $(INSTALL_DATA
) $(PKG_BUILD_DIR
)/setup.defaults
$(1)/usr
/share
/chicken
/
135 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/chicken-profile
$(1)/usr
/bin
/
137 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/feathers.tcl
$(1)/usr
/share
/chicken
/
138 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/feathers
$(1)/usr
/bin
/
141 $(eval
$(call BuildPackage
,chicken-scheme-full
))