Hello,

Not sure whether I have ever submitted this. This patch is supposed to
smooth installation from repo with Windows + MSYS, without any border
effect when MSYS is not there. Backward compatility is ensured by
testing environment variable OSTYPE to be msys --- which is supposed to
be the case under MSYS.

VBR,
   Vincent.

# Cheap BBDB makefile  -*- Makefile -*-
# Copyright (C) 2010-2014 Roland Winkler <wink...@gnu.org>
# 
# This file is part of the Insidious Big Brother Database (aka BBDB),
# 
# BBDB 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 3 of the License, or
# (at your option) any later version.
# 
# BBDB 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 BBDB.  If not, see <http://www.gnu.org/licenses/>.

### Commentary:

# This file provides a cheap workaround for (most of) those users
# who like to use the latest BBDB, but do not have autotools installed.
# This file can compile BBDB's lisp code on most systems.  Yet it is not
# intended to be foolproof!

# For building under MSYS export OSTYPE to msys

ifeq ($(OSTYPE),msys)
  cur_dir=$(shell pwd -W | sed 's!/!\\\\!g')
else
  cur_dir=$(CURDIR)
endif

srcdir = .
prefix = /usr/local
lispdir = $(DESTDIR)/usr/local/share/emacs/site-lisp/bbdb

INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644

RM   = /bin/rm -f
LN_S = /bin/ln -s
CP   = /bin/cp

EMACS = emacs

# Command line flags for Emacs.
EMACSOPT =

# The actual Emacs command run in the targets below.
emacs = LC_ALL=C $(EMACS) --batch --directory=./ $(EMACSOPT)

# If you want to use BBDB with VM this should point to your vm/lisp directory.
# See also the target all below.
VMDIR =

VM = -eval '(unless (string-match "$(VMDIR)" "") (push "$(VMDIR)" load-path))'

.SUFFIXES: .elc .el .tar .Z .gz .uu

SRCS =  bbdb.el bbdb-site.el bbdb-com.el bbdb-print.el bbdb-anniv.el \
        bbdb-migrate.el bbdb-snarf.el \
        bbdb-mua.el bbdb-message.el bbdb-rmail.el \
        bbdb-gnus.el bbdb-mhe.el bbdb-vm.el bbdb-pgp.el bbdb-sc.el \
        bbdb-ispell.el

# ELC = $(patsubst %.el,%.elc,$(SRCS)) # GNU Make
ELC =   bbdb.elc bbdb-site.elc bbdb-com.elc bbdb-print.elc bbdb-anniv.elc \
        bbdb-migrate.elc bbdb-snarf.elc \
        bbdb-mua.elc bbdb-message.elc bbdb-rmail.elc \
        bbdb-gnus.elc bbdb-mhe.elc bbdb-pgp.elc bbdb-sc.elc \
        bbdb-ispell.elc

all: bbdb-loaddefs.el bbdb

bbdb:   bbdb-loaddefs.el $(ELC)
vm:     bbdb-vm.elc

bbdb-loaddefs.el: $(SRCS)
#       2011-12-11: We switched from bbdb-autoloads.el to bbdb-loaddefs.el.
#       If the user still has an old bbdb-autoloads.el in the BBDB
#       lisp directory (and keeps loading it from the emacs init file),
#       we might get strange error messages that things fail.
#       So we throw an error if these old files are found.
        @if test -f bbdb-autoloads.el -o -f bbdb-autoloads.elc; then \
          (echo "*** ERROR: Old file(s) \`bbdb-autoloads.el(c)' found ***" ; \
          echo "*** Delete these files; do not load them from your init file 
***") && \
          false ; \
        fi
        -$(RM) $@;
        @echo "(provide 'bbdb-loaddefs)" > $@;
        @echo "(if (and load-file-name (file-name-directory load-file-name))" 
>> $@;
        @echo "    (add-to-list 'load-path (file-name-directory 
load-file-name)))" >> $@;
        @echo "" >> $@;
#       Generated autoload-file must have an absolute path,
#       $(srcdir) can be relative.
        $(emacs) -l autoload \
                --eval '(setq generated-autoload-file "$(cur_dir)\\$@")' \
                --eval '(setq make-backup-files nil)' \
                -f batch-update-autoloads "$(cur_dir)"

.PHONY: no-bbdb-loaddefs
no-bbdb-loaddefs:

.el.elc:
        $(emacs) -f batch-byte-compile $<

# Not perfect, but better than nothing:  If we do not have / do not use
# autotools, we simply copy bbdb-site.el.in to bbdb-site.el.
bbdb-site.el: bbdb-site.el.in
        $(CP) $< $@
bbdb-site.elc: bbdb-site.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)

bbdb.elc: bbdb.el bbdb-site.elc
        $(emacs) -f batch-byte-compile $(@:.elc=.el)

bbdb-com.elc: bbdb.elc bbdb-com.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-mua.elc: bbdb.elc bbdb-com.elc bbdb-mua.el
        $(emacs) -eval '(unless (string= "$(VMDIR)" "") (push "$(VMDIR)" 
load-path) (load "vm" t t))' \
        -f batch-byte-compile $(@:.elc=.el)
bbdb-rmail.elc: bbdb.elc bbdb-com.elc bbdb-mua.elc bbdb-rmail.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-gnus.elc: bbdb.elc bbdb-com.elc bbdb-mua.elc bbdb-gnus.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-mhe.elc: bbdb.elc bbdb-com.elc bbdb-mua.elc bbdb-mhe.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
# VM is not part of GNU Emacs
bbdb-vm.elc: bbdb.elc bbdb-com.elc bbdb-mua.elc bbdb-vm.el
        $(emacs) $(VM) -f batch-byte-compile $(@:.elc=.el)
bbdb-sc.elc: bbdb.elc bbdb-com.elc bbdb-mua.elc bbdb-sc.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)

bbdb-print.elc: bbdb.elc bbdb-com.elc bbdb-print.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-migrate.elc: bbdb.elc bbdb-migrate.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-anniv.elc: bbdb.elc bbdb-com.elc bbdb-anniv.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-ispell.elc: bbdb.elc bbdb-ispell.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)
bbdb-snarf.elc: bbdb.elc bbdb-com.elc bbdb-snarf.el
        $(emacs) -f batch-byte-compile $(@:.elc=.el)

install-el: all
        $(INSTALL) -d -m 0755 "$(lispdir)/"
        for elc in *.elc; do \
            el=`basename $$elc c`; \
            if test -f "$(srcdir)/$$el"; then \
                echo "Install $$el in $(lispdir)/"; \
                $(INSTALL_DATA) "${srcdir}/$$el" "$(lispdir)/"; \
            fi; \
        done;
        for el in bbdb-loaddefs.el; do \
            echo "Install $$el in $(lispdir)/"; \
            $(INSTALL_DATA) $$el "$(lispdir)/"; \
        done;

install-elc: all
        $(INSTALL) -d -m 0755 "$(lispdir)/"
        for elc in bbdb-loaddefs.el *.elc; do \
            echo "Install $$elc in $(lispdir)/"; \
            $(INSTALL_DATA) $$elc "$(lispdir)/"; \
        done;

uninstall:
        for elc in *.elc; do \
          $(RM) "$(lispdir)/$$elc"; \
        done
        for el in *.el; do \
          $(RM) "$(lispdir)/$$el"; \
        done

# Assorted clean-up targets
clean:
        -$(RM) bbdb*.elc TAGS

distclean: clean

maintainer-clean: distclean
        -$(RM) bbdb-loaddefs.el  # Generated file
        -$(RM) Makefile

extraclean: maintainer-clean
        -$(RM) *~ \#*

TAGS: $(SRCS)
        etags $(SRCS)
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their 
applications. Written by three acclaimed leaders in the field, 
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/NeoTech
_______________________________________________
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/

Reply via email to