## Makefile for eMoney   -*-Makefile-*-
## $Id: Makefile,v 1.6 2004/06/29 23:31:14 youngs Exp $
##
## Copyright (C) 2003 - 2007 Steve Youngs
##
## This file is part of eMoney.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
##
## 1. Redistributions of source code must retain the above copyright
##    notice, this list of conditions and the following disclaimer.
##
## 2. Redistributions in binary form must reproduce the above copyright
##    notice, this list of conditions and the following disclaimer in the
##    documentation and/or other materials provided with the distribution.
##
## 3. Neither the name of the author nor the names of any contributors
##    may be used to endorse or promote products derived from this
##    software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
## DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
## BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
## WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
## OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
## IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PACKAGE = emoney
VER = 0.6

# csh... yell no, we won't go!
SHELL = /bin/sh

# Programs and their flags.
ifndef XEMACS
  XEMACS = sxemacs
endif
XEMACS_FLAGS = -batch -no-autoloads
INSTALL = install
PKG_INSTALL = $(INSTALL)
TAR = tar
TAR_FLAGS = \
	--create \
	--owner=0 \
	--group=0 \
	--gzip \
	--file


# Our prefix.  Everything hangs off this.  
ifndef PREFIX
  ifeq ('$(XEMACS)','sxemacs')
    PREFIX = /usr/local/share/sxemacs/site-packages
  else
    PREFIX = /usr/local/lib/xemacs/site-packages
  endif
endif

# Where the lisp files go.
LISP_DIR = $(PREFIX)/lisp/$(PACKAGE)

# If you want to make a tarball that you can just unpack on all your
# PC's you can 'make pkg'.  The 'pkg' target uses these directories to
# build the tarball.
STAGING = ../build-pkg
INFO_STAGING = $(STAGING)/info
LISP_STAGING = $(STAGING)/lisp/$(PACKAGE)


############################################################################
##                No User Configurable Items Below Here                   ##
############################################################################

SOURCES = $(wildcard ./emoney*.el)
OBJECTS = $(SOURCES:.el=.elc)
EXTRA_SRC =
EXTRA_OBJ = $(wildcard ./auto-autoloads.el*) $(wildcard ./custom-load.el*)

PRELOADS = -eval \("push default-directory load-path"\)
AUTOLOAD_PACKAGE_NAME = (setq autoload-package-name \"$(PACKAGE)\")
AUTOLOAD_FILE = (setq generated-autoload-file \"./auto-autoloads.el\")


.SUFFIXES:
.SUFFIXES: .elc .el

all:: emoney-version.el autoloads customloads compile

autoloads: auto-autoloads.el

customloads: custom-load.el

compile: $(SOURCES) auto-autoloads.el custom-load.el
	$(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) \
		-l bytecomp \
		-l byte-optimize \
                -f batch-byte-compile $^

auto-autoloads.el : $(SOURCES) emoney-version.el
	$(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) \
		-eval "$(AUTOLOAD_PACKAGE_NAME)" \
		-eval "$(AUTOLOAD_FILE)" \
		-l autoload -f batch-update-autoloads $^
	@rm -f $(AUTOLOAD_PATH)/auto-autoloads.el~

custom-load.el : $(SOURCES)
	$(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) -l cus-dep \
		-f Custom-make-dependencies ./
	@touch ./custom-load.el
	@rm -f ./custom-load.el~

emoney-version.el:
	echo ";;; Automatically generated file -- DO NOT EDIT OR DELETE" > $@
	echo ";;;###autoload" >> $@
	echo "(defconst emoney-version" >> $@
	if [[ -d "./{arch}" && -x `which tla 2>/dev/null` ]]; then \
		printf '  "%s"' `tla logs -f|tail -n1` >> $@; \
	else \
		echo -n '  "$(VER)"' >> $@; \
	fi
	echo ")" >> $@
	echo "(provide 'emoney-version)" >> $@

version: emoney-version.el

install: all
	$(INSTALL) -d $(LISP_DIR)
	$(INSTALL) -m 644 $(SOURCES) $(EXTRA_SRC) $(OBJECTS) $(EXTRA_OBJ) \
		$(LISP_DIR)

pkg: all
	$(PKG_INSTALL) -d $(STAGING) $(LISP_STAGING)
	$(PKG_INSTALL) -m 644 $(SOURCES) $(EXTRA_SRC) $(OBJECTS) $(EXTRA_OBJ) \
		$(LISP_STAGING)
	(cd $(STAGING); \
		$(TAR) $(TAR_FLAGS) $(PACKAGE)-$(VER)-pkg.tar.gz ./*)

upgrade: uninstall install

uninstall:: 
	rm -rf $(LISP_DIR)
        # rm -f $(INFO_DIR)/$(INFO_FILES)


clean::
	rm -f $(OBJECTS) $(INFO_FILES) \
		auto-autoloads.el* custom-load.el*

distclean: clean
	rm -f core* *~ TAGS tags emoney-version.el*

# Developer targets
tags: TAGS

TAGS: $(SOURCES)
	etags $(SOURCES)

dist: distclean
	(cd ../ ; \
		$(TAR) $(TAR_FLAGS) $(PACKAGE)-$(VER).tar.gz ./$(PACKAGE)/)

.PHONY: emoney-version.el version
