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