xref: /OK3568_Linux_fs/buildroot/package/jimtcl/jimtcl.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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