libgd: update to 2.3.3
[feed/packages.git] / lang / chicken-scheme / Makefile
1 # Copyright (C) 2019-2020 Jerônimo Cordoni Pellegrini <j_p@aleph0.info>
2 #
3 # This file is free software, licensed under the GNU General Public License v3
4 # or later.
5 # See /LICENSE for details
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=chicken-scheme
11 PKG_VERSION:=5.2.0
12 PKG_RELEASE:=2
13
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>
19
20 PKG_LICENSE:=BSD-3-Clause
21 PKG_LICENSE_FILES:=LICENSE
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/chicken-scheme/Default
26 TITLE:=Chicken Scheme
27 SECTION:=lang
28 CATEGORY:=Languages
29 URL:=https://call-cc.org
30 ABI_VERSION:=11
31 endef
32
33 ##
34 ## chicken-scheme-interpreter
35 ##
36
37 define Package/chicken-scheme-interpreter
38 $(call Package/chicken-scheme/Default)
39 TITLE+=interpreter only
40 CONFLICTS:=chicken-scheme-full
41 endef
42
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.
50 endef
51
52 MAKE_FLAGS += PLATFORM=linux C_COMPILER=$(TARGET_CC) LINKER=$(TARGET_CC) PREFIX=/usr C_COMPILER_OPTIMIZATION_OPTIONS="$(TARGET_CFLAGS)"
53
54 # not installed:
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)
59 # - profiler
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)/
70 endef
71
72 $(eval $(call BuildPackage,chicken-scheme-interpreter))
73
74
75
76 ##
77 ## chicken-scheme-full
78 ##
79
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
82 # line.
83 # also tried -Wl,-R/usr/lib,-R/usr/lib/chicken/$(ABI_VERSION)
84 #
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
87 #
88 STRIP:=:
89 RSTRIP:=:
90 include $(TOPDIR)/rules.mk
91
92 define Package/chicken-scheme-full
93 $(call Package/chicken-scheme/Default)
94 TITLE+=full package
95 # csc depends on gcc; chicken-install uses the 'install' command from coreutils
96 EXTRA_DEPENDS:= gcc, coreutils-install
97 endef
98
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
105 the debugger.
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.
108 endef
109
110
111 # not installed:
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)/
123 # csc
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/
128 # chicken-install
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/
134 # profile
135 $(INSTALL_BIN) $(PKG_BUILD_DIR)/chicken-profile $(1)/usr/bin/
136 # feathers
137 $(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers.tcl $(1)/usr/share/chicken/
138 $(INSTALL_BIN) $(PKG_BUILD_DIR)/feathers $(1)/usr/bin/
139 endef
140
141 $(eval $(call BuildPackage,chicken-scheme-full))