# This makefile is for the savIRC developers to create the install packages RELEASE ?= CHANGE_ME-x.x.x REVISION ?= CHANGE_ME-685-2006-07 DBKFILES ?= /usr/local/share/xsl/docbook/xhtml/chunk.xsl # No need to alter anything below this line, unless new files were added # if you need to change the BASENAME do not forget to change the executable BASENAME = savirc PREFIX = /usr/local RELEASEDIR = $(BASENAME)-$(RELEASE) MAKEFILE = $(RELEASEDIR)/Makefile ROOT_FILES = Makefile* savirc.tcl gpl.txt README.txt INSTALL.txt CONTRIBUTORS.txt TCL_FILES = tcl/* GUI_FILES = gui/* LIB_FILES = lib/* LANG_FILES = lang/* HELP_FILES = help/* MKWIDGETS_FILES = mkWidgets1.3/* ICON_FILES = icons/* CONFIG_FILES = config/* PLATFORM_BASE_FILES = platform/platform.tcl EXECUTABLE = packaging/unix/savirc PLATFORM_UNIX_LIB_FILES = \ platform/unix/lib/DH1080_tcl.so \ platform/unix/lib/crypto.so \ platform/unix/lib/crypto.txt \ platform/unix/lib/libtls1.50.so PLATFORM_UNIX_LIB_BSD_FILES = \ platform/unix/lib/FreeBSD/crypto.so \ platform/unix/lib/FreeBSD/DH1080_tcl.so PLATFORM_WIN_BIN_FILES = \ platform/win32/bin/nslookup.exe \ platform/win32/bin/zip.exe PLATFORM_WIN_LIB_FILES = \ platform/win32/lib/libsnack.dll \ platform/win32/lib/tls15.dll PKG_DEBIAN = packaging/debian/* SUBDIRS = \ config \ gui \ help \ icons \ lang \ lib \ mkWidgets1.3 \ platform \ platform/unix \ platform/unix/lib \ platform/unix/lib/FreeBSD \ platform/win32 \ platform/win32/bin \ platform/win32/lib \ tcl # # default target # --help: @echo --------------------- @echo @echo Package building options for $(RELEASEDIR) @echo @echo --------------------- @echo @echo Change the name of the package with RELEASEDIR=savirc-x.xx @echo @echo --------------------- @echo @echo make pkg_export \(IMPORTANT! You must do this step first, if making a release from SVN!\) @echo @echo --------------------- @echo Create the Archives @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 make pkg-monthly @echo --------------------- @echo Create the Documentation @echo \# Please note that these commands require ROBOdoc to be installed. @echo \# 4.99.32 or higher @echo make handbook @echo make robodoc-docbk @echo make robodoc-html @echo --------------------- @echo make clean @echo --------------------- @echo make --help @echo " Will show you this help." # # clean # # This removes the release directory clean: -rm -rf $(RELEASEDIR) # # package creation # pkg_export: -mkdir $$HOME/savIRC_tmpFiles svn export --force . $$HOME/savIRC_tmpFiles @echo --------------------- @echo @echo You may now "cd $$HOME/savIRC_tmpFiles" @echo pkg: #rm -rf $(RELEASEDIR) -mkdir $(RELEASEDIR) for X in $(SUBDIRS) ; do mkdir $(RELEASEDIR)/$$X ; done for X in $(ROOT_FILES) ; do cp $$X $(RELEASEDIR) ; done for X in $(CONFIG_FILES) ; do cp $$X $(RELEASEDIR)/config ; done for X in $(GUI_FILES) ; do cp $$X $(RELEASEDIR)/gui ; done for X in $(HELP_FILES) ; do cp $$X $(RELEASEDIR)/help ; done for X in $(ICON_FILES) ; do cp $$X $(RELEASEDIR)/icons ; done for X in $(LANG_FILES) ; do cp $$X $(RELEASEDIR)/lang ; done for X in $(LIB_FILES) ; do cp $$X $(RELEASEDIR)/lib ; done for X in $(MKWIDGETS_FILES) ; do cp $$X $(RELEASEDIR)/mkWidgets1.3 ; done for X in $(PLATFORM_BASE_FILES) ; do cp $$X $(RELEASEDIR)/platform ; done for X in $(PLATFORM_UNIX_LIB_FILES) ; do cp $$X $(RELEASEDIR)/platform/unix/lib ; done for X in $(PLATFORM_UNIX_LIB_BSD_FILES) ; do cp $$X $(RELEASEDIR)/platform/unix/lib/FreeBSD ; done for X in $(PLATFORM_WIN_BIN_FILES) ; do cp $$X $(RELEASEDIR)/platform/win32/bin ; done for X in $(PLATFORM_WIN_LIB_FILES) ; do cp $$X $(RELEASEDIR)/platform/win32/lib ; done for X in $(TCL_FILES) ; do cp $$X $(RELEASEDIR)/tcl ; done cp $(EXECUTABLE) $(RELEASEDIR) rm -f $(RELEASEDIR)/*~ for X in $(SUBDIRS) ; do rm -f $(RELEASEDIR)/$$X/*~ ; done rm -rf $(RELEASEDIR)/.svn/ for X in $(SUBDIRS) ; do rm -rf $(RELEASEDIR)/$$X/.svn/ ; done # Autogenerate the Users Makefile echo "" >> $(MAKEFILE) echo "# This is the Makefile to install savIRC" > $(MAKEFILE) echo "" >> $(MAKEFILE) # We should change all PREFIX to DESTDIR _OR_ DESTDIR to PREFIX echo "DESTDIR ?= $(PREFIX)" >> $(MAKEFILE) #echo "DESTDIR ?= /usr/local" >> $(MAKEFILE) echo "" >> $(MAKEFILE) echo "BASENAME = $(BASENAME)" >> $(MAKEFILE) echo "RELEASE = $(RELEASE)" >> $(MAKEFILE) echo "" >> $(MAKEFILE) echo "ROOT_FILES = $(ROOT_FILES)" >> $(MAKEFILE) echo "TCL_FILES = $(TCL_FILES)" >> $(MAKEFILE) echo "GUI_FILES = $(GUI_FILES)" >> $(MAKEFILE) echo "LIB_FILES = $(LIB_FILES)" >> $(MAKEFILE) echo "LANG_FILES = $(LANG_FILES)" >> $(MAKEFILE) echo "MKWIDGETS_FILES = $(MKWIDGETS_FILES)" >> $(MAKEFILE) echo "ICON_FILES = $(ICON_FILES)" >> $(MAKEFILE) echo "CONFIG_FILES = $(CONFIG_FILES)" >> $(MAKEFILE) echo "HELP_FILES = $(HELP_FILES)" >> $(MAKEFILE) echo "PLATFORM_BASE_FILES = $(PLATFORM_BASE_FILES)" >> $(MAKEFILE) echo "PLATFORM_UNIX_LIB_FILES = $(PLATFORM_UNIX_LIB_FILES)" >> $(MAKEFILE) echo "PLATFORM_UNIX_LIB_BSD_FILES = $(PLATFORM_UNIX_LIB_BSD_FILES)" >> $(MAKEFILE) echo "SUBDIRS = $(SUBDIRS)" >> $(MAKEFILE) echo "" >> $(MAKEFILE) cat Makefile.am >> $(MAKEFILE) rm -f $(RELEASEDIR)/Makefile.am #cat $(MAKEFILE).in.build >> $(MAKEFILE) #rm -f $(MAKEFILE).in.build pkg-tar-gz: pkg @echo "Creating archive $(RELEASEDIR).tar.gz" tar zcf $(RELEASEDIR).tar.gz $(RELEASEDIR) pkg-tar-bz2: pkg @echo "Creating archive $(RELEASEDIR).tar.bz2" tar jcf $(RELEASEDIR).tar.bz2 $(RELEASEDIR) pkg-rpm: @echo No RPM package support yet! @echo The developers do not use rpm-based distributions. @echo Please help us to improve the packaging system. pkg-deb: pkg @echo "Creating archive" rm -rf $(RELEASEDIR)/platform/win32 rm -rf $(RELEASEDIR)/platform/unix/lib/FreeBSD tar zcf $(BASENAME)_$(RELEASE).orig.tar.gz $(RELEASEDIR) mkdir $(RELEASEDIR)/debian cp $(PKG_DEBIAN) $(RELEASEDIR)/debian @echo @echo "Now cd to $(RELEASEDIR), edit debian/changelog with 'dch' and check all files in debian/." @echo "Then build your debian-package with 'dpkg-buildpackage -rfakeroot -us -uc -b'." @echo "If you are a package-maintainer, you should use 'dpkg-buildpackage -rfakeroot'." pkg-ebuild: @echo No EBUILD package support yet! @echo The developers do not use ebuild-based distributions. @echo Please help us to improve the packaging system. pkg-windows: pkg rm -rf $(RELEASEDIR)/platform/unix rm -f $(RELEASEDIR)/savirc rm -f $(RELEASEDIR)/Makefile* tar zcvf $(RELEASEDIR)-win32.tar.gz $(RELEASEDIR) @echo @echo Package Structure is created under `pwd`/$(RELEASEDIR) @echo You now need to wrap this, and create the installer. pkg-monthly: pkg @echo "Creating archive $(BASENAME)-$(REVISION).tar.gz" tar zcf $(BASENAME)-$(REVISION).tar.gz $(RELEASEDIR) @echo "Monthly package now generated." handbook: # We will need to add support to auto-generate the handbook.xml file, so we can include robodoc files. @echo "Creating the savIRC Handbooks" -mkdir -p $(RELEASEDIR)-Handbook -mkdir -p $(RELEASEDIR)-Handbook/screenshots -mkdir -p $(RELEASEDIR)-Handbook/screenshots/Settings cp Documentation/docbook.css . xsltproc --stringparam html.stylesheet docbook.css $(DBKFILES) Documentation/handbook.xml cp *html $(RELEASEDIR)-Handbook cp docbook.css $(RELEASEDIR)-Handbook cp -r Documentation/screenshots/ $(RELEASEDIR)-Handbook/screenshots cp -r Documentation/screenshots/Settings $(RELEASEDIR)-Handbook/screenshots/Settings # Clean up rm *html rm docbook.css # Create the Archive tar zcf $(RELEASEDIR)-Handbook.tar.gz $(RELEASEDIR)-Handbook robodoc-docbk: @echo "Generating ROBOdoc DocBook files" robodoc --src ./ --doc ./sourcedoc-docbk --multidoc --dbxml --no_subdirectories --nopre --nosort --headless --footless tar zcf $(RELEASEDIR)-sourcedoc-docbk.tar.gz sourcedoc-docbk robodoc-html: @echo "Generating ROBOdoc HTML files" robodoc --src ./ --doc ./sourcedoc-html --multidoc --html --index --no_subdirectories --nopre --nosort tar zcf $(RELEASEDIR)-sourcedoc-html.tar.gz sourcedoc-html