

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

RM   = /usr/bin/rm
LN_S = ln -s

EMACS = c:/Meadow/1.15/bin/MeadowNT.exe -no-site-file -no-init-file

GNUSDIR = 
MHEDIR = 
VMDIR = 
OTHERDIRS = 

PACKAGEDIR = /usr/local/lib/xemacs/site-packages
SYMLINKS = no
LINKPATH = 

# this is lovely, isn't it?  Surprisingly enough, it seems to work...
VM	= -eval '(progn (if (not (string-match "$(VMDIR)" ""))            \
			    (setq load-path (cons "$(VMDIR)" load-path))) \
			(if (load "vm-version" t)                         \
			    (cond ((> (string-to-number vm-version) 5.31) \
                                   (load "vm"))                           \
                                  (t (load "vm-vars") (load "vm")))))'

GNUS	= -eval '(if (not (string-match "$(GNUSDIR)" ""))             \
		     (setq load-path (cons "$(GNUSDIR)" load-path)))'

MHE	= -eval '(progn (if (not (string-match "$(MHEDIR)" ""))            \
			    (setq load-path (cons "$(MHEDIR)" load-path))) \
			(load "mh-e"))'

# This is hideous and sick, but FSF 19.34 doesn't ship with split, and we
# can't load bbdb.el to get bbdb-split because we have to put OTHERDIRS
# at the front of the load-path before loading bbdb.el.  This makes my
# head hurt.
PUSHPATH= -eval "`\
           dir=\". $(OTHERDIRS)\"; \
	   echo \(setq load-path \(append \(list ; \
           for i in $$dir ; do \
              echo \\"$$i\\"\ ; \
	   done ;\
	   echo \) load-path\)\) ; \
           `"

#foo:
#	@echo $(PUSHPATH)
#	echo
#	$(EMACS) -batch -q $(PUSHPATH) -eval '(message (prin1-to-string load-path))'

#-eval '(setq load-path                                        \
#                     (append (bbdb-split (if (/= 0 (length "$(OTHERDIRS)")) \
#                                              (concat ". " "$(OTHERDIRS)")  \
#                                              ".") " ")                     \
#					       load-path))'


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

DEPSRCS=	bbdb-com.el  bbdb-hooks.el  bbdb-gnus.el  bbdb-mhe.el \
		bbdb-rmail.el bbdb-vm.el bbdb-ftp.el bbdb-whois.el \
		bbdb-xemacs.el bbdb-print.el bbdb-srv.el bbdb-reportmail.el \
		bbdb-merge.el bbdb-migrate.el bbdb-gui.el

DEPBINS=	${DEPSRCS:.el=.elc}
SRCS=		bbdb.el  $(DEPSRCS)
BINS=		bbdb.elc $(DEPBINS)

all:	rmail gnus vm mhe bbdb info autoloadsc

install-pkg: uninstall-pkg bbdb autoloadsc
	@if test "x$(SYMLINKS)" = "xno" ; then                 \
          mkdir -p -m 0755 $(PACKAGEDIR)/lisp/bbdb;            \
          for i in `ls *.elc` ; do                             \
            $(INSTALL_DATA) `echo $$i | sed 's/c$$//g'`        \
                            $(PACKAGEDIR)/lisp/bbdb ;          \
            $(INSTALL_DATA) $$i $(PACKAGEDIR)/lisp/bbdb ;      \
          done ;                                               \
        else                                                   \
          if test "x$(LINKPATH)" = "x" ; then                  \
            $(LN_S) `pwd` $(PACKAGEDIR)/lisp/bbdb ;            \
          else                                                 \
            $(LN_S) $(LINKPATH)/lisp $(PACKAGEDIR)/lisp/bbdb ; \
          fi ;                                                 \
        fi

uninstall-pkg:
	-$(RM) -r $(PACKAGEDIR)/lisp/bbdb

bbdb-autoloads.el: $(DEPSRCS)
	@-$(RM) $@;
	@echo "(provide 'bbdb-autoloads)" > $@;
	@echo "" >> $@;
	$(EMACS) -batch -q -l autoload \
		--eval '(setq generated-autoload-file "'`pwd`'/$@")' \
		--eval "(if (featurep 'xemacs) (delete-file generated-autoload-file))" \
		--eval '(setq make-backup-files nil)' \
		--eval '(setq autoload-package-name "bbdb")' \
		-f batch-update-autoloads `pwd`

bbdb-autoloads.elc: bbdb-autoloads.el
	$(EMACS) -batch -q -f batch-byte-compile ./$^

bbdb.elc:            bbdb.el
bbdb-com.elc:        bbdb.elc bbdb-com.el
bbdb-ftp.elc:        bbdb.elc bbdb-ftp.el
bbdb-gui.elc:		 bbdb.elc bbdb-gui.el
bbdb-merge.elc:      bbdb-merge.el
bbdb-migrate.elc:    bbdb.elc bbdb-migrate.el
bbdb-print.elc:      bbdb.elc bbdb-print.el
bbdb-snarf.elc:      bbdb.elc bbdb-snarf.el
bbdb-whois.elc:      bbdb.elc bbdb-whois.el
bbdb-w3.elc:         bbdb.elc bbdb-w3.el
bbdb-xemacs.elc:     bbdb.elc bbdb-xemacs.el

.el.elc:
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -f batch-byte-compile $<

bbdb.elc:	bbdb.el
	$(EMACS) -batch -q -f batch-byte-compile ./bbdb.el

bbdb-gnus.elc:	bbdb.elc bbdb-gnus.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(GNUS)   \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-mhe.elc:	bbdb.elc bbdb-mhe.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(MHE)    \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-rmail.elc:	bbdb.elc bbdb-rmail.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(RMAIL)  \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-vm.elc:	bbdb.elc bbdb-vm.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(VM)     \
		-f batch-byte-compile $(@:.elc=.el)

bbdb-srv.elc:   bbdb.elc bbdb-srv.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(or (fboundp (quote define-obsolete-variable-alias)) (if (locate-library "gnuserv-compat") (load-library "gnuserv-compat"))) (if (and (locate-library "gnuserv") (locate-library "itimer")) (byte-compile-file "bbdb-srv.el") (message "Optional package bbdb-srv skipped - gnuserv not found"))'

bbdb-reportmail.elc: bbdb.elc bbdb-reportmail.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(if (locate-library "reportmail") (byte-compile-file "bbdb-reportmail.el") (message "Optional package bbdb-reportmail skipped - reportmail not found"))'

bbdb-sc.elc: bbdb.elc bbdb-sc.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(if (locate-library "supercite") (byte-compile-file "bbdb-sc.el") (message "Optional package bbdb-sc skipped - supercite not found"))'

# bbdb-hooks uses VM macros if it can find VM.

bbdb-hooks.elc:  bbdb.elc bbdb-hooks.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc \
	-eval '(and (not (string= "$(VMDIR)" "")) \
		    (setq load-path (cons "$(VMDIR)" load-path)) \
		    (load "vm" t) \
		    (load "vm-vars" t))' \
	-f batch-byte-compile $(@:.elc=.el)

autoloads: bbdb-autoloads.el

autoloadsc: bbdb-autoloads.elc

extras: bbdb-print.elc bbdb-ftp.elc bbdb-whois.elc bbdb-xemacs.elc  \
	bbdb-srv.elc bbdb-reportmail.elc bbdb-snarf.elc bbdb-w3.elc \
	bbdb-sc.elc bbdb-merge.elc bbdb-migrate.elc bbdb-gui.elc
bbdb:	bbdb.elc bbdb-com.elc bbdb-hooks.elc autoloadsc extras
rmail:	bbdb bbdb-rmail.elc
vm:	bbdb bbdb-vm.elc
mhe:	bbdb bbdb-mhe.elc
gnus:	bbdb bbdb-gnus.elc
# aliases
mh:	mhe
mh-e:	mhe

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

distclean: clean

# Backward compatibility
reallyclean: distclean

cvsclean: distclean
	-$(RM) bbdb-autoloads.el  # Generated file
	-$(RM) Makefile
