# -*- Makefile -*- # $Id$ # Copyright (C) 1991, 1996 Lysator Academic Computer Association. # # This file is part of the LysKOM server. # # LysKOM is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # LysKOM is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with LysKOM; see the file COPYING. If not, write to # Lysator, c/o ISY, Linkoping University, S-581 83 Linkoping, SWEDEN, # or the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, # MA 02139, USA. # # Please mail bug reports to bug-lyskom@lysator.liu.se. # # $Id$ # # ====================================================================== # Useful targets: all, lyskom.el lyskom.elc check verbose TAGS release # clean distclean install # ====================================================================== # # NOTE: If you change this file, don't forget to change the distribution # makefile too! # CLIENTVERSION = 0.46.1 DOCFILES=NEWS-0.46 NEWS-0.46.1 DEBIANCLIENTVERSION = $(shell echo $(CLIENTVERSION) | tr - .) REDHATCLIENTVERSION = $(shell echo $(CLIENTVERSION) | tr - .) RPMROOT = /usr/src/redhat FTPDIR=/home/davby/www-pub #REMOTEDIR=sanna.lysator.liu.se:/lysator/ftp/pub/lyskom/elisp-client #FTPDIR = /usr/ftp/pub/lyskom/elisp-client LISPDIR = /usr/gnu/share/emacs/site-lisp LANGUAGES = swedish english DEFAULTLISPDIR=/usr/local/share/emacs/site-lisp DEFAULTPREFIX=/usr/local SHELL = /bin/sh RM = /bin/rm -f EMACS=xemacs EMACS-BATCH = $(EMACS) -batch GENERIC-CLEAN = *~ *.o core GENERIC-DIST-CLEAN = TAGS TARGET=lyskom.elc TARGET-EL=$(TARGET:%.elc=%.el) LANGUAGE-EL=$(LANGUAGES:=-strings.el) SOURCES = $(LANGUAGE-EL) \ komtypes.el \ clienttypes.el \ deferred-insert.el \ utilities.el \ completing-read.el \ command.el \ buffers.el \ aux-items.el \ mime.el \ prefetch.el \ startup.el \ reading.el \ internal.el \ services.el \ parse.el \ cache.el \ view-mode.el \ commands1.el \ commands2.el \ review.el \ edit-text.el \ filter.el \ filter-edit.el \ lyskom-buttons.el \ view-text.el \ async.el \ mship-edit.el \ prioritize.el \ flags.el \ messages.el \ ansaphone.el \ remote-control.el \ menus.el slow.el \ elib-string.el \ option-edit.el \ talkback.el \ lyskom-rest.el HEADER = header.el \ defvar.el \ feature.el \ vars.el \ macros.el \ compatibility.el \ language.el MISC = envcheck.el \ lpath.el \ autoconf.el DISTFILES = README \ COPYING \ Makefile.in \ configure.in DISTSRC = $(DISTFILES:%=distribution-%) HEADER-ELC = $(HEADER:%.el=%.elc) SOURCES-ELC = $(SOURCES:%.el=%.elc) all: $(TARGET) vars.el: vars.el.in Makefile rm -f vars.el if test -d CVS -a x$(DO_RELEASE) = x; then \ sed "s/@@CLIENTVERSION@@/$(CLIENTVERSION) (from CVS; built `date +%Y-%m-%d`)/g" < vars.el.in > vars.el ; \ else \ sed 's/@@CLIENTVERSION@@/$(CLIENTVERSION)/g' < vars.el.in > vars.el ; \ fi chmod 444 vars.el %.elc: %.el _header.el $(EMACS-BATCH) -l ./lpath.el -l ./_header.el -f batch-byte-compile $< _header.el: $(HEADER) cat $(HEADER) > _header.el fast: $(HEADER-ELC) $(SOURCES-ELC) cat $(HEADER-ELC) $(SOURCES-ELC) > $(TARGET) $(TARGET-EL): $(HEADER) $(SOURCES) cat $(HEADER) $(SOURCES) > $(TARGET-EL) $(TARGET): $(TARGET-EL) $(EMACS-BATCH) -l ./lpath.el -f batch-byte-compile $(TARGET-EL) check: $(TARGET-EL) $(EMACS-BATCH) -l ./lpath.el -l ./$(TARGET-EL) -l ./check-strings.el \ -f lyskom-check-strings .PHONY: verbose .PHONY: verbose-el verbose: verbose-el $(TARGET) verbose-el: $(HEADER) $(SOURCES) @echo "Building lyskom.el" @echo "" > $(TARGET-EL) @for i in $(HEADER) $(SOURCES) ; do \ echo '(eval-when-compile (message "Compiling %s" "'$$i'"))' \ >> $(TARGET-EL) ;\ cat $$i >> $(TARGET-EL) ; \ done TAGS: $(HEADER) $(SOURCES) etags $(HEADER) $(SOURCES) install: $(TARGET) $(TARGET-EL) cp $(TARGET-EL) $(TARGET) $(LISPDIR) release: release-files release-move release-files: clean $(MAKE) do-release-files DO_RELEASE=1 do-release-files: $(HEADER) $(SOURCES) $(DISTSRC) $(MISC) mkdir -p lyskom-$(CLIENTVERSION) cp $(HEADER) $(SOURCES) $(MISC) lyskom-$(CLIENTVERSION) for i in $(DISTFILES) ; do \ sed 's/@@CLIENTVERSION@@/$(CLIENTVERSION)/g' < distribution-$$i \ > lyskom-$(CLIENTVERSION)/$$i; \ done for i in $(DOCFILES) ; do \ cp ../doc/$$i lyskom-$(CLIENTVERSION)/$$i ; \ done sed -e "s/#CLIENTVERSION#/$(CLIENTVERSION)/" -e "s/#REDHATCLIENTVERSION#/$(REDHATCLIENTVERSION)/" lyskom-$(CLIENTVERSION)/lyskom-elisp-client-$(REDHATCLIENTVERSION).spec ( cd lyskom-$(CLIENTVERSION); \ autoconf ; \ ./configure --prefix=$(DEFAULTPREFIX) --with-lispdir=$(DEFAULTLISPDIR) ; \ make lyskom-$(CLIENTVERSION).el ) chmod -R u+rw,g+r,o+r lyskom-$(CLIENTVERSION) tar cvf lyskom-$(CLIENTVERSION).tar lyskom-$(CLIENTVERSION) gzip -9 lyskom-$(CLIENTVERSION).tar zip -R9y lyskom-$(CLIENTVERSION).zip 'lyskom-$(CLIENTVERSION)/*' release-move: if [ ! -z "$(REMOTEDIR)" ] ; then \ scp lyskom-$(CLIENTVERSION).tar.gz $(REMOTEDIR); \ scp lyskom-$(CLIENTVERSION).zip $(REMOTEDIR); \ else \ echo "Kopierade inte release-filerna till remote-system." ; \ fi if [ -d $(FTPDIR) ]; then \ mv lyskom-$(CLIENTVERSION).tar.gz $(FTPDIR) ; \ mv lyskom-$(CLIENTVERSION).zip $(FTPDIR) ; \ else \ echo "Flyttade inte release-filerna till $(FTPDIR)." ; \ fi debian-package: release-files debian-build debian-build: release-files cp -R debian lyskom-$(CLIENTVERSION) $(RM) -rf lyskom-$(CLIENTVERSION)/debian/CVS sed '1s/(.*)/($(DEBIANCLIENTVERSION)-1)/' lyskom-$(CLIENTVERSION)/debian/changelog sed 's/@@CLIENTVERSION@@/$(CLIENTVERSION)/g' lyskom-$(CLIENTVERSION)/debian/rules mv lyskom-$(CLIENTVERSION) lyskom-elisp-client-$(DEBIANCLIENTVERSION) cp lyskom-$(CLIENTVERSION).tar.gz lyskom-elisp-client_$(DEBIANCLIENTVERSION).orig.tar.gz cd lyskom-elisp-client-$(DEBIANCLIENTVERSION) && dpkg-buildpackage redhat-packages: release-files redhat-build redhat-build: release-files cp lyskom-$(CLIENTVERSION).tar.gz $(RPMROOT)/SOURCES/ sed -e "s/#CLIENTVERSION#/$(CLIENTVERSION)/" -e "s/#REDHATCLIENTVERSION#/$(REDHATCLIENTVERSION)/" $(RPMROOT)/SPECS/lyskom-elisp-client-$(REDHATCLIENTVERSION).spec rpm -ba $(RPMROOT)/SPECS/lyskom-elisp-client-$(REDHATCLIENTVERSION).spec clean: $(RM) *.el.gz *.elc.gz $(TARGET-EL) $(RM) -rf lyskom-$(CLIENTVERSION) \ lyskom-$(CLIENTVERSION).tar \ lyskom-$(CLIENTVERSION).tar.gz \ lyskom-$(CLIENTVERSION).zip \ lyskom-elisp-client-$(DEBIANCLIENTVERSION) $(RM) vars.el *.elc $(GENERIC-CLEAN) $(RM) -r build-stamp lyskom-elisp-client*.gz lyskom-elisp-client*.deb \ lyskom-elisp-client*.dsc lyskom-elisp-client*.changes