Re-organise the build.
authorSteve Youngs <steve@sxemacs.org>
Tue, 13 Dec 2011 13:30:19 +0000 (23:30 +1000)
committerSteve Youngs <steve@sxemacs.org>
Tue, 13 Dec 2011 13:30:19 +0000 (23:30 +1000)
* Makefile: Re-organise to use build.el to build everything.

* build.el: New file, does the byte-compilation etc.  Because I
suck at writing Makefiles.

* .gitignore:  Add all the build-generated stuff.

Signed-off-by: Steve Youngs <steve@sxemacs.org>
.gitignore
Makefile
build.el [new file with mode: 0644]

index 34f4ec3..39ebcb4 100644 (file)
@@ -3,3 +3,6 @@
 *.bak
 emoney-version.el
 ++log
+auto-autoloads.el*
+custom-load.el*
+custom-defines.el*
index c2038fc..43f136b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -80,40 +80,12 @@ LISP_STAGING = $(STAGING)/lisp/$(PACKAGE)
 SOURCES = $(wildcard ./emoney*.el)
 OBJECTS = $(SOURCES:.el=.elc)
 EXTRA_SRC =
-EXTRA_OBJ = $(wildcard ./auto-autoloads.el*) $(wildcard ./custom-load.el*)
+EXTRA_OBJ = $(wildcard ./auto-autoloads.el*) $(wildcard ./custom-*.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\")
+all:: emoney-version.el compile
 
-
-.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~
+compile: 
+       $(XEMACS) $(XEMACS_FLAGS) -l "build.el"
 
 emoney-version.el:
        echo ";;; Automatically generated file -- DO NOT EDIT OR DELETE" > $@
@@ -149,8 +121,8 @@ uninstall::
 
 
 clean::
-       rm -f $(OBJECTS) $(INFO_FILES) \
-               auto-autoloads.el* custom-load.el*
+       rm -f $(OBJECTS) \
+               auto-autoloads.el* custom-*.el*
 
 distclean: clean
        rm -f core* *~ TAGS tags emoney-version.el*
diff --git a/build.el b/build.el
new file mode 100644 (file)
index 0000000..4f5b017
--- /dev/null
+++ b/build.el
@@ -0,0 +1,78 @@
+;;; build.el --- Builds eMoney.
+;;
+;; Copyright (C) 2006 Sebastian Freundt
+;; Copyright (C) 2007 - 2011 Steve Youngs
+;;
+;; Author: Sebastian Freundt <hroptatyr@sxemacs.org>
+;; Maintainer: Steve Youngs <steve@sxemacs.org>
+;; Keywords: internal
+;;
+;; 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.
+;;
+;;; Synched up with: Not in FSF.
+
+;;; Commentary:
+;;
+;;  This file is only used during eMoney builds, it does what the name
+;;  implies... builds the lisp, plus it generates auto-autoloads.el,
+;;  custom-load.el and custom-define.el files.
+
+;;; Code:
+(setq stack-trace-on-error t)
+
+(defvar wd default-directory)
+(push wd load-path)
+
+(defvar needed '(cus-dep autoload bytecomp byte-optimize))
+(mapcar #'require needed)
+
+(let ((pname "emoney")
+      (adir wd))
+  (update-autoload-files adir pname)
+  (Custom-make-dependencies adir)
+  (update-custom-define-files adir pname))
+
+(defvar srcfiles
+  '(auto-autoloads.el 
+    custom-load.el 
+    custom-defines.el
+    emoney.el
+    emoney-version.el))
+                     
+(mapcar
+ #'(lambda (sym)
+     (let ((file (symbol-name sym)))
+       (byte-compile-file (expand-file-name file wd))))
+ srcfiles)
+
+;; indicate success
+(kill-emacs 0)
+
+;;; build.el ends here