# update this section for each release

RELEASE ?= 1.99

# No need to alter anything below this line, unless new files were added

BASENAME = savirc

DESTDIR ?= /usr/local
PREFIX ?= $(DESTDIR)

ROOT_FILES = Makefile savirc.tcl gpl.txt README 

TCL_FILES = tcl/colors.tcl tcl/commands.tcl tcl/config.tcl tcl/ctcp.tcl tcl/dcc.tcl \
	tcl/gui.tcl tcl/identd.tcl tcl/images.tcl tcl/menus.tcl tcl/savirc_api.tcl \
	tcl/script.tcl tcl/settings.tcl tcl/socks.tcl tcl/windows.tcl

LIB_FILES = lib/autoscroll.tcl lib/balloon.tcl lib/combobox.tcl lib/cscrollbar.tcl \
	lib/dkffont.tcl lib/flist.tcl lib/labelframe.tcl lib/mclistbox.tcl \
	lib/progress.tcl lib/scrollgrid.tcl lib/supertext.tcl lib/tree.tcl lib/xbutton.tcl

LANG_FILES = lang/language.tcl \
	lang/en.msg lang/en_us.msg

HELP_FILES = help/help.tcl help/help.help

MKWIDGETS_FILES = mkWidgets1.3/Document.tcl mkWidgets1.3/Pane.tcl \
	mkWidgets1.3/Spinentry.tcl mkWidgets1.3/Tabcontrol.tcl \
	mkWidgets1.3/Toolbar.tcl mkWidgets1.3/Tooltip.tcl \
	mkWidgets1.3/metawidget.tcl mkWidgets1.3/pkgIndex.tcl

ICON_FILES = icons/savirc.ico icons/savirc.xbm icons/savirc.xpm

CONFIG_FILES = config/servers.ini

PLATFORM_FILES = platform/platform.tcl

PLATFORM_UNIX_FILES = $(PLATFORM_FILES)

PLATFORM_WIN_LIB_FILES = platform/win32/lib/libsnack.dll
PLATFORM_WIN_BIN_FILES = platform/win32/bin/nslookup.exe \
	platform/win32/bin/zip.exe

PLATFORM_WIN_FILES = $(PLATFORM_FILES) \
	$(PLATFORM_WIN_LIB_FILES) \
	$(PLATFORM_WIN_BIN_FILES) 

DISTFILES = \
	$(ROOT_FILES) \
	$(TCL_FILES) \
	$(LIB_FILES) \
	$(LANG_FILES) \
	$(HELP_FILES) \
	$(MKWIDGETS_FILES) \
	$(CONFIG_FILES) \

DISTFILES_UNIX = $(DISTFILES) $(PLATFORM_UNIX_FILES)

DISTFILES_WIN = $(DISTFILE) $(PLATFORM_WIN_FILES)

#
# default target
#

--help:
	@echo
	@echo Package building options for $(BASENAME)-$(RELEASE)
	@echo
	@echo make pkg-tar-gz
	@echo make pkg-tar-bz2
	@echo make pkg-rpm
	@echo make pkg-deb
	@echo make pkg-ebuild
	@echo make pkg-windows
	@echo
	@echo Install options
	@echo
	@echo make install	-- will install to '/usr/local' by default, set DESTDIR to override
	@echo 

#
# clean
#

clean:
	-rm -rf $(BASENAME)-$(RELEASE)
	-rm -rf $(BASENAME)-$(RELEASE).tar.gz
	-rm -rf $(BASENAME)-$(RELEASE).tar.bz2

#
# package creation
#

pkg:
	-mkdir $(BASENAME)-$(RELEASE)/
	for X in $(ROOT_FILES) ; do cp $$X $(BASENAME)-$(RELEASE) ; done
	-mkdir $(BASENAME)-$(RELEASE)/tcl
	for X in $(TCL_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/tcl ; done
	-mkdir $(BASENAME)-$(RELEASE)/lib
	for X in $(LIB_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/lib ; done
	-mkdir $(BASENAME)-$(RELEASE)/lang
	for X in $(LANG_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/lang ; done
	-mkdir $(BASENAME)-$(RELEASE)/help
	for X in $(HELP_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/help ; done
	-mkdir $(BASENAME)-$(RELEASE)/mkWidgets1.3
	for X in $(MKWIDGETS_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/mkWidgets1.3 ; done
	-mkdir $(BASENAME)-$(RELEASE)/config
	for X in $(CONFIG_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/config ; done
	-mkdir $(BASENAME)-$(RELEASE)/icons
	for X in $(ICON_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/icons ; done
	-mkdir $(BASENAME)-$(RELEASE)/platform
	for X in $(PLATFORM_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/platform ; done

pkg-tar-gz: pkg
	tar zcvf $(BASENAME)-$(RELEASE).tar.gz $(BASENAME)-$(RELEASE)
		
pkg-tar-bz2: pkg
	tar jcvf $(BASENAME)-$(RELEASE).tar.bz2 $(BASENAME)-$(RELEASE)

pkg-rpm:
	@echo No RPM package support yet!

pkg-deb:
	@echo No DEB package support yet!

pkg-ebuild:
	@echo No EBUILD package support yet!

pkg-windows: pkg
	-mkdir $(BASENAME)-$(RELEASE)/platform/win32
	-mkdir $(BASENAME)-$(RELEASE)/platform/win32/lib
	for X in $(PLATFORM_WIN_LIB_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/platform/win32/lib ; done
	-mkdir $(BASENAME)-$(RELEASE)/platform/win32/bin
	for X in $(PLATFORM_WIN_BIN_FILES) ; do cp $$X $(BASENAME)-$(RELEASE)/platform/win32/bin ; done
	@echo
	@echo
	@echo Package Structure is created under `pwd`/$(BASENAME)-$(RELEASE)
	@echo You now need to wrap this, and create the installer.
	
#
#  install procedure
#

install:
	-mkdir $(DESTDIR)
	-mkdir $(DESTDIR)/lib
	-mkdir $(DESTDIR)/lib/$(BASENAME)
	-mkdir $(DESTDIR)/lib/$(BASENAME)/tcl
	-mkdir $(DESTDIR)/lib/$(BASENAME)/lib
	-mkdir $(DESTDIR)/lib/$(BASENAME)/lang
	-mkdir $(DESTDIR)/lib/$(BASENAME)/help
	-mkdir $(DESTDIR)/lib/$(BASENAME)/mkWidgets1.3
	-mkdir $(DESTDIR)/lib/$(BASENAME)/config
	-mkdir $(DESTDIR)/lib/$(BASENAME)/icons
	-mkdir $(DESTDIR)/lib/$(BASENAME)/platform
	for X in $(ROOT_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME) ; done
	for X in $(TCL_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/tcl ; done
	for X in $(LIB_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/lib ; done
	for X in $(LANG_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/lang ; done
	for X in $(HELP_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/help ; done
	for X in $(MKWIDGETS_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/mkWidgets1.3 ; done
	for X in $(CONFIG_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/config ; done
	for X in $(ICON_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/icons ; done
	for X in $(PLATFORM_FILES) ; do cp $$X $(DESTDIR)/lib/$(BASENAME)/platform ; done
	chmod -R 0755 $(DESTDIR)/lib/$(BASENAME)
	-mkdir $(DESTDIR)/bin
	-rm -f $(DESTDIR)/bin/$(BASENAME)
	echo \#!/bin/sh > $(DESTDIR)/bin/$(BASENAME)
	echo cd $(PREFIX)/lib/$(BASENAME) >> $(DESTDIR)/bin/$(BASENAME)
	echo wish -f savirc.tcl >> $(DESTDIR)/bin/$(BASENAME)
	chmod 0755 $(DESTDIR)/bin/$(BASENAME)
