################################################################################ # # jimtcl # ################################################################################ JIMTCL_VERSION = 0.79 JIMTCL_SITE = $(call github,msteveb,jimtcl,$(JIMTCL_VERSION)) JIMTCL_INSTALL_STAGING = YES JIMTCL_LICENSE = BSD-2-Clause JIMTCL_LICENSE_FILES = LICENSE JIMTCL_HEADERS_TO_INSTALL = \ jim.h \ jim-eventloop.h \ jim-signal.h \ jim-subcmd.h \ jim-win32compat.h \ jim-config.h ifeq ($(BR2_PACKAGE_TCL),) define JIMTCL_LINK_TCLSH ln -sf jimsh $(TARGET_DIR)/usr/bin/tclsh endef endif ifeq ($(BR2_STATIC_LIBS),y) define JIMTCL_INSTALL_LIB $(INSTALL) -m 0644 -D $(@D)/libjim.a $(1)/usr/lib/libjim.a endef else JIMTCL_SHARED = --shared define JIMTCL_INSTALL_LIB $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ $(1)/usr/lib/libjim.so.$(JIMTCL_VERSION) ln -sf libjim.so.$(JIMTCL_VERSION) $(1)/usr/lib/libjim.so endef endif # build system doesn't use autotools, but does use an old version of # gnuconfig which doesn't know all the architectures supported by # Buildroot, so update config.guess / config.sub like we do in # pkg-autotools.mk JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK HOST_JIMTCL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK # jimtcl really wants to find a existing $CXX, so feed it false # when we do not have one. define JIMTCL_CONFIGURE_CMDS (cd $(@D); \ $(TARGET_CONFIGURE_OPTS) \ CCACHE=none \ $(if $(BR2_INSTALL_LIBSTDCPP),,CXX=false) \ ./configure --prefix=/usr \ --host=$(GNU_TARGET_NAME) \ --build=$(GNU_HOST_NAME) \ $(JIMTCL_SHARED) \ ) endef # -fPIC is mandatory to build shared libraries on certain architectures # (e.g. SPARC) and causes no harm or drawbacks on other architectures define JIMTCL_BUILD_CMDS SH_CFLAGS="-fPIC" \ SHOBJ_CFLAGS="-fPIC" \ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) endef define JIMTCL_INSTALL_STAGING_CMDS for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ cp -a $(@D)/$$i $(STAGING_DIR)/usr/include/ || exit 1 ; \ done; \ $(call JIMTCL_INSTALL_LIB,$(STAGING_DIR)) endef define JIMTCL_INSTALL_TARGET_CMDS $(INSTALL) -D $(@D)/jimsh $(TARGET_DIR)/usr/bin/jimsh $(call JIMTCL_INSTALL_LIB,$(TARGET_DIR)) $(JIMTCL_LINK_TCLSH) endef define HOST_JIMTCL_CONFIGURE_CMDS cd $(@D) && \ $(HOST_CONFIGURE_OPTS) \ CCACHE=none \ ./configure --prefix=$(HOST_DIR) --shared endef define HOST_JIMTCL_BUILD_CMDS $(HOST_MAKE_ENV) $(MAKE) -C $(@D) endef define HOST_JIMTCL_INSTALL_CMDS for i in $(JIMTCL_HEADERS_TO_INSTALL); do \ cp -a $(@D)/$$i $(HOST_DIR)/usr/include/ || exit 1 ; \ done; $(INSTALL) -m 0755 -D $(@D)/libjim.so.$(JIMTCL_VERSION) \ $(HOST_DIR)/usr/lib/libjim.so.$(JIMTCL_VERSION) ln -sf libjim.so.$(JIMTCL_VERSION) $(HOST_DIR)/usr/lib/libjim.so endef $(eval $(generic-package)) $(eval $(host-generic-package))