8efd4e771e23bb8f6d9cd57e5a2c33fd7bc45d97
[feed/packages.git] / lang / tcl / Makefile
1 #
2 # Copyright (C) 2006-2018 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=tcl
11 TCL_MAJOR_VERSION:=8.6
12 PKG_VERSION:=${TCL_MAJOR_VERSION}.10
13 PKG_RELEASE:=2
14
15 PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION)-src.tar.gz
16 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
17 PKG_HASH:=5196dbf6638e3df8d5c87b5815c8c2b758496eb6f0e41446596c9a4e638d87ed
18 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION)
19 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)$(PKG_VERSION)
20
21 PKG_MAINTAINER:=Joe Mistachkin <joe@mistachkin.com>
22 PKG_LICENSE:=TCL
23 PKG_LICENSE_FILES:=license.terms
24 PKG_CPE_ID:=cpe:/a:tcl_tk:tcl_tk
25
26 PKG_FIXUP:=autoreconf
27 PKG_INSTALL:=1
28 PKG_BUILD_PARALLEL:=1
29 HOST_BUILD_PARALLEL:=1
30
31 include $(INCLUDE_DIR)/host-build.mk
32 include $(INCLUDE_DIR)/package.mk
33
34 define Package/tcl
35 SUBMENU:=Tcl
36 SECTION:=lang
37 CATEGORY:=Languages
38 DEPENDS:=+libpthread +zlib
39 TITLE:=The Tcl language
40 URL:=https://www.tcl.tk/
41 endef
42
43 define Package/tcl/description
44 Tcl, or Tool Command Language, is a an elegant, versatile, feature-rich,
45 simple-to-learn yet very powerful industrial-strength open-source
46 programming language and development platform. It is renowned for its
47 stability and utility, and its emphasis on providing a cross-platform
48 programming API makes it an ideal choice for an enormous variety of
49 programming jobs.
50 endef
51
52 CONFIGURE_PATH := unix
53
54 CONFIGURE_VARS += \
55 tcl_cv_strtod_unbroken=ok
56
57 CONFIGURE_ARGS += \
58 --enable-threads
59
60 MAKE_PATH := unix
61
62 define Build/Prepare
63 $(call Build/Prepare/Default)
64 rm -rf $(PKG_BUILD_DIR)/pkgs/*
65 endef
66
67 define Build/InstallDev
68 $(INSTALL_DIR) $(1)/usr/include
69 $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
70
71 $(INSTALL_DIR) $(1)/usr/lib
72 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtcl*.{a,so*} $(1)/usr/lib/
73 $(CP) $(PKG_INSTALL_DIR)/usr/lib/tclConfig.sh $(1)/usr/lib/
74 $(CP) $(PKG_INSTALL_DIR)/usr/lib/tclooConfig.sh $(1)/usr/lib/
75
76 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
77 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/tcl.pc \
78 $(1)/usr/lib/pkgconfig
79 $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/tcl.pc
80 $(SED) 's,/usr/lib,$$$${prefix}/lib,g' $(1)/usr/lib/pkgconfig/tcl.pc
81 endef
82
83 define Package/tcl/install
84 $(INSTALL_DIR) $(1)/usr/lib
85 $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so $(1)/usr/lib
86
87 $(INSTALL_DIR) $(1)/usr/bin
88 $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
89
90 $(CP) -a $(PKG_INSTALL_DIR)/usr/lib/tcl8 $(1)/usr/lib/
91 $(CP) -a $(PKG_INSTALL_DIR)/usr/lib/tcl$(TCL_MAJOR_VERSION) $(1)/usr/lib/
92 $(LN) tclsh$(TCL_MAJOR_VERSION) $(1)/usr/bin/tclsh
93 endef
94
95 define Host/Configure
96 $(call Host/Configure/Default,$(1),$(2),$(CONFIGURE_PATH)/$(3))
97 endef
98
99 define Host/Compile
100 +$(HOST_MAKE_VARS) \
101 $(MAKE) $(HOST_JOBS) -C $(HOST_BUILD_DIR)/$(MAKE_PATH) \
102 $(HOST_MAKE_FLAGS) \
103 $(1)
104 endef
105
106 define Host/Install
107 $(call Host/Compile,install)
108 (cd $(HOST_BUILD_PREFIX)/bin; test -f tclsh || ln -s tclsh$(TCL_MAJOR_VERSION) tclsh)
109 endef
110
111 $(eval $(call HostBuild))
112 $(eval $(call BuildPackage,tcl))