(file-executable-p): New function.
[elisp/apel.git] / APEL-MK
diff --git a/APEL-MK b/APEL-MK
index 17c2c6b..5bbc2a3 100644 (file)
--- a/APEL-MK
+++ b/APEL-MK
 ;;; -*-Emacs-Lisp-*-
-;;;
-;;; $Id: APEL-MK,v 0.1 1997-03-20 02:04:19 morioka Exp $
-;;;
+
+;; APEL-MK: installer for APEL.
+
+;;; Code:
+
+(defun install-just-print-p ()
+  (let ((flag (getenv "MAKEFLAGS"))
+       case-fold-search)
+    (princ (format "%s\n" flag))
+    (if flag
+       (string-match "^\\(\\(--[^ ]+ \\)+-\\|[^ =-]\\)*n" flag)
+      )))
+
+(defun install-update-package-files (package dir &optional just-print)
+  (cond (just-print
+        (princ (format "Updating autoloads in directory %s..\n\n" dir))
+          
+        (princ (format "Processing %s\n" dir))
+        (princ "Generating custom-load.el...\n\n")
+           
+        (princ (format "Compiling %s...\n"
+                       (expand-file-name "auto-autoloads.el" dir)))
+        (princ (format "Wrote %s\n"
+                       (expand-file-name "auto-autoloads.elc" dir)))
+          
+        (princ (format "Compiling %s...\n"
+                       (expand-file-name "custom-load.el" dir)))
+        (princ (format "Wrote %s\n"
+                       (expand-file-name "custom-load.elc" dir)))
+        )
+       (t
+        (setq autoload-package-name package)
+        (add-to-list 'command-line-args-left dir)
+        (batch-update-directory)
+       
+        (add-to-list 'command-line-args-left dir)
+        (Custom-make-dependencies)
+          
+        (byte-compile-file (expand-file-name "auto-autoloads.el" dir))
+        (byte-compile-file (expand-file-name "custom-load.el" dir))
+        )))
 
 (defun config-apel ()
-  (let (prefix)
-    (setq prefix (car command-line-args-left))
-    (and prefix
-        (not (string-equal "NONE" prefix))
-        (progn
-          (defvar PREFIX prefix)
-          (setq command-line-args-left (cdr command-line-args-left))
-          ))
-    (add-to-list 'load-path (expand-file-name "../emu"))
-    (add-to-list 'load-path ".")
-    (require 'install)
-    
+  (let (prefix lisp-dir version-specific-lisp-dir)
+    (and (setq prefix (car command-line-args-left))
+        (or (string-equal "NONE" prefix)
+            (defvar PREFIX prefix)
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (and (setq lisp-dir (car command-line-args-left))
+        (or (string-equal "NONE" lisp-dir)
+            (defvar LISPDIR lisp-dir)
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (and (setq version-specific-lisp-dir (car command-line-args-left))
+        (or (string-equal "NONE" version-specific-lisp-dir)
+            (progn
+              (defvar VERSION_SPECIFIC_LISPDIR version-specific-lisp-dir)
+              (princ (format "VERSION_SPECIFIC_LISPDIR=%s\n"
+                             VERSION_SPECIFIC_LISPDIR)))
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
     (load-file "APEL-CFG")
-    (load-file "APEL-ELS")
+    (or (boundp 'apel-modules)
+       (load-file "APEL-ELS")
+       )
     (princ (format "PREFIX=%s\n" PREFIX))
     ))
 
 (defun compile-apel ()
   (config-apel)
-  (compile-elisp-modules apel-modules  ".")
+  (load-file "EMU-ELS")
+  (load-file "APEL-ELS")
+  (compile-elisp-modules emu-modules-to-compile        ".")
+  (compile-elisp-modules apel-modules          ".")
   )
 
 (defun install-apel ()
-  (config-apel)
-  (compile-elisp-modules apel-modules  ".")
-  (install-elisp-modules apel-modules  "."     APEL_DIR)
+  (compile-apel)
+  (let ((just-print (install-just-print-p)))
+    (install-elisp-modules emu-modules "." EMU_DIR     just-print)
+    (install-elisp-modules apel-modules        "." APEL_DIR    just-print)
+    ))
+
+(defun config-apel-package ()
+  (let (package-dir)
+    (and (setq package-dir (car command-line-args-left))
+        (or (string= "NONE" package-dir)
+            (defvar PACKAGEDIR package-dir)
+            ))
+    (setq command-line-args-left (cdr command-line-args-left))
+    (load-file "APEL-CFG")
+    (load-file "APEL-ELS")
+    (load-file "EMU-ELS")
+  
+    (princ (format "PACKAGEDIR=%s\n" PACKAGEDIR))
+    ))
+
+(defun compile-apel-package ()
+  (config-apel-package)
+  (compile-elisp-modules emu-modules-to-compile        ".")
+  (compile-elisp-modules apel-modules          ".")
   )
 
+(defun install-apel-package ()
+  (config-apel-package)
+  (let ((just-print (install-just-print-p))
+       (dir (expand-file-name APEL_PREFIX
+                              (expand-file-name "lisp" PACKAGEDIR))))
+    (install-elisp-modules emu-modules "." dir just-print)
+    (install-elisp-modules apel-modules        "." dir just-print)
+    (install-update-package-files "apel" dir just-print)
+    ))
+
+(defun what-where-apel ()
+  (config-apel)
+  (load-file "EMU-ELS")
+  (princ (format "
+The files that belong to the EMU modules:
+  %s
+  -> %s
+
+The files that belong to the APEL modules:
+  %s
+  -> %s
+"
+                (mapconcat 'symbol-name emu-modules ", ")
+                EMU_DIR
+                (mapconcat 'symbol-name apel-modules ", ")
+                APEL_DIR)))
+
 ;;; APEL-MK ends here