1################################################################################ 2# 3# jimtcl 4# 5################################################################################ 6 7JIMTCL_VERSION = 0.80 8JIMTCL_SITE = $(call github,msteveb,jimtcl,$(JIMTCL_VERSION)) 9JIMTCL_INSTALL_STAGING = YES 10JIMTCL_LICENSE = BSD-2-Clause 11JIMTCL_LICENSE_FILES = LICENSE 12 13JIMTCL_HEADERS_TO_INSTALL = \ 14 jim.h \ 15 jim-eventloop.h \ 16 jim-signal.h \ 17 jim-subcmd.h \ 18 jim-win32compat.h \ 19 jim-config.h 20 21ifeq ($(BR2_PACKAGE_TCL),) 22define JIMTCL_LINK_TCLSH 23 ln -sf jimsh $(TARGET_DIR)/usr/bin/tclsh 24endef 25endif 26 27ifeq ($(BR2_STATIC_LIBS),y) 28define JIMTCL_INSTALL_LIB 29 $(INSTALL) -m 0644 -D $(@D)/libjim.a $(1)/usr/lib/libjim.a 30endef 31else 32JIMTCL_SHARED = --shared 33define JIMTCL_INSTALL_LIB 34 $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ 35 $(1)/usr/lib/libjim.so.$(JIMTCL_VERSION) 36 ln -sf libjim.so.$(JIMTCL_VERSION) $(1)/usr/lib/libjim.so 37endef 38endif 39 40# build system doesn't use autotools, but does use an old version of 41# gnuconfig which doesn't know all the architectures supported by 42# Buildroot, so update config.guess / config.sub like we do in 43# pkg-autotools.mk 44JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK 45HOST_JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK 46 47# jimtcl really wants to find a existing $CXX, so feed it false 48# when we do not have one. 49define JIMTCL_CONFIGURE_CMDS 50 (cd $(@D); \ 51 $(TARGET_CONFIGURE_OPTS) \ 52 CCACHE=none \ 53 $(if $(BR2_INSTALL_LIBSTDCPP),,CXX=false) \ 54 ./configure --prefix=/usr \ 55 --host=$(GNU_TARGET_NAME) \ 56 --build=$(GNU_HOST_NAME) \ 57 $(JIMTCL_SHARED) \ 58 ) 59endef 60 61# -fPIC is mandatory to build shared libraries on certain architectures 62# (e.g. SPARC) and causes no harm or drawbacks on other architectures 63define JIMTCL_BUILD_CMDS 64 SH_CFLAGS="-fPIC" \ 65 SHOBJ_CFLAGS="-fPIC" \ 66 $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) 67endef 68 69define JIMTCL_INSTALL_STAGING_CMDS 70 for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ 71 cp -a $(@D)/$$i $(STAGING_DIR)/usr/include/ || exit 1 ; \ 72 done; \ 73 $(call JIMTCL_INSTALL_LIB,$(STAGING_DIR)) 74endef 75 76define JIMTCL_INSTALL_TARGET_CMDS 77 $(INSTALL) -D $(@D)/jimsh $(TARGET_DIR)/usr/bin/jimsh 78 $(call JIMTCL_INSTALL_LIB,$(TARGET_DIR)) 79 $(JIMTCL_LINK_TCLSH) 80endef 81 82define HOST_JIMTCL_CONFIGURE_CMDS 83 cd $(@D) && \ 84 $(HOST_CONFIGURE_OPTS) \ 85 CCACHE=none \ 86 ./configure --prefix=$(HOST_DIR) --shared 87endef 88 89define HOST_JIMTCL_BUILD_CMDS 90 $(HOST_MAKE_ENV) $(MAKE) -C $(@D) 91endef 92 93define HOST_JIMTCL_INSTALL_CMDS 94 for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ 95 cp -a $(@D)/$$i $(HOST_DIR)/usr/include/ || exit 1 ; \ 96 done; 97 $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ 98 $(HOST_DIR)/usr/lib/libjim.so.$(JIMTCL_VERSION) 99 ln -sf libjim.so.$(JIMTCL_VERSION) $(HOST_DIR)/usr/lib/libjim.so 100endef 101 102$(eval $(generic-package)) 103$(eval $(host-generic-package)) 104