Initial git import
[emoney] / Makefile
1 ## Makefile for eMoney   -*-Makefile-*-
2 ## $Id: Makefile,v 1.6 2004/06/29 23:31:14 youngs Exp $
3 ##
4 ## Copyright (C) 2003 - 2007 Steve Youngs
5 ##
6 ## This file is part of eMoney.
7 ##
8 ## Redistribution and use in source and binary forms, with or without
9 ## modification, are permitted provided that the following conditions
10 ## are met:
11 ##
12 ## 1. Redistributions of source code must retain the above copyright
13 ##    notice, this list of conditions and the following disclaimer.
14 ##
15 ## 2. Redistributions in binary form must reproduce the above copyright
16 ##    notice, this list of conditions and the following disclaimer in the
17 ##    documentation and/or other materials provided with the distribution.
18 ##
19 ## 3. Neither the name of the author nor the names of any contributors
20 ##    may be used to endorse or promote products derived from this
21 ##    software without specific prior written permission.
22 ##
23 ## THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
24 ## IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 ## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 ## DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 ## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 ## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 ## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
30 ## BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
31 ## WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
32 ## OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
33 ## IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
35 PACKAGE = emoney
36 VER = 0.6
37
38 # csh... yell no, we won't go!
39 SHELL = /bin/sh
40
41 # Programs and their flags.
42 ifndef XEMACS
43   XEMACS = sxemacs
44 endif
45 XEMACS_FLAGS = -batch -no-autoloads
46 INSTALL = install
47 PKG_INSTALL = $(INSTALL)
48 TAR = tar
49 TAR_FLAGS = \
50         --create \
51         --owner=0 \
52         --group=0 \
53         --gzip \
54         --file
55
56
57 # Our prefix.  Everything hangs off this.  
58 ifndef PREFIX
59   ifeq ('$(XEMACS)','sxemacs')
60     PREFIX = /usr/local/share/sxemacs/site-packages
61   else
62     PREFIX = /usr/local/lib/xemacs/site-packages
63   endif
64 endif
65
66 # Where the lisp files go.
67 LISP_DIR = $(PREFIX)/lisp/$(PACKAGE)
68
69 # If you want to make a tarball that you can just unpack on all your
70 # PC's you can 'make pkg'.  The 'pkg' target uses these directories to
71 # build the tarball.
72 STAGING = ../build-pkg
73 INFO_STAGING = $(STAGING)/info
74 LISP_STAGING = $(STAGING)/lisp/$(PACKAGE)
75
76
77 ############################################################################
78 ##                No User Configurable Items Below Here                   ##
79 ############################################################################
80
81 SOURCES = $(wildcard ./emoney*.el)
82 OBJECTS = $(SOURCES:.el=.elc)
83 EXTRA_SRC =
84 EXTRA_OBJ = $(wildcard ./auto-autoloads.el*) $(wildcard ./custom-load.el*)
85
86 PRELOADS = -eval \("push default-directory load-path"\)
87 AUTOLOAD_PACKAGE_NAME = (setq autoload-package-name \"$(PACKAGE)\")
88 AUTOLOAD_FILE = (setq generated-autoload-file \"./auto-autoloads.el\")
89
90
91 .SUFFIXES:
92 .SUFFIXES: .elc .el
93
94 all:: emoney-version.el autoloads customloads compile
95
96 autoloads: auto-autoloads.el
97
98 customloads: custom-load.el
99
100 compile: $(SOURCES) auto-autoloads.el custom-load.el
101         $(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) \
102                 -l bytecomp \
103                 -l byte-optimize \
104                 -f batch-byte-compile $^
105
106 auto-autoloads.el : $(SOURCES) emoney-version.el
107         $(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) \
108                 -eval "$(AUTOLOAD_PACKAGE_NAME)" \
109                 -eval "$(AUTOLOAD_FILE)" \
110                 -l autoload -f batch-update-autoloads $^
111         @rm -f $(AUTOLOAD_PATH)/auto-autoloads.el~
112
113 custom-load.el : $(SOURCES)
114         $(XEMACS) $(XEMACS_FLAGS) $(PRELOADS) -l cus-dep \
115                 -f Custom-make-dependencies ./
116         @touch ./custom-load.el
117         @rm -f ./custom-load.el~
118
119 emoney-version.el:
120         echo ";;; Automatically generated file -- DO NOT EDIT OR DELETE" > $@
121         echo ";;;###autoload" >> $@
122         echo "(defconst emoney-version" >> $@
123         if [[ -d "./{arch}" && -x `which tla 2>/dev/null` ]]; then \
124                 printf '  "%s"' `tla logs -f|tail -n1` >> $@; \
125         else \
126                 echo -n '  "$(VER)"' >> $@; \
127         fi
128         echo ")" >> $@
129         echo "(provide 'emoney-version)" >> $@
130
131 version: emoney-version.el
132
133 install: all
134         $(INSTALL) -d $(LISP_DIR)
135         $(INSTALL) -m 644 $(SOURCES) $(EXTRA_SRC) $(OBJECTS) $(EXTRA_OBJ) \
136                 $(LISP_DIR)
137
138 pkg: all
139         $(PKG_INSTALL) -d $(STAGING) $(LISP_STAGING)
140         $(PKG_INSTALL) -m 644 $(SOURCES) $(EXTRA_SRC) $(OBJECTS) $(EXTRA_OBJ) \
141                 $(LISP_STAGING)
142         (cd $(STAGING); \
143                 $(TAR) $(TAR_FLAGS) $(PACKAGE)-$(VER)-pkg.tar.gz ./*)
144
145 upgrade: uninstall install
146
147 uninstall:: 
148         rm -rf $(LISP_DIR)
149         # rm -f $(INFO_DIR)/$(INFO_FILES)
150
151
152 clean::
153         rm -f $(OBJECTS) $(INFO_FILES) \
154                 auto-autoloads.el* custom-load.el*
155
156 distclean: clean
157         rm -f core* *~ TAGS tags emoney-version.el*
158
159 # Developer targets
160 tags: TAGS
161
162 TAGS: $(SOURCES)
163         etags $(SOURCES)
164
165 dist: distclean
166         (cd ../ ; \
167                 $(TAR) $(TAR_FLAGS) $(PACKAGE)-$(VER).tar.gz ./$(PACKAGE)/)
168
169 .PHONY: emoney-version.el version