# $Id: Makefile 1948 2005-09-19 23:06:12Z nico $

include $(TOPDIR)/rules.mk

PKG_NAME:=tcl8
PKG_VERSION:=8.4.11
PKG_RELEASE:=5
PKG_MD5SUM:=629dfea34e4087eb4683f834060abb63
TCL_VERSION:=8.4

PKG_SOURCE_URL:=@SF/tcl
#PKG_SOURCE_URL:= http://kent.dl.sourceforge.net/sourceforge/tcl http://puzzle.dl.sourceforge.net/sourceforge/tcl http://voxel.dl.sourceforge.net/sourceforge/tcl http://ovh.dl.sourceforge.net/sourceforge/tcl http://internap.dl.sourceforge.net/sourceforge/tcl http://heanet.dl.sourceforge.net/sourceforge/tcl http://none.dl.sourceforge.net/sourceforge/tcl

PKG_SOURCE:=tcl$(PKG_VERSION)-src.tar.gz
PKG_CAT:=zcat
PKG_BUILD_DIR:=$(BUILD_DIR)/tcl$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install

include $(TOPDIR)/package/rules.mk

define PKG_mod_template

$$(IPKG_$(1)):
	install -d -m0755 $$(IDIR_$(1))/usr/lib/tcl$(TCL_VERSION)
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/tcl$(TCL_VERSION)/$(2) $$(IDIR_$(1))/usr/lib/tcl$(TCL_VERSION)/
	$(IPKG_BUILD) $$(IDIR_$(1)) $(PACKAGE_DIR)

endef

$(eval $(call PKG_template,TCL8,tcl8,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_HTTP25,tcl8-mod-http25,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_HTTP10,tcl8-mod-http10,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_OPT,tcl8-mod-opt,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_ENCODING,tcl8-mod-encoding,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_MSGCAT,tcl8-mod-msgcat,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
$(eval $(call PKG_template,TCL8_MOD_TCLTEST,tcl8-mod-tcltest,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))

$(PKG_BUILD_DIR)/.configured:
	(cd $(PKG_BUILD_DIR)/unix; rm -rf config.{cache,status} ; \
		$(TARGET_CONFIGURE_OPTS) \
		CFLAGS="$(TARGET_CFLAGS)" \
		CPPFLAGS="-I$(STAGING_DIR)/usr/include" \
		LDFLAGS="-L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
		lt_sys_lib_dlsearch_path_spec="$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" \
		lt_sys_lib_search_path_spec="$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib" \
		ac_cv_func_strtod=no \
		tcl_cv_strtod_buggy=0 \
		./configure -v -v \
		  --target=$(GNU_TARGET_NAME) \
		  --host=$(GNU_TARGET_NAME) \
		  --build=$(GNU_HOST_NAME) \
		  --program-prefix="" \
		  --program-suffix="" \
		  --prefix=/usr \
		  --exec-prefix=/usr \
		  --bindir=/usr/bin \
		  --datadir=/usr/share \
		  --includedir=/usr/include \
		  --infodir=/usr/share/info \
		  --libdir=/usr/lib \
		  --libexecdir=/usr/lib \
		  --localstatedir=/var \
		  --mandir=/usr/share/man \
		  --sbindir=/usr/sbin \
		  --sysconfdir=/etc \
		  $(DISABLE_LARGEFILE) \
		  $(DISABLE_NLS) \
		--enable-shared \
		--disable-static \
		--disable-rpath \
		--disable-debug \
	);
	touch $@


$(PKG_BUILD_DIR)/.built:
	rm -rf $(PKG_INSTALL_DIR)
	mkdir -p $(PKG_INSTALL_DIR)
	$(MAKE) -C $(PKG_BUILD_DIR)/unix \
		DESTDIR="$(PKG_INSTALL_DIR)" \
		all install
	touch $@


$(IPKG_TCL8): 
	install -d -m0755 $(IDIR_TCL8)/usr/bin
	cp -fpR $(PKG_INSTALL_DIR)/usr/bin/tclsh$(TCL_VERSION) $(IDIR_TCL8)/usr/bin/
	ln -sf tclsh$(TCL_VERSION) $(IDIR_TCL8)/usr/bin/tclsh
	install -d -m0755 $(IDIR_TCL8)/usr/lib/tcl$(TCL_VERSION)
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/tcl$(TCL_VERSION)/*.tcl $(IDIR_TCL8)/usr/lib/tcl$(TCL_VERSION)/
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/tcl$(TCL_VERSION)/tclIndex $(IDIR_TCL8)/usr/lib/tcl$(TCL_VERSION)/
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libtcl$(TCL_VERSION).so $(IDIR_TCL8)/usr/lib/
	chmod 775 $(IDIR_TCL8)/usr/lib/*.so
	$(RSTRIP) $(IDIR_TCL8)
	$(IPKG_BUILD) $(IDIR_TCL8) $(PACKAGE_DIR)


$(eval $(call PKG_mod_template,TCL8_MOD_HTTP25,http2.5))
$(eval $(call PKG_mod_template,TCL8_MOD_HTTP10,http1.0))
$(eval $(call PKG_mod_template,TCL8_MOD_OPT,opt0.4))
$(eval $(call PKG_mod_template,TCL8_MOD_ENCODING,encoding))
$(eval $(call PKG_mod_template,TCL8_MOD_MSGCAT,msgcat1.3))
$(eval $(call PKG_mod_template,TCL8_MOD_TCLTEST,tcltest2.2))


$(STAGING_DIR)/usr/lib/libtcl$(TCL_VERSION).so: $(PKG_BUILD_DIR)/.built
	mkdir -p $(STAGING_DIR)/usr/lib
	mkdir -p $(STAGING_DIR)/usr/bin
	mkdir -p $(STAGING_DIR)/usr/include
	cp -fpR $(PKG_INSTALL_DIR)/usr/include/tcl* $(STAGING_DIR)/usr/include/
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/tcl$(TCL_VERSION) $(STAGING_DIR)/usr/lib/
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/tclConfig.sh $(STAGING_DIR)/usr/lib/
	cp -fpR $(PKG_INSTALL_DIR)/usr/lib/libtcl$(TCL_VERSION).so $(STAGING_DIR)/usr/lib/
	chmod 775 $(STAGING_DIR)/usr/lib/*
	cp -fpR $(PKG_INSTALL_DIR)/usr/bin/tclsh$(TCL_VERSION) $(STAGING_DIR)/usr/bin/
	touch $@

install-dev: $(STAGING_DIR)/usr/lib/libtcl$(TCL_VERSION).so

uninstall-dev:
	rm -rf $(STAGING_DIR)/usr/bin/tclsh*
	rm -rf $(STAGING_DIR)/usr/lib/tcl*
	rm -rf $(STAGING_DIR)/usr/include/tcl*

compile-targets: install-dev
clean-targets: uninstall-dev
